Repository: gdg-hongik-univ/wow-design-system
Pull request #218: [Chore] next peerDeps 수정 및 컴포넌트 버그 수정
Author: login: SeieunYoo
Created: 2025-04-23T02:10:52Z | Merged: 2025-04-23T07:54:49Z

## 🎉 변경 사항
- className 관련 버그 수정
- next 14.2.25 이하 버전에서 보안성 이슈 peerDeps 14.2.25 이상으로 수정

## 🚩 관련 이슈
- closed #186 
- closed #95 

### 🙏 여기는 꼭 봐주세요!


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **New Features**
  - Box, Button, Divider, Header, SearchBar, TextButton, TextField, Toast 컴포넌트에 외부 className 속성 지원이 추가되어 스타일 확장이 가능해졌습니다.

- **Bug Fixes**
  - Checkbox 비활성화 시 커서 스타일이 'none'에서 'not-allowed'로 변경되어 시각적 피드백이 개선되었습니다.

- **Documentation**
  - wow-ui 패키지의 README 및 관련 문서가 최신 정보와 포맷으로 개선되었습니다.
  - Stepper 컴포넌트의 JSDoc 위치가 인터페이스 위로 이동하여 문서 가독성이 향상되었습니다.

- **Chores**
  - next 및 관련 패키지의 버전이 최신으로 업데이트되었습니다.
  - 패키지 메타데이터(키워드, URL 등)가 정정 및 개선되었습니다.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Linked issue #186: [Bug] className property 가 기존의 className 가 합쳐질 수 있게 수정
## 🎯 설명
https://github.com/GDSC-Hongik/wow-class/pull/166#issuecomment-2571560050

- 외부에서 주입받은 className 프로퍼티가 가 기존의 className 가 합쳐질 수 있게 수정하여 className 으로 스타일링 될 수 있게 수정합니다.
- rest 로 className 을 넘겨주고 있는 컴포넌트를 파악하고 수정합니다.
## ✅ TODO
- [ ]  clsx 로 기존의 className 과 주입 받은 className 을 합쳐줍니다.


Diff:
diff --git a/.changeset/itchy-scissors-visit.md b/.changeset/itchy-scissors-visit.md
new file mode 100644
index 00000000..0a1aaf4e
--- /dev/null
+++ b/.changeset/itchy-scissors-visit.md
@@ -0,0 +1,5 @@
+---
+"wowds-ui": patch
+---
+
+next peerdeps 14.2.25 이상으로 수정 및 className 관련 버그 수정
diff --git a/apps/wow-docs/next-env.d.ts b/apps/wow-docs/next-env.d.ts
index 4f11a03d..40c3d680 100644
--- a/apps/wow-docs/next-env.d.ts
+++ b/apps/wow-docs/next-env.d.ts
@@ -2,4 +2,4 @@
 /// <reference types="next/image-types/global" />
 
 // NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
+// see https://nextjs.org/docs/app/building-your-application/configuring/typescript for more information.
diff --git a/apps/wow-docs/package.json b/apps/wow-docs/package.json
index a7df2532..847c4881 100644
--- a/apps/wow-docs/package.json
+++ b/apps/wow-docs/package.json
@@ -12,7 +12,7 @@
   },
   "dependencies": {
     "clsx": "^2.1.1",
-    "next": "^14.1.1",
+    "next": "^14.2.25",
     "react": "^18.2.0",
     "react-dom": "^18.2.0",
     "wowds-icons": "workspace:^",
diff --git a/packages/wow-ui/README.md b/packages/wow-ui/README.md
index 79ef28e8..436d44dc 100644
--- a/packages/wow-ui/README.md
+++ b/packages/wow-ui/README.md
@@ -19,7 +19,6 @@ yarn add wowds-ui
 
 ## 🛠️ Usage
 
-
 ```ts
 import Button from "wowds-ui/Button";
 
@@ -34,7 +33,7 @@ export default App;
 
 ```
 1. 레포 클론
-git clone https://github.com/GDSC-Hongik/wow-design-system.git
+git clone https://github.com/gdg-hongik-univ/wow-design-system.git
 
 2. 디렉토리 이동
 cd packages/wow-ui
@@ -44,11 +43,13 @@ pnpm install
 ```
 
 ## 🌐 Links
+
 - [npm](https://www.npmjs.com/package/wowds-ui)
 - [storybook](https://wow-design-system-wow-ui.vercel.app/?path=/docs/ui-avatar--docs)
-- [wow-docs](https://wow-design-system-wow-docs.vercel.app/overview)
+- [wow-docs](https://wow-ds.wawoo.dev/overview)
 
 ## 🚀 Tech Stack
+
 <div align="left">
 <div>
 <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white">
diff --git a/packages/wow-ui/package.json b/packages/wow-ui/package.json
index 90f3c93c..f27be04f 100644
--- a/packages/wow-ui/package.json
+++ b/packages/wow-ui/package.json
@@ -216,7 +216,12 @@
       "import": "./dist/Avatar.js"
     }
   },
-  "keywords": [],
+  "keywords": [
+    "디자인시스템",
+    "wow-design-system",
+    "wowds-ui",
+    "component"
+  ],
   "license": "ISC",
   "scripts": {
     "build": "pnpm generate:build-config && rm -rf dist && rollup -c --bundleConfigAsCjs && tsc-alias && panda cssgen --outfile dist/styles.css",
@@ -266,11 +271,11 @@
     "wowds-icons": "workspace:^"
   },
   "peerDependencies": {
-    "next": "^14.1.1",
+    "next": ">=14.2.25",
     "react": "^18.2.0"
   },
   "bugs": {
-    "url": "https://github.com/GDSC-Hongik/wow-design-system/issues"
+    "url": "https://github.com/gdg-hongik-univ/wow-design-system/issues"
   },
-  "homepage": "https://github.com/GDSC-Hongik/wow-design-system#readme"
+  "homepage": "https://github.com/gdg-hongik-univ/wow-design-system#readme"
 }
diff --git a/packages/wow-ui/src/components/Box/index.tsx b/packages/wow-ui/src/components/Box/index.tsx
index 0f965d06..fc648631 100644
--- a/packages/wow-ui/src/components/Box/index.tsx
+++ b/packages/wow-ui/src/components/Box/index.tsx
@@ -2,6 +2,7 @@
 import { cva } from "@styled-system/css";
 import { Flex, styled } from "@styled-system/jsx";
 import type { ColorToken } from "@styled-system/tokens";
+import { clsx } from "clsx";
 import { RightArrow, Warn } from "wowds-icons";
 
 import Checkbox from "@/components/Checkbox";
@@ -54,6 +55,7 @@ const Box = <T extends BoxVariantType = "text">({
   onClick,
   onChange,
   checked: checkedProp,
+  className,
   ...rest
 }: BoxProps<T>) => {
   const { handleClick, checked } = useCheckedState({
@@ -86,10 +88,13 @@ const Box = <T extends BoxVariantType = "text">({
       gap={variant !== "text" ? "lg" : undefined}
       id={`box-${text}`}
       justifyContent="space-between"
-      className={containerStyle({
-        status: disabled ? "disabled" : status,
-        variant: disabled ? "disabled" : variant,
-      })}
+      className={clsx(
+        className,
+        containerStyle({
+          status: disabled ? "disabled" : status,
+          variant: disabled ? "disabled" : variant,
+        })
+      )}
       onClick={handleArrowClick}
       {...rest}
     >
diff --git a/packages/wow-ui/src/components/Button/index.tsx b/packages/wow-ui/src/components/Button/index.tsx
index ea6fad1e..a9297f19 100644
--- a/packages/wow-ui/src/components/Button/index.tsx
+++ b/packages/wow-ui/src/components/Button/index.tsx
@@ -2,6 +2,7 @@
 
 import { cva } from "@styled-system/css/cva";
 import { styled } from "@styled-system/jsx";
+import { clsx } from "clsx";
 import type { CSSProperties, ElementType, ReactNode } from "react";
 import { forwardRef } from "react";
 
@@ -56,6 +57,7 @@ const Button: ButtonComponent & { displayName?: string } = forwardRef(
       size = "lg",
       variant = "solid",
       icon,
+      className,
       ...rest
     }: ButtonProps<C>,
     ref?: PolymorphicRef<C>
@@ -67,10 +69,13 @@ const Button: ButtonComponent & { displayName?: string } = forwardRef(
         aria-disabled={disabled}
         disabled={disabled}
         ref={ref}
-        className={ButtonStyle({
-          size: variant === "sub" ? "sm" : size,
-          variant,
-        })}
+        className={clsx(
+          className,
+          ButtonStyle({
+            size: variant === "sub" ? "sm" : size,
+            variant,
+          })
+        )}
         {...rest}
       >
         <styled.span className={ContentStyle({ size })}>
diff --git a/packages/wow-ui/src/components/Checkbox/index.tsx b/packages/wow-ui/src/components/Checkbox/index.tsx
index 44133f26..43a983c2 100644
--- a/packages/wow-ui/src/components/Checkbox/index.tsx
+++ b/packages/wow-ui/src/components/Checkbox/index.tsx
@@ -87,7 +87,7 @@ const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(
     return (
       <styled.label
         alignItems="center"
-        cursor={disabled ? "none" : "pointer"}
+        cursor={disabled ? "not-allowed" : "pointer"}
         display="flex"
         flexDirection={position === "vertical" ? "column-reverse" : "row"}
         gap={label ? "xs" : "0px"}
diff --git a/packages/wow-ui/src/components/Chip/index.tsx b/packages/wow-ui/src/components/Chip/index.tsx
index f35e7a73..7d35743d 100644
--- a/packages/wow-ui/src/components/Chip/index.tsx
+++ b/packages/wow-ui/src/components/Chip/index.tsx
@@ -1,7 +1,7 @@
 "use client";
 import { cva } from "@styled-system/css";
 import { styled } from "@styled-system/jsx";
-import clsx from "clsx";
+import { clsx } from "clsx";
 import type { ReactNode } from "react";
 import { forwardRef, useEffect, useState } from "react";
 
diff --git a/packages/wow-ui/src/components/Divider/index.tsx b/packages/wow-ui/src/components/Divider/index.tsx
index 65d6f26e..aed1b69c 100644
--- a/packages/wow-ui/src/components/Divider/index.tsx
+++ b/packages/wow-ui/src/components/Divider/index.tsx
@@ -1,5 +1,6 @@
 import { cva } from "@styled-system/css";
 import { styled } from "@styled-system/jsx";
+import { clsx } from "clsx";
 import type { CSSProperties } from "react";
 
 /**
@@ -16,12 +17,15 @@ export interface DividerProps {
   className?: string;
 }
 
-const Divider = ({ type = "light", ...rest }: DividerProps) => {
+const Divider = ({ type = "light", className, ...rest }: DividerProps) => {
   return (
     <styled.div
-      className={dividerStyle({
-        type,
-      })}
+      className={clsx(
+        className,
+        dividerStyle({
+          type,
+        })
+      )}
       {...rest}
     />
   );
diff --git a/packages/wow-ui/src/components/Header/index.tsx b/packages/wow-ui/src/components/Header/index.tsx
index a7532947..5aa85984 100644
--- a/packages/wow-ui/src/components/Header/index.tsx
+++ b/packages/wow-ui/src/components/Header/index.tsx
@@ -1,3 +1,13 @@
+import { css } from "@styled-system/css";
+import { Flex } from "@styled-system/jsx";
+import { clsx } from "clsx";
+import { GdscLogo } from "wowds-icons";
+
+import Button from "@/components/Button";
+import type { DefaultProps } from "@/types/DefaultProps";
+
+type RightElementType = "username" | "login" | "none";
+
 /**
  * @description 헤더 컴포넌트입니다.
  * 사이트 로고와 로그인 또는 사용자 이름 표시 기능을 포함합니다.
@@ -11,15 +21,7 @@
  * @param {T extends "login" ? () => void : never} [onClick] - 로그인 버튼 클릭 시 호출되는 함수.
  */
 
-import { css } from "@styled-system/css";
-import { Flex } from "@styled-system/jsx";
-import { GdscLogo } from "wowds-icons";
-
-import Button from "@/components/Button";
-
-type RightElementType = "username" | "login" | "none";
-
-export interface HeaderProps<T extends RightElementType> {
+export interface HeaderProps<T extends RightElementType> extends DefaultProps {
   variant?: T;
   username?: T extends "username" ? string : never;
   onClick?: T extends "login" ? () => void : never;
@@ -29,9 +31,16 @@ const Header = ({
   variant = "none",
   username,
   onClick,
+  className,
+  ...rest
 }: HeaderProps<RightElementType>) => {
   return (
-    <header aria-label="header" className={headerStyle} role="banner">
+    <header
+      aria-label="header"
+      className={clsx(headerStyle, className)}
+      role="banner"
+      {...rest}
+    >
       <div className={headerContentStyle}>
         <section className={leftElementContainerStyle}>
           <GdscLogo aria-label="gdsc-logo" role="img" />
diff --git a/packages/wow-ui/src/components/SearchBar/index.tsx b/packages/wow-ui/src/components/SearchBar/index.tsx
index 86b0e52a..8215be50 100644
--- a/packages/wow-ui/src/components/SearchBar/index.tsx
+++ b/packages/wow-ui/src/components/SearchBar/index.tsx
@@ -2,6 +2,7 @@
 
 import { cva } from "@styled-system/css";
 import { Flex, styled } from "@styled-system/jsx";
+import { clsx } from "clsx";
 import type { CSSProperties, InputHTMLAttributes } from "react";
 import { forwardRef, useId, useLayoutEffect, useRef } from "react";
 import { Search as SearchIcon } from "wowds-icons";
@@ -55,6 +56,7 @@ const SearchBar = forwardRef<HTMLInputElement, SearchBarProps>(
       maxLength,
       inputProps,
       disabled,
+      className,
       ...rest
     },
     ref
@@ -89,7 +91,11 @@ const SearchBar = forwardRef<HTMLInputElement, SearchBarProps>(
     }, [disabled, setVariant]);
 
     return (
-      <Flex className={containerStyle({ type: variant })} gap="xs" {...rest}>
+      <Flex
+        className={clsx(className, containerStyle({ type: variant }))}
+        gap="xs"
+        {...rest}
+      >
         <SearchIcon stroke={getStrokeColor(variant)} />
         <styled.input
           {...inputProps}
diff --git a/packages/wow-ui/src/components/Stepper/index.tsx b/packages/wow-ui/src/components/Stepper/index.tsx
index 967a9ffb..29c4c95e 100644
--- a/packages/wow-ui/src/components/Stepper/index.tsx
+++ b/packages/wow-ui/src/components/Stepper/index.tsx
@@ -5,6 +5,13 @@ import { useCallback, useMemo } from "react";
 
 import { calcPercent } from "@/utils/calcPercent";
 
+/**
+ * @param {number} step Stepper의 현재 스텝
+ * @param {number} [maxStep] Stepper가 가질 수 있는 최대 스텝
+ * @param {LabelType[]} [labels] Stepper에 하단에 입력할 라벨의 배열
+ * @param {number} [width] Stepper의 가로 길이를 자유롭게 정할 수 있어요. 단, 278px 이상이어야 합니다.
+ */
+
 export interface StepperProps {
   step: number;
   maxStep?: number;
@@ -23,13 +30,6 @@ const checkStepperStatus = (number: number, step: number) => {
   return "default";
 };
 
-/**
- * @param {number} step Stepper의 현재 스텝
- * @param {number} [maxStep] Stepper가 가질 수 있는 최대 스텝
- * @param {LabelType[]} [labels] Stepper에 하단에 입력할 라벨의 배열
- * @param {number} width Stepper의 가로 길이를 자유롭게 정할 수 있어요. 단, 278px 이상이어야 합니다.
- */
-
 const Stepper = ({ step = 1, maxStep = 3, labels, width }: StepperProps) => {
   const fillStepper = useCallback((maxStep: number, step: number) => {
     const ratio = (step - 1) / (maxStep - 1);
diff --git a/packages/wow-ui/src/components/TextButton/index.tsx b/packages/wow-ui/src/components/TextButton/index.tsx
index b5b43ab0..9a8eec50 100644
--- a/packages/wow-ui/src/components/TextButton/index.tsx
+++ b/packages/wow-ui/src/components/TextButton/index.tsx
@@ -2,6 +2,7 @@
 
 import { css } from "@styled-system/css";
 import { styled } from "@styled-system/jsx";
+import { clsx } from "clsx";
 import type { CSSProperties, ElementType, ReactNode } from "react";
 import { forwardRef } from "react";
 
@@ -42,7 +43,14 @@ type ButtonComponent = <C extends ElementType = "button">(
 
 const TextButton: ButtonComponent & { displayName?: string } = forwardRef(
   <C extends ElementType = "button">(
-    { asProp, text, disabled = false, size = "lg", ...rest }: ButtonProps<C>,
+    {
+      asProp,
+      text,
+      disabled = false,
+      size = "lg",
+      className,
+      ...rest
+    }: ButtonProps<C>,
     ref?: PolymorphicRef<C>
   ) => {
     const Component = asProp || "button";
@@ -50,7 +58,7 @@ const TextButton: ButtonComponent & { displayName?: string } = forwardRef(
     return (
       <Component
         aria-disabled={disabled}
-        className={TextButtonStyle}
+        className={clsx(className, TextButtonStyle)}
         disabled={disabled}
         ref={ref}
         {...rest}
diff --git a/packages/wow-ui/src/components/TextField/index.tsx b/packages/wow-ui/src/components/TextField/index.tsx
index 762772fc..d9a8812a 100644
--- a/packages/wow-ui/src/components/TextField/index.tsx
+++ b/packages/wow-ui/src/components/TextField/index.tsx
@@ -2,6 +2,7 @@
 
 import { cva } from "@styled-system/css";
 import { Flex, styled } from "@styled-system/jsx";
+import { clsx } from "clsx";
 import type {
   ChangeEvent,
   CSSProperties,
@@ -69,6 +70,7 @@ const TextField = forwardRef<HTMLTextAreaElement, TextFieldProps>(
       error = false,
       success = false,
       textareaProps,
+      className,
       ...rest
     },
     ref
@@ -122,7 +124,12 @@ const TextField = forwardRef<HTMLTextAreaElement, TextFieldProps>(
     };
 
     return (
-      <Flex className={containerStyle()} direction="column" gap="xs" {...rest}>
+      <Flex
+        className={clsx(className, containerStyle())}
+        direction="column"
+        gap="xs"
+        {...rest}
+      >
         <Flex alignItems="flex-end" justifyContent="space-between">
           <Label textareaId={descriptionId} variant={variant}>
             {label}
diff --git a/packages/wow-ui/src/components/Toast/index.tsx b/packages/wow-ui/src/components/Toast/index.tsx
index efd10216..8f0af7ef 100644
--- a/packages/wow-ui/src/components/Toast/index.tsx
+++ b/packages/wow-ui/src/components/Toast/index.tsx
@@ -3,6 +3,7 @@
 import { css } from "@styled-system/css";
 import type { FlexProps } from "@styled-system/jsx";
 import { Flex, styled } from "@styled-system/jsx";
+import { clsx } from "clsx";
 import type { CSSProperties } from "react";
 import { forwardRef, useEffect, useState } from "react";
 import type { IconProps } from "wowds-icons";
@@ -48,6 +49,7 @@ const Toast = forwardRef(
     rightIcon = "none",
     showLeftIcon = false,
     toastDuration,
+    className,
     ...rest
   }: ToastProps) => {
     const TOAST_DURATION = toastDuration || 2000;
@@ -79,12 +81,12 @@ const Toast = forwardRef(
         clearTimeout(timeoutForRemove);
         clearTimeout(timeoutForVisible);
       };
-    }, [id, removeToast]);
+    }, [TOAST_DURATION, id, onRemove, removeToast]);
 
     return (
       <Flex
         align="center"
-        className={toastContainerStyle}
+        className={clsx(className, toastContainerStyle)}
         justify="space-between"
         style={{ opacity }}
         transition="opacity"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 299d6f48..0c3db616 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -199,8 +199,8 @@ importers:
         specifier: ^2.1.1
         version: 2.1.1
       next:
-        specifier: ^14.1.1
-        version: 14.1.1(@babel/core@7.24.5)(react-dom@18.2.0)(react@18.2.0)
+        specifier: ^14.2.25
+        version: 14.2.28(@babel/core@7.24.5)(@playwright/test@1.45.0)(react-dom@18.2.0)(react@18.2.0)
       react:
         specifier: ^18.2.0
         version: 18.2.0
@@ -269,8 +269,8 @@ importers:
         specifier: ^2.4.0
         version: 2.4.0(react-dom@18.2.0)(react@18.2.0)
       next:
-        specifier: ^14.1.1
-        version: 14.1.1(@babel/core@7.24.5)(react-dom@18.2.0)(react@18.2.0)
+        specifier: '>=14.2.25'
+        version: 14.2.28(@babel/core@7.24.5)(@playwright/test@1.45.0)(react-dom@18.2.0)(react@18.2.0)
       react:
         specifier: ^18.2.0
         version: 18.2.0
@@ -310,7 +310,7 @@ importers:
         version: 8.1.9(@types/react-dom@18.2.19)(@types/react@18.2.61)(prettier@3.2.5)(react-dom@18.2.0)(react@18.2.0)
       '@storybook/nextjs':
         specifier: ^8.1.9
-        version: 8.1.9(@swc/core@1.5.7)(@types/jest@29.5.12)(esbuild@0.20.2)(jest@29.7.0)(next@14.1.1)(prettier@3.2.5)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.91.0)
+        version: 8.1.9(@swc/core@1.5.7)(@types/jest@29.5.12)(esbuild@0.20.2)(jest@29.7.0)(next@14.2.28)(prettier@3.2.5)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.91.0)
       '@storybook/react':
         specifier: ^8.1.9
         version: 8.1.9(prettier@3.2.5)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)
@@ -3087,8 +3087,8 @@ packages:
       tar-fs: 2.1.1
     dev: true
 
-  /@next/env@14.1.1:
-    resolution: {integrity: sha512-7CnQyD5G8shHxQIIg3c7/pSeYFeMhsNbpU/bmvH7ZnDql7mNRgg8O2JZrhrc/soFnfBnKP4/xXNiiSIPn2w8gA==}
+  /@next/env@14.2.28:
+    resolution: {integrity: sha512-PAmWhJfJQlP+kxZwCjrVd9QnR5x0R3u0mTXTiZDgSd4h5LdXmjxCCWbN9kq6hkZBOax8Rm3xDW5HagWyJuT37g==}
 
   /@next/eslint-plugin-next@14.1.1:
     resolution: {integrity: sha512-NP1WoGFnFLpqqCWgGFjnn/sTwUExdPyjeFKRdQP1X/bL/tjAQ/TXDmYqw6vzGaP5NaZ2u6xzg+N/0nd7fOPOGQ==}
@@ -3096,72 +3096,72 @@ packages:
       glob: 10.3.10
     dev: true
 
-  /@next/swc-darwin-arm64@14.1.1:
-    resolution: {integrity: sha512-yDjSFKQKTIjyT7cFv+DqQfW5jsD+tVxXTckSe1KIouKk75t1qZmj/mV3wzdmFb0XHVGtyRjDMulfVG8uCKemOQ==}
+  /@next/swc-darwin-arm64@14.2.28:
+    resolution: {integrity: sha512-kzGChl9setxYWpk3H6fTZXXPFFjg7urptLq5o5ZgYezCrqlemKttwMT5iFyx/p1e/JeglTwDFRtb923gTJ3R1w==}
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [darwin]
     requiresBuild: true
     optional: true
 
-  /@next/swc-darwin-x64@14.1.1:
-    resolution: {integrity: sha512-KCQmBL0CmFmN8D64FHIZVD9I4ugQsDBBEJKiblXGgwn7wBCSe8N4Dx47sdzl4JAg39IkSN5NNrr8AniXLMb3aw==}
+  /@next/swc-darwin-x64@14.2.28:
+    resolution: {integrity: sha512-z6FXYHDJlFOzVEOiiJ/4NG8aLCeayZdcRSMjPDysW297Up6r22xw6Ea9AOwQqbNsth8JNgIK8EkWz2IDwaLQcw==}
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [darwin]
     requiresBuild: true
     optional: true
 
-  /@next/swc-linux-arm64-gnu@14.1.1:
-    resolution: {integrity: sha512-YDQfbWyW0JMKhJf/T4eyFr4b3tceTorQ5w2n7I0mNVTFOvu6CGEzfwT3RSAQGTi/FFMTFcuspPec/7dFHuP7Eg==}
+  /@next/swc-linux-arm64-gnu@14.2.28:
+    resolution: {integrity: sha512-9ARHLEQXhAilNJ7rgQX8xs9aH3yJSj888ssSjJLeldiZKR4D7N08MfMqljk77fAwZsWwsrp8ohHsMvurvv9liQ==}
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
     requiresBuild: true
     optional: true
 
-  /@next/swc-linux-arm64-musl@14.1.1:
-    resolution: {integrity: sha512-fiuN/OG6sNGRN/bRFxRvV5LyzLB8gaL8cbDH5o3mEiVwfcMzyE5T//ilMmaTrnA8HLMS6hoz4cHOu6Qcp9vxgQ==}
+  /@next/swc-linux-arm64-musl@14.2.28:
+    resolution: {integrity: sha512-p6gvatI1nX41KCizEe6JkF0FS/cEEF0u23vKDpl+WhPe/fCTBeGkEBh7iW2cUM0rvquPVwPWdiUR6Ebr/kQWxQ==}
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [linux]
     requiresBuild: true
     optional: true
 
-  /@next/swc-linux-x64-gnu@14.1.1:
-    resolution: {integrity: sha512-rv6AAdEXoezjbdfp3ouMuVqeLjE1Bin0AuE6qxE6V9g3Giz5/R3xpocHoAi7CufRR+lnkuUjRBn05SYJ83oKNQ==}
+  /@next/swc-linux-x64-gnu@14.2.28:
+    resolution: {integrity: sha512-nsiSnz2wO6GwMAX2o0iucONlVL7dNgKUqt/mDTATGO2NY59EO/ZKnKEr80BJFhuA5UC1KZOMblJHWZoqIJddpA==}
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
     requiresBuild: true
     optional: true
 
-  /@next/swc-linux-x64-musl@14.1.1:
-    resolution: {integrity: sha512-YAZLGsaNeChSrpz/G7MxO3TIBLaMN8QWMr3X8bt6rCvKovwU7GqQlDu99WdvF33kI8ZahvcdbFsy4jAFzFX7og==}
+  /@next/swc-linux-x64-musl@14.2.28:
+    resolution: {integrity: sha512-+IuGQKoI3abrXFqx7GtlvNOpeExUH1mTIqCrh1LGFf8DnlUcTmOOCApEnPJUSLrSbzOdsF2ho2KhnQoO0I1RDw==}
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [linux]
     requiresBuild: true
     optional: true
 
-  /@next/swc-win32-arm64-msvc@14.1.1:
-    resolution: {integrity: sha512-1L4mUYPBMvVDMZg1inUYyPvFSduot0g73hgfD9CODgbr4xiTYe0VOMTZzaRqYJYBA9mana0x4eaAaypmWo1r5A==}
+  /@next/swc-win32-arm64-msvc@14.2.28:
+    resolution: {integrity: sha512-l61WZ3nevt4BAnGksUVFKy2uJP5DPz2E0Ma/Oklvo3sGj9sw3q7vBWONFRgz+ICiHpW5mV+mBrkB3XEubMrKaA==}
     engines: {node: '>= 10'}
     cpu: [arm64]
     os: [win32]
     requiresBuild: true
     optional: true
 
-  /@next/swc-win32-ia32-msvc@14.1.1:
-    resolution: {integrity: sha512-jvIE9tsuj9vpbbXlR5YxrghRfMuG0Qm/nZ/1KDHc+y6FpnZ/apsgh+G6t15vefU0zp3WSpTMIdXRUsNl/7RSuw==}
+  /@next/swc-win32-ia32-msvc@14.2.28:
+    resolution: {integrity: sha512-+Kcp1T3jHZnJ9v9VTJ/yf1t/xmtFAc/Sge4v7mVc1z+NYfYzisi8kJ9AsY8itbgq+WgEwMtOpiLLJsUy2qnXZw==}
     engines: {node: '>= 10'}
     cpu: [ia32]
     os: [win32]
     requiresBuild: true
     optional: true
 
-  /@next/swc-win32-x64-msvc@14.1.1:
-    resolution: {integrity: sha512-S6K6EHDU5+1KrBDLko7/c1MNy/Ya73pIAmvKeFwsF4RmBFJSO7/7YeD4FnZ4iBdzE69PpQ4sOMU9ORKeNuxe8A==}
+  /@next/swc-win32-x64-msvc@14.2.28:
+    resolution: {integrity: sha512-1gCmpvyhz7DkB1srRItJTnmR2UwQPAUXXIg9r0/56g3O8etGmwlX68skKXJOp9EejW3hhv7nSQUJ2raFiz4MoA==}
     engines: {node: '>= 10'}
     cpu: [x64]
     os: [win32]
@@ -3398,7 +3398,6 @@ packages:
     hasBin: true
     dependencies:
       playwright: 1.45.0
-    dev: true
 
   /@pmmmwh/react-refresh-webpack-plugin@0.5.13(react-refresh@0.14.2)(webpack@5.91.0):
     resolution: {integrity: sha512-odZVYXly+JwzYri9rKqqUAk0cY6zLpv4dxoKinhoJNShV36Gpxf+CyDIILJ4tYsJ1ZxIWs233Y39iVnynvDA/g==}
@@ -4663,7 +4662,7 @@ packages:
     resolution: {integrity: sha512-sp1N7ZgOtGK5uhCgwuPQlJ4JYKr3TyNeahotwAf2FUb5n70YyXDzqoqO8q8H0y9NarX+EcP1gJ4GmpT9+qTxsQ==}
     dev: true
 
-  /@storybook/nextjs@8.1.9(@swc/core@1.5.7)(@types/jest@29.5.12)(esbuild@0.20.2)(jest@29.7.0)(next@14.1.1)(prettier@3.2.5)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.91.0):
+  /@storybook/nextjs@8.1.9(@swc/core@1.5.7)(@types/jest@29.5.12)(esbuild@0.20.2)(jest@29.7.0)(next@14.2.28)(prettier@3.2.5)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.91.0):
     resolution: {integrity: sha512-v7LKKmPTDVpuoUp8Q6EZOAVnZKY9k+5sEUOLttfBLdkOIbgVw/zKo7oH2mDT/MXn4+DmbLFtpUQulp5jMVf5mQ==}
     engines: {node: '>=18.0.0'}
     peerDependencies:
@@ -4709,7 +4708,7 @@ packages:
       fs-extra: 11.2.0
       image-size: 1.1.1
       loader-utils: 3.2.1
-      next: 14.1.1(@babel/core@7.24.5)(react-dom@18.2.0)(react@18.2.0)
+      next: 14.2.28(@babel/core@7.24.5)(@playwright/test@1.45.0)(react-dom@18.2.0)(react@18.2.0)
       node-polyfill-webpack-plugin: 2.0.1(webpack@5.91.0)
       pnp-webpack-plugin: 1.7.0(typescript@5.3.3)
       postcss: 8.4.38
@@ -5129,11 +5128,11 @@ packages:
 
   /@swc/counter@0.1.3:
     resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
-    dev: true
 
-  /@swc/helpers@0.5.2:
-    resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
+  /@swc/helpers@0.5.5:
+    resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
     dependencies:
+      '@swc/counter': 0.1.3
       tslib: 2.6.2
 
   /@swc/jest@0.2.36(@swc/core@1.5.7):
@@ -9676,7 +9675,6 @@ packages:
     engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
     os: [darwin]
     requiresBuild: true
-    dev: true
     optional: true
 
   /fsevents@2.3.3:
@@ -12423,23 +12421,27 @@ packages:
     resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
     dev: true
 
-  /next@14.1.1(@babel/core@7.24.5)(react-dom@18.2.0)(react@18.2.0):
-    resolution: {integrity: sha512-McrGJqlGSHeaz2yTRPkEucxQKe5Zq7uPwyeHNmJaZNY4wx9E9QdxmTp310agFRoMuIYgQrCrT3petg13fSVOww==}
+  /next@14.2.28(@babel/core@7.24.5)(@playwright/test@1.45.0)(react-dom@18.2.0)(react@18.2.0):
+    resolution: {integrity: sha512-QLEIP/kYXynIxtcKB6vNjtWLVs3Y4Sb+EClTC/CSVzdLD1gIuItccpu/n1lhmduffI32iPGEK2cLLxxt28qgYA==}
     engines: {node: '>=18.17.0'}
     hasBin: true
     peerDependencies:
       '@opentelemetry/api': ^1.1.0
+      '@playwright/test': ^1.41.2
       react: ^18.2.0
       react-dom: ^18.2.0
       sass: ^1.3.0
     peerDependenciesMeta:
       '@opentelemetry/api':
         optional: true
+      '@playwright/test':
+        optional: true
       sass:
         optional: true
     dependencies:
-      '@next/env': 14.1.1
-      '@swc/helpers': 0.5.2
+      '@next/env': 14.2.28
+      '@playwright/test': 1.45.0
+      '@swc/helpers': 0.5.5
       busboy: 1.6.0
       caniuse-lite: 1.0.30001593
       graceful-fs: 4.2.11
@@ -12448,15 +12450,15 @@ packages:
       react-dom: 18.2.0(react@18.2.0)
       styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.2.0)
     optionalDependencies:
-      '@next/swc-darwin-arm64': 14.1.1
-      '@next/swc-darwin-x64': 14.1.1
-      '@next/swc-linux-arm64-gnu': 14.1.1
-      '@next/swc-linux-arm64-musl': 14.1.1
-      '@next/swc-linux-x64-gnu': 14.1.1
-      '@next/swc-linux-x64-musl': 14.1.1
-      '@next/swc-win32-arm64-msvc': 14.1.1
-      '@next/swc-win32-ia32-msvc': 14.1.1
-      '@next/swc-win32-x64-msvc': 14.1.1
+      '@next/swc-darwin-arm64': 14.2.28
+      '@next/swc-darwin-x64': 14.2.28
+      '@next/swc-linux-arm64-gnu': 14.2.28
+      '@next/swc-linux-arm64-musl': 14.2.28
+      '@next/swc-linux-x64-gnu': 14.2.28
+      '@next/swc-linux-x64-musl': 14.2.28
+      '@next/swc-win32-arm64-msvc': 14.2.28
+      '@next/swc-win32-ia32-msvc': 14.2.28
+      '@next/swc-win32-x64-msvc': 14.2.28
     transitivePeerDependencies:
       - '@babel/core'
       - babel-plugin-macros
@@ -13231,7 +13233,6 @@ packages:
     resolution: {integrity: sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==}
     engines: {node: '>=18'}
     hasBin: true
-    dev: true
 
   /playwright@1.45.0:
     resolution: {integrity: sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==}
@@ -13241,7 +13242,6 @@ packages:
       playwright-core: 1.45.0
     optionalDependencies:
       fsevents: 2.3.2
-    dev: true
 
   /plimit-lit@1.6.1:
     resolution: {integrity: sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==}


Reviews:
user: login: coderabbitai[bot]
body: **Actionable comments posted: 2**

<details>
<summary>🧹 Nitpick comments (1)</summary><blockquote>

<details>
<summary>packages/wow-ui/src/components/Stepper/index.tsx (1)</summary><blockquote>

`33-34`: **`className` prop 지원 검토**  
다른 컴포넌트(`Box`, `Button`, `Divider` 등)와의 일관성을 위해 `Stepper`에도 `className?: string` prop을 추가하고, 최상위 `<div>`에 `className`을 전달하는 방안을 고려해보세요.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between c936a3fddaf8e4f08bec670c8db2cd9b9a832db4 and 3d3c4fd30f1aebd1de0c97a92dda77166188d693.

</details>

<details>
<summary>⛔ Files ignored due to path filters (1)</summary>

* `pnpm-lock.yaml` is excluded by `!**/pnpm-lock.yaml`

</details>

<details>
<summary>📒 Files selected for processing (13)</summary>

* `apps/wow-docs/package.json` (1 hunks)
* `packages/wow-ui/package.json` (1 hunks)
* `packages/wow-ui/src/components/Box/index.tsx` (3 hunks)
* `packages/wow-ui/src/components/Button/index.tsx` (3 hunks)
* `packages/wow-ui/src/components/Checkbox/index.tsx` (1 hunks)
* `packages/wow-ui/src/components/Chip/index.tsx` (1 hunks)
* `packages/wow-ui/src/components/Divider/index.tsx` (2 hunks)
* `packages/wow-ui/src/components/Header/index.tsx` (3 hunks)
* `packages/wow-ui/src/components/SearchBar/index.tsx` (3 hunks)
* `packages/wow-ui/src/components/Stepper/index.tsx` (1 hunks)
* `packages/wow-ui/src/components/TextButton/index.tsx` (2 hunks)
* `packages/wow-ui/src/components/TextField/index.tsx` (3 hunks)
* `packages/wow-ui/src/components/Toast/index.tsx` (3 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧬 Code Graph Analysis (1)</summary>

<details>
<summary>packages/wow-ui/src/components/Header/index.tsx (1)</summary><blockquote>

<details>
<summary>packages/wow-ui/src/types/DefaultProps.ts (1)</summary>

* `DefaultProps` (8-11)

</details>

</blockquote></details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (4)</summary>

* GitHub Check: chromatic-deployment
* GitHub Check: check-size
* GitHub Check: test
* GitHub Check: accessibility

</details>

<details>
<summary>🔇 Additional comments (24)</summary><blockquote>

<details>
<summary>packages/wow-ui/src/components/Stepper/index.tsx (1)</summary>

`8-13`: **JSDoc 주석 위치 변경: 인터페이스로 옮겨져 문서 구조가 개선되었습니다.**  
JSDoc이 컴포넌트 구현부 대신 `StepperProps` 위로 이동하여 타입과 주석이 함께 노출되어 가독성이 향상되었습니다.

</details>
<details>
<summary>packages/wow-ui/src/components/SearchBar/index.tsx (2)</summary>

`5-5`: **clsx 라이브러리 추가로 스타일 확장성 개선**

`clsx` 라이브러리를 추가하여 외부에서 전달받은 `className`과 내부 스타일을 병합할 수 있도록 구현하였습니다. 이는 컴포넌트의 사용성과 유연성을 높이는 좋은 개선입니다.

---

`59-59`: **className prop 활용 및 스타일 병합 구현**

외부 `className`을 명시적으로 props에서 destructuring하고, `clsx`를 사용하여 내부 스타일과 외부 스타일을 병합하도록 개선했습니다. 이를 통해 컴포넌트의 기본 스타일을 유지하면서도 사용자 정의 스타일을 적용할 수 있게 되었습니다.



Also applies to: 94-98

</details>
<details>
<summary>packages/wow-ui/src/components/Divider/index.tsx (2)</summary>

`3-3`: **clsx 라이브러리 추가로 스타일 확장성 개선**

`clsx` 라이브러리를 추가하여 외부에서 전달받은 `className`과 내부 스타일을 병합할 수 있도록 구현하였습니다. 이는 컴포넌트의 사용성과 유연성을 높이는 좋은 개선입니다.

---

`20-28`: **className prop 활용 및 스타일 병합 구현**

외부 `className`을 명시적으로 props에서 destructuring하고, `clsx`를 사용하여 내부 스타일과 외부 스타일을 병합하도록 개선했습니다. 이전 구현에서는 외부 `className`이 내부 스타일로 덮어씌워졌을 가능성이 있었으나, 이제는 두 스타일이 함께 적용됩니다.

</details>
<details>
<summary>packages/wow-ui/src/components/Button/index.tsx (2)</summary>

`5-5`: **clsx 라이브러리 추가로 스타일 확장성 개선**

`clsx` 라이브러리를 추가하여 외부에서 전달받은 `className`과 내부 스타일을 병합할 수 있도록 구현하였습니다. 이는 컴포넌트의 사용성과 유연성을 높이는 좋은 개선입니다.

---

`60-60`: **className prop 활용 및 스타일 병합 구현**

외부 `className`을 명시적으로 props에서 destructuring하고, `clsx`를 사용하여 내부 스타일과 외부 스타일을 병합하도록 개선했습니다. 이를 통해 컴포넌트의 기본 스타일을 유지하면서도 사용자 정의 스타일을 적용할 수 있게 되었습니다.



Also applies to: 72-78

</details>
<details>
<summary>packages/wow-ui/src/components/TextButton/index.tsx (3)</summary>

`5-5`: **clsx 라이브러리 추가로 스타일 확장성 개선**

`clsx` 라이브러리를 추가하여 외부에서 전달받은 `className`과 내부 스타일을 병합할 수 있도록 구현하였습니다. 이는 컴포넌트의 사용성과 유연성을 높이는 좋은 개선입니다.

---

`46-53`: **props 구조 개선 및 명시적 destructuring**

이전 코드에서 인라인으로 처리되던 props destructuring을 명시적인 객체 구조로 변경하여 코드의 가독성과 일관성을 향상시켰습니다. 이는 다른 컴포넌트들의 스타일과 일치하며, 코드베이스 전반의 일관성을 유지하는 좋은 변경입니다.

---

`61-61`: **className prop 활용 및 스타일 병합 구현**

`clsx`를 사용하여 외부 `className`과 내부 `TextButtonStyle`을 병합하도록 개선했습니다. 이를 통해 컴포넌트의 기본 스타일을 유지하면서도 사용자 정의 스타일을 적용할 수 있게 되었습니다.

</details>
<details>
<summary>packages/wow-ui/src/components/Box/index.tsx (2)</summary>

`5-5`: **clsx 라이브러리 추가로 외부 스타일 병합 지원**

`clsx` 라이브러리를 추가하여 외부에서 전달된 className을 내부 스타일과 병합할 수 있도록 개선하였습니다. 이는 컴포넌트의 스타일 확장성을 높이는 좋은 접근입니다.

---

`91-97`: **className 병합 처리 구현**

외부에서 전달된 className과 내부 containerStyle을 `clsx`를 사용하여 적절하게 병합하고 있습니다. 이 패턴은 React 컴포넌트 라이브러리에서 널리 사용되는 좋은 관행입니다.

</details>
<details>
<summary>packages/wow-ui/src/components/Toast/index.tsx (2)</summary>

`6-6`: **clsx 라이브러리 추가로 외부 스타일 병합 지원**

`clsx` 라이브러리를 추가하여 외부 className과 내부 스타일을 병합할 수 있도록 구현하였습니다. 이는 컴포넌트의 재사용성과 확장성을 높이는 좋은 방법입니다.

---

`89-89`: **className 병합 처리 구현**

외부에서 전달된 className과 내부 toastContainerStyle을 `clsx`를 통해 병합하여 스타일 확장성을 높였습니다.

</details>
<details>
<summary>packages/wow-ui/src/components/Header/index.tsx (4)</summary>

`1-8`: **import 재구성 및 DefaultProps 활용**

import 문이 재구성되었고, `DefaultProps` 타입을 가져와 컴포넌트 props에 활용함으로써 코드의 일관성과 재사용성을 향상시켰습니다. `clsx` 라이브러리 추가로 외부 스타일을 지원합니다.

---

`24-24`: **DefaultProps 확장으로 인터페이스 간소화**

`HeaderProps` 인터페이스가 `DefaultProps`를 확장하도록 수정하여 className과 style 등 공통 속성을 재정의하지 않고 상속받아 사용할 수 있습니다. 이는 타입 정의의 중복을 줄이고 일관성을 유지하는 좋은 방법입니다.

---

`34-36`: **props 구조 분해 할당에 className과 rest 추가**

컴포넌트 props에서 `className`을 별도로 구조 분해하고 나머지 props를 `...rest`로 수집하여 HTML 엘리먼트에 전달할 수 있도록 수정하였습니다. 이를 통해 컴포넌트의 유연성과 확장성이 향상됩니다.

---

`38-43`: **HTML 접근성 속성 추가 및 className 병합**

header 엘리먼트에 `aria-label`과 `role` 속성을 추가하여 접근성을 개선하였고, `clsx`를 사용하여 외부에서 전달된 className과 내부 스타일을 병합하였습니다. 또한 `...rest`를 통해 추가 HTML 속성을 전달할 수 있도록 하여 컴포넌트의 유연성을 높였습니다.

</details>
<details>
<summary>apps/wow-docs/package.json (1)</summary>

`15-15`: <details>
<summary>✅ Verification successful</summary>

**Next.js 버전 업데이트**

Next.js의 버전을 `^14.1.1`에서 `^14.2.25`로 업데이트하였습니다. 이는 마이너 및 패치 버전 업데이트로 하위 호환성이 유지되는 변경입니다. UI 패키지의 peerDependencies와 일치시키는 작업의 일환으로 보입니다.


---

🌐 Web query:

```web
Next.js 14.2.25 버전의 주요 변경 사항은 무엇인가요?
```

💡 Result:

## Next.js 14.2.25 버전의 주요 변경 사항

**Next.js 14.2.25** 버전은 보안 패치와 함께 성능, 캐싱, 개발자 경험(DX) 향상 등 여러 개선 사항이 포함된 마이너 업데이트입니다. 다음은 공식 자료와 관련 문서를 바탕으로 정리한 주요 변경 사항입니다.

---

**보안 패치**

- **CVE-2025-29927 취약점 수정**: 이 버전에는 부적절한 권한 부여 취약점(CVE-2025-29927)이 패치되었습니다. 관련된 모든 사용자(Next.js 14.x 포함)는 보안을 위해 14.2.25 이상 버전으로 업그레이드가 권고됩니다[6].

---

**성능 및 개발 환경 개선**

- **Turbopack 개발 모드(Release Candidate) 개선**: `next dev --turbo` 명령의 안정성이 크게 높아졌으며, 99.8% 이상의 테스트가 통과했습니다. 개발 과정에서 더 빠르고 안정적인 핫리로딩과 빌드 성능을 제공합니다[1].
- **빌드 및 프로덕션 환경 개선**: 빌드 메모리 사용량이 감소하고, CSS 최적화가 강화됐습니다. 대규모 프로젝트에서도 효율적으로 동작합니다[1].

---

**캐싱 전략 및 설정의 확장**

- **유연한 캐싱 인벨리데이션**: `staleTimes` 설정을 통해 캐시 무효화 시점을 세밀하게 제어할 수 있어, 데이터 최신성과 성능을 동시에 확보할 수 있습니다[1].

---

**개발자 경험(DX) 향상**

- **하이드레이션 불일치(hydration mismatch) 에러**: 오류 메시지 개선과 시각적 디자인 업데이트로 문제 원인을 빠르게 파악할 수 있도록 했습니다[1].

---

**그 외 변경 사항**

- **신규 설정 옵션 추가**: 다양한 환경에 대응할 수 있도록 next.config 옵션이 확장되었습니다.
- **업그레이드 방법**: `npx create-next-app@latest` 등으로 빠르게 최신 버전을 적용할 수 있습니다[1].

---

> 요약: Next.js 14.2.25는 보안 패치(CVE-2025-29927), Turbopack 기반 개발 환경 개선, 빌드/캐싱 최적화, 개발자 오류 메시지 개선 등 전반적인 안정성과 DX 중심의 업그레이드 버전입니다[1][6].

Citations:

- 1: https://nextjs.org/blog/next-14-2
- 2: https://rainbowjyp.tistory.com/5
- 3: https://www.heropy.dev/p/n7JHmI
- 4: https://www.frontoverflow.com/magazine/15
- 5: https://velog.io/@jiho3894/NextJS-14-%EB%B3%80%EA%B2%BD-%EC%82%AC%ED%95%AD
- 6: https://asec.ahnlab.com/ko/87021/
- 7: https://velog.io/@jiho3894/NextJS-14-%EB%B3%80%EA%B2%BD-%EC%82%AC
- 8: https://www.npmjs.com/package/next/v/14.2.25
- 9: https://nextjs.org/blog/next-14
- 10: https://www.promleeblog.com/blog/post/176-nextjs-15-upgrade

---



</details>

**Next.js 14.2.25 패치 업데이트 승인**

Next.js를 `^14.2.25`로 올리면 하위 호환성을 유지하면서 아래와 같은 주요 개선을 얻습니다.  
- 보안 패치: CVE‑2025‑29927 취약점 수정  
- Turbopack 개발 모드 안정성 강화 및 핫리로딩 성능 향상  
- 빌드 메모리 사용량 감소, CSS 최적화  
- 유연한 캐싱 무효화(`staleTimes`) 옵션 확장  
- 하이드레이션 오류 메시지 개선 등 개발자 경험(DX) 개선  

apps/wow-docs/package.json (15행)  
```diff
- "next": "^14.1.1"
+ "next": "^14.2.25"
```

UI 패키지의 peerDependencies 버전과도 일치하므로 그대로 승인합니다.

</details>
<details>
<summary>packages/wow-ui/src/components/Chip/index.tsx (1)</summary>

`4-4`: **clsx 임포트 방식이 개선되었습니다.**

기존의 기본 import에서 명명된 import로 변경함으로써 다른 컴포넌트들과의 일관성을 유지하게 되었습니다. 이 변경은 외부 `className` props와 내부 스타일링을 병합하는 패턴에 맞게 적절히 수정되었습니다.

</details>
<details>
<summary>packages/wow-ui/src/components/Checkbox/index.tsx (1)</summary>

`90-90`: **비활성화된 체크박스의 커서 스타일 개선**

비활성화된 체크박스에서 커서 스타일을 `"none"`에서 `"not-allowed"`로 변경하여 사용자에게 더 명확한 시각적 피드백을 제공하게 되었습니다. 이는 사용자 경험을 향상시키는 적절한 변화입니다.

</details>
<details>
<summary>packages/wow-ui/package.json (1)</summary>

`269-269`: _💡 Verification agent_

<details>
<summary>🧩 Analysis chain</summary>

**Next.js peer 의존성 버전 요구사항 업데이트**

Next.js의 최소 버전 요구사항을 `^14.1.1`에서 `>=14.2.25`로 변경함으로써 프로젝트 전체에서 일관된 Next.js 버전 호환성을 확보하였습니다. 이 변경은 `apps/wow-docs/package.json`의 업데이트와 일치하도록 조정된 것입니다.


---

🏁 Script executed:

```shell
#!/bin/bash
# Next.js 최신 버전 확인 및 호환성 검증

# 프로젝트에서 사용 중인 모든 Next.js 의존성 확인
echo "프로젝트 내 Next.js 의존성 현황 확인:"
rg -g 'package.json' '"next":' --json | jq -r '.data.lines.text' | sort | uniq
```

Length of output: 192

---



</details>

**Next.js 버전 요구사항 통일 필요**

프로젝트 내 `next` 의존성이 일부는 `">=14.2.25"`, 일부는 `"^14.2.25"`로 혼재되어 있습니다. 모든 패키지의 최소 버전을 `>=14.2.25`로 일괄 업데이트하여 호환성을 유지해주세요.

- 검사 대상: 모든 `package.json` 파일  
  - 예시: `packages/wow-ui/package.json`, `apps/wow-docs/package.json` 등
- 변경 예시:
  ```diff
  - "next": "^14.2.25"
  + "next": ">=14.2.25"
  ```  



> Likely an incorrect or invalid review comment.

</details>
<details>
<summary>packages/wow-ui/src/components/TextField/index.tsx (2)</summary>

`5-5`: **clsx 유틸리티 임포트 추가**

컴포넌트 스타일링 기능 개선을 위해 clsx 유틸리티를 임포트했습니다. 이를 통해 외부 className과 내부 스타일을 효과적으로 병합할 수 있게 되었습니다.

---

`127-132`: **Flex 컴포넌트에 className 병합 기능 추가**

Flex 컴포넌트에 clsx 유틸리티를 사용하여 외부에서 전달받은 className과 내부에서 정의한 containerStyle을 병합하는 기능이 추가되었습니다. 이를 통해 컴포넌트의 스타일 확장성과 유연성이 향상되었습니다.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: NONE
submitted_at: 2025-04-23T02:13:45Z

Review comments:
diff_hunk: @@ -5,6 +5,13 @@ import { useCallback, useMemo } from "react";
 
 import { calcPercent } from "@/utils/calcPercent";
 
+/**
+ * @param {number} step Stepper의 현재 스텝
+ * @param {number} [maxStep] Stepper가 가질 수 있는 최대 스텝
+ * @param {LabelType[]} [labels] Stepper에 하단에 입력할 라벨의 배열
+ * @param {number} width Stepper의 가로 길이를 자유롭게 정할 수 있어요. 단, 278px 이상이어야 합니다.
+ */
path: packages/wow-ui/src/components/Stepper/index.tsx
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**JSDoc `@param width` optional 표기 누락**  
`width` prop이 `StepperProps`에서 optional(`width?: number`)으로 정의되어 있으나, JSDoc에서는 필수로 표기되어 있습니다. 일관성을 위해 optional 표시용 괄호를 추가해주세요.  

```diff
- * @param {number} width Stepper의 가로 길이를 자유롭게 정할 수 있어요. 단, 278px 이상이어야 합니다.
+ * @param {number} [width] Stepper의 가로 길이를 자유롭게 정할 수 있어요. 단, 278px 이상이어야 합니다.
```


<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

`````suggestion
/**
 * @param {number} step Stepper의 현재 스텝
 * @param {number} [maxStep] Stepper가 가질 수 있는 최대 스텝
 * @param {LabelType[]} [labels] Stepper에 하단에 입력할 라벨의 배열
 * @param {number} [width] Stepper의 가로 길이를 자유롭게 정할 수 있어요. 단, 278px 이상이어야 합니다.
 */
`````

</details>

<!-- suggestion_end -->

<!-- This is an auto-generated comment by CodeRabbit -->

✅ Addressed in commit 6b2af71
created_at: 2025-04-23T02:13:44Z
author_association: NONE
diff_hunk: @@ -79,12 +81,12 @@ const Toast = forwardRef(
         clearTimeout(timeoutForRemove);
         clearTimeout(timeoutForVisible);
       };
-    }, [id, removeToast]);
+    }, [TOAST_DURATION, id, onRemove, removeToast]);
path: packages/wow-ui/src/components/Toast/index.tsx
user: login: coderabbitai[bot]
body: _🛠️ Refactor suggestion_

**useEffect 의존성 배열 개선**

`useEffect`의 의존성 배열에 `TOAST_DURATION`과 `onRemove`를 추가하여 이 값들이 변경될 때 효과가 적절히 재실행되도록 수정하였습니다. 이는 이전에 누락되어 있던 의존성을 올바르게 처리한 것으로, 잠재적인 버그를 예방합니다.

<!-- This is an auto-generated comment by CodeRabbit -->
created_at: 2025-04-23T02:13:45Z
author_association: NONE

PR comments:
user: login: changeset-bot[bot]
created_at: 2025-04-23T02:10:55Z
body: ###  🦋  Changeset detected

Latest commit: 6b2af71d1c3b855d5c9518775fba90eacc7d79bd

**The changes in this PR will be included in the next version bump.**

<details><summary>This PR includes changesets to release 1 package</summary>

  | Name     | Type  |
| -------- | ----- |
| wowds-ui | Patch |

</details>

Not sure what this means? [Click here  to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).

[Click here if you're a maintainer who wants to add another changeset to this PR](https://github.com/gdg-hongik-univ/wow-design-system/new/fix/bug?filename=.changeset/breezy-lobsters-thank.md&value=---%0A%22wow-docs%22%3A%20patch%0A%22wowds-ui%22%3A%20patch%0A---%0A%0A%5BChore%5D%20next%20peerDeps%20%EC%88%98%EC%A0%95%20%EB%B0%8F%20%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%20%EB%B2%84%EA%B7%B8%20%EC%88%98%EC%A0%95%0A)


author_association: NONE
user: login: coderabbitai[bot]
created_at: 2025-04-23T02:10:59Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- walkthrough_start -->

## Walkthrough

이번 변경 사항은 주로 `wow-ui` 패키지의 다양한 컴포넌트에 `className` prop을 추가하여 외부 스타일 클래스와 내부 스타일을 병합할 수 있도록 개선되었습니다. 또한, 일부 컴포넌트의 타입 정의 및 props 구조가 확장되었으며, `next` 패키지의 의존성 버전이 상향 조정되었습니다. 몇몇 컴포넌트에서는 JSDoc 주석의 위치 변경, 커서 스타일 수정, import 방식 변경 등이 이루어졌으나, 전체적인 로직에는 영향이 없습니다.

## Changes

| 파일(들) | 변경 요약 |
|---|---|
| apps/wow-docs/package.json, packages/wow-ui/package.json | `next` 의존성/peerDependency 버전이 `^14.1.1`에서 `^14.2.25` 또는 `>=14.2.25`로 상향 조정됨 |
| packages/wow-ui/src/components/Box/index.tsx<br>packages/wow-ui/src/components/Button/index.tsx<br>packages/wow-ui/src/components/SearchBar/index.tsx<br>packages/wow-ui/src/components/TextField/index.tsx<br>packages/wow-ui/src/components/Toast/index.tsx<br>packages/wow-ui/src/components/TextButton/index.tsx | `className` prop 추가 및 `clsx`를 활용해 외부 클래스와 내부 스타일 병합 지원 |
| packages/wow-ui/src/components/Divider/index.tsx | `className` prop과 내부 스타일을 `clsx`로 병합하도록 변경 |
| packages/wow-ui/src/components/Header/index.tsx | `HeaderProps`가 `DefaultProps`를 상속하도록 변경, `className` 및 나머지 props 지원, `clsx`로 클래스 병합 |
| packages/wow-ui/src/components/Checkbox/index.tsx | 비활성화 시 커서 스타일을 `none`에서 `not-allowed`로 변경 |
| packages/wow-ui/src/components/Chip/index.tsx | `clsx` import 방식을 default에서 named import로 변경 |
| packages/wow-ui/src/components/Stepper/index.tsx | JSDoc 주석 위치를 `Stepper` 함수에서 `StepperProps` 인터페이스 위로 이동 |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant 외부 as 외부 컴포넌트/사용자
    participant UI컴포넌트 as UI 컴포넌트 (예: Button, Box 등)
    participant 스타일 as 내부 스타일/clsx

    외부->>UI컴포넌트: className prop 전달
    UI컴포넌트->>스타일: 내부 스타일 계산
    UI컴포넌트->>스타일: className과 내부 스타일 병합 (clsx)
    스타일-->>UI컴포넌트: 병합된 className 반환
    UI컴포넌트-->>외부: 렌더링된 컴포넌트 반환 (병합된 className 적용)
```

## Assessment against linked issues

| Objective | Addressed | Explanation |
|---|---|---|
| 외부에서 주입받은 className 프로퍼티가 기존의 className과 합쳐질 수 있도록 수정 (#186) | ✅ |  |
| rest로 className을 넘겨주고 있는 컴포넌트를 파악하고 수정 (#186) | ✅ |  |
| Checkbox의 disabled 상태의 cursor를 not-allowed로 수정 (#95) | ✅ |  |

## Poem

> 🐇  
> 새로운 className이 춤을 추네,  
> 스타일과 외부 클래스가 어깨동무 하네.  
> Checkbox 커서는 더 친절하게,  
> Header는 더욱 유연하게.  
> 버전도 높아졌으니,  
> UI는 더 반짝반짝!  
> 토끼는 오늘도 기쁘게 깡총깡총!  
> ✨

<!-- walkthrough_end -->
<!-- This is an auto-generated comment: all tool run failures by coderabbit.ai -->

> [!WARNING]
> There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.
> 
> <details>
> <summary>🔧 ESLint</summary>
> 
> > If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.
> 
> <details>
> <summary>apps/wow-docs/next-env.d.ts</summary>
> 
> 
> Oops! Something went wrong! :(
> 
> ESLint: 8.57.1
> 
> ESLint couldn't find the plugin "@next/eslint-plugin-next".
> 
> (The package "@next/eslint-plugin-next" was not found when loaded as a Node module from the directory "/apps/wow-docs".)
> 
> It's likely that the plugin isn't installed correctly. Try reinstalling by running the following:
> 
>     npm install @next/eslint-plugin-next@latest --save-dev
> 
> The plugin "@next/eslint-plugin-next" was referenced from the config file in "apps/wow-docs/.eslintrc.js".
> 
> If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.
> 
> 
> </details>
> 
> </details>

<!-- end of auto-generated comment: all tool run failures by coderabbit.ai -->


---

<details>
<summary>📜 Recent review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 3d3c4fd30f1aebd1de0c97a92dda77166188d693 and 6b2af71d1c3b855d5c9518775fba90eacc7d79bd.

</details>

<details>
<summary>📒 Files selected for processing (5)</summary>

* `.changeset/itchy-scissors-visit.md` (1 hunks)
* `apps/wow-docs/next-env.d.ts` (1 hunks)
* `packages/wow-ui/README.md` (2 hunks)
* `packages/wow-ui/package.json` (2 hunks)
* `packages/wow-ui/src/components/Stepper/index.tsx` (1 hunks)

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (4)</summary>

* .changeset/itchy-scissors-visit.md
* apps/wow-docs/next-env.d.ts
* packages/wow-ui/README.md
* packages/wow-ui/src/components/Stepper/index.tsx

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (1)</summary>

* packages/wow-ui/package.json

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (2)</summary>

* GitHub Check: chromatic-deployment
* GitHub Check: accessibility

</details>

</details>
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=gdg-hongik-univ/wow-design-system&utm_content=218):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: NONE
user: login: wawoo-dev
created_at: 2025-04-23T02:13:09Z
body: **Size Change:** +2.06 kB (+0.3%) 

**Total Size:** 684 kB

| Filename | Size | Change |  |
| :--- | :---: | :---: | :---: |
| `./packages/wow-ui/dist/Box.cjs` | 3.17 kB | +68 B (+2.19%) |  |
| `./packages/wow-ui/dist/Box.js` | 2.8 kB | +117 B (+4.36%) |  |
| `./packages/wow-ui/dist/Button.cjs` | 2.25 kB | +68 B (+3.12%) |  |
| `./packages/wow-ui/dist/Button.js` | 2.62 kB | +117 B (+4.67%) | 🔍 |
| `./packages/wow-ui/dist/Checkbox.cjs` | 2.73 kB | +7 B (+0.26%) |  |
| `./packages/wow-ui/dist/Checkbox.js` | 2.91 kB | +7 B (+0.24%) |  |
| `./packages/wow-ui/dist/components/Box/index.d.ts` | 2.6 kB | +11 B (+0.43%) |  |
| `./packages/wow-ui/dist/components/Divider/index.d.ts` | 832 B | +11 B (+1.34%) |  |
| `./packages/wow-ui/dist/components/Header/index.d.ts` | 1.21 kB | +102 B (+9.24%) | 🔍 |
| `./packages/wow-ui/dist/components/Header/index.d.ts.map` | 545 B | +63 B (+13.07%) | ⚠️ |
| `./packages/wow-ui/dist/Divider.cjs` | 649 B | +68 B (+11.7%) | ⚠️ |
| `./packages/wow-ui/dist/Divider.js` | 1.03 kB | +117 B (+12.87%) | ⚠️ |
| `./packages/wow-ui/dist/Header.cjs` | 1.79 kB | +182 B (+11.33%) | ⚠️ |
| `./packages/wow-ui/dist/Header.js` | 2.04 kB | +414 B (+25.41%) | 🚨 |
| `./packages/wow-ui/dist/SearchBar.cjs` | 3.03 kB | +68 B (+2.3%) |  |
| `./packages/wow-ui/dist/SearchBar.js` | 2.8 kB | +117 B (+4.37%) |  |
| `./packages/wow-ui/dist/styles.css` | 49.2 kB | -70 B (-0.14%) |  |
| `./packages/wow-ui/dist/TextButton.cjs` | 1.03 kB | +68 B (+7.07%) | 🔍 |
| `./packages/wow-ui/dist/TextButton.js` | 1.36 kB | +117 B (+9.42%) | 🔍 |
| `./packages/wow-ui/dist/TextField.cjs` | 4.07 kB | +68 B (+1.7%) |  |
| `./packages/wow-ui/dist/TextField.js` | 4.05 kB | +120 B (+3.05%) |  |
| `./packages/wow-ui/dist/Toast.cjs` | 2.06 kB | +72 B (+3.63%) |  |
| `./packages/wow-ui/dist/Toast.js` | 2.41 kB | +121 B (+5.29%) | 🔍 |
| `./packages/wow-ui/dist/ToastProvider.cjs` | 2.02 kB | +30 B (+1.51%) |  |

<details><summary>ℹ️ <strong>View Unchanged</strong></summary>

| Filename | Size |
| :--- | :---: |
| `./packages/wow-ui/dist/assets` | 4.1 kB |
| `./packages/wow-ui/dist/assets/lotties` | 4.1 kB |
| `./packages/wow-ui/dist/assets/lotties/blueSpinner.json.js` | 4.99 kB |
| `./packages/wow-ui/dist/assets/lotties/rainbowSpinner.json.js` | 5 kB |
| `./packages/wow-ui/dist/Avatar.cjs` | 1.44 kB |
| `./packages/wow-ui/dist/Avatar.js` | 1.73 kB |
| `./packages/wow-ui/dist/BlueSpinner.cjs` | 5.17 kB |
| `./packages/wow-ui/dist/BlueSpinner.js` | 554 B |
| `./packages/wow-ui/dist/Chip.cjs` | 2.51 kB |
| `./packages/wow-ui/dist/Chip.js` | 2.93 kB |
| `./packages/wow-ui/dist/clsx-E3yX_9sL.js` | 384 B |
| `./packages/wow-ui/dist/CollectionContext-CABmbcnC.js` | 320 B |
| `./packages/wow-ui/dist/CollectionContext-U7d0_GgH.js` | 477 B |
| `./packages/wow-ui/dist/components` | 4.1 kB |
| `./packages/wow-ui/dist/components/Avatar` | 4.1 kB |
| `./packages/wow-ui/dist/components/Avatar/index.d.ts` | 1.61 kB |
| `./packages/wow-ui/dist/components/Avatar/index.d.ts.map` | 889 B |
| `./packages/wow-ui/dist/components/Box` | 4.1 kB |
| `./packages/wow-ui/dist/components/Box/index.d.ts.map` | 904 B |
| `./packages/wow-ui/dist/components/Button` | 4.1 kB |
| `./packages/wow-ui/dist/components/Button/index.d.ts` | 1.61 kB |
| `./packages/wow-ui/dist/components/Button/index.d.ts.map` | 887 B |
| `./packages/wow-ui/dist/components/Checkbox` | 4.1 kB |
| `./packages/wow-ui/dist/components/Checkbox/index.d.ts` | 2.42 kB |
| `./packages/wow-ui/dist/components/Checkbox/index.d.ts.map` | 792 B |
| `./packages/wow-ui/dist/components/Chip` | 4.1 kB |
| `./packages/wow-ui/dist/components/Chip/index.d.ts` | 1.54 kB |
| `./packages/wow-ui/dist/components/Chip/index.d.ts.map` | 750 B |
| `./packages/wow-ui/dist/components/Divider` | 4.1 kB |
| `./packages/wow-ui/dist/components/Divider/index.d.ts.map` | 384 B |
| `./packages/wow-ui/dist/components/DropDown` | 4.1 kB |
| `./packages/wow-ui/dist/components/DropDown/context` | 4.1 kB |
| `./packages/wow-ui/dist/components/DropDown/context/CollectionContext.d.ts` | 506 B |
| `./packages/wow-ui/dist/components/DropDown/context/CollectionContext.d.ts.map` | 530 B |
| `./packages/wow-ui/dist/components/DropDown/context/CollectionContext.js` | 411 B |
| `./packages/wow-ui/dist/components/DropDown/context/DropDownContext.d.ts` | 956 B |
| `./packages/wow-ui/dist/components/DropDown/context/DropDownContext.d.ts.map` | 263 B |
| `./packages/wow-ui/dist/components/DropDown/context/DropDownContext.js` | 180 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownOption.d.ts` | 914 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownOption.d.ts.map` | 452 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownOptionList.d.ts` | 358 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownOptionList.d.ts.map` | 343 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownOptionList.js` | 1.94 kB |
| `./packages/wow-ui/dist/components/DropDown/DropDownTrigger.d.ts` | 432 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownTrigger.d.ts.map` | 426 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownTrigger.js` | 2.61 kB |
| `./packages/wow-ui/dist/components/DropDown/DropDownWrapper.d.ts` | 501 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownWrapper.d.ts.map` | 474 B |
| `./packages/wow-ui/dist/components/DropDown/DropDownWrapper.js` | 1.07 kB |
| `./packages/wow-ui/dist/components/DropDown/index.d.ts` | 2.88 kB |
| `./packages/wow-ui/dist/components/DropDown/index.d.ts.map` | 957 B |
| `./packages/wow-ui/dist/components/Header` | 4.1 kB |
| `./packages/wow-ui/dist/components/MultiGroup` | 4.1 kB |
| `./packages/wow-ui/dist/components/MultiGroup/index.d.ts` | 2.12 kB |
| `./packages/wow-ui/dist/components/MultiGroup/index.d.ts.map` | 825 B |
| `./packages/wow-ui/dist/components/MultiGroup/MultiGroupContext.d.ts` | 953 B |
| `./packages/wow-ui/dist/components/MultiGroup/MultiGroupContext.d.ts.map` | 419 B |
| `./packages/wow-ui/dist/components/MultiGroup/MultiGroupContext.js` | 136 B |
| `./packages/wow-ui/dist/components/Pagination` | 4.1 kB |
| `./packages/wow-ui/dist/components/Pagination/index.d.ts` | 1.44 kB |
| `./packages/wow-ui/dist/components/Pagination/index.d.ts.map` | 561 B |
| `./packages/wow-ui/dist/components/Picker` | 4.1 kB |
| `./packages/wow-ui/dist/components/Picker/DateDropDown.d.ts` | 677 B |
| `./packages/wow-ui/dist/components/Picker/DateDropDown.d.ts.map` | 612 B |
| `./packages/wow-ui/dist/components/Picker/pickerButtonStyle.css.d.ts` | 1.05 kB |
| `./packages/wow-ui/dist/components/Picker/pickerButtonStyle.css.d.ts.map` | 230 B |
| `./packages/wow-ui/dist/components/Picker/pickerButtonStyle.css.js` | 1.11 kB |
| `./packages/wow-ui/dist/components/Picker/pickerClassNames.d.ts` | 196 B |
| `./packages/wow-ui/dist/components/Picker/pickerClassNames.d.ts.map` | 283 B |
| `./packages/wow-ui/dist/components/Picker/pickerClassNames.js` | 894 B |
| `./packages/wow-ui/dist/components/Picker/pickerComponents.d.ts` | 196 B |
| `./packages/wow-ui/dist/components/Picker/pickerComponents.d.ts.map` | 278 B |
| `./packages/wow-ui/dist/components/Picker/pickerComponents.js` | 1.12 kB |
| `./packages/wow-ui/dist/components/Picker/PickerContext.d.ts` | 553 B |
| `./packages/wow-ui/dist/components/Picker/PickerContext.d.ts.map` | 562 B |
| `./packages/wow-ui/dist/components/Picker/PickerContext.js` | 139 B |
| `./packages/wow-ui/dist/components/Picker/PickerGroup.d.ts` | 447 B |
| `./packages/wow-ui/dist/components/Picker/PickerGroup.d.ts.map` | 400 B |
| `./packages/wow-ui/dist/components/Picker/RangeDatePicker.d.ts` | 488 B |
| `./packages/wow-ui/dist/components/Picker/RangeDatePicker.d.ts.map` | 434 B |
| `./packages/wow-ui/dist/components/Picker/SingleDatePicker.d.ts` | 508 B |
| `./packages/wow-ui/dist/components/Picker/SingleDatePicker.d.ts.map` | 445 B |
| `./packages/wow-ui/dist/components/Picker/TimePicker.d.ts` | 466 B |
| `./packages/wow-ui/dist/components/Picker/TimePicker.d.ts.map` | 387 B |
| `./packages/wow-ui/dist/components/RadioGroup` | 4.1 kB |
| `./packages/wow-ui/dist/components/RadioGroup/RadioButton.d.ts` | 1.3 kB |
| `./packages/wow-ui/dist/components/RadioGroup/RadioButton.d.ts.map` | 513 B |
| `./packages/wow-ui/dist/components/RadioGroup/RadioContext.d.ts` | 848 B |
| `./packages/wow-ui/dist/components/RadioGroup/RadioContext.d.ts.map` | 451 B |
| `./packages/wow-ui/dist/components/RadioGroup/RadioContext.js` | 134 B |
| `./packages/wow-ui/dist/components/RadioGroup/RadioGroup.d.ts` | 710 B |
| `./packages/wow-ui/dist/components/RadioGroup/RadioGroup.d.ts.map` | 407 B |
| `./packages/wow-ui/dist/components/SearchBar` | 4.1 kB |
| `./packages/wow-ui/dist/components/SearchBar/index.d.ts` | 1.83 kB |
| `./packages/wow-ui/dist/components/SearchBar/index.d.ts.map` | 687 B |
| `./packages/wow-ui/dist/components/Spinner` | 4.1 kB |
| `./packages/wow-ui/dist/components/Spinner/BlueSpinner.d.ts` | 654 B |
| `./packages/wow-ui/dist/components/Spinner/BlueSpinner.d.ts.map` | 470 B |
| `./packages/wow-ui/dist/components/Spinner/RainbowSpinner.d.ts` | 744 B |
| `./packages/wow-ui/dist/components/Spinner/RainbowSpinner.d.ts.map` | 477 B |
| `./packages/wow-ui/dist/components/Stepper` | 4.1 kB |
| `./packages/wow-ui/dist/components/Stepper/index.d.ts` | 741 B |
| `./packages/wow-ui/dist/components/Stepper/index.d.ts.map` | 490 B |
| `./packages/wow-ui/dist/components/Switch` | 4.1 kB |
| `./packages/wow-ui/dist/components/Switch/index.d.ts` | 2.17 kB |
| `./packages/wow-ui/dist/components/Switch/index.d.ts.map` | 748 B |
| `./packages/wow-ui/dist/components/Table` | 4.1 kB |
| `./packages/wow-ui/dist/components/Table/Table.d.ts` | 1.47 kB |
| `./packages/wow-ui/dist/components/Table/Table.d.ts.map` | 610 B |
| `./packages/wow-ui/dist/components/Table/TableContext.d.ts` | 945 B |
| `./packages/wow-ui/dist/components/Table/TableContext.d.ts.map` | 342 B |
| `./packages/wow-ui/dist/components/Table/TableContext.js` | 343 B |
| `./packages/wow-ui/dist/components/Table/Tbody.d.ts` | 370 B |
| `./packages/wow-ui/dist/components/Table/Tbody.d.ts.map` | 363 B |
| `./packages/wow-ui/dist/components/Table/Td.d.ts` | 351 B |
| `./packages/wow-ui/dist/components/Table/Td.d.ts.map` | 327 B |
| `./packages/wow-ui/dist/components/Table/Th.d.ts` | 355 B |
| `./packages/wow-ui/dist/components/Table/Th.d.ts.map` | 328 B |
| `./packages/wow-ui/dist/components/Table/Thead.d.ts` | 355 B |
| `./packages/wow-ui/dist/components/Table/Thead.d.ts.map` | 332 B |
| `./packages/wow-ui/dist/components/Table/Tr.d.ts` | 380 B |
| `./packages/wow-ui/dist/components/Table/Tr.d.ts.map` | 356 B |
| `./packages/wow-ui/dist/components/Tabs` | 4.1 kB |
| `./packages/wow-ui/dist/components/Tabs/contexts` | 4.1 kB |
| `./packages/wow-ui/dist/components/Tabs/contexts/CollectionContext.d.ts` | 360 B |
| `./packages/wow-ui/dist/components/Tabs/contexts/CollectionContext.d.ts.map` | 356 B |
| `./packages/wow-ui/dist/components/Tabs/contexts/CollectionContext.js` | 328 B |
| `./packages/wow-ui/dist/components/Tabs/contexts/TabsContext.d.ts` | 373 B |
| `./packages/wow-ui/dist/components/Tabs/contexts/TabsContext.d.ts.map` | 372 B |
| `./packages/wow-ui/dist/components/Tabs/contexts/TabsContext.js` | 186 B |
| `./packages/wow-ui/dist/components/Tabs/index.d.ts` | 1.15 kB |
| `./packages/wow-ui/dist/components/Tabs/index.d.ts.map` | 498 B |
| `./packages/wow-ui/dist/components/Tabs/TabsContent.d.ts` | 1.02 kB |
| `./packages/wow-ui/dist/components/Tabs/TabsContent.d.ts.map` | 374 B |
| `./packages/wow-ui/dist/components/Tabs/TabsItem.d.ts` | 1.11 kB |
| `./packages/wow-ui/dist/components/Tabs/TabsItem.d.ts.map` | 408 B |
| `./packages/wow-ui/dist/components/Tabs/TabsList.d.ts` | 307 B |
| `./packages/wow-ui/dist/components/Tabs/TabsList.d.ts.map` | 258 B |
| `./packages/wow-ui/dist/components/Tag` | 4.1 kB |
| `./packages/wow-ui/dist/components/Tag/index.d.ts` | 710 B |
| `./packages/wow-ui/dist/components/Tag/index.d.ts.map` | 660 B |
| `./packages/wow-ui/dist/components/TextButton` | 4.1 kB |
| `./packages/wow-ui/dist/components/TextButton/index.d.ts` | 1.35 kB |
| `./packages/wow-ui/dist/components/TextButton/index.d.ts.map` | 774 B |
| `./packages/wow-ui/dist/components/TextField` | 4.1 kB |
| `./packages/wow-ui/dist/components/TextField/index.d.ts` | 2.2 kB |
| `./packages/wow-ui/dist/components/TextField/index.d.ts.map` | 787 B |
| `./packages/wow-ui/dist/components/Toast` | 4.1 kB |
| `./packages/wow-ui/dist/components/Toast/index.d.ts` | 1.49 kB |
| `./packages/wow-ui/dist/components/Toast/index.d.ts.map` | 661 B |
| `./packages/wow-ui/dist/components/Toast/ToastContext.d.ts` | 462 B |
| `./packages/wow-ui/dist/components/Toast/ToastContext.d.ts.map` | 482 B |
| `./packages/wow-ui/dist/components/Toast/ToastContext.js` | 173 B |
| `./packages/wow-ui/dist/components/Toast/ToastProvider.d.ts` | 314 B |
| `./packages/wow-ui/dist/components/Toast/ToastProvider.d.ts.map` | 336 B |
| `./packages/wow-ui/dist/components/Toast/useToast.d.ts` | 247 B |
| `./packages/wow-ui/dist/components/Toast/useToast.d.ts.map` | 184 B |
| `./packages/wow-ui/dist/css-BqMMr_RH.js` | 13.2 kB |
| `./packages/wow-ui/dist/cva-D61kDybU.js` | 1.17 kB |
| `./packages/wow-ui/dist/DateDropDown.cjs` | 1.23 kB |
| `./packages/wow-ui/dist/DateDropDown.js` | 1.47 kB |
| `./packages/wow-ui/dist/DropDown.cjs` | 5.55 kB |
| `./packages/wow-ui/dist/DropDown.js` | 1.28 kB |
| `./packages/wow-ui/dist/DropDownOption.cjs` | 1.25 kB |
| `./packages/wow-ui/dist/DropDownOption.js` | 1.71 kB |
| `./packages/wow-ui/dist/factory-uSp5JCfA.js` | 15.2 kB |
| `./packages/wow-ui/dist/flex-C0Ry8qkr.js` | 600 B |
| `./packages/wow-ui/dist/formatToString-CNM3Nmks.js` | 1.41 kB |
| `./packages/wow-ui/dist/hooks` | 4.1 kB |
| `./packages/wow-ui/dist/hooks/useCheckedState.d.ts` | 746 B |
| `./packages/wow-ui/dist/hooks/useCheckedState.d.ts.map` | 522 B |
| `./packages/wow-ui/dist/hooks/useCheckedState.js` | 788 B |
| `./packages/wow-ui/dist/hooks/useClickOutside.d.ts` | 174 B |
| `./packages/wow-ui/dist/hooks/useClickOutside.d.ts.map` | 230 B |
| `./packages/wow-ui/dist/hooks/useClickOutside.js` | 316 B |
| `./packages/wow-ui/dist/hooks/useDropDownState.d.ts` | 730 B |
| `./packages/wow-ui/dist/hooks/useDropDownState.d.ts.map` | 471 B |
| `./packages/wow-ui/dist/hooks/useDropDownState.js` | 565 B |
| `./packages/wow-ui/dist/hooks/useFormControl.d.ts` | 932 B |
| `./packages/wow-ui/dist/hooks/useFormControl.d.ts.map` | 763 B |
| `./packages/wow-ui/dist/hooks/useFormControl.js` | 816 B |
| `./packages/wow-ui/dist/hooks/useGroupCheckedState.d.ts` | 781 B |
| `./packages/wow-ui/dist/hooks/useGroupCheckedState.d.ts.map` | 546 B |
| `./packages/wow-ui/dist/hooks/useGroupCheckedState.js` | 1.02 kB |
| `./packages/wow-ui/dist/hooks/useMergeRefs.d.ts` | 178 B |
| `./packages/wow-ui/dist/hooks/useMergeRefs.d.ts.map` | 302 B |
| `./packages/wow-ui/dist/hooks/useMergeRefs.js` | 228 B |
| `./packages/wow-ui/dist/hooks/usePagination.d.ts` | 525 B |
| `./packages/wow-ui/dist/hooks/usePagination.d.ts.map` | 255 B |
| `./packages/wow-ui/dist/hooks/usePagination.js` | 963 B |
| `./packages/wow-ui/dist/hooks/useSafeContext.d.ts` | 296 B |
| `./packages/wow-ui/dist/hooks/useSafeContext.d.ts.map` | 355 B |
| `./packages/wow-ui/dist/hooks/useSafeContext.js` | 183 B |
| `./packages/wow-ui/dist/hooks/useTableCheckState.d.ts` | 369 B |
| `./packages/wow-ui/dist/hooks/useTableCheckState.d.ts.map` | 270 B |
| `./packages/wow-ui/dist/hooks/useTableCheckState.js` | 604 B |
| `./packages/wow-ui/dist/hooks/useTextareaAutosize.d.ts` | 178 B |
| `./packages/wow-ui/dist/hooks/useTextareaAutosize.d.ts.map` | 242 B |
| `./packages/wow-ui/dist/hooks/useTextareaAutosize.js` | 526 B |
| `./packages/wow-ui/dist/hooks/useTimeState.d.ts` | 528 B |
| `./packages/wow-ui/dist/hooks/useTimeState.d.ts.map` | 435 B |
| `./packages/wow-ui/dist/hooks/useTimeState.js` | 509 B |
| `./packages/wow-ui/dist/index-CptAlOmg.js` | 28.9 kB |
| `./packages/wow-ui/dist/MultiGroup.cjs` | 1.22 kB |
| `./packages/wow-ui/dist/MultiGroup.js` | 1.59 kB |
| `./packages/wow-ui/dist/MultiGroupContext-NdW4myYx.js` | 151 B |
| `./packages/wow-ui/dist/node_modules` | 4.1 kB |
| `./packages/wow-ui/dist/objectWithoutProperties-CV19oto2.js` | 1.68 kB |
| `./packages/wow-ui/dist/packages` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-icons` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-icons/dist` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-icons/dist/index.js` | 28.2 kB |
| `./packages/wow-ui/dist/packages/wow-ui` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/css` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/css/conditions.js` | 1.48 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/css/css.js` | 8.18 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/css/cva.js` | 1.21 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/css/cx.js` | 138 B |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/helpers.js` | 4.05 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/jsx` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/jsx/factory-helper.js` | 581 B |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/jsx/factory.js` | 1.32 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/jsx/flex.js` | 353 B |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/jsx/is-valid-prop.js` | 13.6 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/patterns` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/patterns/flex.js` | 385 B |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/tokens` | 4.1 kB |
| `./packages/wow-ui/dist/packages/wow-ui/styled-system/tokens/index.js` | 11.7 kB |
| `./packages/wow-ui/dist/Pagination.cjs` | 15.8 kB |
| `./packages/wow-ui/dist/Pagination.js` | 3.34 kB |
| `./packages/wow-ui/dist/pickerComponents-BfFxIxwA.js` | 45.8 kB |
| `./packages/wow-ui/dist/PickerContext-rVhmCdD0.js` | 140 B |
| `./packages/wow-ui/dist/PickerGroup.cjs` | 1 kB |
| `./packages/wow-ui/dist/PickerGroup.js` | 1.25 kB |
| `./packages/wow-ui/dist/RadioButton.cjs` | 2.54 kB |
| `./packages/wow-ui/dist/RadioButton.js` | 2.88 kB |
| `./packages/wow-ui/dist/RadioContext-Coyj362_.js` | 140 B |
| `./packages/wow-ui/dist/RadioGroup.cjs` | 737 B |
| `./packages/wow-ui/dist/RadioGroup.js` | 921 B |
| `./packages/wow-ui/dist/RainbowSpinner.cjs` | 5.18 kB |
| `./packages/wow-ui/dist/RainbowSpinner.js` | 557 B |
| `./packages/wow-ui/dist/RangeDatePicker.cjs` | 1.52 kB |
| `./packages/wow-ui/dist/RangeDatePicker.js` | 2.14 kB |
| `./packages/wow-ui/dist/SingleDatePicker.cjs` | 1.56 kB |
| `./packages/wow-ui/dist/SingleDatePicker.js` | 2.28 kB |
| `./packages/wow-ui/dist/slicedToArray-DKR3SRAT.js` | 1.12 kB |
| `./packages/wow-ui/dist/Stepper.cjs` | 2.52 kB |
| `./packages/wow-ui/dist/Stepper.js` | 2.67 kB |
| `./packages/wow-ui/dist/Switch.cjs` | 3.14 kB |
| `./packages/wow-ui/dist/Switch.js` | 3.29 kB |
| `./packages/wow-ui/dist/Table.cjs` | 2.46 kB |
| `./packages/wow-ui/dist/Table.js` | 2.38 kB |
| `./packages/wow-ui/dist/TableContext-P6kcrXxv.js` | 363 B |
| `./packages/wow-ui/dist/Tabs.cjs` | 808 B |
| `./packages/wow-ui/dist/Tabs.js` | 1.01 kB |
| `./packages/wow-ui/dist/TabsContent.cjs` | 445 B |
| `./packages/wow-ui/dist/TabsContent.js` | 437 B |
| `./packages/wow-ui/dist/TabsContext-BGerq0sP.js` | 187 B |
| `./packages/wow-ui/dist/TabsItem.cjs` | 1.4 kB |
| `./packages/wow-ui/dist/TabsItem.js` | 1.71 kB |
| `./packages/wow-ui/dist/TabsList.cjs` | 1.24 kB |
| `./packages/wow-ui/dist/TabsList.js` | 1.35 kB |
| `./packages/wow-ui/dist/Tag.cjs` | 1.49 kB |
| `./packages/wow-ui/dist/Tag.js` | 1.87 kB |
| `./packages/wow-ui/dist/Tbody.cjs` | 461 B |
| `./packages/wow-ui/dist/Tbody.js` | 723 B |
| `./packages/wow-ui/dist/Td.cjs` | 999 B |
| `./packages/wow-ui/dist/Td.js` | 1.42 kB |
| `./packages/wow-ui/dist/Th.cjs` | 636 B |
| `./packages/wow-ui/dist/Th.js` | 852 B |
| `./packages/wow-ui/dist/Thead.cjs` | 1.06 kB |
| `./packages/wow-ui/dist/Thead.js` | 1.18 kB |
| `./packages/wow-ui/dist/TimePicker.cjs` | 2.58 kB |
| `./packages/wow-ui/dist/TimePicker.js` | 2.2 kB |
| `./packages/wow-ui/dist/ToastProvider.js` | 1.47 kB |
| `./packages/wow-ui/dist/toConsumableArray-Dil0zJR3.js` | 494 B |
| `./packages/wow-ui/dist/Tr.cjs` | 1.39 kB |
| `./packages/wow-ui/dist/Tr.js` | 1.51 kB |
| `./packages/wow-ui/dist/types` | 4.1 kB |
| `./packages/wow-ui/dist/types/button.d.ts` | 2.01 kB |
| `./packages/wow-ui/dist/types/button.d.ts.map` | 946 B |
| `./packages/wow-ui/dist/types/DefaultProps.d.ts` | 450 B |
| `./packages/wow-ui/dist/types/DefaultProps.d.ts.map` | 273 B |
| `./packages/wow-ui/dist/types/index.d.ts` | 262 B |
| `./packages/wow-ui/dist/types/index.d.ts.map` | 260 B |
| `./packages/wow-ui/dist/types/polymorphic.d.ts` | 607 B |
| `./packages/wow-ui/dist/types/polymorphic.d.ts.map` | 656 B |
| `./packages/wow-ui/dist/types/table.d.ts` | 627 B |
| `./packages/wow-ui/dist/types/table.d.ts.map` | 642 B |
| `./packages/wow-ui/dist/useClickOutside-BEvht8kZ.js` | 339 B |
| `./packages/wow-ui/dist/useGroupCheckedState-TNY-ZYk2.js` | 1 kB |
| `./packages/wow-ui/dist/useMergeRefs-HMD0SwbP.js` | 235 B |
| `./packages/wow-ui/dist/useSafeContext-8koacWEq.js` | 191 B |
| `./packages/wow-ui/dist/useToast-B-Hxe0Qj.js` | 234 B |
| `./packages/wow-ui/dist/useToast.cjs` | 137 B |
| `./packages/wow-ui/dist/useToast.js` | 170 B |
| `./packages/wow-ui/dist/utils` | 4.1 kB |
| `./packages/wow-ui/dist/utils/calcPercent.d.ts` | 120 B |
| `./packages/wow-ui/dist/utils/calcPercent.d.ts.map` | 175 B |
| `./packages/wow-ui/dist/utils/calcPercent.js` | 66 B |
| `./packages/wow-ui/dist/utils/formatToString.d.ts` | 348 B |
| `./packages/wow-ui/dist/utils/formatToString.d.ts.map` | 309 B |
| `./packages/wow-ui/dist/utils/formatToString.js` | 444 B |
| `./packages/wow-ui/dist/utils/index.d.ts` | 85 B |
| `./packages/wow-ui/dist/utils/index.d.ts.map` | 162 B |
| `./packages/wow-ui/dist/utils/isMobile.d.ts` | 102 B |
| `./packages/wow-ui/dist/utils/isMobile.d.ts.map` | 168 B |
| `./packages/wow-ui/dist/utils/isMobile.js` | 100 B |

</details>



<a href="https://github.com/preactjs/compressed-size-action"><sub>compressed-size-action</sub></a>
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-04-23T02:14:53Z
body: 🚀 storybook: https://663657b8272769a8d18a5e3f-unjdrazvrc.chromatic.com/
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-04-23T07:48:15Z
body: 🚀 storybook: https://663657b8272769a8d18a5e3f-tftgaawmyw.chromatic.com/
author_association: CONTRIBUTOR