@bizapps/design-system-testing 0.4.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.
- package/README.md +500 -0
- package/dist/main.cjs +64 -0
- package/dist/main.cjs.map +1 -0
- package/dist/main.css +215 -0
- package/dist/main.css.map +1 -0
- package/dist/main.d.cts +15 -0
- package/dist/main.d.ts +15 -0
- package/dist/main.js +61 -0
- package/dist/main.js.map +1 -0
- package/package.json +114 -0
package/README.md
ADDED
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
# TCCE Design System
|
|
2
|
+
|
|
3
|
+
A React component library for the TCCE CRM applications. Provides reusable, consistent UI components built with React, TypeScript, Tailwind CSS, and styled-components.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This is a **component library** designed to ensure visual and functional consistency across all TCCE CRM frontend applications. It includes:
|
|
8
|
+
|
|
9
|
+
- **50+ reusable components** (Button, Card, Dialog, Table, Forms, etc.)
|
|
10
|
+
- **Design tokens** (colors, typography, spacing, shadows)
|
|
11
|
+
- **Storybook documentation** for all components
|
|
12
|
+
- **TypeScript support** with full type definitions
|
|
13
|
+
|
|
14
|
+
## Table of Contents
|
|
15
|
+
|
|
16
|
+
- [Prerequisites](#prerequisites)
|
|
17
|
+
- [Quick Start](#quick-start)
|
|
18
|
+
- [Project Structure](#project-structure)
|
|
19
|
+
- [Development](#development)
|
|
20
|
+
- [Building Components](#building-components)
|
|
21
|
+
- [Code Quality](#code-quality)
|
|
22
|
+
- [Testing Components](#testing-components)
|
|
23
|
+
- [Publishing](#publishing)
|
|
24
|
+
- [Contributing](#contributing)
|
|
25
|
+
- [Troubleshooting](#troubleshooting)
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Prerequisites
|
|
30
|
+
|
|
31
|
+
| Tool | Version | Notes |
|
|
32
|
+
|------|---------|-------|
|
|
33
|
+
| **Node.js** | v18+ | LTS recommended |
|
|
34
|
+
| **pnpm** | v8+ | Package manager |
|
|
35
|
+
| **Docker** | v20+ | Required for containerized development |
|
|
36
|
+
| **Git** | Any | Version control |
|
|
37
|
+
|
|
38
|
+
### Docker Network Prerequisite
|
|
39
|
+
|
|
40
|
+
If using Docker Compose, you must create the `tcce-network` network before starting the containers:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
docker network create tcce-network
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Important:** Always use `docker-compose.dev.yml` when running with Docker Compose.
|
|
47
|
+
|
|
48
|
+
### Installing pnpm
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm install -g pnpm
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
### Local Development
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Clone the repository
|
|
62
|
+
git clone <repository-url>
|
|
63
|
+
cd tcce-design-system
|
|
64
|
+
|
|
65
|
+
# Install dependencies
|
|
66
|
+
pnpm install
|
|
67
|
+
|
|
68
|
+
# Start Storybook (recommended for development)
|
|
69
|
+
pnpm storybook
|
|
70
|
+
|
|
71
|
+
# OR start Vite dev server
|
|
72
|
+
pnpm dev
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Access:**
|
|
76
|
+
- Storybook: http://localhost:6006
|
|
77
|
+
- Vite Dev: http://localhost:5173
|
|
78
|
+
|
|
79
|
+
### Using Docker (Recommended for Teams)
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
docker compose -f docker-compose.dev.yml up
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Project Structure
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
tcce-design-system/
|
|
91
|
+
├── src/
|
|
92
|
+
│ ├── components/ # All UI components
|
|
93
|
+
│ │ ├── Badge/
|
|
94
|
+
│ │ ├── Button/
|
|
95
|
+
│ │ ├── Can/ # Authorization component
|
|
96
|
+
│ │ ├── Card/
|
|
97
|
+
│ │ ├── Divider/
|
|
98
|
+
│ │ ├── Icon/
|
|
99
|
+
│ │ ├── InfoLabel/
|
|
100
|
+
│ │ ├── Spinner/
|
|
101
|
+
│ │ ├── Stepper/
|
|
102
|
+
│ │ ├── Typography/
|
|
103
|
+
│ │ ├── Token/ # Design tokens showcase
|
|
104
|
+
│ │ ├── forms/ # Form components
|
|
105
|
+
│ │ │ ├── Checkbox/
|
|
106
|
+
│ │ │ ├── FormField/
|
|
107
|
+
│ │ │ ├── PinInput/
|
|
108
|
+
│ │ │ ├── RadioInput/
|
|
109
|
+
│ │ │ └── inputs/ # Input components
|
|
110
|
+
│ │ ├── layout/ # Layout components
|
|
111
|
+
│ │ ├── navigations/ # Navigation components
|
|
112
|
+
│ │ ├── notifications/ # Toast & notifications
|
|
113
|
+
│ │ ├── overlays/ # Dialog, Tooltip, etc.
|
|
114
|
+
│ │ └── Table/ # Data tables
|
|
115
|
+
│ ├── shared/
|
|
116
|
+
│ │ ├── hooks/ # Shared React hooks
|
|
117
|
+
│ │ ├── types/ # Global TypeScript types
|
|
118
|
+
│ │ └── utils/ # Utility functions
|
|
119
|
+
│ ├── globals.css # Global styles
|
|
120
|
+
│ ├── tokens.css # Design tokens CSS
|
|
121
|
+
│ └── main.ts # Library entry point
|
|
122
|
+
├── .storybook/ # Storybook configuration
|
|
123
|
+
├── public/ # Static assets (fonts, images)
|
|
124
|
+
├── dist/ # Build output (generated)
|
|
125
|
+
├── package.json
|
|
126
|
+
├── vite.config.ts
|
|
127
|
+
├── tsconfig.json
|
|
128
|
+
└── eslint.config.js
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Component Structure
|
|
132
|
+
|
|
133
|
+
Each component follows this pattern:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
ComponentName/
|
|
137
|
+
├── ComponentName.tsx # Main component
|
|
138
|
+
├── ComponentName.types.ts # TypeScript interfaces
|
|
139
|
+
├── ComponentName.styles.ts # Styled-components styles
|
|
140
|
+
├── ComponentName.stories.tsx # Storybook stories
|
|
141
|
+
├── index.ts # Barrel export
|
|
142
|
+
└── components/ # Sub-components (if needed)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Development
|
|
148
|
+
|
|
149
|
+
### Available Scripts
|
|
150
|
+
|
|
151
|
+
| Command | Description |
|
|
152
|
+
|---------|-------------|
|
|
153
|
+
| `pnpm dev` | Start Vite development server |
|
|
154
|
+
| `pnpm storybook` | Start Storybook (recommended) |
|
|
155
|
+
| `pnpm build` | Build library for production |
|
|
156
|
+
| `pnpm build-storybook` | Build static Storybook |
|
|
157
|
+
| `pnpm preview` | Preview production build |
|
|
158
|
+
| `pnpm lint` | Run ESLint |
|
|
159
|
+
| `pnpm lint:fix` | Fix ESLint issues |
|
|
160
|
+
| `pnpm format` | Format with Prettier |
|
|
161
|
+
|
|
162
|
+
### Environment Variables
|
|
163
|
+
|
|
164
|
+
Create a `.env` file if needed (check `.env.example`):
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Not required for local development
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Building Components
|
|
173
|
+
|
|
174
|
+
### Creating a New Component
|
|
175
|
+
|
|
176
|
+
1. **Create the component folder:**
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
src/components/controls/MyComponent/
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
2. **Create files following the pattern:**
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
// MyComponent.types.ts
|
|
186
|
+
export interface MyComponentProps {
|
|
187
|
+
variant?: 'primary' | 'secondary';
|
|
188
|
+
// ... other props
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
```typescript
|
|
193
|
+
// MyComponent.tsx
|
|
194
|
+
import type { MyComponentProps } from './MyComponent.types';
|
|
195
|
+
import { StyledMyComponent } from './MyComponent.styles';
|
|
196
|
+
|
|
197
|
+
export const MyComponent = ({ variant = 'primary', ...props }: MyComponentProps) => {
|
|
198
|
+
return <StyledMyComponent $variant={variant} {...props} />;
|
|
199
|
+
};
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
// MyComponent.styles.ts
|
|
204
|
+
import styled from 'styled-components';
|
|
205
|
+
|
|
206
|
+
export const StyledMyComponent = styled.div<{ $variant: string }>`
|
|
207
|
+
/* Styles using Tailwind and styled-components */
|
|
208
|
+
`;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
// MyComponent.stories.tsx
|
|
213
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
214
|
+
import { MyComponent } from './MyComponent';
|
|
215
|
+
|
|
216
|
+
const meta = {
|
|
217
|
+
title: 'Controls/MyComponent',
|
|
218
|
+
component: MyComponent,
|
|
219
|
+
tags: ['autodocs'],
|
|
220
|
+
} satisfies Meta<typeof MyComponent>;
|
|
221
|
+
|
|
222
|
+
export default meta;
|
|
223
|
+
type Story = StoryObj<typeof meta>;
|
|
224
|
+
|
|
225
|
+
export const Primary: Story = {
|
|
226
|
+
args: {
|
|
227
|
+
variant: 'primary',
|
|
228
|
+
},
|
|
229
|
+
};
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
// index.ts
|
|
234
|
+
export * from './MyComponent';
|
|
235
|
+
export * from './MyComponent.types';
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
3. **Export from main.ts:**
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
// src/main.ts
|
|
242
|
+
export * from './components/controls/MyComponent';
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
4. **Run Storybook to test:**
|
|
246
|
+
|
|
247
|
+
```bash
|
|
248
|
+
pnpm storybook
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Component Patterns
|
|
252
|
+
|
|
253
|
+
- **Use styled-components** for component-specific styles
|
|
254
|
+
- **Use Tailwind CSS** via `@apply` in styles
|
|
255
|
+
- **Prefix styled-component props** with `$` (transient props)
|
|
256
|
+
- **Always create TypeScript types** in `.types.ts` files
|
|
257
|
+
- **Create Storybook stories** for documentation and testing
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Code Quality
|
|
262
|
+
|
|
263
|
+
### Linting & Formatting
|
|
264
|
+
|
|
265
|
+
This project uses:
|
|
266
|
+
- **ESLint** - Code linting
|
|
267
|
+
- **Prettier** - Code formatting
|
|
268
|
+
- **TypeScript** - Type safety
|
|
269
|
+
|
|
270
|
+
### Running Checks
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# Lint
|
|
274
|
+
pnpm lint
|
|
275
|
+
|
|
276
|
+
# Fix lint issues
|
|
277
|
+
pnpm lint:fix
|
|
278
|
+
|
|
279
|
+
# Format code
|
|
280
|
+
pnpm format
|
|
281
|
+
|
|
282
|
+
# Type check
|
|
283
|
+
pnpm build # (includes tsc)
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Pre-commit Hooks
|
|
287
|
+
|
|
288
|
+
Ensure you run these before committing:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
pnpm lint:fix && pnpm format
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### ESLint Rules
|
|
295
|
+
|
|
296
|
+
Key rules enforced:
|
|
297
|
+
- React hooks dependencies must be correct
|
|
298
|
+
- No unused variables
|
|
299
|
+
- Prettier formatting required
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Testing Components
|
|
304
|
+
|
|
305
|
+
### Using Storybook
|
|
306
|
+
|
|
307
|
+
Storybook is the primary way to test components:
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
pnpm storybook
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
- Browse components at http://localhost:6006
|
|
314
|
+
- Use **Controls** panel to test props
|
|
315
|
+
- Use **Actions** panel to see event handlers
|
|
316
|
+
- Check **Accessibility** tab for a11y issues
|
|
317
|
+
|
|
318
|
+
### Component Story Format
|
|
319
|
+
|
|
320
|
+
Write stories following CSF (Component Story Format):
|
|
321
|
+
|
|
322
|
+
```typescript
|
|
323
|
+
// ComponentName.stories.tsx
|
|
324
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
325
|
+
import { ComponentName } from './ComponentName';
|
|
326
|
+
|
|
327
|
+
const meta = {
|
|
328
|
+
title: 'Category/ComponentName',
|
|
329
|
+
component: ComponentName,
|
|
330
|
+
parameters: {
|
|
331
|
+
layout: 'centered',
|
|
332
|
+
},
|
|
333
|
+
tags: ['autodocs'],
|
|
334
|
+
argTypes: {
|
|
335
|
+
variant: { control: 'select', options: ['primary', 'secondary'] },
|
|
336
|
+
},
|
|
337
|
+
} satisfies Meta<typeof ComponentName>;
|
|
338
|
+
|
|
339
|
+
export default meta;
|
|
340
|
+
type Story = StoryObj<typeof meta>;
|
|
341
|
+
|
|
342
|
+
export const Primary: Story = {
|
|
343
|
+
args: {
|
|
344
|
+
variant: 'primary',
|
|
345
|
+
label: 'Click me',
|
|
346
|
+
},
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
export const Secondary: Story = {
|
|
350
|
+
args: {
|
|
351
|
+
variant: 'secondary',
|
|
352
|
+
label: 'Cancel',
|
|
353
|
+
},
|
|
354
|
+
};
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Publishing
|
|
360
|
+
|
|
361
|
+
### Building for npm
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Build the library
|
|
365
|
+
pnpm build
|
|
366
|
+
|
|
367
|
+
# Check dist folder
|
|
368
|
+
ls dist/
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Publish to npm
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
# Login to npm
|
|
375
|
+
npm login
|
|
376
|
+
|
|
377
|
+
# Publish
|
|
378
|
+
npm publish
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
The build outputs:
|
|
382
|
+
- `dist/tcce-design-system-components.js` (ESM)
|
|
383
|
+
- `dist/tcce-design-system-components.umd.cjs` (UMD)
|
|
384
|
+
- `dist/tcce-design-system-components.css`
|
|
385
|
+
- Type definitions via `vite-plugin-dts`
|
|
386
|
+
|
|
387
|
+
### Consuming in Other Projects
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
# Install from npm (when published)
|
|
391
|
+
pnpm add tcce-design-system
|
|
392
|
+
|
|
393
|
+
# Or from local path
|
|
394
|
+
pnpm add ../tcce-design-system
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
```typescript
|
|
398
|
+
// Usage
|
|
399
|
+
import { Button, Card } from 'tcce-design-system';
|
|
400
|
+
import 'tcce-design-system/dist/tcce-design-system-components.css';
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## Contributing
|
|
406
|
+
|
|
407
|
+
### Workflow
|
|
408
|
+
|
|
409
|
+
1. **Create a branch:**
|
|
410
|
+
```bash
|
|
411
|
+
git checkout -b feature/component-name
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
2. **Make changes:**
|
|
415
|
+
- Follow component patterns
|
|
416
|
+
- Add Storybook stories
|
|
417
|
+
- Update types
|
|
418
|
+
|
|
419
|
+
3. **Run quality checks:**
|
|
420
|
+
```bash
|
|
421
|
+
pnpm lint:fix
|
|
422
|
+
pnpm format
|
|
423
|
+
pnpm build
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
4. **Commit and push:**
|
|
427
|
+
```bash
|
|
428
|
+
git add .
|
|
429
|
+
git commit -m "feat: add new component"
|
|
430
|
+
git push origin feature/component-name
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
5. **Create Pull Request**
|
|
434
|
+
|
|
435
|
+
### Coding Standards
|
|
436
|
+
|
|
437
|
+
- Use **TypeScript** for everything
|
|
438
|
+
- Use **styled-components** for styling
|
|
439
|
+
- Use **Tailwind CSS** utilities via `@apply`
|
|
440
|
+
- Follow existing component patterns
|
|
441
|
+
- Write **stories** for all components
|
|
442
|
+
- Use **transient props** (`$prop`) in styled-components
|
|
443
|
+
- **No comments** unless absolutely necessary
|
|
444
|
+
|
|
445
|
+
### Versioning
|
|
446
|
+
|
|
447
|
+
This project uses [Semantic Versioning](https://semver.org/):
|
|
448
|
+
|
|
449
|
+
- **MAJOR**: Breaking changes
|
|
450
|
+
- **MINOR**: New features (backward compatible)
|
|
451
|
+
- **PATCH**: Bug fixes
|
|
452
|
+
|
|
453
|
+
Update version in `package.json` before publishing.
|
|
454
|
+
|
|
455
|
+
---
|
|
456
|
+
|
|
457
|
+
## Troubleshooting
|
|
458
|
+
|
|
459
|
+
### Common Issues
|
|
460
|
+
|
|
461
|
+
**Port already in use:**
|
|
462
|
+
```bash
|
|
463
|
+
# Find and kill process on port 6006
|
|
464
|
+
lsof -i :6006
|
|
465
|
+
kill -9 <PID>
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
**Dependencies issues:**
|
|
469
|
+
```bash
|
|
470
|
+
rm -rf node_modules
|
|
471
|
+
pnpm install
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
**Docker build fails:**
|
|
475
|
+
```bash
|
|
476
|
+
docker build --no-cache -t tcce-design-system .
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
**TypeScript errors:**
|
|
480
|
+
```bash
|
|
481
|
+
# Check for type errors
|
|
482
|
+
npx tsc --noEmit
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
### Getting Help
|
|
486
|
+
|
|
487
|
+
- Check Storybook docs: http://localhost:6006
|
|
488
|
+
- Review existing component patterns
|
|
489
|
+
- Contact: bizapps@tcce.biz
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## License
|
|
494
|
+
|
|
495
|
+
MIT License
|
|
496
|
+
|
|
497
|
+
## Team
|
|
498
|
+
|
|
499
|
+
- **Author:** BizAppsTotal <bizapps@tcce.biz>
|
|
500
|
+
- **Version:** 0.3.24
|
package/dist/main.cjs
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('react');
|
|
4
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
5
|
+
var radixUi = require('radix-ui');
|
|
6
|
+
var clsx = require('clsx');
|
|
7
|
+
var tailwindMerge = require('tailwind-merge');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
// src/components/ui/Button/button.tsx
|
|
11
|
+
function cn(...inputs) {
|
|
12
|
+
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
13
|
+
}
|
|
14
|
+
var buttonVariants = classVarianceAuthority.cva(
|
|
15
|
+
"group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-md border border-transparent bg-clip-padding text-sm font-semibold whitespace-nowrap transition-all duration-150 outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/30 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
16
|
+
{
|
|
17
|
+
variants: {
|
|
18
|
+
variant: {
|
|
19
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary/80 focus-visible:ring-primary/30",
|
|
20
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[var(--color-orange-700)] focus-visible:ring-secondary/30",
|
|
21
|
+
cancel: "bg-destructive text-secondary-foreground hover:bg-[var(--color-red-600)] focus-visible:ring-destructive/30",
|
|
22
|
+
outline: "border-2 border-white bg-transparent text-white hover:bg-white hover:text-[var(--color-main-orange-primary)] focus-visible:ring-white/30",
|
|
23
|
+
ghost: "bg-transparent text-foreground hover:bg-[var(--color-orange-100)] hover:text-[var(--color-main-orange-primary)] focus-visible:ring-ring/30"
|
|
24
|
+
},
|
|
25
|
+
size: {
|
|
26
|
+
sm: "h-8 px-3 text-xs",
|
|
27
|
+
md: "h-9 px-4 text-sm",
|
|
28
|
+
lg: "h-10 px-6 text-sm",
|
|
29
|
+
"icon-sm": "size-8 rounded-full p-0"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
variant: "primary",
|
|
34
|
+
size: "md"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
function Button({
|
|
39
|
+
className,
|
|
40
|
+
variant = "primary",
|
|
41
|
+
size = "md",
|
|
42
|
+
asChild = false,
|
|
43
|
+
isLoading = false,
|
|
44
|
+
children,
|
|
45
|
+
...props
|
|
46
|
+
}) {
|
|
47
|
+
const Comp = asChild ? radixUi.Slot.Root : "button";
|
|
48
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
49
|
+
Comp,
|
|
50
|
+
{
|
|
51
|
+
"data-slot": "button",
|
|
52
|
+
"data-variant": variant,
|
|
53
|
+
"data-size": size,
|
|
54
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
55
|
+
...props,
|
|
56
|
+
children
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
exports.Button = Button;
|
|
62
|
+
exports.buttonVariants = buttonVariants;
|
|
63
|
+
//# sourceMappingURL=main.cjs.map
|
|
64
|
+
//# sourceMappingURL=main.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/Button/button.tsx"],"names":["twMerge","clsx","cva","Slot","jsx"],"mappings":";;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACCA,IAAM,cAAA,GAAiBC,0BAAA;AAAA,EACrB,4kBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACL,OAAA,EACI,sFAAA;AAAA,QACJ,SAAA,EACI,2GAAA;AAAA,QACJ,MAAA,EACI,4GAAA;AAAA,QACJ,OAAA,EACI,0IAAA;AAAA,QACJ,KAAA,EACI;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACF,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,SAAA,EAAW;AAAA;AACf,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,SAAS,MAAA,CAAO;AAAA,EACZ,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACP,CAAA,EAIO;AACL,EAAA,MAAM,IAAA,GAAO,OAAA,GAAUC,YAAA,CAAK,IAAA,GAAO,QAAA;AAEnC,EAAA,uBACEC,cAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"main.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-md border border-transparent bg-clip-padding text-sm font-semibold whitespace-nowrap transition-all duration-150 outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/30 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n primary:\n 'bg-primary text-primary-foreground hover:bg-primary/80 focus-visible:ring-primary/30',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-[var(--color-orange-700)] focus-visible:ring-secondary/30',\n cancel:\n 'bg-destructive text-secondary-foreground hover:bg-[var(--color-red-600)] focus-visible:ring-destructive/30',\n outline:\n 'border-2 border-white bg-transparent text-white hover:bg-white hover:text-[var(--color-main-orange-primary)] focus-visible:ring-white/30',\n ghost: \n 'bg-transparent text-foreground hover:bg-[var(--color-orange-100)] hover:text-[var(--color-main-orange-primary)] focus-visible:ring-ring/30',\n },\n size: {\n sm: 'h-8 px-3 text-xs',\n md: 'h-9 px-4 text-sm',\n lg: 'h-10 px-6 text-sm',\n 'icon-sm': 'size-8 rounded-full p-0',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nfunction Button({\n className,\n variant = 'primary',\n size = 'md',\n asChild = false,\n isLoading = false,\n children,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n isLoading?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n >\n {children}\n </Comp>\n )\n}\n\nexport { Button, buttonVariants }\n"]}
|
package/dist/main.css
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/* src/styles/globals.css */
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: "Dax";
|
|
4
|
+
src: url(https://dibt9vplwriap.cloudfront.net/dax-regular/dax-regular.ttf) format("truetype");
|
|
5
|
+
font-weight: 400;
|
|
6
|
+
font-style: normal;
|
|
7
|
+
font-display: swap;
|
|
8
|
+
}
|
|
9
|
+
@font-face {
|
|
10
|
+
font-family: "Dax";
|
|
11
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Dax-Bold/Dax-Bold.otf) format("opentype");
|
|
12
|
+
font-weight: 700;
|
|
13
|
+
font-style: normal;
|
|
14
|
+
font-display: swap;
|
|
15
|
+
}
|
|
16
|
+
@font-face {
|
|
17
|
+
font-family: "Helvetica Neue";
|
|
18
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueUltraLight.otf) format("opentype");
|
|
19
|
+
font-weight: 200;
|
|
20
|
+
font-style: normal;
|
|
21
|
+
font-display: swap;
|
|
22
|
+
}
|
|
23
|
+
@font-face {
|
|
24
|
+
font-family: "Helvetica Neue";
|
|
25
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueUltraLightItalic.otf) format("opentype");
|
|
26
|
+
font-weight: 200;
|
|
27
|
+
font-style: italic;
|
|
28
|
+
font-display: swap;
|
|
29
|
+
}
|
|
30
|
+
@font-face {
|
|
31
|
+
font-family: "Helvetica Neue";
|
|
32
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueThin.otf) format("opentype");
|
|
33
|
+
font-weight: 100;
|
|
34
|
+
font-style: normal;
|
|
35
|
+
font-display: swap;
|
|
36
|
+
}
|
|
37
|
+
@font-face {
|
|
38
|
+
font-family: "Helvetica Neue";
|
|
39
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueThinItalic.otf) format("opentype");
|
|
40
|
+
font-weight: 100;
|
|
41
|
+
font-style: italic;
|
|
42
|
+
font-display: swap;
|
|
43
|
+
}
|
|
44
|
+
@font-face {
|
|
45
|
+
font-family: "Helvetica Neue";
|
|
46
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueLight.otf) format("opentype");
|
|
47
|
+
font-weight: 300;
|
|
48
|
+
font-style: normal;
|
|
49
|
+
font-display: swap;
|
|
50
|
+
}
|
|
51
|
+
@font-face {
|
|
52
|
+
font-family: "Helvetica Neue";
|
|
53
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueLightItalic.otf) format("opentype");
|
|
54
|
+
font-weight: 300;
|
|
55
|
+
font-style: italic;
|
|
56
|
+
font-display: swap;
|
|
57
|
+
}
|
|
58
|
+
@font-face {
|
|
59
|
+
font-family: "Helvetica Neue";
|
|
60
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueRoman.otf) format("opentype");
|
|
61
|
+
font-weight: 400;
|
|
62
|
+
font-style: normal;
|
|
63
|
+
font-display: swap;
|
|
64
|
+
}
|
|
65
|
+
@font-face {
|
|
66
|
+
font-family: "Helvetica Neue";
|
|
67
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueItalic.ttf) format("truetype");
|
|
68
|
+
font-weight: 400;
|
|
69
|
+
font-style: italic;
|
|
70
|
+
font-display: swap;
|
|
71
|
+
}
|
|
72
|
+
@font-face {
|
|
73
|
+
font-family: "Helvetica Neue";
|
|
74
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueMedium.otf) format("opentype");
|
|
75
|
+
font-weight: 500;
|
|
76
|
+
font-style: normal;
|
|
77
|
+
font-display: swap;
|
|
78
|
+
}
|
|
79
|
+
@font-face {
|
|
80
|
+
font-family: "Helvetica Neue";
|
|
81
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueMediumItalic.otf) format("opentype");
|
|
82
|
+
font-weight: 500;
|
|
83
|
+
font-style: italic;
|
|
84
|
+
font-display: swap;
|
|
85
|
+
}
|
|
86
|
+
@font-face {
|
|
87
|
+
font-family: "Helvetica Neue";
|
|
88
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBold.otf) format("opentype");
|
|
89
|
+
font-weight: 700;
|
|
90
|
+
font-style: normal;
|
|
91
|
+
font-display: swap;
|
|
92
|
+
}
|
|
93
|
+
@font-face {
|
|
94
|
+
font-family: "Helvetica Neue";
|
|
95
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBoldItalic.otf) format("opentype");
|
|
96
|
+
font-weight: 700;
|
|
97
|
+
font-style: italic;
|
|
98
|
+
font-display: swap;
|
|
99
|
+
}
|
|
100
|
+
@font-face {
|
|
101
|
+
font-family: "Helvetica Neue";
|
|
102
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueHeavy.otf) format("opentype");
|
|
103
|
+
font-weight: 800;
|
|
104
|
+
font-style: normal;
|
|
105
|
+
font-display: swap;
|
|
106
|
+
}
|
|
107
|
+
@font-face {
|
|
108
|
+
font-family: "Helvetica Neue";
|
|
109
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueHeavyItalic.otf) format("opentype");
|
|
110
|
+
font-weight: 800;
|
|
111
|
+
font-style: italic;
|
|
112
|
+
font-display: swap;
|
|
113
|
+
}
|
|
114
|
+
@font-face {
|
|
115
|
+
font-family: "Helvetica Neue";
|
|
116
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBlack.otf) format("opentype");
|
|
117
|
+
font-weight: 900;
|
|
118
|
+
font-style: normal;
|
|
119
|
+
font-display: swap;
|
|
120
|
+
}
|
|
121
|
+
@font-face {
|
|
122
|
+
font-family: "Helvetica Neue";
|
|
123
|
+
src: url(https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBlackItalic.otf) format("opentype");
|
|
124
|
+
font-weight: 900;
|
|
125
|
+
font-style: italic;
|
|
126
|
+
font-display: swap;
|
|
127
|
+
}
|
|
128
|
+
@import "tailwindcss";
|
|
129
|
+
@import "tw-animate-css";
|
|
130
|
+
@import "shadcn/tailwind.css";
|
|
131
|
+
@import "./tokens.css";
|
|
132
|
+
@import "@fontsource-variable/inter";
|
|
133
|
+
@custom-variant dark (&:is(.dark *));
|
|
134
|
+
@theme inline { --color-main-blue-primary: var(--color-main-blue-primary); --color-main-orange-primary: var(--color-main-orange-primary); --color-main-grey: var(--color-main-grey); --color-main-alternative: var(--color-main-alternative); --color-main-alternative-secondary: var(--color-main-alternative-secondary); --color-main-positive-state: var(--color-main-positive-state); --color-main-warning-state: var(--color-main-warning-state); --color-main-yellow-primary: var(--color-main-yellow-primary); --color-main-white: var(--color-main-white); --color-main-black: var(--color-main-black); --color-main-light-borders: var(--color-main-light-borders); --color-main-input-borders: var(--color-main-input-borders); --color-dark-100: var(--color-dark-100); --color-dark-200: var(--color-dark-200); --color-dark-300: var(--color-dark-300); --color-dark-400: var(--color-dark-400); --color-dark-500: var(--color-dark-500); --color-dark-600: var(--color-dark-600); --color-dark-700: var(--color-dark-700); --color-dark-800: var(--color-dark-800); --color-dark-900: var(--color-dark-900); --color-light-100: var(--color-light-100); --color-light-200: var(--color-light-200); --color-light-300: var(--color-light-300); --color-light-400: var(--color-light-400); --color-light-500: var(--color-light-500); --color-light-600: var(--color-light-600); --color-light-700: var(--color-light-700); --color-light-800: var(--color-light-800); --color-light-900: var(--color-light-900); --color-light-1000: var(--color-light-1000); --color-blue-100: var(--color-blue-100); --color-blue-200: var(--color-blue-200); --color-blue-300: var(--color-blue-300); --color-blue-400: var(--color-blue-400); --color-blue-500: var(--color-blue-500); --color-blue-600: var(--color-blue-600); --color-blue-700: var(--color-blue-700); --color-blue-800: var(--color-blue-800); --color-blue-900: var(--color-blue-900); --color-blue-1000: var(--color-blue-1000); --color-red-100: var(--color-red-100); --color-red-200: var(--color-red-200); --color-red-300: var(--color-red-300); --color-red-400: var(--color-red-400); --color-red-500: var(--color-red-500); --color-red-600: var(--color-red-600); --color-red-700: var(--color-red-700); --color-red-800: var(--color-red-800); --color-red-900: var(--color-red-900); --color-red-1000: var(--color-red-1000); --color-orange-100: var(--color-orange-100); --color-orange-200: var(--color-orange-200); --color-orange-300: var(--color-orange-300); --color-orange-400: var(--color-orange-400); --color-orange-500: var(--color-orange-500); --color-orange-700: var(--color-orange-700); --color-orange-800: var(--color-orange-800); --color-orange-900: var(--color-orange-900); --color-orange-1000: var(--color-orange-1000); --color-yellow-100: var(--color-yellow-100); --color-yellow-200: var(--color-yellow-200); --color-yellow-300: var(--color-yellow-300); --color-yellow-400: var(--color-yellow-400); --color-yellow-500: var(--color-yellow-500); --color-yellow-600: var(--color-yellow-600); --color-yellow-700: var(--color-yellow-700); --color-yellow-800: var(--color-yellow-800); --color-yellow-900: var(--color-yellow-900); --color-yellow-1000: var(--color-yellow-1000); --color-green-100: var(--color-green-100); --color-green-200: var(--color-green-200); --color-green-300: var(--color-green-300); --color-green-400: var(--color-green-400); --color-green-500: var(--color-green-500); --color-green-600: var(--color-green-600); --color-green-700: var(--color-green-700); --color-green-800: var(--color-green-800); --color-green-900: var(--color-green-900); --color-green-1000: var(--color-green-1000); --color-purple-100: var(--color-purple-100); --color-purple-200: var(--color-purple-200); --color-purple-300: var(--color-purple-300); --color-purple-400: var(--color-purple-400); --color-purple-500: var(--color-purple-500); --color-purple-600: var(--color-purple-600); --color-purple-700: var(--color-purple-700); --color-purple-800: var(--color-purple-800); --color-purple-900: var(--color-purple-900); --color-purple-1000: var(--color-purple-1000); --border-radius-button: var(--border-radius-button); --border-radius-secondary-button: var(--border-radius-secondary-button); --border-radius-card: var(--border-radius-card); --border-radius-article: var(--border-radius-article); --border-radius-outline: var(--border-radius-outline); --shadow-black-card: var(--shadow-black-card); --shadow-hover-black-card: var(--shadow-hover-black-card); --shadow-black-button: var(--shadow-black-button); --shadow-hover-black-button: var(--shadow-hover-black-button); --shadow-hover-orange-button: var(--shadow-hover-orange-button); --font-heading: var(--font-sans); --font-sans: "Inter Variable", sans-serif; --color-sidebar-ring: var(--sidebar-ring); --color-sidebar-border: var(--sidebar-border); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar: var(--sidebar); --color-chart-5: var(--chart-5); --color-chart-4: var(--chart-4); --color-chart-3: var(--chart-3); --color-chart-2: var(--chart-2); --color-chart-1: var(--chart-1); --color-ring: var(--ring); --color-input: var(--input); --color-border: var(--border); --color-destructive: var(--destructive); --color-accent-foreground: var(--accent-foreground); --color-accent: var(--accent); --color-muted-foreground: var(--muted-foreground); --color-muted: var(--muted); --color-secondary-foreground: var(--secondary-foreground); --color-secondary: var(--secondary); --color-primary-foreground: var(--primary-foreground); --color-primary: var(--primary); --color-popover-foreground: var(--popover-foreground); --color-popover: var(--popover); --color-card-foreground: var(--card-foreground); --color-card: var(--card); --color-foreground: var(--foreground); --color-background: var(--background); --radius-sm: calc(var(--radius) * 0.6); --radius-md: calc(var(--radius) * 0.8); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) * 1.4); --radius-2xl: calc(var(--radius) * 1.8); --radius-3xl: calc(var(--radius) * 2.2); --radius-4xl: calc(var(--radius) * 2.6); }
|
|
135
|
+
* {
|
|
136
|
+
scrollbar-width: thin;
|
|
137
|
+
scrollbar-color: var(--color-main-orange-primary) #f1f1f1;
|
|
138
|
+
}
|
|
139
|
+
*::-webkit-scrollbar {
|
|
140
|
+
width: 0.5rem;
|
|
141
|
+
}
|
|
142
|
+
*::-webkit-scrollbar-track {
|
|
143
|
+
background: #f1f1f1;
|
|
144
|
+
border-radius: 0.625rem;
|
|
145
|
+
}
|
|
146
|
+
*::-webkit-scrollbar-thumb {
|
|
147
|
+
background: var(--color-main-orange-primary);
|
|
148
|
+
border-radius: 0.625rem;
|
|
149
|
+
}
|
|
150
|
+
*::-webkit-scrollbar-thumb:hover {
|
|
151
|
+
background: var(--color-main-orange-primary);
|
|
152
|
+
}
|
|
153
|
+
.my-toast {
|
|
154
|
+
font-family:
|
|
155
|
+
"Helvetica Neue",
|
|
156
|
+
Helvetica,
|
|
157
|
+
Arial,
|
|
158
|
+
sans-serif;
|
|
159
|
+
font-size: 1rem;
|
|
160
|
+
font-style: normal;
|
|
161
|
+
font-weight: 400;
|
|
162
|
+
line-height: 176.782%;
|
|
163
|
+
border: none !important;
|
|
164
|
+
box-shadow: var(--shadow-black-card);
|
|
165
|
+
border-radius: var(--border-radius-article) !important;
|
|
166
|
+
}
|
|
167
|
+
[data-sonner-toast][data-type=success] {
|
|
168
|
+
background:
|
|
169
|
+
linear-gradient(
|
|
170
|
+
135deg,
|
|
171
|
+
var(--color-main-positive-state) 0%,
|
|
172
|
+
var(--color-green-200) 100%) !important;
|
|
173
|
+
color: var(--color-main-white) !important;
|
|
174
|
+
}
|
|
175
|
+
[data-sonner-toast][data-type=error] {
|
|
176
|
+
background:
|
|
177
|
+
linear-gradient(
|
|
178
|
+
135deg,
|
|
179
|
+
var(--color-main-warning-state) 0%,
|
|
180
|
+
var(--color-red-300) 100%) !important;
|
|
181
|
+
color: var(--color-main-white) !important;
|
|
182
|
+
}
|
|
183
|
+
[data-sonner-toaster] {
|
|
184
|
+
bottom: 6rem !important;
|
|
185
|
+
}
|
|
186
|
+
[data-sonner-toaster][data-position=bottom-center] {
|
|
187
|
+
transform: translateY(-3rem) !important;
|
|
188
|
+
}
|
|
189
|
+
:root {
|
|
190
|
+
--chart-1: oklch(0.87 0 0);
|
|
191
|
+
--chart-2: oklch(0.556 0 0);
|
|
192
|
+
--chart-3: oklch(0.439 0 0);
|
|
193
|
+
--chart-4: oklch(0.371 0 0);
|
|
194
|
+
--chart-5: oklch(0.269 0 0);
|
|
195
|
+
--sidebar: oklch(0.985 0 0);
|
|
196
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
197
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
198
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
199
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
200
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
201
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
202
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
203
|
+
}
|
|
204
|
+
@layer base {
|
|
205
|
+
* {
|
|
206
|
+
@apply border-border outline-ring/50;
|
|
207
|
+
}
|
|
208
|
+
body {
|
|
209
|
+
@apply bg-background text-foreground;
|
|
210
|
+
}
|
|
211
|
+
html {
|
|
212
|
+
@apply font-sans;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/*# sourceMappingURL=main.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/styles/globals.css"],"sourcesContent":["\n/* ====================================\n\n GLOBALS — single entry point for both build and Storybook\n\n ==================================== */\n\n/* === DAX FONT FAMILY === */\n\n@font-face {\n font-family: 'Dax';\n src: url('https://dibt9vplwriap.cloudfront.net/dax-regular/dax-regular.ttf') format('truetype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Dax';\n src: url('https://dibt9vplwriap.cloudfront.net/Dax-Bold/Dax-Bold.otf') format('opentype');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n\n/* === HELVETICA NEUE FONT FAMILY === */\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueUltraLight.otf') format('opentype');\n font-weight: 200;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueUltraLightItalic.otf') format('opentype');\n font-weight: 200;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueThin.otf') format('opentype');\n font-weight: 100;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueThinItalic.otf') format('opentype');\n font-weight: 100;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueLight.otf') format('opentype');\n font-weight: 300;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueLightItalic.otf') format('opentype');\n font-weight: 300;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueRoman.otf') format('opentype');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueItalic.ttf') format('truetype');\n font-weight: 400;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueMedium.otf') format('opentype');\n font-weight: 500;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueMediumItalic.otf') format('opentype');\n font-weight: 500;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBold.otf') format('opentype');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBoldItalic.otf') format('opentype');\n font-weight: 700;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueHeavy.otf') format('opentype');\n font-weight: 800;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueHeavyItalic.otf') format('opentype');\n font-weight: 800;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBlack.otf') format('opentype');\n font-weight: 900;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Helvetica Neue';\n src: url('https://dibt9vplwriap.cloudfront.net/Helvetica-Neue/HelveticaNeueBlackItalic.otf') format('opentype');\n font-weight: 900;\n font-style: italic;\n font-display: swap;\n}\n\n/* Tailwind (Storybook picks this up; build skips @import 'tailwindcss' via vite) */\n\n@import 'tailwindcss';\n\n@import \"tw-animate-css\";\n\n@import \"shadcn/tailwind.css\";\n\n/* Design Tokens — imported last so TCCE values always win */\n\n@import './tokens.css';\n\n@import \"@fontsource-variable/inter\";\n\n@custom-variant dark (&:is(.dark *));\n\n/* Extend Tailwind with token references */\n\n@theme inline {\n\n /* Main Colors */\n\n --color-main-blue-primary: var(--color-main-blue-primary);\n\n --color-main-orange-primary: var(--color-main-orange-primary);\n\n --color-main-grey: var(--color-main-grey);\n\n --color-main-alternative: var(--color-main-alternative);\n\n --color-main-alternative-secondary: var(--color-main-alternative-secondary);\n\n --color-main-positive-state: var(--color-main-positive-state);\n\n --color-main-warning-state: var(--color-main-warning-state);\n\n --color-main-yellow-primary: var(--color-main-yellow-primary);\n\n --color-main-white: var(--color-main-white);\n\n --color-main-black: var(--color-main-black);\n\n --color-main-light-borders: var(--color-main-light-borders);\n\n --color-main-input-borders: var(--color-main-input-borders);\n\n /* Dark */\n\n --color-dark-100: var(--color-dark-100);\n\n --color-dark-200: var(--color-dark-200);\n\n --color-dark-300: var(--color-dark-300);\n\n --color-dark-400: var(--color-dark-400);\n\n --color-dark-500: var(--color-dark-500);\n\n --color-dark-600: var(--color-dark-600);\n\n --color-dark-700: var(--color-dark-700);\n\n --color-dark-800: var(--color-dark-800);\n\n --color-dark-900: var(--color-dark-900);\n\n /* Light */\n\n --color-light-100: var(--color-light-100);\n\n --color-light-200: var(--color-light-200);\n\n --color-light-300: var(--color-light-300);\n\n --color-light-400: var(--color-light-400);\n\n --color-light-500: var(--color-light-500);\n\n --color-light-600: var(--color-light-600);\n\n --color-light-700: var(--color-light-700);\n\n --color-light-800: var(--color-light-800);\n\n --color-light-900: var(--color-light-900);\n\n --color-light-1000: var(--color-light-1000);\n\n /* Blue */\n\n --color-blue-100: var(--color-blue-100);\n\n --color-blue-200: var(--color-blue-200);\n\n --color-blue-300: var(--color-blue-300);\n\n --color-blue-400: var(--color-blue-400);\n\n --color-blue-500: var(--color-blue-500);\n\n --color-blue-600: var(--color-blue-600);\n\n --color-blue-700: var(--color-blue-700);\n\n --color-blue-800: var(--color-blue-800);\n\n --color-blue-900: var(--color-blue-900);\n\n --color-blue-1000: var(--color-blue-1000);\n\n /* Red */\n\n --color-red-100: var(--color-red-100);\n\n --color-red-200: var(--color-red-200);\n\n --color-red-300: var(--color-red-300);\n\n --color-red-400: var(--color-red-400);\n\n --color-red-500: var(--color-red-500);\n\n --color-red-600: var(--color-red-600);\n\n --color-red-700: var(--color-red-700);\n\n --color-red-800: var(--color-red-800);\n\n --color-red-900: var(--color-red-900);\n\n --color-red-1000: var(--color-red-1000);\n\n /* Orange */\n\n --color-orange-100: var(--color-orange-100);\n\n --color-orange-200: var(--color-orange-200);\n\n --color-orange-300: var(--color-orange-300);\n\n --color-orange-400: var(--color-orange-400);\n\n --color-orange-500: var(--color-orange-500);\n\n --color-orange-700: var(--color-orange-700);\n\n --color-orange-800: var(--color-orange-800);\n\n --color-orange-900: var(--color-orange-900);\n\n --color-orange-1000: var(--color-orange-1000);\n\n /* Yellow */\n\n --color-yellow-100: var(--color-yellow-100);\n\n --color-yellow-200: var(--color-yellow-200);\n\n --color-yellow-300: var(--color-yellow-300);\n\n --color-yellow-400: var(--color-yellow-400);\n\n --color-yellow-500: var(--color-yellow-500);\n\n --color-yellow-600: var(--color-yellow-600);\n\n --color-yellow-700: var(--color-yellow-700);\n\n --color-yellow-800: var(--color-yellow-800);\n\n --color-yellow-900: var(--color-yellow-900);\n\n --color-yellow-1000: var(--color-yellow-1000);\n\n /* Green */\n\n --color-green-100: var(--color-green-100);\n\n --color-green-200: var(--color-green-200);\n\n --color-green-300: var(--color-green-300);\n\n --color-green-400: var(--color-green-400);\n\n --color-green-500: var(--color-green-500);\n\n --color-green-600: var(--color-green-600);\n\n --color-green-700: var(--color-green-700);\n\n --color-green-800: var(--color-green-800);\n\n --color-green-900: var(--color-green-900);\n\n --color-green-1000: var(--color-green-1000);\n\n /* Purple */\n\n --color-purple-100: var(--color-purple-100);\n\n --color-purple-200: var(--color-purple-200);\n\n --color-purple-300: var(--color-purple-300);\n\n --color-purple-400: var(--color-purple-400);\n\n --color-purple-500: var(--color-purple-500);\n\n --color-purple-600: var(--color-purple-600);\n\n --color-purple-700: var(--color-purple-700);\n\n --color-purple-800: var(--color-purple-800);\n\n --color-purple-900: var(--color-purple-900);\n\n --color-purple-1000: var(--color-purple-1000);\n\n /* Border Radius */\n\n --border-radius-button: var(--border-radius-button);\n\n --border-radius-secondary-button: var(--border-radius-secondary-button);\n\n --border-radius-card: var(--border-radius-card);\n\n --border-radius-article: var(--border-radius-article);\n\n --border-radius-outline: var(--border-radius-outline);\n\n /* Shadows */\n\n --shadow-black-card: var(--shadow-black-card);\n\n --shadow-hover-black-card: var(--shadow-hover-black-card);\n\n --shadow-black-button: var(--shadow-black-button);\n\n --shadow-hover-black-button: var(--shadow-hover-black-button);\n\n --shadow-hover-orange-button: var(--shadow-hover-orange-button);\n\n --font-heading: var(--font-sans);\n\n --font-sans: 'Inter Variable', sans-serif;\n\n --color-sidebar-ring: var(--sidebar-ring);\n\n --color-sidebar-border: var(--sidebar-border);\n\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n\n --color-sidebar-accent: var(--sidebar-accent);\n\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n\n --color-sidebar-primary: var(--sidebar-primary);\n\n --color-sidebar-foreground: var(--sidebar-foreground);\n\n --color-sidebar: var(--sidebar);\n\n --color-chart-5: var(--chart-5);\n\n --color-chart-4: var(--chart-4);\n\n --color-chart-3: var(--chart-3);\n\n --color-chart-2: var(--chart-2);\n\n --color-chart-1: var(--chart-1);\n\n --color-ring: var(--ring);\n\n --color-input: var(--input);\n\n --color-border: var(--border);\n\n --color-destructive: var(--destructive);\n\n --color-accent-foreground: var(--accent-foreground);\n\n --color-accent: var(--accent);\n\n --color-muted-foreground: var(--muted-foreground);\n\n --color-muted: var(--muted);\n\n --color-secondary-foreground: var(--secondary-foreground);\n\n --color-secondary: var(--secondary);\n\n --color-primary-foreground: var(--primary-foreground);\n\n --color-primary: var(--primary);\n\n --color-popover-foreground: var(--popover-foreground);\n\n --color-popover: var(--popover);\n\n --color-card-foreground: var(--card-foreground);\n\n --color-card: var(--card);\n\n --color-foreground: var(--foreground);\n\n --color-background: var(--background);\n\n --radius-sm: calc(var(--radius) * 0.6);\n\n --radius-md: calc(var(--radius) * 0.8);\n\n --radius-lg: var(--radius);\n\n --radius-xl: calc(var(--radius) * 1.4);\n\n --radius-2xl: calc(var(--radius) * 1.8);\n\n --radius-3xl: calc(var(--radius) * 2.2);\n\n --radius-4xl: calc(var(--radius) * 2.6);\n\n}\n\n/* ====================================\n\n CUSTOM STYLES\n\n ==================================== */\n\n* {\n\n scrollbar-width: thin;\n\n scrollbar-color: var(--color-main-orange-primary) #f1f1f1;\n\n}\n\n*::-webkit-scrollbar { width: 0.5rem; }\n\n*::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 0.625rem; }\n\n*::-webkit-scrollbar-thumb { background: var(--color-main-orange-primary); border-radius: 0.625rem; }\n\n*::-webkit-scrollbar-thumb:hover { background: var(--color-main-orange-primary); }\n\n.my-toast {\n\n font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n\n font-size: 1rem;\n\n font-style: normal;\n\n font-weight: 400;\n\n line-height: 176.782%;\n\n border: none !important;\n\n box-shadow: var(--shadow-black-card);\n\n border-radius: var(--border-radius-article) !important;\n\n}\n\n[data-sonner-toast][data-type='success'] {\n\n background: linear-gradient(135deg, var(--color-main-positive-state) 0%, var(--color-green-200) 100%) !important;\n\n color: var(--color-main-white) !important;\n\n}\n\n[data-sonner-toast][data-type='error'] {\n\n background: linear-gradient(135deg, var(--color-main-warning-state) 0%, var(--color-red-300) 100%) !important;\n\n color: var(--color-main-white) !important;\n\n}\n\n[data-sonner-toaster] { bottom: 6rem !important; }\n\n[data-sonner-toaster][data-position='bottom-center'] { transform: translateY(-3rem) !important; }\n\n/* shadcn defaults not covered by tokens.css — chart and sidebar only */\n\n:root {\n\n --chart-1: oklch(0.87 0 0);\n\n --chart-2: oklch(0.556 0 0);\n\n --chart-3: oklch(0.439 0 0);\n\n --chart-4: oklch(0.371 0 0);\n\n --chart-5: oklch(0.269 0 0);\n\n --sidebar: oklch(0.985 0 0);\n\n --sidebar-foreground: oklch(0.145 0 0);\n\n --sidebar-primary: oklch(0.205 0 0);\n\n --sidebar-primary-foreground: oklch(0.985 0 0);\n\n --sidebar-accent: oklch(0.97 0 0);\n\n --sidebar-accent-foreground: oklch(0.205 0 0);\n\n --sidebar-border: oklch(0.922 0 0);\n\n --sidebar-ring: oklch(0.708 0 0);\n\n}\n\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n\n }\n body {\n @apply bg-background text-foreground;\n\n }\n html {\n @apply font-sans;\n\n }\n\n}"],"mappings":"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","names":[]}
|
package/dist/main.d.cts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "primary" | "secondary" | "cancel" | "outline" | "ghost" | null | undefined;
|
|
8
|
+
size?: "sm" | "md" | "lg" | "icon-sm" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Button({ className, variant, size, asChild, isLoading, children, ...props }: React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
isLoading?: boolean;
|
|
13
|
+
}): react_jsx_runtime.JSX.Element;
|
|
14
|
+
|
|
15
|
+
export { Button, buttonVariants };
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "primary" | "secondary" | "cancel" | "outline" | "ghost" | null | undefined;
|
|
8
|
+
size?: "sm" | "md" | "lg" | "icon-sm" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Button({ className, variant, size, asChild, isLoading, children, ...props }: React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
isLoading?: boolean;
|
|
13
|
+
}): react_jsx_runtime.JSX.Element;
|
|
14
|
+
|
|
15
|
+
export { Button, buttonVariants };
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import 'react';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { Slot } from 'radix-ui';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { twMerge } from 'tailwind-merge';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
// src/components/ui/Button/button.tsx
|
|
9
|
+
function cn(...inputs) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
12
|
+
var buttonVariants = cva(
|
|
13
|
+
"group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-md border border-transparent bg-clip-padding text-sm font-semibold whitespace-nowrap transition-all duration-150 outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/30 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
14
|
+
{
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary/80 focus-visible:ring-primary/30",
|
|
18
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-[var(--color-orange-700)] focus-visible:ring-secondary/30",
|
|
19
|
+
cancel: "bg-destructive text-secondary-foreground hover:bg-[var(--color-red-600)] focus-visible:ring-destructive/30",
|
|
20
|
+
outline: "border-2 border-white bg-transparent text-white hover:bg-white hover:text-[var(--color-main-orange-primary)] focus-visible:ring-white/30",
|
|
21
|
+
ghost: "bg-transparent text-foreground hover:bg-[var(--color-orange-100)] hover:text-[var(--color-main-orange-primary)] focus-visible:ring-ring/30"
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
sm: "h-8 px-3 text-xs",
|
|
25
|
+
md: "h-9 px-4 text-sm",
|
|
26
|
+
lg: "h-10 px-6 text-sm",
|
|
27
|
+
"icon-sm": "size-8 rounded-full p-0"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: {
|
|
31
|
+
variant: "primary",
|
|
32
|
+
size: "md"
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
function Button({
|
|
37
|
+
className,
|
|
38
|
+
variant = "primary",
|
|
39
|
+
size = "md",
|
|
40
|
+
asChild = false,
|
|
41
|
+
isLoading = false,
|
|
42
|
+
children,
|
|
43
|
+
...props
|
|
44
|
+
}) {
|
|
45
|
+
const Comp = asChild ? Slot.Root : "button";
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
Comp,
|
|
48
|
+
{
|
|
49
|
+
"data-slot": "button",
|
|
50
|
+
"data-variant": variant,
|
|
51
|
+
"data-size": size,
|
|
52
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
53
|
+
...props,
|
|
54
|
+
children
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { Button, buttonVariants };
|
|
60
|
+
//# sourceMappingURL=main.js.map
|
|
61
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/Button/button.tsx"],"names":[],"mappings":";;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACCA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,4kBAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACL,OAAA,EACI,sFAAA;AAAA,QACJ,SAAA,EACI,2GAAA;AAAA,QACJ,MAAA,EACI,4GAAA;AAAA,QACJ,OAAA,EACI,0IAAA;AAAA,QACJ,KAAA,EACI;AAAA,OACR;AAAA,MACA,IAAA,EAAM;AAAA,QACF,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,kBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,SAAA,EAAW;AAAA;AACf,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,SAAS,MAAA,CAAO;AAAA,EACZ,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACP,CAAA,EAIO;AACL,EAAA,MAAM,IAAA,GAAO,OAAA,GAAU,IAAA,CAAK,IAAA,GAAO,QAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,MACzD,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"main.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center gap-2 rounded-md border border-transparent bg-clip-padding text-sm font-semibold whitespace-nowrap transition-all duration-150 outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/30 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n primary:\n 'bg-primary text-primary-foreground hover:bg-primary/80 focus-visible:ring-primary/30',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-[var(--color-orange-700)] focus-visible:ring-secondary/30',\n cancel:\n 'bg-destructive text-secondary-foreground hover:bg-[var(--color-red-600)] focus-visible:ring-destructive/30',\n outline:\n 'border-2 border-white bg-transparent text-white hover:bg-white hover:text-[var(--color-main-orange-primary)] focus-visible:ring-white/30',\n ghost: \n 'bg-transparent text-foreground hover:bg-[var(--color-orange-100)] hover:text-[var(--color-main-orange-primary)] focus-visible:ring-ring/30',\n },\n size: {\n sm: 'h-8 px-3 text-xs',\n md: 'h-9 px-4 text-sm',\n lg: 'h-10 px-6 text-sm',\n 'icon-sm': 'size-8 rounded-full p-0',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nfunction Button({\n className,\n variant = 'primary',\n size = 'md',\n asChild = false,\n isLoading = false,\n children,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n isLoading?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n >\n {children}\n </Comp>\n )\n}\n\nexport { Button, buttonVariants }\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@bizapps/design-system-testing",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public",
|
|
5
|
+
"registry": "https://registry.npmjs.org"
|
|
6
|
+
},
|
|
7
|
+
"version": "0.4.0",
|
|
8
|
+
"description": "This package provides reusable UI components to ensure consistency across all CRM frontend applications",
|
|
9
|
+
"author": "BizAppsTotal <bizapps@tcce.biz>",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"files": [
|
|
12
|
+
"dist"
|
|
13
|
+
],
|
|
14
|
+
"main": "./dist/main.cjs",
|
|
15
|
+
"module": "./dist/main.js",
|
|
16
|
+
"types": "./dist/main.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/main.d.ts",
|
|
20
|
+
"import": "./dist/main.js",
|
|
21
|
+
"require": "./dist/main.cjs"
|
|
22
|
+
},
|
|
23
|
+
"./styles": "./dist/main.css"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"dev": "vite",
|
|
27
|
+
"build": "tsup",
|
|
28
|
+
"build:storybook": "storybook build",
|
|
29
|
+
"type-check": "tsc -p tsconfig.build.json --noEmit",
|
|
30
|
+
"lint": "eslint .",
|
|
31
|
+
"lint:fix": "eslint . --fix",
|
|
32
|
+
"format": "prettier --write .",
|
|
33
|
+
"preview": "vite preview",
|
|
34
|
+
"storybook": "storybook dev -p 6006 --host 0.0.0.0 --no-open",
|
|
35
|
+
"build-storybook": "storybook build"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@remixicon/react": "^4.6.0",
|
|
39
|
+
"@tailwindcss/vite": "^4.1.13",
|
|
40
|
+
"@tanstack/react-table": "^8.21.3",
|
|
41
|
+
"formik": "^2.4.6",
|
|
42
|
+
"motion": "^12.23.13",
|
|
43
|
+
"react": "^19.1.1",
|
|
44
|
+
"react-dom": "^19.1.1",
|
|
45
|
+
"sonner": "^2.0.7",
|
|
46
|
+
"styled-components": ">=6.1.19",
|
|
47
|
+
"tailwindcss": "^4.1.13",
|
|
48
|
+
"yup": "^1.7.1"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@eslint/js": "^9.39.4",
|
|
52
|
+
"@remixicon/react": "^4.9.0",
|
|
53
|
+
"@storybook/addon-a11y": "^10.2.17",
|
|
54
|
+
"@storybook/addon-docs": "^10.2.17",
|
|
55
|
+
"@storybook/react-vite": "^10.2.17",
|
|
56
|
+
"@tailwindcss/vite": "^4.2.1",
|
|
57
|
+
"@tanstack/react-table": "^8.21.3",
|
|
58
|
+
"@types/node": "^24.12.0",
|
|
59
|
+
"@types/react": "^19.2.14",
|
|
60
|
+
"@types/react-dom": "^19.2.3",
|
|
61
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
62
|
+
"eslint": "^9.39.4",
|
|
63
|
+
"eslint-config-prettier": "^10.1.8",
|
|
64
|
+
"eslint-plugin-react": "^7.37.5",
|
|
65
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
66
|
+
"eslint-plugin-react-refresh": "^0.4.26",
|
|
67
|
+
"eslint-plugin-storybook": "^10.2.17",
|
|
68
|
+
"formik": "^2.4.9",
|
|
69
|
+
"globals": "^16.5.0",
|
|
70
|
+
"motion": "^12.40.0",
|
|
71
|
+
"prettier": "^3.8.1",
|
|
72
|
+
"prettier-plugin-tailwindcss": "^0.6.14",
|
|
73
|
+
"react": "^19.2.4",
|
|
74
|
+
"react-dom": "^19.2.4",
|
|
75
|
+
"shadcn": "^4.8.1",
|
|
76
|
+
"sonner": "^2.0.7",
|
|
77
|
+
"storybook": "^10.2.17",
|
|
78
|
+
"styled-components": "6.3.6",
|
|
79
|
+
"tailwindcss": "^4.2.1",
|
|
80
|
+
"tsup": "^8.5.1",
|
|
81
|
+
"typescript": "~5.8.3",
|
|
82
|
+
"typescript-eslint": "8.53.0",
|
|
83
|
+
"vite": "^7.3.1",
|
|
84
|
+
"vite-plugin-dts": "^4.5.4",
|
|
85
|
+
"yup": "^1.7.1"
|
|
86
|
+
},
|
|
87
|
+
"packageManager": "pnpm@10.25.0+sha512.5e82639027af37cf832061bcc6d639c219634488e0f2baebe785028a793de7b525ffcd3f7ff574f5e9860654e098fe852ba8ac5dd5cefe1767d23a020a92f501",
|
|
88
|
+
"pnpm": {
|
|
89
|
+
"overrides": {
|
|
90
|
+
"fast-uri": ">=3.1.2",
|
|
91
|
+
"postcss": ">=8.5.10"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"dependencies": {
|
|
95
|
+
"@fontsource-variable/inter": "^5.2.8",
|
|
96
|
+
"@radix-ui/react-avatar": "^1.1.11",
|
|
97
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
98
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
99
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
100
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
101
|
+
"@radix-ui/react-radio-group": "^1.3.8",
|
|
102
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
103
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
104
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
105
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
106
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
107
|
+
"class-variance-authority": "^0.7.1",
|
|
108
|
+
"clsx": "^2.1.1",
|
|
109
|
+
"lucide-react": "^1.16.0",
|
|
110
|
+
"radix-ui": "^1.4.3",
|
|
111
|
+
"tailwind-merge": "^3.6.0",
|
|
112
|
+
"tw-animate-css": "^1.4.0"
|
|
113
|
+
}
|
|
114
|
+
}
|