From f07d7d38191725b319bd6cc3cff055240297bc26 Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 10:51:14 +0200 Subject: [PATCH 1/7] feat: add association accordion component based on shacdn's component --- package.json | 3 +- public/logos/esn.svg | 9 +++ src/app/associations/page.tsx | 85 +++++++++++++++++++++ src/components/ui/accordion-association.tsx | 65 ++++++++++++++++ src/styles/animation.css | 29 +++++++ src/styles/globals.css | 1 + 6 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 public/logos/esn.svg create mode 100644 src/app/associations/page.tsx create mode 100644 src/components/ui/accordion-association.tsx create mode 100644 src/styles/animation.css diff --git a/package.json b/package.json index 0ccd5e6..acf5074 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-accordion": "^1.2.12", "@t3-oss/env-nextjs": "^0.13.10", "@tanstack/react-table": "^8.21.3", "babel-plugin-react-compiler": "^1.0.0", @@ -49,4 +50,4 @@ "engines": { "node": ">=24.5.2" } -} +} \ No newline at end of file diff --git a/public/logos/esn.svg b/public/logos/esn.svg new file mode 100644 index 0000000..60ad33c --- /dev/null +++ b/public/logos/esn.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/app/associations/page.tsx b/src/app/associations/page.tsx new file mode 100644 index 0000000..f599d1a --- /dev/null +++ b/src/app/associations/page.tsx @@ -0,0 +1,85 @@ +import Image from "next/image" +import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion-association" +import esnLogo from "../../../public/logos/esn.svg" + +const accordionItems = [ + { + value: "ESN - Erasmus Student Network", + name: "ESN - Erasmus Student Network", + logo: esnLogo, + content: + "Lorem ipsum dolor sit amet consectetur. Velit integer diam in id proin blandit fames id. Volutpat at vel risus non amet tortor. Potenti sit gravida donec lacinia et posuere faucibus. Elementum libero diam nullam ultricies mauris mauris erat porttitor. At morbi commodo nunc vulputate id odio pellentesque ipsum. Adipiscing at dictumst pulvinar mattis faucibus quisque donec convallis commodo. ", + links: [ + { + key: "Facebook", + href: "https://www.google.com", + }, + { + key: "Instagram", + href: "https://www.google.com", + }, + { + key: "Youtube", + href: "https://www.google.com", + }, + { + key: "Discord", + href: "https://www.google.com", + }, + { + key: "GitHub", + href: "https://www.google.com", + }, + { + key: "Telegram", + href: "https://www.google.com", + }, + { + key: "Email", + href: "mailto:example@email.com", + }, + { + key: "LinkedIn", + href: "https://www.google.com", + }, + { + key: "Twitch", + href: "https://www.google.com", + }, + { + key: "Spotify", + href: "https://www.google.com", + }, + { + key: "X", + href: "https://www.google.com", + }, + { + key: "Web", + href: "https://www.google.com", + }, + ], + }, +] + +export default function AssociationsPage() { + return ( +
+
+ + {accordionItems.map((item) => ( + + +
+ {item.name} + {item.name} +
+
+ {item.content} +
+ ))} +
+
+
+ ) +} diff --git a/src/components/ui/accordion-association.tsx b/src/components/ui/accordion-association.tsx new file mode 100644 index 0000000..403570b --- /dev/null +++ b/src/components/ui/accordion-association.tsx @@ -0,0 +1,65 @@ +"use client" + +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import type * as React from "react" +import { FiChevronDown } from "react-icons/fi" +import { Glass } from "@/components/glass" +import { cn } from "@/lib/utils" + +function Accordion({ className, ...props }: React.ComponentProps) { + return +} + +function AccordionItem({ className, children, ...props }: React.ComponentProps) { + return ( + + + {children} + + + ) +} + +function AccordionTrigger({ className, children, ...props }: React.ComponentProps) { + return ( + + svg]:rotate-180", + className + )} + {...props} + > + {children} + + + + ) +} + +function AccordionContent({ className, children, ...props }: React.ComponentProps) { + return ( + +
+ {children} +
+
+ ) +} + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/src/styles/animation.css b/src/styles/animation.css new file mode 100644 index 0000000..95b7195 --- /dev/null +++ b/src/styles/animation.css @@ -0,0 +1,29 @@ +@keyframes accordion-down { + from { + height: 0; + opacity: 0; + } + to { + height: var(--radix-accordion-content-height); + opacity: 1; + } +} + +@keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + opacity: 1; + } + to { + height: 0; + opacity: 0; + } +} + +@utility animate-accordion-down { + animation: accordion-down 0.2s ease-out; +} + +@utility animate-accordion-up { + animation: accordion-up 0.2s ease-out; +} diff --git a/src/styles/globals.css b/src/styles/globals.css index 9484dba..e8060f4 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -3,6 +3,7 @@ @import "./figma.css"; @import "./sidebar.css"; @import "./charts.css"; +@import "./animation.css"; @custom-variant dark (&:is(.dark *)); From 92b2aebc3f2818272c951c703b3019ef3a58befa Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 11:58:39 +0200 Subject: [PATCH 2/7] feat: enhance accordion component with social media icons --- src/app/associations/page.tsx | 61 ++++++++++++++++----- src/components/ui/accordion-association.tsx | 3 +- 2 files changed, 50 insertions(+), 14 deletions(-) diff --git a/src/app/associations/page.tsx b/src/app/associations/page.tsx index f599d1a..fc72265 100644 --- a/src/app/associations/page.tsx +++ b/src/app/associations/page.tsx @@ -1,4 +1,15 @@ import Image from "next/image" +import { + FiFacebook, + FiGithub, + FiGlobe, + FiInstagram, + FiLinkedin, + FiMail, + FiTwitch, + FiX, + FiYoutube, +} from "react-icons/fi" import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion-association" import esnLogo from "../../../public/logos/esn.svg" @@ -13,50 +24,62 @@ const accordionItems = [ { key: "Facebook", href: "https://www.google.com", + icon: FiFacebook, }, { key: "Instagram", href: "https://www.google.com", + icon: FiInstagram, }, { key: "Youtube", href: "https://www.google.com", + icon: FiYoutube, }, - { - key: "Discord", - href: "https://www.google.com", - }, + // { + // key: "Discord", + // href: "https://www.google.com", + // icon: FiDiscord + // }, { key: "GitHub", href: "https://www.google.com", + icon: FiGithub, }, - { - key: "Telegram", - href: "https://www.google.com", - }, + // { + // key: "Telegram", + // href: "https://www.google.com", + // icon: FiTelegram + // }, { key: "Email", href: "mailto:example@email.com", + icon: FiMail, }, { key: "LinkedIn", href: "https://www.google.com", + icon: FiLinkedin, }, { key: "Twitch", href: "https://www.google.com", + icon: FiTwitch, }, - { - key: "Spotify", - href: "https://www.google.com", - }, + // { + // key: "Spotify", + // href: "https://www.google.com", + // icon: FiSpotify + // }, { key: "X", href: "https://www.google.com", + icon: FiX, }, { key: "Web", href: "https://www.google.com", + icon: FiGlobe, }, ], }, @@ -75,7 +98,19 @@ export default function AssociationsPage() { {item.name} - {item.content} + + {item.content} +
+ Segui l'associazione +
+ {item.links.map((link) => ( + + + + ))} +
+
+
))} diff --git a/src/components/ui/accordion-association.tsx b/src/components/ui/accordion-association.tsx index 403570b..787717f 100644 --- a/src/components/ui/accordion-association.tsx +++ b/src/components/ui/accordion-association.tsx @@ -28,7 +28,8 @@ function AccordionTrigger({ className, children, ...props }: React.ComponentProp className={cn( "flex w-full items-center justify-between gap-4 text-left", "typo-display-medium outline-none", - "transition-all duration-500 data-[state=closed]:p-6 data-[state=open]:p-16", + "transition-all duration-500 data-[state=closed]:p-6 data-[state=open]:px-16", + "data-[state=open]:pt-16 data-[state=open]:pb-8", "[&[data-state=open]>svg]:rotate-180", className )} From ebc6551e8fc8ed5a7db7a5c9182a5141f75294cf Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 12:06:41 +0200 Subject: [PATCH 3/7] feat: enhance associations page with gradient icons for social media links --- src/app/associations/page.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/app/associations/page.tsx b/src/app/associations/page.tsx index fc72265..9a4a0fb 100644 --- a/src/app/associations/page.tsx +++ b/src/app/associations/page.tsx @@ -10,6 +10,7 @@ import { FiX, FiYoutube, } from "react-icons/fi" +import { GradientIcon } from "@/components/gradient-icon" import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion-association" import esnLogo from "../../../public/logos/esn.svg" @@ -101,11 +102,22 @@ export default function AssociationsPage() { {item.content}
- Segui l'associazione + + Segui l'associazione +
{item.links.map((link) => ( - - + + + ))}
From eac08e721be66a27b38a1618b72f6ca5b6230ebe Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 12:29:16 +0200 Subject: [PATCH 4/7] feat: implement background effect --- src/app/associations/page.tsx | 14 +++++++------- .../accordion-association.tsx | 13 ++++++++++--- .../accordion-association/accordion-background.tsx | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 10 deletions(-) rename src/components/{ui => accordion-association}/accordion-association.tsx (85%) create mode 100644 src/components/accordion-association/accordion-background.tsx diff --git a/src/app/associations/page.tsx b/src/app/associations/page.tsx index 9a4a0fb..f938e68 100644 --- a/src/app/associations/page.tsx +++ b/src/app/associations/page.tsx @@ -10,8 +10,13 @@ import { FiX, FiYoutube, } from "react-icons/fi" +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/accordion-association/accordion-association" import { GradientIcon } from "@/components/gradient-icon" -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion-association" import esnLogo from "../../../public/logos/esn.svg" const accordionItems = [ @@ -107,12 +112,7 @@ export default function AssociationsPage() {
{item.links.map((link) => ( - + ) { return @@ -12,9 +13,15 @@ function Accordion({ className, ...props }: React.ComponentProps) { return ( - - - {children} + + + {} +
{children}
) diff --git a/src/components/accordion-association/accordion-background.tsx b/src/components/accordion-association/accordion-background.tsx new file mode 100644 index 0000000..ade9b5b --- /dev/null +++ b/src/components/accordion-association/accordion-background.tsx @@ -0,0 +1,14 @@ +import { Shape } from "@/components/shapes" + +export function AccordionBackground() { + return ( +
+ + + +
+ +
+
+ ) +} From 62d21a0c60e6b6f83aaf06ff9bff9d87b4dd3b79 Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 13:03:10 +0200 Subject: [PATCH 5/7] feat: refactor accordion component into separate files and implement AccordionAssociation --- src/app/associations/page.tsx | 43 +---------- .../accordion-association.tsx | 73 ------------------- .../accordion-content.tsx | 28 +++++++ .../accordion-association/accordion-item.tsx | 21 ++++++ .../accordion-trigger.tsx | 30 ++++++++ .../accordion-association/accordion.tsx | 7 ++ .../accordion-association/index.tsx | 45 ++++++++++++ src/components/accordion-association/types.ts | 19 +++++ 8 files changed, 154 insertions(+), 112 deletions(-) delete mode 100644 src/components/accordion-association/accordion-association.tsx create mode 100644 src/components/accordion-association/accordion-content.tsx create mode 100644 src/components/accordion-association/accordion-item.tsx create mode 100644 src/components/accordion-association/accordion-trigger.tsx create mode 100644 src/components/accordion-association/accordion.tsx create mode 100644 src/components/accordion-association/index.tsx create mode 100644 src/components/accordion-association/types.ts diff --git a/src/app/associations/page.tsx b/src/app/associations/page.tsx index f938e68..6f93971 100644 --- a/src/app/associations/page.tsx +++ b/src/app/associations/page.tsx @@ -1,4 +1,5 @@ -import Image from "next/image" +'use client' + import { FiFacebook, FiGithub, @@ -10,13 +11,7 @@ import { FiX, FiYoutube, } from "react-icons/fi" -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "@/components/accordion-association/accordion-association" -import { GradientIcon } from "@/components/gradient-icon" +import AccordionAssociation from "@/components/accordion-association" import esnLogo from "../../../public/logos/esn.svg" const accordionItems = [ @@ -95,37 +90,7 @@ export default function AssociationsPage() { return (
) diff --git a/src/components/accordion-association/accordion-association.tsx b/src/components/accordion-association/accordion-association.tsx deleted file mode 100644 index b921c10..0000000 --- a/src/components/accordion-association/accordion-association.tsx +++ /dev/null @@ -1,73 +0,0 @@ -"use client" - -import * as AccordionPrimitive from "@radix-ui/react-accordion" -import type * as React from "react" -import { FiChevronDown } from "react-icons/fi" -import { Glass } from "@/components/glass" -import { cn } from "@/lib/utils" -import { AccordionBackground } from "./accordion-background" - -function Accordion({ className, ...props }: React.ComponentProps) { - return -} - -function AccordionItem({ className, children, ...props }: React.ComponentProps) { - return ( - - - {} -
{children}
-
-
- ) -} - -function AccordionTrigger({ className, children, ...props }: React.ComponentProps) { - return ( - - svg]:rotate-180", - className - )} - {...props} - > - {children} - - - - ) -} - -function AccordionContent({ className, children, ...props }: React.ComponentProps) { - return ( - -
- {children} -
-
- ) -} - -export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } diff --git a/src/components/accordion-association/accordion-content.tsx b/src/components/accordion-association/accordion-content.tsx new file mode 100644 index 0000000..69f03cc --- /dev/null +++ b/src/components/accordion-association/accordion-content.tsx @@ -0,0 +1,28 @@ +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import type * as React from "react" +import { cn } from "@/lib/utils" + +export function AccordionContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + +
+ {children} +
+
+ ) +} diff --git a/src/components/accordion-association/accordion-item.tsx b/src/components/accordion-association/accordion-item.tsx new file mode 100644 index 0000000..5668b28 --- /dev/null +++ b/src/components/accordion-association/accordion-item.tsx @@ -0,0 +1,21 @@ +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import type * as React from "react" +import { Glass } from "@/components/glass" +import { cn } from "@/lib/utils" +import { AccordionBackground } from "./accordion-background" + +export function AccordionItem({ className, children, ...props }: React.ComponentProps) { + return ( + + + {} +
{children}
+
+
+ ) +} diff --git a/src/components/accordion-association/accordion-trigger.tsx b/src/components/accordion-association/accordion-trigger.tsx new file mode 100644 index 0000000..920183a --- /dev/null +++ b/src/components/accordion-association/accordion-trigger.tsx @@ -0,0 +1,30 @@ +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import type * as React from "react" +import { FiChevronDown } from "react-icons/fi" +import { cn } from "@/lib/utils" + +export function AccordionTrigger({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + svg]:rotate-180", + className + )} + {...props} + > + {children} + + + + ) +} diff --git a/src/components/accordion-association/accordion.tsx b/src/components/accordion-association/accordion.tsx new file mode 100644 index 0000000..ac91954 --- /dev/null +++ b/src/components/accordion-association/accordion.tsx @@ -0,0 +1,7 @@ +import * as AccordionPrimitive from "@radix-ui/react-accordion" +import type * as React from "react" +import { cn } from "@/lib/utils" + +export function Accordion({ className, ...props }: React.ComponentProps) { + return +} diff --git a/src/components/accordion-association/index.tsx b/src/components/accordion-association/index.tsx new file mode 100644 index 0000000..3bb2bfb --- /dev/null +++ b/src/components/accordion-association/index.tsx @@ -0,0 +1,45 @@ +"use client" + +import Image from "next/image" +import { GradientIcon } from "../gradient-icon" +import { Accordion } from "./accordion" +import { AccordionContent } from "./accordion-content" +import { AccordionItem } from "./accordion-item" +import { AccordionTrigger } from "./accordion-trigger" +import type { AccordionAssociationProps } from "./types" + +export default function AccordionAssociation({ accordionItems, defaultValue }: AccordionAssociationProps) { + return ( + + {accordionItems.map((item) => ( + + +
+ {item.name} + {item.name} +
+
+ + {item.content} +
+ + Segui l'associazione + +
+ {item.links.map((link) => ( + + + + + ))} +
+
+
+
+ ))} +
+ ) +} diff --git a/src/components/accordion-association/types.ts b/src/components/accordion-association/types.ts new file mode 100644 index 0000000..b7684b8 --- /dev/null +++ b/src/components/accordion-association/types.ts @@ -0,0 +1,19 @@ +import type { StaticImageData } from "next/image" +import type { GradientIconType } from "../gradient-icon" + +export type AccordionAssociationItem = { + value: string + name: string + logo: StaticImageData + content: React.ReactNode + links: { + key: string + href: string + icon: GradientIconType + }[] +} + +export type AccordionAssociationProps = { + accordionItems: AccordionAssociationItem[] + defaultValue?: string +} From 64959f3dc9b492ab9f67acafea87b3e169f058ce Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 13:47:14 +0200 Subject: [PATCH 6/7] fix: correct string quotes in page.tsx --- src/app/associations/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/associations/page.tsx b/src/app/associations/page.tsx index 6f93971..a79c65a 100644 --- a/src/app/associations/page.tsx +++ b/src/app/associations/page.tsx @@ -1,4 +1,4 @@ -'use client' +"use client" import { FiFacebook, From 6011d2ea2c7d96a284c41e364806ff621bfdd2eb Mon Sep 17 00:00:00 2001 From: Bianca Date: Thu, 16 Apr 2026 13:54:57 +0200 Subject: [PATCH 7/7] feat: add @radix-ui/react-accordion and @radix-ui/react-collapsible dependencies to pnpm-lock.yaml --- pnpm-lock.yaml | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c9e7c1..072d523 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@radix-ui/react-accordion': + specifier: ^1.2.12 + version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-select': specifier: ^2.2.6 version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -417,6 +420,19 @@ packages: '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/react-accordion@1.2.12': + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-arrow@1.1.7': resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: @@ -430,6 +446,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collection@1.1.7': resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: @@ -1398,6 +1427,23 @@ snapshots: '@radix-ui/primitive@1.1.3': {} + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1407,6 +1453,22 @@ snapshots: '@types/react': 19.2.7 '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3)