Merge pull request #1335 from Toddyclipsgg/diff-view-v2
Browse files- .github/actions/setup-and-build/action.yaml +4 -0
- .tool-versions +0 -2
- README.md +3 -4
- app/components/chat/BaseChat.tsx +42 -34
- app/components/ui/Slider.tsx +16 -6
- app/components/workbench/DiffView.tsx +510 -0
- app/components/workbench/Workbench.client.tsx +224 -9
- app/lib/runtime/action-runner.ts +31 -4
- app/lib/stores/workbench.ts +8 -16
- app/styles/diff-view.css +72 -0
- app/types/actions.ts +14 -0
- app/utils/getLanguageFromExtension.ts +24 -0
- package.json +2 -0
- pnpm-lock.yaml +403 -300
- vite.config.ts +1 -0
- wrangler.toml +0 -6
.github/actions/setup-and-build/action.yaml
CHANGED
|
@@ -30,3 +30,7 @@ runs:
|
|
| 30 |
run: |
|
| 31 |
pnpm install
|
| 32 |
pnpm run build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
run: |
|
| 31 |
pnpm install
|
| 32 |
pnpm run build
|
| 33 |
+
|
| 34 |
+
- name: Create history directory
|
| 35 |
+
shell: bash
|
| 36 |
+
run: mkdir -p .history
|
.tool-versions
DELETED
|
@@ -1,2 +0,0 @@
|
|
| 1 |
-
nodejs 20.15.1
|
| 2 |
-
pnpm 9.4.0
|
|
|
|
|
|
|
|
|
README.md
CHANGED
|
@@ -4,12 +4,10 @@
|
|
| 4 |
|
| 5 |
Welcome to bolt.diy, the official open source version of Bolt.new (previously known as oTToDev and bolt.new ANY LLM), which allows you to choose the LLM that you use for each prompt! Currently, you can use OpenAI, Anthropic, Ollama, OpenRouter, Gemini, LMStudio, Mistral, xAI, HuggingFace, DeepSeek, or Groq models - and it is easily extended to use any other model supported by the Vercel AI SDK! See the instructions below for running this locally and extending it to include more models.
|
| 6 |
|
| 7 |
-
|
| 8 |
-
|
| 9 |
Check the [bolt.diy Docs](https://stackblitz-labs.github.io/bolt.diy/) for more offical installation instructions and more informations.
|
| 10 |
|
| 11 |
-
|
| 12 |
-
|
| 13 |
Also [this pinned post in our community](https://thinktank.ottomator.ai/t/videos-tutorial-helpful-content/3243) has a bunch of incredible resources for running and deploying bolt.diy yourself!
|
| 14 |
|
| 15 |
We have also launched an experimental agent called the "bolt.diy Expert" that can answer common questions about bolt.diy. Find it here on the [oTTomator Live Agent Studio](https://studio.ottomator.ai/).
|
|
@@ -81,6 +79,7 @@ project, please check the [project management guide](./PROJECT.md) to get starte
|
|
| 81 |
- ✅ Add Starter Template Options (@thecodacus)
|
| 82 |
- ✅ Perplexity Integration (@meetpateltech)
|
| 83 |
- ✅ AWS Bedrock Integration (@kunjabijukchhe)
|
|
|
|
| 84 |
- ⬜ **HIGH PRIORITY** - Prevent bolt from rewriting files as often (file locking and diffs)
|
| 85 |
- ⬜ **HIGH PRIORITY** - Better prompting for smaller LLMs (code window sometimes doesn't start)
|
| 86 |
- ⬜ **HIGH PRIORITY** - Run agents in the backend as opposed to a single model call
|
|
|
|
| 4 |
|
| 5 |
Welcome to bolt.diy, the official open source version of Bolt.new (previously known as oTToDev and bolt.new ANY LLM), which allows you to choose the LLM that you use for each prompt! Currently, you can use OpenAI, Anthropic, Ollama, OpenRouter, Gemini, LMStudio, Mistral, xAI, HuggingFace, DeepSeek, or Groq models - and it is easily extended to use any other model supported by the Vercel AI SDK! See the instructions below for running this locally and extending it to include more models.
|
| 6 |
|
| 7 |
+
-----
|
|
|
|
| 8 |
Check the [bolt.diy Docs](https://stackblitz-labs.github.io/bolt.diy/) for more offical installation instructions and more informations.
|
| 9 |
|
| 10 |
+
-----
|
|
|
|
| 11 |
Also [this pinned post in our community](https://thinktank.ottomator.ai/t/videos-tutorial-helpful-content/3243) has a bunch of incredible resources for running and deploying bolt.diy yourself!
|
| 12 |
|
| 13 |
We have also launched an experimental agent called the "bolt.diy Expert" that can answer common questions about bolt.diy. Find it here on the [oTTomator Live Agent Studio](https://studio.ottomator.ai/).
|
|
|
|
| 79 |
- ✅ Add Starter Template Options (@thecodacus)
|
| 80 |
- ✅ Perplexity Integration (@meetpateltech)
|
| 81 |
- ✅ AWS Bedrock Integration (@kunjabijukchhe)
|
| 82 |
+
- ✅ Add a "Diff View" to see the changes (@toddyclipsgg)
|
| 83 |
- ⬜ **HIGH PRIORITY** - Prevent bolt from rewriting files as often (file locking and diffs)
|
| 84 |
- ⬜ **HIGH PRIORITY** - Better prompting for smaller LLMs (code window sometimes doesn't start)
|
| 85 |
- ⬜ **HIGH PRIORITY** - Run agents in the backend as opposed to a single model call
|
app/components/chat/BaseChat.tsx
CHANGED
|
@@ -34,6 +34,7 @@ import ChatAlert from './ChatAlert';
|
|
| 34 |
import type { ModelInfo } from '~/lib/modules/llm/types';
|
| 35 |
import ProgressCompilation from './ProgressCompilation';
|
| 36 |
import type { ProgressAnnotation } from '~/types/context';
|
|
|
|
| 37 |
import { LOCAL_PROVIDERS } from '~/lib/stores/settings';
|
| 38 |
|
| 39 |
const TEXTAREA_MIN_HEIGHT = 76;
|
|
@@ -68,6 +69,7 @@ interface BaseChatProps {
|
|
| 68 |
actionAlert?: ActionAlert;
|
| 69 |
clearAlert?: () => void;
|
| 70 |
data?: JSONValue[] | undefined;
|
|
|
|
| 71 |
}
|
| 72 |
|
| 73 |
export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
@@ -102,6 +104,7 @@ export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
| 102 |
actionAlert,
|
| 103 |
clearAlert,
|
| 104 |
data,
|
|
|
|
| 105 |
},
|
| 106 |
ref,
|
| 107 |
) => {
|
|
@@ -304,7 +307,7 @@ export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
| 304 |
data-chat-visible={showChat}
|
| 305 |
>
|
| 306 |
<ClientOnly>{() => <Menu />}</ClientOnly>
|
| 307 |
-
<div className="flex flex-col lg:flex-row overflow-y-auto w-full h-full">
|
| 308 |
<div className={classNames(styles.Chat, 'flex flex-col flex-grow lg:min-w-[var(--chat-min-width)] h-full')}>
|
| 309 |
{!chatStarted && (
|
| 310 |
<div id="intro" className="mt-[16vh] max-w-chat mx-auto text-center px-4 lg:px-0">
|
|
@@ -318,40 +321,39 @@ export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
| 318 |
)}
|
| 319 |
<div
|
| 320 |
className={classNames('pt-6 px-2 sm:px-6', {
|
| 321 |
-
'h-full flex flex-col
|
| 322 |
})}
|
| 323 |
ref={scrollRef}
|
| 324 |
>
|
| 325 |
<ClientOnly>
|
| 326 |
{() => {
|
| 327 |
return chatStarted ? (
|
| 328 |
-
<
|
| 329 |
-
|
| 330 |
-
|
| 331 |
-
|
| 332 |
-
|
| 333 |
-
|
| 334 |
-
/>
|
| 335 |
-
</div>
|
| 336 |
) : null;
|
| 337 |
}}
|
| 338 |
</ClientOnly>
|
| 339 |
<div
|
| 340 |
-
className={classNames('flex flex-col gap-4 w-full max-w-chat mx-auto z-prompt', {
|
| 341 |
'sticky bottom-2': chatStarted,
|
| 342 |
-
'position-absolute': chatStarted,
|
| 343 |
})}
|
| 344 |
>
|
| 345 |
-
|
| 346 |
-
|
| 347 |
-
|
| 348 |
-
|
| 349 |
-
|
| 350 |
-
|
| 351 |
-
|
| 352 |
-
|
| 353 |
-
|
| 354 |
-
|
|
|
|
|
|
|
| 355 |
{progressAnnotations && <ProgressCompilation data={progressAnnotations} />}
|
| 356 |
<div
|
| 357 |
className={classNames(
|
|
@@ -585,16 +587,15 @@ export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
| 585 |
</div>
|
| 586 |
</div>
|
| 587 |
</div>
|
| 588 |
-
|
| 589 |
-
|
| 590 |
<div className="flex justify-center gap-2">
|
| 591 |
-
|
| 592 |
-
|
| 593 |
-
<GitCloneButton importChat={importChat} className="min-w-[120px]" />
|
| 594 |
-
</div>
|
| 595 |
</div>
|
| 596 |
-
|
| 597 |
-
|
|
|
|
| 598 |
if (isStreaming) {
|
| 599 |
handleStop?.();
|
| 600 |
return;
|
|
@@ -602,11 +603,18 @@ export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
| 602 |
|
| 603 |
handleSendMessage?.(event, messageInput);
|
| 604 |
})}
|
| 605 |
-
|
| 606 |
-
|
| 607 |
-
)}
|
| 608 |
</div>
|
| 609 |
-
<ClientOnly>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 610 |
</div>
|
| 611 |
</div>
|
| 612 |
);
|
|
|
|
| 34 |
import type { ModelInfo } from '~/lib/modules/llm/types';
|
| 35 |
import ProgressCompilation from './ProgressCompilation';
|
| 36 |
import type { ProgressAnnotation } from '~/types/context';
|
| 37 |
+
import type { ActionRunner } from '~/lib/runtime/action-runner';
|
| 38 |
import { LOCAL_PROVIDERS } from '~/lib/stores/settings';
|
| 39 |
|
| 40 |
const TEXTAREA_MIN_HEIGHT = 76;
|
|
|
|
| 69 |
actionAlert?: ActionAlert;
|
| 70 |
clearAlert?: () => void;
|
| 71 |
data?: JSONValue[] | undefined;
|
| 72 |
+
actionRunner?: ActionRunner;
|
| 73 |
}
|
| 74 |
|
| 75 |
export const BaseChat = React.forwardRef<HTMLDivElement, BaseChatProps>(
|
|
|
|
| 104 |
actionAlert,
|
| 105 |
clearAlert,
|
| 106 |
data,
|
| 107 |
+
actionRunner,
|
| 108 |
},
|
| 109 |
ref,
|
| 110 |
) => {
|
|
|
|
| 307 |
data-chat-visible={showChat}
|
| 308 |
>
|
| 309 |
<ClientOnly>{() => <Menu />}</ClientOnly>
|
| 310 |
+
<div ref={scrollRef} className="flex flex-col lg:flex-row overflow-y-auto w-full h-full">
|
| 311 |
<div className={classNames(styles.Chat, 'flex flex-col flex-grow lg:min-w-[var(--chat-min-width)] h-full')}>
|
| 312 |
{!chatStarted && (
|
| 313 |
<div id="intro" className="mt-[16vh] max-w-chat mx-auto text-center px-4 lg:px-0">
|
|
|
|
| 321 |
)}
|
| 322 |
<div
|
| 323 |
className={classNames('pt-6 px-2 sm:px-6', {
|
| 324 |
+
'h-full flex flex-col': chatStarted,
|
| 325 |
})}
|
| 326 |
ref={scrollRef}
|
| 327 |
>
|
| 328 |
<ClientOnly>
|
| 329 |
{() => {
|
| 330 |
return chatStarted ? (
|
| 331 |
+
<Messages
|
| 332 |
+
ref={messageRef}
|
| 333 |
+
className="flex flex-col w-full flex-1 max-w-chat pb-6 mx-auto z-1"
|
| 334 |
+
messages={messages}
|
| 335 |
+
isStreaming={isStreaming}
|
| 336 |
+
/>
|
|
|
|
|
|
|
| 337 |
) : null;
|
| 338 |
}}
|
| 339 |
</ClientOnly>
|
| 340 |
<div
|
| 341 |
+
className={classNames('flex flex-col gap-4 w-full max-w-chat mx-auto z-prompt mb-6', {
|
| 342 |
'sticky bottom-2': chatStarted,
|
|
|
|
| 343 |
})}
|
| 344 |
>
|
| 345 |
+
<div className="bg-bolt-elements-background-depth-2">
|
| 346 |
+
{actionAlert && (
|
| 347 |
+
<ChatAlert
|
| 348 |
+
alert={actionAlert}
|
| 349 |
+
clearAlert={() => clearAlert?.()}
|
| 350 |
+
postMessage={(message) => {
|
| 351 |
+
sendMessage?.({} as any, message);
|
| 352 |
+
clearAlert?.();
|
| 353 |
+
}}
|
| 354 |
+
/>
|
| 355 |
+
)}
|
| 356 |
+
</div>
|
| 357 |
{progressAnnotations && <ProgressCompilation data={progressAnnotations} />}
|
| 358 |
<div
|
| 359 |
className={classNames(
|
|
|
|
| 587 |
</div>
|
| 588 |
</div>
|
| 589 |
</div>
|
| 590 |
+
<div className="flex flex-col justify-center gap-5">
|
| 591 |
+
{!chatStarted && (
|
| 592 |
<div className="flex justify-center gap-2">
|
| 593 |
+
{ImportButtons(importChat)}
|
| 594 |
+
<GitCloneButton importChat={importChat} />
|
|
|
|
|
|
|
| 595 |
</div>
|
| 596 |
+
)}
|
| 597 |
+
{!chatStarted &&
|
| 598 |
+
ExamplePrompts((event, messageInput) => {
|
| 599 |
if (isStreaming) {
|
| 600 |
handleStop?.();
|
| 601 |
return;
|
|
|
|
| 603 |
|
| 604 |
handleSendMessage?.(event, messageInput);
|
| 605 |
})}
|
| 606 |
+
{!chatStarted && <StarterTemplates />}
|
| 607 |
+
</div>
|
|
|
|
| 608 |
</div>
|
| 609 |
+
<ClientOnly>
|
| 610 |
+
{() => (
|
| 611 |
+
<Workbench
|
| 612 |
+
actionRunner={actionRunner ?? ({} as ActionRunner)}
|
| 613 |
+
chatStarted={chatStarted}
|
| 614 |
+
isStreaming={isStreaming}
|
| 615 |
+
/>
|
| 616 |
+
)}
|
| 617 |
+
</ClientOnly>
|
| 618 |
</div>
|
| 619 |
</div>
|
| 620 |
);
|
app/components/ui/Slider.tsx
CHANGED
|
@@ -9,10 +9,11 @@ interface SliderOption<T> {
|
|
| 9 |
text: string;
|
| 10 |
}
|
| 11 |
|
| 12 |
-
export
|
| 13 |
-
left:
|
| 14 |
-
|
| 15 |
-
}
|
|
|
|
| 16 |
|
| 17 |
interface SliderProps<T> {
|
| 18 |
selected: T;
|
|
@@ -21,14 +22,23 @@ interface SliderProps<T> {
|
|
| 21 |
}
|
| 22 |
|
| 23 |
export const Slider = genericMemo(<T,>({ selected, options, setSelected }: SliderProps<T>) => {
|
| 24 |
-
const
|
|
|
|
|
|
|
| 25 |
|
| 26 |
return (
|
| 27 |
<div className="flex items-center flex-wrap shrink-0 gap-1 bg-bolt-elements-background-depth-1 overflow-hidden rounded-full p-1">
|
| 28 |
<SliderButton selected={isLeftSelected} setSelected={() => setSelected?.(options.left.value)}>
|
| 29 |
{options.left.text}
|
| 30 |
</SliderButton>
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
{options.right.text}
|
| 33 |
</SliderButton>
|
| 34 |
</div>
|
|
|
|
| 9 |
text: string;
|
| 10 |
}
|
| 11 |
|
| 12 |
+
export type SliderOptions<T> = {
|
| 13 |
+
left: { value: T; text: string };
|
| 14 |
+
middle?: { value: T; text: string };
|
| 15 |
+
right: { value: T; text: string };
|
| 16 |
+
};
|
| 17 |
|
| 18 |
interface SliderProps<T> {
|
| 19 |
selected: T;
|
|
|
|
| 22 |
}
|
| 23 |
|
| 24 |
export const Slider = genericMemo(<T,>({ selected, options, setSelected }: SliderProps<T>) => {
|
| 25 |
+
const hasMiddle = !!options.middle;
|
| 26 |
+
const isLeftSelected = hasMiddle ? selected === options.left.value : selected === options.left.value;
|
| 27 |
+
const isMiddleSelected = hasMiddle && options.middle ? selected === options.middle.value : false;
|
| 28 |
|
| 29 |
return (
|
| 30 |
<div className="flex items-center flex-wrap shrink-0 gap-1 bg-bolt-elements-background-depth-1 overflow-hidden rounded-full p-1">
|
| 31 |
<SliderButton selected={isLeftSelected} setSelected={() => setSelected?.(options.left.value)}>
|
| 32 |
{options.left.text}
|
| 33 |
</SliderButton>
|
| 34 |
+
|
| 35 |
+
{options.middle && (
|
| 36 |
+
<SliderButton selected={isMiddleSelected} setSelected={() => setSelected?.(options.middle!.value)}>
|
| 37 |
+
{options.middle.text}
|
| 38 |
+
</SliderButton>
|
| 39 |
+
)}
|
| 40 |
+
|
| 41 |
+
<SliderButton selected={!isLeftSelected && !isMiddleSelected} setSelected={() => setSelected?.(options.right.value)}>
|
| 42 |
{options.right.text}
|
| 43 |
</SliderButton>
|
| 44 |
</div>
|
app/components/workbench/DiffView.tsx
ADDED
|
@@ -0,0 +1,510 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { memo, useMemo, useState, useEffect, useCallback } from 'react';
|
| 2 |
+
import { useStore } from '@nanostores/react';
|
| 3 |
+
import { workbenchStore } from '~/lib/stores/workbench';
|
| 4 |
+
import type { FileMap } from '~/lib/stores/files';
|
| 5 |
+
import type { EditorDocument } from '~/components/editor/codemirror/CodeMirrorEditor';
|
| 6 |
+
import { diffLines, type Change } from 'diff';
|
| 7 |
+
import { getHighlighter } from 'shiki';
|
| 8 |
+
import '~/styles/diff-view.css';
|
| 9 |
+
import { diffFiles, extractRelativePath } from '~/utils/diff';
|
| 10 |
+
import { ActionRunner } from '~/lib/runtime/action-runner';
|
| 11 |
+
import type { FileHistory } from '~/types/actions';
|
| 12 |
+
import { getLanguageFromExtension } from '~/utils/getLanguageFromExtension';
|
| 13 |
+
|
| 14 |
+
interface CodeComparisonProps {
|
| 15 |
+
beforeCode: string;
|
| 16 |
+
afterCode: string;
|
| 17 |
+
language: string;
|
| 18 |
+
filename: string;
|
| 19 |
+
lightTheme: string;
|
| 20 |
+
darkTheme: string;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
interface DiffBlock {
|
| 24 |
+
lineNumber: number;
|
| 25 |
+
content: string;
|
| 26 |
+
type: 'added' | 'removed' | 'unchanged';
|
| 27 |
+
correspondingLine?: number;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
interface FullscreenButtonProps {
|
| 31 |
+
onClick: () => void;
|
| 32 |
+
isFullscreen: boolean;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
const FullscreenButton = memo(({ onClick, isFullscreen }: FullscreenButtonProps) => (
|
| 36 |
+
<button
|
| 37 |
+
onClick={onClick}
|
| 38 |
+
className="ml-4 p-1 rounded hover:bg-bolt-elements-background-depth-3 text-bolt-elements-textTertiary hover:text-bolt-elements-textPrimary transition-colors"
|
| 39 |
+
title={isFullscreen ? "Exit Fullscreen" : "Enter Fullscreen"}
|
| 40 |
+
>
|
| 41 |
+
<div className={isFullscreen ? "i-ph:corners-in" : "i-ph:corners-out"} />
|
| 42 |
+
</button>
|
| 43 |
+
));
|
| 44 |
+
|
| 45 |
+
const FullscreenOverlay = memo(({ isFullscreen, children }: { isFullscreen: boolean; children: React.ReactNode }) => {
|
| 46 |
+
if (!isFullscreen) return <>{children}</>;
|
| 47 |
+
|
| 48 |
+
return (
|
| 49 |
+
<div className="fixed inset-0 z-[9999] bg-black/50 flex items-center justify-center p-6">
|
| 50 |
+
<div className="w-full h-full max-w-[90vw] max-h-[90vh] bg-bolt-elements-background-depth-2 rounded-lg border border-bolt-elements-borderColor shadow-xl overflow-hidden">
|
| 51 |
+
{children}
|
| 52 |
+
</div>
|
| 53 |
+
</div>
|
| 54 |
+
);
|
| 55 |
+
});
|
| 56 |
+
|
| 57 |
+
const MAX_FILE_SIZE = 1024 * 1024; // 1MB
|
| 58 |
+
const BINARY_REGEX = /[\x00-\x08\x0E-\x1F]/;
|
| 59 |
+
|
| 60 |
+
const isBinaryFile = (content: string) => {
|
| 61 |
+
return content.length > MAX_FILE_SIZE || BINARY_REGEX.test(content);
|
| 62 |
+
};
|
| 63 |
+
|
| 64 |
+
const processChanges = (beforeCode: string, afterCode: string) => {
|
| 65 |
+
try {
|
| 66 |
+
if (isBinaryFile(beforeCode) || isBinaryFile(afterCode)) {
|
| 67 |
+
return {
|
| 68 |
+
beforeLines: [],
|
| 69 |
+
afterLines: [],
|
| 70 |
+
hasChanges: false,
|
| 71 |
+
lineChanges: { before: new Set(), after: new Set() },
|
| 72 |
+
unifiedBlocks: [],
|
| 73 |
+
isBinary: true
|
| 74 |
+
};
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
// Normalizar quebras de linha para evitar falsos positivos
|
| 78 |
+
const normalizedBefore = beforeCode.replace(/\r\n/g, '\n').trim();
|
| 79 |
+
const normalizedAfter = afterCode.replace(/\r\n/g, '\n').trim();
|
| 80 |
+
|
| 81 |
+
// Se os conteúdos são idênticos após normalização, não há mudanças
|
| 82 |
+
if (normalizedBefore === normalizedAfter) {
|
| 83 |
+
return {
|
| 84 |
+
beforeLines: normalizedBefore.split('\n'),
|
| 85 |
+
afterLines: normalizedAfter.split('\n'),
|
| 86 |
+
hasChanges: false,
|
| 87 |
+
lineChanges: { before: new Set(), after: new Set() },
|
| 88 |
+
unifiedBlocks: []
|
| 89 |
+
};
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
// Processar as diferenças com configurações mais precisas
|
| 93 |
+
const changes = diffLines(normalizedBefore, normalizedAfter, {
|
| 94 |
+
newlineIsToken: true,
|
| 95 |
+
ignoreWhitespace: false,
|
| 96 |
+
ignoreCase: false
|
| 97 |
+
});
|
| 98 |
+
|
| 99 |
+
// Mapear as mudanças com mais precisão
|
| 100 |
+
const beforeLines = normalizedBefore.split('\n');
|
| 101 |
+
const afterLines = normalizedAfter.split('\n');
|
| 102 |
+
const lineChanges = {
|
| 103 |
+
before: new Set<number>(),
|
| 104 |
+
after: new Set<number>()
|
| 105 |
+
};
|
| 106 |
+
|
| 107 |
+
let beforeLineNumber = 0;
|
| 108 |
+
let afterLineNumber = 0;
|
| 109 |
+
|
| 110 |
+
const unifiedBlocks = changes.map(change => {
|
| 111 |
+
const lines = change.value.split('\n').filter(line => line.length > 0);
|
| 112 |
+
|
| 113 |
+
if (change.added) {
|
| 114 |
+
lines.forEach((_, i) => lineChanges.after.add(afterLineNumber + i));
|
| 115 |
+
const block = lines.map((line, i) => ({
|
| 116 |
+
lineNumber: afterLineNumber + i,
|
| 117 |
+
content: line,
|
| 118 |
+
type: 'added' as const
|
| 119 |
+
}));
|
| 120 |
+
afterLineNumber += lines.length;
|
| 121 |
+
return block;
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
if (change.removed) {
|
| 125 |
+
lines.forEach((_, i) => lineChanges.before.add(beforeLineNumber + i));
|
| 126 |
+
const block = lines.map((line, i) => ({
|
| 127 |
+
lineNumber: beforeLineNumber + i,
|
| 128 |
+
content: line,
|
| 129 |
+
type: 'removed' as const
|
| 130 |
+
}));
|
| 131 |
+
beforeLineNumber += lines.length;
|
| 132 |
+
return block;
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
const block = lines.map((line, i) => ({
|
| 136 |
+
lineNumber: afterLineNumber + i,
|
| 137 |
+
content: line,
|
| 138 |
+
type: 'unchanged' as const,
|
| 139 |
+
correspondingLine: beforeLineNumber + i
|
| 140 |
+
}));
|
| 141 |
+
beforeLineNumber += lines.length;
|
| 142 |
+
afterLineNumber += lines.length;
|
| 143 |
+
return block;
|
| 144 |
+
}).flat();
|
| 145 |
+
|
| 146 |
+
return {
|
| 147 |
+
beforeLines,
|
| 148 |
+
afterLines,
|
| 149 |
+
hasChanges: lineChanges.before.size > 0 || lineChanges.after.size > 0,
|
| 150 |
+
lineChanges,
|
| 151 |
+
unifiedBlocks,
|
| 152 |
+
isBinary: false
|
| 153 |
+
};
|
| 154 |
+
} catch (error) {
|
| 155 |
+
console.error('Error processing changes:', error);
|
| 156 |
+
return {
|
| 157 |
+
beforeLines: [],
|
| 158 |
+
afterLines: [],
|
| 159 |
+
hasChanges: false,
|
| 160 |
+
lineChanges: { before: new Set(), after: new Set() },
|
| 161 |
+
unifiedBlocks: [],
|
| 162 |
+
error: true,
|
| 163 |
+
isBinary: false
|
| 164 |
+
};
|
| 165 |
+
}
|
| 166 |
+
};
|
| 167 |
+
|
| 168 |
+
const lineNumberStyles = "w-12 shrink-0 pl-2 py-0.5 text-left font-mono text-bolt-elements-textTertiary border-r border-bolt-elements-borderColor bg-bolt-elements-background-depth-1";
|
| 169 |
+
const lineContentStyles = "px-4 py-0.5 font-mono whitespace-pre flex-1 group-hover:bg-bolt-elements-background-depth-2 text-bolt-elements-textPrimary";
|
| 170 |
+
|
| 171 |
+
const renderContentWarning = (type: 'binary' | 'error') => (
|
| 172 |
+
<div className="h-full flex items-center justify-center p-4">
|
| 173 |
+
<div className="text-center text-bolt-elements-textTertiary">
|
| 174 |
+
<div className={`i-ph:${type === 'binary' ? 'file-x' : 'warning-circle'} text-4xl text-red-400 mb-2 mx-auto`} />
|
| 175 |
+
<p className="font-medium text-bolt-elements-textPrimary">
|
| 176 |
+
{type === 'binary' ? 'Binary file detected' : 'Error processing file'}
|
| 177 |
+
</p>
|
| 178 |
+
<p className="text-sm mt-1">
|
| 179 |
+
{type === 'binary'
|
| 180 |
+
? 'Diff view is not available for binary files'
|
| 181 |
+
: 'Could not generate diff preview'}
|
| 182 |
+
</p>
|
| 183 |
+
</div>
|
| 184 |
+
</div>
|
| 185 |
+
);
|
| 186 |
+
|
| 187 |
+
const NoChangesView = memo(({ beforeCode, language, highlighter }: {
|
| 188 |
+
beforeCode: string;
|
| 189 |
+
language: string;
|
| 190 |
+
highlighter: any;
|
| 191 |
+
}) => (
|
| 192 |
+
<div className="h-full flex flex-col items-center justify-center p-4">
|
| 193 |
+
<div className="text-center text-bolt-elements-textTertiary">
|
| 194 |
+
<div className="i-ph:files text-4xl text-green-400 mb-2 mx-auto" />
|
| 195 |
+
<p className="font-medium text-bolt-elements-textPrimary">Files are identical</p>
|
| 196 |
+
<p className="text-sm mt-1">Both versions match exactly</p>
|
| 197 |
+
</div>
|
| 198 |
+
<div className="mt-4 w-full max-w-2xl bg-bolt-elements-background-depth-1 rounded-lg border border-bolt-elements-borderColor overflow-hidden">
|
| 199 |
+
<div className="p-2 text-xs font-bold text-bolt-elements-textTertiary border-b border-bolt-elements-borderColor">
|
| 200 |
+
Current Content
|
| 201 |
+
</div>
|
| 202 |
+
<div className="overflow-auto max-h-96">
|
| 203 |
+
{beforeCode.split('\n').map((line, index) => (
|
| 204 |
+
<div key={index} className="flex group min-w-fit">
|
| 205 |
+
<div className={lineNumberStyles}>{index + 1}</div>
|
| 206 |
+
<div className={lineContentStyles}>
|
| 207 |
+
<span className="mr-2"> </span>
|
| 208 |
+
<span dangerouslySetInnerHTML={{
|
| 209 |
+
__html: highlighter ?
|
| 210 |
+
highlighter.codeToHtml(line, { lang: language, theme: 'github-dark' })
|
| 211 |
+
.replace(/<\/?pre[^>]*>/g, '')
|
| 212 |
+
.replace(/<\/?code[^>]*>/g, '')
|
| 213 |
+
: line
|
| 214 |
+
}} />
|
| 215 |
+
</div>
|
| 216 |
+
</div>
|
| 217 |
+
))}
|
| 218 |
+
</div>
|
| 219 |
+
</div>
|
| 220 |
+
</div>
|
| 221 |
+
));
|
| 222 |
+
|
| 223 |
+
const InlineDiffComparison = memo(({ beforeCode, afterCode, filename, language, lightTheme, darkTheme }: CodeComparisonProps) => {
|
| 224 |
+
const [isFullscreen, setIsFullscreen] = useState(false);
|
| 225 |
+
const [highlighter, setHighlighter] = useState<any>(null);
|
| 226 |
+
|
| 227 |
+
const toggleFullscreen = useCallback(() => {
|
| 228 |
+
setIsFullscreen(prev => !prev);
|
| 229 |
+
}, []);
|
| 230 |
+
|
| 231 |
+
const { unifiedBlocks, hasChanges, isBinary, error } = useMemo(() => processChanges(beforeCode, afterCode), [beforeCode, afterCode]);
|
| 232 |
+
|
| 233 |
+
useEffect(() => {
|
| 234 |
+
getHighlighter({
|
| 235 |
+
themes: ['github-dark'],
|
| 236 |
+
langs: ['typescript', 'javascript', 'json', 'html', 'css', 'jsx', 'tsx']
|
| 237 |
+
}).then(setHighlighter);
|
| 238 |
+
}, []);
|
| 239 |
+
|
| 240 |
+
if (isBinary || error) return renderContentWarning(isBinary ? 'binary' : 'error');
|
| 241 |
+
|
| 242 |
+
const renderDiffBlock = (block: DiffBlock, index?: number) => {
|
| 243 |
+
const key = index !== undefined ? `${block.lineNumber}-${index}` : block.lineNumber;
|
| 244 |
+
const bgColor = {
|
| 245 |
+
added: 'bg-green-500/20 border-l-4 border-green-500',
|
| 246 |
+
removed: 'bg-red-500/20 border-l-4 border-red-500',
|
| 247 |
+
unchanged: ''
|
| 248 |
+
}[block.type];
|
| 249 |
+
|
| 250 |
+
const highlightedCode = highlighter ?
|
| 251 |
+
highlighter.codeToHtml(block.content, { lang: language, theme: 'github-dark' }) :
|
| 252 |
+
block.content;
|
| 253 |
+
|
| 254 |
+
return (
|
| 255 |
+
<div key={key} className="flex group min-w-fit">
|
| 256 |
+
<div className={lineNumberStyles}>
|
| 257 |
+
{block.lineNumber + 1}
|
| 258 |
+
</div>
|
| 259 |
+
<div className={`${lineContentStyles} ${bgColor}`}>
|
| 260 |
+
<span className="mr-2 text-bolt-elements-textTertiary">
|
| 261 |
+
{block.type === 'added' && '+'}
|
| 262 |
+
{block.type === 'removed' && '-'}
|
| 263 |
+
{block.type === 'unchanged' && ' '}
|
| 264 |
+
</span>
|
| 265 |
+
<span
|
| 266 |
+
dangerouslySetInnerHTML={{
|
| 267 |
+
__html: highlightedCode.replace(/<\/?pre[^>]*>/g, '').replace(/<\/?code[^>]*>/g, '')
|
| 268 |
+
}}
|
| 269 |
+
/>
|
| 270 |
+
</div>
|
| 271 |
+
</div>
|
| 272 |
+
);
|
| 273 |
+
};
|
| 274 |
+
|
| 275 |
+
return (
|
| 276 |
+
<FullscreenOverlay isFullscreen={isFullscreen}>
|
| 277 |
+
<div className="w-full h-full flex flex-col">
|
| 278 |
+
<div className="flex items-center bg-bolt-elements-background-depth-1 p-2 text-sm text-bolt-elements-textPrimary shrink-0">
|
| 279 |
+
<div className="i-ph:file mr-2 h-4 w-4 shrink-0" />
|
| 280 |
+
<span className="truncate">{filename}</span>
|
| 281 |
+
<span className="ml-auto shrink-0 flex items-center">
|
| 282 |
+
{hasChanges ? (
|
| 283 |
+
<span className="text-yellow-400">Modified</span>
|
| 284 |
+
) : (
|
| 285 |
+
<span className="text-green-400">No Changes</span>
|
| 286 |
+
)}
|
| 287 |
+
<FullscreenButton onClick={toggleFullscreen} isFullscreen={isFullscreen} />
|
| 288 |
+
</span>
|
| 289 |
+
</div>
|
| 290 |
+
<div className="flex-1 overflow-auto diff-panel-content">
|
| 291 |
+
{hasChanges ? (
|
| 292 |
+
<div className="overflow-x-auto">
|
| 293 |
+
{unifiedBlocks.map((block, index) => renderDiffBlock(block, index))}
|
| 294 |
+
</div>
|
| 295 |
+
) : (
|
| 296 |
+
<NoChangesView
|
| 297 |
+
beforeCode={beforeCode}
|
| 298 |
+
language={language}
|
| 299 |
+
highlighter={highlighter}
|
| 300 |
+
/>
|
| 301 |
+
)}
|
| 302 |
+
</div>
|
| 303 |
+
</div>
|
| 304 |
+
</FullscreenOverlay>
|
| 305 |
+
);
|
| 306 |
+
});
|
| 307 |
+
|
| 308 |
+
const SideBySideComparison = memo(({
|
| 309 |
+
beforeCode,
|
| 310 |
+
afterCode,
|
| 311 |
+
language,
|
| 312 |
+
filename,
|
| 313 |
+
lightTheme,
|
| 314 |
+
darkTheme,
|
| 315 |
+
}: CodeComparisonProps) => {
|
| 316 |
+
const [isFullscreen, setIsFullscreen] = useState(false);
|
| 317 |
+
const [highlighter, setHighlighter] = useState<any>(null);
|
| 318 |
+
|
| 319 |
+
const toggleFullscreen = useCallback(() => {
|
| 320 |
+
setIsFullscreen(prev => !prev);
|
| 321 |
+
}, []);
|
| 322 |
+
|
| 323 |
+
const { beforeLines, afterLines, hasChanges, lineChanges, isBinary, error } = useMemo(() => processChanges(beforeCode, afterCode), [beforeCode, afterCode]);
|
| 324 |
+
|
| 325 |
+
useEffect(() => {
|
| 326 |
+
getHighlighter({
|
| 327 |
+
themes: ['github-dark'],
|
| 328 |
+
langs: ['typescript', 'javascript', 'json', 'html', 'css', 'jsx', 'tsx']
|
| 329 |
+
}).then(setHighlighter);
|
| 330 |
+
}, []);
|
| 331 |
+
|
| 332 |
+
if (isBinary || error) return renderContentWarning(isBinary ? 'binary' : 'error');
|
| 333 |
+
|
| 334 |
+
const renderCode = (code: string) => {
|
| 335 |
+
if (!highlighter) return code;
|
| 336 |
+
const highlightedCode = highlighter.codeToHtml(code, {
|
| 337 |
+
lang: language,
|
| 338 |
+
theme: 'github-dark'
|
| 339 |
+
});
|
| 340 |
+
return highlightedCode.replace(/<\/?pre[^>]*>/g, '').replace(/<\/?code[^>]*>/g, '');
|
| 341 |
+
};
|
| 342 |
+
|
| 343 |
+
return (
|
| 344 |
+
<FullscreenOverlay isFullscreen={isFullscreen}>
|
| 345 |
+
<div className="w-full h-full flex flex-col">
|
| 346 |
+
<div className="flex items-center bg-bolt-elements-background-depth-1 p-2 text-sm text-bolt-elements-textPrimary shrink-0">
|
| 347 |
+
<div className="i-ph:file mr-2 h-4 w-4 shrink-0" />
|
| 348 |
+
<span className="truncate">{filename}</span>
|
| 349 |
+
<span className="ml-auto shrink-0 flex items-center">
|
| 350 |
+
{hasChanges ? (
|
| 351 |
+
<span className="text-yellow-400">Modified</span>
|
| 352 |
+
) : (
|
| 353 |
+
<span className="text-green-400">No Changes</span>
|
| 354 |
+
)}
|
| 355 |
+
<FullscreenButton onClick={toggleFullscreen} isFullscreen={isFullscreen} />
|
| 356 |
+
</span>
|
| 357 |
+
</div>
|
| 358 |
+
<div className="flex-1 overflow-auto diff-panel-content">
|
| 359 |
+
{hasChanges ? (
|
| 360 |
+
<div className="grid md:grid-cols-2 divide-x divide-bolt-elements-borderColor relative h-full">
|
| 361 |
+
<div className="overflow-auto">
|
| 362 |
+
<div className="overflow-auto">
|
| 363 |
+
{beforeLines.map((line, index) => (
|
| 364 |
+
<div key={`before-${index}`} className="flex group min-w-fit">
|
| 365 |
+
<div className={lineNumberStyles}>{index + 1}</div>
|
| 366 |
+
<div className={`${lineContentStyles} ${lineChanges.before.has(index) ? 'bg-red-500/20 border-l-4 border-red-500' : ''}`}>
|
| 367 |
+
<span className="mr-2 text-bolt-elements-textTertiary">
|
| 368 |
+
{lineChanges.before.has(index) ? '-' : ' '}
|
| 369 |
+
</span>
|
| 370 |
+
<span dangerouslySetInnerHTML={{ __html: renderCode(line) }} />
|
| 371 |
+
</div>
|
| 372 |
+
</div>
|
| 373 |
+
))}
|
| 374 |
+
</div>
|
| 375 |
+
</div>
|
| 376 |
+
<div className="overflow-auto">
|
| 377 |
+
{afterLines.map((line, index) => (
|
| 378 |
+
<div key={`after-${index}`} className="flex group min-w-fit">
|
| 379 |
+
<div className={lineNumberStyles}>{index + 1}</div>
|
| 380 |
+
<div className={`${lineContentStyles} ${lineChanges.after.has(index) ? 'bg-green-500/20 border-l-4 border-green-500' : ''}`}>
|
| 381 |
+
<span className="mr-2 text-bolt-elements-textTertiary">
|
| 382 |
+
{lineChanges.after.has(index) ? '+' : ' '}
|
| 383 |
+
</span>
|
| 384 |
+
<span dangerouslySetInnerHTML={{ __html: renderCode(line) }} />
|
| 385 |
+
</div>
|
| 386 |
+
</div>
|
| 387 |
+
))}
|
| 388 |
+
</div>
|
| 389 |
+
</div>
|
| 390 |
+
) : (
|
| 391 |
+
<NoChangesView
|
| 392 |
+
beforeCode={beforeCode}
|
| 393 |
+
language={language}
|
| 394 |
+
highlighter={highlighter}
|
| 395 |
+
/>
|
| 396 |
+
)}
|
| 397 |
+
</div>
|
| 398 |
+
</div>
|
| 399 |
+
</FullscreenOverlay>
|
| 400 |
+
);
|
| 401 |
+
});
|
| 402 |
+
|
| 403 |
+
interface DiffViewProps {
|
| 404 |
+
fileHistory: Record<string, FileHistory>;
|
| 405 |
+
setFileHistory: React.Dispatch<React.SetStateAction<Record<string, FileHistory>>>;
|
| 406 |
+
diffViewMode: 'inline' | 'side';
|
| 407 |
+
actionRunner: ActionRunner;
|
| 408 |
+
}
|
| 409 |
+
|
| 410 |
+
export const DiffView = memo(({ fileHistory, setFileHistory, diffViewMode, actionRunner }: DiffViewProps) => {
|
| 411 |
+
const files = useStore(workbenchStore.files) as FileMap;
|
| 412 |
+
const selectedFile = useStore(workbenchStore.selectedFile);
|
| 413 |
+
const currentDocument = useStore(workbenchStore.currentDocument) as EditorDocument;
|
| 414 |
+
const unsavedFiles = useStore(workbenchStore.unsavedFiles);
|
| 415 |
+
|
| 416 |
+
useEffect(() => {
|
| 417 |
+
if (selectedFile && currentDocument) {
|
| 418 |
+
const file = files[selectedFile];
|
| 419 |
+
if (!file || !('content' in file)) return;
|
| 420 |
+
|
| 421 |
+
const existingHistory = fileHistory[selectedFile];
|
| 422 |
+
const currentContent = currentDocument.value;
|
| 423 |
+
|
| 424 |
+
const relativePath = extractRelativePath(selectedFile);
|
| 425 |
+
const unifiedDiff = diffFiles(
|
| 426 |
+
relativePath,
|
| 427 |
+
existingHistory?.originalContent || file.content,
|
| 428 |
+
currentContent
|
| 429 |
+
);
|
| 430 |
+
|
| 431 |
+
if (unifiedDiff) {
|
| 432 |
+
const newChanges = diffLines(
|
| 433 |
+
existingHistory?.originalContent || file.content,
|
| 434 |
+
currentContent
|
| 435 |
+
);
|
| 436 |
+
|
| 437 |
+
const newHistory: FileHistory = {
|
| 438 |
+
originalContent: existingHistory?.originalContent || file.content,
|
| 439 |
+
lastModified: Date.now(),
|
| 440 |
+
changes: [
|
| 441 |
+
...(existingHistory?.changes || []),
|
| 442 |
+
...newChanges
|
| 443 |
+
].slice(-100), // Limitar histórico de mudanças
|
| 444 |
+
versions: [
|
| 445 |
+
...(existingHistory?.versions || []),
|
| 446 |
+
{
|
| 447 |
+
timestamp: Date.now(),
|
| 448 |
+
content: currentContent
|
| 449 |
+
}
|
| 450 |
+
].slice(-10), // Manter apenas as 10 últimas versões
|
| 451 |
+
changeSource: 'auto-save'
|
| 452 |
+
};
|
| 453 |
+
|
| 454 |
+
setFileHistory(prev => ({ ...prev, [selectedFile]: newHistory }));
|
| 455 |
+
}
|
| 456 |
+
}
|
| 457 |
+
}, [selectedFile, currentDocument?.value, files, setFileHistory, unsavedFiles]);
|
| 458 |
+
|
| 459 |
+
if (!selectedFile || !currentDocument) {
|
| 460 |
+
return (
|
| 461 |
+
<div className="flex w-full h-full justify-center items-center bg-bolt-elements-background-depth-1 text-bolt-elements-textPrimary">
|
| 462 |
+
Select a file to view differences
|
| 463 |
+
</div>
|
| 464 |
+
);
|
| 465 |
+
}
|
| 466 |
+
|
| 467 |
+
const file = files[selectedFile];
|
| 468 |
+
const originalContent = file && 'content' in file ? file.content : '';
|
| 469 |
+
const currentContent = currentDocument.value;
|
| 470 |
+
|
| 471 |
+
const history = fileHistory[selectedFile];
|
| 472 |
+
const effectiveOriginalContent = history?.originalContent || originalContent;
|
| 473 |
+
const language = getLanguageFromExtension(selectedFile.split('.').pop() || '');
|
| 474 |
+
|
| 475 |
+
try {
|
| 476 |
+
return (
|
| 477 |
+
<div className="h-full overflow-hidden">
|
| 478 |
+
{diffViewMode === 'inline' ? (
|
| 479 |
+
<InlineDiffComparison
|
| 480 |
+
beforeCode={effectiveOriginalContent}
|
| 481 |
+
afterCode={currentContent}
|
| 482 |
+
language={language}
|
| 483 |
+
filename={selectedFile}
|
| 484 |
+
lightTheme="github-light"
|
| 485 |
+
darkTheme="github-dark"
|
| 486 |
+
/>
|
| 487 |
+
) : (
|
| 488 |
+
<SideBySideComparison
|
| 489 |
+
beforeCode={effectiveOriginalContent}
|
| 490 |
+
afterCode={currentContent}
|
| 491 |
+
language={language}
|
| 492 |
+
filename={selectedFile}
|
| 493 |
+
lightTheme="github-light"
|
| 494 |
+
darkTheme="github-dark"
|
| 495 |
+
/>
|
| 496 |
+
)}
|
| 497 |
+
</div>
|
| 498 |
+
);
|
| 499 |
+
} catch (error) {
|
| 500 |
+
console.error('DiffView render error:', error);
|
| 501 |
+
return (
|
| 502 |
+
<div className="flex w-full h-full justify-center items-center bg-bolt-elements-background-depth-1 text-red-400">
|
| 503 |
+
<div className="text-center">
|
| 504 |
+
<div className="i-ph:warning-circle text-4xl mb-2" />
|
| 505 |
+
<p>Failed to render diff view</p>
|
| 506 |
+
</div>
|
| 507 |
+
</div>
|
| 508 |
+
);
|
| 509 |
+
}
|
| 510 |
+
});
|
app/components/workbench/Workbench.client.tsx
CHANGED
|
@@ -1,8 +1,15 @@
|
|
| 1 |
import { useStore } from '@nanostores/react';
|
| 2 |
import { motion, type HTMLMotionProps, type Variants } from 'framer-motion';
|
| 3 |
import { computed } from 'nanostores';
|
| 4 |
-
import { memo, useCallback, useEffect, useState } from 'react';
|
| 5 |
import { toast } from 'react-toastify';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
import {
|
| 7 |
type OnChangeCallback as OnEditorChange,
|
| 8 |
type OnScrollCallback as OnEditorScroll,
|
|
@@ -18,10 +25,16 @@ import { EditorPanel } from './EditorPanel';
|
|
| 18 |
import { Preview } from './Preview';
|
| 19 |
import useViewport from '~/lib/hooks';
|
| 20 |
import { PushToGitHubDialog } from '~/components/@settings/tabs/connections/components/PushToGitHubDialog';
|
|
|
|
| 21 |
|
| 22 |
interface WorkspaceProps {
|
| 23 |
chatStarted?: boolean;
|
| 24 |
isStreaming?: boolean;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
}
|
| 26 |
|
| 27 |
const viewTransition = { ease: cubicEasingFn };
|
|
@@ -31,6 +44,10 @@ const sliderOptions: SliderOptions<WorkbenchViewType> = {
|
|
| 31 |
value: 'code',
|
| 32 |
text: 'Code',
|
| 33 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
right: {
|
| 35 |
value: 'preview',
|
| 36 |
text: 'Preview',
|
|
@@ -54,11 +71,171 @@ const workbenchVariants = {
|
|
| 54 |
},
|
| 55 |
} satisfies Variants;
|
| 56 |
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
renderLogger.trace('Workbench');
|
| 59 |
|
| 60 |
const [isSyncing, setIsSyncing] = useState(false);
|
| 61 |
const [isPushDialogOpen, setIsPushDialogOpen] = useState(false);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
const hasPreview = useStore(computed(workbenchStore.previews, (previews) => previews.length > 0));
|
| 64 |
const showWorkbench = useStore(workbenchStore.showWorkbench);
|
|
@@ -121,6 +298,15 @@ export const Workbench = memo(({ chatStarted, isStreaming }: WorkspaceProps) =>
|
|
| 121 |
}
|
| 122 |
}, []);
|
| 123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
return (
|
| 125 |
chatStarted && (
|
| 126 |
<motion.div
|
|
@@ -175,6 +361,14 @@ export const Workbench = memo(({ chatStarted, isStreaming }: WorkspaceProps) =>
|
|
| 175 |
</PanelHeaderButton>
|
| 176 |
</div>
|
| 177 |
)}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 178 |
<IconButton
|
| 179 |
icon="i-ph:x-circle"
|
| 180 |
className="-mr-1"
|
|
@@ -186,8 +380,8 @@ export const Workbench = memo(({ chatStarted, isStreaming }: WorkspaceProps) =>
|
|
| 186 |
</div>
|
| 187 |
<div className="relative flex-1 overflow-hidden">
|
| 188 |
<View
|
| 189 |
-
initial={{ x:
|
| 190 |
-
animate={{ x: selectedView === 'code' ? 0 : '-100%' }}
|
| 191 |
>
|
| 192 |
<EditorPanel
|
| 193 |
editorDocument={currentDocument}
|
|
@@ -203,8 +397,19 @@ export const Workbench = memo(({ chatStarted, isStreaming }: WorkspaceProps) =>
|
|
| 203 |
/>
|
| 204 |
</View>
|
| 205 |
<View
|
| 206 |
-
initial={{ x:
|
| 207 |
-
animate={{ x: selectedView === '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
>
|
| 209 |
<Preview />
|
| 210 |
</View>
|
|
@@ -215,14 +420,24 @@ export const Workbench = memo(({ chatStarted, isStreaming }: WorkspaceProps) =>
|
|
| 215 |
<PushToGitHubDialog
|
| 216 |
isOpen={isPushDialogOpen}
|
| 217 |
onClose={() => setIsPushDialogOpen(false)}
|
| 218 |
-
onPush={async (repoName, username, token
|
| 219 |
try {
|
| 220 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 221 |
return repoUrl;
|
| 222 |
} catch (error) {
|
| 223 |
console.error('Error pushing to GitHub:', error);
|
| 224 |
toast.error('Failed to push to GitHub');
|
| 225 |
-
throw error;
|
| 226 |
}
|
| 227 |
}}
|
| 228 |
/>
|
|
|
|
| 1 |
import { useStore } from '@nanostores/react';
|
| 2 |
import { motion, type HTMLMotionProps, type Variants } from 'framer-motion';
|
| 3 |
import { computed } from 'nanostores';
|
| 4 |
+
import { memo, useCallback, useEffect, useState, useMemo } from 'react';
|
| 5 |
import { toast } from 'react-toastify';
|
| 6 |
+
import { Popover, Transition } from '@headlessui/react';
|
| 7 |
+
import { type Change } from 'diff';
|
| 8 |
+
import { formatDistanceToNow as formatDistance } from 'date-fns';
|
| 9 |
+
import { ActionRunner } from '~/lib/runtime/action-runner';
|
| 10 |
+
import { getLanguageFromExtension } from '~/utils/getLanguageFromExtension';
|
| 11 |
+
import type { FileHistory } from '~/types/actions';
|
| 12 |
+
import { DiffView } from './DiffView';
|
| 13 |
import {
|
| 14 |
type OnChangeCallback as OnEditorChange,
|
| 15 |
type OnScrollCallback as OnEditorScroll,
|
|
|
|
| 25 |
import { Preview } from './Preview';
|
| 26 |
import useViewport from '~/lib/hooks';
|
| 27 |
import { PushToGitHubDialog } from '~/components/@settings/tabs/connections/components/PushToGitHubDialog';
|
| 28 |
+
import Cookies from 'js-cookie';
|
| 29 |
|
| 30 |
interface WorkspaceProps {
|
| 31 |
chatStarted?: boolean;
|
| 32 |
isStreaming?: boolean;
|
| 33 |
+
actionRunner: ActionRunner;
|
| 34 |
+
metadata?: {
|
| 35 |
+
gitUrl?: string;
|
| 36 |
+
};
|
| 37 |
+
updateChatMestaData?: (metadata: any) => void;
|
| 38 |
}
|
| 39 |
|
| 40 |
const viewTransition = { ease: cubicEasingFn };
|
|
|
|
| 44 |
value: 'code',
|
| 45 |
text: 'Code',
|
| 46 |
},
|
| 47 |
+
middle: {
|
| 48 |
+
value: 'diff',
|
| 49 |
+
text: 'Diff',
|
| 50 |
+
},
|
| 51 |
right: {
|
| 52 |
value: 'preview',
|
| 53 |
text: 'Preview',
|
|
|
|
| 71 |
},
|
| 72 |
} satisfies Variants;
|
| 73 |
|
| 74 |
+
const FileModifiedDropdown = memo(({
|
| 75 |
+
fileHistory,
|
| 76 |
+
onSelectFile,
|
| 77 |
+
diffViewMode,
|
| 78 |
+
toggleDiffViewMode,
|
| 79 |
+
}: {
|
| 80 |
+
fileHistory: Record<string, FileHistory>,
|
| 81 |
+
onSelectFile: (filePath: string) => void,
|
| 82 |
+
diffViewMode: 'inline' | 'side',
|
| 83 |
+
toggleDiffViewMode: () => void,
|
| 84 |
+
}) => {
|
| 85 |
+
const modifiedFiles = Object.entries(fileHistory);
|
| 86 |
+
const hasChanges = modifiedFiles.length > 0;
|
| 87 |
+
const [searchQuery, setSearchQuery] = useState('');
|
| 88 |
+
|
| 89 |
+
const filteredFiles = useMemo(() => {
|
| 90 |
+
return modifiedFiles.filter(([filePath]) =>
|
| 91 |
+
filePath.toLowerCase().includes(searchQuery.toLowerCase())
|
| 92 |
+
);
|
| 93 |
+
}, [modifiedFiles, searchQuery]);
|
| 94 |
+
|
| 95 |
+
return (
|
| 96 |
+
<div className="flex items-center gap-2">
|
| 97 |
+
<Popover className="relative">
|
| 98 |
+
{({ open }: { open: boolean }) => (
|
| 99 |
+
<>
|
| 100 |
+
<Popover.Button className="flex items-center gap-2 px-3 py-1.5 text-sm rounded-lg bg-bolt-elements-background-depth-2 hover:bg-bolt-elements-background-depth-3 transition-colors text-bolt-elements-textPrimary border border-bolt-elements-borderColor">
|
| 101 |
+
<span className="font-medium">File Changes</span>
|
| 102 |
+
{hasChanges && (
|
| 103 |
+
<span className="w-5 h-5 rounded-full bg-accent-500/20 text-accent-500 text-xs flex items-center justify-center border border-accent-500/30">
|
| 104 |
+
{modifiedFiles.length}
|
| 105 |
+
</span>
|
| 106 |
+
)}
|
| 107 |
+
</Popover.Button>
|
| 108 |
+
<Transition
|
| 109 |
+
show={open}
|
| 110 |
+
enter="transition duration-100 ease-out"
|
| 111 |
+
enterFrom="transform scale-95 opacity-0"
|
| 112 |
+
enterTo="transform scale-100 opacity-100"
|
| 113 |
+
leave="transition duration-75 ease-out"
|
| 114 |
+
leaveFrom="transform scale-100 opacity-100"
|
| 115 |
+
leaveTo="transform scale-95 opacity-0"
|
| 116 |
+
>
|
| 117 |
+
<Popover.Panel className="absolute right-0 z-20 mt-2 w-80 origin-top-right rounded-xl bg-bolt-elements-background-depth-2 shadow-xl border border-bolt-elements-borderColor">
|
| 118 |
+
<div className="p-2">
|
| 119 |
+
<div className="relative mx-2 mb-2">
|
| 120 |
+
<input
|
| 121 |
+
type="text"
|
| 122 |
+
placeholder="Search files..."
|
| 123 |
+
value={searchQuery}
|
| 124 |
+
onChange={(e) => setSearchQuery(e.target.value)}
|
| 125 |
+
className="w-full pl-8 pr-3 py-1.5 text-sm rounded-lg bg-bolt-elements-background-depth-1 border border-bolt-elements-borderColor focus:outline-none focus:ring-2 focus:ring-blue-500/50"
|
| 126 |
+
/>
|
| 127 |
+
<div className="absolute left-2 top-1/2 -translate-y-1/2 text-bolt-elements-textTertiary">
|
| 128 |
+
<div className="i-ph:magnifying-glass" />
|
| 129 |
+
</div>
|
| 130 |
+
</div>
|
| 131 |
+
|
| 132 |
+
<div className="max-h-60 overflow-y-auto">
|
| 133 |
+
{filteredFiles.length > 0 ? (
|
| 134 |
+
filteredFiles.map(([filePath, history]) => {
|
| 135 |
+
const extension = filePath.split('.').pop() || '';
|
| 136 |
+
const language = getLanguageFromExtension(extension);
|
| 137 |
+
|
| 138 |
+
return (
|
| 139 |
+
<button
|
| 140 |
+
key={filePath}
|
| 141 |
+
onClick={() => onSelectFile(filePath)}
|
| 142 |
+
className="w-full px-3 py-2 text-left rounded-md hover:bg-bolt-elements-background-depth-1 transition-colors group bg-transparent"
|
| 143 |
+
>
|
| 144 |
+
<div className="flex items-center gap-2">
|
| 145 |
+
<div className="shrink-0 w-5 h-5 text-bolt-elements-textTertiary">
|
| 146 |
+
{['typescript', 'javascript', 'jsx', 'tsx'].includes(language) && <div className="i-ph:file-js" />}
|
| 147 |
+
{['css', 'scss', 'less'].includes(language) && <div className="i-ph:paint-brush" />}
|
| 148 |
+
{language === 'html' && <div className="i-ph:code" />}
|
| 149 |
+
{language === 'json' && <div className="i-ph:brackets-curly" />}
|
| 150 |
+
{language === 'python' && <div className="i-ph:file-text" />}
|
| 151 |
+
{language === 'markdown' && <div className="i-ph:article" />}
|
| 152 |
+
{['yaml', 'yml'].includes(language) && <div className="i-ph:file-text" />}
|
| 153 |
+
{language === 'sql' && <div className="i-ph:database" />}
|
| 154 |
+
{language === 'dockerfile' && <div className="i-ph:cube" />}
|
| 155 |
+
{language === 'shell' && <div className="i-ph:terminal" />}
|
| 156 |
+
{!['typescript', 'javascript', 'css', 'html', 'json', 'python', 'markdown', 'yaml', 'yml', 'sql', 'dockerfile', 'shell', 'jsx', 'tsx', 'scss', 'less'].includes(language) && <div className="i-ph:file-text" />}
|
| 157 |
+
</div>
|
| 158 |
+
<div className="flex-1 min-w-0">
|
| 159 |
+
<div className="flex items-center justify-between gap-2">
|
| 160 |
+
<span className="truncate text-sm font-medium text-bolt-elements-textPrimary">
|
| 161 |
+
{filePath.split('/').pop()}
|
| 162 |
+
</span>
|
| 163 |
+
</div>
|
| 164 |
+
<div className="flex items-center gap-2 text-xs text-bolt-elements-textTertiary">
|
| 165 |
+
<span className="truncate">{filePath}</span>
|
| 166 |
+
<span className="shrink-0">•</span>
|
| 167 |
+
<span className="shrink-0">
|
| 168 |
+
{formatDistance(history.lastModified)}
|
| 169 |
+
</span>
|
| 170 |
+
</div>
|
| 171 |
+
</div>
|
| 172 |
+
</div>
|
| 173 |
+
</button>
|
| 174 |
+
);
|
| 175 |
+
})
|
| 176 |
+
) : (
|
| 177 |
+
<div className="flex flex-col items-center justify-center p-4 text-center">
|
| 178 |
+
<div className="w-12 h-12 mb-2 text-bolt-elements-textTertiary">
|
| 179 |
+
<div className="i-ph:file-dashed" />
|
| 180 |
+
</div>
|
| 181 |
+
<p className="text-sm font-medium text-bolt-elements-textPrimary">
|
| 182 |
+
{searchQuery ? 'No matching files' : 'No modified files'}
|
| 183 |
+
</p>
|
| 184 |
+
<p className="text-xs text-bolt-elements-textTertiary mt-1">
|
| 185 |
+
{searchQuery ? 'Try another search' : 'Changes will appear here as you edit'}
|
| 186 |
+
</p>
|
| 187 |
+
</div>
|
| 188 |
+
)}
|
| 189 |
+
</div>
|
| 190 |
+
</div>
|
| 191 |
+
|
| 192 |
+
{hasChanges && (
|
| 193 |
+
<div className="border-t border-bolt-elements-borderColor p-2">
|
| 194 |
+
<button
|
| 195 |
+
onClick={() => {
|
| 196 |
+
navigator.clipboard.writeText(
|
| 197 |
+
filteredFiles.map(([filePath]) => filePath).join('\n')
|
| 198 |
+
);
|
| 199 |
+
toast('File list copied to clipboard', {
|
| 200 |
+
icon: <div className="i-ph:check-circle text-accent-500" />
|
| 201 |
+
});
|
| 202 |
+
}}
|
| 203 |
+
className="w-full flex items-center justify-center gap-2 px-3 py-1.5 text-sm rounded-lg bg-bolt-elements-background-depth-1 hover:bg-bolt-elements-background-depth-3 transition-colors text-bolt-elements-textTertiary hover:text-bolt-elements-textPrimary"
|
| 204 |
+
>
|
| 205 |
+
Copy File List
|
| 206 |
+
</button>
|
| 207 |
+
</div>
|
| 208 |
+
)}
|
| 209 |
+
</Popover.Panel>
|
| 210 |
+
</Transition>
|
| 211 |
+
</>
|
| 212 |
+
)}
|
| 213 |
+
</Popover>
|
| 214 |
+
<button
|
| 215 |
+
onClick={(e) => { e.stopPropagation(); toggleDiffViewMode(); }}
|
| 216 |
+
className="flex items-center gap-2 px-3 py-1.5 text-sm rounded-lg bg-bolt-elements-background-depth-2 hover:bg-bolt-elements-background-depth-3 transition-colors text-bolt-elements-textPrimary border border-bolt-elements-borderColor"
|
| 217 |
+
>
|
| 218 |
+
<span className="font-medium">{diffViewMode === 'inline' ? 'Inline' : 'Side by Side'}</span>
|
| 219 |
+
</button>
|
| 220 |
+
</div>
|
| 221 |
+
);
|
| 222 |
+
});
|
| 223 |
+
|
| 224 |
+
export const Workbench = memo(({
|
| 225 |
+
chatStarted,
|
| 226 |
+
isStreaming,
|
| 227 |
+
actionRunner,
|
| 228 |
+
metadata,
|
| 229 |
+
updateChatMestaData
|
| 230 |
+
}: WorkspaceProps) => {
|
| 231 |
renderLogger.trace('Workbench');
|
| 232 |
|
| 233 |
const [isSyncing, setIsSyncing] = useState(false);
|
| 234 |
const [isPushDialogOpen, setIsPushDialogOpen] = useState(false);
|
| 235 |
+
const [diffViewMode, setDiffViewMode] = useState<'inline' | 'side'>('inline');
|
| 236 |
+
const [fileHistory, setFileHistory] = useState<Record<string, FileHistory>>({});
|
| 237 |
+
|
| 238 |
+
const modifiedFiles = Array.from(useStore(workbenchStore.unsavedFiles).keys());
|
| 239 |
|
| 240 |
const hasPreview = useStore(computed(workbenchStore.previews, (previews) => previews.length > 0));
|
| 241 |
const showWorkbench = useStore(workbenchStore.showWorkbench);
|
|
|
|
| 298 |
}
|
| 299 |
}, []);
|
| 300 |
|
| 301 |
+
const handleSelectFile = useCallback((filePath: string) => {
|
| 302 |
+
workbenchStore.setSelectedFile(filePath);
|
| 303 |
+
workbenchStore.currentView.set('diff');
|
| 304 |
+
}, []);
|
| 305 |
+
|
| 306 |
+
const toggleDiffViewMode = useCallback(() => {
|
| 307 |
+
setDiffViewMode(prev => prev === 'inline' ? 'side' : 'inline');
|
| 308 |
+
}, []);
|
| 309 |
+
|
| 310 |
return (
|
| 311 |
chatStarted && (
|
| 312 |
<motion.div
|
|
|
|
| 361 |
</PanelHeaderButton>
|
| 362 |
</div>
|
| 363 |
)}
|
| 364 |
+
{selectedView === 'diff' && (
|
| 365 |
+
<FileModifiedDropdown
|
| 366 |
+
fileHistory={fileHistory}
|
| 367 |
+
onSelectFile={handleSelectFile}
|
| 368 |
+
diffViewMode={diffViewMode}
|
| 369 |
+
toggleDiffViewMode={toggleDiffViewMode}
|
| 370 |
+
/>
|
| 371 |
+
)}
|
| 372 |
<IconButton
|
| 373 |
icon="i-ph:x-circle"
|
| 374 |
className="-mr-1"
|
|
|
|
| 380 |
</div>
|
| 381 |
<div className="relative flex-1 overflow-hidden">
|
| 382 |
<View
|
| 383 |
+
initial={{ x: '0%' }}
|
| 384 |
+
animate={{ x: selectedView === 'code' ? '0%' : '-100%' }}
|
| 385 |
>
|
| 386 |
<EditorPanel
|
| 387 |
editorDocument={currentDocument}
|
|
|
|
| 397 |
/>
|
| 398 |
</View>
|
| 399 |
<View
|
| 400 |
+
initial={{ x: '100%' }}
|
| 401 |
+
animate={{ x: selectedView === 'diff' ? '0%' : selectedView === 'code' ? '100%' : '-100%' }}
|
| 402 |
+
>
|
| 403 |
+
<DiffView
|
| 404 |
+
fileHistory={fileHistory}
|
| 405 |
+
setFileHistory={setFileHistory}
|
| 406 |
+
diffViewMode={diffViewMode}
|
| 407 |
+
actionRunner={actionRunner}
|
| 408 |
+
/>
|
| 409 |
+
</View>
|
| 410 |
+
<View
|
| 411 |
+
initial={{ x: '100%' }}
|
| 412 |
+
animate={{ x: selectedView === 'preview' ? '0%' : '100%' }}
|
| 413 |
>
|
| 414 |
<Preview />
|
| 415 |
</View>
|
|
|
|
| 420 |
<PushToGitHubDialog
|
| 421 |
isOpen={isPushDialogOpen}
|
| 422 |
onClose={() => setIsPushDialogOpen(false)}
|
| 423 |
+
onPush={async (repoName, username, token) => {
|
| 424 |
try {
|
| 425 |
+
const commitMessage = prompt('Please enter a commit message:', 'Initial commit') || 'Initial commit';
|
| 426 |
+
await workbenchStore.pushToGitHub(repoName, commitMessage, username, token);
|
| 427 |
+
const repoUrl = `https://github.com/${username}/${repoName}`;
|
| 428 |
+
|
| 429 |
+
if (updateChatMestaData && !metadata?.gitUrl) {
|
| 430 |
+
updateChatMestaData({
|
| 431 |
+
...(metadata || {}),
|
| 432 |
+
gitUrl: repoUrl,
|
| 433 |
+
});
|
| 434 |
+
}
|
| 435 |
+
|
| 436 |
return repoUrl;
|
| 437 |
} catch (error) {
|
| 438 |
console.error('Error pushing to GitHub:', error);
|
| 439 |
toast.error('Failed to push to GitHub');
|
| 440 |
+
throw error;
|
| 441 |
}
|
| 442 |
}}
|
| 443 |
/>
|
app/lib/runtime/action-runner.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
import type { WebContainer } from '@webcontainer/api';
|
| 2 |
-
import { path } from '~/utils/path';
|
| 3 |
import { atom, map, type MapStore } from 'nanostores';
|
| 4 |
-
import type { ActionAlert, BoltAction } from '~/types/actions';
|
| 5 |
import { createScopedLogger } from '~/utils/logger';
|
| 6 |
import { unreachable } from '~/utils/unreachable';
|
| 7 |
import type { ActionCallbackData } from './message-parser';
|
|
@@ -276,9 +276,9 @@ export class ActionRunner {
|
|
| 276 |
}
|
| 277 |
|
| 278 |
const webcontainer = await this.#webcontainer;
|
| 279 |
-
const relativePath =
|
| 280 |
|
| 281 |
-
let folder =
|
| 282 |
|
| 283 |
// remove trailing slashes
|
| 284 |
folder = folder.replace(/\/+$/g, '');
|
|
@@ -304,4 +304,31 @@ export class ActionRunner {
|
|
| 304 |
|
| 305 |
this.actions.setKey(id, { ...actions[id], ...newState });
|
| 306 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 307 |
}
|
|
|
|
| 1 |
import type { WebContainer } from '@webcontainer/api';
|
| 2 |
+
import { path as nodePath } from '~/utils/path';
|
| 3 |
import { atom, map, type MapStore } from 'nanostores';
|
| 4 |
+
import type { ActionAlert, BoltAction, FileHistory } from '~/types/actions';
|
| 5 |
import { createScopedLogger } from '~/utils/logger';
|
| 6 |
import { unreachable } from '~/utils/unreachable';
|
| 7 |
import type { ActionCallbackData } from './message-parser';
|
|
|
|
| 276 |
}
|
| 277 |
|
| 278 |
const webcontainer = await this.#webcontainer;
|
| 279 |
+
const relativePath = nodePath.relative(webcontainer.workdir, action.filePath);
|
| 280 |
|
| 281 |
+
let folder = nodePath.dirname(relativePath);
|
| 282 |
|
| 283 |
// remove trailing slashes
|
| 284 |
folder = folder.replace(/\/+$/g, '');
|
|
|
|
| 304 |
|
| 305 |
this.actions.setKey(id, { ...actions[id], ...newState });
|
| 306 |
}
|
| 307 |
+
|
| 308 |
+
async getFileHistory(filePath: string): Promise<FileHistory | null> {
|
| 309 |
+
try {
|
| 310 |
+
const webcontainer = await this.#webcontainer;
|
| 311 |
+
const historyPath = this.#getHistoryPath(filePath);
|
| 312 |
+
const content = await webcontainer.fs.readFile(historyPath, 'utf-8');
|
| 313 |
+
return JSON.parse(content);
|
| 314 |
+
} catch (error) {
|
| 315 |
+
return null;
|
| 316 |
+
}
|
| 317 |
+
}
|
| 318 |
+
|
| 319 |
+
async saveFileHistory(filePath: string, history: FileHistory) {
|
| 320 |
+
const webcontainer = await this.#webcontainer;
|
| 321 |
+
const historyPath = this.#getHistoryPath(filePath);
|
| 322 |
+
|
| 323 |
+
await this.#runFileAction({
|
| 324 |
+
type: 'file',
|
| 325 |
+
filePath: historyPath,
|
| 326 |
+
content: JSON.stringify(history),
|
| 327 |
+
changeSource: 'auto-save'
|
| 328 |
+
} as any);
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
#getHistoryPath(filePath: string) {
|
| 332 |
+
return nodePath.join('.history', filePath);
|
| 333 |
+
}
|
| 334 |
}
|
app/lib/stores/workbench.ts
CHANGED
|
@@ -10,18 +10,16 @@ import { FilesStore, type FileMap } from './files';
|
|
| 10 |
import { PreviewsStore } from './previews';
|
| 11 |
import { TerminalStore } from './terminal';
|
| 12 |
import JSZip from 'jszip';
|
| 13 |
-
import
|
|
|
|
| 14 |
import { Octokit, type RestEndpointMethodTypes } from '@octokit/rest';
|
| 15 |
-
import
|
| 16 |
import { extractRelativePath } from '~/utils/diff';
|
| 17 |
import { description } from '~/lib/persistence';
|
| 18 |
import Cookies from 'js-cookie';
|
| 19 |
import { createSampler } from '~/utils/sampler';
|
| 20 |
import type { ActionAlert } from '~/types/actions';
|
| 21 |
|
| 22 |
-
// Destructure saveAs from the CommonJS module
|
| 23 |
-
const { saveAs } = fileSaver;
|
| 24 |
-
|
| 25 |
export interface ArtifactState {
|
| 26 |
id: string;
|
| 27 |
title: string;
|
|
@@ -34,7 +32,7 @@ export type ArtifactUpdateState = Pick<ArtifactState, 'title' | 'closed'>;
|
|
| 34 |
|
| 35 |
type Artifacts = MapStore<Record<string, ArtifactState>>;
|
| 36 |
|
| 37 |
-
export type WorkbenchViewType = 'code' | 'preview';
|
| 38 |
|
| 39 |
export class WorkbenchStore {
|
| 40 |
#previewsStore = new PreviewsStore(webcontainer);
|
|
@@ -332,7 +330,7 @@ export class WorkbenchStore {
|
|
| 332 |
|
| 333 |
if (data.action.type === 'file') {
|
| 334 |
const wc = await webcontainer;
|
| 335 |
-
const fullPath =
|
| 336 |
|
| 337 |
if (this.selectedFile.value !== fullPath) {
|
| 338 |
this.setSelectedFile(fullPath);
|
|
@@ -437,13 +435,7 @@ export class WorkbenchStore {
|
|
| 437 |
return syncedFiles;
|
| 438 |
}
|
| 439 |
|
| 440 |
-
async pushToGitHub(
|
| 441 |
-
repoName: string,
|
| 442 |
-
commitMessage?: string,
|
| 443 |
-
githubUsername?: string,
|
| 444 |
-
ghToken?: string,
|
| 445 |
-
isPrivate: boolean = false,
|
| 446 |
-
) {
|
| 447 |
try {
|
| 448 |
// Use cookies if username and token are not provided
|
| 449 |
const githubToken = ghToken || Cookies.get('githubToken');
|
|
@@ -467,7 +459,7 @@ export class WorkbenchStore {
|
|
| 467 |
// Repository doesn't exist, so create a new one
|
| 468 |
const { data: newRepo } = await octokit.repos.createForAuthenticatedUser({
|
| 469 |
name: repoName,
|
| 470 |
-
private:
|
| 471 |
auto_init: true,
|
| 472 |
});
|
| 473 |
repo = newRepo;
|
|
@@ -545,7 +537,7 @@ export class WorkbenchStore {
|
|
| 545 |
sha: newCommit.sha,
|
| 546 |
});
|
| 547 |
|
| 548 |
-
|
| 549 |
} catch (error) {
|
| 550 |
console.error('Error pushing to GitHub:', error);
|
| 551 |
throw error; // Rethrow the error for further handling
|
|
|
|
| 10 |
import { PreviewsStore } from './previews';
|
| 11 |
import { TerminalStore } from './terminal';
|
| 12 |
import JSZip from 'jszip';
|
| 13 |
+
import pkg from 'file-saver';
|
| 14 |
+
const { saveAs } = pkg;
|
| 15 |
import { Octokit, type RestEndpointMethodTypes } from '@octokit/rest';
|
| 16 |
+
import * as nodePath from 'node:path';
|
| 17 |
import { extractRelativePath } from '~/utils/diff';
|
| 18 |
import { description } from '~/lib/persistence';
|
| 19 |
import Cookies from 'js-cookie';
|
| 20 |
import { createSampler } from '~/utils/sampler';
|
| 21 |
import type { ActionAlert } from '~/types/actions';
|
| 22 |
|
|
|
|
|
|
|
|
|
|
| 23 |
export interface ArtifactState {
|
| 24 |
id: string;
|
| 25 |
title: string;
|
|
|
|
| 32 |
|
| 33 |
type Artifacts = MapStore<Record<string, ArtifactState>>;
|
| 34 |
|
| 35 |
+
export type WorkbenchViewType = 'code' | 'diff' | 'preview';
|
| 36 |
|
| 37 |
export class WorkbenchStore {
|
| 38 |
#previewsStore = new PreviewsStore(webcontainer);
|
|
|
|
| 330 |
|
| 331 |
if (data.action.type === 'file') {
|
| 332 |
const wc = await webcontainer;
|
| 333 |
+
const fullPath = nodePath.join(wc.workdir, data.action.filePath);
|
| 334 |
|
| 335 |
if (this.selectedFile.value !== fullPath) {
|
| 336 |
this.setSelectedFile(fullPath);
|
|
|
|
| 435 |
return syncedFiles;
|
| 436 |
}
|
| 437 |
|
| 438 |
+
async pushToGitHub(repoName: string, commitMessage?: string, githubUsername?: string, ghToken?: string) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 439 |
try {
|
| 440 |
// Use cookies if username and token are not provided
|
| 441 |
const githubToken = ghToken || Cookies.get('githubToken');
|
|
|
|
| 459 |
// Repository doesn't exist, so create a new one
|
| 460 |
const { data: newRepo } = await octokit.repos.createForAuthenticatedUser({
|
| 461 |
name: repoName,
|
| 462 |
+
private: false,
|
| 463 |
auto_init: true,
|
| 464 |
});
|
| 465 |
repo = newRepo;
|
|
|
|
| 537 |
sha: newCommit.sha,
|
| 538 |
});
|
| 539 |
|
| 540 |
+
alert(`Repository created and code pushed: ${repo.html_url}`);
|
| 541 |
} catch (error) {
|
| 542 |
console.error('Error pushing to GitHub:', error);
|
| 543 |
throw error; // Rethrow the error for further handling
|
app/styles/diff-view.css
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.diff-panel-content {
|
| 2 |
+
scrollbar-width: thin;
|
| 3 |
+
scrollbar-color: rgba(155, 155, 155, 0.5) transparent;
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
.diff-panel-content::-webkit-scrollbar {
|
| 7 |
+
width: 8px;
|
| 8 |
+
height: 8px;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
.diff-panel-content::-webkit-scrollbar-track {
|
| 12 |
+
background: transparent;
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
.diff-panel-content::-webkit-scrollbar-thumb {
|
| 16 |
+
background-color: rgba(155, 155, 155, 0.5);
|
| 17 |
+
border-radius: 4px;
|
| 18 |
+
border: 2px solid transparent;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
.diff-panel-content::-webkit-scrollbar-thumb:hover {
|
| 22 |
+
background-color: rgba(155, 155, 155, 0.7);
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
/* Hide scrollbar for the left panel when not hovered */
|
| 26 |
+
.diff-panel:not(:hover) .diff-panel-content::-webkit-scrollbar {
|
| 27 |
+
display: none;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
.diff-panel:not(:hover) .diff-panel-content {
|
| 31 |
+
scrollbar-width: none;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
/* Estilos para as linhas de diff */
|
| 35 |
+
.diff-block-added {
|
| 36 |
+
@apply bg-green-500/20 border-l-4 border-green-500;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
.diff-block-removed {
|
| 40 |
+
@apply bg-red-500/20 border-l-4 border-red-500;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
/* Melhorar contraste para mudanças */
|
| 44 |
+
.diff-panel-content .group:hover .diff-block-added {
|
| 45 |
+
@apply bg-green-500/30;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
.diff-panel-content .group:hover .diff-block-removed {
|
| 49 |
+
@apply bg-red-500/30;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
/* Estilos unificados para ambas as visualizações */
|
| 53 |
+
.diff-line {
|
| 54 |
+
@apply flex group min-w-fit transition-colors duration-150;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.diff-line-number {
|
| 58 |
+
@apply w-12 shrink-0 pl-2 py-0.5 text-left font-mono text-bolt-elements-textTertiary border-r border-bolt-elements-borderColor bg-bolt-elements-background-depth-1;
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
.diff-line-content {
|
| 62 |
+
@apply px-4 py-0.5 font-mono whitespace-pre flex-1 group-hover:bg-bolt-elements-background-depth-2 text-bolt-elements-textPrimary;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
/* Cores específicas para adições/remoções */
|
| 66 |
+
.diff-added {
|
| 67 |
+
@apply bg-green-500/20 border-l-4 border-green-500;
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
.diff-removed {
|
| 71 |
+
@apply bg-red-500/20 border-l-4 border-red-500;
|
| 72 |
+
}
|
app/types/actions.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
|
|
|
|
|
| 1 |
export type ActionType = 'file' | 'shell';
|
| 2 |
|
| 3 |
export interface BaseAction {
|
|
@@ -28,3 +30,15 @@ export interface ActionAlert {
|
|
| 28 |
content: string;
|
| 29 |
source?: 'terminal' | 'preview'; // Add source to differentiate between terminal and preview errors
|
| 30 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type { Change } from 'diff';
|
| 2 |
+
|
| 3 |
export type ActionType = 'file' | 'shell';
|
| 4 |
|
| 5 |
export interface BaseAction {
|
|
|
|
| 30 |
content: string;
|
| 31 |
source?: 'terminal' | 'preview'; // Add source to differentiate between terminal and preview errors
|
| 32 |
}
|
| 33 |
+
|
| 34 |
+
export interface FileHistory {
|
| 35 |
+
originalContent: string;
|
| 36 |
+
lastModified: number;
|
| 37 |
+
changes: Change[];
|
| 38 |
+
versions: {
|
| 39 |
+
timestamp: number;
|
| 40 |
+
content: string;
|
| 41 |
+
}[];
|
| 42 |
+
// Novo campo para rastrear a origem das mudanças
|
| 43 |
+
changeSource?: 'user' | 'auto-save' | 'external';
|
| 44 |
+
}
|
app/utils/getLanguageFromExtension.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export const getLanguageFromExtension = (ext: string): string => {
|
| 2 |
+
const map: Record<string, string> = {
|
| 3 |
+
js: "javascript",
|
| 4 |
+
jsx: "jsx",
|
| 5 |
+
ts: "typescript",
|
| 6 |
+
tsx: "tsx",
|
| 7 |
+
json: "json",
|
| 8 |
+
html: "html",
|
| 9 |
+
css: "css",
|
| 10 |
+
py: "python",
|
| 11 |
+
java: "java",
|
| 12 |
+
rb: "ruby",
|
| 13 |
+
cpp: "cpp",
|
| 14 |
+
c: "c",
|
| 15 |
+
cs: "csharp",
|
| 16 |
+
go: "go",
|
| 17 |
+
rs: "rust",
|
| 18 |
+
php: "php",
|
| 19 |
+
swift: "swift",
|
| 20 |
+
md: "plaintext",
|
| 21 |
+
sh: "bash",
|
| 22 |
+
};
|
| 23 |
+
return map[ext] || "typescript";
|
| 24 |
+
};
|
package.json
CHANGED
|
@@ -74,6 +74,8 @@
|
|
| 74 |
"@radix-ui/react-switch": "^1.1.1",
|
| 75 |
"@radix-ui/react-tabs": "^1.1.2",
|
| 76 |
"@radix-ui/react-tooltip": "^1.1.4",
|
|
|
|
|
|
|
| 77 |
"@remix-run/cloudflare": "^2.15.2",
|
| 78 |
"@remix-run/cloudflare-pages": "^2.15.2",
|
| 79 |
"@remix-run/node": "^2.15.2",
|
|
|
|
| 74 |
"@radix-ui/react-switch": "^1.1.1",
|
| 75 |
"@radix-ui/react-tabs": "^1.1.2",
|
| 76 |
"@radix-ui/react-tooltip": "^1.1.4",
|
| 77 |
+
"lucide-react": "^0.474.0",
|
| 78 |
+
"next-themes": "^0.4.4",
|
| 79 |
"@remix-run/cloudflare": "^2.15.2",
|
| 80 |
"@remix-run/cloudflare-pages": "^2.15.2",
|
| 81 |
"@remix-run/node": "^2.15.2",
|
pnpm-lock.yaml
CHANGED
|
@@ -82,7 +82,7 @@ importers:
|
|
| 82 |
version: 6.36.2
|
| 83 |
'@headlessui/react':
|
| 84 |
specifier: ^2.2.0
|
| 85 |
-
version: 2.2.0(react-dom@18.3.1)(react@18.3.1)
|
| 86 |
'@iconify-json/svg-spinners':
|
| 87 |
specifier: ^1.2.1
|
| 88 |
version: 1.2.2
|
|
@@ -103,43 +103,43 @@ importers:
|
|
| 103 |
version: 0.0.5(zod@3.24.1)
|
| 104 |
'@phosphor-icons/react':
|
| 105 |
specifier: ^2.1.7
|
| 106 |
-
version: 2.1.7(react-dom@18.3.1)(react@18.3.1)
|
| 107 |
'@radix-ui/react-collapsible':
|
| 108 |
specifier: ^1.0.3
|
| 109 |
-
version: 1.1.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 110 |
'@radix-ui/react-context-menu':
|
| 111 |
specifier: ^2.2.2
|
| 112 |
-
version: 2.2.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 113 |
'@radix-ui/react-dialog':
|
| 114 |
specifier: ^1.1.5
|
| 115 |
-
version: 1.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 116 |
'@radix-ui/react-dropdown-menu':
|
| 117 |
specifier: ^2.1.6
|
| 118 |
-
version: 2.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 119 |
'@radix-ui/react-label':
|
| 120 |
specifier: ^2.1.1
|
| 121 |
-
version: 2.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 122 |
'@radix-ui/react-popover':
|
| 123 |
specifier: ^1.1.5
|
| 124 |
-
version: 1.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 125 |
'@radix-ui/react-progress':
|
| 126 |
specifier: ^1.0.3
|
| 127 |
-
version: 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 128 |
'@radix-ui/react-scroll-area':
|
| 129 |
specifier: ^1.2.2
|
| 130 |
-
version: 1.2.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 131 |
'@radix-ui/react-separator':
|
| 132 |
specifier: ^1.1.0
|
| 133 |
-
version: 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 134 |
'@radix-ui/react-switch':
|
| 135 |
specifier: ^1.1.1
|
| 136 |
-
version: 1.1.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 137 |
'@radix-ui/react-tabs':
|
| 138 |
specifier: ^1.1.2
|
| 139 |
-
version: 1.1.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 140 |
'@radix-ui/react-tooltip':
|
| 141 |
specifier: ^1.1.4
|
| 142 |
-
version: 1.1.8(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 143 |
'@remix-run/cloudflare':
|
| 144 |
specifier: ^2.15.2
|
| 145 |
version: 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)
|
|
@@ -151,7 +151,7 @@ importers:
|
|
| 151 |
version: 2.15.3(typescript@5.7.3)
|
| 152 |
'@remix-run/react':
|
| 153 |
specifier: ^2.15.2
|
| 154 |
-
version: 2.15.3(react-dom@18.3.1)(react@18.3.1)(typescript@5.7.3)
|
| 155 |
'@types/react-beautiful-dnd':
|
| 156 |
specifier: ^13.1.8
|
| 157 |
version: 13.1.8
|
|
@@ -202,7 +202,7 @@ importers:
|
|
| 202 |
version: 2.0.5
|
| 203 |
framer-motion:
|
| 204 |
specifier: ^11.12.0
|
| 205 |
-
version: 11.18.2(react-dom@18.3.1)(react@18.3.1)
|
| 206 |
ignore:
|
| 207 |
specifier: ^6.0.2
|
| 208 |
version: 6.0.2
|
|
@@ -227,9 +227,15 @@ importers:
|
|
| 227 |
jszip:
|
| 228 |
specifier: ^3.10.1
|
| 229 |
version: 3.10.1
|
|
|
|
|
|
|
|
|
|
| 230 |
nanostores:
|
| 231 |
specifier: ^0.10.3
|
| 232 |
version: 0.10.3
|
|
|
|
|
|
|
|
|
|
| 233 |
ollama-ai-provider:
|
| 234 |
specifier: ^0.15.2
|
| 235 |
version: 0.15.2(zod@3.24.1)
|
|
@@ -241,13 +247,13 @@ importers:
|
|
| 241 |
version: 18.3.1
|
| 242 |
react-beautiful-dnd:
|
| 243 |
specifier: ^13.1.1
|
| 244 |
-
version: 13.1.1(react-dom@18.3.1)(react@18.3.1)
|
| 245 |
react-chartjs-2:
|
| 246 |
specifier: ^5.3.0
|
| 247 |
version: 5.3.0(chart.js@4.4.7)(react@18.3.1)
|
| 248 |
react-dnd:
|
| 249 |
specifier: ^16.0.1
|
| 250 |
-
version: 16.0.1(@types/react@18.3.18)(react@18.3.1)
|
| 251 |
react-dnd-html5-backend:
|
| 252 |
specifier: ^16.0.1
|
| 253 |
version: 16.0.1
|
|
@@ -256,7 +262,7 @@ importers:
|
|
| 256 |
version: 18.3.1(react@18.3.1)
|
| 257 |
react-hotkeys-hook:
|
| 258 |
specifier: ^4.6.1
|
| 259 |
-
version: 4.6.1(react-dom@18.3.1)(react@18.3.1)
|
| 260 |
react-icons:
|
| 261 |
specifier: ^5.4.0
|
| 262 |
version: 5.4.0(react@18.3.1)
|
|
@@ -265,10 +271,10 @@ importers:
|
|
| 265 |
version: 9.0.3(@types/react@18.3.18)(react@18.3.1)
|
| 266 |
react-resizable-panels:
|
| 267 |
specifier: ^2.1.7
|
| 268 |
-
version: 2.1.7(react-dom@18.3.1)(react@18.3.1)
|
| 269 |
react-toastify:
|
| 270 |
specifier: ^10.0.6
|
| 271 |
-
version: 10.0.6(react-dom@18.3.1)(react@18.3.1)
|
| 272 |
rehype-raw:
|
| 273 |
specifier: ^7.0.0
|
| 274 |
version: 7.0.0
|
|
@@ -280,10 +286,10 @@ importers:
|
|
| 280 |
version: 4.0.1
|
| 281 |
remix-island:
|
| 282 |
specifier: ^0.2.0
|
| 283 |
-
version: 0.2.0(@remix-run/react@2.15.3)(@remix-run/server-runtime@2.15.3)(react-dom@18.3.1)(react@18.3.1)
|
| 284 |
remix-utils:
|
| 285 |
specifier: ^7.7.0
|
| 286 |
-
version: 7.7.0(@remix-run/cloudflare@2.15.3)(@remix-run/node@2.15.3)(@remix-run/react@2.15.3)(react@18.3.1)(zod@3.24.1)
|
| 287 |
shiki:
|
| 288 |
specifier: ^1.24.0
|
| 289 |
version: 1.29.2
|
|
@@ -295,11 +301,11 @@ importers:
|
|
| 295 |
version: 5.0.0
|
| 296 |
zustand:
|
| 297 |
specifier: ^5.0.3
|
| 298 |
-
version: 5.0.3(@types/react@18.3.18)(react@18.3.1)
|
| 299 |
devDependencies:
|
| 300 |
'@blitz/eslint-plugin':
|
| 301 |
specifier: 0.1.0
|
| 302 |
-
version: 0.1.0(prettier@3.5.0)(typescript@5.7.3)
|
| 303 |
'@cloudflare/workers-types':
|
| 304 |
specifier: ^4.20241127.0
|
| 305 |
version: 4.20250204.0
|
|
@@ -311,7 +317,7 @@ importers:
|
|
| 311 |
version: 2.0.0
|
| 312 |
'@remix-run/dev':
|
| 313 |
specifier: ^2.15.2
|
| 314 |
-
version: 2.15.3(@remix-run/react@2.15.3)(sass-embedded@1.83.4)(typescript@5.7.3)(vite@5.4.14)(wrangler@3.108.0)
|
| 315 |
'@types/diff':
|
| 316 |
specifier: ^5.2.3
|
| 317 |
version: 5.2.3
|
|
@@ -362,22 +368,22 @@ importers:
|
|
| 362 |
version: 11.0.5
|
| 363 |
unocss:
|
| 364 |
specifier: ^0.61.9
|
| 365 |
-
version: 0.61.9(postcss@8.5.2)(rollup@3.29.5)(vite@5.4.14)
|
| 366 |
vite:
|
| 367 |
specifier: ^5.4.11
|
| 368 |
-
version: 5.4.14(sass-embedded@1.83.4)
|
| 369 |
vite-plugin-node-polyfills:
|
| 370 |
specifier: ^0.22.0
|
| 371 |
-
version: 0.22.0(rollup@3.29.5)(vite@5.4.14)
|
| 372 |
vite-plugin-optimize-css-modules:
|
| 373 |
specifier: ^1.1.0
|
| 374 |
-
version: 1.2.0(vite@5.4.14)
|
| 375 |
vite-tsconfig-paths:
|
| 376 |
specifier: ^4.3.2
|
| 377 |
-
version: 4.3.2(typescript@5.7.3)(vite@5.4.14)
|
| 378 |
vitest:
|
| 379 |
specifier: ^2.1.7
|
| 380 |
-
version: 2.1.9(sass-embedded@1.83.4)
|
| 381 |
wrangler:
|
| 382 |
specifier: ^3.91.0
|
| 383 |
version: 3.108.0(@cloudflare/workers-types@4.20250204.0)
|
|
@@ -4536,6 +4542,11 @@ packages:
|
|
| 4536 |
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
|
| 4537 |
engines: {node: '>=12'}
|
| 4538 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4539 |
magic-string@0.25.9:
|
| 4540 |
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
|
| 4541 |
|
|
@@ -4986,6 +4997,12 @@ packages:
|
|
| 4986 |
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
|
| 4987 |
engines: {node: '>= 0.6'}
|
| 4988 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4989 |
node-domexception@1.0.0:
|
| 4990 |
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
| 4991 |
engines: {node: '>=10.5.0'}
|
|
@@ -6733,6 +6750,7 @@ snapshots:
|
|
| 6733 |
eventsource-parser: 1.1.2
|
| 6734 |
nanoid: 3.3.6
|
| 6735 |
secure-json-parse: 2.7.0
|
|
|
|
| 6736 |
zod: 3.24.1
|
| 6737 |
|
| 6738 |
'@ai-sdk/provider-utils@1.0.20(zod@3.24.1)':
|
|
@@ -6741,6 +6759,7 @@ snapshots:
|
|
| 6741 |
eventsource-parser: 1.1.2
|
| 6742 |
nanoid: 3.3.6
|
| 6743 |
secure-json-parse: 2.7.0
|
|
|
|
| 6744 |
zod: 3.24.1
|
| 6745 |
|
| 6746 |
'@ai-sdk/provider-utils@1.0.9(zod@3.24.1)':
|
|
@@ -6749,6 +6768,7 @@ snapshots:
|
|
| 6749 |
eventsource-parser: 1.1.2
|
| 6750 |
nanoid: 3.3.6
|
| 6751 |
secure-json-parse: 2.7.0
|
|
|
|
| 6752 |
zod: 3.24.1
|
| 6753 |
|
| 6754 |
'@ai-sdk/provider-utils@2.0.5(zod@3.24.1)':
|
|
@@ -6757,6 +6777,7 @@ snapshots:
|
|
| 6757 |
eventsource-parser: 3.0.0
|
| 6758 |
nanoid: 3.3.8
|
| 6759 |
secure-json-parse: 2.7.0
|
|
|
|
| 6760 |
zod: 3.24.1
|
| 6761 |
|
| 6762 |
'@ai-sdk/provider-utils@2.1.6(zod@3.24.1)':
|
|
@@ -6765,6 +6786,7 @@ snapshots:
|
|
| 6765 |
eventsource-parser: 3.0.0
|
| 6766 |
nanoid: 3.3.8
|
| 6767 |
secure-json-parse: 2.7.0
|
|
|
|
| 6768 |
zod: 3.24.1
|
| 6769 |
|
| 6770 |
'@ai-sdk/provider@0.0.12':
|
|
@@ -6791,17 +6813,19 @@ snapshots:
|
|
| 6791 |
dependencies:
|
| 6792 |
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
|
| 6793 |
'@ai-sdk/ui-utils': 1.1.11(zod@3.24.1)
|
| 6794 |
-
react: 18.3.1
|
| 6795 |
swr: 2.3.2(react@18.3.1)
|
| 6796 |
throttleit: 2.1.0
|
|
|
|
|
|
|
| 6797 |
zod: 3.24.1
|
| 6798 |
|
| 6799 |
'@ai-sdk/ui-utils@1.1.11(zod@3.24.1)':
|
| 6800 |
dependencies:
|
| 6801 |
'@ai-sdk/provider': 1.0.7
|
| 6802 |
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
|
| 6803 |
-
zod: 3.24.1
|
| 6804 |
zod-to-json-schema: 3.24.1(zod@3.24.1)
|
|
|
|
|
|
|
| 6805 |
|
| 6806 |
'@ampproject/remapping@2.3.0':
|
| 6807 |
dependencies:
|
|
@@ -7363,19 +7387,19 @@ snapshots:
|
|
| 7363 |
'@babel/helper-string-parser': 7.25.9
|
| 7364 |
'@babel/helper-validator-identifier': 7.25.9
|
| 7365 |
|
| 7366 |
-
'@blitz/eslint-plugin@0.1.0(prettier@3.5.0)(typescript@5.7.3)':
|
| 7367 |
dependencies:
|
| 7368 |
-
'@stylistic/eslint-plugin-ts': 2.13.0(eslint@9.20.1)(typescript@5.7.3)
|
| 7369 |
-
'@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0)(eslint@9.20.1)(typescript@5.7.3)
|
| 7370 |
-
'@typescript-eslint/parser': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 7371 |
-
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 7372 |
common-tags: 1.8.2
|
| 7373 |
-
eslint: 9.20.1
|
| 7374 |
-
eslint-config-prettier: 9.1.0(eslint@9.20.1)
|
| 7375 |
-
eslint-plugin-jsonc: 2.19.1(eslint@9.20.1)
|
| 7376 |
-
eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0)(eslint@9.20.1)(prettier@3.5.0)
|
| 7377 |
globals: 15.14.0
|
| 7378 |
-
typescript-eslint: 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 7379 |
transitivePeerDependencies:
|
| 7380 |
- '@eslint/json'
|
| 7381 |
- '@types/eslint'
|
|
@@ -7832,9 +7856,9 @@ snapshots:
|
|
| 7832 |
'@esbuild/win32-x64@0.23.1':
|
| 7833 |
optional: true
|
| 7834 |
|
| 7835 |
-
'@eslint-community/eslint-utils@4.4.1(eslint@9.20.1)':
|
| 7836 |
dependencies:
|
| 7837 |
-
eslint: 9.20.1
|
| 7838 |
eslint-visitor-keys: 3.4.3
|
| 7839 |
|
| 7840 |
'@eslint-community/regexpp@4.12.1': {}
|
|
@@ -7889,15 +7913,15 @@ snapshots:
|
|
| 7889 |
'@floating-ui/core': 1.6.9
|
| 7890 |
'@floating-ui/utils': 0.2.9
|
| 7891 |
|
| 7892 |
-
'@floating-ui/react-dom@2.1.2(react-dom@18.3.1)(react@18.3.1)':
|
| 7893 |
dependencies:
|
| 7894 |
'@floating-ui/dom': 1.6.13
|
| 7895 |
react: 18.3.1
|
| 7896 |
react-dom: 18.3.1(react@18.3.1)
|
| 7897 |
|
| 7898 |
-
'@floating-ui/react@0.26.28(react-dom@18.3.1)(react@18.3.1)':
|
| 7899 |
dependencies:
|
| 7900 |
-
'@floating-ui/react-dom': 2.1.2(react-dom@18.3.1)(react@18.3.1)
|
| 7901 |
'@floating-ui/utils': 0.2.9
|
| 7902 |
react: 18.3.1
|
| 7903 |
react-dom: 18.3.1(react@18.3.1)
|
|
@@ -7905,12 +7929,12 @@ snapshots:
|
|
| 7905 |
|
| 7906 |
'@floating-ui/utils@0.2.9': {}
|
| 7907 |
|
| 7908 |
-
'@headlessui/react@2.2.0(react-dom@18.3.1)(react@18.3.1)':
|
| 7909 |
dependencies:
|
| 7910 |
-
'@floating-ui/react': 0.26.28(react-dom@18.3.1)(react@18.3.1)
|
| 7911 |
-
'@react-aria/focus': 3.19.1(react-dom@18.3.1)(react@18.3.1)
|
| 7912 |
-
'@react-aria/interactions': 3.23.0(react-dom@18.3.1)(react@18.3.1)
|
| 7913 |
-
'@tanstack/react-virtual': 3.13.0(react-dom@18.3.1)(react@18.3.1)
|
| 7914 |
react: 18.3.1
|
| 7915 |
react-dom: 18.3.1(react@18.3.1)
|
| 7916 |
|
|
@@ -8271,7 +8295,7 @@ snapshots:
|
|
| 8271 |
|
| 8272 |
'@opentelemetry/api@1.9.0': {}
|
| 8273 |
|
| 8274 |
-
'@phosphor-icons/react@2.1.7(react-dom@18.3.1)(react@18.3.1)':
|
| 8275 |
dependencies:
|
| 8276 |
react: 18.3.1
|
| 8277 |
react-dom: 18.3.1(react@18.3.1)
|
|
@@ -8287,400 +8311,436 @@ snapshots:
|
|
| 8287 |
|
| 8288 |
'@radix-ui/primitive@1.1.1': {}
|
| 8289 |
|
| 8290 |
-
'@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8291 |
dependencies:
|
| 8292 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8293 |
-
'@types/react': 18.3.18
|
| 8294 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8295 |
react: 18.3.1
|
| 8296 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8297 |
|
| 8298 |
-
'@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8299 |
dependencies:
|
| 8300 |
'@radix-ui/primitive': 1.1.1
|
| 8301 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8302 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8303 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8304 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8305 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8306 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8307 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8308 |
-
'@types/react': 18.3.18
|
| 8309 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8310 |
react: 18.3.1
|
| 8311 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8312 |
|
| 8313 |
-
'@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8314 |
dependencies:
|
| 8315 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8316 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8317 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8318 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8319 |
-
'@types/react': 18.3.18
|
| 8320 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8321 |
react: 18.3.1
|
| 8322 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8323 |
|
| 8324 |
'@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)':
|
| 8325 |
dependencies:
|
| 8326 |
-
'@types/react': 18.3.18
|
| 8327 |
react: 18.3.1
|
|
|
|
|
|
|
| 8328 |
|
| 8329 |
-
'@radix-ui/react-context-menu@2.2.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8330 |
dependencies:
|
| 8331 |
'@radix-ui/primitive': 1.1.1
|
| 8332 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8333 |
-
'@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8334 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8335 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8336 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8337 |
-
'@types/react': 18.3.18
|
| 8338 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8339 |
react: 18.3.1
|
| 8340 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8341 |
|
| 8342 |
'@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)':
|
| 8343 |
dependencies:
|
| 8344 |
-
'@types/react': 18.3.18
|
| 8345 |
react: 18.3.1
|
|
|
|
|
|
|
| 8346 |
|
| 8347 |
-
'@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8348 |
dependencies:
|
| 8349 |
'@radix-ui/primitive': 1.1.1
|
| 8350 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8351 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8352 |
-
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8353 |
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8354 |
-
'@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8355 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8356 |
-
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8357 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8358 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8359 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8360 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8361 |
-
'@types/react': 18.3.18
|
| 8362 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8363 |
aria-hidden: 1.2.4
|
| 8364 |
react: 18.3.1
|
| 8365 |
react-dom: 18.3.1(react@18.3.1)
|
| 8366 |
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8367 |
|
| 8368 |
'@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8369 |
dependencies:
|
| 8370 |
-
'@types/react': 18.3.18
|
| 8371 |
react: 18.3.1
|
|
|
|
|
|
|
| 8372 |
|
| 8373 |
-
'@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8374 |
dependencies:
|
| 8375 |
'@radix-ui/primitive': 1.1.1
|
| 8376 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8377 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8378 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8379 |
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8380 |
-
'@types/react': 18.3.18
|
| 8381 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8382 |
react: 18.3.1
|
| 8383 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8384 |
|
| 8385 |
-
'@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8386 |
dependencies:
|
| 8387 |
'@radix-ui/primitive': 1.1.1
|
| 8388 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8389 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8390 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8391 |
-
'@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8392 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8393 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8394 |
-
'@types/react': 18.3.18
|
| 8395 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8396 |
react: 18.3.1
|
| 8397 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8398 |
|
| 8399 |
'@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)':
|
| 8400 |
dependencies:
|
| 8401 |
-
'@types/react': 18.3.18
|
| 8402 |
react: 18.3.1
|
|
|
|
|
|
|
| 8403 |
|
| 8404 |
-
'@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8405 |
dependencies:
|
| 8406 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8407 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8408 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8409 |
-
'@types/react': 18.3.18
|
| 8410 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8411 |
react: 18.3.1
|
| 8412 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8413 |
|
| 8414 |
'@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8415 |
dependencies:
|
| 8416 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8417 |
-
'@types/react': 18.3.18
|
| 8418 |
react: 18.3.1
|
|
|
|
|
|
|
| 8419 |
|
| 8420 |
-
'@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8421 |
dependencies:
|
| 8422 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8423 |
-
'@types/react': 18.3.18
|
| 8424 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8425 |
react: 18.3.1
|
| 8426 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8427 |
|
| 8428 |
-
'@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8429 |
dependencies:
|
| 8430 |
'@radix-ui/primitive': 1.1.1
|
| 8431 |
-
'@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8432 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8433 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8434 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8435 |
-
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8436 |
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8437 |
-
'@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8438 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8439 |
-
'@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8440 |
-
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8441 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8442 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8443 |
-
'@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8444 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8445 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8446 |
-
'@types/react': 18.3.18
|
| 8447 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8448 |
aria-hidden: 1.2.4
|
| 8449 |
react: 18.3.1
|
| 8450 |
react-dom: 18.3.1(react@18.3.1)
|
| 8451 |
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8452 |
|
| 8453 |
-
'@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8454 |
dependencies:
|
| 8455 |
'@radix-ui/primitive': 1.1.1
|
| 8456 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8457 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8458 |
-
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8459 |
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8460 |
-
'@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8461 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8462 |
-
'@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8463 |
-
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8464 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8465 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8466 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8467 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8468 |
-
'@types/react': 18.3.18
|
| 8469 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8470 |
aria-hidden: 1.2.4
|
| 8471 |
react: 18.3.1
|
| 8472 |
react-dom: 18.3.1(react@18.3.1)
|
| 8473 |
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8474 |
|
| 8475 |
-
'@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8476 |
dependencies:
|
| 8477 |
-
'@floating-ui/react-dom': 2.1.2(react-dom@18.3.1)(react@18.3.1)
|
| 8478 |
-
'@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8479 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8480 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8481 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8482 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8483 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8484 |
'@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8485 |
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8486 |
'@radix-ui/rect': 1.1.0
|
| 8487 |
-
'@types/react': 18.3.18
|
| 8488 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8489 |
react: 18.3.1
|
| 8490 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8491 |
|
| 8492 |
-
'@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8493 |
dependencies:
|
| 8494 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8495 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8496 |
-
'@types/react': 18.3.18
|
| 8497 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8498 |
react: 18.3.1
|
| 8499 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8500 |
|
| 8501 |
-
'@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8502 |
dependencies:
|
| 8503 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8504 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8505 |
-
'@types/react': 18.3.18
|
| 8506 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8507 |
react: 18.3.1
|
| 8508 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8509 |
|
| 8510 |
-
'@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8511 |
dependencies:
|
| 8512 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8513 |
-
'@types/react': 18.3.18
|
| 8514 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8515 |
react: 18.3.1
|
| 8516 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8517 |
|
| 8518 |
-
'@radix-ui/react-progress@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8519 |
dependencies:
|
| 8520 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8521 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8522 |
-
'@types/react': 18.3.18
|
| 8523 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8524 |
react: 18.3.1
|
| 8525 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8526 |
|
| 8527 |
-
'@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8528 |
dependencies:
|
| 8529 |
'@radix-ui/primitive': 1.1.1
|
| 8530 |
-
'@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8531 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8532 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8533 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8534 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8535 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8536 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8537 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8538 |
-
'@types/react': 18.3.18
|
| 8539 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8540 |
react: 18.3.1
|
| 8541 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8542 |
|
| 8543 |
-
'@radix-ui/react-scroll-area@1.2.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8544 |
dependencies:
|
| 8545 |
'@radix-ui/number': 1.1.0
|
| 8546 |
'@radix-ui/primitive': 1.1.1
|
| 8547 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8548 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8549 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8550 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8551 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8552 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8553 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8554 |
-
'@types/react': 18.3.18
|
| 8555 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8556 |
react: 18.3.1
|
| 8557 |
react-dom: 18.3.1(react@18.3.1)
|
| 8558 |
-
|
| 8559 |
-
'@radix-ui/react-separator@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8560 |
-
dependencies:
|
| 8561 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8562 |
'@types/react': 18.3.18
|
| 8563 |
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8564 |
react: 18.3.1
|
| 8565 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8566 |
|
| 8567 |
'@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)':
|
| 8568 |
dependencies:
|
| 8569 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8570 |
-
'@types/react': 18.3.18
|
| 8571 |
react: 18.3.1
|
|
|
|
|
|
|
| 8572 |
|
| 8573 |
-
'@radix-ui/react-switch@1.1.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8574 |
dependencies:
|
| 8575 |
'@radix-ui/primitive': 1.1.1
|
| 8576 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8577 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8578 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8579 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8580 |
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8581 |
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8582 |
-
'@types/react': 18.3.18
|
| 8583 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8584 |
react: 18.3.1
|
| 8585 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8586 |
|
| 8587 |
-
'@radix-ui/react-tabs@1.1.3(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8588 |
dependencies:
|
| 8589 |
'@radix-ui/primitive': 1.1.1
|
| 8590 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8591 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8592 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8593 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8594 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8595 |
-
'@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8596 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8597 |
-
'@types/react': 18.3.18
|
| 8598 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8599 |
react: 18.3.1
|
| 8600 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8601 |
|
| 8602 |
-
'@radix-ui/react-tooltip@1.1.8(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8603 |
dependencies:
|
| 8604 |
'@radix-ui/primitive': 1.1.1
|
| 8605 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8606 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8607 |
-
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8608 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8609 |
-
'@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8610 |
-
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8611 |
-
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8612 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8613 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8614 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8615 |
-
'@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8616 |
-
'@types/react': 18.3.18
|
| 8617 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8618 |
react: 18.3.1
|
| 8619 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8620 |
|
| 8621 |
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8622 |
dependencies:
|
| 8623 |
-
'@types/react': 18.3.18
|
| 8624 |
react: 18.3.1
|
|
|
|
|
|
|
| 8625 |
|
| 8626 |
'@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8627 |
dependencies:
|
| 8628 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8629 |
-
'@types/react': 18.3.18
|
| 8630 |
react: 18.3.1
|
|
|
|
|
|
|
| 8631 |
|
| 8632 |
'@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8633 |
dependencies:
|
| 8634 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8635 |
-
'@types/react': 18.3.18
|
| 8636 |
react: 18.3.1
|
|
|
|
|
|
|
| 8637 |
|
| 8638 |
'@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8639 |
dependencies:
|
| 8640 |
-
'@types/react': 18.3.18
|
| 8641 |
react: 18.3.1
|
|
|
|
|
|
|
| 8642 |
|
| 8643 |
'@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8644 |
dependencies:
|
| 8645 |
-
'@types/react': 18.3.18
|
| 8646 |
react: 18.3.1
|
|
|
|
|
|
|
| 8647 |
|
| 8648 |
'@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8649 |
dependencies:
|
| 8650 |
'@radix-ui/rect': 1.1.0
|
| 8651 |
-
'@types/react': 18.3.18
|
| 8652 |
react: 18.3.1
|
|
|
|
|
|
|
| 8653 |
|
| 8654 |
'@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8655 |
dependencies:
|
| 8656 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8657 |
-
'@types/react': 18.3.18
|
| 8658 |
react: 18.3.1
|
|
|
|
|
|
|
| 8659 |
|
| 8660 |
-
'@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)':
|
| 8661 |
dependencies:
|
| 8662 |
-
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5)(@types/react@18.3.18)(react-dom@18.3.1)(react@18.3.1)
|
| 8663 |
-
'@types/react': 18.3.18
|
| 8664 |
-
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8665 |
react: 18.3.1
|
| 8666 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
|
|
|
|
|
|
| 8667 |
|
| 8668 |
'@radix-ui/rect@1.1.0': {}
|
| 8669 |
|
| 8670 |
-
'@react-aria/focus@3.19.1(react-dom@18.3.1)(react@18.3.1)':
|
| 8671 |
dependencies:
|
| 8672 |
-
'@react-aria/interactions': 3.23.0(react-dom@18.3.1)(react@18.3.1)
|
| 8673 |
-
'@react-aria/utils': 3.27.0(react-dom@18.3.1)(react@18.3.1)
|
| 8674 |
'@react-types/shared': 3.27.0(react@18.3.1)
|
| 8675 |
'@swc/helpers': 0.5.15
|
| 8676 |
clsx: 2.1.1
|
| 8677 |
react: 18.3.1
|
| 8678 |
react-dom: 18.3.1(react@18.3.1)
|
| 8679 |
|
| 8680 |
-
'@react-aria/interactions@3.23.0(react-dom@18.3.1)(react@18.3.1)':
|
| 8681 |
dependencies:
|
| 8682 |
'@react-aria/ssr': 3.9.7(react@18.3.1)
|
| 8683 |
-
'@react-aria/utils': 3.27.0(react-dom@18.3.1)(react@18.3.1)
|
| 8684 |
'@react-types/shared': 3.27.0(react@18.3.1)
|
| 8685 |
'@swc/helpers': 0.5.15
|
| 8686 |
react: 18.3.1
|
|
@@ -8691,7 +8751,7 @@ snapshots:
|
|
| 8691 |
'@swc/helpers': 0.5.15
|
| 8692 |
react: 18.3.1
|
| 8693 |
|
| 8694 |
-
'@react-aria/utils@3.27.0(react-dom@18.3.1)(react@18.3.1)':
|
| 8695 |
dependencies:
|
| 8696 |
'@react-aria/ssr': 3.9.7(react@18.3.1)
|
| 8697 |
'@react-stately/utils': 3.10.5(react@18.3.1)
|
|
@@ -8720,6 +8780,7 @@ snapshots:
|
|
| 8720 |
dependencies:
|
| 8721 |
'@cloudflare/workers-types': 4.20250204.0
|
| 8722 |
'@remix-run/cloudflare': 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)
|
|
|
|
| 8723 |
typescript: 5.7.3
|
| 8724 |
|
| 8725 |
'@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)':
|
|
@@ -8727,9 +8788,10 @@ snapshots:
|
|
| 8727 |
'@cloudflare/kv-asset-handler': 0.1.3
|
| 8728 |
'@cloudflare/workers-types': 4.20250204.0
|
| 8729 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
|
|
|
| 8730 |
typescript: 5.7.3
|
| 8731 |
|
| 8732 |
-
'@remix-run/dev@2.15.3(@remix-run/react@2.15.3)(sass-embedded@1.83.4)(typescript@5.7.3)(vite@5.4.14)(wrangler@3.108.0)':
|
| 8733 |
dependencies:
|
| 8734 |
'@babel/core': 7.26.8
|
| 8735 |
'@babel/generator': 7.26.8
|
|
@@ -8742,11 +8804,11 @@ snapshots:
|
|
| 8742 |
'@mdx-js/mdx': 2.3.0
|
| 8743 |
'@npmcli/package-json': 4.0.1
|
| 8744 |
'@remix-run/node': 2.15.3(typescript@5.7.3)
|
| 8745 |
-
'@remix-run/react': 2.15.3(react-dom@18.3.1)(react@18.3.1)(typescript@5.7.3)
|
| 8746 |
'@remix-run/router': 1.22.0
|
| 8747 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 8748 |
'@types/mdx': 2.0.13
|
| 8749 |
-
'@vanilla-extract/integration': 6.5.0(sass-embedded@1.83.4)
|
| 8750 |
arg: 5.0.2
|
| 8751 |
cacache: 17.1.4
|
| 8752 |
chalk: 4.1.2
|
|
@@ -8784,12 +8846,13 @@ snapshots:
|
|
| 8784 |
set-cookie-parser: 2.7.1
|
| 8785 |
tar-fs: 2.1.2
|
| 8786 |
tsconfig-paths: 4.2.0
|
| 8787 |
-
typescript: 5.7.3
|
| 8788 |
valibot: 0.41.0(typescript@5.7.3)
|
| 8789 |
-
vite:
|
| 8790 |
-
vite-node: 1.6.1(sass-embedded@1.83.4)
|
| 8791 |
-
wrangler: 3.108.0(@cloudflare/workers-types@4.20250204.0)
|
| 8792 |
ws: 7.5.10
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8793 |
transitivePeerDependencies:
|
| 8794 |
- '@types/node'
|
| 8795 |
- babel-plugin-macros
|
|
@@ -8814,18 +8877,20 @@ snapshots:
|
|
| 8814 |
cookie-signature: 1.2.2
|
| 8815 |
source-map-support: 0.5.21
|
| 8816 |
stream-slice: 0.1.2
|
| 8817 |
-
typescript: 5.7.3
|
| 8818 |
undici: 6.21.1
|
|
|
|
|
|
|
| 8819 |
|
| 8820 |
-
'@remix-run/react@2.15.3(react-dom@18.3.1)(react@18.3.1)(typescript@5.7.3)':
|
| 8821 |
dependencies:
|
| 8822 |
'@remix-run/router': 1.22.0
|
| 8823 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 8824 |
react: 18.3.1
|
| 8825 |
react-dom: 18.3.1(react@18.3.1)
|
| 8826 |
react-router: 6.29.0(react@18.3.1)
|
| 8827 |
-
react-router-dom: 6.29.0(react-dom@18.3.1)(react@18.3.1)
|
| 8828 |
turbo-stream: 2.4.0
|
|
|
|
| 8829 |
typescript: 5.7.3
|
| 8830 |
|
| 8831 |
'@remix-run/router@1.22.0': {}
|
|
@@ -8839,6 +8904,7 @@ snapshots:
|
|
| 8839 |
set-cookie-parser: 2.7.1
|
| 8840 |
source-map: 0.7.4
|
| 8841 |
turbo-stream: 2.4.0
|
|
|
|
| 8842 |
typescript: 5.7.3
|
| 8843 |
|
| 8844 |
'@remix-run/web-blob@3.1.0':
|
|
@@ -8874,6 +8940,7 @@ snapshots:
|
|
| 8874 |
'@rollup/pluginutils': 5.1.4(rollup@3.29.5)
|
| 8875 |
estree-walker: 2.0.2
|
| 8876 |
magic-string: 0.30.17
|
|
|
|
| 8877 |
rollup: 3.29.5
|
| 8878 |
|
| 8879 |
'@rollup/pluginutils@5.1.4(rollup@3.29.5)':
|
|
@@ -8881,6 +8948,7 @@ snapshots:
|
|
| 8881 |
'@types/estree': 1.0.6
|
| 8882 |
estree-walker: 2.0.2
|
| 8883 |
picomatch: 4.0.2
|
|
|
|
| 8884 |
rollup: 3.29.5
|
| 8885 |
|
| 8886 |
'@rollup/rollup-android-arm-eabi@4.34.6':
|
|
@@ -9272,10 +9340,10 @@ snapshots:
|
|
| 9272 |
'@smithy/util-buffer-from': 4.0.0
|
| 9273 |
tslib: 2.8.1
|
| 9274 |
|
| 9275 |
-
'@stylistic/eslint-plugin-ts@2.13.0(eslint@9.20.1)(typescript@5.7.3)':
|
| 9276 |
dependencies:
|
| 9277 |
-
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 9278 |
-
eslint: 9.20.1
|
| 9279 |
eslint-visitor-keys: 4.2.0
|
| 9280 |
espree: 10.3.0
|
| 9281 |
transitivePeerDependencies:
|
|
@@ -9286,7 +9354,7 @@ snapshots:
|
|
| 9286 |
dependencies:
|
| 9287 |
tslib: 2.8.1
|
| 9288 |
|
| 9289 |
-
'@tanstack/react-virtual@3.13.0(react-dom@18.3.1)(react@18.3.1)':
|
| 9290 |
dependencies:
|
| 9291 |
'@tanstack/virtual-core': 3.13.0
|
| 9292 |
react: 18.3.1
|
|
@@ -9388,15 +9456,15 @@ snapshots:
|
|
| 9388 |
|
| 9389 |
'@types/uuid@9.0.8': {}
|
| 9390 |
|
| 9391 |
-
'@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0)(eslint@9.20.1)(typescript@5.7.3)':
|
| 9392 |
dependencies:
|
| 9393 |
'@eslint-community/regexpp': 4.12.1
|
| 9394 |
-
'@typescript-eslint/parser': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 9395 |
'@typescript-eslint/scope-manager': 8.24.0
|
| 9396 |
-
'@typescript-eslint/type-utils': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 9397 |
-
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 9398 |
'@typescript-eslint/visitor-keys': 8.24.0
|
| 9399 |
-
eslint: 9.20.1
|
| 9400 |
graphemer: 1.4.0
|
| 9401 |
ignore: 5.3.2
|
| 9402 |
natural-compare: 1.4.0
|
|
@@ -9405,14 +9473,14 @@ snapshots:
|
|
| 9405 |
transitivePeerDependencies:
|
| 9406 |
- supports-color
|
| 9407 |
|
| 9408 |
-
'@typescript-eslint/parser@8.24.0(eslint@9.20.1)(typescript@5.7.3)':
|
| 9409 |
dependencies:
|
| 9410 |
'@typescript-eslint/scope-manager': 8.24.0
|
| 9411 |
'@typescript-eslint/types': 8.24.0
|
| 9412 |
'@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3)
|
| 9413 |
'@typescript-eslint/visitor-keys': 8.24.0
|
| 9414 |
debug: 4.4.0
|
| 9415 |
-
eslint: 9.20.1
|
| 9416 |
typescript: 5.7.3
|
| 9417 |
transitivePeerDependencies:
|
| 9418 |
- supports-color
|
|
@@ -9422,12 +9490,12 @@ snapshots:
|
|
| 9422 |
'@typescript-eslint/types': 8.24.0
|
| 9423 |
'@typescript-eslint/visitor-keys': 8.24.0
|
| 9424 |
|
| 9425 |
-
'@typescript-eslint/type-utils@8.24.0(eslint@9.20.1)(typescript@5.7.3)':
|
| 9426 |
dependencies:
|
| 9427 |
'@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3)
|
| 9428 |
-
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 9429 |
debug: 4.4.0
|
| 9430 |
-
eslint: 9.20.1
|
| 9431 |
ts-api-utils: 2.0.1(typescript@5.7.3)
|
| 9432 |
typescript: 5.7.3
|
| 9433 |
transitivePeerDependencies:
|
|
@@ -9449,13 +9517,13 @@ snapshots:
|
|
| 9449 |
transitivePeerDependencies:
|
| 9450 |
- supports-color
|
| 9451 |
|
| 9452 |
-
'@typescript-eslint/utils@8.24.0(eslint@9.20.1)(typescript@5.7.3)':
|
| 9453 |
dependencies:
|
| 9454 |
-
'@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
|
| 9455 |
'@typescript-eslint/scope-manager': 8.24.0
|
| 9456 |
'@typescript-eslint/types': 8.24.0
|
| 9457 |
'@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3)
|
| 9458 |
-
eslint: 9.20.1
|
| 9459 |
typescript: 5.7.3
|
| 9460 |
transitivePeerDependencies:
|
| 9461 |
- supports-color
|
|
@@ -9481,12 +9549,13 @@ snapshots:
|
|
| 9481 |
|
| 9482 |
'@ungap/structured-clone@1.3.0': {}
|
| 9483 |
|
| 9484 |
-
'@unocss/astro@0.61.9(rollup@3.29.5)(vite@5.4.14)':
|
| 9485 |
dependencies:
|
| 9486 |
'@unocss/core': 0.61.9
|
| 9487 |
'@unocss/reset': 0.61.9
|
| 9488 |
-
'@unocss/vite': 0.61.9(rollup@3.29.5)(vite@5.4.14)
|
| 9489 |
-
|
|
|
|
| 9490 |
transitivePeerDependencies:
|
| 9491 |
- rollup
|
| 9492 |
- supports-color
|
|
@@ -9623,7 +9692,7 @@ snapshots:
|
|
| 9623 |
dependencies:
|
| 9624 |
'@unocss/core': 0.61.9
|
| 9625 |
|
| 9626 |
-
'@unocss/vite@0.61.9(rollup@3.29.5)(vite@5.4.14)':
|
| 9627 |
dependencies:
|
| 9628 |
'@ampproject/remapping': 2.3.0
|
| 9629 |
'@rollup/pluginutils': 5.1.4(rollup@3.29.5)
|
|
@@ -9635,7 +9704,7 @@ snapshots:
|
|
| 9635 |
chokidar: 3.6.0
|
| 9636 |
fast-glob: 3.3.3
|
| 9637 |
magic-string: 0.30.17
|
| 9638 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 9639 |
transitivePeerDependencies:
|
| 9640 |
- rollup
|
| 9641 |
- supports-color
|
|
@@ -9663,7 +9732,7 @@ snapshots:
|
|
| 9663 |
transitivePeerDependencies:
|
| 9664 |
- babel-plugin-macros
|
| 9665 |
|
| 9666 |
-
'@vanilla-extract/integration@6.5.0(sass-embedded@1.83.4)':
|
| 9667 |
dependencies:
|
| 9668 |
'@babel/core': 7.26.8
|
| 9669 |
'@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8)
|
|
@@ -9676,8 +9745,8 @@ snapshots:
|
|
| 9676 |
lodash: 4.17.21
|
| 9677 |
mlly: 1.7.4
|
| 9678 |
outdent: 0.8.0
|
| 9679 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 9680 |
-
vite-node: 1.6.1(sass-embedded@1.83.4)
|
| 9681 |
transitivePeerDependencies:
|
| 9682 |
- '@types/node'
|
| 9683 |
- babel-plugin-macros
|
|
@@ -9699,12 +9768,13 @@ snapshots:
|
|
| 9699 |
chai: 5.1.2
|
| 9700 |
tinyrainbow: 1.2.0
|
| 9701 |
|
| 9702 |
-
'@vitest/mocker@2.1.9(vite@5.4.14)':
|
| 9703 |
dependencies:
|
| 9704 |
'@vitest/spy': 2.1.9
|
| 9705 |
estree-walker: 3.0.3
|
| 9706 |
magic-string: 0.30.17
|
| 9707 |
-
|
|
|
|
| 9708 |
|
| 9709 |
'@vitest/pretty-format@2.1.9':
|
| 9710 |
dependencies:
|
|
@@ -9782,6 +9852,7 @@ snapshots:
|
|
| 9782 |
'@ai-sdk/ui-utils': 1.1.11(zod@3.24.1)
|
| 9783 |
'@opentelemetry/api': 1.9.0
|
| 9784 |
jsondiffpatch: 0.6.0
|
|
|
|
| 9785 |
react: 18.3.1
|
| 9786 |
zod: 3.24.1
|
| 9787 |
|
|
@@ -10522,27 +10593,27 @@ snapshots:
|
|
| 10522 |
|
| 10523 |
escape-string-regexp@5.0.0: {}
|
| 10524 |
|
| 10525 |
-
eslint-compat-utils@0.6.4(eslint@9.20.1):
|
| 10526 |
dependencies:
|
| 10527 |
-
eslint: 9.20.1
|
| 10528 |
semver: 7.7.1
|
| 10529 |
|
| 10530 |
-
eslint-config-prettier@9.1.0(eslint@9.20.1):
|
| 10531 |
dependencies:
|
| 10532 |
-
eslint: 9.20.1
|
| 10533 |
|
| 10534 |
-
eslint-json-compat-utils@0.2.1(eslint@9.20.1)(jsonc-eslint-parser@2.4.0):
|
| 10535 |
dependencies:
|
| 10536 |
-
eslint: 9.20.1
|
| 10537 |
esquery: 1.6.0
|
| 10538 |
jsonc-eslint-parser: 2.4.0
|
| 10539 |
|
| 10540 |
-
eslint-plugin-jsonc@2.19.1(eslint@9.20.1):
|
| 10541 |
dependencies:
|
| 10542 |
-
'@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
|
| 10543 |
-
eslint: 9.20.1
|
| 10544 |
-
eslint-compat-utils: 0.6.4(eslint@9.20.1)
|
| 10545 |
-
eslint-json-compat-utils: 0.2.1(eslint@9.20.1)(jsonc-eslint-parser@2.4.0)
|
| 10546 |
espree: 9.6.1
|
| 10547 |
graphemer: 1.4.0
|
| 10548 |
jsonc-eslint-parser: 2.4.0
|
|
@@ -10551,13 +10622,14 @@ snapshots:
|
|
| 10551 |
transitivePeerDependencies:
|
| 10552 |
- '@eslint/json'
|
| 10553 |
|
| 10554 |
-
eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0)(eslint@9.20.1)(prettier@3.5.0):
|
| 10555 |
dependencies:
|
| 10556 |
-
eslint: 9.20.1
|
| 10557 |
-
eslint-config-prettier: 9.1.0(eslint@9.20.1)
|
| 10558 |
prettier: 3.5.0
|
| 10559 |
prettier-linter-helpers: 1.0.0
|
| 10560 |
synckit: 0.9.2
|
|
|
|
|
|
|
| 10561 |
|
| 10562 |
eslint-scope@8.2.0:
|
| 10563 |
dependencies:
|
|
@@ -10568,9 +10640,9 @@ snapshots:
|
|
| 10568 |
|
| 10569 |
eslint-visitor-keys@4.2.0: {}
|
| 10570 |
|
| 10571 |
-
eslint@9.20.1:
|
| 10572 |
dependencies:
|
| 10573 |
-
'@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1)
|
| 10574 |
'@eslint-community/regexpp': 4.12.1
|
| 10575 |
'@eslint/config-array': 0.19.2
|
| 10576 |
'@eslint/core': 0.11.0
|
|
@@ -10604,6 +10676,8 @@ snapshots:
|
|
| 10604 |
minimatch: 3.1.2
|
| 10605 |
natural-compare: 1.4.0
|
| 10606 |
optionator: 0.9.4
|
|
|
|
|
|
|
| 10607 |
transitivePeerDependencies:
|
| 10608 |
- supports-color
|
| 10609 |
|
|
@@ -10832,13 +10906,14 @@ snapshots:
|
|
| 10832 |
|
| 10833 |
forwarded@0.2.0: {}
|
| 10834 |
|
| 10835 |
-
framer-motion@11.18.2(react-dom@18.3.1)(react@18.3.1):
|
| 10836 |
dependencies:
|
| 10837 |
motion-dom: 11.18.1
|
| 10838 |
motion-utils: 11.18.1
|
|
|
|
|
|
|
| 10839 |
react: 18.3.1
|
| 10840 |
react-dom: 18.3.1(react@18.3.1)
|
| 10841 |
-
tslib: 2.8.1
|
| 10842 |
|
| 10843 |
fresh@0.5.2: {}
|
| 10844 |
|
|
@@ -11429,6 +11504,10 @@ snapshots:
|
|
| 11429 |
|
| 11430 |
lru-cache@7.18.3: {}
|
| 11431 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11432 |
magic-string@0.25.9:
|
| 11433 |
dependencies:
|
| 11434 |
sourcemap-codec: 1.4.8
|
|
@@ -12258,6 +12337,11 @@ snapshots:
|
|
| 12258 |
|
| 12259 |
negotiator@0.6.3: {}
|
| 12260 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12261 |
node-domexception@1.0.0: {}
|
| 12262 |
|
| 12263 |
node-fetch-native@1.6.6: {}
|
|
@@ -12366,6 +12450,7 @@ snapshots:
|
|
| 12366 |
'@ai-sdk/provider': 0.0.24
|
| 12367 |
'@ai-sdk/provider-utils': 1.0.20(zod@3.24.1)
|
| 12368 |
partial-json: 0.1.7
|
|
|
|
| 12369 |
zod: 3.24.1
|
| 12370 |
|
| 12371 |
on-finished@2.4.1:
|
|
@@ -12543,8 +12628,9 @@ snapshots:
|
|
| 12543 |
postcss-load-config@4.0.2(postcss@8.5.2):
|
| 12544 |
dependencies:
|
| 12545 |
lilconfig: 3.1.3
|
| 12546 |
-
postcss: 8.5.2
|
| 12547 |
yaml: 2.7.0
|
|
|
|
|
|
|
| 12548 |
|
| 12549 |
postcss-modules-extract-imports@3.1.0(postcss@8.5.2):
|
| 12550 |
dependencies:
|
|
@@ -12700,7 +12786,7 @@ snapshots:
|
|
| 12700 |
iconv-lite: 0.4.24
|
| 12701 |
unpipe: 1.0.0
|
| 12702 |
|
| 12703 |
-
react-beautiful-dnd@13.1.1(react-dom@18.3.1)(react@18.3.1):
|
| 12704 |
dependencies:
|
| 12705 |
'@babel/runtime': 7.26.7
|
| 12706 |
css-box-model: 1.2.1
|
|
@@ -12708,7 +12794,7 @@ snapshots:
|
|
| 12708 |
raf-schd: 4.0.3
|
| 12709 |
react: 18.3.1
|
| 12710 |
react-dom: 18.3.1(react@18.3.1)
|
| 12711 |
-
react-redux: 7.2.9(react-dom@18.3.1)(react@18.3.1)
|
| 12712 |
redux: 4.2.1
|
| 12713 |
use-memo-one: 1.1.3(react@18.3.1)
|
| 12714 |
transitivePeerDependencies:
|
|
@@ -12723,15 +12809,18 @@ snapshots:
|
|
| 12723 |
dependencies:
|
| 12724 |
dnd-core: 16.0.1
|
| 12725 |
|
| 12726 |
-
react-dnd@16.0.1(@types/react@18.3.18)(react@18.3.1):
|
| 12727 |
dependencies:
|
| 12728 |
'@react-dnd/invariant': 4.0.2
|
| 12729 |
'@react-dnd/shallowequal': 4.0.2
|
| 12730 |
-
'@types/react': 18.3.18
|
| 12731 |
dnd-core: 16.0.1
|
| 12732 |
fast-deep-equal: 3.1.3
|
| 12733 |
hoist-non-react-statics: 3.3.2
|
| 12734 |
react: 18.3.1
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12735 |
|
| 12736 |
react-dom@18.3.1(react@18.3.1):
|
| 12737 |
dependencies:
|
|
@@ -12739,7 +12828,7 @@ snapshots:
|
|
| 12739 |
react: 18.3.1
|
| 12740 |
scheduler: 0.23.2
|
| 12741 |
|
| 12742 |
-
react-hotkeys-hook@4.6.1(react-dom@18.3.1)(react@18.3.1):
|
| 12743 |
dependencies:
|
| 12744 |
react: 18.3.1
|
| 12745 |
react-dom: 18.3.1(react@18.3.1)
|
|
@@ -12769,7 +12858,7 @@ snapshots:
|
|
| 12769 |
transitivePeerDependencies:
|
| 12770 |
- supports-color
|
| 12771 |
|
| 12772 |
-
react-redux@7.2.9(react-dom@18.3.1)(react@18.3.1):
|
| 12773 |
dependencies:
|
| 12774 |
'@babel/runtime': 7.26.7
|
| 12775 |
'@types/react-redux': 7.1.34
|
|
@@ -12777,34 +12866,37 @@ snapshots:
|
|
| 12777 |
loose-envify: 1.4.0
|
| 12778 |
prop-types: 15.8.1
|
| 12779 |
react: 18.3.1
|
| 12780 |
-
react-dom: 18.3.1(react@18.3.1)
|
| 12781 |
react-is: 17.0.2
|
|
|
|
|
|
|
| 12782 |
|
| 12783 |
react-refresh@0.14.2: {}
|
| 12784 |
|
| 12785 |
react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1):
|
| 12786 |
dependencies:
|
| 12787 |
-
'@types/react': 18.3.18
|
| 12788 |
react: 18.3.1
|
| 12789 |
react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1)
|
| 12790 |
tslib: 2.8.1
|
|
|
|
|
|
|
| 12791 |
|
| 12792 |
react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1):
|
| 12793 |
dependencies:
|
| 12794 |
-
'@types/react': 18.3.18
|
| 12795 |
react: 18.3.1
|
| 12796 |
react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1)
|
| 12797 |
react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1)
|
| 12798 |
tslib: 2.8.1
|
| 12799 |
use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1)
|
| 12800 |
use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 12801 |
|
| 12802 |
-
react-resizable-panels@2.1.7(react-dom@18.3.1)(react@18.3.1):
|
| 12803 |
dependencies:
|
| 12804 |
react: 18.3.1
|
| 12805 |
react-dom: 18.3.1(react@18.3.1)
|
| 12806 |
|
| 12807 |
-
react-router-dom@6.29.0(react-dom@18.3.1)(react@18.3.1):
|
| 12808 |
dependencies:
|
| 12809 |
'@remix-run/router': 1.22.0
|
| 12810 |
react: 18.3.1
|
|
@@ -12818,12 +12910,13 @@ snapshots:
|
|
| 12818 |
|
| 12819 |
react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1):
|
| 12820 |
dependencies:
|
| 12821 |
-
'@types/react': 18.3.18
|
| 12822 |
get-nonce: 1.0.1
|
| 12823 |
react: 18.3.1
|
| 12824 |
tslib: 2.8.1
|
|
|
|
|
|
|
| 12825 |
|
| 12826 |
-
react-toastify@10.0.6(react-dom@18.3.1)(react@18.3.1):
|
| 12827 |
dependencies:
|
| 12828 |
clsx: 2.1.1
|
| 12829 |
react: 18.3.1
|
|
@@ -12954,20 +13047,22 @@ snapshots:
|
|
| 12954 |
mdast-util-to-markdown: 2.1.2
|
| 12955 |
unified: 11.0.5
|
| 12956 |
|
| 12957 |
-
remix-island@0.2.0(@remix-run/react@2.15.3)(@remix-run/server-runtime@2.15.3)(react-dom@18.3.1)(react@18.3.1):
|
| 12958 |
dependencies:
|
| 12959 |
-
'@remix-run/react': 2.15.3(react-dom@18.3.1)(react@18.3.1)(typescript@5.7.3)
|
| 12960 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 12961 |
react: 18.3.1
|
| 12962 |
react-dom: 18.3.1(react@18.3.1)
|
| 12963 |
|
| 12964 |
-
remix-utils@7.7.0(@remix-run/cloudflare@2.15.3)(@remix-run/node@2.15.3)(@remix-run/react@2.15.3)(react@18.3.1)(zod@3.24.1):
|
| 12965 |
dependencies:
|
|
|
|
|
|
|
| 12966 |
'@remix-run/cloudflare': 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)
|
| 12967 |
'@remix-run/node': 2.15.3(typescript@5.7.3)
|
| 12968 |
-
'@remix-run/react': 2.15.3(react-dom@18.3.1)(react@18.3.1)(typescript@5.7.3)
|
|
|
|
| 12969 |
react: 18.3.1
|
| 12970 |
-
type-fest: 4.34.1
|
| 12971 |
zod: 3.24.1
|
| 12972 |
|
| 12973 |
require-like@0.1.2: {}
|
|
@@ -13553,7 +13648,7 @@ snapshots:
|
|
| 13553 |
typescript: 5.7.3
|
| 13554 |
|
| 13555 |
tsconfck@3.1.5(typescript@5.7.3):
|
| 13556 |
-
|
| 13557 |
typescript: 5.7.3
|
| 13558 |
|
| 13559 |
tsconfig-paths@4.2.0:
|
|
@@ -13586,12 +13681,12 @@ snapshots:
|
|
| 13586 |
media-typer: 0.3.0
|
| 13587 |
mime-types: 2.1.35
|
| 13588 |
|
| 13589 |
-
typescript-eslint@8.24.0(eslint@9.20.1)(typescript@5.7.3):
|
| 13590 |
dependencies:
|
| 13591 |
-
'@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0)(eslint@9.20.1)(typescript@5.7.3)
|
| 13592 |
-
'@typescript-eslint/parser': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 13593 |
-
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1)(typescript@5.7.3)
|
| 13594 |
-
eslint: 9.20.1
|
| 13595 |
typescript: 5.7.3
|
| 13596 |
transitivePeerDependencies:
|
| 13597 |
- supports-color
|
|
@@ -13713,9 +13808,9 @@ snapshots:
|
|
| 13713 |
|
| 13714 |
universalify@2.0.1: {}
|
| 13715 |
|
| 13716 |
-
unocss@0.61.9(postcss@8.5.2)(rollup@3.29.5)(vite@5.4.14):
|
| 13717 |
dependencies:
|
| 13718 |
-
'@unocss/astro': 0.61.9(rollup@3.29.5)(vite@5.4.14)
|
| 13719 |
'@unocss/cli': 0.61.9(rollup@3.29.5)
|
| 13720 |
'@unocss/core': 0.61.9
|
| 13721 |
'@unocss/extractor-arbitrary-variants': 0.61.9
|
|
@@ -13734,8 +13829,9 @@ snapshots:
|
|
| 13734 |
'@unocss/transformer-compile-class': 0.61.9
|
| 13735 |
'@unocss/transformer-directives': 0.61.9
|
| 13736 |
'@unocss/transformer-variant-group': 0.61.9
|
| 13737 |
-
'@unocss/vite': 0.61.9(rollup@3.29.5)(vite@5.4.14)
|
| 13738 |
-
|
|
|
|
| 13739 |
transitivePeerDependencies:
|
| 13740 |
- postcss
|
| 13741 |
- rollup
|
|
@@ -13760,9 +13856,10 @@ snapshots:
|
|
| 13760 |
|
| 13761 |
use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1):
|
| 13762 |
dependencies:
|
| 13763 |
-
'@types/react': 18.3.18
|
| 13764 |
react: 18.3.1
|
| 13765 |
tslib: 2.8.1
|
|
|
|
|
|
|
| 13766 |
|
| 13767 |
use-memo-one@1.1.3(react@18.3.1):
|
| 13768 |
dependencies:
|
|
@@ -13770,10 +13867,11 @@ snapshots:
|
|
| 13770 |
|
| 13771 |
use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1):
|
| 13772 |
dependencies:
|
| 13773 |
-
'@types/react': 18.3.18
|
| 13774 |
detect-node-es: 1.1.0
|
| 13775 |
react: 18.3.1
|
| 13776 |
tslib: 2.8.1
|
|
|
|
|
|
|
| 13777 |
|
| 13778 |
use-sync-external-store@1.4.0(react@18.3.1):
|
| 13779 |
dependencies:
|
|
@@ -13806,7 +13904,7 @@ snapshots:
|
|
| 13806 |
sade: 1.8.1
|
| 13807 |
|
| 13808 |
valibot@0.41.0(typescript@5.7.3):
|
| 13809 |
-
|
| 13810 |
typescript: 5.7.3
|
| 13811 |
|
| 13812 |
validate-npm-package-license@3.0.4:
|
|
@@ -13849,13 +13947,13 @@ snapshots:
|
|
| 13849 |
'@types/unist': 3.0.3
|
| 13850 |
vfile-message: 4.0.2
|
| 13851 |
|
| 13852 |
-
vite-node@1.6.1(sass-embedded@1.83.4):
|
| 13853 |
dependencies:
|
| 13854 |
cac: 6.7.14
|
| 13855 |
debug: 4.4.0
|
| 13856 |
pathe: 1.1.2
|
| 13857 |
picocolors: 1.1.1
|
| 13858 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 13859 |
transitivePeerDependencies:
|
| 13860 |
- '@types/node'
|
| 13861 |
- less
|
|
@@ -13867,13 +13965,13 @@ snapshots:
|
|
| 13867 |
- supports-color
|
| 13868 |
- terser
|
| 13869 |
|
| 13870 |
-
vite-node@2.1.9(sass-embedded@1.83.4):
|
| 13871 |
dependencies:
|
| 13872 |
cac: 6.7.14
|
| 13873 |
debug: 4.4.0
|
| 13874 |
es-module-lexer: 1.6.0
|
| 13875 |
pathe: 1.1.2
|
| 13876 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 13877 |
transitivePeerDependencies:
|
| 13878 |
- '@types/node'
|
| 13879 |
- less
|
|
@@ -13885,41 +13983,43 @@ snapshots:
|
|
| 13885 |
- supports-color
|
| 13886 |
- terser
|
| 13887 |
|
| 13888 |
-
vite-plugin-node-polyfills@0.22.0(rollup@3.29.5)(vite@5.4.14):
|
| 13889 |
dependencies:
|
| 13890 |
'@rollup/plugin-inject': 5.0.5(rollup@3.29.5)
|
| 13891 |
node-stdlib-browser: 1.3.1
|
| 13892 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 13893 |
transitivePeerDependencies:
|
| 13894 |
- rollup
|
| 13895 |
|
| 13896 |
-
vite-plugin-optimize-css-modules@1.2.0(vite@5.4.14):
|
| 13897 |
dependencies:
|
| 13898 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 13899 |
|
| 13900 |
-
vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@5.4.14):
|
| 13901 |
dependencies:
|
| 13902 |
debug: 4.4.0
|
| 13903 |
globrex: 0.1.2
|
| 13904 |
tsconfck: 3.1.5(typescript@5.7.3)
|
| 13905 |
-
|
|
|
|
| 13906 |
transitivePeerDependencies:
|
| 13907 |
- supports-color
|
| 13908 |
- typescript
|
| 13909 |
|
| 13910 |
-
vite@5.4.14(sass-embedded@1.83.4):
|
| 13911 |
dependencies:
|
| 13912 |
esbuild: 0.21.5
|
| 13913 |
postcss: 8.5.2
|
| 13914 |
rollup: 4.34.6
|
| 13915 |
-
sass-embedded: 1.83.4
|
| 13916 |
optionalDependencies:
|
|
|
|
| 13917 |
fsevents: 2.3.3
|
|
|
|
| 13918 |
|
| 13919 |
-
vitest@2.1.9(sass-embedded@1.83.4):
|
| 13920 |
dependencies:
|
| 13921 |
'@vitest/expect': 2.1.9
|
| 13922 |
-
'@vitest/mocker': 2.1.9(vite@5.4.14)
|
| 13923 |
'@vitest/pretty-format': 2.1.9
|
| 13924 |
'@vitest/runner': 2.1.9
|
| 13925 |
'@vitest/snapshot': 2.1.9
|
|
@@ -13935,9 +14035,11 @@ snapshots:
|
|
| 13935 |
tinyexec: 0.3.2
|
| 13936 |
tinypool: 1.0.2
|
| 13937 |
tinyrainbow: 1.2.0
|
| 13938 |
-
vite: 5.4.14(sass-embedded@1.83.4)
|
| 13939 |
-
vite-node: 2.1.9(sass-embedded@1.83.4)
|
| 13940 |
why-is-node-running: 2.3.0
|
|
|
|
|
|
|
| 13941 |
transitivePeerDependencies:
|
| 13942 |
- less
|
| 13943 |
- lightningcss
|
|
@@ -14002,7 +14104,6 @@ snapshots:
|
|
| 14002 |
wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0):
|
| 14003 |
dependencies:
|
| 14004 |
'@cloudflare/kv-asset-handler': 0.3.4
|
| 14005 |
-
'@cloudflare/workers-types': 4.20250204.0
|
| 14006 |
'@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19)
|
| 14007 |
'@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19)
|
| 14008 |
blake3-wasm: 2.1.5
|
|
@@ -14012,6 +14113,7 @@ snapshots:
|
|
| 14012 |
unenv: 2.0.0-rc.1
|
| 14013 |
workerd: 1.20250204.0
|
| 14014 |
optionalDependencies:
|
|
|
|
| 14015 |
fsevents: 2.3.3
|
| 14016 |
sharp: 0.33.5
|
| 14017 |
transitivePeerDependencies:
|
|
@@ -14060,9 +14162,10 @@ snapshots:
|
|
| 14060 |
|
| 14061 |
zod@3.24.1: {}
|
| 14062 |
|
| 14063 |
-
zustand@5.0.3(@types/react@18.3.18)(react@18.3.1):
|
| 14064 |
-
|
| 14065 |
'@types/react': 18.3.18
|
| 14066 |
react: 18.3.1
|
|
|
|
| 14067 |
|
| 14068 |
zwitch@2.0.4: {}
|
|
|
|
| 82 |
version: 6.36.2
|
| 83 |
'@headlessui/react':
|
| 84 |
specifier: ^2.2.0
|
| 85 |
+
version: 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 86 |
'@iconify-json/svg-spinners':
|
| 87 |
specifier: ^1.2.1
|
| 88 |
version: 1.2.2
|
|
|
|
| 103 |
version: 0.0.5(zod@3.24.1)
|
| 104 |
'@phosphor-icons/react':
|
| 105 |
specifier: ^2.1.7
|
| 106 |
+
version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 107 |
'@radix-ui/react-collapsible':
|
| 108 |
specifier: ^1.0.3
|
| 109 |
+
version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 110 |
'@radix-ui/react-context-menu':
|
| 111 |
specifier: ^2.2.2
|
| 112 |
+
version: 2.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 113 |
'@radix-ui/react-dialog':
|
| 114 |
specifier: ^1.1.5
|
| 115 |
+
version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 116 |
'@radix-ui/react-dropdown-menu':
|
| 117 |
specifier: ^2.1.6
|
| 118 |
+
version: 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 119 |
'@radix-ui/react-label':
|
| 120 |
specifier: ^2.1.1
|
| 121 |
+
version: 2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 122 |
'@radix-ui/react-popover':
|
| 123 |
specifier: ^1.1.5
|
| 124 |
+
version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 125 |
'@radix-ui/react-progress':
|
| 126 |
specifier: ^1.0.3
|
| 127 |
+
version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 128 |
'@radix-ui/react-scroll-area':
|
| 129 |
specifier: ^1.2.2
|
| 130 |
+
version: 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 131 |
'@radix-ui/react-separator':
|
| 132 |
specifier: ^1.1.0
|
| 133 |
+
version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 134 |
'@radix-ui/react-switch':
|
| 135 |
specifier: ^1.1.1
|
| 136 |
+
version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 137 |
'@radix-ui/react-tabs':
|
| 138 |
specifier: ^1.1.2
|
| 139 |
+
version: 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 140 |
'@radix-ui/react-tooltip':
|
| 141 |
specifier: ^1.1.4
|
| 142 |
+
version: 1.1.8(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 143 |
'@remix-run/cloudflare':
|
| 144 |
specifier: ^2.15.2
|
| 145 |
version: 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)
|
|
|
|
| 151 |
version: 2.15.3(typescript@5.7.3)
|
| 152 |
'@remix-run/react':
|
| 153 |
specifier: ^2.15.2
|
| 154 |
+
version: 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
|
| 155 |
'@types/react-beautiful-dnd':
|
| 156 |
specifier: ^13.1.8
|
| 157 |
version: 13.1.8
|
|
|
|
| 202 |
version: 2.0.5
|
| 203 |
framer-motion:
|
| 204 |
specifier: ^11.12.0
|
| 205 |
+
version: 11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 206 |
ignore:
|
| 207 |
specifier: ^6.0.2
|
| 208 |
version: 6.0.2
|
|
|
|
| 227 |
jszip:
|
| 228 |
specifier: ^3.10.1
|
| 229 |
version: 3.10.1
|
| 230 |
+
lucide-react:
|
| 231 |
+
specifier: ^0.474.0
|
| 232 |
+
version: 0.474.0(react@18.3.1)
|
| 233 |
nanostores:
|
| 234 |
specifier: ^0.10.3
|
| 235 |
version: 0.10.3
|
| 236 |
+
next-themes:
|
| 237 |
+
specifier: ^0.4.4
|
| 238 |
+
version: 0.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 239 |
ollama-ai-provider:
|
| 240 |
specifier: ^0.15.2
|
| 241 |
version: 0.15.2(zod@3.24.1)
|
|
|
|
| 247 |
version: 18.3.1
|
| 248 |
react-beautiful-dnd:
|
| 249 |
specifier: ^13.1.1
|
| 250 |
+
version: 13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 251 |
react-chartjs-2:
|
| 252 |
specifier: ^5.3.0
|
| 253 |
version: 5.3.0(chart.js@4.4.7)(react@18.3.1)
|
| 254 |
react-dnd:
|
| 255 |
specifier: ^16.0.1
|
| 256 |
+
version: 16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.1)(@types/react@18.3.18)(react@18.3.1)
|
| 257 |
react-dnd-html5-backend:
|
| 258 |
specifier: ^16.0.1
|
| 259 |
version: 16.0.1
|
|
|
|
| 262 |
version: 18.3.1(react@18.3.1)
|
| 263 |
react-hotkeys-hook:
|
| 264 |
specifier: ^4.6.1
|
| 265 |
+
version: 4.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 266 |
react-icons:
|
| 267 |
specifier: ^5.4.0
|
| 268 |
version: 5.4.0(react@18.3.1)
|
|
|
|
| 271 |
version: 9.0.3(@types/react@18.3.18)(react@18.3.1)
|
| 272 |
react-resizable-panels:
|
| 273 |
specifier: ^2.1.7
|
| 274 |
+
version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 275 |
react-toastify:
|
| 276 |
specifier: ^10.0.6
|
| 277 |
+
version: 10.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 278 |
rehype-raw:
|
| 279 |
specifier: ^7.0.0
|
| 280 |
version: 7.0.0
|
|
|
|
| 286 |
version: 4.0.1
|
| 287 |
remix-island:
|
| 288 |
specifier: ^0.2.0
|
| 289 |
+
version: 0.2.0(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/server-runtime@2.15.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 290 |
remix-utils:
|
| 291 |
specifier: ^7.7.0
|
| 292 |
+
version: 7.7.0(@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3))(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1)
|
| 293 |
shiki:
|
| 294 |
specifier: ^1.24.0
|
| 295 |
version: 1.29.2
|
|
|
|
| 301 |
version: 5.0.0
|
| 302 |
zustand:
|
| 303 |
specifier: ^5.0.3
|
| 304 |
+
version: 5.0.3(@types/react@18.3.18)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
|
| 305 |
devDependencies:
|
| 306 |
'@blitz/eslint-plugin':
|
| 307 |
specifier: 0.1.0
|
| 308 |
+
version: 0.1.0(jiti@1.21.7)(prettier@3.5.0)(typescript@5.7.3)
|
| 309 |
'@cloudflare/workers-types':
|
| 310 |
specifier: ^4.20241127.0
|
| 311 |
version: 4.20250204.0
|
|
|
|
| 317 |
version: 2.0.0
|
| 318 |
'@remix-run/dev':
|
| 319 |
specifier: ^2.15.2
|
| 320 |
+
version: 2.15.3(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@22.13.1)(sass-embedded@1.83.4)(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))(wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0))
|
| 321 |
'@types/diff':
|
| 322 |
specifier: ^5.2.3
|
| 323 |
version: 5.2.3
|
|
|
|
| 368 |
version: 11.0.5
|
| 369 |
unocss:
|
| 370 |
specifier: ^0.61.9
|
| 371 |
+
version: 0.61.9(postcss@8.5.2)(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 372 |
vite:
|
| 373 |
specifier: ^5.4.11
|
| 374 |
+
version: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 375 |
vite-plugin-node-polyfills:
|
| 376 |
specifier: ^0.22.0
|
| 377 |
+
version: 0.22.0(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 378 |
vite-plugin-optimize-css-modules:
|
| 379 |
specifier: ^1.1.0
|
| 380 |
+
version: 1.2.0(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 381 |
vite-tsconfig-paths:
|
| 382 |
specifier: ^4.3.2
|
| 383 |
+
version: 4.3.2(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 384 |
vitest:
|
| 385 |
specifier: ^2.1.7
|
| 386 |
+
version: 2.1.9(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 387 |
wrangler:
|
| 388 |
specifier: ^3.91.0
|
| 389 |
version: 3.108.0(@cloudflare/workers-types@4.20250204.0)
|
|
|
|
| 4542 |
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
|
| 4543 |
engines: {node: '>=12'}
|
| 4544 |
|
| 4545 |
+
lucide-react@0.474.0:
|
| 4546 |
+
resolution: {integrity: sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==}
|
| 4547 |
+
peerDependencies:
|
| 4548 |
+
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
|
| 4549 |
+
|
| 4550 |
magic-string@0.25.9:
|
| 4551 |
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
|
| 4552 |
|
|
|
|
| 4997 |
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
|
| 4998 |
engines: {node: '>= 0.6'}
|
| 4999 |
|
| 5000 |
+
next-themes@0.4.4:
|
| 5001 |
+
resolution: {integrity: sha512-LDQ2qIOJF0VnuVrrMSMLrWGjRMkq+0mpgl6e0juCLqdJ+oo8Q84JRWT6Wh11VDQKkMMe+dVzDKLWs5n87T+PkQ==}
|
| 5002 |
+
peerDependencies:
|
| 5003 |
+
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
|
| 5004 |
+
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
|
| 5005 |
+
|
| 5006 |
node-domexception@1.0.0:
|
| 5007 |
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
|
| 5008 |
engines: {node: '>=10.5.0'}
|
|
|
|
| 6750 |
eventsource-parser: 1.1.2
|
| 6751 |
nanoid: 3.3.6
|
| 6752 |
secure-json-parse: 2.7.0
|
| 6753 |
+
optionalDependencies:
|
| 6754 |
zod: 3.24.1
|
| 6755 |
|
| 6756 |
'@ai-sdk/provider-utils@1.0.20(zod@3.24.1)':
|
|
|
|
| 6759 |
eventsource-parser: 1.1.2
|
| 6760 |
nanoid: 3.3.6
|
| 6761 |
secure-json-parse: 2.7.0
|
| 6762 |
+
optionalDependencies:
|
| 6763 |
zod: 3.24.1
|
| 6764 |
|
| 6765 |
'@ai-sdk/provider-utils@1.0.9(zod@3.24.1)':
|
|
|
|
| 6768 |
eventsource-parser: 1.1.2
|
| 6769 |
nanoid: 3.3.6
|
| 6770 |
secure-json-parse: 2.7.0
|
| 6771 |
+
optionalDependencies:
|
| 6772 |
zod: 3.24.1
|
| 6773 |
|
| 6774 |
'@ai-sdk/provider-utils@2.0.5(zod@3.24.1)':
|
|
|
|
| 6777 |
eventsource-parser: 3.0.0
|
| 6778 |
nanoid: 3.3.8
|
| 6779 |
secure-json-parse: 2.7.0
|
| 6780 |
+
optionalDependencies:
|
| 6781 |
zod: 3.24.1
|
| 6782 |
|
| 6783 |
'@ai-sdk/provider-utils@2.1.6(zod@3.24.1)':
|
|
|
|
| 6786 |
eventsource-parser: 3.0.0
|
| 6787 |
nanoid: 3.3.8
|
| 6788 |
secure-json-parse: 2.7.0
|
| 6789 |
+
optionalDependencies:
|
| 6790 |
zod: 3.24.1
|
| 6791 |
|
| 6792 |
'@ai-sdk/provider@0.0.12':
|
|
|
|
| 6813 |
dependencies:
|
| 6814 |
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
|
| 6815 |
'@ai-sdk/ui-utils': 1.1.11(zod@3.24.1)
|
|
|
|
| 6816 |
swr: 2.3.2(react@18.3.1)
|
| 6817 |
throttleit: 2.1.0
|
| 6818 |
+
optionalDependencies:
|
| 6819 |
+
react: 18.3.1
|
| 6820 |
zod: 3.24.1
|
| 6821 |
|
| 6822 |
'@ai-sdk/ui-utils@1.1.11(zod@3.24.1)':
|
| 6823 |
dependencies:
|
| 6824 |
'@ai-sdk/provider': 1.0.7
|
| 6825 |
'@ai-sdk/provider-utils': 2.1.6(zod@3.24.1)
|
|
|
|
| 6826 |
zod-to-json-schema: 3.24.1(zod@3.24.1)
|
| 6827 |
+
optionalDependencies:
|
| 6828 |
+
zod: 3.24.1
|
| 6829 |
|
| 6830 |
'@ampproject/remapping@2.3.0':
|
| 6831 |
dependencies:
|
|
|
|
| 7387 |
'@babel/helper-string-parser': 7.25.9
|
| 7388 |
'@babel/helper-validator-identifier': 7.25.9
|
| 7389 |
|
| 7390 |
+
'@blitz/eslint-plugin@0.1.0(jiti@1.21.7)(prettier@3.5.0)(typescript@5.7.3)':
|
| 7391 |
dependencies:
|
| 7392 |
+
'@stylistic/eslint-plugin-ts': 2.13.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 7393 |
+
'@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3))(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 7394 |
+
'@typescript-eslint/parser': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 7395 |
+
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 7396 |
common-tags: 1.8.2
|
| 7397 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 7398 |
+
eslint-config-prettier: 9.1.0(eslint@9.20.1(jiti@1.21.7))
|
| 7399 |
+
eslint-plugin-jsonc: 2.19.1(eslint@9.20.1(jiti@1.21.7))
|
| 7400 |
+
eslint-plugin-prettier: 5.2.3(eslint-config-prettier@9.1.0(eslint@9.20.1(jiti@1.21.7)))(eslint@9.20.1(jiti@1.21.7))(prettier@3.5.0)
|
| 7401 |
globals: 15.14.0
|
| 7402 |
+
typescript-eslint: 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 7403 |
transitivePeerDependencies:
|
| 7404 |
- '@eslint/json'
|
| 7405 |
- '@types/eslint'
|
|
|
|
| 7856 |
'@esbuild/win32-x64@0.23.1':
|
| 7857 |
optional: true
|
| 7858 |
|
| 7859 |
+
'@eslint-community/eslint-utils@4.4.1(eslint@9.20.1(jiti@1.21.7))':
|
| 7860 |
dependencies:
|
| 7861 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 7862 |
eslint-visitor-keys: 3.4.3
|
| 7863 |
|
| 7864 |
'@eslint-community/regexpp@4.12.1': {}
|
|
|
|
| 7913 |
'@floating-ui/core': 1.6.9
|
| 7914 |
'@floating-ui/utils': 0.2.9
|
| 7915 |
|
| 7916 |
+
'@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 7917 |
dependencies:
|
| 7918 |
'@floating-ui/dom': 1.6.13
|
| 7919 |
react: 18.3.1
|
| 7920 |
react-dom: 18.3.1(react@18.3.1)
|
| 7921 |
|
| 7922 |
+
'@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 7923 |
dependencies:
|
| 7924 |
+
'@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 7925 |
'@floating-ui/utils': 0.2.9
|
| 7926 |
react: 18.3.1
|
| 7927 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
| 7929 |
|
| 7930 |
'@floating-ui/utils@0.2.9': {}
|
| 7931 |
|
| 7932 |
+
'@headlessui/react@2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 7933 |
dependencies:
|
| 7934 |
+
'@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 7935 |
+
'@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 7936 |
+
'@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 7937 |
+
'@tanstack/react-virtual': 3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 7938 |
react: 18.3.1
|
| 7939 |
react-dom: 18.3.1(react@18.3.1)
|
| 7940 |
|
|
|
|
| 8295 |
|
| 8296 |
'@opentelemetry/api@1.9.0': {}
|
| 8297 |
|
| 8298 |
+
'@phosphor-icons/react@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8299 |
dependencies:
|
| 8300 |
react: 18.3.1
|
| 8301 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
| 8311 |
|
| 8312 |
'@radix-ui/primitive@1.1.1': {}
|
| 8313 |
|
| 8314 |
+
'@radix-ui/react-arrow@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8315 |
dependencies:
|
| 8316 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
|
|
|
|
|
|
| 8317 |
react: 18.3.1
|
| 8318 |
react-dom: 18.3.1(react@18.3.1)
|
| 8319 |
+
optionalDependencies:
|
| 8320 |
+
'@types/react': 18.3.18
|
| 8321 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8322 |
|
| 8323 |
+
'@radix-ui/react-collapsible@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8324 |
dependencies:
|
| 8325 |
'@radix-ui/primitive': 1.1.1
|
| 8326 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8327 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8328 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8329 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8330 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8331 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8332 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8333 |
react: 18.3.1
|
| 8334 |
react-dom: 18.3.1(react@18.3.1)
|
| 8335 |
+
optionalDependencies:
|
| 8336 |
+
'@types/react': 18.3.18
|
| 8337 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8338 |
|
| 8339 |
+
'@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8340 |
dependencies:
|
| 8341 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8342 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8343 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8344 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8345 |
react: 18.3.1
|
| 8346 |
react-dom: 18.3.1(react@18.3.1)
|
| 8347 |
+
optionalDependencies:
|
| 8348 |
+
'@types/react': 18.3.18
|
| 8349 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8350 |
|
| 8351 |
'@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)':
|
| 8352 |
dependencies:
|
|
|
|
| 8353 |
react: 18.3.1
|
| 8354 |
+
optionalDependencies:
|
| 8355 |
+
'@types/react': 18.3.18
|
| 8356 |
|
| 8357 |
+
'@radix-ui/react-context-menu@2.2.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8358 |
dependencies:
|
| 8359 |
'@radix-ui/primitive': 1.1.1
|
| 8360 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8361 |
+
'@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8362 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8363 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8364 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8365 |
react: 18.3.1
|
| 8366 |
react-dom: 18.3.1(react@18.3.1)
|
| 8367 |
+
optionalDependencies:
|
| 8368 |
+
'@types/react': 18.3.18
|
| 8369 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8370 |
|
| 8371 |
'@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)':
|
| 8372 |
dependencies:
|
|
|
|
| 8373 |
react: 18.3.1
|
| 8374 |
+
optionalDependencies:
|
| 8375 |
+
'@types/react': 18.3.18
|
| 8376 |
|
| 8377 |
+
'@radix-ui/react-dialog@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8378 |
dependencies:
|
| 8379 |
'@radix-ui/primitive': 1.1.1
|
| 8380 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8381 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8382 |
+
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8383 |
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8384 |
+
'@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8385 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8386 |
+
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8387 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8388 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8389 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8390 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8391 |
aria-hidden: 1.2.4
|
| 8392 |
react: 18.3.1
|
| 8393 |
react-dom: 18.3.1(react@18.3.1)
|
| 8394 |
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1)
|
| 8395 |
+
optionalDependencies:
|
| 8396 |
+
'@types/react': 18.3.18
|
| 8397 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8398 |
|
| 8399 |
'@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8400 |
dependencies:
|
|
|
|
| 8401 |
react: 18.3.1
|
| 8402 |
+
optionalDependencies:
|
| 8403 |
+
'@types/react': 18.3.18
|
| 8404 |
|
| 8405 |
+
'@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8406 |
dependencies:
|
| 8407 |
'@radix-ui/primitive': 1.1.1
|
| 8408 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8409 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8410 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8411 |
'@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8412 |
react: 18.3.1
|
| 8413 |
react-dom: 18.3.1(react@18.3.1)
|
| 8414 |
+
optionalDependencies:
|
| 8415 |
+
'@types/react': 18.3.18
|
| 8416 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8417 |
|
| 8418 |
+
'@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8419 |
dependencies:
|
| 8420 |
'@radix-ui/primitive': 1.1.1
|
| 8421 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8422 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8423 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8424 |
+
'@radix-ui/react-menu': 2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8425 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8426 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8427 |
react: 18.3.1
|
| 8428 |
react-dom: 18.3.1(react@18.3.1)
|
| 8429 |
+
optionalDependencies:
|
| 8430 |
+
'@types/react': 18.3.18
|
| 8431 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8432 |
|
| 8433 |
'@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)':
|
| 8434 |
dependencies:
|
|
|
|
| 8435 |
react: 18.3.1
|
| 8436 |
+
optionalDependencies:
|
| 8437 |
+
'@types/react': 18.3.18
|
| 8438 |
|
| 8439 |
+
'@radix-ui/react-focus-scope@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8440 |
dependencies:
|
| 8441 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8442 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8443 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8444 |
react: 18.3.1
|
| 8445 |
react-dom: 18.3.1(react@18.3.1)
|
| 8446 |
+
optionalDependencies:
|
| 8447 |
+
'@types/react': 18.3.18
|
| 8448 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8449 |
|
| 8450 |
'@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8451 |
dependencies:
|
| 8452 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
| 8453 |
react: 18.3.1
|
| 8454 |
+
optionalDependencies:
|
| 8455 |
+
'@types/react': 18.3.18
|
| 8456 |
|
| 8457 |
+
'@radix-ui/react-label@2.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8458 |
dependencies:
|
| 8459 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
|
|
|
|
|
|
| 8460 |
react: 18.3.1
|
| 8461 |
react-dom: 18.3.1(react@18.3.1)
|
| 8462 |
+
optionalDependencies:
|
| 8463 |
+
'@types/react': 18.3.18
|
| 8464 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8465 |
|
| 8466 |
+
'@radix-ui/react-menu@2.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8467 |
dependencies:
|
| 8468 |
'@radix-ui/primitive': 1.1.1
|
| 8469 |
+
'@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8470 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8471 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8472 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8473 |
+
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8474 |
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8475 |
+
'@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8476 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8477 |
+
'@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8478 |
+
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8479 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8480 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8481 |
+
'@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8482 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8483 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8484 |
aria-hidden: 1.2.4
|
| 8485 |
react: 18.3.1
|
| 8486 |
react-dom: 18.3.1(react@18.3.1)
|
| 8487 |
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1)
|
| 8488 |
+
optionalDependencies:
|
| 8489 |
+
'@types/react': 18.3.18
|
| 8490 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8491 |
|
| 8492 |
+
'@radix-ui/react-popover@1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8493 |
dependencies:
|
| 8494 |
'@radix-ui/primitive': 1.1.1
|
| 8495 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8496 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8497 |
+
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8498 |
'@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8499 |
+
'@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8500 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8501 |
+
'@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8502 |
+
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8503 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8504 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8505 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8506 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8507 |
aria-hidden: 1.2.4
|
| 8508 |
react: 18.3.1
|
| 8509 |
react-dom: 18.3.1(react@18.3.1)
|
| 8510 |
react-remove-scroll: 2.6.3(@types/react@18.3.18)(react@18.3.1)
|
| 8511 |
+
optionalDependencies:
|
| 8512 |
+
'@types/react': 18.3.18
|
| 8513 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8514 |
|
| 8515 |
+
'@radix-ui/react-popper@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8516 |
dependencies:
|
| 8517 |
+
'@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8518 |
+
'@radix-ui/react-arrow': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8519 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8520 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8521 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8522 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8523 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8524 |
'@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8525 |
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8526 |
'@radix-ui/rect': 1.1.0
|
|
|
|
|
|
|
| 8527 |
react: 18.3.1
|
| 8528 |
react-dom: 18.3.1(react@18.3.1)
|
| 8529 |
+
optionalDependencies:
|
| 8530 |
+
'@types/react': 18.3.18
|
| 8531 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8532 |
|
| 8533 |
+
'@radix-ui/react-portal@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8534 |
dependencies:
|
| 8535 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8536 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8537 |
react: 18.3.1
|
| 8538 |
react-dom: 18.3.1(react@18.3.1)
|
| 8539 |
+
optionalDependencies:
|
| 8540 |
+
'@types/react': 18.3.18
|
| 8541 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8542 |
|
| 8543 |
+
'@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8544 |
dependencies:
|
| 8545 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8546 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8547 |
react: 18.3.1
|
| 8548 |
react-dom: 18.3.1(react@18.3.1)
|
| 8549 |
+
optionalDependencies:
|
| 8550 |
+
'@types/react': 18.3.18
|
| 8551 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8552 |
|
| 8553 |
+
'@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8554 |
dependencies:
|
| 8555 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8556 |
react: 18.3.1
|
| 8557 |
react-dom: 18.3.1(react@18.3.1)
|
| 8558 |
+
optionalDependencies:
|
| 8559 |
+
'@types/react': 18.3.18
|
| 8560 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8561 |
|
| 8562 |
+
'@radix-ui/react-progress@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8563 |
dependencies:
|
| 8564 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8565 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
|
|
|
|
|
|
| 8566 |
react: 18.3.1
|
| 8567 |
react-dom: 18.3.1(react@18.3.1)
|
| 8568 |
+
optionalDependencies:
|
| 8569 |
+
'@types/react': 18.3.18
|
| 8570 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8571 |
|
| 8572 |
+
'@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8573 |
dependencies:
|
| 8574 |
'@radix-ui/primitive': 1.1.1
|
| 8575 |
+
'@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8576 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8577 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8578 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8579 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8580 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8581 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8582 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8583 |
react: 18.3.1
|
| 8584 |
react-dom: 18.3.1(react@18.3.1)
|
| 8585 |
+
optionalDependencies:
|
| 8586 |
+
'@types/react': 18.3.18
|
| 8587 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8588 |
|
| 8589 |
+
'@radix-ui/react-scroll-area@1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8590 |
dependencies:
|
| 8591 |
'@radix-ui/number': 1.1.0
|
| 8592 |
'@radix-ui/primitive': 1.1.1
|
| 8593 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8594 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8595 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8596 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8597 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8598 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8599 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8600 |
react: 18.3.1
|
| 8601 |
react-dom: 18.3.1(react@18.3.1)
|
| 8602 |
+
optionalDependencies:
|
|
|
|
|
|
|
|
|
|
| 8603 |
'@types/react': 18.3.18
|
| 8604 |
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8605 |
+
|
| 8606 |
+
'@radix-ui/react-separator@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8607 |
+
dependencies:
|
| 8608 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8609 |
react: 18.3.1
|
| 8610 |
react-dom: 18.3.1(react@18.3.1)
|
| 8611 |
+
optionalDependencies:
|
| 8612 |
+
'@types/react': 18.3.18
|
| 8613 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8614 |
|
| 8615 |
'@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)':
|
| 8616 |
dependencies:
|
| 8617 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
| 8618 |
react: 18.3.1
|
| 8619 |
+
optionalDependencies:
|
| 8620 |
+
'@types/react': 18.3.18
|
| 8621 |
|
| 8622 |
+
'@radix-ui/react-switch@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8623 |
dependencies:
|
| 8624 |
'@radix-ui/primitive': 1.1.1
|
| 8625 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8626 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8627 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8628 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8629 |
'@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8630 |
'@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8631 |
react: 18.3.1
|
| 8632 |
react-dom: 18.3.1(react@18.3.1)
|
| 8633 |
+
optionalDependencies:
|
| 8634 |
+
'@types/react': 18.3.18
|
| 8635 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8636 |
|
| 8637 |
+
'@radix-ui/react-tabs@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8638 |
dependencies:
|
| 8639 |
'@radix-ui/primitive': 1.1.1
|
| 8640 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8641 |
'@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8642 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8643 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8644 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8645 |
+
'@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8646 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
|
|
|
| 8647 |
react: 18.3.1
|
| 8648 |
react-dom: 18.3.1(react@18.3.1)
|
| 8649 |
+
optionalDependencies:
|
| 8650 |
+
'@types/react': 18.3.18
|
| 8651 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8652 |
|
| 8653 |
+
'@radix-ui/react-tooltip@1.1.8(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8654 |
dependencies:
|
| 8655 |
'@radix-ui/primitive': 1.1.1
|
| 8656 |
'@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8657 |
'@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1)
|
| 8658 |
+
'@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8659 |
'@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8660 |
+
'@radix-ui/react-popper': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8661 |
+
'@radix-ui/react-portal': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8662 |
+
'@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8663 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8664 |
'@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1)
|
| 8665 |
'@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
| 8666 |
+
'@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
|
|
|
|
|
|
| 8667 |
react: 18.3.1
|
| 8668 |
react-dom: 18.3.1(react@18.3.1)
|
| 8669 |
+
optionalDependencies:
|
| 8670 |
+
'@types/react': 18.3.18
|
| 8671 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8672 |
|
| 8673 |
'@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8674 |
dependencies:
|
|
|
|
| 8675 |
react: 18.3.1
|
| 8676 |
+
optionalDependencies:
|
| 8677 |
+
'@types/react': 18.3.18
|
| 8678 |
|
| 8679 |
'@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8680 |
dependencies:
|
| 8681 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
| 8682 |
react: 18.3.1
|
| 8683 |
+
optionalDependencies:
|
| 8684 |
+
'@types/react': 18.3.18
|
| 8685 |
|
| 8686 |
'@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8687 |
dependencies:
|
| 8688 |
'@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
| 8689 |
react: 18.3.1
|
| 8690 |
+
optionalDependencies:
|
| 8691 |
+
'@types/react': 18.3.18
|
| 8692 |
|
| 8693 |
'@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8694 |
dependencies:
|
|
|
|
| 8695 |
react: 18.3.1
|
| 8696 |
+
optionalDependencies:
|
| 8697 |
+
'@types/react': 18.3.18
|
| 8698 |
|
| 8699 |
'@radix-ui/react-use-previous@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8700 |
dependencies:
|
|
|
|
| 8701 |
react: 18.3.1
|
| 8702 |
+
optionalDependencies:
|
| 8703 |
+
'@types/react': 18.3.18
|
| 8704 |
|
| 8705 |
'@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8706 |
dependencies:
|
| 8707 |
'@radix-ui/rect': 1.1.0
|
|
|
|
| 8708 |
react: 18.3.1
|
| 8709 |
+
optionalDependencies:
|
| 8710 |
+
'@types/react': 18.3.18
|
| 8711 |
|
| 8712 |
'@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)':
|
| 8713 |
dependencies:
|
| 8714 |
'@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1)
|
|
|
|
| 8715 |
react: 18.3.1
|
| 8716 |
+
optionalDependencies:
|
| 8717 |
+
'@types/react': 18.3.18
|
| 8718 |
|
| 8719 |
+
'@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8720 |
dependencies:
|
| 8721 |
+
'@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
|
|
|
|
|
|
| 8722 |
react: 18.3.1
|
| 8723 |
react-dom: 18.3.1(react@18.3.1)
|
| 8724 |
+
optionalDependencies:
|
| 8725 |
+
'@types/react': 18.3.18
|
| 8726 |
+
'@types/react-dom': 18.3.5(@types/react@18.3.18)
|
| 8727 |
|
| 8728 |
'@radix-ui/rect@1.1.0': {}
|
| 8729 |
|
| 8730 |
+
'@react-aria/focus@3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8731 |
dependencies:
|
| 8732 |
+
'@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8733 |
+
'@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8734 |
'@react-types/shared': 3.27.0(react@18.3.1)
|
| 8735 |
'@swc/helpers': 0.5.15
|
| 8736 |
clsx: 2.1.1
|
| 8737 |
react: 18.3.1
|
| 8738 |
react-dom: 18.3.1(react@18.3.1)
|
| 8739 |
|
| 8740 |
+
'@react-aria/interactions@3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8741 |
dependencies:
|
| 8742 |
'@react-aria/ssr': 3.9.7(react@18.3.1)
|
| 8743 |
+
'@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8744 |
'@react-types/shared': 3.27.0(react@18.3.1)
|
| 8745 |
'@swc/helpers': 0.5.15
|
| 8746 |
react: 18.3.1
|
|
|
|
| 8751 |
'@swc/helpers': 0.5.15
|
| 8752 |
react: 18.3.1
|
| 8753 |
|
| 8754 |
+
'@react-aria/utils@3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 8755 |
dependencies:
|
| 8756 |
'@react-aria/ssr': 3.9.7(react@18.3.1)
|
| 8757 |
'@react-stately/utils': 3.10.5(react@18.3.1)
|
|
|
|
| 8780 |
dependencies:
|
| 8781 |
'@cloudflare/workers-types': 4.20250204.0
|
| 8782 |
'@remix-run/cloudflare': 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)
|
| 8783 |
+
optionalDependencies:
|
| 8784 |
typescript: 5.7.3
|
| 8785 |
|
| 8786 |
'@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)':
|
|
|
|
| 8788 |
'@cloudflare/kv-asset-handler': 0.1.3
|
| 8789 |
'@cloudflare/workers-types': 4.20250204.0
|
| 8790 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 8791 |
+
optionalDependencies:
|
| 8792 |
typescript: 5.7.3
|
| 8793 |
|
| 8794 |
+
'@remix-run/dev@2.15.3(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@types/node@22.13.1)(sass-embedded@1.83.4)(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))(wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0))':
|
| 8795 |
dependencies:
|
| 8796 |
'@babel/core': 7.26.8
|
| 8797 |
'@babel/generator': 7.26.8
|
|
|
|
| 8804 |
'@mdx-js/mdx': 2.3.0
|
| 8805 |
'@npmcli/package-json': 4.0.1
|
| 8806 |
'@remix-run/node': 2.15.3(typescript@5.7.3)
|
| 8807 |
+
'@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
|
| 8808 |
'@remix-run/router': 1.22.0
|
| 8809 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 8810 |
'@types/mdx': 2.0.13
|
| 8811 |
+
'@vanilla-extract/integration': 6.5.0(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 8812 |
arg: 5.0.2
|
| 8813 |
cacache: 17.1.4
|
| 8814 |
chalk: 4.1.2
|
|
|
|
| 8846 |
set-cookie-parser: 2.7.1
|
| 8847 |
tar-fs: 2.1.2
|
| 8848 |
tsconfig-paths: 4.2.0
|
|
|
|
| 8849 |
valibot: 0.41.0(typescript@5.7.3)
|
| 8850 |
+
vite-node: 1.6.1(@types/node@22.13.1)(sass-embedded@1.83.4)
|
|
|
|
|
|
|
| 8851 |
ws: 7.5.10
|
| 8852 |
+
optionalDependencies:
|
| 8853 |
+
typescript: 5.7.3
|
| 8854 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 8855 |
+
wrangler: 3.108.0(@cloudflare/workers-types@4.20250204.0)
|
| 8856 |
transitivePeerDependencies:
|
| 8857 |
- '@types/node'
|
| 8858 |
- babel-plugin-macros
|
|
|
|
| 8877 |
cookie-signature: 1.2.2
|
| 8878 |
source-map-support: 0.5.21
|
| 8879 |
stream-slice: 0.1.2
|
|
|
|
| 8880 |
undici: 6.21.1
|
| 8881 |
+
optionalDependencies:
|
| 8882 |
+
typescript: 5.7.3
|
| 8883 |
|
| 8884 |
+
'@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)':
|
| 8885 |
dependencies:
|
| 8886 |
'@remix-run/router': 1.22.0
|
| 8887 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 8888 |
react: 18.3.1
|
| 8889 |
react-dom: 18.3.1(react@18.3.1)
|
| 8890 |
react-router: 6.29.0(react@18.3.1)
|
| 8891 |
+
react-router-dom: 6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 8892 |
turbo-stream: 2.4.0
|
| 8893 |
+
optionalDependencies:
|
| 8894 |
typescript: 5.7.3
|
| 8895 |
|
| 8896 |
'@remix-run/router@1.22.0': {}
|
|
|
|
| 8904 |
set-cookie-parser: 2.7.1
|
| 8905 |
source-map: 0.7.4
|
| 8906 |
turbo-stream: 2.4.0
|
| 8907 |
+
optionalDependencies:
|
| 8908 |
typescript: 5.7.3
|
| 8909 |
|
| 8910 |
'@remix-run/web-blob@3.1.0':
|
|
|
|
| 8940 |
'@rollup/pluginutils': 5.1.4(rollup@3.29.5)
|
| 8941 |
estree-walker: 2.0.2
|
| 8942 |
magic-string: 0.30.17
|
| 8943 |
+
optionalDependencies:
|
| 8944 |
rollup: 3.29.5
|
| 8945 |
|
| 8946 |
'@rollup/pluginutils@5.1.4(rollup@3.29.5)':
|
|
|
|
| 8948 |
'@types/estree': 1.0.6
|
| 8949 |
estree-walker: 2.0.2
|
| 8950 |
picomatch: 4.0.2
|
| 8951 |
+
optionalDependencies:
|
| 8952 |
rollup: 3.29.5
|
| 8953 |
|
| 8954 |
'@rollup/rollup-android-arm-eabi@4.34.6':
|
|
|
|
| 9340 |
'@smithy/util-buffer-from': 4.0.0
|
| 9341 |
tslib: 2.8.1
|
| 9342 |
|
| 9343 |
+
'@stylistic/eslint-plugin-ts@2.13.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)':
|
| 9344 |
dependencies:
|
| 9345 |
+
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 9346 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 9347 |
eslint-visitor-keys: 4.2.0
|
| 9348 |
espree: 10.3.0
|
| 9349 |
transitivePeerDependencies:
|
|
|
|
| 9354 |
dependencies:
|
| 9355 |
tslib: 2.8.1
|
| 9356 |
|
| 9357 |
+
'@tanstack/react-virtual@3.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
| 9358 |
dependencies:
|
| 9359 |
'@tanstack/virtual-core': 3.13.0
|
| 9360 |
react: 18.3.1
|
|
|
|
| 9456 |
|
| 9457 |
'@types/uuid@9.0.8': {}
|
| 9458 |
|
| 9459 |
+
'@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3))(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)':
|
| 9460 |
dependencies:
|
| 9461 |
'@eslint-community/regexpp': 4.12.1
|
| 9462 |
+
'@typescript-eslint/parser': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 9463 |
'@typescript-eslint/scope-manager': 8.24.0
|
| 9464 |
+
'@typescript-eslint/type-utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 9465 |
+
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 9466 |
'@typescript-eslint/visitor-keys': 8.24.0
|
| 9467 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 9468 |
graphemer: 1.4.0
|
| 9469 |
ignore: 5.3.2
|
| 9470 |
natural-compare: 1.4.0
|
|
|
|
| 9473 |
transitivePeerDependencies:
|
| 9474 |
- supports-color
|
| 9475 |
|
| 9476 |
+
'@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)':
|
| 9477 |
dependencies:
|
| 9478 |
'@typescript-eslint/scope-manager': 8.24.0
|
| 9479 |
'@typescript-eslint/types': 8.24.0
|
| 9480 |
'@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3)
|
| 9481 |
'@typescript-eslint/visitor-keys': 8.24.0
|
| 9482 |
debug: 4.4.0
|
| 9483 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 9484 |
typescript: 5.7.3
|
| 9485 |
transitivePeerDependencies:
|
| 9486 |
- supports-color
|
|
|
|
| 9490 |
'@typescript-eslint/types': 8.24.0
|
| 9491 |
'@typescript-eslint/visitor-keys': 8.24.0
|
| 9492 |
|
| 9493 |
+
'@typescript-eslint/type-utils@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)':
|
| 9494 |
dependencies:
|
| 9495 |
'@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3)
|
| 9496 |
+
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 9497 |
debug: 4.4.0
|
| 9498 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 9499 |
ts-api-utils: 2.0.1(typescript@5.7.3)
|
| 9500 |
typescript: 5.7.3
|
| 9501 |
transitivePeerDependencies:
|
|
|
|
| 9517 |
transitivePeerDependencies:
|
| 9518 |
- supports-color
|
| 9519 |
|
| 9520 |
+
'@typescript-eslint/utils@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)':
|
| 9521 |
dependencies:
|
| 9522 |
+
'@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@1.21.7))
|
| 9523 |
'@typescript-eslint/scope-manager': 8.24.0
|
| 9524 |
'@typescript-eslint/types': 8.24.0
|
| 9525 |
'@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3)
|
| 9526 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 9527 |
typescript: 5.7.3
|
| 9528 |
transitivePeerDependencies:
|
| 9529 |
- supports-color
|
|
|
|
| 9549 |
|
| 9550 |
'@ungap/structured-clone@1.3.0': {}
|
| 9551 |
|
| 9552 |
+
'@unocss/astro@0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))':
|
| 9553 |
dependencies:
|
| 9554 |
'@unocss/core': 0.61.9
|
| 9555 |
'@unocss/reset': 0.61.9
|
| 9556 |
+
'@unocss/vite': 0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 9557 |
+
optionalDependencies:
|
| 9558 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 9559 |
transitivePeerDependencies:
|
| 9560 |
- rollup
|
| 9561 |
- supports-color
|
|
|
|
| 9692 |
dependencies:
|
| 9693 |
'@unocss/core': 0.61.9
|
| 9694 |
|
| 9695 |
+
'@unocss/vite@0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))':
|
| 9696 |
dependencies:
|
| 9697 |
'@ampproject/remapping': 2.3.0
|
| 9698 |
'@rollup/pluginutils': 5.1.4(rollup@3.29.5)
|
|
|
|
| 9704 |
chokidar: 3.6.0
|
| 9705 |
fast-glob: 3.3.3
|
| 9706 |
magic-string: 0.30.17
|
| 9707 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 9708 |
transitivePeerDependencies:
|
| 9709 |
- rollup
|
| 9710 |
- supports-color
|
|
|
|
| 9732 |
transitivePeerDependencies:
|
| 9733 |
- babel-plugin-macros
|
| 9734 |
|
| 9735 |
+
'@vanilla-extract/integration@6.5.0(@types/node@22.13.1)(sass-embedded@1.83.4)':
|
| 9736 |
dependencies:
|
| 9737 |
'@babel/core': 7.26.8
|
| 9738 |
'@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.8)
|
|
|
|
| 9745 |
lodash: 4.17.21
|
| 9746 |
mlly: 1.7.4
|
| 9747 |
outdent: 0.8.0
|
| 9748 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 9749 |
+
vite-node: 1.6.1(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 9750 |
transitivePeerDependencies:
|
| 9751 |
- '@types/node'
|
| 9752 |
- babel-plugin-macros
|
|
|
|
| 9768 |
chai: 5.1.2
|
| 9769 |
tinyrainbow: 1.2.0
|
| 9770 |
|
| 9771 |
+
'@vitest/mocker@2.1.9(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))':
|
| 9772 |
dependencies:
|
| 9773 |
'@vitest/spy': 2.1.9
|
| 9774 |
estree-walker: 3.0.3
|
| 9775 |
magic-string: 0.30.17
|
| 9776 |
+
optionalDependencies:
|
| 9777 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 9778 |
|
| 9779 |
'@vitest/pretty-format@2.1.9':
|
| 9780 |
dependencies:
|
|
|
|
| 9852 |
'@ai-sdk/ui-utils': 1.1.11(zod@3.24.1)
|
| 9853 |
'@opentelemetry/api': 1.9.0
|
| 9854 |
jsondiffpatch: 0.6.0
|
| 9855 |
+
optionalDependencies:
|
| 9856 |
react: 18.3.1
|
| 9857 |
zod: 3.24.1
|
| 9858 |
|
|
|
|
| 10593 |
|
| 10594 |
escape-string-regexp@5.0.0: {}
|
| 10595 |
|
| 10596 |
+
eslint-compat-utils@0.6.4(eslint@9.20.1(jiti@1.21.7)):
|
| 10597 |
dependencies:
|
| 10598 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 10599 |
semver: 7.7.1
|
| 10600 |
|
| 10601 |
+
eslint-config-prettier@9.1.0(eslint@9.20.1(jiti@1.21.7)):
|
| 10602 |
dependencies:
|
| 10603 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 10604 |
|
| 10605 |
+
eslint-json-compat-utils@0.2.1(eslint@9.20.1(jiti@1.21.7))(jsonc-eslint-parser@2.4.0):
|
| 10606 |
dependencies:
|
| 10607 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 10608 |
esquery: 1.6.0
|
| 10609 |
jsonc-eslint-parser: 2.4.0
|
| 10610 |
|
| 10611 |
+
eslint-plugin-jsonc@2.19.1(eslint@9.20.1(jiti@1.21.7)):
|
| 10612 |
dependencies:
|
| 10613 |
+
'@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@1.21.7))
|
| 10614 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 10615 |
+
eslint-compat-utils: 0.6.4(eslint@9.20.1(jiti@1.21.7))
|
| 10616 |
+
eslint-json-compat-utils: 0.2.1(eslint@9.20.1(jiti@1.21.7))(jsonc-eslint-parser@2.4.0)
|
| 10617 |
espree: 9.6.1
|
| 10618 |
graphemer: 1.4.0
|
| 10619 |
jsonc-eslint-parser: 2.4.0
|
|
|
|
| 10622 |
transitivePeerDependencies:
|
| 10623 |
- '@eslint/json'
|
| 10624 |
|
| 10625 |
+
eslint-plugin-prettier@5.2.3(eslint-config-prettier@9.1.0(eslint@9.20.1(jiti@1.21.7)))(eslint@9.20.1(jiti@1.21.7))(prettier@3.5.0):
|
| 10626 |
dependencies:
|
| 10627 |
+
eslint: 9.20.1(jiti@1.21.7)
|
|
|
|
| 10628 |
prettier: 3.5.0
|
| 10629 |
prettier-linter-helpers: 1.0.0
|
| 10630 |
synckit: 0.9.2
|
| 10631 |
+
optionalDependencies:
|
| 10632 |
+
eslint-config-prettier: 9.1.0(eslint@9.20.1(jiti@1.21.7))
|
| 10633 |
|
| 10634 |
eslint-scope@8.2.0:
|
| 10635 |
dependencies:
|
|
|
|
| 10640 |
|
| 10641 |
eslint-visitor-keys@4.2.0: {}
|
| 10642 |
|
| 10643 |
+
eslint@9.20.1(jiti@1.21.7):
|
| 10644 |
dependencies:
|
| 10645 |
+
'@eslint-community/eslint-utils': 4.4.1(eslint@9.20.1(jiti@1.21.7))
|
| 10646 |
'@eslint-community/regexpp': 4.12.1
|
| 10647 |
'@eslint/config-array': 0.19.2
|
| 10648 |
'@eslint/core': 0.11.0
|
|
|
|
| 10676 |
minimatch: 3.1.2
|
| 10677 |
natural-compare: 1.4.0
|
| 10678 |
optionator: 0.9.4
|
| 10679 |
+
optionalDependencies:
|
| 10680 |
+
jiti: 1.21.7
|
| 10681 |
transitivePeerDependencies:
|
| 10682 |
- supports-color
|
| 10683 |
|
|
|
|
| 10906 |
|
| 10907 |
forwarded@0.2.0: {}
|
| 10908 |
|
| 10909 |
+
framer-motion@11.18.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 10910 |
dependencies:
|
| 10911 |
motion-dom: 11.18.1
|
| 10912 |
motion-utils: 11.18.1
|
| 10913 |
+
tslib: 2.8.1
|
| 10914 |
+
optionalDependencies:
|
| 10915 |
react: 18.3.1
|
| 10916 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
| 10917 |
|
| 10918 |
fresh@0.5.2: {}
|
| 10919 |
|
|
|
|
| 11504 |
|
| 11505 |
lru-cache@7.18.3: {}
|
| 11506 |
|
| 11507 |
+
lucide-react@0.474.0(react@18.3.1):
|
| 11508 |
+
dependencies:
|
| 11509 |
+
react: 18.3.1
|
| 11510 |
+
|
| 11511 |
magic-string@0.25.9:
|
| 11512 |
dependencies:
|
| 11513 |
sourcemap-codec: 1.4.8
|
|
|
|
| 12337 |
|
| 12338 |
negotiator@0.6.3: {}
|
| 12339 |
|
| 12340 |
+
next-themes@0.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12341 |
+
dependencies:
|
| 12342 |
+
react: 18.3.1
|
| 12343 |
+
react-dom: 18.3.1(react@18.3.1)
|
| 12344 |
+
|
| 12345 |
node-domexception@1.0.0: {}
|
| 12346 |
|
| 12347 |
node-fetch-native@1.6.6: {}
|
|
|
|
| 12450 |
'@ai-sdk/provider': 0.0.24
|
| 12451 |
'@ai-sdk/provider-utils': 1.0.20(zod@3.24.1)
|
| 12452 |
partial-json: 0.1.7
|
| 12453 |
+
optionalDependencies:
|
| 12454 |
zod: 3.24.1
|
| 12455 |
|
| 12456 |
on-finished@2.4.1:
|
|
|
|
| 12628 |
postcss-load-config@4.0.2(postcss@8.5.2):
|
| 12629 |
dependencies:
|
| 12630 |
lilconfig: 3.1.3
|
|
|
|
| 12631 |
yaml: 2.7.0
|
| 12632 |
+
optionalDependencies:
|
| 12633 |
+
postcss: 8.5.2
|
| 12634 |
|
| 12635 |
postcss-modules-extract-imports@3.1.0(postcss@8.5.2):
|
| 12636 |
dependencies:
|
|
|
|
| 12786 |
iconv-lite: 0.4.24
|
| 12787 |
unpipe: 1.0.0
|
| 12788 |
|
| 12789 |
+
react-beautiful-dnd@13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12790 |
dependencies:
|
| 12791 |
'@babel/runtime': 7.26.7
|
| 12792 |
css-box-model: 1.2.1
|
|
|
|
| 12794 |
raf-schd: 4.0.3
|
| 12795 |
react: 18.3.1
|
| 12796 |
react-dom: 18.3.1(react@18.3.1)
|
| 12797 |
+
react-redux: 7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
| 12798 |
redux: 4.2.1
|
| 12799 |
use-memo-one: 1.1.3(react@18.3.1)
|
| 12800 |
transitivePeerDependencies:
|
|
|
|
| 12809 |
dependencies:
|
| 12810 |
dnd-core: 16.0.1
|
| 12811 |
|
| 12812 |
+
react-dnd@16.0.1(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.1)(@types/react@18.3.18)(react@18.3.1):
|
| 12813 |
dependencies:
|
| 12814 |
'@react-dnd/invariant': 4.0.2
|
| 12815 |
'@react-dnd/shallowequal': 4.0.2
|
|
|
|
| 12816 |
dnd-core: 16.0.1
|
| 12817 |
fast-deep-equal: 3.1.3
|
| 12818 |
hoist-non-react-statics: 3.3.2
|
| 12819 |
react: 18.3.1
|
| 12820 |
+
optionalDependencies:
|
| 12821 |
+
'@types/hoist-non-react-statics': 3.3.6
|
| 12822 |
+
'@types/node': 22.13.1
|
| 12823 |
+
'@types/react': 18.3.18
|
| 12824 |
|
| 12825 |
react-dom@18.3.1(react@18.3.1):
|
| 12826 |
dependencies:
|
|
|
|
| 12828 |
react: 18.3.1
|
| 12829 |
scheduler: 0.23.2
|
| 12830 |
|
| 12831 |
+
react-hotkeys-hook@4.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12832 |
dependencies:
|
| 12833 |
react: 18.3.1
|
| 12834 |
react-dom: 18.3.1(react@18.3.1)
|
|
|
|
| 12858 |
transitivePeerDependencies:
|
| 12859 |
- supports-color
|
| 12860 |
|
| 12861 |
+
react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12862 |
dependencies:
|
| 12863 |
'@babel/runtime': 7.26.7
|
| 12864 |
'@types/react-redux': 7.1.34
|
|
|
|
| 12866 |
loose-envify: 1.4.0
|
| 12867 |
prop-types: 15.8.1
|
| 12868 |
react: 18.3.1
|
|
|
|
| 12869 |
react-is: 17.0.2
|
| 12870 |
+
optionalDependencies:
|
| 12871 |
+
react-dom: 18.3.1(react@18.3.1)
|
| 12872 |
|
| 12873 |
react-refresh@0.14.2: {}
|
| 12874 |
|
| 12875 |
react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1):
|
| 12876 |
dependencies:
|
|
|
|
| 12877 |
react: 18.3.1
|
| 12878 |
react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1)
|
| 12879 |
tslib: 2.8.1
|
| 12880 |
+
optionalDependencies:
|
| 12881 |
+
'@types/react': 18.3.18
|
| 12882 |
|
| 12883 |
react-remove-scroll@2.6.3(@types/react@18.3.18)(react@18.3.1):
|
| 12884 |
dependencies:
|
|
|
|
| 12885 |
react: 18.3.1
|
| 12886 |
react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1)
|
| 12887 |
react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1)
|
| 12888 |
tslib: 2.8.1
|
| 12889 |
use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1)
|
| 12890 |
use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1)
|
| 12891 |
+
optionalDependencies:
|
| 12892 |
+
'@types/react': 18.3.18
|
| 12893 |
|
| 12894 |
+
react-resizable-panels@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12895 |
dependencies:
|
| 12896 |
react: 18.3.1
|
| 12897 |
react-dom: 18.3.1(react@18.3.1)
|
| 12898 |
|
| 12899 |
+
react-router-dom@6.29.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12900 |
dependencies:
|
| 12901 |
'@remix-run/router': 1.22.0
|
| 12902 |
react: 18.3.1
|
|
|
|
| 12910 |
|
| 12911 |
react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1):
|
| 12912 |
dependencies:
|
|
|
|
| 12913 |
get-nonce: 1.0.1
|
| 12914 |
react: 18.3.1
|
| 12915 |
tslib: 2.8.1
|
| 12916 |
+
optionalDependencies:
|
| 12917 |
+
'@types/react': 18.3.18
|
| 12918 |
|
| 12919 |
+
react-toastify@10.0.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 12920 |
dependencies:
|
| 12921 |
clsx: 2.1.1
|
| 12922 |
react: 18.3.1
|
|
|
|
| 13047 |
mdast-util-to-markdown: 2.1.2
|
| 13048 |
unified: 11.0.5
|
| 13049 |
|
| 13050 |
+
remix-island@0.2.0(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/server-runtime@2.15.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
| 13051 |
dependencies:
|
| 13052 |
+
'@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
|
| 13053 |
'@remix-run/server-runtime': 2.15.3(typescript@5.7.3)
|
| 13054 |
react: 18.3.1
|
| 13055 |
react-dom: 18.3.1(react@18.3.1)
|
| 13056 |
|
| 13057 |
+
remix-utils@7.7.0(@remix-run/cloudflare@2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3))(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1):
|
| 13058 |
dependencies:
|
| 13059 |
+
type-fest: 4.34.1
|
| 13060 |
+
optionalDependencies:
|
| 13061 |
'@remix-run/cloudflare': 2.15.3(@cloudflare/workers-types@4.20250204.0)(typescript@5.7.3)
|
| 13062 |
'@remix-run/node': 2.15.3(typescript@5.7.3)
|
| 13063 |
+
'@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3)
|
| 13064 |
+
'@remix-run/router': 1.22.0
|
| 13065 |
react: 18.3.1
|
|
|
|
| 13066 |
zod: 3.24.1
|
| 13067 |
|
| 13068 |
require-like@0.1.2: {}
|
|
|
|
| 13648 |
typescript: 5.7.3
|
| 13649 |
|
| 13650 |
tsconfck@3.1.5(typescript@5.7.3):
|
| 13651 |
+
optionalDependencies:
|
| 13652 |
typescript: 5.7.3
|
| 13653 |
|
| 13654 |
tsconfig-paths@4.2.0:
|
|
|
|
| 13681 |
media-typer: 0.3.0
|
| 13682 |
mime-types: 2.1.35
|
| 13683 |
|
| 13684 |
+
typescript-eslint@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3):
|
| 13685 |
dependencies:
|
| 13686 |
+
'@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3))(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 13687 |
+
'@typescript-eslint/parser': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 13688 |
+
'@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@1.21.7))(typescript@5.7.3)
|
| 13689 |
+
eslint: 9.20.1(jiti@1.21.7)
|
| 13690 |
typescript: 5.7.3
|
| 13691 |
transitivePeerDependencies:
|
| 13692 |
- supports-color
|
|
|
|
| 13808 |
|
| 13809 |
universalify@2.0.1: {}
|
| 13810 |
|
| 13811 |
+
unocss@0.61.9(postcss@8.5.2)(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)):
|
| 13812 |
dependencies:
|
| 13813 |
+
'@unocss/astro': 0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 13814 |
'@unocss/cli': 0.61.9(rollup@3.29.5)
|
| 13815 |
'@unocss/core': 0.61.9
|
| 13816 |
'@unocss/extractor-arbitrary-variants': 0.61.9
|
|
|
|
| 13829 |
'@unocss/transformer-compile-class': 0.61.9
|
| 13830 |
'@unocss/transformer-directives': 0.61.9
|
| 13831 |
'@unocss/transformer-variant-group': 0.61.9
|
| 13832 |
+
'@unocss/vite': 0.61.9(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 13833 |
+
optionalDependencies:
|
| 13834 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 13835 |
transitivePeerDependencies:
|
| 13836 |
- postcss
|
| 13837 |
- rollup
|
|
|
|
| 13856 |
|
| 13857 |
use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1):
|
| 13858 |
dependencies:
|
|
|
|
| 13859 |
react: 18.3.1
|
| 13860 |
tslib: 2.8.1
|
| 13861 |
+
optionalDependencies:
|
| 13862 |
+
'@types/react': 18.3.18
|
| 13863 |
|
| 13864 |
use-memo-one@1.1.3(react@18.3.1):
|
| 13865 |
dependencies:
|
|
|
|
| 13867 |
|
| 13868 |
use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1):
|
| 13869 |
dependencies:
|
|
|
|
| 13870 |
detect-node-es: 1.1.0
|
| 13871 |
react: 18.3.1
|
| 13872 |
tslib: 2.8.1
|
| 13873 |
+
optionalDependencies:
|
| 13874 |
+
'@types/react': 18.3.18
|
| 13875 |
|
| 13876 |
use-sync-external-store@1.4.0(react@18.3.1):
|
| 13877 |
dependencies:
|
|
|
|
| 13904 |
sade: 1.8.1
|
| 13905 |
|
| 13906 |
valibot@0.41.0(typescript@5.7.3):
|
| 13907 |
+
optionalDependencies:
|
| 13908 |
typescript: 5.7.3
|
| 13909 |
|
| 13910 |
validate-npm-package-license@3.0.4:
|
|
|
|
| 13947 |
'@types/unist': 3.0.3
|
| 13948 |
vfile-message: 4.0.2
|
| 13949 |
|
| 13950 |
+
vite-node@1.6.1(@types/node@22.13.1)(sass-embedded@1.83.4):
|
| 13951 |
dependencies:
|
| 13952 |
cac: 6.7.14
|
| 13953 |
debug: 4.4.0
|
| 13954 |
pathe: 1.1.2
|
| 13955 |
picocolors: 1.1.1
|
| 13956 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 13957 |
transitivePeerDependencies:
|
| 13958 |
- '@types/node'
|
| 13959 |
- less
|
|
|
|
| 13965 |
- supports-color
|
| 13966 |
- terser
|
| 13967 |
|
| 13968 |
+
vite-node@2.1.9(@types/node@22.13.1)(sass-embedded@1.83.4):
|
| 13969 |
dependencies:
|
| 13970 |
cac: 6.7.14
|
| 13971 |
debug: 4.4.0
|
| 13972 |
es-module-lexer: 1.6.0
|
| 13973 |
pathe: 1.1.2
|
| 13974 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 13975 |
transitivePeerDependencies:
|
| 13976 |
- '@types/node'
|
| 13977 |
- less
|
|
|
|
| 13983 |
- supports-color
|
| 13984 |
- terser
|
| 13985 |
|
| 13986 |
+
vite-plugin-node-polyfills@0.22.0(rollup@3.29.5)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)):
|
| 13987 |
dependencies:
|
| 13988 |
'@rollup/plugin-inject': 5.0.5(rollup@3.29.5)
|
| 13989 |
node-stdlib-browser: 1.3.1
|
| 13990 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 13991 |
transitivePeerDependencies:
|
| 13992 |
- rollup
|
| 13993 |
|
| 13994 |
+
vite-plugin-optimize-css-modules@1.2.0(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)):
|
| 13995 |
dependencies:
|
| 13996 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 13997 |
|
| 13998 |
+
vite-tsconfig-paths@4.3.2(typescript@5.7.3)(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)):
|
| 13999 |
dependencies:
|
| 14000 |
debug: 4.4.0
|
| 14001 |
globrex: 0.1.2
|
| 14002 |
tsconfck: 3.1.5(typescript@5.7.3)
|
| 14003 |
+
optionalDependencies:
|
| 14004 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 14005 |
transitivePeerDependencies:
|
| 14006 |
- supports-color
|
| 14007 |
- typescript
|
| 14008 |
|
| 14009 |
+
vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4):
|
| 14010 |
dependencies:
|
| 14011 |
esbuild: 0.21.5
|
| 14012 |
postcss: 8.5.2
|
| 14013 |
rollup: 4.34.6
|
|
|
|
| 14014 |
optionalDependencies:
|
| 14015 |
+
'@types/node': 22.13.1
|
| 14016 |
fsevents: 2.3.3
|
| 14017 |
+
sass-embedded: 1.83.4
|
| 14018 |
|
| 14019 |
+
vitest@2.1.9(@types/node@22.13.1)(sass-embedded@1.83.4):
|
| 14020 |
dependencies:
|
| 14021 |
'@vitest/expect': 2.1.9
|
| 14022 |
+
'@vitest/mocker': 2.1.9(vite@5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4))
|
| 14023 |
'@vitest/pretty-format': 2.1.9
|
| 14024 |
'@vitest/runner': 2.1.9
|
| 14025 |
'@vitest/snapshot': 2.1.9
|
|
|
|
| 14035 |
tinyexec: 0.3.2
|
| 14036 |
tinypool: 1.0.2
|
| 14037 |
tinyrainbow: 1.2.0
|
| 14038 |
+
vite: 5.4.14(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 14039 |
+
vite-node: 2.1.9(@types/node@22.13.1)(sass-embedded@1.83.4)
|
| 14040 |
why-is-node-running: 2.3.0
|
| 14041 |
+
optionalDependencies:
|
| 14042 |
+
'@types/node': 22.13.1
|
| 14043 |
transitivePeerDependencies:
|
| 14044 |
- less
|
| 14045 |
- lightningcss
|
|
|
|
| 14104 |
wrangler@3.108.0(@cloudflare/workers-types@4.20250204.0):
|
| 14105 |
dependencies:
|
| 14106 |
'@cloudflare/kv-asset-handler': 0.3.4
|
|
|
|
| 14107 |
'@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19)
|
| 14108 |
'@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19)
|
| 14109 |
blake3-wasm: 2.1.5
|
|
|
|
| 14113 |
unenv: 2.0.0-rc.1
|
| 14114 |
workerd: 1.20250204.0
|
| 14115 |
optionalDependencies:
|
| 14116 |
+
'@cloudflare/workers-types': 4.20250204.0
|
| 14117 |
fsevents: 2.3.3
|
| 14118 |
sharp: 0.33.5
|
| 14119 |
transitivePeerDependencies:
|
|
|
|
| 14162 |
|
| 14163 |
zod@3.24.1: {}
|
| 14164 |
|
| 14165 |
+
zustand@5.0.3(@types/react@18.3.18)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
|
| 14166 |
+
optionalDependencies:
|
| 14167 |
'@types/react': 18.3.18
|
| 14168 |
react: 18.3.1
|
| 14169 |
+
use-sync-external-store: 1.4.0(react@18.3.1)
|
| 14170 |
|
| 14171 |
zwitch@2.0.4: {}
|
vite.config.ts
CHANGED
|
@@ -89,6 +89,7 @@ export default defineConfig((config) => {
|
|
| 89 |
__PKG_DEV_DEPENDENCIES: JSON.stringify(pkg.devDependencies),
|
| 90 |
__PKG_PEER_DEPENDENCIES: JSON.stringify(pkg.peerDependencies),
|
| 91 |
__PKG_OPTIONAL_DEPENDENCIES: JSON.stringify(pkg.optionalDependencies),
|
|
|
|
| 92 |
},
|
| 93 |
build: {
|
| 94 |
target: 'esnext',
|
|
|
|
| 89 |
__PKG_DEV_DEPENDENCIES: JSON.stringify(pkg.devDependencies),
|
| 90 |
__PKG_PEER_DEPENDENCIES: JSON.stringify(pkg.peerDependencies),
|
| 91 |
__PKG_OPTIONAL_DEPENDENCIES: JSON.stringify(pkg.optionalDependencies),
|
| 92 |
+
'module': {},
|
| 93 |
},
|
| 94 |
build: {
|
| 95 |
target: 'esnext',
|
wrangler.toml
DELETED
|
@@ -1,6 +0,0 @@
|
|
| 1 |
-
#:schema node_modules/wrangler/config-schema.json
|
| 2 |
-
name = "bolt"
|
| 3 |
-
compatibility_flags = ["nodejs_compat"]
|
| 4 |
-
compatibility_date = "2024-07-01"
|
| 5 |
-
pages_build_output_dir = "./build/client"
|
| 6 |
-
send_metrics = false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|