@kpf_/kiso 1.0.2 → 1.1.1
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/AI_USAGE.md +99 -0
- package/README.md +64 -146
- package/dist/components/atoms/Card.d.ts +12 -0
- package/dist/components/atoms/FormControls.d.ts +26 -0
- package/dist/components/atoms/Layout.d.ts +39 -0
- package/dist/components/atoms/Media.d.ts +22 -0
- package/dist/components/atoms/Status.d.ts +34 -0
- package/dist/components/atoms/Typography.d.ts +34 -0
- package/dist/components/molecules/CardSections.d.ts +28 -0
- package/dist/components/molecules/Feedback.d.ts +26 -0
- package/dist/components/molecules/FormFields.d.ts +46 -0
- package/dist/components/molecules/Interaction.d.ts +17 -0
- package/dist/components/molecules/Navigation.d.ts +32 -0
- package/dist/components/motion/HotSlider.d.ts +2 -1
- package/dist/components/motion/Magnetic.d.ts +6 -0
- package/dist/components/motion/Spotlight.d.ts +8 -0
- package/dist/components/motion/StaggerText.d.ts +3 -9
- package/dist/components/motion/TextScramble.d.ts +9 -0
- package/dist/components/motion/Tilt.d.ts +7 -0
- package/dist/components/motion/ViewTransition.d.ts +2 -1
- package/dist/components/organisms/ContentOrganisms.d.ts +5 -0
- package/dist/components/organisms/DataOrganisms.d.ts +8 -0
- package/dist/components/organisms/FormOrganisms.d.ts +4 -0
- package/dist/components/organisms/NavigationOrganisms.d.ts +18 -0
- package/dist/components/organisms/OverlayOrganisms.d.ts +14 -0
- package/dist/index.d.ts +20 -0
- package/dist/kiso.js +9019 -3213
- package/dist/kiso.umd.cjs +52 -35
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/AI_USAGE.md
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Kiso AI Consumption Protocol (v1.0.2+)
|
|
2
|
+
|
|
3
|
+
> **IDENTITY:** You are an AI Agent tasked with building high-end interfaces using the **Kiso Design System**.
|
|
4
|
+
> **PHILOSOPHY:** Kiso is built on **Tactile Intelligence**—interfaces should feel physical, weighted, and responsive to interaction through physics-based motion.
|
|
5
|
+
> **SOURCE:** This document is your technical master reference for consuming `@kpf_/kiso`.
|
|
6
|
+
|
|
7
|
+
## 📦 Installation & Setup
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @kpf_/kiso
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**CRITICAL:** You MUST import global styles in your root layout (e.g., `layout.tsx`, `App.tsx`):
|
|
14
|
+
```tsx
|
|
15
|
+
import '@kpf_/kiso/style.css'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 🧩 Component Landscape
|
|
19
|
+
|
|
20
|
+
Kiso is organized into Atomic folders. Use the following categorized inventory to avoid hallucinations.
|
|
21
|
+
|
|
22
|
+
### 1. Atoms (Base Elements)
|
|
23
|
+
* **Typography:** `Text`, `Heading`, `Label`, `Caption`, `Code`, `Link`
|
|
24
|
+
* **Layout:** `Stack`, `Grid`, `Container`, `Divider`, `Spacer`, `AspectRatio`
|
|
25
|
+
* **Status:** `Badge`, `Tag`, `Spinner`, `ProgressBar`, `Skeleton`
|
|
26
|
+
* **Media:** `Avatar`, `Image`, `Icon`
|
|
27
|
+
* **Forms:** `Button`, `Input`, `Toggle`, `Textarea`, `Checkbox`, `Radio`, `Select`, `OTPInput`
|
|
28
|
+
* **Containers:** `Card`
|
|
29
|
+
|
|
30
|
+
### 2. Molecules (Component Clusters)
|
|
31
|
+
* **Feedback:** `Toast`, `Toaster`, `Alert`, `Snackbar`, `EmptyState`
|
|
32
|
+
* **Navigation:** `Dropdown`, `Tabs`, `Breadcrumbs`, `Pagination`, `Stepper`, `Timeline`
|
|
33
|
+
* **Interaction:** `Modal`, `Popover`, `AccordionItem`, `Tooltip`, `CopyToClipboard`
|
|
34
|
+
* **Composites:** `FormField`, `PasswordField`, `SearchInput`, `StatCard`, `InfoRow`
|
|
35
|
+
|
|
36
|
+
### 3. Organisms (Layout & Sections)
|
|
37
|
+
* **Shell:** `Navbar`, `Sidebar`, `Footer`
|
|
38
|
+
* **Forms:** `LoginForm`, `SignupForm`, `ProfileForm`
|
|
39
|
+
* **Content:** `HeroSection`, `FeatureGrid`, `FAQSection`, `PricingTable`
|
|
40
|
+
* **Data:** `DataTable`, `DashboardStats`, `ActivityFeed`
|
|
41
|
+
* **Overlays:** `ConfirmationDialog`
|
|
42
|
+
|
|
43
|
+
### 4. Motion (Tactile Primitives)
|
|
44
|
+
* **Text:** `StaggerText`, `TextScramble`
|
|
45
|
+
* **Physics:** `Magnetic`, `Tilt`, `Spotlight`
|
|
46
|
+
* **Flow:** `HotSlider`, `ViewTransition`
|
|
47
|
+
|
|
48
|
+
## 🎨 Design System Constraints
|
|
49
|
+
|
|
50
|
+
Do **NOT** use generic Tailwind colors or utility-first overrides for component cores.
|
|
51
|
+
|
|
52
|
+
- **Colors:** `bg-kiso-green`, `text-kiso-forest`, `border-kiso-stroke`, `bg-kiso-gray`
|
|
53
|
+
- **Transitions:** `ease-kiso` (Tactile spring timing)
|
|
54
|
+
- **Shadows:** `shadow-kiso-sm`, `shadow-kiso-md`
|
|
55
|
+
- **Rounding:** `rounded-kiso-md`, `rounded-kiso-lg`
|
|
56
|
+
|
|
57
|
+
## 🛡️ Strict Compliance Rules (The "Kiso Guardrails")
|
|
58
|
+
|
|
59
|
+
1. **NO CLASSNAME PROP:** Kiso components do **NOT** accept `className`. Use provided props (`variant`, `size`, `status`, `rounded`).
|
|
60
|
+
2. **Wrappers for Layout:** If you must apply margin, width, or positioning classes, wrap the Kiso component in a primitive `div` or use Kiso `Stack`/`Grid`.
|
|
61
|
+
3. **Continuous Build Verification (CBV):** Always run `npm run lint && npm run build` after implementing Kiso components to ensure prop types and exports are valid.
|
|
62
|
+
4. **No Hallucinations:** If a component is not listed above, it does not exist in Kiso.
|
|
63
|
+
5. **Motion Preference:** Prioritize `StaggerText` for headings and `Magnetic`/`Tilt` for primary CTAs to maintain "Tactile" feel.
|
|
64
|
+
|
|
65
|
+
## 📚 Implementation Example
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import {
|
|
69
|
+
Card,
|
|
70
|
+
Heading,
|
|
71
|
+
Text,
|
|
72
|
+
Button,
|
|
73
|
+
Stack,
|
|
74
|
+
Magnetic,
|
|
75
|
+
Tilt
|
|
76
|
+
} from '@kpf_/kiso'
|
|
77
|
+
|
|
78
|
+
export function ProductShowcase() {
|
|
79
|
+
return (
|
|
80
|
+
<Tilt max={10}>
|
|
81
|
+
<Card padding="lg" shadow="md">
|
|
82
|
+
<Stack gap={6} align="start">
|
|
83
|
+
<Heading level="h2">The Kiso Modular Kit</Heading>
|
|
84
|
+
<Text variant="muted">
|
|
85
|
+
Physics-based components for modern tactile intelligence.
|
|
86
|
+
</Text>
|
|
87
|
+
|
|
88
|
+
<div className="flex gap-4 mt-2">
|
|
89
|
+
<Magnetic strength={0.2}>
|
|
90
|
+
<Button variant="primary" size="lg">Get Started</Button>
|
|
91
|
+
</Magnetic>
|
|
92
|
+
<Button variant="outline" size="lg">Documentation</Button>
|
|
93
|
+
</div>
|
|
94
|
+
</Stack>
|
|
95
|
+
</Card>
|
|
96
|
+
</Tilt>
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
```
|
package/README.md
CHANGED
|
@@ -1,168 +1,86 @@
|
|
|
1
1
|
# Kiso Design System
|
|
2
2
|
|
|
3
|
-
Package: `@
|
|
4
|
-
Version: `1.0.
|
|
5
|
-
|
|
3
|
+
Package: `@kpf_/kiso`
|
|
4
|
+
Version: `1.0.2` (Build Verified)
|
|
5
|
+
Philosophy: **Tactile Intelligence**
|
|
6
6
|
|
|
7
|
-
**Kiso** (Japanese for *Foundation*) is a
|
|
7
|
+
**Kiso** (Japanese for *Foundation*) is a high-performance UI library built for physical interaction and precise motion. It enforces physics-based behaviors through custom springs and the signature `ease-kiso` bezier curve.
|
|
8
8
|
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
### 1. Installation
|
|
9
|
+
## 🚀 Installation
|
|
12
10
|
|
|
13
11
|
```bash
|
|
14
|
-
npm install @
|
|
12
|
+
npm install @kpf_/kiso framer-motion @phosphor-icons/react
|
|
15
13
|
```
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Kiso relies on **Plus Jakarta Sans** and a compiled CSS file for token injection.
|
|
20
|
-
|
|
21
|
-
In your root entry file (e.g., `main.tsx` or `layout.tsx`):
|
|
15
|
+
## 🔌 Setup
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
import '@fontsource/plus-jakarta-sans/400.css';
|
|
26
|
-
import '@fontsource/plus-jakarta-sans/500.css';
|
|
27
|
-
import '@fontsource/plus-jakarta-sans/600.css';
|
|
28
|
-
import '@fontsource/plus-jakarta-sans/700.css';
|
|
17
|
+
### 1. Global Styles
|
|
18
|
+
In your root layout (e.g., `layout.tsx` or `App.tsx`):
|
|
29
19
|
|
|
30
|
-
|
|
31
|
-
import '@
|
|
20
|
+
```tsx
|
|
21
|
+
import '@kpf_/kiso/style.css'
|
|
32
22
|
```
|
|
33
23
|
|
|
34
|
-
###
|
|
24
|
+
### 2. Fonts
|
|
25
|
+
Kiso is designed around **Plus Jakarta Sans** (Primary) and **JetBrains Mono** (Code).
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
import
|
|
40
|
-
|
|
41
|
-
function App() {
|
|
42
|
-
return (
|
|
43
|
-
<KisoToastProvider>
|
|
44
|
-
<YourApplication />
|
|
45
|
-
</KisoToastProvider>
|
|
46
|
-
);
|
|
47
|
-
}
|
|
27
|
+
```tsx
|
|
28
|
+
// Example using Google Fonts or Fontsource
|
|
29
|
+
import '@fontsource/plus-jakarta-sans/400.css';
|
|
30
|
+
import '@fontsource/plus-jakarta-sans/700.css';
|
|
31
|
+
import '@fontsource/jetbrains-mono/500.css';
|
|
48
32
|
```
|
|
49
33
|
|
|
50
|
-
## Component Architecture
|
|
34
|
+
## 🧩 Component Architecture
|
|
51
35
|
|
|
52
|
-
Kiso
|
|
36
|
+
Kiso is organized into Atomic tiers for maximum composability.
|
|
53
37
|
|
|
54
38
|
### Atoms
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
<KisoModal open={isOpen} onOpenChange={setIsOpen}>
|
|
94
|
-
<KisoModal.Content variant='sheet'>
|
|
95
|
-
<KisoModal.Header>
|
|
96
|
-
<h2>Transaction Details</h2>
|
|
97
|
-
</KisoModal.Header>
|
|
98
|
-
|
|
99
|
-
<div className='p-6'>
|
|
100
|
-
{/* Content */}
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
<KisoModal.Footer>
|
|
104
|
-
<KisoButton variant='secondary' onClick={close}>Close</KisoButton>
|
|
105
|
-
</KisoModal.Footer>
|
|
106
|
-
</KisoModal.Content>
|
|
107
|
-
</KisoModal>
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
#### Toast Feedback
|
|
111
|
-
Triggered via hook.
|
|
112
|
-
|
|
113
|
-
```typescript
|
|
114
|
-
import { useToast } from '@kpf/kiso';
|
|
115
|
-
|
|
116
|
-
const { success, error } = useToast();
|
|
117
|
-
|
|
118
|
-
const handleSubmit = () => {
|
|
119
|
-
try {
|
|
120
|
-
saveData();
|
|
121
|
-
success('Changes saved successfully.');
|
|
122
|
-
} catch (err) {
|
|
123
|
-
error('Failed to save data.');
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Motion System
|
|
129
|
-
|
|
130
|
-
Kiso provides pre-configured motion primitives powered by Framer Motion. These use the **wise-drama** bezier curve (`0.1, 0.9, 0.2, 1`).
|
|
131
|
-
|
|
132
|
-
#### Stagger Text
|
|
133
|
-
Splits strings into characters and cascades them in.
|
|
134
|
-
|
|
135
|
-
```typescript
|
|
136
|
-
import { KisoStaggerText } from '@kpf/kiso';
|
|
137
|
-
|
|
138
|
-
<h1 className='text-4xl font-bold text-kiso-forest'>
|
|
139
|
-
<KisoStaggerText text='Welcome Back' />
|
|
140
|
-
</h1>
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
#### View Transition (Wizard)
|
|
144
|
-
Handles the exit/enter overlap logic for multi-step forms.
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
import { KisoViewTransition } from '@kpf/kiso';
|
|
148
|
-
|
|
149
|
-
// direction is 'forward' | 'backward'
|
|
150
|
-
<KisoViewTransition direction={navDirection}>
|
|
151
|
-
{step === 1 && <StepOne key='step1' />}
|
|
152
|
-
{step === 2 && <StepTwo key='step2' />}
|
|
153
|
-
</KisoViewTransition>
|
|
39
|
+
Primitive build blocks:
|
|
40
|
+
- **Typography:** `Text`, `Heading`, `Label`, `Code`, `Link`
|
|
41
|
+
- **Forms:** `Button`, `Input`, `Toggle`, `Checkbox`, `Radio`, `OTPInput`
|
|
42
|
+
- **Layout:** `Stack`, `Grid`, `Container`, `Spacer`, `AspectRatio`
|
|
43
|
+
- **Visual:** `Avatar`, `Badge`, `Tag`, `Spinner`, `Card`
|
|
44
|
+
|
|
45
|
+
### Molecules
|
|
46
|
+
Stateful interaction patterns:
|
|
47
|
+
- **Navigation:** `Tabs`, `Stepper`, `Timeline`, `Breadcrumbs`, `Pagination`
|
|
48
|
+
- **Feedback:** `Toaster`, `useToast`, `Alert`, `Snackbar`, `EmptyState`
|
|
49
|
+
- **Overlays:** `Modal`, `Popover`, `Tooltip`, `AccordionItem`
|
|
50
|
+
- **Composites:** `FormField`, `PasswordField`, `StatCard`
|
|
51
|
+
|
|
52
|
+
### Organisms
|
|
53
|
+
High-level production-ready sections:
|
|
54
|
+
- **Forms:** `LoginForm`, `SignupForm`, `ProfileForm`
|
|
55
|
+
- **Marketing:** `HeroSection`, `FeatureGrid`, `PricingTable`
|
|
56
|
+
- **Data:** `DataTable`, `DashboardStats`, `ActivityFeed`
|
|
57
|
+
- **Shell:** `Navbar`, `Sidebar`, `Footer`
|
|
58
|
+
|
|
59
|
+
## ✨ Motion (Tactile Intelligence)
|
|
60
|
+
|
|
61
|
+
Kiso includes physics-based primitives that go beyond simple transitions:
|
|
62
|
+
|
|
63
|
+
- **Magnetic:** Wraps elements to pull them toward the cursor.
|
|
64
|
+
- **Tilt:** Adds reactive 3D depth to containers on hover.
|
|
65
|
+
- **Spotlight:** A tracking radial reveal layer.
|
|
66
|
+
- **StaggerText:** Character-by-character entrance sequences.
|
|
67
|
+
- **TextScramble:** Decoding animations for headlines.
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
import { Tilt, Card, StaggerText } from '@kpf_/kiso'
|
|
71
|
+
|
|
72
|
+
<Tilt>
|
|
73
|
+
<Card padding="lg">
|
|
74
|
+
<StaggerText text="Tactile Logic" />
|
|
75
|
+
</Card>
|
|
76
|
+
</Tilt>
|
|
154
77
|
```
|
|
155
78
|
|
|
156
|
-
##
|
|
79
|
+
## 🛡️ Strict Guidelines
|
|
157
80
|
|
|
158
|
-
|
|
81
|
+
- **No className:** Kiso components do **NOT** accept a `className` prop. All styling is variant/prop-driven to maintain design integrity.
|
|
82
|
+
- **Layout Wrappers:** Use `Stack`, `Grid`, or standard `div` elements to handle external positioning.
|
|
83
|
+
- **Tokens:** Always use `kiso` prefixed tailwind tokens for custom elements (`bg-kiso-green`, `text-kiso-forest`).
|
|
159
84
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
| **Color** | `text-kiso-forest` | Primary Text (#163300) |
|
|
163
|
-
| | `bg-kiso-green` | Primary Action (#9FE870) |
|
|
164
|
-
| | `bg-kiso-gray` | Backgrounds (#F2F4F8) |
|
|
165
|
-
| | `border-kiso-stroke` | Borders (#D3D5D8) |
|
|
166
|
-
| **Shadow** | `shadow-kiso-modal` | Deep elevation for dialogs |
|
|
167
|
-
| **Ease** | `ease-kiso` | Standard interaction curve |
|
|
168
|
-
| **Ease** | `ease-drama` | Long-form motion curve |
|
|
85
|
+
## 📄 License
|
|
86
|
+
MIT © Kim Fajardo
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const cardVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "flat" | "outline" | "glass" | null | undefined;
|
|
5
|
+
rounded?: "sm" | "md" | "lg" | "none" | "xl" | null | undefined;
|
|
6
|
+
hoverable?: boolean | null | undefined;
|
|
7
|
+
padding?: "sm" | "md" | "lg" | "none" | "xl" | null | undefined;
|
|
8
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
9
|
+
export interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof cardVariants> {
|
|
10
|
+
}
|
|
11
|
+
export declare const Card: React.MemoExoticComponent<React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const textareaVariants: (props?: ({
|
|
4
|
+
status?: "default" | "error" | "success" | "warning" | null | undefined;
|
|
5
|
+
rounded?: "sm" | "md" | "lg" | "none" | "xl" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
export type TextareaProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "className"> & VariantProps<typeof textareaVariants>;
|
|
8
|
+
export declare const Textarea: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "className"> & VariantProps<(props?: ({
|
|
9
|
+
status?: "default" | "error" | "success" | "warning" | null | undefined;
|
|
10
|
+
rounded?: "sm" | "md" | "lg" | "none" | "xl" | null | undefined;
|
|
11
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLTextAreaElement>>>;
|
|
12
|
+
export type CheckboxProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "className" | "type">;
|
|
13
|
+
export declare const Checkbox: React.MemoExoticComponent<React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>>;
|
|
14
|
+
export type RadioProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "className" | "type">;
|
|
15
|
+
export declare const Radio: React.MemoExoticComponent<React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>>;
|
|
16
|
+
declare const selectVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
17
|
+
export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, "className">, VariantProps<typeof selectVariants> {
|
|
18
|
+
}
|
|
19
|
+
export declare const Select: React.MemoExoticComponent<React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>>;
|
|
20
|
+
export interface OTPInputProps {
|
|
21
|
+
length?: number;
|
|
22
|
+
onChange?: (value: string) => void;
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const OTPInput: React.MemoExoticComponent<({ length, onChange, disabled }: OTPInputProps) => import("react/jsx-runtime").JSX.Element>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const dividerVariants: (props?: ({
|
|
4
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
export interface DividerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof dividerVariants> {
|
|
7
|
+
}
|
|
8
|
+
export declare const Divider: React.MemoExoticComponent<React.ForwardRefExoticComponent<DividerProps & React.RefAttributes<HTMLDivElement>>>;
|
|
9
|
+
export interface SpacerProps {
|
|
10
|
+
size?: number | string;
|
|
11
|
+
axis?: 'horizontal' | 'vertical';
|
|
12
|
+
}
|
|
13
|
+
export declare const Spacer: React.MemoExoticComponent<({ size, axis }: SpacerProps) => import("react/jsx-runtime").JSX.Element>;
|
|
14
|
+
export interface ContainerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
|
|
15
|
+
center?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const Container: React.MemoExoticComponent<React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLDivElement>>>;
|
|
18
|
+
declare const stackVariants: (props?: ({
|
|
19
|
+
direction?: "row" | "column" | "row-reverse" | "column-reverse" | null | undefined;
|
|
20
|
+
align?: "center" | "end" | "start" | "baseline" | "stretch" | null | undefined;
|
|
21
|
+
justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
|
|
22
|
+
gap?: 0 | 1 | 2 | 3 | 16 | 4 | 5 | 6 | 8 | 10 | 12 | null | undefined;
|
|
23
|
+
wrap?: boolean | null | undefined;
|
|
24
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
25
|
+
export interface StackProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof stackVariants> {
|
|
26
|
+
}
|
|
27
|
+
export declare const Stack: React.MemoExoticComponent<React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLDivElement>>>;
|
|
28
|
+
declare const gridVariants: (props?: ({
|
|
29
|
+
cols?: 1 | 2 | 3 | 4 | 5 | 6 | 12 | null | undefined;
|
|
30
|
+
gap?: 0 | 1 | 2 | 3 | 16 | 4 | 5 | 6 | 8 | 10 | 12 | null | undefined;
|
|
31
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
32
|
+
export interface GridProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof gridVariants> {
|
|
33
|
+
}
|
|
34
|
+
export declare const Grid: React.MemoExoticComponent<React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLDivElement>>>;
|
|
35
|
+
export interface AspectRatioProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className"> {
|
|
36
|
+
ratio?: number;
|
|
37
|
+
}
|
|
38
|
+
export declare const AspectRatio: React.MemoExoticComponent<React.ForwardRefExoticComponent<AspectRatioProps & React.RefAttributes<HTMLDivElement>>>;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const avatarVariants: (props?: ({
|
|
4
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | "2xl" | null | undefined;
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
export interface AvatarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof avatarVariants> {
|
|
7
|
+
src?: string;
|
|
8
|
+
alt?: string;
|
|
9
|
+
fallback?: React.ReactNode;
|
|
10
|
+
}
|
|
11
|
+
export declare const Avatar: React.MemoExoticComponent<React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>>;
|
|
12
|
+
export interface ImageProps extends Omit<React.ImgHTMLAttributes<HTMLImageElement>, "className"> {
|
|
13
|
+
aspectRatio?: number;
|
|
14
|
+
rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
15
|
+
}
|
|
16
|
+
export declare const Image: React.MemoExoticComponent<React.ForwardRefExoticComponent<ImageProps & React.RefAttributes<HTMLImageElement>>>;
|
|
17
|
+
export interface IconProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "className"> {
|
|
18
|
+
size?: number | string;
|
|
19
|
+
color?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const Icon: React.MemoExoticComponent<React.ForwardRefExoticComponent<IconProps & React.RefAttributes<HTMLSpanElement>>>;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const badgeVariants: (props?: ({
|
|
4
|
+
variant?: "secondary" | "destructive" | "default" | "success" | "outline" | null | undefined;
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
export interface BadgeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof badgeVariants> {
|
|
7
|
+
}
|
|
8
|
+
export declare const Badge: React.MemoExoticComponent<React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLDivElement>>>;
|
|
9
|
+
declare const tagVariants: (props?: ({
|
|
10
|
+
variant?: "primary" | "default" | "forest" | null | undefined;
|
|
11
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
12
|
+
export interface TagProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof tagVariants> {
|
|
13
|
+
onClose?: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const Tag: React.MemoExoticComponent<React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLDivElement>>>;
|
|
16
|
+
declare const spinnerVariants: (props?: ({
|
|
17
|
+
size?: "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
18
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
19
|
+
export interface SpinnerProps extends Omit<React.HTMLAttributes<SVGSVGElement>, "className">, VariantProps<typeof spinnerVariants> {
|
|
20
|
+
}
|
|
21
|
+
export declare const Spinner: React.MemoExoticComponent<React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<SVGSVGElement>>>;
|
|
22
|
+
export interface ProgressBarProps {
|
|
23
|
+
value?: number;
|
|
24
|
+
max?: number;
|
|
25
|
+
variant?: 'primary' | 'success' | 'destructive';
|
|
26
|
+
}
|
|
27
|
+
export declare const ProgressBar: React.MemoExoticComponent<({ value, max, variant }: ProgressBarProps) => import("react/jsx-runtime").JSX.Element>;
|
|
28
|
+
declare const skeletonVariants: (props?: ({
|
|
29
|
+
variant?: "default" | "circle" | null | undefined;
|
|
30
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
31
|
+
export interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof skeletonVariants> {
|
|
32
|
+
}
|
|
33
|
+
export declare const Skeleton: React.MemoExoticComponent<React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const textVariants: (props?: ({
|
|
4
|
+
variant?: "inverse" | "default" | "error" | "success" | "muted" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
6
|
+
weight?: "bold" | "normal" | "medium" | "semibold" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
export interface TextProps extends Omit<React.HTMLAttributes<HTMLParagraphElement>, "className">, VariantProps<typeof textVariants> {
|
|
9
|
+
as?: "p" | "span" | "div";
|
|
10
|
+
}
|
|
11
|
+
export declare const Text: React.MemoExoticComponent<React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLParagraphElement>>>;
|
|
12
|
+
declare const headingVariants: (props?: ({
|
|
13
|
+
level?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | null | undefined;
|
|
14
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
15
|
+
export type HeadingProps = Omit<React.HTMLAttributes<HTMLHeadingElement>, "className"> & VariantProps<typeof headingVariants>;
|
|
16
|
+
export declare const Heading: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLHeadingElement>, "className"> & VariantProps<(props?: ({
|
|
17
|
+
level?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | null | undefined;
|
|
18
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLHeadingElement>>>;
|
|
19
|
+
declare const labelVariants: (props?: import('class-variance-authority/types').ClassProp | undefined) => string;
|
|
20
|
+
export type LabelProps = Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "className"> & VariantProps<typeof labelVariants>;
|
|
21
|
+
export declare const Label: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "className"> & VariantProps<(props?: import('class-variance-authority/types').ClassProp | undefined) => string> & React.RefAttributes<HTMLLabelElement>>>;
|
|
22
|
+
export declare const Caption: React.MemoExoticComponent<React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLSpanElement>>>;
|
|
23
|
+
export type CodeProps = Omit<React.HTMLAttributes<HTMLElement>, "className">;
|
|
24
|
+
export declare const Code: React.MemoExoticComponent<React.ForwardRefExoticComponent<CodeProps & React.RefAttributes<HTMLElement>>>;
|
|
25
|
+
declare const linkVariants: (props?: ({
|
|
26
|
+
variant?: "primary" | "default" | "muted" | null | undefined;
|
|
27
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
28
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
29
|
+
export type LinkProps = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "className"> & VariantProps<typeof linkVariants>;
|
|
30
|
+
export declare const Link: React.MemoExoticComponent<React.ForwardRefExoticComponent<Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "className"> & VariantProps<(props?: ({
|
|
31
|
+
variant?: "primary" | "default" | "muted" | null | undefined;
|
|
32
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
33
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLAnchorElement>>>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CardProps } from '../atoms/Card';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export declare const CardHeader: React.MemoExoticComponent<({ children, ...props }: Omit<React.HTMLAttributes<HTMLDivElement>, "className">) => import("react/jsx-runtime").JSX.Element>;
|
|
4
|
+
export declare const CardTitle: React.MemoExoticComponent<({ children, ...props }: Omit<React.HTMLAttributes<HTMLHeadingElement>, "className">) => import("react/jsx-runtime").JSX.Element>;
|
|
5
|
+
export declare const CardDescription: React.MemoExoticComponent<({ children, ...props }: Omit<React.HTMLAttributes<HTMLParagraphElement>, "className">) => import("react/jsx-runtime").JSX.Element>;
|
|
6
|
+
export declare const CardContent: React.MemoExoticComponent<({ children, ...props }: Omit<React.HTMLAttributes<HTMLDivElement>, "className">) => import("react/jsx-runtime").JSX.Element>;
|
|
7
|
+
export declare const CardFooter: React.MemoExoticComponent<({ children, ...props }: Omit<React.HTMLAttributes<HTMLDivElement>, "className">) => import("react/jsx-runtime").JSX.Element>;
|
|
8
|
+
export interface StatCardProps extends CardProps {
|
|
9
|
+
label: string;
|
|
10
|
+
value: string | number;
|
|
11
|
+
trend?: {
|
|
12
|
+
value: string | number;
|
|
13
|
+
positive?: boolean;
|
|
14
|
+
};
|
|
15
|
+
icon?: React.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export declare const StatCard: React.MemoExoticComponent<({ label, value, trend, icon, ...props }: StatCardProps) => import("react/jsx-runtime").JSX.Element>;
|
|
18
|
+
export interface InfoRowProps {
|
|
19
|
+
label: string;
|
|
20
|
+
value: React.ReactNode;
|
|
21
|
+
horizontal?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare const InfoRow: React.MemoExoticComponent<({ label, value, horizontal }: InfoRowProps) => import("react/jsx-runtime").JSX.Element>;
|
|
24
|
+
export interface CopyToClipboardProps {
|
|
25
|
+
text: string;
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
}
|
|
28
|
+
export declare const CopyToClipboard: React.MemoExoticComponent<({ text, children }: CopyToClipboardProps) => import("react/jsx-runtime").JSX.Element>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const alertVariants: (props?: ({
|
|
4
|
+
variant?: "error" | "success" | "warning" | "info" | null | undefined;
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
6
|
+
export interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "className">, VariantProps<typeof alertVariants> {
|
|
7
|
+
title?: string;
|
|
8
|
+
onClose?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const Alert: React.MemoExoticComponent<React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>>;
|
|
11
|
+
export interface SnackbarProps {
|
|
12
|
+
open?: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
action?: React.ReactNode;
|
|
15
|
+
onClose?: () => void;
|
|
16
|
+
duration?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare const Snackbar: React.MemoExoticComponent<({ open, message, action, onClose, duration }: SnackbarProps) => import("react/jsx-runtime").JSX.Element | null>;
|
|
19
|
+
export interface EmptyStateProps {
|
|
20
|
+
icon?: React.ReactNode;
|
|
21
|
+
title: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
action?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
export declare const EmptyState: React.MemoExoticComponent<({ icon, title, description, action }: EmptyStateProps) => import("react/jsx-runtime").JSX.Element>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface FormFieldProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
hint?: string;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare const FormField: React.MemoExoticComponent<({ label, error, hint, required, children }: FormFieldProps) => import("react/jsx-runtime").JSX.Element>;
|
|
10
|
+
export interface PasswordFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "className" | "type"> {
|
|
11
|
+
label?: string;
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const PasswordField: React.MemoExoticComponent<React.ForwardRefExoticComponent<PasswordFieldProps & React.RefAttributes<HTMLInputElement>>>;
|
|
15
|
+
export type SearchInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "className">;
|
|
16
|
+
export declare const SearchInput: React.MemoExoticComponent<React.ForwardRefExoticComponent<SearchInputProps & React.RefAttributes<HTMLInputElement>>>;
|
|
17
|
+
export interface SelectFieldProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, "className"> {
|
|
18
|
+
label?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
options?: {
|
|
21
|
+
label: string;
|
|
22
|
+
value: string;
|
|
23
|
+
}[];
|
|
24
|
+
}
|
|
25
|
+
export declare const SelectField: React.MemoExoticComponent<React.ForwardRefExoticComponent<SelectFieldProps & React.RefAttributes<HTMLSelectElement>>>;
|
|
26
|
+
export interface CheckboxGroupProps {
|
|
27
|
+
label?: string;
|
|
28
|
+
options: {
|
|
29
|
+
label: string;
|
|
30
|
+
value: string;
|
|
31
|
+
}[];
|
|
32
|
+
value?: string[];
|
|
33
|
+
onChange?: (value: string[]) => void;
|
|
34
|
+
}
|
|
35
|
+
export declare const CheckboxGroup: React.MemoExoticComponent<({ label, options, value, onChange }: CheckboxGroupProps) => import("react/jsx-runtime").JSX.Element>;
|
|
36
|
+
export interface RadioGroupProps {
|
|
37
|
+
label?: string;
|
|
38
|
+
name: string;
|
|
39
|
+
options: {
|
|
40
|
+
label: string;
|
|
41
|
+
value: string;
|
|
42
|
+
}[];
|
|
43
|
+
value?: string;
|
|
44
|
+
onChange?: (value: string) => void;
|
|
45
|
+
}
|
|
46
|
+
export declare const RadioGroup: React.MemoExoticComponent<({ label, name, options, value, onChange }: RadioGroupProps) => import("react/jsx-runtime").JSX.Element>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export interface PopoverProps {
|
|
3
|
+
trigger: React.ReactNode;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const Popover: React.MemoExoticComponent<({ trigger, children }: PopoverProps) => import("react/jsx-runtime").JSX.Element>;
|
|
7
|
+
export interface AccordionItemProps {
|
|
8
|
+
title: string;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
defaultOpen?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const AccordionItem: React.MemoExoticComponent<({ title, children, defaultOpen }: AccordionItemProps) => import("react/jsx-runtime").JSX.Element>;
|
|
13
|
+
export interface TooltipProps {
|
|
14
|
+
content: string;
|
|
15
|
+
children: React.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export declare const Tooltip: React.MemoExoticComponent<({ content, children }: TooltipProps) => import("react/jsx-runtime").JSX.Element>;
|