From 1423ab0a6b2a8fa32ed9fad9c0144cfe134406d2 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Thu, 7 Nov 2024 10:13:28 -0500 Subject: [PATCH 01/37] added preview notif for components / swapped hopper logo --- apps/docs/app/tokens.css | 2 ++ apps/docs/app/ui/components/heading/Heading.tsx | 9 ++++++--- apps/docs/app/ui/components/heading/heading.css | 16 ++++++++++++++++ .../app/ui/layout/header/assets/hopper-logo.svg | 2 +- .../ui/layout/mobileMenu/assets/hopper-logo.svg | 2 +- apps/docs/app/ui/layout/nav/Nav.tsx | 8 ++++---- apps/docs/app/ui/layout/nav/nav.css | 9 +++++++++ 7 files changed, 39 insertions(+), 9 deletions(-) diff --git a/apps/docs/app/tokens.css b/apps/docs/app/tokens.css index b179fd7e9..ce9af9a8a 100644 --- a/apps/docs/app/tokens.css +++ b/apps/docs/app/tokens.css @@ -92,6 +92,7 @@ --hd-color-accent-text: var(--hd-accent-700); --hd-color-accent-border: var(--hd-accent-700); --hd-color-accent-surface: var(--hd-accent-100); + --hd-color-accent-surface-strong: var(--hd-accent-700); --hd-color-information-surface: #D9EFFF; --hd-color-information-icon: #2E70A8; --hd-color-message-surface: var(--hd-accent-100); @@ -141,6 +142,7 @@ --hd-color-accent-text: var(--hd-accent-300); --hd-color-accent-border: var(--hd-accent-400); --hd-color-accent-surface: var(--hd-accent-900); + --hd-color-accent-surface-strong: var(--hd-accent-400); --hd-color-information-surface: #D9EFFF; --hd-color-information-icon: #2E70A8; --hd-color-message-surface: var(--hd-accent-100); diff --git a/apps/docs/app/ui/components/heading/Heading.tsx b/apps/docs/app/ui/components/heading/Heading.tsx index e5df85e0b..188f141af 100644 --- a/apps/docs/app/ui/components/heading/Heading.tsx +++ b/apps/docs/app/ui/components/heading/Heading.tsx @@ -1,7 +1,7 @@ -import clsx from "clsx"; -import Title from "@/components/title/Title.tsx"; -import Tag from "@/components/tag/Tag.tsx"; import LinkList, { type Links } from "@/app/ui/components/linkList/LinkList.tsx"; +import Tag from "@/components/tag/Tag.tsx"; +import Title from "@/components/title/Title.tsx"; +import clsx from "clsx"; import "./heading.css"; @@ -16,6 +16,9 @@ export interface HeadingProps { const Heading = ({ title, tag, className, description, links }: HeadingProps) => { return (
+
+

Preview Only: These components are for reference only. Continue using Orbiter in production until further notice.

+
{title} {tag && {tag}} diff --git a/apps/docs/app/ui/components/heading/heading.css b/apps/docs/app/ui/components/heading/heading.css index 7f8227a03..b5078d374 100644 --- a/apps/docs/app/ui/components/heading/heading.css +++ b/apps/docs/app/ui/components/heading/heading.css @@ -16,3 +16,19 @@ .hd-heading__links { margin-inline: calc(var(--hd-space-1) * -1); } + +.hd-heading__banner { + background-color: var(--hd-color-neutral-surface-weak); + border: 2px solid; + border-radius: var(--hd-border-radius-sm); + margin-block-end: var(--hd-space-4); + padding: var(--hd-space-2); +} + +.hd-heading__banner-title { + font-weight: 600; +} + +.hd-heading__banner-link { + text-decoration: underline; +} diff --git a/apps/docs/app/ui/layout/header/assets/hopper-logo.svg b/apps/docs/app/ui/layout/header/assets/hopper-logo.svg index 4b16b3976..a229c04b7 100644 --- a/apps/docs/app/ui/layout/header/assets/hopper-logo.svg +++ b/apps/docs/app/ui/layout/header/assets/hopper-logo.svg @@ -1 +1 @@ - + diff --git a/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg b/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg index 4b16b3976..a229c04b7 100644 --- a/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg +++ b/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg @@ -1 +1 @@ - + diff --git a/apps/docs/app/ui/layout/nav/Nav.tsx b/apps/docs/app/ui/layout/nav/Nav.tsx index 69b9d3f56..3dc6d274b 100644 --- a/apps/docs/app/ui/layout/nav/Nav.tsx +++ b/apps/docs/app/ui/layout/nav/Nav.tsx @@ -1,11 +1,11 @@ "use client"; -import { type PropsWithoutRef, useContext } from "react"; +import type { NavItem } from "@/configs/navigation"; +import { FeatureFlagContext } from "@/context/feature/FeatureFlagProvider.tsx"; import clsx from "clsx"; import Link from "next/link"; import { usePathname } from "next/navigation"; -import type { NavItem } from "@/configs/navigation"; -import { FeatureFlagContext } from "@/context/feature/FeatureFlagProvider.tsx"; +import { type PropsWithoutRef, useContext } from "react"; import "./nav.css"; @@ -29,7 +29,7 @@ const Nav = ({ items }: { items: PropsWithoutRef }) => { className={clsx("hd-nav__list-item", isActive && "hd-nav__list-item--active", (!featureFlags.alpha && status !== "ready") && "hd-nav__link--disabled")} > - {label} + {label} {label === "Components" && Preview} ); diff --git a/apps/docs/app/ui/layout/nav/nav.css b/apps/docs/app/ui/layout/nav/nav.css index 25e6085a6..515260159 100644 --- a/apps/docs/app/ui/layout/nav/nav.css +++ b/apps/docs/app/ui/layout/nav/nav.css @@ -54,3 +54,12 @@ .hd-nav__link--disabled:hover { background-color: transparent; } + +/* Tag */ +.hd-nav__link-tag { + border-radius: var(--hd-border-radius-sm); + background-color: var(--hd-color-accent-surface-strong); + color: var(--hd-white); + padding-block: var(--hd-space-05); + padding-inline: var(--hd-space-1); +} From 56dfe1898357cacffc27061d59cc461728f3e3e0 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Thu, 7 Nov 2024 10:35:26 -0500 Subject: [PATCH 02/37] added new hopper logo - added preview tag in all components sections / fix for mobile display of heading --- apps/docs/app/home.css | 9 +++++++++ apps/docs/app/page.tsx | 14 ++++++-------- apps/docs/app/ui/layout/header/Header.tsx | 2 +- .../app/ui/layout/header/assets/hopper-logo.svg | 2 +- apps/docs/app/ui/layout/header/header.css | 6 +++--- apps/docs/app/ui/layout/mobileMenu/MobileMenu.tsx | 14 +++++++------- .../ui/layout/mobileMenu/assets/hopper-logo.svg | 2 +- apps/docs/app/ui/layout/mobileMenu/mobileMenu.css | 10 ++++++++++ apps/docs/app/ui/layout/nav/nav.css | 6 +++--- 9 files changed, 41 insertions(+), 24 deletions(-) diff --git a/apps/docs/app/home.css b/apps/docs/app/home.css index 97ed5d6ba..36c26752a 100644 --- a/apps/docs/app/home.css +++ b/apps/docs/app/home.css @@ -168,6 +168,15 @@ a.hd-home-sample__item:hover::after { transition: opacity 0.2s ease, transform 0.1s ease-in; } +.hd-home-sample__title-tag { + align-self: center; + border-radius: var(--hd-border-radius-sm); + background-color: var(--hd-color-accent-surface-strong); + color: var(--hd-white); + font-size: 0.75rem; + padding: var(--hd-space-05); +} + .hd-home-sample__tagline { color: var(--hd-color-neutral-text-weak); font-size: 1rem; diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index 03889a9cc..cdfa91042 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -1,7 +1,7 @@ "use client"; -import { useContext } from "react"; import Image from "next/image"; +import { useContext } from "react"; import { Button as HopperButton, HopperProvider } from "@hopper-ui/components"; import { @@ -34,24 +34,24 @@ import { } from "@hopper-ui/icons"; import "@hopper-ui/tokens/fonts.css"; +import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; import Button from "@/components/button/Button"; import { - ExternalLinkIcon, - Icon, AccessibleIcon, ArrowIcon, DarkModeIcon, + ExternalLinkIcon, FontSizeIcon, + Icon, InternationalIcon, LineHeightIcon, MarginIcon, SelectArrowIcon, TypescriptIcon } from "@/components/icon"; -import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; -import { type ColorScheme, ThemeContext } from "@/context/theme/ThemeProvider.tsx"; import { FeatureFlagContext } from "@/context/feature/FeatureFlagProvider.tsx"; +import { type ColorScheme, ThemeContext } from "@/context/theme/ThemeProvider.tsx"; import "./home.css"; @@ -286,9 +286,7 @@ export default function Home() {
-

Components

+

Components Preview

An accessible suite of components powered by react-aria.

diff --git a/apps/docs/app/ui/layout/header/Header.tsx b/apps/docs/app/ui/layout/header/Header.tsx index b40d8dd4e..65043e465 100644 --- a/apps/docs/app/ui/layout/header/Header.tsx +++ b/apps/docs/app/ui/layout/header/Header.tsx @@ -96,7 +96,7 @@ const ProductMenuAndBrand = () => { const Header = () => { const { colorMode, setColorMode } = useContext(ThemeContext); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); - const isMobile = useIsMobile("48rem"); + const isMobile = useIsMobile("52.25rem"); const { logRocketAppId } = useEnvironmentContext(); useEffect(() => { diff --git a/apps/docs/app/ui/layout/header/assets/hopper-logo.svg b/apps/docs/app/ui/layout/header/assets/hopper-logo.svg index a229c04b7..ad2088dc4 100644 --- a/apps/docs/app/ui/layout/header/assets/hopper-logo.svg +++ b/apps/docs/app/ui/layout/header/assets/hopper-logo.svg @@ -1 +1 @@ - + diff --git a/apps/docs/app/ui/layout/header/header.css b/apps/docs/app/ui/layout/header/header.css index de5f3426a..64e503228 100644 --- a/apps/docs/app/ui/layout/header/header.css +++ b/apps/docs/app/ui/layout/header/header.css @@ -102,7 +102,7 @@ } } -@media screen and (width >= 48rem) { +@media screen and (width >= 52.25rem) { .hd-header { position: sticky; top: 0; @@ -135,7 +135,7 @@ gap: var(--hd-space-1); } -@media screen and (width >= 48rem) { +@media screen and (width >= 52.25rem) { .hd-header__quick-actions { display: flex; } @@ -145,7 +145,7 @@ display: block; } -@media screen and (width >= 48rem) { +@media screen and (width >= 52.25rem) { .hd-header__mobile-menu-trigger { display: none; } diff --git a/apps/docs/app/ui/layout/mobileMenu/MobileMenu.tsx b/apps/docs/app/ui/layout/mobileMenu/MobileMenu.tsx index bf1622906..2ca34da95 100644 --- a/apps/docs/app/ui/layout/mobileMenu/MobileMenu.tsx +++ b/apps/docs/app/ui/layout/mobileMenu/MobileMenu.tsx @@ -1,15 +1,15 @@ "use client"; +import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; +import IconButton from "@/components/iconButton/IconButton"; +import ThemeSwitch from "@/components/themeSwitch/ThemeSwitch"; +import { navigation } from "@/configs/navigation"; +import { FeatureFlagContext } from "@/context/feature/FeatureFlagProvider.tsx"; +import { type ColorScheme, ThemeContext } from "@/context/theme/ThemeProvider.tsx"; import clsx from "clsx"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { useContext, useEffect, useState } from "react"; -import ThemeSwitch from "@/components/themeSwitch/ThemeSwitch"; -import IconButton from "@/components/iconButton/IconButton"; -import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; -import { navigation } from "@/configs/navigation"; -import { type ColorScheme, ThemeContext } from "@/context/theme/ThemeProvider.tsx"; -import { FeatureFlagContext } from "@/context/feature/FeatureFlagProvider.tsx"; import CloseIcon from "./assets/close.svg"; import GithubLogo from "./assets/github.svg"; @@ -84,7 +84,7 @@ const MobileMenu = ({ onClose, isOpen }: MobileMenuProps) => { className={clsx("hd-mobile-menu-nav-list__link", isActive && "hd-mobile-menu-nav-list__link--active", (!featureFlags.alpha && status !== "ready") && "hd-mobile-menu-nav-list__link--disabled")} onClick={onClose} > - {label} + {label}{label === "Components" && Preview} ); diff --git a/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg b/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg index a229c04b7..ad2088dc4 100644 --- a/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg +++ b/apps/docs/app/ui/layout/mobileMenu/assets/hopper-logo.svg @@ -1 +1 @@ - + diff --git a/apps/docs/app/ui/layout/mobileMenu/mobileMenu.css b/apps/docs/app/ui/layout/mobileMenu/mobileMenu.css index f78c76d76..4a5102d2d 100644 --- a/apps/docs/app/ui/layout/mobileMenu/mobileMenu.css +++ b/apps/docs/app/ui/layout/mobileMenu/mobileMenu.css @@ -48,6 +48,7 @@ font-size: 1.5rem; display: flex; color: var(--hd-color-neutral-text-weak); + gap: var(--hd-space-1) } .hd-mobile-menu-nav-list__link:hover { @@ -92,6 +93,15 @@ color: var(--hd-color-neutral-text-weakest); } +.hd-mobile-menu-nav-tag { + align-self: center; + border-radius: var(--hd-border-radius-sm); + background-color: var(--hd-color-accent-surface-strong); + color: var(--hd-white); + font-size: 0.75rem; + padding: var(--hd-space-05); +} + .hd-mobile-menu--opening { animation: fade-in .1s ease-in forwards; } diff --git a/apps/docs/app/ui/layout/nav/nav.css b/apps/docs/app/ui/layout/nav/nav.css index 515260159..50557ad5d 100644 --- a/apps/docs/app/ui/layout/nav/nav.css +++ b/apps/docs/app/ui/layout/nav/nav.css @@ -9,7 +9,7 @@ line-height: var(--hd-nav-line-height); } -@media screen and (width >= 48rem) { +@media screen and (width >= 52.25rem) { .hd-nav { display: block; } @@ -60,6 +60,6 @@ border-radius: var(--hd-border-radius-sm); background-color: var(--hd-color-accent-surface-strong); color: var(--hd-white); - padding-block: var(--hd-space-05); - padding-inline: var(--hd-space-1); + font-size: 0.75rem; + padding: var(--hd-space-05); } From ccfaffb590d59af7728bb96971fc7d193bfec161 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Thu, 7 Nov 2024 10:45:33 -0500 Subject: [PATCH 03/37] linting error --- apps/docs/app/ui/components/heading/heading.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/app/ui/components/heading/heading.css b/apps/docs/app/ui/components/heading/heading.css index b5078d374..18b1a7e95 100644 --- a/apps/docs/app/ui/components/heading/heading.css +++ b/apps/docs/app/ui/components/heading/heading.css @@ -19,7 +19,7 @@ .hd-heading__banner { background-color: var(--hd-color-neutral-surface-weak); - border: 2px solid; + border: 0.125rem solid var(--hd-color-neutral-border-strong); border-radius: var(--hd-border-radius-sm); margin-block-end: var(--hd-space-4); padding: var(--hd-space-2); From e5aea3beb3c8f3653081ae4cc6c2b5166f91dd05 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Thu, 7 Nov 2024 11:25:28 -0500 Subject: [PATCH 04/37] small fixes to tag --- apps/docs/app/home.css | 1 + apps/docs/app/ui/layout/nav/nav.css | 1 + 2 files changed, 2 insertions(+) diff --git a/apps/docs/app/home.css b/apps/docs/app/home.css index 36c26752a..206f3cecd 100644 --- a/apps/docs/app/home.css +++ b/apps/docs/app/home.css @@ -174,6 +174,7 @@ a.hd-home-sample__item:hover::after { background-color: var(--hd-color-accent-surface-strong); color: var(--hd-white); font-size: 0.75rem; + font-weight: 400; padding: var(--hd-space-05); } diff --git a/apps/docs/app/ui/layout/nav/nav.css b/apps/docs/app/ui/layout/nav/nav.css index 50557ad5d..e53593430 100644 --- a/apps/docs/app/ui/layout/nav/nav.css +++ b/apps/docs/app/ui/layout/nav/nav.css @@ -62,4 +62,5 @@ color: var(--hd-white); font-size: 0.75rem; padding: var(--hd-space-05); + margin-inline-start: var(--hd-space-05); } From ba752d43dbea0012a0a23c0d0fcc25a78d72271b Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 22 Nov 2024 21:40:59 -0500 Subject: [PATCH 05/37] components are now shown in preview --- apps/docs/app/page.tsx | 505 +++++++++--------- apps/docs/configs/navigation.ts | 8 +- .../getting-started/individual-packages.mdx | 2 - apps/docs/content/getting-started/react.mdx | 5 - 4 files changed, 244 insertions(+), 276 deletions(-) diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index cdfa91042..4ddad5693 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -50,300 +50,279 @@ import { TypescriptIcon } from "@/components/icon"; -import { FeatureFlagContext } from "@/context/feature/FeatureFlagProvider.tsx"; import { type ColorScheme, ThemeContext } from "@/context/theme/ThemeProvider.tsx"; import "./home.css"; export default function Home() { - const featureFlags = useContext(FeatureFlagContext); const { colorMode } = useContext(ThemeContext); const theme = colorMode as ColorScheme; - const landingPage = ( - <> -

Welcome to Workleap's Hopper Design System.

-

The documentation is currently in beta.

- - ); - - const newLandingPage = ( - <> -
-

Leap into creativity

-

Explore our Design System, where icons, tokens, and components are + return ( + +

+
+

Leap into creativity

+

Explore our Design System, where icons, tokens, and components are handpicked for ultimate simplicity and accessibility.

-
-
- - -
-
-
-

Accessible -

-

- Built with accessibility in mind Hopper is based on React Aria Components -

-
-

International

-

- Experience is pushed further with internationalization. -

+
+ +
-
-

Typescript

-

+

+
+

Accessible +

+

+ Built with accessibility in mind Hopper is based on React Aria Components +

+
+
+

International

+

+ Experience is pushed further with internationalization. +

+
+
+

Typescript

+

Typescript based for reduced learning curve and error detection. -

-
-
-

Dark +

+

+
+

Dark mode

-

+

Switching from light to dark mode couldn't be easier. -

+

+
-
-
-
-
- -
- -

Text Styles

-
-
- Aa +
+
+
+
+ +

Colors

+
+
+ + + + +
+
+ + + + +
-
- -

An accessible suite of components powered by + +

+

An accessible suite of components powered by react-aria.

-
-
-
- Avatar Group component preview +
+
+
+ Avatar Group component preview +
-
-
-
- Select Fielg component preview +
+
+ Select Fielg component preview +
-
-
- - ); - - return ( - -
- { - featureFlags.alpha ? newLandingPage : landingPage - } + +
); diff --git a/apps/docs/configs/navigation.ts b/apps/docs/configs/navigation.ts index d727a0d7c..52111575e 100644 --- a/apps/docs/configs/navigation.ts +++ b/apps/docs/configs/navigation.ts @@ -1,17 +1,13 @@ -import { flags } from "../context/feature/flags.ts"; - export interface NavItem { label: string; path: string; status: "ready" | "not-ready"; } -const isAlpha = flags.alpha; - export const navigation: NavItem[] = [ { "label": "Getting Started", - "path": `/getting-started/${isAlpha ? "react" : "individual-packages"}`, + "path": "/getting-started/react", "status": "ready" }, { @@ -27,6 +23,6 @@ export const navigation: NavItem[] = [ { "label": "Components", "path": "/components/component-list", - "status": "not-ready" + "status": "ready" } ]; diff --git a/apps/docs/content/getting-started/individual-packages.mdx b/apps/docs/content/getting-started/individual-packages.mdx index e6bbf608b..375472920 100644 --- a/apps/docs/content/getting-started/individual-packages.mdx +++ b/apps/docs/content/getting-started/individual-packages.mdx @@ -7,7 +7,6 @@ status: ready If you require a specific installation, you can install Hopper UI packages separately. - ## Components Hopper Components are React Components. If you are using another framework or React Native, you should use component tokens when developing your own components. This will ensure your components stay in sync with the Hopper UI. Please note that component tokens will be available later. In the meantime, you should use [semantic tokens](/tokens/overview/introduction#semantic-tokens). @@ -29,7 +28,6 @@ If you require a specific installation, you can install Hopper UI packages separ ``` - ## Tokens diff --git a/apps/docs/content/getting-started/react.mdx b/apps/docs/content/getting-started/react.mdx index 4522a2560..1050e462d 100644 --- a/apps/docs/content/getting-started/react.mdx +++ b/apps/docs/content/getting-started/react.mdx @@ -2,7 +2,6 @@ title: React description: Getting started with Hopper UI. order: 1 -status: alpha --- Hopper UI is a Design System that provides a collection of [components](components/component-list), [tokens](/tokens/overview/introduction), and [icons](/icons/overview/introduction) to help you build applications. @@ -49,7 +48,3 @@ Font-face declarations are now imported in your project. Failing to do so would prevent you from using [font family tokens](/tokens/semantic/typography) such as `var(--hop-font-family-primary)`. You are now ready to use Hopper UI in your project! Need more details? Have a look at the [Individual package installation](/getting-started/individual-packages) page. - -## Contribute - -Pull requests are welcome. For major changes, please open a [discussion](https://github.com/gsoft-inc/wl-hopper/discussions/new/choose) to detail your proposed changes. If you're interested in contributing, check out our [Contributing Guide](https://github.com/gsoft-inc/wl-hopper/blob/main/CONTRIBUTING.md). From 0d1804d0f240567d5a58c684a7ebc27a2ebf11a7 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Sat, 23 Nov 2024 00:50:34 -0500 Subject: [PATCH 06/37] first draft of the getting started section --- .../app/getting-started/[...slug]/page.tsx | 9 +- apps/docs/app/getting-started/layout.tsx | 35 +++-- apps/docs/app/getting-started/page.tsx | 23 --- apps/docs/app/page.tsx | 2 +- apps/docs/configs/navigation.ts | 4 +- .../getting-started/individual-packages.mdx | 146 ------------------ .../installation-path/javascript.mdx | 56 +++++++ .../installation-path/react.mdx | 71 +++++++++ .../content/getting-started/javascript.mdx | 78 ---------- .../getting-started/overview/installation.mdx | 27 ++++ apps/docs/content/getting-started/react.mdx | 50 ------ apps/docs/package.json | 4 - 12 files changed, 179 insertions(+), 326 deletions(-) delete mode 100644 apps/docs/app/getting-started/page.tsx delete mode 100644 apps/docs/content/getting-started/individual-packages.mdx create mode 100644 apps/docs/content/getting-started/installation-path/javascript.mdx create mode 100644 apps/docs/content/getting-started/installation-path/react.mdx delete mode 100644 apps/docs/content/getting-started/javascript.mdx create mode 100644 apps/docs/content/getting-started/overview/installation.mdx delete mode 100644 apps/docs/content/getting-started/react.mdx diff --git a/apps/docs/app/getting-started/[...slug]/page.tsx b/apps/docs/app/getting-started/[...slug]/page.tsx index 0eb8b3695..25d4d9e42 100644 --- a/apps/docs/app/getting-started/[...slug]/page.tsx +++ b/apps/docs/app/getting-started/[...slug]/page.tsx @@ -1,9 +1,9 @@ -import { notFound } from "next/navigation"; import { allGettingStarteds } from "contentlayer/generated"; +import { notFound } from "next/navigation"; +import getSectionLinks from "@/app/lib/getSectionLinks.ts"; import Aside from "@/app/ui/layout/aside/Aside.tsx"; import Mdx from "@/components/mdx/Mdx.tsx"; -import getSectionLinks from "@/app/lib/getSectionLinks.ts"; import Title from "@/components/title/Title"; interface PageProps { @@ -19,9 +19,8 @@ export async function generateStaticParams() { } export default function IconPage({ params }: PageProps) { - const [slug] = params.slug; - - const pages = allGettingStarteds.find(page => page.slug === slug); + const [section, type] = params.slug; + const pages = allGettingStarteds.find(page => page.slug === type && page.section === section); if (!pages) { notFound(); diff --git a/apps/docs/app/getting-started/layout.tsx b/apps/docs/app/getting-started/layout.tsx index d4a164e66..738261edd 100644 --- a/apps/docs/app/getting-started/layout.tsx +++ b/apps/docs/app/getting-started/layout.tsx @@ -1,35 +1,36 @@ "use client"; -import type { ReactNode } from "react"; -import { allGettingStarteds } from "contentlayer/generated"; -import { useSelectedLayoutSegment } from "next/navigation"; +import getPageLinks from "@/app/lib/getPageLinks"; +import getSectionLinks from "@/app/lib/getSectionLinks"; import Sidebar from "@/app/ui/layout/sidebar/Sidebar"; import SubHeader from "@/app/ui/layout/subHeader/SubHeader"; import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; -import getSectionLinks from "@/app/lib/getSectionLinks"; import { SidebarProvider } from "@/context/sidebar/SidebarProvider"; -import getPageLinks from "@/app/lib/getPageLinks"; +import { allGettingStarteds } from "contentlayer/generated"; +import { useSelectedLayoutSegment } from "next/navigation"; +import type { ReactNode } from "react"; export default function TokenLayout({ children }: { children: ReactNode }) { - const slug = useSelectedLayoutSegment(); - const pageContent = allGettingStarteds.find(page => page.slug === slug); - const allGettingStartedsLinks = getPageLinks(allGettingStarteds); + const selectedLayoutSegment = useSelectedLayoutSegment(); + const [section, type] = selectedLayoutSegment?.split("/") ?? ["", ""]; + const pageContent = allGettingStarteds.find(page => page.slug === type && page.section === section); if (!pageContent) { return null; } const sectionLinks = getSectionLinks(pageContent); + const allGettingStartedsLinks = getPageLinks(allGettingStarteds, { + order: ["overview", "installation-path"] + }); return ( - <> - - - - - {children} - - - + + + + + {children} + + ); } diff --git a/apps/docs/app/getting-started/page.tsx b/apps/docs/app/getting-started/page.tsx deleted file mode 100644 index aec656a3f..000000000 --- a/apps/docs/app/getting-started/page.tsx +++ /dev/null @@ -1,23 +0,0 @@ -"use client"; - -import { allPages } from "contentlayer/generated"; -import Mdx from "@/components/mdx/Mdx"; -import { notFound } from "next/navigation"; - -export default function IconPage() { - const page = allPages.find(iconPage => iconPage._id === "pages/icons.mdx"); - - if (!page) { - notFound(); - } - - return ( -
-
-
- {page.body && } -
-
-
- ); -} diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index 4ddad5693..32ed9fc4a 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -67,7 +67,7 @@ export default function Home() { handpicked for ultimate simplicity and accessibility.

- + - - ``` - -## Tokens - -### Installation - -Run the following command to install the tokens package. - - - -### Usage - -Import the tokens in your project by doing the following: - -```css title="myfile.css" -@import "@hopper-ui/tokens/tokens.css"; -``` - -If your application supports a dark mode, import dark mode tokens as well: - -```css title="myfile.css" -@import "@hopper-ui/tokens/dark/tokens.css"; -``` - -You can now use the tokens in your project by using the following syntax: - -```css title="myfile.css" -.my-class { - background-color: var(--hop-primary-surface-weak); -} -``` -#### Fonts - -In order to use Hopper fonts in your project, import the following: - -```css title="myfile.css" -@import "@hopper-ui/tokens/fonts.css"; -``` - -Font-face declarations are now imported in your project. - -Failing to do so would prevent you from using [font family tokens](/tokens/semantic/typography) such as `var(--hop-font-family-primary)`. - -*Inter* and *ABC Favorit* variable fonts are used. This allows for a more efficient use of font files, only one font is loaded per typeface, covering all font-weights. Resulting in a smaller bundle size for all. - -#### Styled System - -A styled system package inspired by [styled-components](https://styled-components.com/) will be released, allowing the use of these tokens as JavaScript props at a later time. - -## Icons - -### Installation - - - -### Usage - -You can now use [icons](/icons/react-icons/icon-library) and [rich icons](/icons/react-icons/rich-icon-library) in your project by using the following syntax: - -```tsx -import { AddIcon, ConversationRichIcon } from "@hopper-ui/icons"; - - - -``` - -#### Standalone Installation - -It is recommended to use `@hopper-ui/icons` with `@hopper-ui/components`. The standalone installation procedure is detailed in case you only need the icons, and not the components. This is also the installation process until the components are released. - - - -Import the styles in your project: - -```css -@import "@hopper-ui/icons/index.css"; -@import "@hopper-ui/styled-system/index.css"; -``` - -Configuring your application is a little different: - -```tsx -import { StyledSystemProvider } from "@hopper-ui/styled-system"; -import { createRoot } from "react-dom/client"; -import App from "./App"; - -const root = createRoot(document.getElementById("root")!); - -root.render( - - - -); -``` - -Using the icon is the exact same way as with the default package. - -```tsx -import { AddIcon } from "@hopper-ui/icons"; - - -``` - -#### React 16 Installation - -If you're using React 16, you need to use the `@hopper-ui/icons-react16` package. - - - -The usage is the same as the default package, you only need to import the icons from a different package. - -```tsx -import { AddIcon, ConversationRichIcon } from "@hopper-ui/icons-react16"; - - - -``` diff --git a/apps/docs/content/getting-started/installation-path/javascript.mdx b/apps/docs/content/getting-started/installation-path/javascript.mdx new file mode 100644 index 000000000..8612fd370 --- /dev/null +++ b/apps/docs/content/getting-started/installation-path/javascript.mdx @@ -0,0 +1,56 @@ +--- +title: Other Frameworks +description: An installation guide for Hopper UI for non-React users. +order: 2 +status: ready +--- + +Hopper UI is a Design System that provides a collection of tokens and icons to help you build beautiful, consistent applications. + +You don't need to use React to take advantage of Hopper UI's features. This guide will show you how to use Hopper tokens and icons in any framework or plain HTML/CSS project. + +Hopper tokens are predefined design decisions (such as colors, spacing, and typography) translated into CSS variables to style your application. For icons, you can use Hopper UI's SVG icons, available via the @hopper-ui/svg-icons package. + +## Installation + +### Install Packages + +Run the following command to install Hopper tokens and SVG icons. + + + +### Import Styles + +Add Hopper styles to your project by importing the following CSS files into your main stylesheet or global CSS file: + +```css +@import "@hopper-ui/tokens/fonts.css"; /* To import Hopper fonts*/ +@import "@hopper-ui/tokens/tokens.css"; /* To import the design tokens*/ +@import "@hopper-ui/tokens/dark/tokens.css"; /* optional - if your application supports dark mode */ +``` + +If your application supports dark mode, you can include the dark mode token styles for seamless theme switching. + +### Enjoy! + +You can now use Hopper tokens in your project by referencing the design tokens as CSS variables. For example: + +```css +.my-class { + background-color: var(--hop-primary-surface-weak); +} +``` + +You can import an SVG icon directly into your JavaScript or TypeScript file. If you plan to use SVG icons as components, ensure your bundler (e.g., Webpack, Vite, or Rollup) is configured to handle SVG imports correctly. + +```tsx +import alertIcon from "@hopper-ui/svg-icons/alert-24.svg"; +``` + +Alternatively, you can use SVG icons directly in your CSS, like this: + +```css +.myComponent { + background-image: url("@hopper-ui/svg-icons/alert-24.svg"); +} +``` diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx new file mode 100644 index 000000000..452f0dca0 --- /dev/null +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -0,0 +1,71 @@ +--- +title: React Applications +description: Getting started with Hopper UI in a react app. +order: 1 +--- + +Hopper UI is a Design System that provides a collection of [React components](../../components/component-list), [tokens](../../tokens/overview/introduction), and [icons](../../icons/overview/introduction) to help you build applications. + +**Requirements:** +- [React 18](https://reactjs.org/) or later + +## Installation + +### Install Packages + +Run the following command to install Hopper packages and their peer dependencies. + + + +### Setup provider + +Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for Hopper UI components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. + +```tsx +import { HopperProvider } from "@hopper-ui/components"; +import { createRoot } from 'react-dom/client'; + +const root = createRoot(document.getElementById('root')); +root.render( + + + +); +``` + +### Import Styles + +Add Hopper styles to your project by importing the following CSS file. Place this in your global CSS file or main stylesheet. + +```css +@import "@hopper-ui/components/index.css"; +``` + +### Enjoy! +Leverage Hopper UI's components and styled system to build user interfaces efficiently and with ease. + +```tsx +import { Button, Stack } from "@hopper-ui/components"; + +const Demo = () => { + return ( + + + + + ) +} +``` + +## Take it Further +Explore advanced features of Hopper UI to unlock its full potential: + +{/* TODO */} +- [Icons](#): Use a rich library of icons in your applications. +- [Client Side Routing](#): Ensure seamless navigation with Hopper UI components. +- [Color Schemes](#): Implement and customize dark mode for your application seamlessly. +- [Internationalization](#): Build applications for multiple languages and locales. +- [Layout](#): Create responsive, accessible layouts. +- [Responsive Styles](#): Design interfaces that adapt to different screen sizes. +- [Slots](#): Extend and compose components flexibly. +- [Styling](#): Style components with Hopper's styled system and override defaults effortlessly. diff --git a/apps/docs/content/getting-started/javascript.mdx b/apps/docs/content/getting-started/javascript.mdx deleted file mode 100644 index 493b80d75..000000000 --- a/apps/docs/content/getting-started/javascript.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Javascript -description: An installation guide for Hopper UI for non-React users. -order: 2 -status: ready ---- - -If you can't use the default React install, you can still benefit from Hopper UI. - -## Tokens - -Hopper [tokens](/tokens) are a collection of design decisions translated into data, which should be used to style your applications. - -### Installation - -Run the following command to install Hopper tokens. - - - -### Usage - -#### CSS - -Import the tokens in your project: - -```css -@import "@hopper-ui/tokens/tokens.css"; -``` - -Import dark mode tokens if your application supports it: - -```css -@import "@hopper-ui/tokens/dark/tokens.css"; -``` - -You can now use Hopper tokens in your project by using the following syntax: - -```css -.my-class { - background-color: var(--hop-primary-surface-weak); -} -``` - -#### Fonts - -In order to use Hopper fonts in your project, import the following: - -```css -@import "@hopper-ui/tokens/fonts.css"; -``` - -All the necessary font-face declarations are now imported into your project. - -## SVG Icons - -If your project is not using the React framework, you can use [SVG icons](/icons/svg/icon-library) directly. You can find the SVG icons in the `@hopper-ui/svg-icons` package. - -### Installation - -Run the following command to install Hopper icons. - - - -### Usage - -You can import the SVG directly into your JavaScript file. Keep in mind that if you plan to use SVG icons as components, you'll need to ensure that your bundler is configured to handle SVG parsing appropriately. - -```tsx -import alertIcon from "@hopper-ui/svg-icons/alert-24.svg"; -``` - -You can also use SVG icons directly in your CSS like this:: - -```css -.myComponent { - background-image: url("@hopper-ui/svg-icons/alert-24.svg"); -} -``` diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx new file mode 100644 index 000000000..f02d253e1 --- /dev/null +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -0,0 +1,27 @@ +--- +title: Installation +description: How to install and set up Hopper UI in your project +order: 1 +status: ready +--- + +Hopper UI is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. +We've put together a guide to help you quickly get started with integrating Hopper UI into your project. + +## Choose Your Installation Path + +Hopper UI supports flexible installation options tailored to different project types. + +Select the path that best suits your setup: + +{/* TODO : Faire des cards avec ça (example: https://mantine.dev/getting-started/#framework-guide, https://www.chakra-ui.com/docs/get-started/installation#framework-guide) */} +- [React Applications](../frameworks/react): The most common way to integrate Hopper UI. +- [Other Frameworks](../frameworks/javascript) or Libraries: Use Hopper UI seamlessly with other JavaScript or TypeScript-based setups. + +## Advanced Installation Options + +Looking for a more tailored or specialized setup? Hopper UI offers advanced options to meet unique project requirements. + +{/* TODO */} +- (Coming soon) [Micro Frontend Architecture](#): Integrate Hopper UI into modular, micro-frontend-based projects. +- (Coming soon) [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components diff --git a/apps/docs/content/getting-started/react.mdx b/apps/docs/content/getting-started/react.mdx deleted file mode 100644 index 1050e462d..000000000 --- a/apps/docs/content/getting-started/react.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: React -description: Getting started with Hopper UI. -order: 1 ---- - -Hopper UI is a Design System that provides a collection of [components](components/component-list), [tokens](/tokens/overview/introduction), and [icons](/icons/overview/introduction) to help you build applications. - -Below is the typical installation path, assuming you are using React 18. If you have particular needs, have a look at these alternatives: - -- [Javascript installation](/getting-started/javascript) -- [Individual package installation](/getting-started/individual-packages) - -## Installation - -### Packages - -Run the following command to install Hopper packages. - - - -### Configuration - -Setup a [Provider](/components/HopperProvider) at the root of your application. This is typically in your _index.tsx_ or _app.tsx_, but can vary based on your specific setup. - -```jsx -import { HopperProvider } from "@hopper-ui/components"; -import { createRoot } from 'react-dom/client'; - -const root = createRoot(document.getElementById('root')); -root.render( - - - -); -``` - -### Styling - -Add Hopper styles to your project by importing the following CSS files: - -```css -@import "@hopper-ui/components/index.css"; -``` - -Font-face declarations are now imported in your project. - -Failing to do so would prevent you from using [font family tokens](/tokens/semantic/typography) such as `var(--hop-font-family-primary)`. - -You are now ready to use Hopper UI in your project! Need more details? Have a look at the [Individual package installation](/getting-started/individual-packages) page. diff --git a/apps/docs/package.json b/apps/docs/package.json index 24c0e062c..7bec8b27c 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -21,10 +21,6 @@ "generate:previewRef": "tsx scripts/generatePreviewRef.ts", "copy:images": "tsx scripts/copyImages.ts" }, - "peerDependencies": { - "react-aria": "^3.35", - "react-aria-components": "^1.4" - }, "dependencies": { "@tanstack/react-table": "^8.20.5", "clsx": "2.1.1", From db5c0de7ae661fd5d67ad7c04c32ebdc006bbc65 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Mon, 25 Nov 2024 13:57:10 -0500 Subject: [PATCH 07/37] update content --- .../installation-path/javascript.mdx | 8 ++--- .../installation-path/react.mdx | 12 ++++---- .../getting-started/overview/installation.mdx | 23 ++++++++++----- .../icons/{svg => SVG-icons}/icon-library.mdx | 0 .../{svg => SVG-icons}/rich-icon-library.mdx | 0 .../content/icons/overview/introduction.mdx | 29 +++++++++++++++---- 6 files changed, 49 insertions(+), 23 deletions(-) rename apps/docs/content/icons/{svg => SVG-icons}/icon-library.mdx (100%) rename apps/docs/content/icons/{svg => SVG-icons}/rich-icon-library.mdx (100%) diff --git a/apps/docs/content/getting-started/installation-path/javascript.mdx b/apps/docs/content/getting-started/installation-path/javascript.mdx index 8612fd370..64a3917fd 100644 --- a/apps/docs/content/getting-started/installation-path/javascript.mdx +++ b/apps/docs/content/getting-started/installation-path/javascript.mdx @@ -1,15 +1,15 @@ --- title: Other Frameworks -description: An installation guide for Hopper UI for non-React users. +description: An installation guide for Hopper for non-React users. order: 2 status: ready --- -Hopper UI is a Design System that provides a collection of tokens and icons to help you build beautiful, consistent applications. +Hopper is a Design System that provides a collection of tokens and icons to help you build beautiful, consistent applications. -You don't need to use React to take advantage of Hopper UI's features. This guide will show you how to use Hopper tokens and icons in any framework or plain HTML/CSS project. +You don't need to use React to take advantage of Hopper's features. This guide will show you how to use Hopper tokens and icons in any framework or plain HTML/CSS project. -Hopper tokens are predefined design decisions (such as colors, spacing, and typography) translated into CSS variables to style your application. For icons, you can use Hopper UI's SVG icons, available via the @hopper-ui/svg-icons package. +Hopper tokens are predefined design decisions (such as colors, spacing, and typography) translated into CSS variables to style your application. For icons, you can use Hopper's SVG icons, available via the @hopper-ui/svg-icons package. ## Installation diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index 452f0dca0..d25b5c198 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -1,10 +1,10 @@ --- title: React Applications -description: Getting started with Hopper UI in a react app. +description: Getting started with Hopper in a react app. order: 1 --- -Hopper UI is a Design System that provides a collection of [React components](../../components/component-list), [tokens](../../tokens/overview/introduction), and [icons](../../icons/overview/introduction) to help you build applications. +Hopper is a Design System that provides a collection of [React components](../../components/component-list), [tokens](../../tokens/overview/introduction), and [icons](../../icons/overview/introduction) to help you build applications. **Requirements:** - [React 18](https://reactjs.org/) or later @@ -19,7 +19,7 @@ Run the following command to install Hopper packages and their peer dependencies ### Setup provider -Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for Hopper UI components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. +Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for Hopper components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. ```tsx import { HopperProvider } from "@hopper-ui/components"; @@ -42,7 +42,7 @@ Add Hopper styles to your project by importing the following CSS file. Place thi ``` ### Enjoy! -Leverage Hopper UI's components and styled system to build user interfaces efficiently and with ease. +Leverage Hopper's components and styled system to build user interfaces efficiently and with ease. ```tsx import { Button, Stack } from "@hopper-ui/components"; @@ -58,11 +58,11 @@ const Demo = () => { ``` ## Take it Further -Explore advanced features of Hopper UI to unlock its full potential: +Explore advanced features of Hopper to unlock its full potential: {/* TODO */} - [Icons](#): Use a rich library of icons in your applications. -- [Client Side Routing](#): Ensure seamless navigation with Hopper UI components. +- [Client Side Routing](#): Ensure seamless navigation with Hopper components. - [Color Schemes](#): Implement and customize dark mode for your application seamlessly. - [Internationalization](#): Build applications for multiple languages and locales. - [Layout](#): Create responsive, accessible layouts. diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index f02d253e1..b82633942 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -1,27 +1,34 @@ --- title: Installation -description: How to install and set up Hopper UI in your project +description: How to install and set up Hopper in your project order: 1 status: ready --- -Hopper UI is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. -We've put together a guide to help you quickly get started with integrating Hopper UI into your project. +Hopper is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. +We've put together a guide to help you quickly get started with integrating Hopper into your project. ## Choose Your Installation Path -Hopper UI supports flexible installation options tailored to different project types. +Hopper supports flexible installation options tailored to different project types. Select the path that best suits your setup: {/* TODO : Faire des cards avec ça (example: https://mantine.dev/getting-started/#framework-guide, https://www.chakra-ui.com/docs/get-started/installation#framework-guide) */} -- [React Applications](../frameworks/react): The most common way to integrate Hopper UI. -- [Other Frameworks](../frameworks/javascript) or Libraries: Use Hopper UI seamlessly with other JavaScript or TypeScript-based setups. +- [React Applications](../frameworks/react): The most common way to integrate Hopper. +- [Other Frameworks](../frameworks/javascript) or Libraries: Use Hopper seamlessly with other JavaScript or TypeScript-based setups. ## Advanced Installation Options -Looking for a more tailored or specialized setup? Hopper UI offers advanced options to meet unique project requirements. +Looking for a more tailored or specialized setup? Hopper offers advanced options to meet unique project requirements. {/* TODO */} -- (Coming soon) [Micro Frontend Architecture](#): Integrate Hopper UI into modular, micro-frontend-based projects. +- (Coming soon) [Micro Frontend Architecture](#): Integrate Hopper into modular, micro-frontend-based projects. - (Coming soon) [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components + +## Start Designing with Hopper UI Icons +No matter the platform or design requirements, Hopper icons empower developers and designers to create polished, visually aligned interfaces. + +- Design Guidelines +- Create a Custom Icon +{/* Dive into the specific packages to see how you can start using them in your project! */} diff --git a/apps/docs/content/icons/svg/icon-library.mdx b/apps/docs/content/icons/SVG-icons/icon-library.mdx similarity index 100% rename from apps/docs/content/icons/svg/icon-library.mdx rename to apps/docs/content/icons/SVG-icons/icon-library.mdx diff --git a/apps/docs/content/icons/svg/rich-icon-library.mdx b/apps/docs/content/icons/SVG-icons/rich-icon-library.mdx similarity index 100% rename from apps/docs/content/icons/svg/rich-icon-library.mdx rename to apps/docs/content/icons/SVG-icons/rich-icon-library.mdx diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index 252bf55e5..487cbb351 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -4,11 +4,30 @@ description: Getting started with Workleap Design Icons order: 1 --- -Hopper provides a set of commonly used interface icons you can use in your project. +Icons are an essential part of building intuitive and engaging user interfaces. Hopper offers a versatile and comprehensive icon system tailored to meet diverse project needs, whether you're building with React or using static assets in other frameworks. -These icons are published into a separate package that is not part of `@hopper-ui/components` by default. +## Using Hopper Icons +Hopper provides two main packages, giving you the flexibility to choose how to integrate icons into your project: -Hopper provides multiple ways to use icons in your project: -- [as React components](/getting-started/individual-packages#icons) -- [as static SVG files](/getting-started/javascript#svg-icons) +### React Icons Package +Designed specifically for React applications, this package offers all icons as React components. +[Explore React Icon Components](/getting-started/individual-packages#icons) + +### SVG Icons Package +Ideal for non-React setups, this package provides raw SVG files. + +[Explore Static SVG Files](/getting-started/javascript#svg-icons) + + +## Choosing Between Icons and Rich Icons +Hopper icons come in two styles to meet different design needs: + +### Icons +- Monochromatic and simple. +- Best suited for functional UI elements like buttons, menus, or actions. + + +### Rich Icons +- Vibrant and colorful. +- Perfect for decorative purposes or drawing attention to specific elements. From 93e3341bef5ff4ead9e36eb4ef1d99e642c5acce Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Tue, 26 Nov 2024 13:25:03 -0500 Subject: [PATCH 08/37] fixing doc --- apps/docs/configs/navigation.ts | 2 +- .../docs/content/getting-started/overview/installation.mdx | 7 ------- apps/docs/content/icons/overview/design.mdx | 6 +----- apps/docs/content/icons/overview/introduction.mdx | 7 ++++++- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/apps/docs/configs/navigation.ts b/apps/docs/configs/navigation.ts index 7217d91a6..bfdc2dc53 100644 --- a/apps/docs/configs/navigation.ts +++ b/apps/docs/configs/navigation.ts @@ -17,7 +17,7 @@ export const navigation: NavItem[] = [ }, { "label": "Icons", - "path": "/icons", + "path": "/icons/overview/introduction", "status": "ready" }, { diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index b82633942..6056ff210 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -25,10 +25,3 @@ Looking for a more tailored or specialized setup? Hopper offers advanced options {/* TODO */} - (Coming soon) [Micro Frontend Architecture](#): Integrate Hopper into modular, micro-frontend-based projects. - (Coming soon) [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components - -## Start Designing with Hopper UI Icons -No matter the platform or design requirements, Hopper icons empower developers and designers to create polished, visually aligned interfaces. - -- Design Guidelines -- Create a Custom Icon -{/* Dive into the specific packages to see how you can start using them in your project! */} diff --git a/apps/docs/content/icons/overview/design.mdx b/apps/docs/content/icons/overview/design.mdx index 5e9ae59d6..f797bcece 100644 --- a/apps/docs/content/icons/overview/design.mdx +++ b/apps/docs/content/icons/overview/design.mdx @@ -17,13 +17,9 @@ Before proposing a new icon, look through the current icon set to see if an exis All designers are encouraged to design their own icons and should do so. -## Designing icons - -{/* TODO: this section is empty, not sure why */} - ## Design Guide -The Workleap icon library has a set and specific design language. It’s important to follow this design language when contributing a new icon to ensure a common understanding across all verticals and make any new addition feel at home within Workleap. +The Workleap icon library has a set and specific design language. It's important to follow this design language when contributing a new icon to ensure a common understanding across all verticals and make any new addition feel at home within Workleap. ## Anatomy diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index 487cbb351..6aed6a9a5 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -20,7 +20,7 @@ Ideal for non-React setups, this package provides raw SVG files. [Explore Static SVG Files](/getting-started/javascript#svg-icons) -## Choosing Between Icons and Rich Icons +## Choosing the Right Icons Hopper icons come in two styles to meet different design needs: ### Icons @@ -31,3 +31,8 @@ Hopper icons come in two styles to meet different design needs: ### Rich Icons - Vibrant and colorful. - Perfect for decorative purposes or drawing attention to specific elements. + +## Start Designing Icons +No matter the platform or design requirements, Hopper icons empower developers and designers to create polished, visually aligned interfaces. + +- [Design Guidelines]() From c7dbfacaddd05531bfd0c25acae06018485c5c26 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Tue, 26 Nov 2024 15:18:51 -0500 Subject: [PATCH 09/37] update icon documentation --- .../content/icons/SVG-icons/icon-library.mdx | 6 +-- .../icons/SVG-icons/rich-icon-library.mdx | 7 +--- apps/docs/content/icons/overview/design.mdx | 38 ------------------- .../icons/overview/designing-an-icon.mdx | 37 ++++++++++++++++++ .../content/icons/overview/introduction.mdx | 3 +- .../icons/react-icons/icon-library.mdx | 5 +-- .../icons/react-icons/rich-icon-library.mdx | 6 +-- 7 files changed, 46 insertions(+), 56 deletions(-) delete mode 100644 apps/docs/content/icons/overview/design.mdx create mode 100644 apps/docs/content/icons/overview/designing-an-icon.mdx diff --git a/apps/docs/content/icons/SVG-icons/icon-library.mdx b/apps/docs/content/icons/SVG-icons/icon-library.mdx index d67f2a8ab..bb5bbf3ff 100644 --- a/apps/docs/content/icons/SVG-icons/icon-library.mdx +++ b/apps/docs/content/icons/SVG-icons/icon-library.mdx @@ -9,10 +9,8 @@ export const usageMethods = [ { title: "SVG" } ]; -All available icons in the icon library are shown below. +All icons in the Workleap icon library are available in three predefined sizes. To ensure consistency and clarity, always use the icons at one of these sizes. Avoid resizing icons to dimensions other than the provided options. -Use the correct size for each icon. Icons should be used at their original size. - -Click or tap on any icon to copy its filename. +To integrate an icon into your project, simply click or tap on it to copy its filename instantly. diff --git a/apps/docs/content/icons/SVG-icons/rich-icon-library.mdx b/apps/docs/content/icons/SVG-icons/rich-icon-library.mdx index 1fa1fa864..feb82b1fb 100644 --- a/apps/docs/content/icons/SVG-icons/rich-icon-library.mdx +++ b/apps/docs/content/icons/SVG-icons/rich-icon-library.mdx @@ -9,12 +9,9 @@ export const usageMethods = [ { title: "SVG" } ]; -All available rich icons in the icon library are shown below. - -Use the correct size for each icon. Icons should be used at their original size. +All rich icons in the Workleap icon library are available in three predefined sizes. To ensure consistency and clarity, always use the icons at one of these sizes. Avoid resizing icons to dimensions other than the provided options. The color of the rich icons can be changed by using the right CSS Variables. - The following variables are available for your styling needs: `--hop-RichIcon-placeholder-fill`, `--hop-RichIcon-placeholder-background` and `--hop-RichIcon-placeholder-shadow`. You should use the appropriate [decorative semantic tokens](/tokens/semantic/color#decorative) or status semantic tokens. The available options for Rich Icons are `option1` to `option8`, `success`, `warning`, `danger`, `information` and `upsell`. ```css @@ -23,6 +20,6 @@ The following variables are available for your styling needs: `--hop-RichIcon-pl } ``` -Click or tap on any icon to copy its filename. +To integrate an icon into your project, simply click or tap on it to copy its filename instantly. diff --git a/apps/docs/content/icons/overview/design.mdx b/apps/docs/content/icons/overview/design.mdx deleted file mode 100644 index f797bcece..000000000 --- a/apps/docs/content/icons/overview/design.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Design -description: Getting started with Workleap Design Icons ---- - -import { iconData } from './data'; - -In order to assure consistency across the Workleap platform, icon creators should follow the guidelines below. - -## Contribution Guidelines - -New icons are often needed as we create new experiences within Workleap. The following guide will help you contribute to the Workleap icon library. - -### Process - -Before proposing a new icon, look through the current icon set to see if an existing icon could fit your needs or if the concept you have in mind already exists. - -All designers are encouraged to design their own icons and should do so. - -## Design Guide - -The Workleap icon library has a set and specific design language. It's important to follow this design language when contributing a new icon to ensure a common understanding across all verticals and make any new addition feel at home within Workleap. - -## Anatomy - -### Definitions - -- **Frame Size** - The frame size is the size of the artboard that the icon is designed in. -- **Stroke Alignment** - The stroke alignment is the position of the stroke in relation to the shape. The stroke can be aligned to the inside, center, or outside of the shape. You should use center except if the shape is closed. In that case use inside. -- **Corner Radius** - Refer to the radius in the table unless using a different radius makes the icon more legible. -- **Terminal** - The terminal is the end of a stroke. The terminal can be round, square, or flat. -- **Inner spacing** - The inner spacing is the space between the shape and the stroke. -- **Fill** - The fill is the color of the shape. Icons using a fill are also known as solid icons. Any shapes on a filled icon should follow the stroke guidelines. -- **Keylines** - Keylines are the lines that define the shape of the icon. They are used to define the shape of the icon and the stroke alignment. You can toggle them in Figma by pressing `⌘G`(Mac) or `Ctrl+G`(PC). - -### Values - - diff --git a/apps/docs/content/icons/overview/designing-an-icon.mdx b/apps/docs/content/icons/overview/designing-an-icon.mdx new file mode 100644 index 000000000..5aa492c59 --- /dev/null +++ b/apps/docs/content/icons/overview/designing-an-icon.mdx @@ -0,0 +1,37 @@ +--- +title: Designing an Icon +description: Learn how to create consistent and high-quality icons for the Workleap platform by following these guidelines. +--- + +import { iconData } from './data'; + +To maintain visual consistency across the Workleap platform, icon creators should follow these guidelines when contributing to the Workleap icon library. +**All designers are encouraged to create their own icons.** Use the design language and specifications outlined in this guide to ensure alignment across all Workleap products. + +## Before You Begin + +**1. Review Existing Icons:** +Before proposing a new icon, explore the current icon set to determine if an existing design fits your needs. Avoid duplicating concepts and ensure your proposal adds unique value. + +**2. Understand the Design Language:** +The Workleap icon library follows a specific and consistent design language. Adhering to this language is crucial for maintaining a shared understanding across all verticals and ensuring new additions feel cohesive within Workleap's visual system. + +## Anatomy of an Icon + +Icons in the Workleap library have several defined characteristics. Understanding these attributes is essential for creating high-quality contributions. + +### Definitions + +- Frame Size - The dimensions of the artboard in which the icon is designed. +- Stroke Alignment - The stroke's position relative to the shape. Use **center** alignment unless the shape is closed; in that case, use **inside**. +- Corner Radius - Follow the standard radius values from the design specification table. Deviations are allowed only to improve legibility. +- Terminal - The end style of a stroke, which can be round, square, or flat. +- Inner spacing - The space between a shape and its stroke. +- Fill - The shape's color. Icons using a fill are also known as solid icons. Any shapes on a filled icon should follow the stroke guidelines. +- Keylines - Lines that define an icon's shape and stroke alignment. In Figma, toggle them using `⌘G`(Mac) or `Ctrl+G`(PC). + +### Values + +Use the following specifications when designing your icon: + + diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index 6aed6a9a5..666ffaff4 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -19,7 +19,6 @@ Ideal for non-React setups, this package provides raw SVG files. [Explore Static SVG Files](/getting-started/javascript#svg-icons) - ## Choosing the Right Icons Hopper icons come in two styles to meet different design needs: @@ -35,4 +34,4 @@ Hopper icons come in two styles to meet different design needs: ## Start Designing Icons No matter the platform or design requirements, Hopper icons empower developers and designers to create polished, visually aligned interfaces. -- [Design Guidelines]() +- [Designing an Icon](./designing-an-icon) diff --git a/apps/docs/content/icons/react-icons/icon-library.mdx b/apps/docs/content/icons/react-icons/icon-library.mdx index 0987e8b9b..8f6f92ef4 100644 --- a/apps/docs/content/icons/react-icons/icon-library.mdx +++ b/apps/docs/content/icons/react-icons/icon-library.mdx @@ -9,10 +9,9 @@ export const usageMethods = [ { title: "SVG" } ]; -All available icons in the icon library are shown below. +All icons in the Workleap icon library are available in three predefined sizes. To ensure consistency and clarity, always use the icons at one of these sizes. Avoid resizing icons to dimensions other than the provided options. -Use the correct size for each icon. Icons should be used at their original size. +To integrate an icon into your project, simply click or tap on it to copy its name instantly. -Click or tap on any icon to copy its name. diff --git a/apps/docs/content/icons/react-icons/rich-icon-library.mdx b/apps/docs/content/icons/react-icons/rich-icon-library.mdx index eee9aa2af..90ef85297 100644 --- a/apps/docs/content/icons/react-icons/rich-icon-library.mdx +++ b/apps/docs/content/icons/react-icons/rich-icon-library.mdx @@ -9,9 +9,7 @@ export const usageMethods = [ { title: "SVG" } ]; -All available rich icons in the icon library are shown below. - -Use the correct size for each icon. Icons should be used at their original size. +All rich icons in the Workleap icon library are available in three predefined sizes. To ensure consistency and clarity, always use the icons at one of these sizes. Avoid resizing icons to dimensions other than the provided options. The color of the rich icons can be changed by using the `variant` prop. The following [decorative colors](/tokens/semantic/color#decorative) are available as variants: `option1` to `option8`. The following status colors are available as well: `success`, `warning`, `danger`, `information` and `upsell`. @@ -20,6 +18,6 @@ The following status colors are available as well: `success`, `warning`, `danger ``` -Click or tap on any icon to copy its name. +To integrate an icon into your project, simply click or tap on it to copy its name instantly. From ed4e36028b8aea818410779843a695bc2f73f471 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Tue, 26 Nov 2024 18:41:23 -0500 Subject: [PATCH 10/37] added a cardLink components - links are now purple --- apps/docs/app/layout.css | 1 + apps/docs/components/cardLink/cardLink.css | 65 +++++++++++++++++++ apps/docs/components/cardLink/cardLink.tsx | 32 +++++++++ .../docs/components/cardLink/cardLinkList.css | 5 ++ .../docs/components/cardLink/cardLinkList.tsx | 19 ++++++ apps/docs/components/mdx/components.tsx | 6 ++ .../getting-started/overview/installation.mdx | 15 +++-- 7 files changed, 138 insertions(+), 5 deletions(-) create mode 100644 apps/docs/components/cardLink/cardLink.css create mode 100644 apps/docs/components/cardLink/cardLink.tsx create mode 100644 apps/docs/components/cardLink/cardLinkList.css create mode 100644 apps/docs/components/cardLink/cardLinkList.tsx diff --git a/apps/docs/app/layout.css b/apps/docs/app/layout.css index 3a8080908..3fa000694 100644 --- a/apps/docs/app/layout.css +++ b/apps/docs/app/layout.css @@ -88,6 +88,7 @@ main { .hd-content p a, .hd-content li a { text-decoration: underline; + color: var(--hd-color-accent-text) } /* reset the underline for the card */ diff --git a/apps/docs/components/cardLink/cardLink.css b/apps/docs/components/cardLink/cardLink.css new file mode 100644 index 000000000..4ab9ba459 --- /dev/null +++ b/apps/docs/components/cardLink/cardLink.css @@ -0,0 +1,65 @@ +.hd-cardlink { + --card-color: #564EA7; + --card-color-translucent: #3a3290aa; + + backdrop-filter: blur(2rem); + background-color: var(--card-color); + border-radius: 1rem; + color: var(--hd-white); + display: flex; + flex-direction: column; + flex: 1 1 auto; + height: 21rem; + overflow: hidden; + position: relative; + padding: 0 0 2rem; +} + +.hd-cardlink:hover .hd-cardlink__logo, +.hd-cardlink:focus .hd-cardlink__logo { + opacity: 0.2; +} + +.hd-cardlink--secondary { + --card-color: #506E9F; + --card-color-translucent: #375c96f7; +} + +.hd-cardlink__logo { + max-width: 6rem; + opacity: 0.1; + position: relative; + scale: 2.5; + transform-origin: 0 0; + transition: all .2s ease-in; + z-index: -1; +} + +.hd-cardlink::before { + aspect-ratio: 1/1; + background-image: linear-gradient(-45deg, var(--card-color) 50%, var(--card-color-translucent) 0); + content: ""; + filter: blur(3rem); + height: 25rem; + left: 0; + position: absolute; + top: 0; + transform: rotate(-144deg); + width: 26rem; + z-index: -1; +} + +.hd-cardlink h3 { + font-size: 1.5rem; +} + +.hd-cardlink p { + font-size: 1.125rem; + line-height: 1.5; + margin-top: .75rem; +} + +.hd-cardlink__copy { + margin-top: auto; + padding: 0 2rem; +} diff --git a/apps/docs/components/cardLink/cardLink.tsx b/apps/docs/components/cardLink/cardLink.tsx new file mode 100644 index 000000000..808456421 --- /dev/null +++ b/apps/docs/components/cardLink/cardLink.tsx @@ -0,0 +1,32 @@ +import clsx from "clsx"; +import type { ComponentProps } from "react"; + +import "./cardLink.css"; + +export interface CardLinkProps extends ComponentProps<"a">{ + href: string; + type: "primary" | "secondary"; + title: string; + description: string; + children: React.ReactNode; +} + +const CardLink = ({ children, className, title, type = "primary", description = "md", href, ...rest }: CardLinkProps) => { + const cardLinkClass = clsx("hd-cardlink", { + [`hd-cardlink--${type}`]: type + }, className); + + return ( + +
+ {children} +
+
+

{title}

+

{description}

+
+
+ ); +}; + +export default CardLink; diff --git a/apps/docs/components/cardLink/cardLinkList.css b/apps/docs/components/cardLink/cardLinkList.css new file mode 100644 index 000000000..d05beabac --- /dev/null +++ b/apps/docs/components/cardLink/cardLinkList.css @@ -0,0 +1,5 @@ +.hd-cardlink-list { + display: grid; + gap: 2rem; + grid-template-columns: repeat(auto-fit, minmax(23.75rem, 1fr)); +} diff --git a/apps/docs/components/cardLink/cardLinkList.tsx b/apps/docs/components/cardLink/cardLinkList.tsx new file mode 100644 index 000000000..09360e085 --- /dev/null +++ b/apps/docs/components/cardLink/cardLinkList.tsx @@ -0,0 +1,19 @@ +import clsx from "clsx"; +import type { ComponentProps } from "react"; + +import "./cardLinkList.css"; + +export interface CardLinkListProps extends ComponentProps<"div">{} + +const CardLinkList = ({ children, className, ...rest }: CardLinkListProps) => { + const cardLinkListClass = clsx("hd-cardlink", { + }, className); + + return ( +
+ {children} +
+ ); +}; + +export default CardLinkList; diff --git a/apps/docs/components/mdx/components.tsx b/apps/docs/components/mdx/components.tsx index c8ff2b2d0..193378ec6 100644 --- a/apps/docs/components/mdx/components.tsx +++ b/apps/docs/components/mdx/components.tsx @@ -12,6 +12,8 @@ import TypographyVariantTable from "@/app/ui/tokens/table/TypographyVariantTable import TableSection from "@/app/ui/tokens/tableSection/TableSection.tsx"; import { Callout } from "@/components/callout/Callout.tsx"; import Card from "@/components/card/Card.tsx"; +import CardLink from "@/components/cardLink/cardLink.tsx"; +import CardLinkList from "@/components/cardLink/cardLinkList.tsx"; import InlineCode from "@/components/code/InlineCode.tsx"; import Footnote from "@/components/footnote/Footnote.tsx"; import NextImage from "@/components/image/Image.tsx"; @@ -21,6 +23,7 @@ import PackageInstallation, { } from "@/components/packageInstallation/PackageInstallation.tsx"; import Pre from "@/components/pre/Pre.tsx"; import Tabs from "@/components/tabs/Tabs.tsx"; +import Tag from "@/components/tag/Tag.tsx"; import Title from "@/components/title/Title.tsx"; import BreakpointTable from "@/app/ui/components/breakpointTable/BreakpointTable"; @@ -42,10 +45,13 @@ let h2Title = ""; export const components = { Card, + CardLink, + CardLinkList, code: InlineCode, Callout: Callout, Image: NextImage, pre: Pre, + Tag, MotionPreview: MotionPreview, BreakpointTable: BreakpointTable, Footnote: Footnote, diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index 6056ff210..5ce703715 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -14,14 +14,19 @@ Hopper supports flexible installation options tailored to different project type Select the path that best suits your setup: -{/* TODO : Faire des cards avec ça (example: https://mantine.dev/getting-started/#framework-guide, https://www.chakra-ui.com/docs/get-started/installation#framework-guide) */} -- [React Applications](../frameworks/react): The most common way to integrate Hopper. -- [Other Frameworks](../frameworks/javascript) or Libraries: Use Hopper seamlessly with other JavaScript or TypeScript-based setups. + ## Advanced Installation Options Looking for a more tailored or specialized setup? Hopper offers advanced options to meet unique project requirements. {/* TODO */} -- (Coming soon) [Micro Frontend Architecture](#): Integrate Hopper into modular, micro-frontend-based projects. -- (Coming soon) [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components +- [Micro Frontend Architecture](#): Integrate Hopper into modular, micro-frontend-based projects. Coming Soon +- [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components. Coming Soon From e927dde3b80e2bd168e6de23c17e140e13dc78f8 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Tue, 26 Nov 2024 21:20:06 -0500 Subject: [PATCH 11/37] updated RAC to 1.5 / fix for Collapsible component / small rework of cardLinkList --- apps/docs/.eslintrc.json | 3 + .../docs/components/cardLink/cardLinkList.tsx | 2 +- .../collapsible/Collapsible.stories.tsx | 12 +- .../components/collapsible/Collapsible.tsx | 6 +- .../getting-started/overview/installation.mdx | 8 +- apps/docs/package.json | 2 +- pnpm-lock.yaml | 2142 +++++++++++++++-- 7 files changed, 1955 insertions(+), 220 deletions(-) diff --git a/apps/docs/.eslintrc.json b/apps/docs/.eslintrc.json index cf34e94bc..038c4e82c 100644 --- a/apps/docs/.eslintrc.json +++ b/apps/docs/.eslintrc.json @@ -11,6 +11,8 @@ "globals": { "BreakpointTable": true, "Card": true, + "CardLink": true, + "CardLinkList": true, "Callout": true, "Collapsible": true, "TokenTable": true, @@ -18,6 +20,7 @@ "Footnote": true, "TypographyTable": true, "TypographyVariantTable": true, + "Tag": true, "Tabs": true, "TableSection": true, "SimpleTable": true, diff --git a/apps/docs/components/cardLink/cardLinkList.tsx b/apps/docs/components/cardLink/cardLinkList.tsx index 09360e085..1e383bc4f 100644 --- a/apps/docs/components/cardLink/cardLinkList.tsx +++ b/apps/docs/components/cardLink/cardLinkList.tsx @@ -6,7 +6,7 @@ import "./cardLinkList.css"; export interface CardLinkListProps extends ComponentProps<"div">{} const CardLinkList = ({ children, className, ...rest }: CardLinkListProps) => { - const cardLinkListClass = clsx("hd-cardlink", { + const cardLinkListClass = clsx("hd-cardlink-list", { }, className); return ( diff --git a/apps/docs/components/collapsible/Collapsible.stories.tsx b/apps/docs/components/collapsible/Collapsible.stories.tsx index 1cbea1be5..1fc2d567d 100644 --- a/apps/docs/components/collapsible/Collapsible.stories.tsx +++ b/apps/docs/components/collapsible/Collapsible.stories.tsx @@ -1,12 +1,11 @@ import type { Meta, StoryObj } from "@storybook/react"; -import Collasible from "./Collapsible.tsx"; - +import Collapsible from "./Collapsible.tsx"; const meta = { - title: "components/Collasible", - component: Collasible -} satisfies Meta; + title: "components/Collapsible", + component: Collapsible +} satisfies Meta; export default meta; type Story = StoryObj; @@ -21,6 +20,7 @@ export const Default: Story = { export const Open: Story = { args: { - ...Default.args + ...Default.args, + defaultExpanded: true } }; diff --git a/apps/docs/components/collapsible/Collapsible.tsx b/apps/docs/components/collapsible/Collapsible.tsx index fb477dd00..9a26a1c7a 100644 --- a/apps/docs/components/collapsible/Collapsible.tsx +++ b/apps/docs/components/collapsible/Collapsible.tsx @@ -3,7 +3,7 @@ import { CollapseIcon, Icon } from "@/components/icon"; import clsx from "clsx"; import type { ReactNode } from "react"; -import { Button, composeRenderProps, UNSTABLE_Disclosure as Disclosure, UNSTABLE_DisclosurePanel as DisclosurePanel, type DisclosureProps } from "react-aria-components"; +import { Button, Disclosure, DisclosurePanel, Heading, composeRenderProps, type DisclosureProps } from "react-aria-components"; import "./collapsible.css"; @@ -20,12 +20,12 @@ const Collapsible = ({ title, className, children: childrenProp, ...rest }: Coll {disclosureRenderProps => ( <> -

+ -

+
{children(disclosureRenderProps)}
diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index 5ce703715..3aafc1c4f 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -14,14 +14,14 @@ Hopper supports flexible installation options tailored to different project type Select the path that best suits your setup: - + ## Advanced Installation Options diff --git a/apps/docs/package.json b/apps/docs/package.json index 7bec8b27c..d6c63bc8a 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -30,7 +30,7 @@ "next-mdx-remote": "^5.0.0", "react": "18.3.1", "react-aria": "3.35.1", - "react-aria-components": "1.4.1", + "react-aria-components": "1.5.0", "react-dom": "18.3.1", "react-toggle": "4.1.3", "rehype-parse": "^9.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ab497277..bc1cb838f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -174,8 +174,8 @@ importers: specifier: 3.35.1 version: 3.35.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-aria-components: - specifier: 1.4.1 - version: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 1.5.0 + version: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-dom: specifier: 18.3.1 version: 18.3.1(react@18.3.1) @@ -324,7 +324,7 @@ importers: version: 2.0.1 '@workleap/eslint-plugin': specifier: 3.2.2 - version: 3.2.2(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4) + version: 3.2.2(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4) '@workleap/swc-configs': specifier: 2.2.3 version: 2.2.3(@swc/core@1.7.26(@swc/helpers@0.5.13))(@swc/helpers@0.5.13)(@swc/jest@0.2.36(@swc/core@1.7.26(@swc/helpers@0.5.13)))(browserslist@4.23.3) @@ -333,7 +333,7 @@ importers: version: 3.0.2(typescript@5.5.4) '@workleap/webpack-configs': specifier: 1.5.1 - version: 1.5.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@swc/helpers@0.5.13)(browserslist@4.23.3)(postcss@8.4.47)(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + version: 1.5.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@swc/helpers@0.5.13)(browserslist@4.23.3)(postcss@8.4.47)(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0)(webpack-hot-middleware@2.26.1)(webpack@5.95.0) browserslist: specifier: 4.23.3 version: 4.23.3 @@ -2191,18 +2191,30 @@ packages: '@internationalized/date@3.5.6': resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} + '@internationalized/date@3.6.0': + resolution: {integrity: sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==} + '@internationalized/message@3.1.5': resolution: {integrity: sha512-hjEpLKFlYA3m5apldLqzHqw531qqfOEq0HlTWdfyZmcloWiUbWsYXD6YTiUmQmOtarthzhdjCAwMVrB8a4E7uA==} + '@internationalized/message@3.1.6': + resolution: {integrity: sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==} + '@internationalized/number@3.5.4': resolution: {integrity: sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==} + '@internationalized/number@3.6.0': + resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} + '@internationalized/string-compiler@3.2.5': resolution: {integrity: sha512-7JwUFoMUV+apzqctoC5hmTaVR89NUQ6TFITaof9/uRECRtx0+vETzTXI5kl+De5MyLrN/Lw7CIDBajggXlHWsA==} '@internationalized/string@3.2.4': resolution: {integrity: sha512-BcyadXPn89Ae190QGZGDUZPqxLj/xsP4U1Br1oSy8yfIjmpJ8cJtGYleaodqW/EmzFjwELtwDojLkf3FhV6SjA==} + '@internationalized/string@3.2.5': + resolution: {integrity: sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2673,52 +2685,109 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/breadcrumbs@3.5.19': + resolution: {integrity: sha512-mVngOPFYVVhec89rf/CiYQGTfaLRfHFtX+JQwY7sNYNqSA+gO8p4lNARe3Be6bJPgH+LUQuruIY9/ZDL6LT3HA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/button@3.10.1': resolution: {integrity: sha512-1vkRsjdvJrJleK73u7ClrW4Fw3mtr2hIs8M2yLZUpLoqHXnIYJwmeEMtzwyPFYKBc5jaHcGXw45any7Puy1aFA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/button@3.11.0': + resolution: {integrity: sha512-b37eIV6IW11KmNIAm65F3SEl2/mgj5BrHIysW6smZX3KoKWTGYsYfcQkmtNgY0GOSFfDxMCoolsZ6mxC00nSDA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/calendar@3.5.13': resolution: {integrity: sha512-BJV5IwIH4UPDa6/HRTOBcM1wC+/6p823VrbocV9mr+rt5cCnuh+cqcCQKqUSEbfaTMPrmabjBuEaQIvqjLRYUA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/calendar@3.6.0': + resolution: {integrity: sha512-tZ3nd5DP8uxckbj83Pt+4RqgcTWDlGi7njzc7QqFOG2ApfnYDUXbIpb/Q4KY6JNlJskG8q33wo0XfOwNy8J+eg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/checkbox@3.14.8': resolution: {integrity: sha512-0qPJ3fiQQm7tiMHmIhR9iokr/MhhI2h6OWX/pDeIy/Gj63WSVk+Cka3NUhgMRGkguHKDZPKaFjK1oZQsXhCThQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/checkbox@3.15.0': + resolution: {integrity: sha512-z/8xd4em7o0MroBXwkkwv7QRwiJaA1FwqMhRUb7iqtBGP2oSytBEDf0N7L09oci32a1P4ZPz2rMK5GlLh/PD6g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/collections@3.0.0-alpha.5': resolution: {integrity: sha512-8m8yZe1c5PYCylEN4lcG3ZL/1nyrON95nVsoknC8shY1uKP01oJd7w+f6hvVza0tJRQuVe4zW3gO4FVjv33a5g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/collections@3.0.0-alpha.6': + resolution: {integrity: sha512-A+7Eap/zvsghMb5/C3EAPn41axSzRhtX2glQRXSBj1mK31CTPCZ9BhrMIMC5DL7ZnfA7C+Ysilo9nI2YQh5PMg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/color@3.0.1': resolution: {integrity: sha512-7hTCdXCU2/qpZuIrJcVr+s87C2MqHfi9Y461gMza5DjdUzlcy480UZ/iknbw82C0a+oVo08D/bnQctEjja05pw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/color@3.0.2': + resolution: {integrity: sha512-dSM5qQRcR1gRGYCBw0IGRmc29gjfoht3cQleKb8MMNcgHYa2oi5VdCs2yKXmYFwwVC6uPtnlNy9S6e0spqdr+w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/combobox@3.10.5': resolution: {integrity: sha512-1cjBJXWYuR0de+9IEU1MOer3H5FSlbrdaqlWo+M6vvMymBL2OjjwXiG3LY1mR65ZwHoTswXzt6/mujUKaxk5vw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/combobox@3.11.0': + resolution: {integrity: sha512-s88YMmPkMO1WSoiH1KIyZDLJqUwvM2wHXXakj3cYw1tBHGo4rOUFq+JWQIbM5EDO4HOR4AUUqzIUd0NO7t3zyg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/datepicker@3.11.4': resolution: {integrity: sha512-TXe1TB/pSwrIQ5BIDr6NCAYjBaKgLN6cP5DlAihywHzqxbM6vO8GU6qbrZNSBrtfzZnrR/4z66Vlw6rhznLnqQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/datepicker@3.12.0': + resolution: {integrity: sha512-VYNXioLfddIHpwQx211+rTYuunDmI7VHWBRetCpH3loIsVFuhFSRchTQpclAzxolO3g0vO7pMVj9VYt7Swp6kg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/dialog@3.5.19': resolution: {integrity: sha512-I3AJWpAWCajj8Ama8qLQ18Tc37ODyk+Ym3haYEl5L4QnuFc0dU1sMJr15fppDGIxYjwvTTfctyhaSCz+S+wpkw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/dialog@3.5.20': + resolution: {integrity: sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/disclosure@3.0.0': + resolution: {integrity: sha512-xO9QTQSvymujTjCs1iCQ4+dKZvtF/rVVaFZBKlUtqIqwTHMdqeZu4fh5miLEnTyVLNHMGzLrFggsd8Q+niC9Og==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/disclosure@3.0.0-alpha.1': resolution: {integrity: sha512-AsYRk4NOfo5f3QGIoQwGtOCvEk/a1yztobaDIgMCfycfyQbzJROUPbSusUURK7f1KZ0s3/HPlWT9p6ulR4mDcA==} peerDependencies: @@ -2731,22 +2800,50 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/dnd@3.8.0': + resolution: {integrity: sha512-JiqHY3E9fDU5Kb4gN22cuK6QNlpMCGe6ngR/BV+Q8mLEsdoWcoUAYOtYXVNNTRvCdVbEWI87FUU+ThyPpoDhNQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/focus@3.18.4': resolution: {integrity: sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/focus@3.19.0': + resolution: {integrity: sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/form@3.0.10': resolution: {integrity: sha512-hWBrqEXxBxcpYTJv0telQKaiu2728EUFHta8/RGBqJ4+MhKKxI7+PnLoms78IuiK0MCYvukHfun1fuQvK+8jsg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/form@3.0.11': + resolution: {integrity: sha512-oXzjTiwVuuWjZ8muU0hp3BrDH5qjVctLOF50mjPvqUbvXQTHhoDxWweyIXPQjGshaqBd2w4pWaE4A2rG2O/apw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/grid@3.10.5': resolution: {integrity: sha512-9sLa+rpLgRZk7VX+tvdSudn1tdVgolVzhDLGWd95yS4UtPVMihTMGBrRoByY57Wxvh1V+7Ptw8kc6tsRSotYKg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/grid@3.11.0': + resolution: {integrity: sha512-lN5FpQgu2Rq0CzTPWmzRpq6QHcMmzsXYeClsgO3108uVp1/genBNAObYVTxGOKe/jb9q99trz8EtIn05O6KN1g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/gridlist@3.10.0': + resolution: {integrity: sha512-UcblfSZ7kJBrjg9mQ5VbnRevN81UiYB4NuL5PwIpBpridO7tnl4ew6+96PYU7Wj1chHhPS3x0b0zmuSVN7A0LA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/gridlist@3.9.5': resolution: {integrity: sha512-LM+3D0amZZ1qiyqWVG52j0YRWt2chdpx+WG80ryDKwHLDIq7uz1+KXyIfv8cFt/cZcl6+9Ft3kWALCAi6O4NLA==} peerDependencies: @@ -2758,58 +2855,120 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/i18n@3.12.4': + resolution: {integrity: sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/interactions@3.22.4': resolution: {integrity: sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/interactions@3.22.5': + resolution: {integrity: sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/label@3.7.12': resolution: {integrity: sha512-u9xT90lAlgb7xiv+p0md9QwCHz65XL7tjS5e29e88Rs3ptkv3aQubTqxVOUTEwzbNUT4A1QqTjUm1yfHewIRUw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/label@3.7.13': + resolution: {integrity: sha512-brSAXZVTey5RG/Ex6mTrV/9IhGSQFU4Al34qmjEDho+Z2qT4oPwf8k7TRXWWqzOU0ugYxekYbsLd2zlN3XvWcg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/link@3.7.6': resolution: {integrity: sha512-8buJznRWoOud8ApygUAz7TsshXNs6HDGB6YOYEJxy0WTKILn0U5NUymw2PWC14+bWRPelHMKmi6vbFBrJWzSzQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/link@3.7.7': + resolution: {integrity: sha512-eVBRcHKhNSsATYWv5wRnZXRqPVcKAWWakyvfrYePIKpC3s4BaHZyTGYdefk8ZwZdEOuQZBqLMnjW80q1uhtkuA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/listbox@3.13.5': resolution: {integrity: sha512-tn32L/PIELIPYfDWCJ3OBRvvb/jCEvIzs6IYs8xCISV5W4853Je/WnA8wumWnz07U9sODYFmHUx2ThO7Z7dH7Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/listbox@3.13.6': + resolution: {integrity: sha512-6hEXEXIZVau9lgBZ4VVjFR3JnGU+fJaPmV3HP0UZ2ucUptfG0MZo24cn+ZQJsWiuaCfNFv5b8qribiv+BcO+Kg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/live-announcer@3.4.0': resolution: {integrity: sha512-VBxEdMq2SbtRbNTQNcDR2G6E3lEl5cJSBiHTTO8Ln1AL76LiazrylIXGgoktqzCfRQmyq0v8CHk1cNKDU9mvJg==} + '@react-aria/live-announcer@3.4.1': + resolution: {integrity: sha512-4X2mcxgqLvvkqxv2l1n00jTzUxxe0kkLiapBGH1LHX/CxA1oQcHDqv8etJ2ZOwmS/MSBBiWnv3DwYHDOF6ubig==} + '@react-aria/menu@3.15.5': resolution: {integrity: sha512-ygfS032hJSZCYYbMHnUSmUTVMaz99L9AUZ9kMa6g+k2X1t92K1gXfhYYkoClQD6+G0ch7zm0SwYFlUmRf9yOEA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/menu@3.16.0': + resolution: {integrity: sha512-TNk+Vd3TbpBPUxEloAdHRTaRxf9JBK7YmkHYiq0Yj5Lc22KS0E2eTyhpPM9xJvEWN2TlC5TEvNfdyui2kYWFFQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/meter@3.4.17': resolution: {integrity: sha512-08wbQhfvVWzpWilhn/WD7cQ7TqafS/66umTk7+X6BW6TrS1//6loNNJV62IC3F7sskel4iEAtl2gW0WpW8zEdg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/meter@3.4.18': + resolution: {integrity: sha512-tTX3LLlmDIHqrC42dkdf+upb1c4UbhlpZ52gqB64lZD4OD4HE+vMTwNSe+7MRKMLvcdKPWCRC35PnxIHZ15kfQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/numberfield@3.11.8': resolution: {integrity: sha512-CWRHbrjfpvEqBmtjwX8LjVds6+tMNneRlKF46ked5sZilfU2jIirufaucM36N4vX6N/W7nFR/rCbp2WCOU9p3Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/numberfield@3.11.9': + resolution: {integrity: sha512-3tiGPx2y4zyOV7PmdBASes99ZZsFTZAJTnU45Z+p1CW4131lw7y2ZhbojBl7U6DaXAJvi1z6zY6cq2UE9w5a0Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/overlays@3.23.4': resolution: {integrity: sha512-MZUW6SUlTWOwKuFTqUTxW5BnvdW3Y9cEwanWuz98NX3ST7JYe/3ZcZhb37/fGW4uoGHnQ9icEwVf0rbMrK2STg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/overlays@3.24.0': + resolution: {integrity: sha512-0kAXBsMNTc/a3M07tK9Cdt/ea8CxTAEJ223g8YgqImlmoBBYAL7dl5G01IOj67TM64uWPTmZrOklBchHWgEm3A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/progress@3.4.17': resolution: {integrity: sha512-5+01WNibLoNS5KcfU5p6vg7Lhz17plqqzv/uITx28zzj3saaj0VLR7n57Ig2fXe8ZEQoUS89BS3sIEsIf96S1A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/progress@3.4.18': + resolution: {integrity: sha512-FOLgJ9t9i1u3oAAimybJG6r7/soNPBnJfWo4Yr6MmaUv90qVGa1h6kiuM5m9H/bm5JobAebhdfHit9lFlgsCmg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/radio@3.10.10': + resolution: {integrity: sha512-NVdeOVrsrHgSfwL2jWCCXFsWZb+RMRZErj5vthHQW4nkHECGOzeX56VaLWTSvdoCPqi9wdIX8A6K9peeAIgxzA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/radio@3.10.9': resolution: {integrity: sha512-XnU7zGTEku1mPvJweX4I3ifwEBtglEWYoO4CZGvA3eXj39X8iGwNZXUst1pdk2ykWUKbtwrmsWA6zG2OAGODYw==} peerDependencies: @@ -2820,28 +2979,61 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/searchfield@3.7.11': + resolution: {integrity: sha512-wFf6QxtBFfoxy0ANxI0+ftFEBGynVCY0+ce4H4Y9LpUTQsIKMp3sdc7LoUFORWw5Yee6Eid5cFPQX0Ymnk+ZJg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/select@3.14.11': resolution: {integrity: sha512-rX5U4JcPNV41lNEF1tAxNxqrGENnLGZL/D5Y+YNpqKSU5U09+hD3ovsflNkF/d+deb25zg45JRxumwOCQ+rfyw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/select@3.15.0': + resolution: {integrity: sha512-zgBOUNy81aJplfc3NKDJMv8HkXjBGzaFF3XDzNfW8vJ7nD9rcTRUN5SQ1XCEnKMv12B/Euk9zt6kd+tX0wk1vQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/selection@3.20.1': resolution: {integrity: sha512-My0w8UC/7PAkz/1yZUjr2VRuzDZz1RrbgTqP36j5hsJx8RczDTjI4TmKtQNKG0ggaP4w83G2Og5JPTq3w3LMAw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/selection@3.21.0': + resolution: {integrity: sha512-52JJ6hlPcM+gt0VV3DBmz6Kj1YAJr13TfutrKfGWcK36LvNCBm1j0N+TDqbdnlp8Nue6w0+5FIwZq44XPYiBGg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/separator@3.4.3': resolution: {integrity: sha512-L+eCmSGfRJ9jScHZqBkmOkp44LBARisDjRdYbGrLlsAEcOiHUXufnfpxz2rgkUGBdUgnI9hIk12q5kdy0UxGjg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/separator@3.4.4': + resolution: {integrity: sha512-dH+qt0Mdh0nhKXCHW6AR4DF8DKLUBP26QYWaoThPdBwIpypH/JVKowpPtWms1P4b36U6XzHXHnTTEn/ZVoCqNA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/slider@3.7.13': resolution: {integrity: sha512-yGlIpoOUKUoP0M3iI8ZHU001NASBOeZJSIQNfoS7HiqSR3bz+6BX7DRAM6B+CPHJleUtrdQ6JjO/8V8ZUV2kNQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/slider@3.7.14': + resolution: {integrity: sha512-7rOiKjLkEZ0j7mPMlwrqivc+K4OSfL14slaQp06GHRiJkhiWXh2/drPe15hgNq55HmBQBpA0umKMkJcqVgmXPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/spinbutton@3.6.10': + resolution: {integrity: sha512-nhYEYk7xUNOZDaqiQ5w/nHH9ouqjJbabTWXH+KK7UR1oVGfo4z1wG94l8KWF3Z6SGGnBxzLJyTBguZ4g9aYTSg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/spinbutton@3.6.9': resolution: {integrity: sha512-m+uVJdiIc2LrLVDGjU7p8P2O2gUvTN26GR+NgH4rl+tUSuAB0+T1rjls/C+oXEqQjCpQihEB9Bt4M+VHpzmyjA==} peerDependencies: @@ -2854,6 +3046,17 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/ssr@3.9.7': + resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/switch@3.6.10': + resolution: {integrity: sha512-FtaI9WaEP1tAmra1sYlAkYXg9x75P5UtgY8pSbe9+1WRyWbuE1QZT+RNCTi3IU4fZ7iJQmXH6+VaMyzPlSUagw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/switch@3.6.9': resolution: {integrity: sha512-w7xIywpR6llm22DXYOObZ2Uqvsw+gNmxdJ86h8+YRtpSkFnPMhXtTMv3RXpEGYhPTt/YDIqfxiluF1E2IHGwIA==} peerDependencies: @@ -2865,23 +3068,51 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/table@3.16.0': + resolution: {integrity: sha512-9xF9S3CJ7XRiiK92hsIKxPedD0kgcQWwqTMtj3IBynpQ4vsnRiW3YNIzrn9C3apjknRZDTSta8O2QPYCUMmw2A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/tabs@3.9.7': resolution: {integrity: sha512-f78P2Y9ZCYtwOnteku9mPVIk21xSSREYWaQPtA9ebSgVbeR5ya6RpaX9ISc9cd0HEF3Av+hZYyS1pNXXWymv9g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/tabs@3.9.8': + resolution: {integrity: sha512-Nur/qRFBe+Zrt4xcCJV/ULXCS3Mlae+B89bp1Gl20vSDqk6uaPtGk+cS5k03eugOvas7AQapqNJsJgKd66TChw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/tag@3.4.7': resolution: {integrity: sha512-hreVvphUeYUfMN6gjM3+WouN2P/WGuR0rGpOrFk2HEnGDPg3Ar0isfdAaciTSBOc26CDKNgrmzRguxCmKKuqgw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/tag@3.4.8': + resolution: {integrity: sha512-exWl52bsFtJuzaqMYvSnLteUoPqb3Wf+uICru/yRtREJsWVqjJF38NCVlU73Yqd9qMPTctDrboSZFAWAWKDxoA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/textfield@3.14.10': resolution: {integrity: sha512-vG44FgxwfJUF2S6tRG+Sg646DDEgs0CO9RYniafEOHz8rwcNIH3lML7n8LAfzQa+BjBY28+UF0wmqEvd6VCzCQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/textfield@3.15.0': + resolution: {integrity: sha512-V5mg7y1OR6WXYHdhhm4FC7QyGc9TideVRDFij1SdOJrIo5IFB7lvwpOS0GmgwkVbtr71PTRMjZnNbrJUFU6VNA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/toggle@3.10.10': + resolution: {integrity: sha512-QwMT/vTNrbrILxWVHfd9zVQ3mV2NdBwyRu+DphVQiFAXcmc808LEaIX2n0lI6FCsUDC9ZejCyvzd91/YemdZ1Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/toggle@3.10.9': resolution: {integrity: sha512-dtfnyIU2/kcH9rFAiB48diSmaXDv45K7UCuTkMQLjbQa3QHC1oYNbleVN/VdGyAMBsIWtfl8L4uuPrAQmDV/bg==} peerDependencies: @@ -2892,6 +3123,16 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/toolbar@3.0.0-beta.11': + resolution: {integrity: sha512-LM3jTRFNDgoEpoL568WaiuqiVM7eynSQLJis1hV0vlVnhTd7M7kzt7zoOjzxVb5Uapz02uCp1Fsm4wQMz09qwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/tooltip@3.7.10': + resolution: {integrity: sha512-Udi3XOnrF/SYIz72jw9bgB74MG/yCOzF5pozHj2FH2HiJlchYv/b6rHByV/77IZemdlkmL/uugrv/7raPLSlnw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/tooltip@3.7.9': resolution: {integrity: sha512-TqVJ7YqaP/enxNyA1QGr43w4nBZmOs6Hb/pROMS5afbX7gHgMVFn0lTRc6DC2cvcfgYc4WICs2QiQMniZt/E7A==} peerDependencies: @@ -2903,22 +3144,38 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/tree@3.0.0-beta.2': + resolution: {integrity: sha512-lH3hVl2VgG3YLN+ee1zQzm+2F+BGLd/HBhfMYPuI3IjHvDb+m+jCJXHdBOGrfG2Qydk2LYheqX8QXCluulu0qQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/utils@3.25.3': resolution: {integrity: sha512-PR5H/2vaD8fSq0H/UB9inNbc8KDcVmW6fYAfSWkkn+OAdhTTMVKqXXrZuZBWyFfSD5Ze7VN6acr4hrOQm2bmrA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-aria/virtualizer@4.0.4': - resolution: {integrity: sha512-DszWqS29B9UoLS4mb5tAgLZKSVKR7IuDfjT+On9TSpcvm+HKS9wG6MVbqO0bh4zE+JGmp8Pnxfg92E7NUF0vgA==} + '@react-aria/utils@3.26.0': + resolution: {integrity: sha512-LkZouGSjjQ0rEqo4XJosS4L3YC/zzQkfRM3KoqK6fUOmUJ9t0jQ09WjiF+uOoG9u+p30AVg3TrZRUWmoTS+koQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/virtualizer@4.1.0': + resolution: {integrity: sha512-ziSq3Y7iuaAMJWGZU1RRs/TykuPapQfx8dyH2eyKPLgEjBUoXRGWE7n6jklBwal14b0lPK0wkCzRoQbkUvX3cg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/visually-hidden@3.8.17': resolution: {integrity: sha512-WFgny1q2CbxxU6gu46TGQXf1DjsnuSk+RBDP4M7bm1mUVZzoCp7U7AtjNmsBrWg0NejxUdgD7+7jkHHCQ91qRA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-aria/visually-hidden@3.8.18': + resolution: {integrity: sha512-l/0igp+uub/salP35SsNWq5mGmg3G5F5QMS1gDZ8p28n7CgjvzyiGhJbbca7Oxvaw1HRFzVl9ev+89I7moNnFQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-hook/intersection-observer@3.1.2': resolution: {integrity: sha512-mWU3BMkmmzyYMSuhO9wu3eJVP21N8TcgYm9bZnTrMwuM818bEk+0NRM3hP+c/TqA9Ln5C7qE53p1H0QMtzYdvQ==} peerDependencies: @@ -2934,6 +3191,16 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/calendar@3.6.0': + resolution: {integrity: sha512-GqUtOtGnwWjtNrJud8nY/ywI4VBP5byToNVRTnxbMl+gYO1Qe/uc5NG7zjwMxhb2kqSBHZFdkF0DXVqG2Ul+BA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/checkbox@3.6.10': + resolution: {integrity: sha512-LHm7i4YI8A/RdgWAuADrnSAYIaYYpQeZqsp1a03Og0pJHAlZL0ymN3y2IFwbZueY0rnfM+yF+kWNXjJqbKrFEQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/checkbox@3.6.9': resolution: {integrity: sha512-JrY3ecnK/SSJPxw+qhGhg3YV4e0CpUcPDrVwY3mSiAE932DPd19xr+qVCknJ34H7JYYt/q0l2z0lmgPnl96RTg==} peerDependencies: @@ -2944,26 +3211,56 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/collections@3.12.0': + resolution: {integrity: sha512-MfR9hwCxe5oXv4qrLUnjidwM50U35EFmInUeFf8i9mskYwWlRYS0O1/9PZ0oF1M0cKambaRHKEy98jczgb9ycA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/color@3.8.0': resolution: {integrity: sha512-lBH91HEStZeayhE/FkDMt9WC0UISQiAn8DoD2hfpTGeeWscX/soyxZA7oVL7zBOG9RfDBMNzF+CybVROrWSKAQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/color@3.8.1': + resolution: {integrity: sha512-7eN7K+KJRu+rxK351eGrzoq2cG+yipr90i5b1cUu4lioYmcH4WdsfjmM5Ku6gypbafH+kTDfflvO6hiY1NZH+A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/combobox@3.10.0': resolution: {integrity: sha512-4W4HCCjjoddW/LZM3pSSeLoV7ncYXlaICKmqlBcbtLR5jY4U5Kx+pPpy3oJ1vCdjDHatIxZ0tVKEBP7vBQVeGQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/combobox@3.10.1': + resolution: {integrity: sha512-Rso+H+ZEDGFAhpKWbnRxRR/r7YNmYVtt+Rn0eNDNIUp3bYaxIBCdCySyAtALs4I8RZXZQ9zoUznP7YeVwG3cLg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/data@3.11.7': resolution: {integrity: sha512-2YJ+Lmca18f/h7jiZiU9j2IhBJl6BFO1BWlwvcCAH/eCWTdveX8gzsUdW++0szzpJaoCilTCYoi8z7QWyVH9jQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/data@3.12.0': + resolution: {integrity: sha512-6PiW2oA56lcH1CVjDcajutzsv91w/PER8K61/OGxtNFFUWaIZH80RWmK4kjU/Lf0vygzXCxout3kEb388lUk0w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/datepicker@3.10.3': resolution: {integrity: sha512-6PJW1QMwk6BQMktV9L6DA4f2rfAdLfbq3iTNLy4qxd5IfNPLMUZiJGGTj+cuqx0WcEl+q5irp+YhKBpbmhPZHg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/datepicker@3.11.0': + resolution: {integrity: sha512-d9MJF34A0VrhL5y5S8mAISA8uwfNCQKmR2k4KoQJm3De1J8SQeNzSjLviAwh1faDow6FXGlA6tVbTrHyDcBgBg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/disclosure@3.0.0': + resolution: {integrity: sha512-Z9+fi0/41ZXHjGopORQza7mk4lFEFslKhy65ehEo6O6j2GuIV0659ExIVDsmJoJSFjXCfGh0sX8oTSOlXi9gqg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/disclosure@3.0.0-alpha.0': resolution: {integrity: sha512-CbFUrEwhsP5+44PMHipn/Cd61VTvqyKmx1yeNDyvj/4bYhmxYLgQp/Ma+iEqe23JkXJh2JO/ws3l9FnebScCJQ==} peerDependencies: @@ -2974,103 +3271,196 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/dnd@3.5.0': + resolution: {integrity: sha512-ZcWFw1npEDnATiy3TEdzA1skQ3UEIyfbNA6VhPNO8yiSVLxoxBOaEaq8VVS72fRGAtxud6dgOy8BnsP9JwDClQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/flags@3.0.4': resolution: {integrity: sha512-RNJEkOALwKg+JeYsfNlfPc4GXm7hiBLX0yuHOkRapWEyDOfi0cinkV/TZG4goOZdQ5tBpHmemf2qqiHAxqHlzQ==} + '@react-stately/flags@3.0.5': + resolution: {integrity: sha512-6wks4csxUwPCp23LgJSnkBRhrWpd9jGd64DjcCTNB2AHIFu7Ab1W59pJpUL6TW7uAxVxdNKjgn6D1hlBy8qWsA==} + '@react-stately/form@3.0.6': resolution: {integrity: sha512-KMsxm3/V0iCv/6ikt4JEjVM3LW2AgCzo7aNotMzRobtwIo0RwaUo7DQNY00rGgFQ3/IjzI6DcVo13D+AVE/zXg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/form@3.1.0': + resolution: {integrity: sha512-E2wxNQ0QaTyDHD0nJFtTSnEH9A3bpJurwxhS4vgcUmESHgjFEMLlC9irUSZKgvOgb42GAq+fHoWBsgKeTp9Big==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/grid@3.10.0': + resolution: {integrity: sha512-ii+DdsOBvCnHMgL0JvUfFwO1kiAPP19Bpdpl6zn/oOltk6F5TmnoyNrzyz+2///1hCiySI3FE1O7ujsAQs7a6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/grid@3.9.3': resolution: {integrity: sha512-P5KgCNYwm/n8bbLx6527li89RQWoESikrsg2MMyUpUd6IJ321t2pGONGRRQzxE0SBMolPRDJKV0Do2OlsjYKhQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-stately/layout@4.0.3': - resolution: {integrity: sha512-zFLXnPalWWVCdFGcPAb+nywSTz/xAnKRxb7zT+YDa5U80DHArDGKZcQ+by0+2Sf8yaYolROco4my+BERPXJB6A==} + '@react-stately/layout@4.1.0': + resolution: {integrity: sha512-pSBqn+4EeOaf2QMK+w2SHgsWKYHdgMZWY3qgJijdzWGZ4JpYmHuiD0yOq80qFdUwxcexPW3vFg3hqIQlMpXeCw==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-stately/list@3.11.0': resolution: {integrity: sha512-O+BxXcbtoLZWn4QIT54RoFUaM+QaJQm6s0ZBJ3Jv4ILIhukVOc55ra+aWMVlXFQSpbf6I3hyVP6cz1yyvd5Rtw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/list@3.11.1': + resolution: {integrity: sha512-UCOpIvqBOjwLtk7zVTYWuKU1m1Oe61Q5lNar/GwHaV1nAiSQ8/yYlhr40NkBEs9X3plEfsV28UIpzOrYnu1tPg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/menu@3.8.3': resolution: {integrity: sha512-sV63V+cMgzipx/N7dq5GaXoItfXIfFEpCtlk3PM2vKstlCJalszXrdo+x996bkeU96h0plB7znAlhlXOeTKzUg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/menu@3.9.0': + resolution: {integrity: sha512-++sm0fzZeUs9GvtRbj5RwrP+KL9KPANp9f4SvtI3s+MP+Y/X3X7LNNePeeccGeyikB5fzMsuyvd82bRRW9IhDQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/numberfield@3.9.7': resolution: {integrity: sha512-PjSgCCpYasGCEAznFQNqa2JhhEQ5+/2eMiV7ZI5j76q3edTNF8G5OOCl2RazDbzFp6vDAnRVT7Kctx5Tl5R/Zw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/numberfield@3.9.8': + resolution: {integrity: sha512-J6qGILxDNEtu7yvd3/y+FpbrxEaAeIODwlrFo6z1kvuDlLAm/KszXAc75yoDi0OtakFTCMP6/HR5VnHaQdMJ3w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/overlays@3.6.11': resolution: {integrity: sha512-usuxitwOx4FbmOW7Og4VM8R8ZjerbHZLLbFaxZW7pWLs7Ypway1YhJ3SWcyNTYK7NEk4o602kSoU6MSev1Vgag==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/overlays@3.6.12': + resolution: {integrity: sha512-QinvZhwZgj8obUyPIcyURSCjTZlqZYRRCS60TF8jH8ZpT0tEAuDb3wvhhSXuYA3Xo9EHLwvLjEf3tQKKdAQArw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/radio@3.10.8': resolution: {integrity: sha512-VRq6Gzsbk3jzX6hdrSoDoSra9vLRsOi2pLkvW/CMrJ0GSgMwr8jjvJKnNFvYJ3eYQb20EwkarsOAfk7vPSIt/Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/radio@3.10.9': + resolution: {integrity: sha512-kUQ7VdqFke8SDRCatw2jW3rgzMWbvw+n2imN2THETynI47NmNLzNP11dlGO2OllRtTrsLhmBNlYHa3W62pFpAw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/searchfield@3.5.7': resolution: {integrity: sha512-VxEG4tWDypdXQ8f7clZBu5Qmc4osqDBeA/gNMA2i1j/h2zRVcCJ0fRCHuDeXLSWBqF1XXAI4TWV53fBBwJusbg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/searchfield@3.5.8': + resolution: {integrity: sha512-jtquvGadx1DmtQqPKaVO6Qg/xpBjNxsOd59ciig9xRxpxV+90i996EX1E2R6R+tGJdSM1pD++7PVOO4yE++HOg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/select@3.6.8': resolution: {integrity: sha512-fLAVzGeYSdYdBdrEVws6Pb1ywFPdapA0eWphoW5s3fS0/pKcVWwbCHeHlaBEi1ISyqEubQZFGQdeFKm/M46Hew==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/select@3.6.9': + resolution: {integrity: sha512-vASUDv7FhEYQURzM+JIwcusPv7/x/l3zHc/oKJPvoCl3aa9pwS8hZwS82SC00o2iFnrDscfDJju4IE/cd4hucg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/selection@3.17.0': resolution: {integrity: sha512-It3LRTaFOavybuDBvBH2mvCh73OL4awqvN4tZ0JzLzMtaYSBe9+YmFasYrzB0o7ca17B2q1tpUmsNWaAgIqbLA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/selection@3.18.0': + resolution: {integrity: sha512-6EaNNP3exxBhW2LkcRR4a3pg+3oDguZlBSqIVVR7lyahv/D8xXHRC4dX+m0mgGHJpsgjs7664Xx6c8v193TFxg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/slider@3.5.8': resolution: {integrity: sha512-EDgbrxMq1w3+XTN72MGl3YtAG/j65EYX1Uc3Fh56K00+inJbTdRWyYTrb3NA310fXCd0WFBbzExuH2ohlKQycg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/slider@3.6.0': + resolution: {integrity: sha512-w5vJxVh267pmD1X+Ppd9S3ZzV1hcg0cV8q5P4Egr160b9WMcWlUspZPtsthwUlN7qQe/C8y5IAhtde4s29eNag==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/table@3.12.3': resolution: {integrity: sha512-8uGrLcNJYeMbFtzRQZFWCBj5kV+7v3jzwoKIL1j9TmYUKow1PTDMQbPJpAZLQhnC2wVMlaFVgDbedSlbBij7Zg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/table@3.13.0': + resolution: {integrity: sha512-mRbNYrwQIE7xzVs09Lk3kPteEVFVyOc20vA8ph6EP54PiUf/RllJpxZe/WUYLf4eom9lUkRYej5sffuUBpxjCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/tabs@3.6.10': resolution: {integrity: sha512-F7wfoiNsrBy7c02AYHyE1USGgj05HQ0hp7uXmQjp2LEa+AA0NKKi3HdswTHHySxb0ZRuoEE7E7vp/gXQYx2/Ow==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/tabs@3.7.0': + resolution: {integrity: sha512-ox4hTkfZCoR4Oyr3Op3rBlWNq2Wxie04vhEYpTZQ2hobR3l4fYaOkd7CPClILktJ3TC104j8wcb0knWxIBRx9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/toggle@3.7.8': resolution: {integrity: sha512-ySOtkByvIY54yIu8IZ4lnvomQA0H+/mkZnd6T5fKN3tjvIzHmkUk3TAPmNInUxHX148tSW6mWwec0xvjYqEd6w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/toggle@3.8.0': + resolution: {integrity: sha512-pyt/k/J8BwE/2g6LL6Z6sMSWRx9HEJB83Sm/MtovXnI66sxJ2EfQ1OaXB7Su5PEL9OMdoQF6Mb+N1RcW3zAoPw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/tooltip@3.4.13': resolution: {integrity: sha512-zQ+8FQ7Pi0Cz852dltXb6yaryjE18K3byK4tIO3e5vnrZHEGvfdxowc+v9ak5UV93kVrYoOVmfZHRcEaTXTBNA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/tooltip@3.5.0': + resolution: {integrity: sha512-+xzPNztJDd2XJD0X3DgWKlrgOhMqZpSzsIssXeJgO7uCnP8/Z513ESaipJhJCFC8fxj5caO/DK4Uu8hEtlB8cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/tree@3.8.5': resolution: {integrity: sha512-0/tYhsKWQQJTOZFDwh8hY3Qk6ejNFRldGrLeK5kS22UZdvsMFyh7WAi40FTCJy561/VoB0WqQI4oyNPOa9lYWg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-stately/tree@3.8.6': + resolution: {integrity: sha512-lblUaxf1uAuIz5jm6PYtcJ+rXNNVkqyFWTIMx6g6gW/mYvm8GNx1G/0MLZE7E6CuDGaO9dkLSY2bB1uqyKHidA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/utils@3.10.4': resolution: {integrity: sha512-gBEQEIMRh5f60KCm7QKQ2WfvhB2gLUr9b72sqUdIZ2EG+xuPgaIlCBeSicvjmjBvYZwOjoOEnmIkcx2GHp/HWw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-stately/virtualizer@4.1.0': - resolution: {integrity: sha512-MOaqpY3NloXrpCBvVUb3HL1p3Bh4YRtUq8D2ufC909u5vM6n6G5Swk1XPJ9KHfaftGhb5serwLkm2/Aha5CTbA==} + '@react-stately/utils@3.10.5': + resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/virtualizer@4.2.0': + resolution: {integrity: sha512-aTMpa9AQoz/xLqn8AI1BR/caUUY7/OUo9GbuF434w2u5eGCL7+SAn3Fmq7WSCwqYyDsO+jEIERek4JTX7pEW0A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-types/accordion@3.0.0-alpha.24': resolution: {integrity: sha512-hwDT4TJH7aHCG8m9QsTP+7xgW7x7k2TY+WHlMRr6qDS6WhTCwd41dCdagxC0SZtulzZuWqISBxZifVrh4Tynew==} @@ -3082,45 +3472,90 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/breadcrumbs@3.7.9': + resolution: {integrity: sha512-eARYJo8J+VfNV8vP4uw3L2Qliba9wLV2bx9YQCYf5Lc/OE5B/y4gaTLz+Y2P3Rtn6gBPLXY447zCs5i7gf+ICg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/button@3.10.0': resolution: {integrity: sha512-rAyU+N9VaHLBdZop4zasn8IDwf9I5Q1EzHUKMtzIFf5aUlMUW+K460zI/l8UESWRSWAXK9/WPSXGxfcoCEjvAA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/button@3.10.1': + resolution: {integrity: sha512-XTtap8o04+4QjPNAshFWOOAusUTxQlBjU2ai0BTVLShQEjHhRVDBIWsI2B2FKJ4KXT6AZ25llaxhNrreWGonmA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/calendar@3.4.10': resolution: {integrity: sha512-PyjqxwJxSW2IpQx6y0D9O34fRCWn1gv9q0qFhgaIigIQrPg8zTE/CC7owHLxAtgCnnCt8exJ5rqi414csaHKlA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/calendar@3.5.0': + resolution: {integrity: sha512-O3IRE7AGwAWYnvJIJ80cOy7WwoJ0m8GtX/qSmvXQAjC4qx00n+b5aFNBYAQtcyc3RM5QpW6obs9BfwGetFiI8w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/checkbox@3.8.4': resolution: {integrity: sha512-fvZrlQmlFNsYHZpl7GVmyYQlKdUtO5MczMSf8z3TlSiCb5Kl3ha9PsZgLhJqGuVnzB2ArIBz0eZrYa3k0PhcpA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/checkbox@3.9.0': + resolution: {integrity: sha512-9hbHx0Oo2Hp5a8nV8Q75LQR0DHtvOIJbFaeqESSopqmV9EZoYjtY/h0NS7cZetgahQgnqYWQi44XGooMDCsmxA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/color@3.0.0': resolution: {integrity: sha512-VUH8CROAM69GsMBilrJ1xyAdVsWL01nXQYrkZJxAEApv1OrcpIGSdsXLcGrjsrhjjiNVXxWFnqYRMsKkLzIl7g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/color@3.0.1': + resolution: {integrity: sha512-KemFziO3GbmT3HEKrgOGdqNA6Gsmy9xrwFO3f8qXSG7gVz6M27Ic4R9HVQv4iAjap5uti6W13/pk2bc/jLVcEA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/combobox@3.13.0': resolution: {integrity: sha512-kH/a+Fjpr54M2JbHg9RXwMjZ9O+XVsdOuE5JCpWRibJP1Mfl1md8gY6y6zstmVY8COrSqFvMZWB+PzwaTWjTGw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/combobox@3.13.1': + resolution: {integrity: sha512-7xr+HknfhReN4QPqKff5tbKTe2kGZvH+DGzPYskAtb51FAAiZsKo+WvnNAvLwg3kRoC9Rkn4TAiVBp/HgymRDw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/datepicker@3.8.3': resolution: {integrity: sha512-Y4qfPRBB6uzocosCOWSYMuwiZ3YXwLWQYiFB4KCglkvHyltbNz76LgoBEnclYA5HjwosIk4XywiXvHSYry8JnQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/datepicker@3.9.0': + resolution: {integrity: sha512-dbKL5Qsm2MQwOTtVQdOcKrrphcXAqDD80WLlSQrBLg+waDuuQ7H+TrvOT0thLKloNBlFUGnZZfXGRHINpih/0g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/dialog@3.5.13': resolution: {integrity: sha512-9k8daVcAqQsySkzDY6NIVlyGxtpEip4TKuLyzAehthbv78GQardD5fHdjQ6eXPRS4I2qZrmytrFFrlOnwWVGHw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@react-types/form@3.7.7': - resolution: {integrity: sha512-CVRjCawPhYRHi/LuikOC2kz5vgvmjjKmF4/wUgR2QzD1Ok4wY1ZGSx9M9EZptCIZAt2mToR6woyLUdtzy+foeQ==} + '@react-types/dialog@3.5.14': + resolution: {integrity: sha512-OXWMjrALwrlgw8aHD8SeRm/s3tbAssdaEh2h73KUSeFau3fU3n5mfKv+WnFqsEaOtN261o48l7hTlS6615H9AA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/form@3.7.8': + resolution: {integrity: sha512-0wOS97/X0ijTVuIqik1lHYTZnk13QkvMTKvIEhM7c6YMU3vPiirBwLbT2kJiAdwLiymwcCkrBdDF1NTRG6kPFA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/grid@3.2.10': + resolution: {integrity: sha512-Z5cG0ITwqjUE4kWyU5/7VqiPl4wqMJ7kG/ZP7poAnLmwRsR8Ai0ceVn+qzp5nTA19cgURi8t3LsXn3Ar1FBoog==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-types/grid@3.2.9': resolution: {integrity: sha512-eMw0d2UIZ4QTzGgD1wGGPw0cv67KjAOCp4TcwWjgDV7Wa5SVV/UvOmpnIVDyfhkG/4KRI5OR9h+isy76B726qA==} @@ -3132,41 +3567,86 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/link@3.5.9': + resolution: {integrity: sha512-JcKDiDMqrq/5Vpn+BdWQEuXit4KN4HR/EgIi3yKnNbYkLzxBoeQZpQgvTaC7NEQeZnSqkyXQo3/vMUeX/ZNIKw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/listbox@3.5.2': resolution: {integrity: sha512-ML/Bt/MeO0FiixcuFQ+smpu1WguxTOqHDjSnhc1vcNxVQFWQOhyVy01LAY2J/T9TjfjyYGD41vyMTI0f6fcLEQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/listbox@3.5.3': + resolution: {integrity: sha512-v1QXd9/XU3CCKr2Vgs7WLcTr6VMBur7CrxHhWZQQFExsf9bgJ/3wbUdjy4aThY/GsYHiaS38EKucCZFr1QAfqA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/menu@3.9.12': resolution: {integrity: sha512-1SPnkHKJdvOfwv9fEgK1DI6DYRs4D3hW2XcWlLhVXSjaC68CzOHGwFhKIKvZiDTW/11L770PRSEloIxHR09uFQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/menu@3.9.13': + resolution: {integrity: sha512-7SuX6E2tDsqQ+HQdSvIda1ji/+ujmR86dtS9CUu5yWX91P25ufRjZ72EvLRqClWNQsj1Xl4+2zBDLWlceznAjw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/meter@3.4.4': resolution: {integrity: sha512-0SEmPkShByC1gYkW7l+iJPg8QfEe2VrgwTciAtTfC4KIqAYmJVQtq6L+4d72EMxOh8RpQHePaY/RFHEJXAh72A==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/meter@3.4.5': + resolution: {integrity: sha512-04w1lEtvP/c3Ep8ND8hhH2rwjz2MtQ8o8SNLhahen3u0rX3jKOgD4BvHujsyvXXTMjj1Djp74sGzNawb4Ppi9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/numberfield@3.8.6': resolution: {integrity: sha512-VtWEMAXUO1S9EEZI8whc7xv6DVccxhbWsRthMCg/LxiwU3U5KAveadNc2c5rtXkRpd3cnD5xFzz3dExXdmHkAg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/numberfield@3.8.7': + resolution: {integrity: sha512-KccMPi39cLoVkB2T0V7HW6nsxQVAwt89WWCltPZJVGzsebv/k0xTQlPVAgrUake4kDLoE687e3Fr/Oe3+1bDhw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/overlays@3.8.10': resolution: {integrity: sha512-IcnB+VYfAJazRjWhBKZTmVMh3KTp/B1rRbcKkPx6t8djP9UQhKcohP7lAALxjJ56Jjz/GFC6rWyUcnYH0NFVRA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/overlays@3.8.11': + resolution: {integrity: sha512-aw7T0rwVI3EuyG5AOaEIk8j7dZJQ9m34XAztXJVZ/W2+4pDDkLDbJ/EAPnuo2xGYRGhowuNDn4tDju01eHYi+w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/progress@3.5.7': resolution: {integrity: sha512-EqMDHmlpoZUZzTjdejGIkSM0pS2LBI9NdadHf3bDNTycHv+5L1xpMHUg8RGOW8a3sRVLRvfN1aO9l75QZkyj+w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/progress@3.5.8': + resolution: {integrity: sha512-PR0rN5mWevfblR/zs30NdZr+82Gka/ba7UHmYOW9/lkKlWeD7PHgl1iacpd/3zl/jUF22evAQbBHmk1mS6Mpqw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/radio@3.8.4': resolution: {integrity: sha512-GCuOwQL19iwKa74NAIk9hv4ivyI8oW1+ZCuc2fzyDdeQjzTIlv3qrIyShwpVy1IoI7/4DYTMZm/YXPoKhu5TTA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/radio@3.8.5': + resolution: {integrity: sha512-gSImTPid6rsbJmwCkTliBIU/npYgJHOFaI3PNJo7Y0QTAnFelCtYeFtBiWrFodSArSv7ASqpLLUEj9hZu/rxIg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/searchfield@3.5.10': + resolution: {integrity: sha512-7wW4pJzbReawoGPu8a4l+CODTCDN088EN/ysUzl622ewim57PjArjix+lpO4+aEtJqS9HKpq8UEbjwo9axpcUA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/searchfield@3.5.9': resolution: {integrity: sha512-c/x8BWpH1Zq+fWpeBtzw2AhQhGi7ahWPicV7PlnqwIGO0MrH/QCjX0dj+I+1xpcAh8Eq6ECa79HE74Rw6aJmFg==} peerDependencies: @@ -3177,31 +3657,66 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/select@3.9.8': + resolution: {integrity: sha512-RGsYj2oFjXpLnfcvWMBQnkcDuKkwT43xwYWZGI214/gp/B64tJiIUgTM5wFTRAeGDX23EePkhCQF+9ctnqFd6g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/shared@3.25.0': resolution: {integrity: sha512-OZSyhzU6vTdW3eV/mz5i6hQwQUhkRs7xwY2d1aqPvTdMe0+2cY7Fwp45PAiwYLEj73i9ro2FxF9qC4DvHGSCgQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/shared@3.26.0': + resolution: {integrity: sha512-6FuPqvhmjjlpEDLTiYx29IJCbCNWPlsyO+ZUmCUXzhUv2ttShOXfw8CmeHWHftT/b2KweAWuzqSlfeXPR76jpw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/slider@3.7.6': resolution: {integrity: sha512-z72wnEzSge6qTD9TUoUPp1A4j4jXk/MVii6rGE78XeE/Pq7HyyjU5bCagryMr9PC9MKa/oTiHcshKqWBDf57GA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/slider@3.7.7': + resolution: {integrity: sha512-lYTR9zXQV2fSEm/G3gwDENWiki1IXd/oorsgf0zu1DBi2SQDbOsLsGUXiwvD24Xy6OkUuhAqjLPPexezo7+u9g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/switch@3.5.6': resolution: {integrity: sha512-gJ8t2yTCgcitz4ON4ELcLLmtlDkn2MUjjfu3ez/cwA1X/NUluPYkhXj5Z6H+KOlnveqrKCZDRoTgK74cQ6Cvfg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/switch@3.5.7': + resolution: {integrity: sha512-1IKiq510rPTHumEZuhxuazuXBa2Cuxz6wBIlwf3NCVmgWEvU+uk1ETG0sH2yymjwCqhtJDKXi+qi9HSgPEDwAg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/table@3.10.2': resolution: {integrity: sha512-YzA4hcsYfnFFpA2UyGb1KKhLpWgaj5daApqjp126tCIosl8k1KxZmhKD50cwH0Jm19lALJseqo5VdlcJtcr4qg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/table@3.10.3': + resolution: {integrity: sha512-Ac+W+m/zgRzlTU8Z2GEg26HkuJFswF9S6w26r+R3MHwr8z2duGPvv37XRtE1yf3dbpRBgHEAO141xqS2TqGwNg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/tabs@3.3.10': resolution: {integrity: sha512-s/Bw/HCIdWJPBw4O703ghKqhjGsIerRMIDxA88hbQYzfTDD6bkFDjCnsP2Tyy1G8Dg2rSPFUEE+k+PpLzqeEfQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/tabs@3.3.11': + resolution: {integrity: sha512-BjF2TqBhZaIcC4lc82R5pDJd1F7kstj1K0Nokhz99AGYn8C0ITdp6lR+DPVY9JZRxKgP9R2EKfWGI90Lo7NQdA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/textfield@3.10.0': + resolution: {integrity: sha512-ShU3d6kLJGQjPXccVFjM3KOXdj3uyhYROqH9YgSIEVxgA9W6LRflvk/IVBamD9pJYTPbwmVzuP0wQkTDupfZ1w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/textfield@3.9.7': resolution: {integrity: sha512-vU5+QCOF9HgWGjAmmy+cpJibVW5voFomC5POmYHokm7kivYcMMjlonsgWwg/0xXrqE2qosH3tpz4jFoEuig1NQ==} peerDependencies: @@ -3212,6 +3727,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + '@react-types/tooltip@3.4.13': + resolution: {integrity: sha512-KPekFC17RTT8kZlk7ZYubueZnfsGTDOpLw7itzolKOXGddTXsrJGBzSB4Bb060PBVllaDO0MOrhPap8OmrIl1Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@remix-run/router@1.20.0': resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==} engines: {node: '>=14.0.0'} @@ -9070,12 +9590,24 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-aria-components@1.5.0: + resolution: {integrity: sha512-wzf0g6cvWrqAJd4FkisAfFnslx6AJREgOd/NEmVE/RGuDxGTzss4awcwbo98rIVmqbTTFApiygy0SyWGrRZfDA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-aria@3.35.1: resolution: {integrity: sha512-MQTvt0xbcKpnceKkYUtPMbaD9IQj2BXTrwk2vP/V7ph3EVhcyJTUdy1LXCqf8oR8bXE2BERUqp7rzJ+vYy5C+w==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react-aria@3.36.0: + resolution: {integrity: sha512-AK5XyIhAN+e5HDlwlF+YwFrOrVI7RYmZ6kg/o7ZprQjkYqYKapXeUpWscmNm/3H2kDboE5Z4ymUnK6ZhobLqOw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-colorful@5.6.1: resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: @@ -9145,10 +9677,10 @@ packages: peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-stately@3.33.0: - resolution: {integrity: sha512-DNPOxYAPuhuXwSuE1s1K7iSgqG2QOBUZq3bsLAd4gUUZje6Qepkhe7TzK2LWarQYAZ3gC9Xhmnz8ie1fdCo0GA==} + react-stately@3.34.0: + resolution: {integrity: sha512-0N9tZ8qQ/CxpJH7ao0O6gr+8955e7VrOskg9N+TIxkFknPetwOCtgppMYhnTfteBV8WfM/vv4OC1NbkgYTqXJA==} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-test-renderer@18.3.1: resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==} @@ -12558,15 +13090,28 @@ snapshots: dependencies: '@swc/helpers': 0.5.13 + '@internationalized/date@3.6.0': + dependencies: + '@swc/helpers': 0.5.13 + '@internationalized/message@3.1.5': dependencies: '@swc/helpers': 0.5.13 intl-messageformat: 10.7.1 + '@internationalized/message@3.1.6': + dependencies: + '@swc/helpers': 0.5.13 + intl-messageformat: 10.7.1 + '@internationalized/number@3.5.4': dependencies: '@swc/helpers': 0.5.13 + '@internationalized/number@3.6.0': + dependencies: + '@swc/helpers': 0.5.13 + '@internationalized/string-compiler@3.2.5': dependencies: '@formatjs/icu-messageformat-parser': 2.8.0 @@ -12575,6 +13120,10 @@ snapshots: dependencies: '@swc/helpers': 0.5.13 + '@internationalized/string@3.2.5': + dependencies: + '@swc/helpers': 0.5.13 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -12603,7 +13152,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -12617,7 +13166,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -12637,33 +13186,69 @@ snapshots: - babel-plugin-macros - supports-color - ts-node + optional: true - '@jest/create-cache-key-function@29.7.0': - dependencies: - '@jest/types': 29.6.3 - - '@jest/environment@29.7.0': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4))': dependencies: - '@jest/fake-timers': 29.7.0 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@types/node': 22.7.5 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + + '@jest/create-cache-key-function@29.7.0': + dependencies: + '@jest/types': 29.6.3 + + '@jest/environment@29.7.0': + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 22.7.5 + jest-mock: 29.7.0 + + '@jest/expect-utils@29.7.0': + dependencies: + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + + '@jest/fake-timers@29.7.0': + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 '@types/node': 22.7.5 jest-message-util: 29.7.0 jest-mock: 29.7.0 @@ -13148,7 +13733,7 @@ snapshots: '@pkgr/core@0.1.1': {} - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.38.1 @@ -13158,13 +13743,13 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.2.0 source-map: 0.7.4 - webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) optionalDependencies: type-fest: 3.13.1 - webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.95.0) + webpack-dev-server: 5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.38.1 @@ -13174,13 +13759,13 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.2.0 source-map: 0.7.4 - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) optionalDependencies: type-fest: 3.13.1 - webpack-dev-server: 5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)) + webpack-dev-server: 5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))) webpack-hot-middleware: 2.26.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0)(webpack-hot-middleware@2.26.1)(webpack@5.95.0)': dependencies: ansi-html: 0.0.9 core-js-pure: 3.38.1 @@ -13190,10 +13775,10 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.2.0 source-map: 0.7.4 - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) optionalDependencies: type-fest: 3.13.1 - webpack-dev-server: 5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))) + webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.95.0) webpack-hot-middleware: 2.26.1 '@protobufjs/aspromise@1.1.2': {} @@ -13221,12 +13806,12 @@ snapshots: '@react-aria/accordion@3.0.0-alpha.35(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/button': 3.10.1(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/tree': 3.8.5(react@18.3.1) + '@react-aria/button': 3.11.0(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) '@react-types/accordion': 3.0.0-alpha.24(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13241,6 +13826,16 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/breadcrumbs@3.5.19(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/link': 3.7.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/breadcrumbs': 3.7.9(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/button@3.10.1(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13252,6 +13847,18 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/button@3.11.0(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/toolbar': 3.0.0-beta.11(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/calendar@3.5.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@internationalized/date': 3.5.6 @@ -13267,6 +13874,21 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/calendar@3.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/calendar': 3.6.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/checkbox@3.14.8(react@18.3.1)': dependencies: '@react-aria/form': 3.0.10(react@18.3.1) @@ -13282,11 +13904,36 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/checkbox@3.15.0(react@18.3.1)': + dependencies: + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/toggle': 3.10.10(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/checkbox': 3.6.10(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/collections@3.0.0-alpha.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-sync-external-store: 1.2.2(react@18.3.1) + + '@react-aria/collections@3.0.0-alpha.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13310,6 +13957,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/color@3.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/numberfield': 3.11.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/slider': 3.7.14(react@18.3.1) + '@react-aria/spinbutton': 3.6.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/color': 3.8.1(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/color': 3.0.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/combobox@3.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.3(react@18.3.1) @@ -13330,6 +13995,26 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/combobox@3.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/listbox': 3.13.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/menu': 3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/combobox': 3.10.1(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/combobox': 3.13.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/datepicker@3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@internationalized/date': 3.5.6 @@ -13353,6 +14038,29 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/datepicker@3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@internationalized/number': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/spinbutton': 3.6.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/datepicker': 3.11.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/datepicker': 3.9.0(react@18.3.1) + '@react-types/dialog': 3.5.14(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/dialog@3.5.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13364,17 +14072,38 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/dialog@3.5.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/dialog': 3.5.14(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/disclosure@3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/disclosure': 3.0.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/disclosure@3.0.0-alpha.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/button': 3.10.1(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/ssr': 3.9.6(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) + '@react-aria/button': 3.11.0(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) '@react-stately/disclosure': 3.0.0-alpha.0(react@18.3.1) - '@react-stately/toggle': 3.7.8(react@18.3.1) - '@react-stately/tree': 3.8.5(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13394,6 +14123,21 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/dnd@3.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@internationalized/string': 3.2.5 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/overlays': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/dnd': 3.5.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/focus@3.18.4(react@18.3.1)': dependencies: '@react-aria/interactions': 3.22.4(react@18.3.1) @@ -13403,6 +14147,15 @@ snapshots: clsx: 2.1.1 react: 18.3.1 + '@react-aria/focus@3.19.0(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + clsx: 2.1.1 + react: 18.3.1 + '@react-aria/form@3.0.10(react@18.3.1)': dependencies: '@react-aria/interactions': 3.22.4(react@18.3.1) @@ -13412,6 +14165,15 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/form@3.0.11(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/grid@3.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13430,6 +14192,40 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/grid@3.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/grid': 3.10.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/gridlist@3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/grid': 3.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/gridlist@3.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13458,6 +14254,18 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/i18n@3.12.4(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@internationalized/message': 3.1.6 + '@internationalized/number': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/interactions@3.22.4(react@18.3.1)': dependencies: '@react-aria/ssr': 3.9.6(react@18.3.1) @@ -13466,6 +14274,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/interactions@3.22.5(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/label@3.7.12(react@18.3.1)': dependencies: '@react-aria/utils': 3.25.3(react@18.3.1) @@ -13473,6 +14289,13 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/label@3.7.13(react@18.3.1)': + dependencies: + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/link@3.7.6(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13483,6 +14306,16 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/link@3.7.7(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/link': 3.5.9(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/listbox@3.13.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/interactions': 3.22.4(react@18.3.1) @@ -13497,10 +14330,28 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/listbox@3.13.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-types/listbox': 3.5.3(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/live-announcer@3.4.0': dependencies: '@swc/helpers': 0.5.13 + '@react-aria/live-announcer@3.4.1': + dependencies: + '@swc/helpers': 0.5.13 + '@react-aria/menu@3.15.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13519,6 +14370,25 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/menu@3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/menu': 3.9.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/menu': 3.9.13(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/meter@3.4.17(react@18.3.1)': dependencies: '@react-aria/progress': 3.4.17(react@18.3.1) @@ -13527,6 +14397,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/meter@3.4.18(react@18.3.1)': + dependencies: + '@react-aria/progress': 3.4.18(react@18.3.1) + '@react-types/meter': 3.4.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/numberfield@3.11.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.3(react@18.3.1) @@ -13543,6 +14421,22 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/numberfield@3.11.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/spinbutton': 3.6.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/numberfield': 3.9.8(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/numberfield': 3.8.7(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/overlays@3.23.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13559,6 +14453,22 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/overlays@3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/progress@3.4.17(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.3(react@18.3.1) @@ -13569,6 +14479,30 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/progress@3.4.18(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/progress': 3.5.8(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-aria/radio@3.10.10(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/radio': 3.10.9(react@18.3.1) + '@react-types/radio': 3.8.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/radio@3.10.9(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13595,6 +14529,18 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/searchfield@3.7.11(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/searchfield': 3.5.8(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/searchfield': 3.5.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/select@3.14.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/form': 3.0.10(react@18.3.1) @@ -13614,6 +14560,25 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/select@3.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/listbox': 3.13.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/menu': 3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/select': 3.6.9(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/select': 3.9.8(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/selection@3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13626,6 +14591,18 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/selection@3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/separator@3.4.3(react@18.3.1)': dependencies: '@react-aria/utils': 3.25.3(react@18.3.1) @@ -13633,6 +14610,13 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/separator@3.4.4(react@18.3.1)': + dependencies: + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/slider@3.7.13(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13646,6 +14630,30 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/slider@3.7.14(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/slider': 3.6.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/slider': 3.7.7(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-aria/spinbutton@3.6.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/spinbutton@3.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/i18n': 3.12.3(react@18.3.1) @@ -13662,6 +14670,20 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/ssr@3.9.7(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-aria/switch@3.6.10(react@18.3.1)': + dependencies: + '@react-aria/toggle': 3.10.10(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/switch': 3.5.7(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/switch@3.6.9(react@18.3.1)': dependencies: '@react-aria/toggle': 3.10.9(react@18.3.1) @@ -13691,6 +14713,26 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/table@3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/grid': 3.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/flags': 3.0.5 + '@react-stately/table': 3.13.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/tabs@3.9.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13704,6 +14746,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/tabs@3.9.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tabs': 3.7.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/tabs': 3.3.11(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/tag@3.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/gridlist': 3.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13719,6 +14774,21 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/tag@3.4.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/gridlist': 3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-aria/textfield@3.14.10(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13732,6 +14802,30 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/textfield@3.15.0(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/form': 3.0.11(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/textfield': 3.10.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-aria/toggle@3.10.10(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-aria/toggle@3.10.9(react@18.3.1)': dependencies: '@react-aria/focus': 3.18.4(react@18.3.1) @@ -13745,10 +14839,30 @@ snapshots: '@react-aria/toolbar@3.0.0-beta.10(react@18.3.1)': dependencies: - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-aria/toolbar@3.0.0-beta.11(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-aria/tooltip@3.7.10(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tooltip': 3.5.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/tooltip': 3.4.13(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 @@ -13765,13 +14879,26 @@ snapshots: '@react-aria/tree@3.0.0-beta.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/gridlist': 3.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/selection': 3.20.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/tree': 3.8.5(react@18.3.1) - '@react-types/button': 3.10.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-aria/gridlist': 3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/tree@3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/gridlist': 3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/button': 3.10.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13785,13 +14912,22 @@ snapshots: clsx: 2.1.1 react: 18.3.1 - '@react-aria/virtualizer@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/utils@3.26.0(react@18.3.1)': dependencies: - '@react-aria/i18n': 3.12.3(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-stately/virtualizer': 4.1.0(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + clsx: 2.1.1 + react: 18.3.1 + + '@react-aria/virtualizer@4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-stately/virtualizer': 4.2.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13804,6 +14940,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-aria/visually-hidden@3.8.18(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-hook/intersection-observer@3.1.2(react@18.3.1)': dependencies: '@react-hook/passive-layout-effect': 1.2.1(react@18.3.1) @@ -13823,6 +14967,24 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/calendar@3.6.0(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-stately/checkbox@3.6.10(react@18.3.1)': + dependencies: + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/checkbox@3.6.9(react@18.3.1)': dependencies: '@react-stately/form': 3.0.6(react@18.3.1) @@ -13838,6 +15000,12 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/collections@3.12.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/color@3.8.0(react@18.3.1)': dependencies: '@internationalized/number': 3.5.4 @@ -13852,6 +15020,20 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/color@3.8.1(react@18.3.1)': + dependencies: + '@internationalized/number': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/numberfield': 3.9.8(react@18.3.1) + '@react-stately/slider': 3.6.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/color': 3.0.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/combobox@3.10.0(react@18.3.1)': dependencies: '@react-stately/collections': 3.11.0(react@18.3.1) @@ -13865,12 +15047,31 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/combobox@3.10.1(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-stately/select': 3.6.9(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/combobox': 3.13.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/data@3.11.7(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/data@3.12.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/datepicker@3.10.3(react@18.3.1)': dependencies: '@internationalized/date': 3.5.6 @@ -13883,10 +15084,29 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/datepicker@3.11.0(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/datepicker': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-stately/disclosure@3.0.0(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/disclosure@3.0.0-alpha.0(react@18.3.1)': dependencies: - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 @@ -13897,16 +15117,42 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/dnd@3.5.0(react@18.3.1)': + dependencies: + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/flags@3.0.4': dependencies: '@swc/helpers': 0.5.13 + '@react-stately/flags@3.0.5': + dependencies: + '@swc/helpers': 0.5.13 + '@react-stately/form@3.0.6(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/form@3.1.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-stately/grid@3.10.0(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/grid@3.9.3(react@18.3.1)': dependencies: '@react-stately/collections': 3.11.0(react@18.3.1) @@ -13916,14 +15162,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 - '@react-stately/layout@4.0.3(react@18.3.1)': + '@react-stately/layout@4.1.0(react@18.3.1)': dependencies: - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/table': 3.12.3(react@18.3.1) - '@react-stately/virtualizer': 4.1.0(react@18.3.1) - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/table': 3.10.2(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/table': 3.13.0(react@18.3.1) + '@react-stately/virtualizer': 4.2.0(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 @@ -13936,6 +15182,15 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/list@3.11.1(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/menu@3.8.3(react@18.3.1)': dependencies: '@react-stately/overlays': 3.6.11(react@18.3.1) @@ -13944,6 +15199,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/menu@3.9.0(react@18.3.1)': + dependencies: + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/menu': 3.9.13(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/numberfield@3.9.7(react@18.3.1)': dependencies: '@internationalized/number': 3.5.4 @@ -13953,6 +15216,15 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/numberfield@3.9.8(react@18.3.1)': + dependencies: + '@internationalized/number': 3.6.0 + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/numberfield': 3.8.7(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/overlays@3.6.11(react@18.3.1)': dependencies: '@react-stately/utils': 3.10.4(react@18.3.1) @@ -13960,6 +15232,13 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/overlays@3.6.12(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/radio@3.10.8(react@18.3.1)': dependencies: '@react-stately/form': 3.0.6(react@18.3.1) @@ -13969,6 +15248,15 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/radio@3.10.9(react@18.3.1)': + dependencies: + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/radio': 3.8.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/searchfield@3.5.7(react@18.3.1)': dependencies: '@react-stately/utils': 3.10.4(react@18.3.1) @@ -13976,6 +15264,13 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/searchfield@3.5.8(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/searchfield': 3.5.10(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/select@3.6.8(react@18.3.1)': dependencies: '@react-stately/form': 3.0.6(react@18.3.1) @@ -13986,6 +15281,16 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/select@3.6.9(react@18.3.1)': + dependencies: + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/select': 3.9.8(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/selection@3.17.0(react@18.3.1)': dependencies: '@react-stately/collections': 3.11.0(react@18.3.1) @@ -13994,6 +15299,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/selection@3.18.0(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/slider@3.5.8(react@18.3.1)': dependencies: '@react-stately/utils': 3.10.4(react@18.3.1) @@ -14002,6 +15315,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/slider@3.6.0(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/slider': 3.7.7(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/table@3.12.3(react@18.3.1)': dependencies: '@react-stately/collections': 3.11.0(react@18.3.1) @@ -14015,6 +15336,19 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/table@3.13.0(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/flags': 3.0.5 + '@react-stately/grid': 3.10.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/tabs@3.6.10(react@18.3.1)': dependencies: '@react-stately/list': 3.11.0(react@18.3.1) @@ -14023,6 +15357,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/tabs@3.7.0(react@18.3.1)': + dependencies: + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/tabs': 3.3.11(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/toggle@3.7.8(react@18.3.1)': dependencies: '@react-stately/utils': 3.10.4(react@18.3.1) @@ -14030,6 +15372,14 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/toggle@3.8.0(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/checkbox': 3.9.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/tooltip@3.4.13(react@18.3.1)': dependencies: '@react-stately/overlays': 3.6.11(react@18.3.1) @@ -14037,6 +15387,13 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/tooltip@3.5.0(react@18.3.1)': + dependencies: + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-types/tooltip': 3.4.13(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/tree@3.8.5(react@18.3.1)': dependencies: '@react-stately/collections': 3.11.0(react@18.3.1) @@ -14046,21 +15403,35 @@ snapshots: '@swc/helpers': 0.5.13 react: 18.3.1 + '@react-stately/tree@3.8.6(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + '@react-stately/utils@3.10.4(react@18.3.1)': dependencies: '@swc/helpers': 0.5.13 react: 18.3.1 - '@react-stately/virtualizer@4.1.0(react@18.3.1)': + '@react-stately/utils@3.10.5(react@18.3.1)': dependencies: - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + '@swc/helpers': 0.5.13 + react: 18.3.1 + + '@react-stately/virtualizer@4.2.0(react@18.3.1)': + dependencies: + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) '@swc/helpers': 0.5.13 react: 18.3.1 '@react-types/accordion@3.0.0-alpha.24(react@18.3.1)': dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 '@react-types/breadcrumbs@3.7.8(react@18.3.1)': @@ -14069,33 +15440,66 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/breadcrumbs@3.7.9(react@18.3.1)': + dependencies: + '@react-types/link': 3.5.9(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/button@3.10.0(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/button@3.10.1(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/calendar@3.4.10(react@18.3.1)': dependencies: '@internationalized/date': 3.5.6 '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/calendar@3.5.0(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/checkbox@3.8.4(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/checkbox@3.9.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/color@3.0.0(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) '@react-types/slider': 3.7.6(react@18.3.1) react: 18.3.1 + '@react-types/color@3.0.1(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/slider': 3.7.7(react@18.3.1) + react: 18.3.1 + '@react-types/combobox@3.13.0(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/combobox@3.13.1(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/datepicker@3.8.3(react@18.3.1)': dependencies: '@internationalized/date': 3.5.6 @@ -14104,15 +15508,34 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/datepicker@3.9.0(react@18.3.1)': + dependencies: + '@internationalized/date': 3.6.0 + '@react-types/calendar': 3.5.0(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/dialog@3.5.13(react@18.3.1)': dependencies: '@react-types/overlays': 3.8.10(react@18.3.1) '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 - '@react-types/form@3.7.7(react@18.3.1)': + '@react-types/dialog@3.5.14(react@18.3.1)': dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + + '@react-types/form@3.7.8(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + + '@react-types/grid@3.2.10(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 '@react-types/grid@3.2.9(react@18.3.1)': @@ -14125,30 +15548,61 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/link@3.5.9(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/listbox@3.5.2(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/listbox@3.5.3(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/menu@3.9.12(react@18.3.1)': dependencies: '@react-types/overlays': 3.8.10(react@18.3.1) '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 - '@react-types/meter@3.4.4(react@18.3.1)': + '@react-types/menu@3.9.13(react@18.3.1)': + dependencies: + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + + '@react-types/meter@3.4.4(react@18.3.1)': + dependencies: + '@react-types/progress': 3.5.7(react@18.3.1) + react: 18.3.1 + + '@react-types/meter@3.4.5(react@18.3.1)': + dependencies: + '@react-types/progress': 3.5.8(react@18.3.1) + react: 18.3.1 + + '@react-types/numberfield@3.8.6(react@18.3.1)': + dependencies: + '@react-types/shared': 3.25.0(react@18.3.1) + react: 18.3.1 + + '@react-types/numberfield@3.8.7(react@18.3.1)': dependencies: - '@react-types/progress': 3.5.7(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 - '@react-types/numberfield@3.8.6(react@18.3.1)': + '@react-types/overlays@3.8.10(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 - '@react-types/overlays@3.8.10(react@18.3.1)': + '@react-types/overlays@3.8.11(react@18.3.1)': dependencies: - '@react-types/shared': 3.25.0(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 '@react-types/progress@3.5.7(react@18.3.1)': @@ -14156,11 +15610,27 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/progress@3.5.8(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/radio@3.8.4(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/radio@3.8.5(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + + '@react-types/searchfield@3.5.10(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/textfield': 3.10.0(react@18.3.1) + react: 18.3.1 + '@react-types/searchfield@3.5.9(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) @@ -14172,31 +15642,66 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/select@3.9.8(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/shared@3.25.0(react@18.3.1)': dependencies: react: 18.3.1 + '@react-types/shared@3.26.0(react@18.3.1)': + dependencies: + react: 18.3.1 + '@react-types/slider@3.7.6(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/slider@3.7.7(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/switch@3.5.6(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/switch@3.5.7(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/table@3.10.2(react@18.3.1)': dependencies: '@react-types/grid': 3.2.9(react@18.3.1) '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/table@3.10.3(react@18.3.1)': + dependencies: + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/tabs@3.3.10(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/tabs@3.3.11(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + + '@react-types/textfield@3.10.0(react@18.3.1)': + dependencies: + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@react-types/textfield@3.9.7(react@18.3.1)': dependencies: '@react-types/shared': 3.25.0(react@18.3.1) @@ -14208,6 +15713,12 @@ snapshots: '@react-types/shared': 3.25.0(react@18.3.1) react: 18.3.1 + '@react-types/tooltip@3.4.13(react@18.3.1)': + dependencies: + '@react-types/overlays': 3.8.11(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + '@remix-run/router@1.20.0': {} '@rollup/rollup-android-arm-eabi@4.24.0': @@ -15811,17 +17322,17 @@ snapshots: '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4))': + '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.95.0)': dependencies: webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0) - '@webpack-cli/info@2.0.2(webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4))': + '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.95.0)': dependencies: webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0) - '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4))': + '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.1.0)(webpack@5.95.0)': dependencies: webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0) @@ -15830,6 +17341,32 @@ snapshots: '@workleap/browserslist-config@2.0.1': {} + '@workleap/eslint-plugin@3.2.2(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4)': + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4) + eslint-plugin-jsx-a11y: 6.10.1(eslint@8.57.1) + eslint-plugin-mdx: 3.1.5(eslint@8.57.1) + eslint-plugin-package-json: 0.10.4(eslint@8.57.1)(jsonc-eslint-parser@2.4.0) + eslint-plugin-react: 7.37.2(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + eslint-plugin-storybook: 0.8.0(eslint@8.57.1)(typescript@5.5.4) + eslint-plugin-testing-library: 6.4.0(eslint@8.57.1)(typescript@5.5.4) + eslint-plugin-yml: 1.14.0(eslint@8.57.1) + jsonc-eslint-parser: 2.4.0 + yaml-eslint-parser: 1.2.3 + optionalDependencies: + '@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + typescript: 5.5.4 + transitivePeerDependencies: + - bluebird + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - jest + - supports-color + '@workleap/eslint-plugin@3.2.2(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4)': dependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) @@ -15898,22 +17435,22 @@ snapshots: dependencies: typescript: 5.5.4 - '@workleap/webpack-configs@1.5.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@swc/helpers@0.5.13)(browserslist@4.23.3)(postcss@8.4.47)(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4))': + '@workleap/webpack-configs@1.5.1(@swc/core@1.7.26(@swc/helpers@0.5.13))(@swc/helpers@0.5.13)(browserslist@4.23.3)(postcss@8.4.47)(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0)(webpack-hot-middleware@2.26.1)(webpack@5.95.0)': dependencies: - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0)(webpack-hot-middleware@2.26.1)(webpack@5.95.0) '@svgr/webpack': 8.1.0(typescript@5.5.4) '@swc/core': 1.7.26(@swc/helpers@0.5.13) '@swc/helpers': 0.5.13 browserslist: 4.23.3 - css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) - html-webpack-plugin: 5.6.3(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) - mini-css-extract-plugin: 2.9.1(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + css-loader: 6.11.0(webpack@5.95.0) + html-webpack-plugin: 5.6.3(webpack@5.95.0) + mini-css-extract-plugin: 2.9.1(webpack@5.95.0) postcss: 8.4.47 - postcss-loader: 8.1.1(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + postcss-loader: 8.1.1(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0) react-refresh: 0.14.2 - style-loader: 3.3.4(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) - swc-loader: 0.2.6(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) - terser-webpack-plugin: 5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + style-loader: 3.3.4(webpack@5.95.0) + swc-loader: 0.2.6(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0) webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) optionalDependencies: webpack-dev-server: 5.1.0(webpack-cli@5.1.4)(webpack@5.95.0) @@ -16873,6 +18410,22 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 + create-jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + create-jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): dependencies: '@jest/types': 29.6.3 @@ -16943,7 +18496,7 @@ snapshots: postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): dependencies: icss-utils: 5.1.0(postcss@8.4.47) postcss: 8.4.47 @@ -16954,9 +18507,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) - css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): + css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))): dependencies: icss-utils: 5.1.0(postcss@8.4.47) postcss: 8.4.47 @@ -16967,9 +18520,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) - css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))): + css-loader@6.11.0(webpack@5.95.0): dependencies: icss-utils: 5.1.0(postcss@8.4.47) postcss: 8.4.47 @@ -16980,7 +18533,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) css-prefers-color-scheme@9.0.1(postcss@8.4.47): dependencies: @@ -17579,7 +19132,7 @@ snapshots: debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 8.57.1 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -17613,7 +19166,7 @@ snapshots: - bluebird - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: @@ -17635,7 +19188,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -17653,6 +19206,17 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4): + dependencies: + '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + jest: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + transitivePeerDependencies: + - supports-color + - typescript + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)))(typescript@5.5.4): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.5.4) @@ -18785,7 +20349,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18793,9 +20357,9 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) - html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): + html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18803,9 +20367,9 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) - html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))): + html-webpack-plugin@5.6.3(webpack@5.95.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18813,7 +20377,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) htmlparser2@3.10.1: dependencies: @@ -19356,6 +20920,26 @@ snapshots: - babel-plugin-macros - supports-color + jest-cli@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + jest-cli@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) @@ -19375,6 +20959,38 @@ snapshots: - supports-color - ts-node + jest-config@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): + dependencies: + '@babel/core': 7.25.9 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.9) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 22.7.5 + ts-node: 10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + optional: true + jest-config@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): dependencies: '@babel/core': 7.25.9 @@ -19705,6 +21321,19 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 + jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): + dependencies: + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + optional: true + jest@29.7.0(@types/node@22.7.5)(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4)) @@ -20851,7 +22480,7 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.1(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + mini-css-extract-plugin@2.9.1(webpack@5.95.0): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 @@ -21626,25 +23255,25 @@ snapshots: tsx: 4.19.1 yaml: 2.6.0 - postcss-loader@8.1.1(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + postcss-loader@8.1.1(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.6 postcss: 8.4.47 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) transitivePeerDependencies: - typescript - postcss-loader@8.1.1(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): + postcss-loader@8.1.1(postcss@8.4.47)(typescript@5.5.4)(webpack@5.95.0): dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.6 postcss: 8.4.47 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) transitivePeerDependencies: - typescript @@ -21953,39 +23582,76 @@ snapshots: react-aria-components@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@internationalized/date': 3.5.6 - '@internationalized/string': 3.2.4 + '@internationalized/date': 3.6.0 + '@internationalized/string': 3.2.5 '@react-aria/accordion': 3.0.0-alpha.35(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/collections': 3.0.0-alpha.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/color': 3.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/color': 3.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/disclosure': 3.0.0-alpha.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/dnd': 3.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/focus': 3.18.4(react@18.3.1) - '@react-aria/interactions': 3.22.4(react@18.3.1) - '@react-aria/live-announcer': 3.4.0 - '@react-aria/menu': 3.15.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/dnd': 3.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/menu': 3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/toolbar': 3.0.0-beta.10(react@18.3.1) '@react-aria/tree': 3.0.0-beta.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.25.3(react@18.3.1) - '@react-aria/virtualizer': 4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-stately/color': 3.8.0(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/virtualizer': 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/color': 3.8.1(react@18.3.1) '@react-stately/disclosure': 3.0.0-alpha.0(react@18.3.1) - '@react-stately/layout': 4.0.3(react@18.3.1) - '@react-stately/menu': 3.8.3(react@18.3.1) - '@react-stately/table': 3.12.3(react@18.3.1) - '@react-stately/utils': 3.10.4(react@18.3.1) - '@react-stately/virtualizer': 4.1.0(react@18.3.1) - '@react-types/color': 3.0.0(react@18.3.1) - '@react-types/form': 3.7.7(react@18.3.1) - '@react-types/grid': 3.2.9(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) - '@react-types/table': 3.10.2(react@18.3.1) + '@react-stately/layout': 4.1.0(react@18.3.1) + '@react-stately/menu': 3.9.0(react@18.3.1) + '@react-stately/table': 3.13.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-stately/virtualizer': 4.2.0(react@18.3.1) + '@react-types/color': 3.0.1(react@18.3.1) + '@react-types/form': 3.7.8(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) '@swc/helpers': 0.5.13 client-only: 0.0.1 react: 18.3.1 react-aria: 3.35.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-dom: 18.3.1(react@18.3.1) - react-stately: 3.33.0(react@18.3.1) + react-stately: 3.34.0(react@18.3.1) + use-sync-external-store: 1.2.2(react@18.3.1) + + react-aria-components@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@internationalized/date': 3.6.0 + '@internationalized/string': 3.2.5 + '@react-aria/collections': 3.0.0-alpha.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/color': 3.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/disclosure': 3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/dnd': 3.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/live-announcer': 3.4.1 + '@react-aria/menu': 3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/toolbar': 3.0.0-beta.11(react@18.3.1) + '@react-aria/tree': 3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/virtualizer': 4.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/color': 3.8.1(react@18.3.1) + '@react-stately/disclosure': 3.0.0(react@18.3.1) + '@react-stately/layout': 4.1.0(react@18.3.1) + '@react-stately/menu': 3.9.0(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/table': 3.13.0(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-stately/virtualizer': 4.2.0(react@18.3.1) + '@react-types/color': 3.0.1(react@18.3.1) + '@react-types/form': 3.7.8(react@18.3.1) + '@react-types/grid': 3.2.10(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + '@react-types/table': 3.10.3(react@18.3.1) + '@swc/helpers': 0.5.13 + client-only: 0.0.1 + react: 18.3.1 + react-aria: 3.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + react-stately: 3.34.0(react@18.3.1) use-sync-external-store: 1.2.2(react@18.3.1) react-aria@3.35.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -22031,6 +23697,50 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-aria@3.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@internationalized/string': 3.2.5 + '@react-aria/breadcrumbs': 3.5.19(react@18.3.1) + '@react-aria/button': 3.11.0(react@18.3.1) + '@react-aria/calendar': 3.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/checkbox': 3.15.0(react@18.3.1) + '@react-aria/color': 3.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/combobox': 3.11.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/datepicker': 3.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/dialog': 3.5.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/disclosure': 3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/dnd': 3.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.19.0(react@18.3.1) + '@react-aria/gridlist': 3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.4(react@18.3.1) + '@react-aria/interactions': 3.22.5(react@18.3.1) + '@react-aria/label': 3.7.13(react@18.3.1) + '@react-aria/link': 3.7.7(react@18.3.1) + '@react-aria/listbox': 3.13.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/menu': 3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/meter': 3.4.18(react@18.3.1) + '@react-aria/numberfield': 3.11.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.24.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/progress': 3.4.18(react@18.3.1) + '@react-aria/radio': 3.10.10(react@18.3.1) + '@react-aria/searchfield': 3.7.11(react@18.3.1) + '@react-aria/select': 3.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/selection': 3.21.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/separator': 3.4.4(react@18.3.1) + '@react-aria/slider': 3.7.14(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/switch': 3.6.10(react@18.3.1) + '@react-aria/table': 3.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/tabs': 3.9.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/tag': 3.4.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/textfield': 3.15.0(react@18.3.1) + '@react-aria/tooltip': 3.7.10(react@18.3.1) + '@react-aria/utils': 3.26.0(react@18.3.1) + '@react-aria/visually-hidden': 3.8.18(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -22106,32 +23816,33 @@ snapshots: react: 18.3.1 react-is: 18.3.1 - react-stately@3.33.0(react@18.3.1): - dependencies: - '@react-stately/calendar': 3.5.5(react@18.3.1) - '@react-stately/checkbox': 3.6.9(react@18.3.1) - '@react-stately/collections': 3.11.0(react@18.3.1) - '@react-stately/color': 3.8.0(react@18.3.1) - '@react-stately/combobox': 3.10.0(react@18.3.1) - '@react-stately/data': 3.11.7(react@18.3.1) - '@react-stately/datepicker': 3.10.3(react@18.3.1) - '@react-stately/dnd': 3.4.3(react@18.3.1) - '@react-stately/form': 3.0.6(react@18.3.1) - '@react-stately/list': 3.11.0(react@18.3.1) - '@react-stately/menu': 3.8.3(react@18.3.1) - '@react-stately/numberfield': 3.9.7(react@18.3.1) - '@react-stately/overlays': 3.6.11(react@18.3.1) - '@react-stately/radio': 3.10.8(react@18.3.1) - '@react-stately/searchfield': 3.5.7(react@18.3.1) - '@react-stately/select': 3.6.8(react@18.3.1) - '@react-stately/selection': 3.17.0(react@18.3.1) - '@react-stately/slider': 3.5.8(react@18.3.1) - '@react-stately/table': 3.12.3(react@18.3.1) - '@react-stately/tabs': 3.6.10(react@18.3.1) - '@react-stately/toggle': 3.7.8(react@18.3.1) - '@react-stately/tooltip': 3.4.13(react@18.3.1) - '@react-stately/tree': 3.8.5(react@18.3.1) - '@react-types/shared': 3.25.0(react@18.3.1) + react-stately@3.34.0(react@18.3.1): + dependencies: + '@react-stately/calendar': 3.6.0(react@18.3.1) + '@react-stately/checkbox': 3.6.10(react@18.3.1) + '@react-stately/collections': 3.12.0(react@18.3.1) + '@react-stately/color': 3.8.1(react@18.3.1) + '@react-stately/combobox': 3.10.1(react@18.3.1) + '@react-stately/data': 3.12.0(react@18.3.1) + '@react-stately/datepicker': 3.11.0(react@18.3.1) + '@react-stately/disclosure': 3.0.0(react@18.3.1) + '@react-stately/dnd': 3.5.0(react@18.3.1) + '@react-stately/form': 3.1.0(react@18.3.1) + '@react-stately/list': 3.11.1(react@18.3.1) + '@react-stately/menu': 3.9.0(react@18.3.1) + '@react-stately/numberfield': 3.9.8(react@18.3.1) + '@react-stately/overlays': 3.6.12(react@18.3.1) + '@react-stately/radio': 3.10.9(react@18.3.1) + '@react-stately/searchfield': 3.5.8(react@18.3.1) + '@react-stately/select': 3.6.9(react@18.3.1) + '@react-stately/selection': 3.18.0(react@18.3.1) + '@react-stately/slider': 3.6.0(react@18.3.1) + '@react-stately/table': 3.13.0(react@18.3.1) + '@react-stately/tabs': 3.7.0(react@18.3.1) + '@react-stately/toggle': 3.8.0(react@18.3.1) + '@react-stately/tooltip': 3.5.0(react@18.3.1) + '@react-stately/tree': 3.8.6(react@18.3.1) + '@react-types/shared': 3.26.0(react@18.3.1) react: 18.3.1 react-test-renderer@18.3.1(react@18.3.1): @@ -23071,10 +24782,6 @@ snapshots: lodash: 4.17.21 tinycolor2: 1.6.0 - style-loader@3.3.4(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): - dependencies: - webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) - style-loader@3.3.4(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): dependencies: webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) @@ -23083,6 +24790,10 @@ snapshots: dependencies: webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) + style-loader@3.3.4(webpack@5.95.0): + dependencies: + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) + style-mod@4.1.2: {} style-to-object@0.4.4: @@ -23226,7 +24937,7 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - swc-loader@0.2.6(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + swc-loader@0.2.6(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0): dependencies: '@swc/core': 1.7.26(@swc/helpers@0.5.13) '@swc/counter': 0.1.3 @@ -23261,7 +24972,7 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 @@ -23419,6 +25130,27 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.25.9) esbuild: 0.23.1 + ts-node@10.9.2(@swc/core@1.7.26(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.11 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 22.7.5 + acorn: 8.13.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.5.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.26(@swc/helpers@0.5.13) + optional: true + ts-node@10.9.2(@swc/core@1.7.36(@swc/helpers@0.5.13))(@types/node@22.7.5)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -23939,9 +25671,9 @@ snapshots: webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) - '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) - '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4(webpack-dev-server@5.1.0)(webpack@5.95.0))(webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + '@webpack-cli/configtest': 2.1.1(webpack-cli@5.1.4)(webpack@5.95.0) + '@webpack-cli/info': 2.0.2(webpack-cli@5.1.4)(webpack@5.95.0) + '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.1.0)(webpack@5.95.0) colorette: 2.0.20 commander: 10.0.1 cross-spawn: 7.0.3 @@ -23975,7 +25707,7 @@ snapshots: optionalDependencies: webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) - webpack-dev-middleware@7.4.2(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): + webpack-dev-middleware@7.4.2(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): dependencies: colorette: 2.0.20 memfs: 4.14.0 @@ -23984,9 +25716,10 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) + optional: true - webpack-dev-middleware@7.4.2(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1)): + webpack-dev-middleware@7.4.2(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))): dependencies: colorette: 2.0.20 memfs: 4.14.0 @@ -23995,10 +25728,10 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) optional: true - webpack-dev-middleware@7.4.2(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))): + webpack-dev-middleware@7.4.2(webpack@5.95.0): dependencies: colorette: 2.0.20 memfs: 4.14.0 @@ -24007,8 +25740,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13)) - optional: true + webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) webpack-dev-server@5.1.0(webpack-cli@5.1.4)(webpack@5.95.0): dependencies: @@ -24038,7 +25770,7 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + webpack-dev-middleware: 7.4.2(webpack@5.95.0) ws: 8.18.0 optionalDependencies: webpack: 5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4) @@ -24165,7 +25897,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0) watchpack: 2.4.2 webpack-sources: 3.2.3 optionalDependencies: From 8e9af4dfb6fc5b9e45867dbe895e0cdff4e30293 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Tue, 26 Nov 2024 21:40:42 -0500 Subject: [PATCH 12/37] removed unneccessary key --- apps/docs/content/getting-started/overview/installation.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index 3aafc1c4f..210aa4807 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -15,10 +15,10 @@ Hopper supports flexible installation options tailored to different project type Select the path that best suits your setup: - + - + From b0884b000fbd499eac49d0b6909d5a9b08688e97 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Wed, 27 Nov 2024 09:26:44 -0500 Subject: [PATCH 13/37] upadated cardLink css --- apps/docs/components/cardLink/cardLink.css | 82 ++++++++++++++++--- apps/docs/components/cardLink/cardLink.tsx | 12 +-- .../docs/components/cardLink/cardLinkList.css | 5 ++ .../docs/components/cardLink/cardLinkList.tsx | 7 +- .../installation-path/react.mdx | 17 ++-- .../content/icons/overview/introduction.mdx | 14 ++-- 6 files changed, 100 insertions(+), 37 deletions(-) diff --git a/apps/docs/components/cardLink/cardLink.css b/apps/docs/components/cardLink/cardLink.css index 4ab9ba459..4f0b36ee6 100644 --- a/apps/docs/components/cardLink/cardLink.css +++ b/apps/docs/components/cardLink/cardLink.css @@ -1,6 +1,12 @@ +@property --angle { + syntax: ""; + initial-value: -45deg; + inherits: false; +} + .hd-cardlink { - --card-color: #564EA7; - --card-color-translucent: #3a3290aa; + --card-color: #332c7c; + --card-color-translucent: #c58d9baa; backdrop-filter: blur(2rem); background-color: var(--card-color); @@ -12,17 +18,45 @@ height: 21rem; overflow: hidden; position: relative; + padding: 2rem 0; +} + +.hd-cardlink:has(.hd-cardlink__logo) { padding: 0 0 2rem; } -.hd-cardlink:hover .hd-cardlink__logo, -.hd-cardlink:focus .hd-cardlink__logo { - opacity: 0.2; +.hd-cardlink--sm { + height: 12rem; +} + +.hd-cardlink:nth-child(3n) { + --card-color: #37345d; + --card-color-translucent: #a07ff1ba; +} + +.hd-cardlink:nth-child(2n) { + --card-color: #2b163a; + --card-color-translucent: #ffb0b045; } -.hd-cardlink--secondary { - --card-color: #506E9F; - --card-color-translucent: #375c96f7; +.hd-cardlink:nth-child(4n) { + --card-color: #2b2c5c; + --card-color-translucent: #ffb629bf; +} + +.hd-cardlink:nth-child(5n) { + --card-color: #382f58; + --card-color-translucent: #babeff91; +} + +.hd-cardlink:nth-child(6n) { + --card-color: #3e254d; + --card-color-translucent: #29ff9ee3; +} + +.hd-cardlink:nth-child(7n) { + --card-color: #432055; + --card-color-translucent: #4299ea91; } .hd-cardlink__logo { @@ -31,22 +65,41 @@ position: relative; scale: 2.5; transform-origin: 0 0; - transition: all .2s ease-in; z-index: -1; } -.hd-cardlink::before { +.hd-cardlink::before, +.hd-cardlink::after { aspect-ratio: 1/1; - background-image: linear-gradient(-45deg, var(--card-color) 50%, var(--card-color-translucent) 0); content: ""; filter: blur(3rem); height: 25rem; left: 0; position: absolute; top: 0; + transition: opacity 0.5s linear; transform: rotate(-144deg); width: 26rem; - z-index: -1; + z-index: -2; +} + +.hd-cardlink::before { + background-image: linear-gradient(var(--angle), var(--card-color) 50%, var(--card-color-translucent) 0) +} + +.hd-cardlink:hover::before, +.hd-cardlink:focus::before { + opacity: 0; +} + +.hd-cardlink::after { + background-image: linear-gradient(-25deg, var(--card-color) 50%, var(--card-color-translucent) 0);; + opacity: 0; +} + +.hd-cardlink:hover::after, +.hd-cardlink:focus::after { + opacity: 1; } .hd-cardlink h3 { @@ -60,6 +113,9 @@ } .hd-cardlink__copy { - margin-top: auto; padding: 0 2rem; } + +.hd-cardlink:has(.hd-cardlink__logo) .hd-cardlink__copy { + margin-top: auto; +} diff --git a/apps/docs/components/cardLink/cardLink.tsx b/apps/docs/components/cardLink/cardLink.tsx index 808456421..7d771995d 100644 --- a/apps/docs/components/cardLink/cardLink.tsx +++ b/apps/docs/components/cardLink/cardLink.tsx @@ -7,20 +7,22 @@ export interface CardLinkProps extends ComponentProps<"a">{ href: string; type: "primary" | "secondary"; title: string; - description: string; + size: "sm" | "md"; + description?: string; children: React.ReactNode; } -const CardLink = ({ children, className, title, type = "primary", description = "md", href, ...rest }: CardLinkProps) => { +const CardLink = ({ children, className, title, size = "md", type = "primary", description = "md", href, ...rest }: CardLinkProps) => { const cardLinkClass = clsx("hd-cardlink", { - [`hd-cardlink--${type}`]: type + [`hd-cardlink--${type}`]: type, + [`hd-cardlink--${size}`]: size }, className); return ( -
+ {children &&
{children} -
+
}

{title}

{description}

diff --git a/apps/docs/components/cardLink/cardLinkList.css b/apps/docs/components/cardLink/cardLinkList.css index d05beabac..50a2074b4 100644 --- a/apps/docs/components/cardLink/cardLinkList.css +++ b/apps/docs/components/cardLink/cardLinkList.css @@ -3,3 +3,8 @@ gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(23.75rem, 1fr)); } + +.hd-cardlink-list--sm { + gap: 1rem; + grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); +} diff --git a/apps/docs/components/cardLink/cardLinkList.tsx b/apps/docs/components/cardLink/cardLinkList.tsx index 1e383bc4f..50e0d6adb 100644 --- a/apps/docs/components/cardLink/cardLinkList.tsx +++ b/apps/docs/components/cardLink/cardLinkList.tsx @@ -3,10 +3,13 @@ import type { ComponentProps } from "react"; import "./cardLinkList.css"; -export interface CardLinkListProps extends ComponentProps<"div">{} +export interface CardLinkListProps extends ComponentProps<"div">{ + size: "sm" | "md"; +} -const CardLinkList = ({ children, className, ...rest }: CardLinkListProps) => { +const CardLinkList = ({ children, size = "md", className, ...rest }: CardLinkListProps) => { const cardLinkListClass = clsx("hd-cardlink-list", { + [`hd-cardlink-list--${size}`]: size }, className); return ( diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index d25b5c198..c7d1e6254 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -61,11 +61,12 @@ const Demo = () => { Explore advanced features of Hopper to unlock its full potential: {/* TODO */} -- [Icons](#): Use a rich library of icons in your applications. -- [Client Side Routing](#): Ensure seamless navigation with Hopper components. -- [Color Schemes](#): Implement and customize dark mode for your application seamlessly. -- [Internationalization](#): Build applications for multiple languages and locales. -- [Layout](#): Create responsive, accessible layouts. -- [Responsive Styles](#): Design interfaces that adapt to different screen sizes. -- [Slots](#): Extend and compose components flexibly. -- [Styling](#): Style components with Hopper's styled system and override defaults effortlessly. + + + + + + + + + diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index 666ffaff4..d4cc73c3c 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -9,15 +9,10 @@ Icons are an essential part of building intuitive and engaging user interfaces. ## Using Hopper Icons Hopper provides two main packages, giving you the flexibility to choose how to integrate icons into your project: -### React Icons Package -Designed specifically for React applications, this package offers all icons as React components. - -[Explore React Icon Components](/getting-started/individual-packages#icons) - -### SVG Icons Package -Ideal for non-React setups, this package provides raw SVG files. - -[Explore Static SVG Files](/getting-started/javascript#svg-icons) + + + + ## Choosing the Right Icons Hopper icons come in two styles to meet different design needs: @@ -35,3 +30,4 @@ Hopper icons come in two styles to meet different design needs: No matter the platform or design requirements, Hopper icons empower developers and designers to create polished, visually aligned interfaces. - [Designing an Icon](./designing-an-icon) + From da2001c8639091ad9f9225ed6553ba66438cb265 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Wed, 27 Nov 2024 11:15:50 -0500 Subject: [PATCH 14/37] reworked default tags --- apps/docs/components/cardLink/cardLink.css | 31 +++++++++++-------- apps/docs/components/cardLink/cardLink.tsx | 4 +-- .../installation-path/react.mdx | 2 +- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/apps/docs/components/cardLink/cardLink.css b/apps/docs/components/cardLink/cardLink.css index 4f0b36ee6..9207ad2c5 100644 --- a/apps/docs/components/cardLink/cardLink.css +++ b/apps/docs/components/cardLink/cardLink.css @@ -15,18 +15,18 @@ display: flex; flex-direction: column; flex: 1 1 auto; - height: 21rem; + height: 14rem; overflow: hidden; position: relative; padding: 2rem 0; } .hd-cardlink:has(.hd-cardlink__logo) { - padding: 0 0 2rem; + padding: 2rem 0; } .hd-cardlink--sm { - height: 12rem; + height: 10rem; } .hd-cardlink:nth-child(3n) { @@ -60,11 +60,12 @@ } .hd-cardlink__logo { - max-width: 6rem; + bottom: 0; + right: 0; + max-width: 10rem; opacity: 0.1; - position: relative; - scale: 2.5; - transform-origin: 0 0; + position: absolute; + scale: 1.5; z-index: -1; } @@ -102,20 +103,24 @@ opacity: 1; } -.hd-cardlink h3 { +.hd-cardlink__title { font-size: 1.5rem; } -.hd-cardlink p { +.hd-cardlink__description { font-size: 1.125rem; line-height: 1.5; margin-top: .75rem; } -.hd-cardlink__copy { - padding: 0 2rem; +.hd-cardlink--sm .hd-cardlink__title { + font-size: 1.25rem; } -.hd-cardlink:has(.hd-cardlink__logo) .hd-cardlink__copy { - margin-top: auto; +.hd-cardlink--sm .hd-cardlink__description { + font-size: 1rem; +} + +.hd-cardlink__copy { + padding: 0 2rem; } diff --git a/apps/docs/components/cardLink/cardLink.tsx b/apps/docs/components/cardLink/cardLink.tsx index 7d771995d..e913905ba 100644 --- a/apps/docs/components/cardLink/cardLink.tsx +++ b/apps/docs/components/cardLink/cardLink.tsx @@ -24,8 +24,8 @@ const CardLink = ({ children, className, title, size = "md", type = "primary", d {children}
}
-

{title}

-

{description}

+

{title}

+

{description}

); diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index c7d1e6254..e175add4a 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -68,5 +68,5 @@ Explore advanced features of Hopper to unlock its full potential: - + From bfbece628f5ffeb56c0586ffc8bf2c1d54de029b Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Wed, 27 Nov 2024 13:24:37 -0500 Subject: [PATCH 15/37] added expand component to documentatino --- apps/docs/.eslintrc.json | 1 + apps/docs/components/cardLink/cardLink.css | 10 ++-- .../docs/components/expand/Expand.stories.tsx | 26 ++++++++++ apps/docs/components/expand/Expand.tsx | 38 ++++++++++++++ apps/docs/components/expand/expand.css | 52 +++++++++++++++++++ .../components/icon/assets/right-angle.svg | 3 ++ apps/docs/components/icon/index.tsx | 47 ++++++----------- apps/docs/components/mdx/components.tsx | 2 + 8 files changed, 142 insertions(+), 37 deletions(-) create mode 100644 apps/docs/components/expand/Expand.stories.tsx create mode 100644 apps/docs/components/expand/Expand.tsx create mode 100644 apps/docs/components/expand/expand.css create mode 100644 apps/docs/components/icon/assets/right-angle.svg diff --git a/apps/docs/.eslintrc.json b/apps/docs/.eslintrc.json index 038c4e82c..76c1bb5c8 100644 --- a/apps/docs/.eslintrc.json +++ b/apps/docs/.eslintrc.json @@ -15,6 +15,7 @@ "CardLinkList": true, "Callout": true, "Collapsible": true, + "Expand": true, "TokenTable": true, "MotionPreview": true, "Footnote": true, diff --git a/apps/docs/components/cardLink/cardLink.css b/apps/docs/components/cardLink/cardLink.css index 9207ad2c5..c0008ceb2 100644 --- a/apps/docs/components/cardLink/cardLink.css +++ b/apps/docs/components/cardLink/cardLink.css @@ -10,7 +10,7 @@ backdrop-filter: blur(2rem); background-color: var(--card-color); - border-radius: 1rem; + border-radius: var(--hd-border-radius-lg); color: var(--hd-white); display: flex; flex-direction: column; @@ -18,11 +18,11 @@ height: 14rem; overflow: hidden; position: relative; - padding: 2rem 0; + padding: var(--hd-space-4) 0; } .hd-cardlink:has(.hd-cardlink__logo) { - padding: 2rem 0; + padding: var(--hd-space-4) 0; } .hd-cardlink--sm { @@ -110,7 +110,7 @@ .hd-cardlink__description { font-size: 1.125rem; line-height: 1.5; - margin-top: .75rem; + margin-top: var(--hd-space-2); } .hd-cardlink--sm .hd-cardlink__title { @@ -122,5 +122,5 @@ } .hd-cardlink__copy { - padding: 0 2rem; + padding: 0 var(--hd-space-4); } diff --git a/apps/docs/components/expand/Expand.stories.tsx b/apps/docs/components/expand/Expand.stories.tsx new file mode 100644 index 000000000..102d4ce39 --- /dev/null +++ b/apps/docs/components/expand/Expand.stories.tsx @@ -0,0 +1,26 @@ +import type { Meta, StoryObj } from "@storybook/react"; + +import Expand from "./Expand.tsx"; + +const meta = { + title: "components/Expand", + component: Expand +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: { + title: "Label", + children: "Content of the expand", + className: "custom-class" + } +}; + +export const Open: Story = { + args: { + ...Default.args, + defaultExpanded: true + } +}; diff --git a/apps/docs/components/expand/Expand.tsx b/apps/docs/components/expand/Expand.tsx new file mode 100644 index 000000000..294276552 --- /dev/null +++ b/apps/docs/components/expand/Expand.tsx @@ -0,0 +1,38 @@ +"use client"; + +import { Icon, RightAngleIcon } from "@/components/icon"; +import clsx from "clsx"; +import type { ReactNode } from "react"; +import { Button, Disclosure, DisclosurePanel, Heading, composeRenderProps, type DisclosureProps } from "react-aria-components"; + +import "./expand.css"; + +export interface ExpandProps extends DisclosureProps { + title: ReactNode; +} + +const Expand = ({ title, className, children: childrenProp, ...rest }: ExpandProps) => { + const children = composeRenderProps(childrenProp, prev => { + return prev; + }); + + return ( + + {disclosureRenderProps => ( + <> + + + + +
{children(disclosureRenderProps)}
+
+ + )} +
+ ); +}; + +export default Expand; diff --git a/apps/docs/components/expand/expand.css b/apps/docs/components/expand/expand.css new file mode 100644 index 000000000..eb7aa677f --- /dev/null +++ b/apps/docs/components/expand/expand.css @@ -0,0 +1,52 @@ +.hd-expand { + border: var(--hd-border-size) solid transparent; + border-radius: var(--hd-border-radius-sm); +} + +.hd-expand[data-expanded] { + border: var(--hd-border-size) solid var(--hd-color-neutral-border); +} + +.hd-expand[data-focus-visible-within] .hd-expand__trigger { + box-shadow: none; +} + +.hd-expand__trigger { + align-items: center; + background-color: transparent; + border: none; + display: flex; + gap: var(--hd-space-1); + padding: var(--hd-space-1); + width: 100% +} + +.hd-expand__trigger:hover { + cursor: pointer; +} + +.hd-expand__trigger:focus-visible { + box-shadow: none; +} + +.hd-expand[data-focus-visible-within] { + border: var(--hd-border-size) solid var(--hd-color-accent-border); +} + +.hd-expand__trigger-icon { + fill: var(--hd-color-neutral-icon); + transition: transform 0.1s linear; +} + +.hd-expand[data-expanded] .hd-expand__trigger-icon { + transform: rotate(90deg); +} + +.hd-expand__panel { + font-size: 0.875rem; +} + +.hd-expand__content { + color: var(--hd-color-neutral-text); + padding: var(--hd-space-1) calc(var(--hd-space-3) + 0.25rem); +} diff --git a/apps/docs/components/icon/assets/right-angle.svg b/apps/docs/components/icon/assets/right-angle.svg new file mode 100644 index 000000000..a15ca69a5 --- /dev/null +++ b/apps/docs/components/icon/assets/right-angle.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/docs/components/icon/index.tsx b/apps/docs/components/icon/index.tsx index 57e82c0c4..76d66e7b4 100644 --- a/apps/docs/components/icon/index.tsx +++ b/apps/docs/components/icon/index.tsx @@ -1,55 +1,38 @@ import AccessibleIcon from "./assets/accessible.svg"; import ArrowIcon from "./assets/arrow.svg"; +import CheckIcon from "./assets/check.svg"; +import CodeIcon from "./assets/code.svg"; +import CollapseIcon from "./assets/collapse.svg"; import ComponentIcon from "./assets/component.svg"; import DarkModeIcon from "./assets/dark-mode.svg"; +import EmptyComponent from "./assets/empty-component.svg"; +import ErrorIcon from "./assets/error.svg"; import ExternalLinkIcon from "./assets/external-link.svg"; import FontSizeIcon from "./assets/font-size.svg"; import GithubIcon from "./assets/github.svg"; +import InfoIcon from "./assets/info.svg"; import InternationalIcon from "./assets/international.svg"; import LineHeightIcon from "./assets/line-height.svg"; import MarginIcon from "./assets/margin.svg"; +import MessageIcon from "./assets/message.svg"; import NpmIcon from "./assets/npm.svg"; +import ProductMenuIcon from "./assets/product-menu.svg"; +import RightAngleIcon from "./assets/right-angle.svg"; import SelectArrowIcon from "./assets/select-arrow.svg"; import TokenIcon from "./assets/tokens.svg"; import TypescriptIcon from "./assets/typescript.svg"; -import CollapseIcon from "./assets/collapse.svg"; -import CodeIcon from "./assets/code.svg"; -import EmptyComponent from "./assets/empty-component.svg"; -import CheckIcon from "./assets/check.svg"; -import ErrorIcon from "./assets/error.svg"; -import InfoIcon from "./assets/info.svg"; -import MessageIcon from "./assets/message.svg"; -import WarningIcon from "./assets/warning.svg"; import WaiAriaIcon from "./assets/wai-aria.svg"; -import ProductMenuIcon from "./assets/product-menu.svg"; +import WarningIcon from "./assets/warning.svg"; import Icon, { type IconProps } from "./Icon.tsx"; export { AccessibleIcon, - ArrowIcon, - ComponentIcon, - DarkModeIcon, - ExternalLinkIcon, + ArrowIcon, CheckIcon, CodeIcon, CollapseIcon, ComponentIcon, + DarkModeIcon, EmptyComponent, ErrorIcon, ExternalLinkIcon, FontSizeIcon, - GithubIcon, - InternationalIcon, + GithubIcon, Icon, IconProps, InfoIcon, InternationalIcon, LineHeightIcon, - MarginIcon, - NpmIcon, - SelectArrowIcon, - TokenIcon, - CollapseIcon, - CodeIcon, - TypescriptIcon, - EmptyComponent, - CheckIcon, - ErrorIcon, - InfoIcon, - MessageIcon, - WarningIcon, - WaiAriaIcon, - ProductMenuIcon, - Icon, - IconProps + MarginIcon, MessageIcon, NpmIcon, ProductMenuIcon, RightAngleIcon, SelectArrowIcon, + TokenIcon, TypescriptIcon, WaiAriaIcon, WarningIcon }; diff --git a/apps/docs/components/mdx/components.tsx b/apps/docs/components/mdx/components.tsx index 193378ec6..608a2780d 100644 --- a/apps/docs/components/mdx/components.tsx +++ b/apps/docs/components/mdx/components.tsx @@ -15,6 +15,7 @@ import Card from "@/components/card/Card.tsx"; import CardLink from "@/components/cardLink/cardLink.tsx"; import CardLinkList from "@/components/cardLink/cardLinkList.tsx"; import InlineCode from "@/components/code/InlineCode.tsx"; +import Expand from "@/components/expand/Expand.tsx"; import Footnote from "@/components/footnote/Footnote.tsx"; import NextImage from "@/components/image/Image.tsx"; import MotionPreview from "@/components/motionPreview/MotionPreview.tsx"; @@ -49,6 +50,7 @@ export const components = { CardLinkList, code: InlineCode, Callout: Callout, + Expand, Image: NextImage, pre: Pre, Tag, From 2977dbf7e919429aa5e0d506f83507af73e3db0a Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Wed, 27 Nov 2024 14:12:53 -0500 Subject: [PATCH 16/37] add guides navigation --- apps/docs/app/getting-started/layout.tsx | 4 +- apps/docs/app/guides/[...slug]/page.tsx | 14 ++-- apps/docs/app/guides/layout.tsx | 36 ++++---- apps/docs/configs/navigation.ts | 5 ++ .../guides/customization/components.mdx | 84 +++++++++++++++++++ apps/docs/content/guides/introduction.mdx | 7 ++ 6 files changed, 125 insertions(+), 25 deletions(-) create mode 100644 apps/docs/content/guides/customization/components.mdx create mode 100644 apps/docs/content/guides/introduction.mdx diff --git a/apps/docs/app/getting-started/layout.tsx b/apps/docs/app/getting-started/layout.tsx index 738261edd..ecf4ea364 100644 --- a/apps/docs/app/getting-started/layout.tsx +++ b/apps/docs/app/getting-started/layout.tsx @@ -10,7 +10,7 @@ import { allGettingStarteds } from "contentlayer/generated"; import { useSelectedLayoutSegment } from "next/navigation"; import type { ReactNode } from "react"; -export default function TokenLayout({ children }: { children: ReactNode }) { +export default function GettingStartedLayout({ children }: { children: ReactNode }) { const selectedLayoutSegment = useSelectedLayoutSegment(); const [section, type] = selectedLayoutSegment?.split("/") ?? ["", ""]; @@ -21,7 +21,7 @@ export default function TokenLayout({ children }: { children: ReactNode }) { const sectionLinks = getSectionLinks(pageContent); const allGettingStartedsLinks = getPageLinks(allGettingStarteds, { - order: ["overview", "installation-path"] + order: ["overview", "installation-path", "advanced-options"] }); return ( diff --git a/apps/docs/app/guides/[...slug]/page.tsx b/apps/docs/app/guides/[...slug]/page.tsx index afddb894a..ee7d9d7a9 100644 --- a/apps/docs/app/guides/[...slug]/page.tsx +++ b/apps/docs/app/guides/[...slug]/page.tsx @@ -7,19 +7,21 @@ import Mdx from "@/components/mdx/Mdx.tsx"; interface PageProps { params: { - slug: string; + slug: string[]; }; } export async function generateStaticParams() { - return allGuides.map(({ slug, section }) => ({ - slug: [section, slug] - })); + return allGuides.map(({ slug, section }) => { + return ({ + slug: [slug, section] + }); + }); } export default function GuidePage({ params }: PageProps) { - const [section, type] = params.slug; - const guides = allGuides.find(icon => icon.slug === type && icon.section === section); + const [section, type] = params.slug.length === 1 ? ["guides", ...params.slug] : params.slug; + const guides = allGuides.find(guide => guide.slug === type && guide.section === section); if (!guides) { notFound(); diff --git a/apps/docs/app/guides/layout.tsx b/apps/docs/app/guides/layout.tsx index 47ed7456c..4e9745e05 100644 --- a/apps/docs/app/guides/layout.tsx +++ b/apps/docs/app/guides/layout.tsx @@ -1,18 +1,22 @@ "use client"; -import type { ReactNode } from "react"; -import { allGuides } from "contentlayer/generated"; -import { useSelectedLayoutSegment } from "next/navigation"; +import getPageLinks from "@/app/lib/getPageLinks"; +import getSectionLinks from "@/app/lib/getSectionLinks"; import Sidebar from "@/app/ui/layout/sidebar/Sidebar"; -import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; import SubHeader from "@/app/ui/layout/subHeader/SubHeader"; -import getSectionLinks from "@/app/lib/getSectionLinks"; +import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; import { SidebarProvider } from "@/context/sidebar/SidebarProvider"; -import getPageLinks from "@/app/lib/getPageLinks"; +import { allGuides } from "contentlayer/generated"; +import { useSelectedLayoutSegment } from "next/navigation"; +import type { ReactNode } from "react"; -export default function TokenLayout({ children }: { children: ReactNode }) { +export default function GuideLayout({ children }: { children: ReactNode }) { const selectedLayoutSegment = useSelectedLayoutSegment(); - const [section, type] = selectedLayoutSegment?.split("/") ?? ["", ""]; + let segments = selectedLayoutSegment?.split("/") ?? ["", ""]; + if (segments.length === 1) { + segments = ["guides", ...segments]; + } + const [section, type] = segments; const pageContent = allGuides.find(icon => icon.slug === type && icon.section === section); @@ -24,14 +28,12 @@ export default function TokenLayout({ children }: { children: ReactNode }) { const allGuidesLinks = getPageLinks(allGuides); return ( - <> - - - - - {children} - - - + + + + + {children} + + ); } diff --git a/apps/docs/configs/navigation.ts b/apps/docs/configs/navigation.ts index bfdc2dc53..731b8555a 100644 --- a/apps/docs/configs/navigation.ts +++ b/apps/docs/configs/navigation.ts @@ -20,6 +20,11 @@ export const navigation: NavItem[] = [ "path": "/icons/overview/introduction", "status": "ready" }, + { + "label": "Guides", + "path": "/guides/introduction", + "status": "ready" + }, { "label": "Components", "path": "/components/component-list", diff --git a/apps/docs/content/guides/customization/components.mdx b/apps/docs/content/guides/customization/components.mdx new file mode 100644 index 000000000..6b1bac22c --- /dev/null +++ b/apps/docs/content/guides/customization/components.mdx @@ -0,0 +1,84 @@ +--- +title: Customizing Components +description: Learn how to customize Hopper components to meet your product needs. +order: 1 +--- + +Hopper components are built with well-considered defaults that meet common product needs. + However, we understand that product teams often move quickly, iterating at a pace that can move faster than design system updates. + As this article on [pace layering](https://bigmedium.com/ideas/design-system-pace-layers-slow-fast.html) explains, it's natural for design systems to evolve more slowly than the products they support. + Rather than being a bottleneck, this approach keeps our design system stable and reliable. + To support fast-paced product development, Hopper provides a range of options for customization, + from simple styling adjustments to creating entirely new components. + +## Customization Principles + +The Hopper design systems are built on the principle that “components are designed to be overridden, not locked-in.” This allows developers to adjust styles and behaviors to meet specific product needs, while ensuring components remain usable and adaptable. + +There are multiple customization methods available, and to highlight why some are better suited than others, I’ve organized them into four tiers: + +🥇**Gold Tier:** Maximize reuse of the Design System, applying only minimal overwrites to fit your needs. + +🥈**Silver Tier:** Reuse most of the component’s behaviors. + +🥉**Bronze Tier:** Reassemble the component’s behavior using smaller utility methods. + +🤷**Do it yourself:** Build the behavior from scratch and use low-level styling tools as needed + +## Customization Methods Overview + +Here's an overview of the different customization methods: + +- 🥇 [Direct styling adjustments](#customization-methods-details--direct-styling-adjustments): You can use CSS Classes or the styling props on existing Design System Components to alter the style as needed. + +- 🥇 [Behavior modifications](#customization-methods-details--behavior-modifications): You can use ref, callbacks and controlled properties to modify its behavior. + +- 🥈 [Copying component](#customization-methods-details--copying-component): Copy the component code inside your codebase and modify it. + +- 🥈 [Custom components using base components](#customization-methods-details--custom-components-using-base-components): Create a new component on top of Design System base components or React Aria Components. + +- 🥉 [Custom components using hooks](#customization-methods-details--custom-components-using-hooks): Create a new component on top of Design System hooks or React Aria hooks. + +- 🛠️ [Building components from scratch](#customization-methods-details--building-components-from-scratch): Create a component from scratch and leveraging Design Tokens if possible + +## Customization Methods Details + +These customization options provide product teams with the flexibility to adapt Hopper components to specific requirements, without sacrificing consistency. By using this range of customization methods, teams can meet product goals efficiently while maintaining the benefits of a unified design system. These customization methods are presented in the order you should consider when evaluating your options, with details provided in the sections below. + +### 🥇 Direct styling adjustments + +For straightforward customization needs, you can make adjustments directly by passing style-related props, adding CSS classes, or setting up refs for access to component elements. This approach allows you to override specific styles while keeping the component's behavior and overall styling intact. + +### 🥇 Behavior modifications + +To customize a component's behavior, use refs, callbacks and controlled properties. This approach is useful for interactive features and for modifying default component behavior. This approach is ideal when you need to adjust how a component responds to user interactions without altering its visual style or structure. Read more about Controlled vs Uncontrolled components [here](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components). + +### 🥈 Copying component + +When you need extensive customizations that go beyond simple styling or behavior adjustments, copying the component code can be an effective solution. This allows you to make specific changes while retaining the existing structure, making the customized component reusable across similar use cases. + +Link to [Hopper's components](https://github.com/gsoft-inc/wl-hopper/tree/main/packages/components) + +### 🥈 Custom components using base components + +If the existing Design System component feels too complex for your needs, take a closer look at its underlying structure in the code. In Hopper, it's likely built on a [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) component, which you can directly leverage to create a more tailored solution. React Aria offers a robust library of foundational components, making it a versatile starting point. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components. + +💡[Need Help Getting Started?](#need-help-getting-started) + +### 🥉 Custom components using hooks + +If there is no base components to use, or if the base component is again too strict for you needs, you can use underlying hooks for more granular control. [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) also offer hooks that you can tailor components more precisely to your needs. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components + +💡[Need Help Getting Started?](#need-help-getting-started) + +### 🛠️ Building components from scratch + +For unique needs that go beyond the capabilities of design system components, building a component from scratch may be necessary. At this point, the only recommendation we can give is to refer to the [WAI Aria Patterns](https://www.w3.org/WAI/ARIA/apg/patterns/) or [Spec](https://www.w3.org/WAI/ARIA/apg/) to determine the expected behavior of controls. Using this approach you will have to style the entire component, which is fine. Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! + +💡[Need Help Getting Started?](#need-help-getting-started) + +## Need Help Getting Started? + +Even if you're not using Design System components, we're here to help! The Design System team has deep expertise in React Aria and is eager to collaborate with you. + +💡Let's brainstorm together! Reach out to us in **#ds-hopper** for guidance, ideas, or support in finding the perfect starting point for your project. diff --git a/apps/docs/content/guides/introduction.mdx b/apps/docs/content/guides/introduction.mdx new file mode 100644 index 000000000..7aeee17dc --- /dev/null +++ b/apps/docs/content/guides/introduction.mdx @@ -0,0 +1,7 @@ +--- +title: Introduction +description: Learn about the Hopper design system and how to use it in your projects. +order: 1 +--- + +WIP From d5a38c4b34f051f38c0aaedc6a6fa8da506d2925 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Wed, 27 Nov 2024 15:30:51 -0500 Subject: [PATCH 17/37] update guides --- apps/docs/app/guides/layout.tsx | 4 +- apps/docs/components/callout/callout.css | 3 + apps/docs/configs/navigation.ts | 2 +- .../{customization => guides}/components.mdx | 94 ++++++++++++++++++- .../guides/{css => guides}/text-crop.mdx | 2 +- apps/docs/content/guides/introduction.mdx | 7 -- .../content/guides/overview/introduction.mdx | 17 ++++ 7 files changed, 115 insertions(+), 14 deletions(-) rename apps/docs/content/guides/{customization => guides}/components.mdx (67%) rename apps/docs/content/guides/{css => guides}/text-crop.mdx (99%) delete mode 100644 apps/docs/content/guides/introduction.mdx create mode 100644 apps/docs/content/guides/overview/introduction.mdx diff --git a/apps/docs/app/guides/layout.tsx b/apps/docs/app/guides/layout.tsx index 4e9745e05..57a0d0d5c 100644 --- a/apps/docs/app/guides/layout.tsx +++ b/apps/docs/app/guides/layout.tsx @@ -25,7 +25,9 @@ export default function GuideLayout({ children }: { children: ReactNode }) { } const sectionLinks = getSectionLinks(pageContent); - const allGuidesLinks = getPageLinks(allGuides); + const allGuidesLinks = getPageLinks(allGuides, { + order: ["overview", "guides"] + }); return ( diff --git a/apps/docs/components/callout/callout.css b/apps/docs/components/callout/callout.css index ced650d8f..e89561599 100644 --- a/apps/docs/components/callout/callout.css +++ b/apps/docs/components/callout/callout.css @@ -18,6 +18,9 @@ } .hd-callout__icon { + align-self: flex-start; + margin-top: 0.25rem; + flex-shrink: 0; color: var(--hd-callout-icon-color); } diff --git a/apps/docs/configs/navigation.ts b/apps/docs/configs/navigation.ts index 731b8555a..c3447e3f3 100644 --- a/apps/docs/configs/navigation.ts +++ b/apps/docs/configs/navigation.ts @@ -22,7 +22,7 @@ export const navigation: NavItem[] = [ }, { "label": "Guides", - "path": "/guides/introduction", + "path": "/guides/overview/introduction", "status": "ready" }, { diff --git a/apps/docs/content/guides/customization/components.mdx b/apps/docs/content/guides/guides/components.mdx similarity index 67% rename from apps/docs/content/guides/customization/components.mdx rename to apps/docs/content/guides/guides/components.mdx index 6b1bac22c..1eef45e69 100644 --- a/apps/docs/content/guides/customization/components.mdx +++ b/apps/docs/content/guides/guides/components.mdx @@ -1,7 +1,7 @@ --- title: Customizing Components description: Learn how to customize Hopper components to meet your product needs. -order: 1 +order: 3 --- Hopper components are built with well-considered defaults that meet common product needs. @@ -23,7 +23,7 @@ There are multiple customization methods available, and to highlight why some ar 🥉**Bronze Tier:** Reassemble the component’s behavior using smaller utility methods. -🤷**Do it yourself:** Build the behavior from scratch and use low-level styling tools as needed +🛠️**Do it yourself:** Build the behavior from scratch and use low-level styling tools as needed ## Customization Methods Overview @@ -49,15 +49,93 @@ These customization options provide product teams with the flexibility to adapt For straightforward customization needs, you can make adjustments directly by passing style-related props, adding CSS classes, or setting up refs for access to component elements. This approach allows you to override specific styles while keeping the component's behavior and overall styling intact. + +#### Styled System Props + +Adjust properties such as `backgroundColor`, `width`, or `padding` directly on the component. + +```tsx + +``` + +#### CSS Classes + +Append custom CSS classes to modify styles. + +```tsx + +``` + + + +```tsx +export function AICard({ children, className, ...rest }: CardProps) { + const classNames = clsx(className, "ai-gradiant-border"); + return ( + + {children} + + ); +} +``` + + ### 🥇 Behavior modifications To customize a component's behavior, use refs, callbacks and controlled properties. This approach is useful for interactive features and for modifying default component behavior. This approach is ideal when you need to adjust how a component responds to user interactions without altering its visual style or structure. Read more about Controlled vs Uncontrolled components [here](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components). + +#### Refs for Direct Access +Use refs to access and interact with elements within a component. + +```tsx + + Earth + +``` + +#### Event Callbacks +Add event handlers for more control, ensuring events continue propagating as expected. + +```tsx + +``` + +#### Controlled Properties +You can control the component's behavior by passing a controlled property. + +```tsx + +``` + + + + +```tsx +function MyCustomButtonPopoverTrigger({ children, ...rest }: PopoverTriggerProps) { + const ref = useRef(); + const isHovered = useHover(ref); + return ( + + + {children} + + ); +} +``` + + ### 🥈 Copying component When you need extensive customizations that go beyond simple styling or behavior adjustments, copying the component code can be an effective solution. This allows you to make specific changes while retaining the existing structure, making the customized component reusable across similar use cases. -Link to [Hopper's components](https://github.com/gsoft-inc/wl-hopper/tree/main/packages/components) +Take a look to [Hopper's components source code](https://github.com/gsoft-inc/wl-hopper/tree/main/packages/components) + + +**Encountering Design System Limitations?** +

If you need to copy a component due to a design system constraints, let us know! Frequent requests may lead to updates, allowing you to replace your custom component with an official version in the future. +

Share your needs in **#ds-hopper!** +
### 🥈 Custom components using base components @@ -65,12 +143,20 @@ If the existing Design System component feels too complex for your needs, take a 💡[Need Help Getting Started?](#need-help-getting-started) + +Using this approach may require you to restyle the entire component, which is fine. At this stage, you’re essentially creating something new! Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! + + ### 🥉 Custom components using hooks -If there is no base components to use, or if the base component is again too strict for you needs, you can use underlying hooks for more granular control. [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) also offer hooks that you can tailor components more precisely to your needs. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components +If there is no base components to use, or if the base component is again too strict for you needs, you can use underlying hooks for more granular control. [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) also offer hooks that you can tailor components more precisely to your needs. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components. 💡[Need Help Getting Started?](#need-help-getting-started) + +Using this approach may require you to restyle the entire component, which is fine. At this stage, you’re essentially creating something new! Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! + + ### 🛠️ Building components from scratch For unique needs that go beyond the capabilities of design system components, building a component from scratch may be necessary. At this point, the only recommendation we can give is to refer to the [WAI Aria Patterns](https://www.w3.org/WAI/ARIA/apg/patterns/) or [Spec](https://www.w3.org/WAI/ARIA/apg/) to determine the expected behavior of controls. Using this approach you will have to style the entire component, which is fine. Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! diff --git a/apps/docs/content/guides/css/text-crop.mdx b/apps/docs/content/guides/guides/text-crop.mdx similarity index 99% rename from apps/docs/content/guides/css/text-crop.mdx rename to apps/docs/content/guides/guides/text-crop.mdx index 54ade9b0c..1b2c09fcd 100644 --- a/apps/docs/content/guides/css/text-crop.mdx +++ b/apps/docs/content/guides/guides/text-crop.mdx @@ -1,7 +1,7 @@ --- title: Text Crop description: A technique to crop the whitespace above and below text to make it appear more centered. -order: 1 +order: 2 --- Every web font includes whitespace above and below the text, while useful in some instances, it can be a problem when vertically centering text or aligning text with other elements. This problem arises when a font has uneven whitespace. This is especially true when using a typeface with a large x-height, like *ABC Favorit*. diff --git a/apps/docs/content/guides/introduction.mdx b/apps/docs/content/guides/introduction.mdx deleted file mode 100644 index 7aeee17dc..000000000 --- a/apps/docs/content/guides/introduction.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Introduction -description: Learn about the Hopper design system and how to use it in your projects. -order: 1 ---- - -WIP diff --git a/apps/docs/content/guides/overview/introduction.mdx b/apps/docs/content/guides/overview/introduction.mdx new file mode 100644 index 000000000..a4f5c31d0 --- /dev/null +++ b/apps/docs/content/guides/overview/introduction.mdx @@ -0,0 +1,17 @@ +--- +title: Introduction +description: Learn about the Hopper design system and how to use it in your projects. +order: 1 +--- + +Welcome to our growing library of guides for mastering Hopper. These resources are here to help you unlock the full potential of our design systems, with tips, techniques, and best practices for styling and customization. + +## Current Guides + +- **Text Crop**: Discover how to achieve perfect vertical text alignment with our Text Crop guide. Learn how to compensate for uneven whitespace in web fonts and improve the appearance of your text using simple, effective CSS techniques. [Learn more about Text Crop](./guides/text-crop) +- **Customizing Components**: Explore the flexibility of Hopper and Orbiter with our Customizing Components guide. This article introduces various customization options, from minimal styling adjustments to building entirely new components, categorized into distinct tiers to help you make the best choice for your needs. [Learn more about Customizing Components](./guides/components) + +## Stay Tuned for More! + +This page will continue to grow as we add more guides and tutorials. Whether you’re looking to refine styles, extend functionality, or dive deep into Hopper’s advanced features, you’ll find everything you need right here. + From c68ec996b24a80cf5a1ad2966dfcb191f0a75475 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Thu, 28 Nov 2024 12:12:09 -0500 Subject: [PATCH 18/37] fix 404 and move guides under getting started --- apps/docs/app/getting-started/layout.tsx | 6 +++--- apps/docs/app/guides/layout.tsx | 4 ++-- apps/docs/app/icons/layout.tsx | 12 ++++++------ apps/docs/app/tokens/layout.tsx | 12 ++++++------ apps/docs/configs/navigation.ts | 5 ----- .../guides/components.mdx | 2 +- .../guides/text-crop.mdx | 0 .../getting-started/overview/installation.mdx | 7 +++++++ .../content/guides/overview/introduction.mdx | 17 ----------------- 9 files changed, 25 insertions(+), 40 deletions(-) rename apps/docs/content/{guides => getting-started}/guides/components.mdx (99%) rename apps/docs/content/{guides => getting-started}/guides/text-crop.mdx (100%) delete mode 100644 apps/docs/content/guides/overview/introduction.mdx diff --git a/apps/docs/app/getting-started/layout.tsx b/apps/docs/app/getting-started/layout.tsx index ecf4ea364..376079204 100644 --- a/apps/docs/app/getting-started/layout.tsx +++ b/apps/docs/app/getting-started/layout.tsx @@ -7,7 +7,7 @@ import SubHeader from "@/app/ui/layout/subHeader/SubHeader"; import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; import { SidebarProvider } from "@/context/sidebar/SidebarProvider"; import { allGettingStarteds } from "contentlayer/generated"; -import { useSelectedLayoutSegment } from "next/navigation"; +import { notFound, useSelectedLayoutSegment } from "next/navigation"; import type { ReactNode } from "react"; export default function GettingStartedLayout({ children }: { children: ReactNode }) { @@ -16,12 +16,12 @@ export default function GettingStartedLayout({ children }: { children: ReactNode const pageContent = allGettingStarteds.find(page => page.slug === type && page.section === section); if (!pageContent) { - return null; + return notFound(); } const sectionLinks = getSectionLinks(pageContent); const allGettingStartedsLinks = getPageLinks(allGettingStarteds, { - order: ["overview", "installation-path", "advanced-options"] + order: ["overview", "installation-path", "advanced-options", "guides"] }); return ( diff --git a/apps/docs/app/guides/layout.tsx b/apps/docs/app/guides/layout.tsx index 57a0d0d5c..b05eb7d8f 100644 --- a/apps/docs/app/guides/layout.tsx +++ b/apps/docs/app/guides/layout.tsx @@ -7,7 +7,7 @@ import SubHeader from "@/app/ui/layout/subHeader/SubHeader"; import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; import { SidebarProvider } from "@/context/sidebar/SidebarProvider"; import { allGuides } from "contentlayer/generated"; -import { useSelectedLayoutSegment } from "next/navigation"; +import { notFound, useSelectedLayoutSegment } from "next/navigation"; import type { ReactNode } from "react"; export default function GuideLayout({ children }: { children: ReactNode }) { @@ -21,7 +21,7 @@ export default function GuideLayout({ children }: { children: ReactNode }) { const pageContent = allGuides.find(icon => icon.slug === type && icon.section === section); if (!pageContent) { - return null; + return notFound(); } const sectionLinks = getSectionLinks(pageContent); diff --git a/apps/docs/app/icons/layout.tsx b/apps/docs/app/icons/layout.tsx index 21736e6c7..1cac53f64 100644 --- a/apps/docs/app/icons/layout.tsx +++ b/apps/docs/app/icons/layout.tsx @@ -1,14 +1,14 @@ "use client"; -import type { ReactNode } from "react"; -import { allIcons } from "contentlayer/generated"; -import { useSelectedLayoutSegment } from "next/navigation"; +import getPageLinks from "@/app/lib/getPageLinks"; +import getSectionLinks from "@/app/lib/getSectionLinks"; import Sidebar from "@/app/ui/layout/sidebar/Sidebar"; import SubHeader from "@/app/ui/layout/subHeader/SubHeader"; import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; -import getSectionLinks from "@/app/lib/getSectionLinks"; import { SidebarProvider } from "@/context/sidebar/SidebarProvider"; -import getPageLinks from "@/app/lib/getPageLinks"; +import { allIcons } from "contentlayer/generated"; +import { notFound, useSelectedLayoutSegment } from "next/navigation"; +import type { ReactNode } from "react"; export default function TokenLayout({ children }: { children: ReactNode }) { const selectedLayoutSegment = useSelectedLayoutSegment(); @@ -17,7 +17,7 @@ export default function TokenLayout({ children }: { children: ReactNode }) { const pageContent = allIcons.find(icon => icon.slug === type && icon.section === section); if (!pageContent) { - return null; + return notFound; } const sectionLinks = getSectionLinks(pageContent); diff --git a/apps/docs/app/tokens/layout.tsx b/apps/docs/app/tokens/layout.tsx index eb63e6507..5244ece19 100644 --- a/apps/docs/app/tokens/layout.tsx +++ b/apps/docs/app/tokens/layout.tsx @@ -1,14 +1,14 @@ "use client"; -import type { ReactNode } from "react"; -import { allTokens } from "contentlayer/generated"; -import { useSelectedLayoutSegment } from "next/navigation"; +import getPageLinks from "@/app/lib/getPageLinks"; +import getSectionLinks from "@/app/lib/getSectionLinks"; import Sidebar from "@/app/ui/layout/sidebar/Sidebar"; import SubHeader from "@/app/ui/layout/subHeader/SubHeader"; import Wrapper from "@/app/ui/layout/wrapper/Wrapper"; import { SidebarProvider } from "@/context/sidebar/SidebarProvider"; -import getSectionLinks from "@/app/lib/getSectionLinks"; -import getPageLinks from "@/app/lib/getPageLinks"; +import { allTokens } from "contentlayer/generated"; +import { notFound, useSelectedLayoutSegment } from "next/navigation"; +import type { ReactNode } from "react"; export default function TokenLayout({ children }: { children: ReactNode }) { const selectedLayoutSegment = useSelectedLayoutSegment(); @@ -17,7 +17,7 @@ export default function TokenLayout({ children }: { children: ReactNode }) { const pageContent = allTokens.find(token => token.slug === type && token.section === section); if (!pageContent) { - return null; + return notFound; } const sectionLinks = getSectionLinks(pageContent); diff --git a/apps/docs/configs/navigation.ts b/apps/docs/configs/navigation.ts index c3447e3f3..bfdc2dc53 100644 --- a/apps/docs/configs/navigation.ts +++ b/apps/docs/configs/navigation.ts @@ -20,11 +20,6 @@ export const navigation: NavItem[] = [ "path": "/icons/overview/introduction", "status": "ready" }, - { - "label": "Guides", - "path": "/guides/overview/introduction", - "status": "ready" - }, { "label": "Components", "path": "/components/component-list", diff --git a/apps/docs/content/guides/guides/components.mdx b/apps/docs/content/getting-started/guides/components.mdx similarity index 99% rename from apps/docs/content/guides/guides/components.mdx rename to apps/docs/content/getting-started/guides/components.mdx index 1eef45e69..a53e53abb 100644 --- a/apps/docs/content/guides/guides/components.mdx +++ b/apps/docs/content/getting-started/guides/components.mdx @@ -102,7 +102,7 @@ Add event handlers for more control, ensuring events continue propagating as exp ``` #### Controlled Properties -You can control the component's behavior by passing a controlled property. +You can control the component's behavior by passing a controlled property. ```tsx diff --git a/apps/docs/content/guides/guides/text-crop.mdx b/apps/docs/content/getting-started/guides/text-crop.mdx similarity index 100% rename from apps/docs/content/guides/guides/text-crop.mdx rename to apps/docs/content/getting-started/guides/text-crop.mdx diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index 210aa4807..fe3883cf2 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -30,3 +30,10 @@ Looking for a more tailored or specialized setup? Hopper offers advanced options {/* TODO */} - [Micro Frontend Architecture](#): Integrate Hopper into modular, micro-frontend-based projects. Coming Soon - [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components. Coming Soon + +## Guides + +Explore our collection of guides designed to help you get the most out of Hopper. From styling tips to advanced customization techniques, these resources are here to support your journey with our design system. Check back often as we continue to expand with more tutorials and best practices. + +- **Text Crop**: Discover how to achieve perfect vertical text alignment with our Text Crop guide. Learn how to compensate for uneven whitespace in web fonts and improve the appearance of your text using simple, effective CSS techniques. [Learn more about Text Crop](./guides/text-crop) +- **Customizing Components**: Explore the flexibility of Hopper and Orbiter with our Customizing Components guide. This article introduces various customization options, from minimal styling adjustments to building entirely new components, categorized into distinct tiers to help you make the best choice for your needs. [Learn more about Customizing Components](./guides/components) diff --git a/apps/docs/content/guides/overview/introduction.mdx b/apps/docs/content/guides/overview/introduction.mdx deleted file mode 100644 index a4f5c31d0..000000000 --- a/apps/docs/content/guides/overview/introduction.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Introduction -description: Learn about the Hopper design system and how to use it in your projects. -order: 1 ---- - -Welcome to our growing library of guides for mastering Hopper. These resources are here to help you unlock the full potential of our design systems, with tips, techniques, and best practices for styling and customization. - -## Current Guides - -- **Text Crop**: Discover how to achieve perfect vertical text alignment with our Text Crop guide. Learn how to compensate for uneven whitespace in web fonts and improve the appearance of your text using simple, effective CSS techniques. [Learn more about Text Crop](./guides/text-crop) -- **Customizing Components**: Explore the flexibility of Hopper and Orbiter with our Customizing Components guide. This article introduces various customization options, from minimal styling adjustments to building entirely new components, categorized into distinct tiers to help you make the best choice for your needs. [Learn more about Customizing Components](./guides/components) - -## Stay Tuned for More! - -This page will continue to grow as we add more guides and tutorials. Whether you’re looking to refine styles, extend functionality, or dive deep into Hopper’s advanced features, you’ll find everything you need right here. - From d8fbd224bd2744442361fa662f1f24a9e455bfb6 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Thu, 28 Nov 2024 12:21:55 -0500 Subject: [PATCH 19/37] update dependencies and gitignore --- .gitignore | 1 + apps/docs/package.json | 18 +- pnpm-lock.yaml | 544 +++-------------------------------------- 3 files changed, 41 insertions(+), 522 deletions(-) diff --git a/.gitignore b/.gitignore index 55e535bad..2563cd9cb 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ next-env.d.ts # storybook build-storybook.log +storybook-static # storybook generated doc /packages/tokens/docs/ diff --git a/apps/docs/package.json b/apps/docs/package.json index d01dacb9c..db206364e 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -44,14 +44,14 @@ "@hopper-ui/components": "workspace:*", "@hopper-ui/icons": "workspace:*", "@hopper-ui/tokens": "workspace:*", - "@storybook/addon-a11y": "8.3.5", - "@storybook/addon-essentials": "8.3.5", - "@storybook/addon-interactions": "8.3.5", - "@storybook/addon-links": "8.3.5", - "@storybook/blocks": "8.3.5", - "@storybook/nextjs": "8.3.5", - "@storybook/react": "8.3.5", - "@storybook/test": "8.3.5", + "@storybook/addon-a11y": "^8.4.5", + "@storybook/addon-essentials": "^8.4.5", + "@storybook/addon-interactions": "^8.4.5", + "@storybook/addon-links": "^8.4.5", + "@storybook/blocks": "^8.4.5", + "@storybook/nextjs": "^8.4.5", + "@storybook/react": "^8.4.5", + "@storybook/test": "^8.4.5", "@svgr/webpack": "8.1.0", "@types/eslint": "8.56.12", "@types/node": "22.7.5", @@ -67,7 +67,7 @@ "logrocket": "9.0.0", "react-docgen-typescript": "^2.2.2", "shiki": "^1.22.0", - "storybook": "^8.3.5", + "storybook": "^8.4.5", "tsconfig-paths-webpack-plugin": "4.1.0", "typescript": "5.5.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 437706564..51f4dd1f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -211,29 +211,29 @@ importers: specifier: workspace:* version: link:../../packages/tokens '@storybook/addon-a11y': - specifier: 8.3.5 - version: 8.3.5(storybook@8.4.5(prettier@3.3.3)) + specifier: ^8.4.5 + version: 8.4.5(storybook@8.4.5(prettier@3.3.3)) '@storybook/addon-essentials': - specifier: 8.3.5 - version: 8.3.5(storybook@8.4.5(prettier@3.3.3)) + specifier: ^8.4.5 + version: 8.4.5(@types/react@18.3.11)(storybook@8.4.5(prettier@3.3.3)) '@storybook/addon-interactions': - specifier: 8.3.5 - version: 8.3.5(storybook@8.4.5(prettier@3.3.3)) + specifier: ^8.4.5 + version: 8.4.5(storybook@8.4.5(prettier@3.3.3)) '@storybook/addon-links': - specifier: 8.3.5 - version: 8.3.5(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) + specifier: ^8.4.5 + version: 8.4.5(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) '@storybook/blocks': - specifier: 8.3.5 - version: 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) + specifier: ^8.4.5 + version: 8.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) '@storybook/nextjs': - specifier: 8.3.5 - version: 8.3.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(next@14.2.15(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) + specifier: ^8.4.5 + version: 8.4.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(next@14.2.15(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) '@storybook/react': - specifier: 8.3.5 - version: 8.3.5(@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) + specifier: ^8.4.5 + version: 8.4.5(@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) '@storybook/test': - specifier: 8.3.5 - version: 8.3.5(storybook@8.4.5(prettier@3.3.3)) + specifier: ^8.4.5 + version: 8.4.5(storybook@8.4.5(prettier@3.3.3)) '@svgr/webpack': specifier: 8.1.0 version: 8.1.0(typescript@5.5.4) @@ -280,7 +280,7 @@ importers: specifier: ^1.22.0 version: 1.24.0 storybook: - specifier: ^8.3.5 + specifier: ^8.4.5 version: 8.4.5(prettier@3.3.3) tsconfig-paths-webpack-plugin: specifier: 4.1.0 @@ -1419,9 +1419,6 @@ packages: resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} - '@base2/pretty-print-object@1.0.1': - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} - '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -3489,95 +3486,46 @@ packages: '@stitches/core@1.2.8': resolution: {integrity: sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==} - '@storybook/addon-a11y@8.3.5': - resolution: {integrity: sha512-/19UO8IXbyfcYK5K8ejSYF+hC+EK79c0bBPHMNeYSFOHSqQM3KoMo+TLIcLsuhuRClmlM+4Zs+VSIYDwc+d3ig==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-a11y@8.4.5': resolution: {integrity: sha512-lqIOpWJZNR0Ur+2zUcnFAMvdOe7kYEDeXPv1TM7fwEGyzKPYoM/k5xPA2cJCrYwtydxOqqrmn1jUIw0Qdkhuhg==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-actions@8.3.5': - resolution: {integrity: sha512-t8D5oo+4XfD+F8091wLa2y/CDd/W2lExCeol5Vm1tp5saO+u6f2/d7iykLhTowWV84Uohi3D073uFeyTAlGebg==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-actions@8.4.5': resolution: {integrity: sha512-rbB19uiGJ61XHbKIbS1a9bUS6re5L8rT5NMNeEJhCxXRpFUPrlTXMSoD/Pgcn3ENeEMVZsm8/eCzxAVgAP3Mgg==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-backgrounds@8.3.5': - resolution: {integrity: sha512-IQGjDujuw8+iSqKREdkL8I5E/5CAHZbfOWd4A75PQK2D6qZ0fu/xRwTOQOH4jP6xn/abvfACOdL6A0d5bU90ag==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-backgrounds@8.4.5': resolution: {integrity: sha512-FeMt4qHCMYDQiLGGDKiRuSPXFup2WXOaZSdL137v1W36wEL/vGkK1A5iQt1qJ8MZzL5WZQuedox8rSybFy7eow==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-controls@8.3.5': - resolution: {integrity: sha512-2eCVobUUvY1Rq7sp1U8Mx8t44VXwvi0E+hqyrsqOx5TTSC/FUQ+hNAX6GSYUcFIyQQ1ORpKNlUjAAdjxBv1ZHQ==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-controls@8.4.5': resolution: {integrity: sha512-RVTtDDuESLYc1+SJQv2kI7wzBddzAS9uoEe8P75quN6S4pC0GxAB6xirWZ2+WOcba4eHosY+PxMwuBXQfH78Ew==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-docs@8.3.5': - resolution: {integrity: sha512-MOVfo1bY8kXTzbvmWnx3UuSO4WNykFz7Edvb3mxltNyuW7UDRZGuIuSe32ddT/EtLJfurrC9Ja3yBy4KBUGnMA==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-docs@8.4.5': resolution: {integrity: sha512-zPELIl7wXormOylVaaSpkUIuuCCxrO+OFPMKZnlENt6zSReyy0dJu4V0tzfV8FCw+V4D6Y4wrLRk/TIG951Ojw==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-essentials@8.3.5': - resolution: {integrity: sha512-hXTtPuN4/IsXjUrkMPAuz1qKAl8DovdXpjQgjQs7jSAVx3kc4BZaGqJ3gaVenKtO8uDchmA92BoQygpkc8eWhw==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-essentials@8.4.5': resolution: {integrity: sha512-AxetQo/zSPIu3RZqWG2opwAz22Bb+jpf1nWbHp0kEpCrBemcWd8X2gonVmXNOC1PDKNl3jcWyc3lmg/+3mxjYg==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-highlight@8.3.5': - resolution: {integrity: sha512-ku0epul9aReCR3Gv/emwYnsqg3vgux5OmYMjoDcJC7s+LyfweSzLV/f5t9gSHazikJElh5TehtVkWbC4QfbGSw==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-highlight@8.4.5': resolution: {integrity: sha512-sMA7v+4unaKY+5RDhow6lLncJqNX9ZLUnBIt3vzY1ntUsOYVwykAY1Hq4Ysj0luCBXjJJdJ6223ylrycnb7Ilw==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-interactions@8.3.5': - resolution: {integrity: sha512-GtTy/A+mG7vDOahQr2avT4dpWtCRiFDSYcWyuQOZm10y8VDDw157HQM+FuhxjV9Owrrohy9F24oBUwRG8H3b5A==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-interactions@8.4.5': resolution: {integrity: sha512-s6R8XVD8LTp+LQTDbhtDjDLE6S44I7FtMLxPdMNwN9VEJjBk01NONLDuGDpNq5o/0bnybA3rMHk9+3afsgzidQ==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-links@8.3.5': - resolution: {integrity: sha512-giRCpn6cfJMYPnVJkojoQDO5ae6098fgY9YgAhwaJej/9dufNcioFdbiyfK1vyzbG6TGeTmJ9ncWCXgWRtzxPQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - peerDependenciesMeta: - react: - optional: true - '@storybook/addon-links@8.4.5': resolution: {integrity: sha512-ac3OtplFdrPw/2jtLnteuVllwu2yCe3sgKJS9AbdYMT/65OW47M7oDnzcpRPsDGufrKlDMBJXXEv4SfTtlT+rg==} peerDependencies: @@ -3592,41 +3540,21 @@ packages: peerDependencies: storybook: ^8.4.5 - '@storybook/addon-measure@8.3.5': - resolution: {integrity: sha512-6GVehgbHhFIFS69xSfRV+12VK0cnuIAtZdp1J3eUCc2ATrcigqVjTM6wzZz6kBuX6O3dcusr7Wg46KtNliqLqg==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-measure@8.4.5': resolution: {integrity: sha512-+sNjew991YaoXQyWWloFybjEGrDO40Jk6w8BgZs2X7oc3D5t/6oFzvyC862U++LGqKFA3quXDeBjEb92CI9cRA==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-outline@8.3.5': - resolution: {integrity: sha512-dwmK6GzjEnQP9Yo0VnBUQtJkXZlXdfjWyskZ/IlUVc+IFdeeCtIiMyA92oMfHo8eXt0k1g21ZqMaIn7ZltOuHw==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-outline@8.4.5': resolution: {integrity: sha512-XlpN98AUDnWQWNFSFVm+HkRUzm3xIUMjBGTkv6HsL6zt6XoJ+LsQMca+PPtYqlBJA+5CU41xMDaG8HC/p+sd3A==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-toolbars@8.3.5': - resolution: {integrity: sha512-Ml2gc9q8WbteDvmuAZGgBxt5SqWMXzuTkMjlsA8EB53hlkN1w9esX4s8YtBeNqC3HKoUzcdq8uexSBqU8fDbSA==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-toolbars@8.4.5': resolution: {integrity: sha512-hOq5560ONOU/qrslrwosWzxnC4nrF8HZWD43ciKwtethm8HuptU2M+Jrui1CRsMScEZLopWWVE9o0vJMdKpIFQ==} peerDependencies: storybook: ^8.4.5 - '@storybook/addon-viewport@8.3.5': - resolution: {integrity: sha512-FSWydoPiVWFXEittG7O1YgvuaqoU9Vb+qoq9XfP/hvQHHMDcMZvC40JaV8AnJeTXaM7ngIjcn9XDEfGbFfOzXw==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/addon-viewport@8.4.5': resolution: {integrity: sha512-l7Y41gIbJAsIN/QCg1QJ9sr61FLz1C/imUotcDej41tOHxUTSQOlXpNtVnfhUM1vGQc0yNpP3pVxj8BpXi0cAw==} peerDependencies: @@ -3636,18 +3564,6 @@ packages: resolution: {integrity: sha512-1NlM3noit2vA22OyWb8Ma2lhcEKCS1Snv2kr+EkaVABUqNDfVc9AD/GgYQhF7F/2CoF5N2JU7uzXDzFHd5TzZg==} engines: {node: '>=18'} - '@storybook/blocks@8.3.5': - resolution: {integrity: sha512-8cHTdTywolTHlgwN8I7YH7saWAIjGzV617AwjhJ95AKlC0VtpO1gAFcAgCqr4DU9eMc+LZuvbnaU/RSvA5eCCQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - '@storybook/blocks@8.4.5': resolution: {integrity: sha512-Z+LHauSqm3A4HBR9pUEf9KQhD3/3xYMt0FXgA+GHCAyDa6lFeD1C6r9Y2nlT+9dt8gv9B9oygTZvV6GqFVyRSQ==} peerDependencies: @@ -3660,15 +3576,6 @@ packages: react-dom: optional: true - '@storybook/builder-webpack5@8.3.5': - resolution: {integrity: sha512-rhmfdiSlDn3Arki7IMYk11PO29rYuYM4LZ8GlNqREU7VUl/8Vngo/jFIa4pKaIns3ql1RrwzO1wm9JvuL/4ydA==} - peerDependencies: - storybook: ^8.3.5 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@storybook/builder-webpack5@8.4.5': resolution: {integrity: sha512-5TSpirK2LIL4Wultpowlkrv3iAje57HTw92Hy6c4Zn64tAs30123mkdE6MoJcXMBfD4JwX9I2K2Q+ofZXblJPg==} peerDependencies: @@ -3688,11 +3595,6 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/core-webpack@8.3.5': - resolution: {integrity: sha512-mN8BHNc6lSGUf/nKgDr6XoTt1cX+Tap9RnKMUiROCDzfVlJPeJBrG4qrTOok7AwObzeDl9DNFyun6+pVgXJe7A==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/core-webpack@8.4.5': resolution: {integrity: sha512-IpK/3fM+l2WjRNplTtP+MtnRf/394GcBwyemZknUCzFFDJWNYAN1+meEZmOaZKzJ3tQyRYiErrJLHzd1+UH6Dw==} peerDependencies: @@ -3706,11 +3608,6 @@ packages: prettier: optional: true - '@storybook/csf-plugin@8.3.5': - resolution: {integrity: sha512-ODVqNXwJt90hG7QW8I9w/XUyOGlr0l7XltmIJgXwB/2cYDvaGu3JV5Ybg7O0fxPV8uXk7JlRuUD8ZYv5Low6pA==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/csf-plugin@8.4.5': resolution: {integrity: sha512-qd2rQTglOTS+phQmTbNTXNjNyxdGvolaqHqDNMw3Vf6h9o3U+mLkwnDWNVnQ9oqvOoUEAqpBthgwzU9FhkIk+A==} peerDependencies: @@ -3737,11 +3634,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/instrumenter@8.3.5': - resolution: {integrity: sha512-NLDXai5y2t1ITgHVK9chyL0rMFZbICCOGcnTbyWhkLbiEWZKPJ8FuB8+g+Ba6zwtCve1A1Cnb4O2LOWy7TgWQw==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/instrumenter@8.4.5': resolution: {integrity: sha512-8qM35FkueuRpJr0zA6ENvhQICbo+iKL1ln450DwV1kKJtc41KdbA3CuCvtZ/FnoPsFnwdtPjhhICFtRt8LRTSg==} peerDependencies: @@ -3752,14 +3644,14 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/nextjs@8.3.5': - resolution: {integrity: sha512-YMjDSVd7BHIvj6oLMEFMKRvfZ83INxZinxtrx4ZZXGe+5iP8j7rcV7D67lxKQKWNy36d9Foj4pjT85yYj5s+ZQ==} + '@storybook/nextjs@8.4.5': + resolution: {integrity: sha512-KhP9XVI20iwAvMFHqvlV0x5UqzvMbD42QjSW5/2KYy52CStnczfa/3Xyb2VBgAMQx3Ony0qnqlTVHi6qhJQtOA==} engines: {node: '>=18.0.0'} peerDependencies: - next: ^13.5.0 || ^14.0.0 + next: ^13.5.0 || ^14.0.0 || ^15.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 + storybook: ^8.4.5 typescript: '*' webpack: ^5.0.0 peerDependenciesMeta: @@ -3768,18 +3660,6 @@ packages: webpack: optional: true - '@storybook/preset-react-webpack@8.3.5': - resolution: {integrity: sha512-laS9CiZrZ4CSnBTBfkBba3hmlDhzcjIfCvx8/rk3SZ+zh93NpqXixzRt6m0UH2po63dpdu21nXrsW5Cfs88Ypw==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@storybook/preset-react-webpack@8.4.5': resolution: {integrity: sha512-BKPAN7G0yFXfojQdF8tvgwVJ0ldcl6+p1JtAPAieH69BMGni3TEPnvPhkefRWcM8oM8pl+Hch/J2PLHiZ6QKNQ==} engines: {node: '>=18.0.0'} @@ -3803,13 +3683,6 @@ packages: typescript: '>= 4.x' webpack: '>= 4' - '@storybook/react-dom-shim@8.3.5': - resolution: {integrity: sha512-Hf0UitJ/K0C7ajooooUK/PxOR4ihUWqsC7iCV1Gqth8U37dTeLMbaEO4PBwu0VQ+Ufg0N8BJLWfg7o6G4hrODw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - '@storybook/react-dom-shim@8.4.5': resolution: {integrity: sha512-YTWTfPagptEYXJsnxAl3zP97Ev0zebtaEV0WgjGaEeumr+zsfgKKwzzHxgrtumBmDzwkuKlzFwlQB5A8keOIGA==} peerDependencies: @@ -3829,21 +3702,6 @@ packages: typescript: optional: true - '@storybook/react@8.3.5': - resolution: {integrity: sha512-kuBPe/wBin10SWr4EWPKxiTRGQ4RD2etGEVWVQLqVpOuJp/J2hVvXQHtCfZXU4TZT5x4PBbPRswbr58+XlF+kQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@storybook/test': 8.3.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.5 - typescript: '>= 4.2.x' - peerDependenciesMeta: - '@storybook/test': - optional: true - typescript: - optional: true - '@storybook/react@8.4.5': resolution: {integrity: sha512-2+p4aGEdGOnu2XNhnMi1B8GPeszm34P905HgqGD1cuz9gMt7x/bgZQaVxs6kpHZ3Hb6V9qp62La2dbAYatHdSw==} engines: {node: '>=18.0.0'} @@ -3864,11 +3722,6 @@ packages: engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true - '@storybook/test@8.3.5': - resolution: {integrity: sha512-1BXWsUGWk9FiKKelZZ55FDJdeoL8uRBHbjTYBRM2xJLhdNSvGzI4Tb3bkmxPpGn72Ua6AyldhlTxr2BpUFKOHA==} - peerDependencies: - storybook: ^8.3.5 - '@storybook/test@8.4.5': resolution: {integrity: sha512-mHsRc6m60nfcEBsjvUkKz+Jnz0or4WH5jmJ1VL2pGKO4VzESCPqAwDnwDqP2YyeSQ0b/MAKUT5kdoLE2RE2eVw==} peerDependencies: @@ -4225,18 +4078,12 @@ packages: '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/escodegen@0.0.6': - resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - '@types/eslint@8.56.12': resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -4306,9 +4153,6 @@ packages: '@types/liftoff@4.0.3': resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==} - '@types/lodash@4.17.13': - resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} - '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -4774,19 +4618,10 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -6673,10 +6508,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -6748,9 +6579,6 @@ packages: git-hooks-list@1.0.3: resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -6910,12 +6738,6 @@ packages: hast-util-has-property@3.0.0: resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} @@ -7193,10 +7015,6 @@ packages: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} - is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-absolute@1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -8006,12 +7824,6 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - markdown-to-jsx@7.7.0: - resolution: {integrity: sha512-130nIMbJY+woOQJ11xTqEtYko60t6EpNkZuqjKMferL3udtob3nRfzXOdsiA26NPemiR7w/hR8M3/B9yiYPGZg==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} @@ -9355,12 +9167,6 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-colorful@5.6.1: - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - react-confetti@6.1.0: resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} engines: {node: '>=10.18'} @@ -9384,21 +9190,12 @@ packages: peerDependencies: react: ^18.3.1 - react-element-to-jsx-string@15.0.0: - resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.1.0: - resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} - react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -9543,9 +9340,6 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true - rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - rehype-parse@9.0.1: resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} @@ -9561,9 +9355,6 @@ packages: rehype-recma@1.0.0: resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - rehype-stringify@9.0.4: resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} @@ -10264,9 +10055,6 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} - term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -11948,8 +11736,6 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@base2/pretty-print-object@1.0.1': {} - '@bcoe/v8-coverage@0.2.3': {} '@changesets/apply-release-plan@7.0.6': @@ -14697,27 +14483,12 @@ snapshots: '@stitches/core@1.2.8': {} - '@storybook/addon-a11y@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/addon-highlight': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - axe-core: 4.10.2 - storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-a11y@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/addon-highlight': 8.4.5(storybook@8.4.5(prettier@3.3.3)) axe-core: 4.10.2 storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-actions@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - '@types/uuid': 9.0.8 - dequal: 2.0.3 - polished: 4.3.1 - storybook: 8.4.5(prettier@3.3.3) - uuid: 9.0.1 - '@storybook/addon-actions@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 @@ -14727,13 +14498,6 @@ snapshots: storybook: 8.4.5(prettier@3.3.3) uuid: 9.0.1 - '@storybook/addon-backgrounds@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/addon-backgrounds@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 @@ -14741,14 +14505,6 @@ snapshots: storybook: 8.4.5(prettier@3.3.3) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - dequal: 2.0.3 - lodash: 4.17.21 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/addon-controls@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 @@ -14756,22 +14512,6 @@ snapshots: storybook: 8.4.5(prettier@3.3.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@mdx-js/react': 3.1.0(@types/react@18.3.11)(react@18.3.1) - '@storybook/blocks': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) - '@storybook/csf-plugin': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) - '@types/react': 18.3.11 - fs-extra: 11.2.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - rehype-external-links: 3.0.0 - rehype-slug: 6.0.0 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/addon-docs@8.4.5(@types/react@18.3.11)(storybook@8.4.5(prettier@3.3.3))': dependencies: '@mdx-js/react': 3.1.0(@types/react@18.3.11)(react@18.3.1) @@ -14785,20 +14525,6 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/addon-actions': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-backgrounds': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-controls': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-docs': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-highlight': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-measure': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-outline': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-toolbars': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/addon-viewport': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/addon-essentials@8.4.5(@types/react@18.3.11)(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/addon-actions': 8.4.5(storybook@8.4.5(prettier@3.3.3)) @@ -14815,25 +14541,11 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-highlight@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-highlight@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-interactions@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/test': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - polished: 4.3.1 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/addon-interactions@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 @@ -14843,15 +14555,6 @@ snapshots: storybook: 8.4.5(prettier@3.3.3) ts-dedent: 2.2.0 - '@storybook/addon-links@8.3.5(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - optionalDependencies: - react: 18.3.1 - '@storybook/addon-links@8.4.5(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/csf': 0.1.11 @@ -14869,43 +14572,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/addon-measure@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.4.5(prettier@3.3.3) - tiny-invariant: 1.3.3 - '@storybook/addon-measure@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 storybook: 8.4.5(prettier@3.3.3) tiny-invariant: 1.3.3 - '@storybook/addon-outline@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/addon-outline@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 storybook: 8.4.5(prettier@3.3.3) ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-toolbars@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-viewport@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - memoizerific: 1.11.3 - storybook: 8.4.5(prettier@3.3.3) - '@storybook/addon-viewport@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: memoizerific: 1.11.3 @@ -14919,27 +14601,6 @@ snapshots: - '@swc/helpers' - webpack - '@storybook/blocks@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/lodash': 4.17.13 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.7.0(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.4.5(prettier@3.3.3) - telejson: 7.2.0 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 - optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@storybook/blocks@8.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/csf': 0.1.11 @@ -14950,9 +14611,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-webpack5@8.3.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4)': + '@storybook/builder-webpack5@8.4.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4)': dependencies: - '@storybook/core-webpack': 8.3.5(storybook@8.4.5(prettier@3.3.3)) + '@storybook/core-webpack': 8.4.5(storybook@8.4.5(prettier@3.3.3)) '@types/node': 22.7.5 '@types/semver': 7.5.8 browser-assert: 1.2.1 @@ -14961,9 +14622,7 @@ snapshots: constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) es-module-lexer: 1.5.4 - express: 4.21.1 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.5.4)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) - fs-extra: 11.2.0 html-webpack-plugin: 5.6.3(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) magic-string: 0.30.14 path-browserify: 1.0.1 @@ -14986,7 +14645,6 @@ snapshots: - '@rspack/core' - '@swc/core' - esbuild - - supports-color - uglify-js - webpack-cli @@ -15035,12 +14693,6 @@ snapshots: dependencies: storybook: 8.4.5(prettier@3.3.3) - '@storybook/core-webpack@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@types/node': 22.7.5 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - '@storybook/core-webpack@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@types/node': 22.7.5 @@ -15067,11 +14719,6 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - storybook: 8.4.5(prettier@3.3.3) - unplugin: 1.16.0 - '@storybook/csf-plugin@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: storybook: 8.4.5(prettier@3.3.3) @@ -15096,13 +14743,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/global': 5.0.0 - '@vitest/utils': 2.1.6 - storybook: 8.4.5(prettier@3.3.3) - util: 0.12.5 - '@storybook/instrumenter@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/global': 5.0.0 @@ -15113,7 +14753,7 @@ snapshots: dependencies: storybook: 8.4.5(prettier@3.3.3) - '@storybook/nextjs@8.3.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(next@14.2.15(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0))': + '@storybook/nextjs@8.4.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(next@14.2.15(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(type-fest@3.13.1)(typescript@5.5.4)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0) @@ -15129,16 +14769,15 @@ snapshots: '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@babel/runtime': 7.26.0 '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@3.13.1)(webpack-dev-server@5.1.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)))(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) - '@storybook/builder-webpack5': 8.3.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) - '@storybook/preset-react-webpack': 8.3.5(@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3)))(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) - '@storybook/react': 8.3.5(@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) - '@storybook/test': 8.3.5(storybook@8.4.5(prettier@3.3.3)) + '@storybook/builder-webpack5': 8.4.5(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) + '@storybook/preset-react-webpack': 8.4.5(@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3)))(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) + '@storybook/react': 8.4.5(@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) + '@storybook/test': 8.4.5(storybook@8.4.5(prettier@3.3.3)) '@types/node': 22.7.5 '@types/semver': 7.5.8 babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) find-up: 5.0.0 - fs-extra: 11.2.0 image-size: 1.1.1 loader-utils: 3.3.1 next: 14.2.15(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15181,15 +14820,14 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.3.5(@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3)))(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4)': + '@storybook/preset-react-webpack@8.4.5(@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3)))(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4)': dependencies: - '@storybook/core-webpack': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/react': 8.3.5(@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) + '@storybook/core-webpack': 8.4.5(storybook@8.4.5(prettier@3.3.3)) + '@storybook/react': 8.4.5(@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.5.4)(webpack@5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))(esbuild@0.24.0)) '@types/node': 22.7.5 '@types/semver': 7.5.8 find-up: 5.0.0 - fs-extra: 11.2.0 magic-string: 0.30.14 react: 18.3.1 react-docgen: 7.1.0 @@ -15268,12 +14906,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.5(prettier@3.3.3) - '@storybook/react-dom-shim@8.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))': dependencies: react: 18.3.1 @@ -15300,35 +14932,6 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.3.5(@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4)': - dependencies: - '@storybook/components': 8.4.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.4.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/preview-api': 8.4.5(storybook@8.4.5(prettier@3.3.3)) - '@storybook/react-dom-shim': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3)) - '@storybook/theming': 8.4.5(storybook@8.4.5(prettier@3.3.3)) - '@types/escodegen': 0.0.6 - '@types/estree': 0.0.51 - '@types/node': 22.7.5 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - escodegen: 2.1.0 - html-tags: 3.3.1 - prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.6.3 - storybook: 8.4.5(prettier@3.3.3) - ts-dedent: 2.2.0 - type-fest: 2.19.0 - util-deprecate: 1.0.2 - optionalDependencies: - '@storybook/test': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - typescript: 5.5.4 - '@storybook/react@8.4.5(@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.5(prettier@3.3.3))(typescript@5.5.4)': dependencies: '@storybook/components': 8.4.5(storybook@8.4.5(prettier@3.3.3)) @@ -15378,19 +14981,6 @@ snapshots: - supports-color - ts-node - '@storybook/test@8.3.5(storybook@8.4.5(prettier@3.3.3))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.3.5(storybook@8.4.5(prettier@3.3.3)) - '@testing-library/dom': 10.4.0 - '@testing-library/jest-dom': 6.5.0 - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/expect': 2.0.5 - '@vitest/spy': 2.0.5 - storybook: 8.4.5(prettier@3.3.3) - util: 0.12.5 - '@storybook/test@8.4.5(storybook@8.4.5(prettier@3.3.3))': dependencies: '@storybook/csf': 0.1.11 @@ -15758,8 +15348,6 @@ snapshots: '@types/doctrine@0.0.9': {} - '@types/escodegen@0.0.6': {} - '@types/eslint@8.56.12': dependencies: '@types/estree': 1.0.6 @@ -15769,8 +15357,6 @@ snapshots: dependencies: '@types/estree': 1.0.6 - '@types/estree@0.0.51': {} - '@types/estree@1.0.6': {} '@types/express-serve-static-core@4.19.6': @@ -15860,8 +15446,6 @@ snapshots: '@types/fined': 1.1.5 '@types/node': 22.7.5 - '@types/lodash@4.17.13': {} - '@types/mdast@3.0.15': dependencies: '@types/unist': 2.0.11 @@ -16473,22 +16057,14 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 - acorn-walk@7.2.0: {} - acorn-walk@8.3.4: dependencies: acorn: 8.14.0 - acorn@7.4.1: {} - acorn@8.14.0: {} adjust-sourcemap-loader@4.0.0: @@ -18854,12 +18430,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -18927,8 +18497,6 @@ snapshots: git-hooks-list@1.0.3: {} - github-slugger@2.0.0: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -19145,14 +18713,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-heading-rank@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-parse-selector@3.1.1: dependencies: '@types/hast': 2.3.10 @@ -19580,8 +19140,6 @@ snapshots: ipaddr.js@2.2.0: {} - is-absolute-url@4.0.1: {} - is-absolute@1.0.0: dependencies: is-relative: 1.0.0 @@ -20647,10 +20205,6 @@ snapshots: markdown-table@3.0.4: {} - markdown-to-jsx@7.7.0(react@18.3.1): - dependencies: - react: 18.3.1 - mathml-tag-names@2.1.3: {} md5.js@1.3.5: @@ -22697,11 +22251,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-confetti@6.1.0(react@18.3.1): dependencies: react: 18.3.1 @@ -22736,20 +22285,10 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@base2/pretty-print-object': 1.0.1 - is-plain-object: 5.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.1.0 - react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.1.0: {} - react-is@18.3.1: {} react-refresh@0.14.2: {} @@ -22973,15 +22512,6 @@ snapshots: dependencies: jsesc: 3.0.2 - rehype-external-links@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 - hast-util-is-element: 3.0.0 - is-absolute-url: 4.0.1 - space-separated-tokens: 2.0.2 - unist-util-visit: 5.0.0 - rehype-parse@9.0.1: dependencies: '@types/hast': 3.0.4 @@ -23014,14 +22544,6 @@ snapshots: transitivePeerDependencies: - supports-color - rehype-slug@6.0.0: - dependencies: - '@types/hast': 3.0.4 - github-slugger: 2.0.0 - hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.1 - unist-util-visit: 5.0.0 - rehype-stringify@9.0.4: dependencies: '@types/hast': 2.3.10 @@ -23939,10 +23461,6 @@ snapshots: tapable@2.2.1: {} - telejson@7.2.0: - dependencies: - memoizerific: 1.11.3 - term-size@2.2.1: {} terser-webpack-plugin@5.3.10(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.26(@swc/helpers@0.5.13))(webpack-cli@5.1.4)): From 72424d49740acea3cf5b0eb67fd249d099d74b1e Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Thu, 28 Nov 2024 15:10:27 -0500 Subject: [PATCH 20/37] fix comments --- .../app/ui/layout/sectionPopover/SectionLink.tsx | 3 ++- apps/docs/components/cardLink/cardLink.tsx | 4 ++-- .../content/getting-started/guides/components.mdx | 12 ++++++------ .../getting-started/installation-path/javascript.mdx | 6 +++--- .../getting-started/installation-path/react.mdx | 2 +- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/apps/docs/app/ui/layout/sectionPopover/SectionLink.tsx b/apps/docs/app/ui/layout/sectionPopover/SectionLink.tsx index 8990b8f42..4959ee223 100644 --- a/apps/docs/app/ui/layout/sectionPopover/SectionLink.tsx +++ b/apps/docs/app/ui/layout/sectionPopover/SectionLink.tsx @@ -1,7 +1,8 @@ +import type { ReactNode } from "react"; import { UseSectionLinkContext } from "./sectionLinkContext"; interface SectionLinkProps { - children: React.ReactNode; + children: ReactNode; className: string; href: string; } diff --git a/apps/docs/components/cardLink/cardLink.tsx b/apps/docs/components/cardLink/cardLink.tsx index e913905ba..5752f2f6a 100644 --- a/apps/docs/components/cardLink/cardLink.tsx +++ b/apps/docs/components/cardLink/cardLink.tsx @@ -1,5 +1,5 @@ import clsx from "clsx"; -import type { ComponentProps } from "react"; +import type { ComponentProps, ReactNode } from "react"; import "./cardLink.css"; @@ -9,7 +9,7 @@ export interface CardLinkProps extends ComponentProps<"a">{ title: string; size: "sm" | "md"; description?: string; - children: React.ReactNode; + children: ReactNode; } const CardLink = ({ children, className, title, size = "md", type = "primary", description = "md", href, ...rest }: CardLinkProps) => { diff --git a/apps/docs/content/getting-started/guides/components.mdx b/apps/docs/content/getting-started/guides/components.mdx index a53e53abb..faff8c2a1 100644 --- a/apps/docs/content/getting-started/guides/components.mdx +++ b/apps/docs/content/getting-started/guides/components.mdx @@ -39,13 +39,13 @@ Here's an overview of the different customization methods: - 🥉 [Custom components using hooks](#customization-methods-details--custom-components-using-hooks): Create a new component on top of Design System hooks or React Aria hooks. -- 🛠️ [Building components from scratch](#customization-methods-details--building-components-from-scratch): Create a component from scratch and leveraging Design Tokens if possible +- 🛠️ [Building components from scratch](#customization-methods-details--building-components-from-scratch): Create a component from scratch and leverage Design Tokens if possible -## Customization Methods Details +## Customization Method Details These customization options provide product teams with the flexibility to adapt Hopper components to specific requirements, without sacrificing consistency. By using this range of customization methods, teams can meet product goals efficiently while maintaining the benefits of a unified design system. These customization methods are presented in the order you should consider when evaluating your options, with details provided in the sections below. -### 🥇 Direct styling adjustments +### 🥇 Direct Styling Adjustments For straightforward customization needs, you can make adjustments directly by passing style-related props, adding CSS classes, or setting up refs for access to component elements. This approach allows you to override specific styles while keeping the component's behavior and overall styling intact. @@ -80,9 +80,9 @@ export function AICard({ children, className, ...rest }: CardProps) { ``` -### 🥇 Behavior modifications +### 🥇 Behavior Modifications -To customize a component's behavior, use refs, callbacks and controlled properties. This approach is useful for interactive features and for modifying default component behavior. This approach is ideal when you need to adjust how a component responds to user interactions without altering its visual style or structure. Read more about Controlled vs Uncontrolled components [here](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components). +To customize a component's behavior, use refs, callbacks and controlled properties. This approach is useful for interactive features and for modifying default component behavior. This approach is ideal when you need to adjust how a component responds to user interactions without altering its visual style or structure. Read more about _Controlled vs Uncontrolled components_ [here](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components). #### Refs for Direct Access @@ -125,7 +125,7 @@ function MyCustomButtonPopoverTrigger({ children, ...rest }: PopoverTriggerProps ``` -### 🥈 Copying component +### 🥈 Copying Component When you need extensive customizations that go beyond simple styling or behavior adjustments, copying the component code can be an effective solution. This allows you to make specific changes while retaining the existing structure, making the customized component reusable across similar use cases. diff --git a/apps/docs/content/getting-started/installation-path/javascript.mdx b/apps/docs/content/getting-started/installation-path/javascript.mdx index 64a3917fd..da6bf97fd 100644 --- a/apps/docs/content/getting-started/installation-path/javascript.mdx +++ b/apps/docs/content/getting-started/installation-path/javascript.mdx @@ -24,8 +24,8 @@ Run the following command to install Hopper tokens and SVG icons. Add Hopper styles to your project by importing the following CSS files into your main stylesheet or global CSS file: ```css -@import "@hopper-ui/tokens/fonts.css"; /* To import Hopper fonts*/ -@import "@hopper-ui/tokens/tokens.css"; /* To import the design tokens*/ +@import "@hopper-ui/tokens/fonts.css"; /* To import Hopper fonts */ +@import "@hopper-ui/tokens/tokens.css"; /* To import the design tokens */ @import "@hopper-ui/tokens/dark/tokens.css"; /* optional - if your application supports dark mode */ ``` @@ -50,7 +50,7 @@ import alertIcon from "@hopper-ui/svg-icons/alert-24.svg"; Alternatively, you can use SVG icons directly in your CSS, like this: ```css -.myComponent { +.my-component { background-image: url("@hopper-ui/svg-icons/alert-24.svg"); } ``` diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index e175add4a..aff5bf32d 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -65,7 +65,7 @@ Explore advanced features of Hopper to unlock its full potential: - + From 40a660bf8630b2eb86a7e0c9b8ab1c0d69b75bdf Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Thu, 28 Nov 2024 15:51:10 -0500 Subject: [PATCH 21/37] fix links --- .../getting-started/installation-path/react.mdx | 14 +++++++------- .../getting-started/overview/installation.mdx | 4 ++-- apps/docs/content/icons/overview/introduction.mdx | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index aff5bf32d..182237191 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -62,11 +62,11 @@ Explore advanced features of Hopper to unlock its full potential: {/* TODO */} - - - - - - - + + {/* */} + + + + {/* */} + {/* */} diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index fe3883cf2..cb521c0ec 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -15,10 +15,10 @@ Hopper supports flexible installation options tailored to different project type Select the path that best suits your setup: - + - + diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index d4cc73c3c..8afbf863b 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -10,8 +10,8 @@ Icons are an essential part of building intuitive and engaging user interfaces. Hopper provides two main packages, giving you the flexibility to choose how to integrate icons into your project: - - + + ## Choosing the Right Icons From 13b8a9292a273468f957483223393e9e4416348a Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 09:52:15 -0500 Subject: [PATCH 22/37] review fixes --- apps/docs/components/cardLink/cardLink.css | 2 +- apps/docs/content/getting-started/guides/components.mdx | 6 +++--- .../getting-started/installation-path/javascript.mdx | 2 +- .../content/getting-started/installation-path/react.mdx | 4 ++-- .../content/getting-started/overview/installation.mdx | 8 ++++---- apps/docs/content/icons/overview/introduction.mdx | 3 +-- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/apps/docs/components/cardLink/cardLink.css b/apps/docs/components/cardLink/cardLink.css index c0008ceb2..435694bdc 100644 --- a/apps/docs/components/cardLink/cardLink.css +++ b/apps/docs/components/cardLink/cardLink.css @@ -15,7 +15,7 @@ display: flex; flex-direction: column; flex: 1 1 auto; - height: 14rem; + min-height: 14rem; overflow: hidden; position: relative; padding: var(--hd-space-4) 0; diff --git a/apps/docs/content/getting-started/guides/components.mdx b/apps/docs/content/getting-started/guides/components.mdx index faff8c2a1..a34a9f50a 100644 --- a/apps/docs/content/getting-started/guides/components.mdx +++ b/apps/docs/content/getting-started/guides/components.mdx @@ -137,7 +137,7 @@ Take a look to [Hopper's components source code](https://github.com/gsoft-inc/wl

Share your needs in **#ds-hopper!** -### 🥈 Custom components using base components +### 🥈 Custom Components Using Base Components If the existing Design System component feels too complex for your needs, take a closer look at its underlying structure in the code. In Hopper, it's likely built on a [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) component, which you can directly leverage to create a more tailored solution. React Aria offers a robust library of foundational components, making it a versatile starting point. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components. @@ -147,7 +147,7 @@ If the existing Design System component feels too complex for your needs, take a Using this approach may require you to restyle the entire component, which is fine. At this stage, you’re essentially creating something new! Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! -### 🥉 Custom components using hooks +### 🥉 Custom Components Using Hooks If there is no base components to use, or if the base component is again too strict for you needs, you can use underlying hooks for more granular control. [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) also offer hooks that you can tailor components more precisely to your needs. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components. @@ -157,7 +157,7 @@ If there is no base components to use, or if the base component is again too str Using this approach may require you to restyle the entire component, which is fine. At this stage, you’re essentially creating something new! Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! -### 🛠️ Building components from scratch +### 🛠️ Building Components From Scratch For unique needs that go beyond the capabilities of design system components, building a component from scratch may be necessary. At this point, the only recommendation we can give is to refer to the [WAI Aria Patterns](https://www.w3.org/WAI/ARIA/apg/patterns/) or [Spec](https://www.w3.org/WAI/ARIA/apg/) to determine the expected behavior of controls. Using this approach you will have to style the entire component, which is fine. Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! diff --git a/apps/docs/content/getting-started/installation-path/javascript.mdx b/apps/docs/content/getting-started/installation-path/javascript.mdx index da6bf97fd..d56d4f491 100644 --- a/apps/docs/content/getting-started/installation-path/javascript.mdx +++ b/apps/docs/content/getting-started/installation-path/javascript.mdx @@ -9,7 +9,7 @@ Hopper is a Design System that provides a collection of tokens and icons to help You don't need to use React to take advantage of Hopper's features. This guide will show you how to use Hopper tokens and icons in any framework or plain HTML/CSS project. -Hopper tokens are predefined design decisions (such as colors, spacing, and typography) translated into CSS variables to style your application. For icons, you can use Hopper's SVG icons, available via the @hopper-ui/svg-icons package. +Hopper tokens are predefined design decisions (such as colors, spacing, and typography) translated into CSS variables to style your application. For icons, you can use Hopper's SVG icons, available via the `@hopper-ui/svg-icons` package. ## Installation diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index 182237191..59b3d6343 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -7,7 +7,7 @@ order: 1 Hopper is a Design System that provides a collection of [React components](../../components/component-list), [tokens](../../tokens/overview/introduction), and [icons](../../icons/overview/introduction) to help you build applications. **Requirements:** -- [React 18](https://reactjs.org/) or later +- [React 18](https://reactjs.org/) or higher. ## Installation @@ -19,7 +19,7 @@ Run the following command to install Hopper packages and their peer dependencies ### Setup provider -Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for Hopper components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. +Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for the Hopper components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. ```tsx import { HopperProvider } from "@hopper-ui/components"; diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index cb521c0ec..ce7c56c28 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -28,12 +28,12 @@ Select the path that best suits your setup: Looking for a more tailored or specialized setup? Hopper offers advanced options to meet unique project requirements. {/* TODO */} -- [Micro Frontend Architecture](#): Integrate Hopper into modular, micro-frontend-based projects. Coming Soon -- [Granular CSS Imports](#): Optimize performance by importing only the CSS needed for specific components. Coming Soon +- Micro Frontend Architecture: Integrate Hopper into modular, micro-frontend-based projects. Coming Soon +- Granular CSS Imports: Optimize performance by importing only the CSS needed for specific components. Coming Soon ## Guides Explore our collection of guides designed to help you get the most out of Hopper. From styling tips to advanced customization techniques, these resources are here to support your journey with our design system. Check back often as we continue to expand with more tutorials and best practices. -- **Text Crop**: Discover how to achieve perfect vertical text alignment with our Text Crop guide. Learn how to compensate for uneven whitespace in web fonts and improve the appearance of your text using simple, effective CSS techniques. [Learn more about Text Crop](./guides/text-crop) -- **Customizing Components**: Explore the flexibility of Hopper and Orbiter with our Customizing Components guide. This article introduces various customization options, from minimal styling adjustments to building entirely new components, categorized into distinct tiers to help you make the best choice for your needs. [Learn more about Customizing Components](./guides/components) +- **Text Crop**: Discover how to achieve perfect vertical text alignment with our Text Crop guide. Learn how to compensate for uneven whitespace in web fonts and improve the appearance of your text using simple, effective CSS techniques. [Learn more about Text Crop](../guides/text-crop) +- **Customizing Components**: Explore the flexibility of Hopper and Orbiter with our Customizing Components guide. This article introduces various customization options, from minimal styling adjustments to building entirely new components, categorized into distinct tiers to help you make the best choice for your needs. [Learn more about Customizing Components](../guides/components) diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index 8afbf863b..e6c91e607 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -7,7 +7,7 @@ order: 1 Icons are an essential part of building intuitive and engaging user interfaces. Hopper offers a versatile and comprehensive icon system tailored to meet diverse project needs, whether you're building with React or using static assets in other frameworks. ## Using Hopper Icons -Hopper provides two main packages, giving you the flexibility to choose how to integrate icons into your project: +Hopper provides two main packages, giving you the flexibility to choose how to integrate icons into your project. @@ -21,7 +21,6 @@ Hopper icons come in two styles to meet different design needs: - Monochromatic and simple. - Best suited for functional UI elements like buttons, menus, or actions. - ### Rich Icons - Vibrant and colorful. - Perfect for decorative purposes or drawing attention to specific elements. From c54651d6be4cdf6ff6f4f498a574d91925439e1f Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 10:06:40 -0500 Subject: [PATCH 23/37] update doc --- apps/docs/content/getting-started/installation-path/react.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index 59b3d6343..2306f06a0 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -19,7 +19,7 @@ Run the following command to install Hopper packages and their peer dependencies ### Setup provider -Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for the Hopper components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. +Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for Hopper components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. ```tsx import { HopperProvider } from "@hopper-ui/components"; From 29f352ae66f40c485edf460b7ce6de0fed48fb49 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Fri, 29 Nov 2024 11:38:11 -0500 Subject: [PATCH 24/37] reworked the icon introduciton page --- apps/docs/components/cardLink/cardLink.css | 28 +++++++++------ .../content/icons/overview/introduction.mdx | 35 ++++++++++++------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/apps/docs/components/cardLink/cardLink.css b/apps/docs/components/cardLink/cardLink.css index c0008ceb2..ab15bfd48 100644 --- a/apps/docs/components/cardLink/cardLink.css +++ b/apps/docs/components/cardLink/cardLink.css @@ -29,32 +29,38 @@ height: 10rem; } -.hd-cardlink:nth-child(3n) { - --card-color: #37345d; - --card-color-translucent: #a07ff1ba; -} - -.hd-cardlink:nth-child(2n) { +.hd-cardlink:nth-child(2n), +.hd-cardlink.nth-2n { --card-color: #2b163a; --card-color-translucent: #ffb0b045; } -.hd-cardlink:nth-child(4n) { +.hd-cardlink:nth-child(3n), +.hd-cardlink.nth-3n { + --card-color: #37345d; + --card-color-translucent: #a07ff1ba; +} + +.hd-cardlink:nth-child(4n), +.hd-cardlink.nth-4n { --card-color: #2b2c5c; --card-color-translucent: #ffb629bf; } -.hd-cardlink:nth-child(5n) { +.hd-cardlink:nth-child(5n), +.hd-cardlink.nth-5n { --card-color: #382f58; --card-color-translucent: #babeff91; } -.hd-cardlink:nth-child(6n) { +.hd-cardlink:nth-child(6n), +.hd-cardlink.nth-6n { --card-color: #3e254d; --card-color-translucent: #29ff9ee3; } -.hd-cardlink:nth-child(7n) { +.hd-cardlink:nth-child(7n), +.hd-cardlink.nth-7n { --card-color: #432055; --card-color-translucent: #4299ea91; } @@ -122,5 +128,5 @@ } .hd-cardlink__copy { - padding: 0 var(--hd-space-4); + padding: 0 var(--hd-space-10) 0 var(--hd-space-4); } diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index 8afbf863b..e9ea774ab 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -7,27 +7,36 @@ order: 1 Icons are an essential part of building intuitive and engaging user interfaces. Hopper offers a versatile and comprehensive icon system tailored to meet diverse project needs, whether you're building with React or using static assets in other frameworks. ## Using Hopper Icons -Hopper provides two main packages, giving you the flexibility to choose how to integrate icons into your project: + +Hopper provides two main packages, React components or pure SVG, giving you the flexibility to choose how to integrate icons into your project. + +### React Package + +Designed specifically for React applications, this package offers all icons as React components. - - + + + + + + -## Choosing the Right Icons -Hopper icons come in two styles to meet different design needs: - -### Icons -- Monochromatic and simple. -- Best suited for functional UI elements like buttons, menus, or actions. +### SVG Package +Ideal for non-React setups, this package provides raw SVG files. -### Rich Icons -- Vibrant and colorful. -- Perfect for decorative purposes or drawing attention to specific elements. + + + + + + + + ## Start Designing Icons No matter the platform or design requirements, Hopper icons empower developers and designers to create polished, visually aligned interfaces. - [Designing an Icon](./designing-an-icon) - From dfd577b6185864118e77ed4c2c2e10630a991960 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Fri, 29 Nov 2024 12:25:37 -0500 Subject: [PATCH 25/37] styled the 404 page --- apps/docs/app/404.css | 38 +++++++++++++++++++++++++++++++++++++ apps/docs/app/not-found.tsx | 10 ++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 apps/docs/app/404.css diff --git a/apps/docs/app/404.css b/apps/docs/app/404.css new file mode 100644 index 000000000..052998ca4 --- /dev/null +++ b/apps/docs/app/404.css @@ -0,0 +1,38 @@ +.hd-layout_404 { + text-align: center; +} + +.hd-404__title { + font-weight: 400; + font-size: clamp(2rem, 5vw, 4rem); + margin-top: 1rem; + margin-bottom: 2rem +} + +.hd-404__subtitle { + font-weight: 400; + font-size: clamp(1rem, 4vw, 1.825rem); + margin-bottom: 2rem; +} + +.hd-404__button { + border: none; + border-radius: var(--hd-border-radius-md); + height: 3rem; + padding: 0 1rem; + font-size: 1.25rem; + text-align: center; + background-color: var(--hd-accent-700); + display: inline-flex; + align-items: center; + color: var(--hd-white); + margin-top: 2rem; +} + +.hd-404__button:hover { + background-color: var(--hd-accent-900); +} + +.hd-404__button:active { + background-color: var(--hd-accent-400); +} diff --git a/apps/docs/app/not-found.tsx b/apps/docs/app/not-found.tsx index 6a7a131a4..2616e956f 100644 --- a/apps/docs/app/not-found.tsx +++ b/apps/docs/app/not-found.tsx @@ -1,8 +1,14 @@ +"use client"; + +import "./404.css"; + export default function Custom404() { return ( -
+
-

404 - Page Not Found

+

Oops!

+

You hopped on the wrong side of the pond.

+ Back to the shore
); From 890862c6ff5b08e8419d1b8ae7173228c42b4505 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 12:47:42 -0500 Subject: [PATCH 26/37] fix link and dev script --- apps/docs/content/getting-started/overview/installation.mdx | 2 +- apps/docs/package.json | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index ce7c56c28..bf2e9746c 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -5,7 +5,7 @@ order: 1 status: ready --- -Hopper is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. +Hopper is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](/components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. We've put together a guide to help you quickly get started with integrating Hopper into your project. ## Choose Your Installation Path diff --git a/apps/docs/package.json b/apps/docs/package.json index db206364e..3e65387fe 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -8,9 +8,7 @@ ], "scripts": { "start": "next start", - "dev": "pnpm run \"/^dev:.*/\"", - "dev:next": "next dev", - "dev:content": "contentlayer dev", + "dev": "next dev", "build": "next build", "lint": "next lint", "lint:types": "tsc --noEmit", From c07330b9fbb94f59dc5b2014cd3f7a639fc1456c Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Fri, 29 Nov 2024 13:49:37 -0500 Subject: [PATCH 27/37] doc ui fixes --- apps/docs/app/ui/layout/aside/aside.css | 4 ++-- apps/docs/components/callout/callout.css | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/docs/app/ui/layout/aside/aside.css b/apps/docs/app/ui/layout/aside/aside.css index f930f6b60..099c91c2b 100644 --- a/apps/docs/app/ui/layout/aside/aside.css +++ b/apps/docs/app/ui/layout/aside/aside.css @@ -85,7 +85,7 @@ } .hd-aside__link { - line-height: 1; + line-height: 1.7; } .hd-aside__link:hover { @@ -112,7 +112,7 @@ .hd-aside__item { font-size: 0.875rem; - height: var(--hd-space-3); + min-height: var(--hd-space-3); display: flex; align-items: center; position: relative; diff --git a/apps/docs/components/callout/callout.css b/apps/docs/components/callout/callout.css index e89561599..cd5ba7c3c 100644 --- a/apps/docs/components/callout/callout.css +++ b/apps/docs/components/callout/callout.css @@ -17,6 +17,10 @@ background-color: var(--hd-callout-background-color); } +.hd-callout p a { + color: var(--hd-neutral-900); +} + .hd-callout__icon { align-self: flex-start; margin-top: 0.25rem; From 3699d9c1a1308f5dbd39416cdfc509cf71fcde96 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 14:09:15 -0500 Subject: [PATCH 28/37] extract icons in their own file + convert data to TS + add controlled mode concept --- .../components/concepts/controlled-mode.mdx | 6 ++ .../getting-started/overview/JSIcon.tsx | 13 +++ .../getting-started/overview/ReactIcon.tsx | 38 ++++++++ .../getting-started/overview/installation.mdx | 7 +- .../icons/overview/ReactIconsLibIcon.tsx | 19 ++++ .../icons/overview/ReactRichIconsLibIcon.tsx | 91 +++++++++++++++++++ .../icons/overview/SvgIconsLibIcon.tsx | 19 ++++ .../icons/overview/SvgRichIconsLibIcon.tsx | 28 ++++++ .../icons/overview/{data.js => data.ts} | 0 .../icons/overview/designing-an-icon.mdx | 2 +- .../content/icons/overview/introduction.mdx | 13 ++- 11 files changed, 229 insertions(+), 7 deletions(-) create mode 100644 apps/docs/content/components/concepts/controlled-mode.mdx create mode 100644 apps/docs/content/getting-started/overview/JSIcon.tsx create mode 100644 apps/docs/content/getting-started/overview/ReactIcon.tsx create mode 100644 apps/docs/content/icons/overview/ReactIconsLibIcon.tsx create mode 100644 apps/docs/content/icons/overview/ReactRichIconsLibIcon.tsx create mode 100644 apps/docs/content/icons/overview/SvgIconsLibIcon.tsx create mode 100644 apps/docs/content/icons/overview/SvgRichIconsLibIcon.tsx rename apps/docs/content/icons/overview/{data.js => data.ts} (100%) diff --git a/apps/docs/content/components/concepts/controlled-mode.mdx b/apps/docs/content/components/concepts/controlled-mode.mdx new file mode 100644 index 000000000..5277e209f --- /dev/null +++ b/apps/docs/content/components/concepts/controlled-mode.mdx @@ -0,0 +1,6 @@ +--- +title: Controlled Mode +description: Controlled vs Uncontrolled mode in Hopper components +order: 4 +status: WIP +--- diff --git a/apps/docs/content/getting-started/overview/JSIcon.tsx b/apps/docs/content/getting-started/overview/JSIcon.tsx new file mode 100644 index 000000000..27dbbf1bd --- /dev/null +++ b/apps/docs/content/getting-started/overview/JSIcon.tsx @@ -0,0 +1,13 @@ +/* eslint-disable max-len */ +import type { SVGProps } from "react"; + +const SvgComponent = (props: Partial>) => ( + + + +); + +export default SvgComponent; diff --git a/apps/docs/content/getting-started/overview/ReactIcon.tsx b/apps/docs/content/getting-started/overview/ReactIcon.tsx new file mode 100644 index 000000000..cd7659472 --- /dev/null +++ b/apps/docs/content/getting-started/overview/ReactIcon.tsx @@ -0,0 +1,38 @@ +/* eslint-disable max-len */ +import type { SVGProps } from "react"; + +const SvgComponent = (props: Partial>) => ( + + + + + + + + + + + + + +); + +export default SvgComponent; diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index bf2e9746c..0743f8422 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -5,6 +5,9 @@ order: 1 status: ready --- +import JsIcon from "./JsIcon.tsx" +import ReactIcon from "./ReactIcon.tsx" + Hopper is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](/components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. We've put together a guide to help you quickly get started with integrating Hopper into your project. @@ -16,10 +19,10 @@ Select the path that best suits your setup: - + - + diff --git a/apps/docs/content/icons/overview/ReactIconsLibIcon.tsx b/apps/docs/content/icons/overview/ReactIconsLibIcon.tsx new file mode 100644 index 000000000..d554683e5 --- /dev/null +++ b/apps/docs/content/icons/overview/ReactIconsLibIcon.tsx @@ -0,0 +1,19 @@ +import type { SVGProps } from "react"; + +/* eslint-disable max-len */ +const SvgComponent = (props: Partial>) => ( + +); + +export default SvgComponent; diff --git a/apps/docs/content/icons/overview/ReactRichIconsLibIcon.tsx b/apps/docs/content/icons/overview/ReactRichIconsLibIcon.tsx new file mode 100644 index 000000000..56a2b9e8f --- /dev/null +++ b/apps/docs/content/icons/overview/ReactRichIconsLibIcon.tsx @@ -0,0 +1,91 @@ +/* eslint-disable max-len */ + +import type { SVGProps } from "react"; + +const SvgComponent = (props: Partial>) => ( + +); + +export default SvgComponent; diff --git a/apps/docs/content/icons/overview/SvgIconsLibIcon.tsx b/apps/docs/content/icons/overview/SvgIconsLibIcon.tsx new file mode 100644 index 000000000..4aa055047 --- /dev/null +++ b/apps/docs/content/icons/overview/SvgIconsLibIcon.tsx @@ -0,0 +1,19 @@ +import type { SVGProps } from "react"; + +/* eslint-disable max-len */ +const SvgComponent = (props: Partial>) => ( + +); + +export default SvgComponent; diff --git a/apps/docs/content/icons/overview/SvgRichIconsLibIcon.tsx b/apps/docs/content/icons/overview/SvgRichIconsLibIcon.tsx new file mode 100644 index 000000000..5e809b72b --- /dev/null +++ b/apps/docs/content/icons/overview/SvgRichIconsLibIcon.tsx @@ -0,0 +1,28 @@ +/* eslint-disable max-len */ +import type { SVGProps } from "react"; + +const SvgComponent = (props: Partial>) => ( + +); + +export default SvgComponent; diff --git a/apps/docs/content/icons/overview/data.js b/apps/docs/content/icons/overview/data.ts similarity index 100% rename from apps/docs/content/icons/overview/data.js rename to apps/docs/content/icons/overview/data.ts diff --git a/apps/docs/content/icons/overview/designing-an-icon.mdx b/apps/docs/content/icons/overview/designing-an-icon.mdx index 5aa492c59..e9957dbe1 100644 --- a/apps/docs/content/icons/overview/designing-an-icon.mdx +++ b/apps/docs/content/icons/overview/designing-an-icon.mdx @@ -3,7 +3,7 @@ title: Designing an Icon description: Learn how to create consistent and high-quality icons for the Workleap platform by following these guidelines. --- -import { iconData } from './data'; +import { iconData } from './data.ts'; To maintain visual consistency across the Workleap platform, icon creators should follow these guidelines when contributing to the Workleap icon library. **All designers are encouraged to create their own icons.** Use the design language and specifications outlined in this guide to ensure alignment across all Workleap products. diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index e9ea774ab..b77d64841 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -4,6 +4,11 @@ description: Getting started with Workleap Design Icons order: 1 --- +import ReactIconLibIcon from "./ReactIconsLibIcon.tsx" +import ReactRichIconLibIcon from "./ReactRichIconsLibIcon.tsx" +import SvgIconLibIcon from "./SvgIconsLibIcon.tsx" +import SvgRichIconLibIcon from "./SvgRichIconsLibIcon.tsx" + Icons are an essential part of building intuitive and engaging user interfaces. Hopper offers a versatile and comprehensive icon system tailored to meet diverse project needs, whether you're building with React or using static assets in other frameworks. ## Using Hopper Icons @@ -16,10 +21,10 @@ Designed specifically for React applications, this package offers all icons as R - + - + @@ -29,10 +34,10 @@ Ideal for non-React setups, this package provides raw SVG files. - + - + From c9a136eaaa34054d172e02405bc3c7b1ac1668d0 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 14:10:53 -0500 Subject: [PATCH 29/37] change url import style --- .../getting-started/installation-path/javascript.mdx | 6 +++--- .../content/getting-started/installation-path/react.mdx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/docs/content/getting-started/installation-path/javascript.mdx b/apps/docs/content/getting-started/installation-path/javascript.mdx index d56d4f491..40bbc173a 100644 --- a/apps/docs/content/getting-started/installation-path/javascript.mdx +++ b/apps/docs/content/getting-started/installation-path/javascript.mdx @@ -24,9 +24,9 @@ Run the following command to install Hopper tokens and SVG icons. Add Hopper styles to your project by importing the following CSS files into your main stylesheet or global CSS file: ```css -@import "@hopper-ui/tokens/fonts.css"; /* To import Hopper fonts */ -@import "@hopper-ui/tokens/tokens.css"; /* To import the design tokens */ -@import "@hopper-ui/tokens/dark/tokens.css"; /* optional - if your application supports dark mode */ +@import url("@hopper-ui/tokens/fonts.css"); /* To import Hopper fonts */ +@import url("@hopper-ui/tokens/tokens.css"); /* To import the design tokens */ +@import url("@hopper-ui/tokens/dark/tokens.css"); /* optional - if your application supports dark mode */ ``` If your application supports dark mode, you can include the dark mode token styles for seamless theme switching. diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index 2306f06a0..ab1beb8de 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -38,7 +38,7 @@ root.render( Add Hopper styles to your project by importing the following CSS file. Place this in your global CSS file or main stylesheet. ```css -@import "@hopper-ui/components/index.css"; +@import url("@hopper-ui/components/index.css"); ``` ### Enjoy! From a298bb8c4ca0ccc57044749aa685b492f7cf91d7 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 14:20:08 -0500 Subject: [PATCH 30/37] update indentation in examples --- apps/docs/content/components/icons/Icon.mdx | 4 +-- .../getting-started/guides/components.mdx | 28 +++++++++---------- .../getting-started/guides/text-crop.mdx | 2 +- .../installation-path/react.mdx | 18 ++++++------ 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/apps/docs/content/components/icons/Icon.mdx b/apps/docs/content/components/icons/Icon.mdx index 2231ade52..5513c07fb 100644 --- a/apps/docs/content/components/icons/Icon.mdx +++ b/apps/docs/content/components/icons/Icon.mdx @@ -28,7 +28,7 @@ Both `Icon` and `createIcon` enable you to style the icon using the styled syste The `createIcon` function is a convenience wrapper around the process of generating icons with `Icon`, allowing you to achieve the same functionality with less effort. -```jsx +```tsx import CustomIcon16 from "./path/to/custom-icon-16.svg"; import CustomIcon24 from "./path/to/custom-icon-24.svg"; import CustomIcon32 from "./path/to/custom-icon-32.svg"; @@ -39,7 +39,7 @@ const CustomIcon = createIcon(CustomIcon16, CustomIcon24, CustomIcon32, "CustomI ### Using the Icon component -```jsx +```tsx import CustomIcon16 from "./path/to/custom-icon-16.svg" import CustomIcon24 from "./path/to/custom-icon-24.svg" import CustomIcon32 from "./path/to/custom-icon-32.svg" diff --git a/apps/docs/content/getting-started/guides/components.mdx b/apps/docs/content/getting-started/guides/components.mdx index a34a9f50a..4271f99e0 100644 --- a/apps/docs/content/getting-started/guides/components.mdx +++ b/apps/docs/content/getting-started/guides/components.mdx @@ -70,12 +70,12 @@ Append custom CSS classes to modify styles. ```tsx export function AICard({ children, className, ...rest }: CardProps) { - const classNames = clsx(className, "ai-gradiant-border"); - return ( - - {children} - - ); + const classNames = clsx(className, "ai-gradiant-border"); + return ( + + {children} + + ); } ``` @@ -113,14 +113,14 @@ You can control the component's behavior by passing a controlled property. ```tsx function MyCustomButtonPopoverTrigger({ children, ...rest }: PopoverTriggerProps) { - const ref = useRef(); - const isHovered = useHover(ref); - return ( - - - {children} - - ); + const ref = useRef(); + const isHovered = useHover(ref); + return ( + + + {children} + + ); } ``` diff --git a/apps/docs/content/getting-started/guides/text-crop.mdx b/apps/docs/content/getting-started/guides/text-crop.mdx index 1b2c09fcd..0f6542b43 100644 --- a/apps/docs/content/getting-started/guides/text-crop.mdx +++ b/apps/docs/content/getting-started/guides/text-crop.mdx @@ -32,7 +32,7 @@ If you need to implement this technique, you can use the following CSS. Keep in ```css title="component.css" .off-centered-text { - font-family: 'ABC Favorit Mono', sans-serif; + font-family: 'ABC Favorit Mono', sans-serif; } .off-centenred-text::before, diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index ab1beb8de..fde1b3acd 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -27,9 +27,9 @@ import { createRoot } from 'react-dom/client'; const root = createRoot(document.getElementById('root')); root.render( - - - + + + ); ``` @@ -48,12 +48,12 @@ Leverage Hopper's components and styled system to build user interfaces efficien import { Button, Stack } from "@hopper-ui/components"; const Demo = () => { - return ( - - - - - ) + return ( + + + + + ); } ``` From d98008d5cba603e6b34af7e6e2082ab7a1a40fbd Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 14:24:00 -0500 Subject: [PATCH 31/37] fix build --- apps/docs/content/getting-started/overview/installation.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/content/getting-started/overview/installation.mdx b/apps/docs/content/getting-started/overview/installation.mdx index 0743f8422..ba6d386b4 100644 --- a/apps/docs/content/getting-started/overview/installation.mdx +++ b/apps/docs/content/getting-started/overview/installation.mdx @@ -5,7 +5,7 @@ order: 1 status: ready --- -import JsIcon from "./JsIcon.tsx" +import JsIcon from "./JSIcon.tsx" import ReactIcon from "./ReactIcon.tsx" Hopper is [Workleap](https://workleap.com/)'s official design system, offering a robust collection of [React components](/components/component-list), [design tokens](/tokens/overview/introduction) and [icons](/icons/overview/introduction) to streamline application development and maintain brand consistency. From 8679ee047f13b9f521f0adf91c840403f83e972c Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Fri, 29 Nov 2024 15:01:52 -0500 Subject: [PATCH 32/37] added a Figure component to the documentation --- apps/docs/.eslintrc.json | 1 + apps/docs/components/figure/Figure.stories.ts | 35 ++++++++++++++++++ apps/docs/components/figure/Figure.tsx | 26 +++++++++++++ apps/docs/components/figure/figure.css | 20 ++++++++++ apps/docs/components/image/image.css | 2 +- apps/docs/components/mdx/components.tsx | 2 + .../getting-started/guides/components.mdx | 2 + .../content/tokens/overview/introduction.mdx | 4 +- apps/docs/public/product-cycle.png | Bin 0 -> 31153 bytes 9 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 apps/docs/components/figure/Figure.stories.ts create mode 100644 apps/docs/components/figure/Figure.tsx create mode 100644 apps/docs/components/figure/figure.css create mode 100644 apps/docs/public/product-cycle.png diff --git a/apps/docs/.eslintrc.json b/apps/docs/.eslintrc.json index 76c1bb5c8..ca1d22508 100644 --- a/apps/docs/.eslintrc.json +++ b/apps/docs/.eslintrc.json @@ -18,6 +18,7 @@ "Expand": true, "TokenTable": true, "MotionPreview": true, + "Figure": true, "Footnote": true, "TypographyTable": true, "TypographyVariantTable": true, diff --git a/apps/docs/components/figure/Figure.stories.ts b/apps/docs/components/figure/Figure.stories.ts new file mode 100644 index 000000000..29bc66efe --- /dev/null +++ b/apps/docs/components/figure/Figure.stories.ts @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from "@storybook/react"; + +import Card from "./Card"; + +const meta = { + title: "components/Card", + component: Card, + args: { + children: "Card content" + } +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = {}; + +export const Sizes: Story = { + args: { + size: "sm" + } +}; + +export const Align: Story = { + args: { + align: "start" + } +}; + +export const Ghost: Story = { + args: { + ghost: true, + align: "start" + } +}; diff --git a/apps/docs/components/figure/Figure.tsx b/apps/docs/components/figure/Figure.tsx new file mode 100644 index 000000000..9e715d2bd --- /dev/null +++ b/apps/docs/components/figure/Figure.tsx @@ -0,0 +1,26 @@ +import clsx from "clsx"; +import type { ComponentProps } from "react"; +import Image from "../image/Image"; + +import "./figure.css"; + +export interface FigureProps extends ComponentProps<"div">{ + src: string; + alt: string; + width: number; + height: number; + caption: string; +} + +const Figure = ({ alt, caption, className, width, height, src, ...rest }: FigureProps) => { + const figureClass = clsx("hd-figure", className); + + return ( +
+ {alt} +
{caption}
+
+ ); +}; + +export default Figure; diff --git a/apps/docs/components/figure/figure.css b/apps/docs/components/figure/figure.css new file mode 100644 index 000000000..2b9d532a0 --- /dev/null +++ b/apps/docs/components/figure/figure.css @@ -0,0 +1,20 @@ +.hd-figure { + display: flex; + flex-direction: column; + max-width: 37.5rem; + margin-top: var(--hd-space-3); + position: relative; +} + +.hd-figure__figcaption { + color: var(--hd-color-neutral-text-weak); + font-family: "ABC Favorit Mono", monospace; + font-size: 0.875rem; + line-height: 1.125; + margin-top: var(--hd-space-2); +} + +.hd-figure__image { + height: auto; + max-width: 100%; +} diff --git a/apps/docs/components/image/image.css b/apps/docs/components/image/image.css index edaf94424..0febdf01c 100644 --- a/apps/docs/components/image/image.css +++ b/apps/docs/components/image/image.css @@ -1,4 +1,4 @@ .hd-image { - width: 100%; + max-width: 100%; height: auto; } diff --git a/apps/docs/components/mdx/components.tsx b/apps/docs/components/mdx/components.tsx index 608a2780d..3509cd546 100644 --- a/apps/docs/components/mdx/components.tsx +++ b/apps/docs/components/mdx/components.tsx @@ -16,6 +16,7 @@ import CardLink from "@/components/cardLink/cardLink.tsx"; import CardLinkList from "@/components/cardLink/cardLinkList.tsx"; import InlineCode from "@/components/code/InlineCode.tsx"; import Expand from "@/components/expand/Expand.tsx"; +import Figure from "@/components/figure/Figure.tsx"; import Footnote from "@/components/footnote/Footnote.tsx"; import NextImage from "@/components/image/Image.tsx"; import MotionPreview from "@/components/motionPreview/MotionPreview.tsx"; @@ -51,6 +52,7 @@ export const components = { code: InlineCode, Callout: Callout, Expand, + Figure, Image: NextImage, pre: Pre, Tag, diff --git a/apps/docs/content/getting-started/guides/components.mdx b/apps/docs/content/getting-started/guides/components.mdx index a34a9f50a..57024769e 100644 --- a/apps/docs/content/getting-started/guides/components.mdx +++ b/apps/docs/content/getting-started/guides/components.mdx @@ -11,6 +11,8 @@ Hopper components are built with well-considered defaults that meet common produ To support fast-paced product development, Hopper provides a range of options for customization, from simple styling adjustments to creating entirely new components. +
+ ## Customization Principles The Hopper design systems are built on the principle that “components are designed to be overridden, not locked-in.” This allows developers to adjust styles and behaviors to meet specific product needs, while ensuring components remain usable and adaptable. diff --git a/apps/docs/content/tokens/overview/introduction.mdx b/apps/docs/content/tokens/overview/introduction.mdx index 217ba5ca1..31c586080 100644 --- a/apps/docs/content/tokens/overview/introduction.mdx +++ b/apps/docs/content/tokens/overview/introduction.mdx @@ -15,9 +15,7 @@ A design token can store any of the following elements: Hopper aims to provide a three-tier token system, with each tier serving a specific purpose. - - Token tiers diagram - +
### Core tokens diff --git a/apps/docs/public/product-cycle.png b/apps/docs/public/product-cycle.png new file mode 100644 index 0000000000000000000000000000000000000000..a4016c1571ee2257928b750208b1c6f095abd6ee GIT binary patch literal 31153 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 Yj-dbBjR>y*oVq|dTKW%5HEhEF58BNZm;e9( literal 0 HcmV?d00001 From a527bb3ecb46c588a255ff841620b6c81e3a615f Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 15:16:50 -0500 Subject: [PATCH 33/37] update doc --- .../getting-started/guides/components.mdx | 44 ++++++++++++++++--- .../installation-path/javascript.mdx | 37 +++++++++++----- .../content/icons/overview/introduction.mdx | 4 +- 3 files changed, 66 insertions(+), 19 deletions(-) diff --git a/apps/docs/content/getting-started/guides/components.mdx b/apps/docs/content/getting-started/guides/components.mdx index 4271f99e0..417fafb9f 100644 --- a/apps/docs/content/getting-started/guides/components.mdx +++ b/apps/docs/content/getting-started/guides/components.mdx @@ -11,19 +11,39 @@ Hopper components are built with well-considered defaults that meet common produ To support fast-paced product development, Hopper provides a range of options for customization, from simple styling adjustments to creating entirely new components. -## Customization Principles +## Customization Tiers The Hopper design systems are built on the principle that “components are designed to be overridden, not locked-in.” This allows developers to adjust styles and behaviors to meet specific product needs, while ensuring components remain usable and adaptable. There are multiple customization methods available, and to highlight why some are better suited than others, I’ve organized them into four tiers: -🥇**Gold Tier:** Maximize reuse of the Design System, applying only minimal overwrites to fit your needs. -🥈**Silver Tier:** Reuse most of the component’s behaviors. - -🥉**Bronze Tier:** Reassemble the component’s behavior using smaller utility methods. - -🛠️**Do it yourself:** Build the behavior from scratch and use low-level styling tools as needed + + + + + + + + + + + + + + + + + + + + + + + + + +
Customization TierDescription
🥇**Gold Tier**Maximize reuse of the Design System, applying only minimal overwrites to fit your needs.
🥈**Silver Tier**Reuse most of the component’s behaviors, but make some modifications to fit your needs.
🥉**Bronze Tier**Reassemble the component’s behavior using smaller utility methods.
🛠️**Do it yourself**Build the behavior from scratch and use low-level styling tools as needed.
## Customization Methods Overview @@ -80,6 +100,8 @@ export function AICard({ children, className, ...rest }: CardProps) { ``` +

+ ### 🥇 Behavior Modifications To customize a component's behavior, use refs, callbacks and controlled properties. This approach is useful for interactive features and for modifying default component behavior. This approach is ideal when you need to adjust how a component responds to user interactions without altering its visual style or structure. Read more about _Controlled vs Uncontrolled components_ [here](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components). @@ -125,6 +147,8 @@ function MyCustomButtonPopoverTrigger({ children, ...rest }: PopoverTriggerProps ``` +

+ ### 🥈 Copying Component When you need extensive customizations that go beyond simple styling or behavior adjustments, copying the component code can be an effective solution. This allows you to make specific changes while retaining the existing structure, making the customized component reusable across similar use cases. @@ -137,6 +161,8 @@ Take a look to [Hopper's components source code](https://github.com/gsoft-inc/wl

Share your needs in **#ds-hopper!** +

+ ### 🥈 Custom Components Using Base Components If the existing Design System component feels too complex for your needs, take a closer look at its underlying structure in the code. In Hopper, it's likely built on a [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) component, which you can directly leverage to create a more tailored solution. React Aria offers a robust library of foundational components, making it a versatile starting point. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components. @@ -147,6 +173,8 @@ If the existing Design System component feels too complex for your needs, take a Using this approach may require you to restyle the entire component, which is fine. At this stage, you’re essentially creating something new! Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! +

+ ### 🥉 Custom Components Using Hooks If there is no base components to use, or if the base component is again too strict for you needs, you can use underlying hooks for more granular control. [React Aria](https://react-spectrum.adobe.com/react-aria/hooks.html) also offer hooks that you can tailor components more precisely to your needs. [The Technology team recommends using React Aria](https://workleap.atlassian.net/wiki/spaces/TL/pages/3469508719) as the preferred foundation for building components. @@ -157,6 +185,8 @@ If there is no base components to use, or if the base component is again too str Using this approach may require you to restyle the entire component, which is fine. At this stage, you’re essentially creating something new! Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! +

+ ### 🛠️ Building Components From Scratch For unique needs that go beyond the capabilities of design system components, building a component from scratch may be necessary. At this point, the only recommendation we can give is to refer to the [WAI Aria Patterns](https://www.w3.org/WAI/ARIA/apg/patterns/) or [Spec](https://www.w3.org/WAI/ARIA/apg/) to determine the expected behavior of controls. Using this approach you will have to style the entire component, which is fine. Just be sure to use [Hopper tokens](../../tokens/overview/introduction) to ensure that any future branding updates are automatically applied to your component without needing manual adjustments. If you want to allow customization on your component, you can also use the `useStyledSystem` hook to expose style props! diff --git a/apps/docs/content/getting-started/installation-path/javascript.mdx b/apps/docs/content/getting-started/installation-path/javascript.mdx index 40bbc173a..6eae7ed40 100644 --- a/apps/docs/content/getting-started/installation-path/javascript.mdx +++ b/apps/docs/content/getting-started/installation-path/javascript.mdx @@ -1,23 +1,25 @@ --- title: Other Frameworks -description: An installation guide for Hopper for non-React users. +description: Installation procedure for using Hopper in non-React projects order: 2 status: ready --- -Hopper is a Design System that provides a collection of tokens and icons to help you build beautiful, consistent applications. +Hopper is a flexible Design System designed to help you create visually consistent and beautiful applications. While Hopper offers React components for building UI elements, its design tokens and icons are framework-agnostic, making them accessible for use in any project, whether you're using a different framework or plain HTML and CSS. -You don't need to use React to take advantage of Hopper's features. This guide will show you how to use Hopper tokens and icons in any framework or plain HTML/CSS project. +## What Hopper Offers +- **Design Tokens**: Predefined design decisions such as colors, spacing, and typography, provided as reusable CSS variables for styling your application. +- **Icons**: A comprehensive library of SVG icons, easily accessible through the @hopper-ui/svg-icons package. -Hopper tokens are predefined design decisions (such as colors, spacing, and typography) translated into CSS variables to style your application. For icons, you can use Hopper's SVG icons, available via the `@hopper-ui/svg-icons` package. +This installation procedure provides the steps needed to set up Hopper tokens and icons in non-React projects, enabling you to incorporate these resources directly into your application -## Installation +## Tokens Installation -### Install Packages +### Install Package -Run the following command to install Hopper tokens and SVG icons. +Run the following command to install Hopper tokens. - + ### Import Styles @@ -41,13 +43,28 @@ You can now use Hopper tokens in your project by referencing the design tokens a } ``` -You can import an SVG icon directly into your JavaScript or TypeScript file. If you plan to use SVG icons as components, ensure your bundler (e.g., Webpack, Vite, or Rollup) is configured to handle SVG imports correctly. +## Icons Installation + +### Install Package +Run the following command to install Hopper SVG icons. + + + +### Usage + +You can use Hopper SVG icons in two ways: + +#### In JavaScript/TypeScript Files + +Import an SVG icon directly into your code. Ensure your bundler (e.g., Webpack, Vite, Rollup) is configured to handle SVG imports correctly. ```tsx import alertIcon from "@hopper-ui/svg-icons/alert-24.svg"; ``` -Alternatively, you can use SVG icons directly in your CSS, like this: +#### In CSS + +Use SVG icons directly in your CSS for styles such as background images. ```css .my-component { diff --git a/apps/docs/content/icons/overview/introduction.mdx b/apps/docs/content/icons/overview/introduction.mdx index b77d64841..d638b43ab 100644 --- a/apps/docs/content/icons/overview/introduction.mdx +++ b/apps/docs/content/icons/overview/introduction.mdx @@ -15,7 +15,7 @@ Icons are an essential part of building intuitive and engaging user interfaces. Hopper provides two main packages, React components or pure SVG, giving you the flexibility to choose how to integrate icons into your project. -### React Package +### React Applications Designed specifically for React applications, this package offers all icons as React components. @@ -28,7 +28,7 @@ Designed specifically for React applications, this package offers all icons as R -### SVG Package +### Other Frameworks Ideal for non-React setups, this package provides raw SVG files. From d8d23a5b76aa5107e30940ca527e7a81fab27ec5 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Fri, 29 Nov 2024 15:48:07 -0500 Subject: [PATCH 34/37] updated npm logo --- apps/docs/components/icon/assets/npm.svg | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/docs/components/icon/assets/npm.svg b/apps/docs/components/icon/assets/npm.svg index 899f552ad..6aa530f2f 100644 --- a/apps/docs/components/icon/assets/npm.svg +++ b/apps/docs/components/icon/assets/npm.svg @@ -1,3 +1 @@ - - - + From bcb0767b7755d559022c1923ae3ef6d8cdc94929 Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 16:47:03 -0500 Subject: [PATCH 35/37] add line highlight --- apps/docs/app/rehype.css | 5 +++++ apps/docs/content/components/icons/Icon.mdx | 4 ++-- .../docs/content/getting-started/installation-path/react.mdx | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/docs/app/rehype.css b/apps/docs/app/rehype.css index be3027aec..cc0f90ec6 100644 --- a/apps/docs/app/rehype.css +++ b/apps/docs/app/rehype.css @@ -98,3 +98,8 @@ code[data-theme*=' '] span { font-style: italic; font-size: .875rem; } + + +.highlighted { + background-color: var(--hd-codeblock-line-highlighted-background-color); +} diff --git a/apps/docs/content/components/icons/Icon.mdx b/apps/docs/content/components/icons/Icon.mdx index 5513c07fb..c5ea64da1 100644 --- a/apps/docs/content/components/icons/Icon.mdx +++ b/apps/docs/content/components/icons/Icon.mdx @@ -28,7 +28,7 @@ Both `Icon` and `createIcon` enable you to style the icon using the styled syste The `createIcon` function is a convenience wrapper around the process of generating icons with `Icon`, allowing you to achieve the same functionality with less effort. -```tsx +```tsx {6} import CustomIcon16 from "./path/to/custom-icon-16.svg"; import CustomIcon24 from "./path/to/custom-icon-24.svg"; import CustomIcon32 from "./path/to/custom-icon-32.svg"; @@ -39,7 +39,7 @@ const CustomIcon = createIcon(CustomIcon16, CustomIcon24, CustomIcon32, "CustomI ### Using the Icon component -```tsx +```tsx {8-12} import CustomIcon16 from "./path/to/custom-icon-16.svg" import CustomIcon24 from "./path/to/custom-icon-24.svg" import CustomIcon32 from "./path/to/custom-icon-32.svg" diff --git a/apps/docs/content/getting-started/installation-path/react.mdx b/apps/docs/content/getting-started/installation-path/react.mdx index fde1b3acd..5d72a26ec 100644 --- a/apps/docs/content/getting-started/installation-path/react.mdx +++ b/apps/docs/content/getting-started/installation-path/react.mdx @@ -21,7 +21,7 @@ Run the following command to install Hopper packages and their peer dependencies Wrap your application with the [HopperProvider](/components/HopperProvider) component. This sets up the global styles and context required for Hopper components. Typically, this is done in your `index.tsx` or `app.tsx`, but it may vary depending on your setup. -```tsx +```tsx {2,6,8} import { HopperProvider } from "@hopper-ui/components"; import { createRoot } from 'react-dom/client'; From aca3c009cc88a174816fdbc271fe9509bb114e8c Mon Sep 17 00:00:00 2001 From: Alexandre Asselin Date: Fri, 29 Nov 2024 16:53:14 -0500 Subject: [PATCH 36/37] remove broken file --- apps/docs/components/figure/Figure.stories.ts | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 apps/docs/components/figure/Figure.stories.ts diff --git a/apps/docs/components/figure/Figure.stories.ts b/apps/docs/components/figure/Figure.stories.ts deleted file mode 100644 index 29bc66efe..000000000 --- a/apps/docs/components/figure/Figure.stories.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/react"; - -import Card from "./Card"; - -const meta = { - title: "components/Card", - component: Card, - args: { - children: "Card content" - } -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Default: Story = {}; - -export const Sizes: Story = { - args: { - size: "sm" - } -}; - -export const Align: Story = { - args: { - align: "start" - } -}; - -export const Ghost: Story = { - args: { - ghost: true, - align: "start" - } -}; From 27aeec27dd37132b884677a7896b5f9338b6d894 Mon Sep 17 00:00:00 2001 From: Francis Thibault Date: Fri, 29 Nov 2024 21:26:49 -0500 Subject: [PATCH 37/37] copy fix / collapsible shadow dark mode adjustments --- apps/docs/app/page.tsx | 2 +- apps/docs/app/tokens.css | 2 ++ apps/docs/components/collapsible/collapsible.css | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index 32ed9fc4a..19735e106 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -67,7 +67,7 @@ export default function Home() { handpicked for ultimate simplicity and accessibility.

- +