@jbpark/ui-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +267 -0
  2. package/dist/Menu.cjs +10 -0
  3. package/dist/Menu.d.cts +2 -0
  4. package/dist/Menu.d.mts +2 -0
  5. package/dist/Menu.mjs +8 -0
  6. package/dist/Reveals-BIKKnQpn.cjs +119 -0
  7. package/dist/Reveals-BpnYZJUk.mjs +89 -0
  8. package/dist/Reveals.cjs +9 -0
  9. package/dist/Reveals.d.cts +2 -0
  10. package/dist/Reveals.d.mts +2 -0
  11. package/dist/Reveals.mjs +4 -0
  12. package/dist/Typography-B3MWBAA6.cjs +102 -0
  13. package/dist/Typography-LYvEW-c8.mjs +72 -0
  14. package/dist/Typography.cjs +9 -0
  15. package/dist/Typography.d.cts +2 -0
  16. package/dist/Typography.d.mts +2 -0
  17. package/dist/Typography.mjs +4 -0
  18. package/dist/enums-CP_LwqBM.cjs +18 -0
  19. package/dist/enums-HFC1lmIX.mjs +12 -0
  20. package/dist/enums.cjs +3 -0
  21. package/dist/enums.d.cts +4 -0
  22. package/dist/enums.d.mts +4 -0
  23. package/dist/enums.mjs +3 -0
  24. package/dist/globals.css +125 -0
  25. package/dist/index-BO7hcWjo.d.mts +59 -0
  26. package/dist/index-BqaluEQ4.d.mts +83 -0
  27. package/dist/index-CdyEmwZC.d.cts +97 -0
  28. package/dist/index-Cu2qFRc3.d.cts +83 -0
  29. package/dist/index-D1Bkn0Xy.d.cts +59 -0
  30. package/dist/index-DS-PGSIg.d.mts +97 -0
  31. package/dist/index.cjs +24 -0
  32. package/dist/index.d.cts +528 -0
  33. package/dist/index.d.mts +533 -0
  34. package/dist/index.mjs +6 -0
  35. package/dist/src-CkhEsWv5.css +124 -0
  36. package/dist/src-DfLPlkqV.css +124 -0
  37. package/dist/src-DlEgA3c9.mjs +5118 -0
  38. package/dist/src-Dvkx0I-F.cjs +5262 -0
  39. package/dist/utils-8r5MlYq5.cjs +16 -0
  40. package/dist/utils-DEenfsJ-.mjs +10 -0
  41. package/dist/utils.cjs +3 -0
  42. package/dist/utils.d.cts +6 -0
  43. package/dist/utils.d.mts +6 -0
  44. package/dist/utils.mjs +3 -0
  45. package/package.json +99 -0
package/README.md ADDED
@@ -0,0 +1,267 @@
1
+ # @jbpark/ui-kit
2
+
3
+ 현대적이고 재사용 가능한 React UI 컴포넌트 라이브러리입니다. Atomic Design 패턴을 따라 체계적으로 구성되어 있으며, TypeScript와 Tailwind CSS를 기반으로 구축되었습니다.
4
+
5
+ ## 📦 패키지 정보
6
+
7
+ - **패키지명**: `@jbpark/ui-kit`
8
+ - **라이선스**: MIT
9
+ - **패키지 매니저**: npm
10
+ - **Node.js 요구사항**: >= 18
11
+ - **React 요구사항**: ^18.0.0 || ^19.0.0
12
+
13
+ ## 🏗 아키텍처
14
+
15
+ ### Atomic Design 패턴
16
+
17
+ 이 라이브러리는 Atomic Design 방법론을 따라 컴포넌트를 계층적으로 구성합니다:
18
+
19
+ ```
20
+ src/
21
+ ├── components/
22
+ │ ├── atoms/ # 🧬 원자 - 기본 UI 구성 요소
23
+ │ ├── molecules/ # 🔬 분자 - 원자들의 조합
24
+ │ ├── organisms/ # 🦠 유기체 - 복잡한 UI 블록
25
+ │ └── templates/ # 📄 템플릿 - 페이지 레이아웃
26
+ ├── core/ # ⚙️ 핵심 UI 로직 (Radix UI 기반)
27
+ ├── lib/
28
+ │ ├── enums/ # 📋 열거형 타입
29
+ │ ├── hooks/ # 🎣 커스텀 훅
30
+ │ └── utils/ # 🛠 유틸리티 함수
31
+ ├── globals.css # 🎨 전역 스타일
32
+ └── index.ts # 📥 패키지 진입점
33
+ ```
34
+
35
+ ## 🧬 Atoms (원자)
36
+
37
+ 기본적인 UI 구성 요소들
38
+
39
+ | 컴포넌트 | 설명 | 하위 컴포넌트 |
40
+ | --------------- | ------------------------- | ------------------------------------ |
41
+ | **Button** | 다양한 스타일의 버튼 | - |
42
+ | **Checkbox** | 체크박스 및 그룹 체크박스 | `Group` |
43
+ | **FloatButton** | 플로팅 버튼 | `BackTop` |
44
+ | **Input** | 입력 필드 컴포넌트 | `Search`, `TextArea` |
45
+ | **Progress** | 진행률 표시 컴포넌트 | - |
46
+ | **Skeleton** | 로딩 스켈레톤 | `Button`, `Node` |
47
+ | **Spin** | 로딩 스피너 | - |
48
+ | **Switch** | 토글 스위치 | - |
49
+ | **Typography** | 텍스트 컴포넌트 | `Link`, `Paragraph`, `Text`, `Title` |
50
+
51
+ ## 🔬 Molecules (분자)
52
+
53
+ 여러 원자들이 결합된 복합 컴포넌트들
54
+
55
+ | 컴포넌트 | 설명 | 하위 컴포넌트 |
56
+ | ------------ | ------------------------ | ------------- |
57
+ | **Collapse** | 접을 수 있는 컨텐츠 영역 | - |
58
+ | **Dropdown** | 드롭다운 메뉴 | - |
59
+ | **Marquees** | 무한 스크롤 마키 | `Item` |
60
+ | **Menu** | 네비게이션 메뉴 | - |
61
+ | **Reveals** | 애니메이션 리빌 | `Item` |
62
+ | **Space** | 간격 조정 컴포넌트 | - |
63
+
64
+ ## 🦠 Organisms (유기체)
65
+
66
+ 복잡한 UI 섹션들
67
+
68
+ | 컴포넌트 | 설명 | 하위 컴포넌트 |
69
+ | ---------- | ----------------------- | ------------- |
70
+ | **Drawer** | 사이드 드로어 | - |
71
+ | **List** | 리스트 및 리스트 아이템 | `Item` |
72
+ | **Modal** | 모달 다이얼로그 | - |
73
+ | **Swiper** | 슬라이더 컴포넌트 | `Slide` |
74
+
75
+ ## 📄 Templates (템플릿)
76
+
77
+ 페이지 레이아웃 템플릿
78
+
79
+ | 컴포넌트 | 설명 | 하위 컴포넌트 |
80
+ | ---------- | -------------------- | -------------------------------------- |
81
+ | **Layout** | 전체 페이지 레이아웃 | `Header`, `Sider`, `Content`, `Footer` |
82
+
83
+ ## 🛠 핵심 기능
84
+
85
+ ### Core 모듈
86
+
87
+ Radix UI 기반의 접근성 우선 핵심 컴포넌트들:
88
+
89
+ - `accordion.tsx` - 아코디언 컴포넌트 (Radix UI 기반)
90
+ - `button.tsx` - 버튼 컴포넌트 (class-variance-authority로 variants 관리)
91
+ - `dialog.tsx` - 다이얼로그 컴포넌트 (Radix UI 기반)
92
+ - `drawer.tsx` - 드로어 컴포넌트 (Vaul 기반)
93
+ - `progress.tsx` - 진행률 컴포넌트 (Radix UI 기반)
94
+ - `skeleton.tsx` - 스켈레톤 컴포넌트
95
+ - `switch.tsx` - 스위치 컴포넌트 (Radix UI 기반)
96
+
97
+ ### 유틸리티
98
+
99
+ - **`cn()`** - 클래스명 병합 유틸리티 (clsx + tailwind-merge)
100
+ - **`TEXT_LEVELS`** - 타이포그래피 레벨 상수
101
+
102
+ ## 🚀 설치 및 사용법
103
+
104
+ ### 설치
105
+
106
+ ```bash
107
+ # npm
108
+ npm install @jbpark/ui-kit
109
+
110
+ # yarn
111
+ yarn add @jbpark/ui-kit
112
+
113
+ # pnpm
114
+ pnpm add @jbpark/ui-kit
115
+ ```
116
+
117
+ ### 기본 사용법
118
+
119
+ ```tsx
120
+ import { Button, Layout, Typography } from '@jbpark/ui-kit';
121
+
122
+ import '@jbpark/ui-kit/style.css';
123
+
124
+ function App() {
125
+ return (
126
+ <Layout>
127
+ <Typography.Title>안녕하세요!</Typography.Title>
128
+ <Button variant="primary">클릭하세요</Button>
129
+ </Layout>
130
+ );
131
+ }
132
+ ```
133
+
134
+ ### 개별 컴포넌트 import
135
+
136
+ ```tsx
137
+ // Typography 컴포넌트
138
+ // Menu 컴포넌트
139
+ import { Menu } from '@jbpark/ui-kit/Menu';
140
+ // Reveals 컴포넌트
141
+ import { Reveals } from '@jbpark/ui-kit/Reveals';
142
+ import { Typography } from '@jbpark/ui-kit/Typography';
143
+ ```
144
+
145
+ ### 유틸리티 및 열거형 import
146
+
147
+ ```tsx
148
+ // 유틸리티 함수
149
+ // 열거형 상수
150
+ import { TEXT_LEVELS } from '@jbpark/ui-kit/enums';
151
+ import { cn } from '@jbpark/ui-kit/utils';
152
+ ```
153
+
154
+ ### 스타일 import
155
+
156
+ ```tsx
157
+ // 전역 스타일 (필수)
158
+ import '@jbpark/ui-kit/style.css';
159
+ ```
160
+
161
+ ## 🎨 스타일링
162
+
163
+ ### Tailwind CSS
164
+
165
+ - **Tailwind CSS 4** 기반
166
+ - **PostCSS** 처리
167
+ - **class-variance-authority**로 컴포넌트 variants 관리
168
+ - **tailwind-merge**로 클래스 충돌 해결
169
+
170
+ ### 커스터마이징
171
+
172
+ ```tsx
173
+ // 전역 스타일 import (필수)
174
+ import '@jbpark/ui-kit/style.css';
175
+
176
+ // tailwind.config.js에서 테마 커스터마이징
177
+ // Tailwind CSS 4를 사용하는 경우 PostCSS 설정 필요
178
+ ```
179
+
180
+ ## 📚 주요 의존성
181
+
182
+ ### 핵심 라이브러리
183
+
184
+ - **React 19.1.0** - UI 라이브러리
185
+ - **TypeScript 5.9.2** - 정적 타입 체크
186
+ - **Tailwind CSS 4.1.12** - 유틸리티 CSS 프레임워크
187
+
188
+ ### UI 라이브러리
189
+
190
+ - **Radix UI** - 접근성 우선 헤드리스 UI 컴포넌트
191
+ - `@radix-ui/react-accordion` (1.2.12)
192
+ - `@radix-ui/react-dialog` (1.1.15)
193
+ - `@radix-ui/react-progress` (1.1.7)
194
+ - `@radix-ui/react-slot` (1.2.3)
195
+ - `@radix-ui/react-switch` (1.2.6)
196
+ - **Lucide React 0.542.0** - 아이콘 라이브러리
197
+ - **Motion 12.23.12** - 애니메이션 라이브러리
198
+ - **Swiper 11.2.10** - 터치 슬라이더
199
+ - **Vaul 1.1.2** - 드로어 컴포넌트
200
+
201
+ ### 유틸리티
202
+
203
+ - **class-variance-authority 0.7.1** - 컴포넌트 variants 관리
204
+ - **clsx 2.1.1** - 조건부 클래스명
205
+ - **tailwind-merge 3.3.1** - Tailwind 클래스 병합
206
+ - **react-use 17.6.0** - React 훅 모음
207
+ - **@uidotdev/usehooks 2.4.1** - 추가 React 훅
208
+ - **uuid 11.1.0** - 고유 ID 생성
209
+ - **@gsap/react 2.1.2** - GSAP 애니메이션
210
+ - **tw-animate-css 1.3.7** - Tailwind 애니메이션
211
+
212
+ ## 🔧 개발
213
+
214
+ 이 패키지는 모노레포(Turborepo) 환경에서 개발됩니다.
215
+
216
+ ### 타입 체크
217
+
218
+ ```bash
219
+ npm run check-types
220
+ ```
221
+
222
+ ### 린팅
223
+
224
+ ```bash
225
+ npm run lint
226
+ ```
227
+
228
+ ### 빌드
229
+
230
+ ```bash
231
+ npm run build
232
+ ```
233
+
234
+ ### 컴포넌트 생성
235
+
236
+ ```bash
237
+ npm run generate:component
238
+ ```
239
+
240
+ ## 📦 패키지 Exports
241
+
242
+ 이 패키지는 다음과 같은 모듈들을 export합니다:
243
+
244
+ - `@jbpark/ui-kit` - 메인 패키지 (모든 컴포넌트)
245
+ - `@jbpark/ui-kit/Typography` - Typography 컴포넌트
246
+ - `@jbpark/ui-kit/Menu` - Menu 컴포넌트
247
+ - `@jbpark/ui-kit/Reveals` - Reveals 컴포넌트
248
+ - `@jbpark/ui-kit/utils` - 유틸리티 함수 (`cn` 등)
249
+ - `@jbpark/ui-kit/enums` - 열거형 상수 (`TEXT_LEVELS` 등)
250
+ - `@jbpark/ui-kit/style.css` - 전역 스타일 (필수)
251
+
252
+ ## 🤝 기여하기
253
+
254
+ 1. 이 저장소를 포크합니다
255
+ 2. 새로운 기능 브랜치를 생성합니다 (`git checkout -b feature/amazing-component`)
256
+ 3. 컴포넌트를 Atomic Design 패턴에 따라 적절한 폴더에 배치합니다
257
+ 4. TypeScript 타입을 정의합니다
258
+ 5. Storybook 스토리를 작성합니다
259
+ 6. 변경사항을 커밋합니다 (`git commit -m 'Add amazing component'`)
260
+ 7. 브랜치에 푸시합니다 (`git push origin feature/amazing-component`)
261
+ 8. Pull Request를 생성합니다
262
+
263
+ ## 📄 라이선스
264
+
265
+ MIT 라이선스 하에 있습니다.
266
+
267
+ ---
package/dist/Menu.cjs ADDED
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+ const require_src = require('./src-Dvkx0I-F.cjs');
5
+ require('./utils-8r5MlYq5.cjs');
6
+ require('./Typography-B3MWBAA6.cjs');
7
+ require('./Reveals-BIKKnQpn.cjs');
8
+
9
+ exports.default = require_src.Menu_default;
10
+ exports.findKey = require_src.findKey;
@@ -0,0 +1,2 @@
1
+ import { a as findKey, i as MenuProps, n as Menu, r as MenuItem, t as ClickEventHandler } from "./index-D1Bkn0Xy.cjs";
2
+ export { ClickEventHandler, MenuItem, MenuProps, Menu as default, findKey };
@@ -0,0 +1,2 @@
1
+ import { a as findKey, i as MenuProps, n as Menu, r as MenuItem, t as ClickEventHandler } from "./index-BO7hcWjo.mjs";
2
+ export { ClickEventHandler, MenuItem, MenuProps, Menu as default, findKey };
package/dist/Menu.mjs ADDED
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+
3
+ import { l as Menu_default, u as findKey } from "./src-DlEgA3c9.mjs";
4
+ import "./utils-DEenfsJ-.mjs";
5
+ import "./Typography-LYvEW-c8.mjs";
6
+ import "./Reveals-BpnYZJUk.mjs";
7
+
8
+ export { Menu_default as default, findKey };
@@ -0,0 +1,119 @@
1
+ const require_src = require('./src-Dvkx0I-F.cjs');
2
+ const require_utils = require('./utils-8r5MlYq5.cjs');
3
+ let react = require("react");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ let motion_react = require("motion/react");
6
+
7
+ //#region src/components/molecules/Reveals/Item/index.tsx
8
+ const effectVariants = {
9
+ fadeIn: {
10
+ offscreen: { opacity: 0 },
11
+ onscreen: { opacity: 1 }
12
+ },
13
+ fadeInUp: {
14
+ offscreen: {
15
+ opacity: 0,
16
+ y: 50
17
+ },
18
+ onscreen: {
19
+ opacity: 1,
20
+ y: 0
21
+ }
22
+ },
23
+ slideInUp: {
24
+ offscreen: {
25
+ opacity: 1,
26
+ y: 50
27
+ },
28
+ onscreen: {
29
+ opacity: 1,
30
+ y: 0
31
+ }
32
+ }
33
+ };
34
+ const Item = ({ effect = "fadeInUp", children, once, viewport, variants, duration, delay, transition, className, ...props }) => {
35
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(motion_react.motion.div, {
36
+ initial: "offscreen",
37
+ whileInView: "onscreen",
38
+ viewport: {
39
+ once,
40
+ ...viewport
41
+ },
42
+ variants: {
43
+ offscreen: {
44
+ ...effectVariants[effect].offscreen,
45
+ ...variants?.offscreen,
46
+ transition: { duration: 0 }
47
+ },
48
+ onscreen: {
49
+ ...effectVariants[effect].onscreen,
50
+ ...variants?.onscreen,
51
+ transition: {
52
+ duration,
53
+ ease: "easeOut",
54
+ delay,
55
+ ...transition
56
+ }
57
+ }
58
+ },
59
+ className: require_utils.cn("flex h-full items-center justify-center", className),
60
+ ...props,
61
+ children
62
+ });
63
+ };
64
+ var Item_default = Item;
65
+
66
+ //#endregion
67
+ //#region src/components/molecules/Reveals/index.tsx
68
+ const DURATION = .6;
69
+ const DELAY = 0;
70
+ const CASCADE = .1;
71
+ const Reveals = ({ children, className, classNames, items = [], cascade = CASCADE, duration = DURATION, delay = DELAY, ...props }) => {
72
+ const renderItems = (items$1) => items$1.map((item, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Item_default, {
73
+ duration,
74
+ delay: delay + cascade * index,
75
+ className: require_utils.cn(item.className, classNames?.item),
76
+ ...props,
77
+ ...item,
78
+ children: item.children
79
+ }, index));
80
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
81
+ className: require_utils.cn("flex gap-5", className, classNames?.root),
82
+ ...props,
83
+ children: renderItems(children ? react.Children.toArray(children).map((child) => ({ children: child })) : items)
84
+ });
85
+ };
86
+ Reveals.Item = Item_default;
87
+ var Reveals_default = Reveals;
88
+
89
+ //#endregion
90
+ Object.defineProperty(exports, 'CASCADE', {
91
+ enumerable: true,
92
+ get: function () {
93
+ return CASCADE;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, 'DELAY', {
97
+ enumerable: true,
98
+ get: function () {
99
+ return DELAY;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, 'DURATION', {
103
+ enumerable: true,
104
+ get: function () {
105
+ return DURATION;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, 'Item_default', {
109
+ enumerable: true,
110
+ get: function () {
111
+ return Item_default;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, 'Reveals_default', {
115
+ enumerable: true,
116
+ get: function () {
117
+ return Reveals_default;
118
+ }
119
+ });
@@ -0,0 +1,89 @@
1
+ import { t as cn } from "./utils-DEenfsJ-.mjs";
2
+ import { Children } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { motion } from "motion/react";
5
+
6
+ //#region src/components/molecules/Reveals/Item/index.tsx
7
+ const effectVariants = {
8
+ fadeIn: {
9
+ offscreen: { opacity: 0 },
10
+ onscreen: { opacity: 1 }
11
+ },
12
+ fadeInUp: {
13
+ offscreen: {
14
+ opacity: 0,
15
+ y: 50
16
+ },
17
+ onscreen: {
18
+ opacity: 1,
19
+ y: 0
20
+ }
21
+ },
22
+ slideInUp: {
23
+ offscreen: {
24
+ opacity: 1,
25
+ y: 50
26
+ },
27
+ onscreen: {
28
+ opacity: 1,
29
+ y: 0
30
+ }
31
+ }
32
+ };
33
+ const Item = ({ effect = "fadeInUp", children, once, viewport, variants, duration, delay, transition, className, ...props }) => {
34
+ return /* @__PURE__ */ jsx(motion.div, {
35
+ initial: "offscreen",
36
+ whileInView: "onscreen",
37
+ viewport: {
38
+ once,
39
+ ...viewport
40
+ },
41
+ variants: {
42
+ offscreen: {
43
+ ...effectVariants[effect].offscreen,
44
+ ...variants?.offscreen,
45
+ transition: { duration: 0 }
46
+ },
47
+ onscreen: {
48
+ ...effectVariants[effect].onscreen,
49
+ ...variants?.onscreen,
50
+ transition: {
51
+ duration,
52
+ ease: "easeOut",
53
+ delay,
54
+ ...transition
55
+ }
56
+ }
57
+ },
58
+ className: cn("flex h-full items-center justify-center", className),
59
+ ...props,
60
+ children
61
+ });
62
+ };
63
+ var Item_default = Item;
64
+
65
+ //#endregion
66
+ //#region src/components/molecules/Reveals/index.tsx
67
+ const DURATION = .6;
68
+ const DELAY = 0;
69
+ const CASCADE = .1;
70
+ const Reveals = ({ children, className, classNames, items = [], cascade = CASCADE, duration = DURATION, delay = DELAY, ...props }) => {
71
+ const renderItems = (items$1) => items$1.map((item, index) => /* @__PURE__ */ jsx(Item_default, {
72
+ duration,
73
+ delay: delay + cascade * index,
74
+ className: cn(item.className, classNames?.item),
75
+ ...props,
76
+ ...item,
77
+ children: item.children
78
+ }, index));
79
+ return /* @__PURE__ */ jsx("div", {
80
+ className: cn("flex gap-5", className, classNames?.root),
81
+ ...props,
82
+ children: renderItems(children ? Children.toArray(children).map((child) => ({ children: child })) : items)
83
+ });
84
+ };
85
+ Reveals.Item = Item_default;
86
+ var Reveals_default = Reveals;
87
+
88
+ //#endregion
89
+ export { Item_default as a, Reveals_default as i, DELAY as n, DURATION as r, CASCADE as t };
@@ -0,0 +1,9 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+ require('./utils-8r5MlYq5.cjs');
3
+ const require_Reveals = require('./Reveals-BIKKnQpn.cjs');
4
+
5
+ exports.CASCADE = require_Reveals.CASCADE;
6
+ exports.DELAY = require_Reveals.DELAY;
7
+ exports.DURATION = require_Reveals.DURATION;
8
+ exports.Item = require_Reveals.Item_default;
9
+ exports.default = require_Reveals.Reveals_default;
@@ -0,0 +1,2 @@
1
+ import { a as Reveals, i as Props, n as DELAY, o as Item, r as DURATION, s as ItemProps, t as CASCADE } from "./index-CdyEmwZC.cjs";
2
+ export { CASCADE, DELAY, DURATION, Item, ItemProps, Props as RevealsProps, Reveals as default };
@@ -0,0 +1,2 @@
1
+ import { a as Reveals, i as Props, n as DELAY, o as Item, r as DURATION, s as ItemProps, t as CASCADE } from "./index-DS-PGSIg.mjs";
2
+ export { CASCADE, DELAY, DURATION, Item, ItemProps, Props as RevealsProps, Reveals as default };
@@ -0,0 +1,4 @@
1
+ import "./utils-DEenfsJ-.mjs";
2
+ import { a as Item_default, i as Reveals_default, n as DELAY, r as DURATION, t as CASCADE } from "./Reveals-BpnYZJUk.mjs";
3
+
4
+ export { CASCADE, DELAY, DURATION, Item_default as Item, Reveals_default as default };
@@ -0,0 +1,102 @@
1
+ const require_src = require('./src-Dvkx0I-F.cjs');
2
+ const require_utils = require('./utils-8r5MlYq5.cjs');
3
+ const require_enums = require('./enums-CP_LwqBM.cjs');
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+
6
+ //#region src/components/atoms/Typography/Link/index.tsx
7
+ const Link = ({ children, className, level, ...props }) => {
8
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
9
+ className: require_utils.cn("underline-offset-1 hover:underline", level ? require_enums.TEXT_LEVELS[level] : "", className),
10
+ ...props,
11
+ children
12
+ });
13
+ };
14
+ var Link_default = Link;
15
+
16
+ //#endregion
17
+ //#region src/components/atoms/Typography/Paragraph/index.tsx
18
+ const Paragraph = ({ children, className, level, ...props }) => {
19
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
20
+ ...props,
21
+ className: require_utils.cn(level ? require_enums.TEXT_LEVELS[level] : "", className),
22
+ children
23
+ });
24
+ };
25
+ var Paragraph_default = Paragraph;
26
+
27
+ //#endregion
28
+ //#region src/components/atoms/Typography/Text/index.tsx
29
+ const Text = ({ children, underline, strong, className, level, ...props }) => {
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
31
+ className: require_utils.cn("text-nowrap", level ? require_enums.TEXT_LEVELS[level] : "", underline && "underline", strong && "font-bold", className),
32
+ ...props,
33
+ children
34
+ });
35
+ };
36
+ var Text_default = Text;
37
+
38
+ //#endregion
39
+ //#region src/components/atoms/Typography/Title/index.tsx
40
+ const styles = {
41
+ h1: "text-6xl",
42
+ h2: "text-5xl",
43
+ h3: "text-4xl",
44
+ h4: "text-3xl",
45
+ h5: "text-2xl",
46
+ h6: "text-xl"
47
+ };
48
+ const Title = ({ children, level = 1, className, ...props }) => {
49
+ const Element = level < 1 || level > 6 ? "h1" : `h${level}`;
50
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Element, {
51
+ className: require_utils.cn("leading-snug font-bold", styles[Element], className),
52
+ ...props,
53
+ children
54
+ });
55
+ };
56
+ var Title_default = Title;
57
+
58
+ //#endregion
59
+ //#region src/components/atoms/Typography/index.tsx
60
+ const Typography = ({ children, ...props }) => {
61
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("article", {
62
+ ...props,
63
+ children
64
+ });
65
+ };
66
+ Typography.Link = Link_default;
67
+ Typography.Paragraph = Paragraph_default;
68
+ Typography.Text = Text_default;
69
+ Typography.Title = Title_default;
70
+ var Typography_default = Typography;
71
+
72
+ //#endregion
73
+ Object.defineProperty(exports, 'Link_default', {
74
+ enumerable: true,
75
+ get: function () {
76
+ return Link_default;
77
+ }
78
+ });
79
+ Object.defineProperty(exports, 'Paragraph_default', {
80
+ enumerable: true,
81
+ get: function () {
82
+ return Paragraph_default;
83
+ }
84
+ });
85
+ Object.defineProperty(exports, 'Text_default', {
86
+ enumerable: true,
87
+ get: function () {
88
+ return Text_default;
89
+ }
90
+ });
91
+ Object.defineProperty(exports, 'Title_default', {
92
+ enumerable: true,
93
+ get: function () {
94
+ return Title_default;
95
+ }
96
+ });
97
+ Object.defineProperty(exports, 'Typography_default', {
98
+ enumerable: true,
99
+ get: function () {
100
+ return Typography_default;
101
+ }
102
+ });