@ttianqii/takaui 0.1.5 → 0.1.6

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 CHANGED
@@ -2,393 +2,171 @@
2
2
 
3
3
  Modern, accessible React component library built with TypeScript, Tailwind CSS, and Radix UI primitives.
4
4
 
5
- ## Installation
5
+ [![npm version](https://img.shields.io/npm/v/@ttianqii/takaui.svg)](https://www.npmjs.com/package/@ttianqii/takaui)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
6
7
 
7
- ```bash
8
- # npm
9
- npm install @ttianqii/takaui
10
-
11
- # yarn
12
- yarn add @ttianqii/takaui
13
-
14
- # pnpm
15
- pnpm add @ttianqii/takaui
16
-
17
- # bun
18
- bun add @ttianqii/takaui
19
- ```
20
-
21
- ### Peer Dependencies
8
+ ## 📚 Documentation
22
9
 
23
- ```bash
24
- # npm
25
- npm install -D tailwindcss postcss autoprefixer
26
- npx tailwindcss init -p
27
-
28
- # yarn
29
- yarn add -D tailwindcss postcss autoprefixer
30
- npx tailwindcss init -p
31
-
32
- # pnpm
33
- pnpm add -D tailwindcss postcss autoprefixer
34
- npx tailwindcss init -p
35
-
36
- # bun
37
- bun add -d tailwindcss postcss autoprefixer
38
- bunm install react react-dom
10
+ - **[Getting Started Guide](./GETTING_STARTED.md)** - Complete installation and setup instructions
11
+ - **[Components Reference](./COMPONENTS.md)** - Detailed component documentation with examples
12
+ - **[GitHub Repository](https://github.com/ttianqii/takaui)** - Source code and issues
39
13
 
40
- # yarn
41
- yarn add react react-dom
42
-
43
- # pnpm
44
- pnpm add react react-dom
45
-
46
- # bun
47
- bun add react react-dom
48
- ```
14
+ ## ✨ Features
49
15
 
50
- ## Setup
16
+ - 🎯 **TypeScript** - Full type safety and IntelliSense support
17
+ - 🎨 **Tailwind CSS** - Utility-first styling, fully customizable
18
+ - ♿ **Accessible** - Built with Radix UI primitives for accessibility
19
+ - 📦 **Tree-shakeable** - Only bundle what you use
20
+ - 🚀 **No dependencies** - Core components work standalone (DataTable, DataGrid)
21
+ - 📅 **Rich Components** - Calendar, DatePicker, TimePicker, Schedule, and more
51
22
 
52
- TakaUI uses Tailwind CSS. Configure your project:
23
+ ## 🚀 Quick Start
53
24
 
54
- ### 1. Install Tailwind CSS
25
+ ### Installation
55
26
 
56
27
  ```bash
57
- npm install -D tailwindcss postcss autoprefixer
58
- npx tailwindcss init -p
59
- ```
60
-
61
- ### 2. Configure Tailwind
62
-
63
- Update your `tailwind.config.js`:
64
-
65
- ```js
66
- /** @type {import('tailwindcss').Config} */
67
- export default {
68
- content: [
69
- "./index.html",
70
- "./src/**/*.{js,ts,jsx,tsx}",
71
- "./node_modules/@ttianqii/takaui/dist/**/*.{js,cjs}"
72
- ],
73
- theme: {
74
- extend: {},
75
- },
76
- plugins: [],
77
- }
78
- ```
79
-
80
- ### 3. Add Tailwind Directives
81
-
82
- In your main CSS file (e.g., `src/index.css`):
83
-
84
- ```css
85
- @tailwind base;
86
- @tailwind components;
87
- @tailwind utilities;
28
+ npm install @ttianqii/takaui
88
29
  ```
89
30
 
90
- ## Components
31
+ **All package managers supported:** npm, yarn, pnpm, bun
91
32
 
92
- ### Calendar
33
+ 👉 For complete setup instructions, see the **[Getting Started Guide](./GETTING_STARTED.md)**
93
34
 
94
- Interactive calendar with holiday support and customizable styling.
35
+ ### Basic Example
95
36
 
96
37
  ```tsx
97
- import { Calendar } from '@ttianqii/takaui'
38
+ import { Button, DatePicker, Card } from '@ttianqii/takaui'
98
39
  import { useState } from 'react'
99
40
 
100
- function App() {
101
- const [date, setDate] = useState(new Date())
102
-
103
- return (
104
- <Calendar
105
- selectedDate={date}
106
- onDateChange={setDate}
107
- holidays={['US']}
108
- showWeekNumbers
109
- />
110
- )
111
- }
112
- ```
113
-
114
- **Props:**
115
- - `selectedDate`: Current selected date
116
- - `onDateChange`: Callback when date changes
117
- - `holidays`: Array of country codes for holiday display
118
- - `showWeekNumbers`: Show week numbers (default: false)
119
-
120
- ---
121
-
122
- ### DatePicker
123
-
124
- Dropdown date selector with calendar popup.
125
-
126
- ```tsx
127
- import { DatePicker } from '@ttianqii/takaui'
128
-
129
41
  function App() {
130
42
  const [date, setDate] = useState<Date>()
131
43
 
132
44
  return (
133
- <DatePicker
134
- selected={date}
135
- onSelect={setDate}
136
- placeholder="Select a date"
137
- />
45
+ <Card className="p-6">
46
+ <h1 className="text-2xl font-bold mb-4">Welcome to TakaUI</h1>
47
+ <DatePicker selected={date} onSelect={setDate} />
48
+ <Button className="mt-4">Submit</Button>
49
+ </Card>
138
50
  )
139
51
  }
140
52
  ```
141
53
 
142
- **Props:**
143
- - `selected`: Selected date
144
- - `onSelect`: Callback when date is selected
145
- - `placeholder`: Input placeholder text
146
-
147
- ---
148
-
149
- ### TimePicker
150
-
151
- Time selection input with hour/minute controls.
152
-
153
- ```tsx
154
- import { TimePicker } from '@ttianqii/takaui'
155
-
156
- function App() {
157
- const [time, setTime] = useState('09:00')
158
-
159
- return (
160
- <TimePicker
161
- value={time}
162
- onChange={setTime}
163
- />
164
- )
165
- }
166
- ```
167
-
168
- **Props:**
169
- - `value`: Time string in HH:MM format
170
- - `onChange`: Callback when time changes
171
-
172
- ---
173
-
174
- ### WeekNavigator
54
+ ## 📦 Available Components
175
55
 
176
- Week-based navigation component.
56
+ ### 📅 Date & Time
57
+ - **Calendar** - Interactive calendar with holiday support
58
+ - **DatePicker** - Dropdown date selector
59
+ - **TimePicker** - Time selection input
60
+ - **WeekNavigator** - Week-based navigation
61
+ - **Schedule** - Weekly schedule view with events
177
62
 
178
- ```tsx
179
- import { WeekNavigator } from '@ttianqii/takaui'
180
-
181
- function App() {
182
- const [date, setDate] = useState(new Date())
183
-
184
- return (
185
- <WeekNavigator
186
- currentDate={date}
187
- onDateChange={setDate}
188
- onWeekChange={(start, end) => {
189
- console.log('Week:', start, 'to', end)
190
- }}
191
- />
192
- )
193
- }
194
- ```
63
+ ### 📊 Data Display
64
+ - **DataTable** - Powerful table with sorting and pagination (no dependencies!)
65
+ - **DataGrid** - Advanced grid system with modular components
195
66
 
196
- **Props:**
197
- - `currentDate`: Current date in view
198
- - `onDateChange`: Callback when date changes
199
- - `onWeekChange`: Callback with week start/end dates
67
+ ### 🎨 UI Components
68
+ - **Button** - Multiple variants and sizes
69
+ - **Card** - Container with header, content, footer
70
+ - **Input** - Form text input
71
+ - **Checkbox** - Accessible checkbox
72
+ - **Select** - Dropdown select
73
+ - **Modal** - Dialog overlay
74
+ - **DropdownMenu** - Accessible dropdown menu
75
+ - **Table** - Basic table components
76
+ - **Popover** - Floating content
77
+ - **Label** - Form labels
78
+ - **Separator** - Visual divider
200
79
 
201
- ---
80
+ 👉 See **[Components Reference](./COMPONENTS.md)** for detailed documentation
202
81
 
203
- ### Schedule
82
+ ## 💡 Component Examples
204
83
 
205
- Weekly schedule view with time slots.
84
+ ### Calendar with Holidays
206
85
 
207
86
  ```tsx
208
- import { Schedule } from '@ttianqii/takaui'
87
+ import { Calendar } from '@ttianqii/takaui'
209
88
 
210
- function App() {
211
- return (
212
- <Schedule
213
- events={[
214
- {
215
- id: '1',
216
- title: 'Meeting',
217
- start: new Date('2024-01-15T10:00:00'),
218
- end: new Date('2024-01-15T11:00:00'),
219
- }
220
- ]}
221
- onEventClick={(event) => console.log(event)}
222
- />
223
- )
224
- }
89
+ <Calendar
90
+ selected={date}
91
+ onSelect={setDate}
92
+ holidays={['US', 'GB']}
93
+ />
225
94
  ```
226
95
 
227
- **Props:**
228
- - `events`: Array of event objects
229
- - `onEventClick`: Callback when event is clicked
230
-
231
- ---
232
-
233
- ### DataTable
234
-
235
- Powerful data table with sorting, filtering, and pagination.
96
+ ### Data Table
236
97
 
237
98
  ```tsx
238
- import { DataTable } from '@ttianqii/takaui'
239
- import { ColumnDef } from '@tanstack/react-table'
240
-
241
- interface User {
242
- id: string
243
- name: string
244
- email: string
245
- }
99
+ import { DataTable, DataTableColumn } from '@ttianqii/takaui'
246
100
 
247
- const columns: ColumnDef<User>[] = [
248
- {
249
- accessorKey: 'name',
250
- header: 'Name',
251
- },
252
- {
253
- accessorKey: 'email',
254
- header: 'Email',
255
- },
101
+ const columns: DataTableColumn<User>[] = [
102
+ { id: 'name', accessorKey: 'name', header: 'Name' },
103
+ { id: 'email', accessorKey: 'email', header: 'Email' },
256
104
  ]
257
105
 
258
- function App() {
259
- const data: User[] = [
260
- { id: '1', name: 'John Doe', email: 'john@example.com' },
261
- { id: '2', name: 'Jane Smith', email: 'jane@example.com' },
262
- ]
263
-
264
- return <DataTable columns={columns} data={data} />
265
- }
106
+ <DataTable columns={columns} data={users} />
266
107
  ```
267
108
 
268
- **Required peer dependency:**
269
- ```bash
270
- npm install @tanstack/react-table
271
- ```
272
-
273
- **Props:**
274
- - `columns`: Column definitions (TanStack Table format)
275
- - `data`: Array of data objects
276
- - `enableSorting`: Enable column sorting (default: true)
277
- - `enableFiltering`: Enable filtering (default: true)
278
-
279
- ---
280
-
281
- ### DropdownMenu
282
-
283
- Accessible dropdown menu component.
109
+ ### Time Picker
284
110
 
285
111
  ```tsx
286
- import { DropdownMenu } from '@ttianqii/takaui'
112
+ import { TimePicker } from '@ttianqii/takaui'
287
113
 
288
- function App() {
289
- return (
290
- <DropdownMenu
291
- trigger={<button>Options</button>}
292
- items={[
293
- { label: 'Edit', onClick: () => console.log('Edit') },
294
- { label: 'Delete', onClick: () => console.log('Delete') },
295
- { type: 'separator' },
296
- { label: 'Archive', onClick: () => console.log('Archive') },
297
- ]}
298
- />
299
- )
300
- }
114
+ <TimePicker value="14:30" onChange={setTime} />
301
115
  ```
302
116
 
303
- **Props:**
304
- - `trigger`: Trigger element
305
- - `items`: Array of menu items
306
-
307
- ---
308
-
309
- ## UI Components
310
-
311
- TakaUI also exports low-level UI primitives:
117
+ ### Button Variants
312
118
 
313
119
  ```tsx
314
- import {
315
- Button,
316
- Card,
317
- Checkbox,
318
- Input,
319
- Label,
320
- Modal,
321
- Popover,
322
- Select,
323
- Separator,
324
- Table,
325
- } from '@ttianqii/takaui'
326
- ```
120
+ import { Button } from '@ttianqii/takaui'
327
121
 
328
- ### Button
329
-
330
- ```tsx
331
- <Button variant="default" size="default">
332
- Click me
333
- </Button>
122
+ <Button variant="default">Primary</Button>
123
+ <Button variant="destructive">Delete</Button>
124
+ <Button variant="outline">Outline</Button>
125
+ <Button variant="ghost">Ghost</Button>
334
126
  ```
335
127
 
336
- **Variants:** `default`, `destructive`, `outline`, `secondary`, `ghost`, `link`
337
- **Sizes:** `default`, `sm`, `lg`, `icon`
128
+ ## 🛠️ Requirements
338
129
 
339
- ### Card
130
+ - React 18.x or 19.x
131
+ - Tailwind CSS 3.x
132
+ - TypeScript (optional but recommended)
340
133
 
341
- ```tsx
342
- <Card>
343
- <Card.Header>
344
- <Card.Title>Card Title</Card.Title>
345
- </Card.Header>
346
- <Card.Content>
347
- Content goes here
348
- </Card.Content>
349
- </Card>
350
- ```
134
+ ## 🎨 Customization
351
135
 
352
- ### Input
136
+ All components accept `className` for custom styling:
353
137
 
354
138
  ```tsx
355
- <Input
356
- type="email"
357
- placeholder="Email"
358
- value={email}
359
- onChange={(e) => setEmail(e.target.value)}
360
- />
139
+ <Button className="bg-purple-500 hover:bg-purple-600">
140
+ Custom Style
141
+ </Button>
361
142
  ```
362
143
 
363
- ### Modal
144
+ ## 📝 TypeScript Support
145
+
146
+ TakaUI is built with TypeScript and includes full type definitions:
364
147
 
365
148
  ```tsx
366
- <Modal
367
- open={isOpen}
368
- onOpenChange={setIsOpen}
369
- title="Modal Title"
370
- >
371
- <p>Modal content</p>
372
- </Modal>
149
+ import type {
150
+ ButtonProps,
151
+ DatePickerProps,
152
+ DataTableColumn,
153
+ } from '@ttianqii/takaui'
373
154
  ```
374
155
 
375
- ## Utilities
376
-
377
- ```tsx
378
- import { cn } from '@ttianqii/takaui'
156
+ ## 🤝 Contributing
379
157
 
380
- // Merge Tailwind classes
381
- const className = cn('text-red-500', isActive && 'font-bold')
382
- ```
158
+ Contributions welcome! Please open an issue or submit a PR on [GitHub](https://github.com/ttianqii/takaui).
383
159
 
384
- ## TypeScript
160
+ ## 📄 License
385
161
 
386
- TakaUI is built with TypeScript and includes full type definitions.
162
+ MIT © [ttianqii](https://github.com/ttianqii)
387
163
 
388
- ## License
164
+ ## 🔗 Links
389
165
 
390
- MIT
166
+ - [npm Package](https://www.npmjs.com/package/@ttianqii/takaui)
167
+ - [GitHub Repository](https://github.com/ttianqii/takaui)
168
+ - [Report Issues](https://github.com/ttianqii/takaui/issues)
391
169
 
392
- ## Support
170
+ ---
393
171
 
394
- For issues and questions, visit [GitHub](https://github.com/ttianqii/takaui)
172
+ Made with ❤️ using React, TypeScript, and Tailwind CSS
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
2
  import { ClassValue } from 'clsx';
3
- import { Column } from '@tanstack/react-table';
4
3
  import { default as default_2 } from 'react';
5
4
  import * as DialogPrimitive from '@radix-ui/react-dialog';
6
5
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
@@ -10,7 +9,6 @@ import * as PopoverPrimitive from '@radix-ui/react-popover';
10
9
  import * as React_2 from 'react';
11
10
  import { ReactNode } from 'react';
12
11
  import * as SelectPrimitive from '@radix-ui/react-select';
13
- import { Table as Table_2 } from '@tanstack/react-table';
14
12
 
15
13
  export declare const Button: React_2.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
16
14
 
@@ -354,14 +352,6 @@ declare interface SeparatorProps extends React_2.HTMLAttributes<HTMLDivElement>
354
352
  decorative?: boolean;
355
353
  }
356
354
 
357
- export declare function SortableHeader<TData, TValue>({ column, title, align, className, }: SortableHeaderProps<TData, TValue>): JSX.Element;
358
-
359
- export declare interface SortableHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {
360
- column: Column<TData, TValue>;
361
- title: string;
362
- align?: "left" | "center" | "right";
363
- }
364
-
365
355
  export declare function Table({ className, variant, ...props }: React_2.ComponentProps<"table"> & {
366
356
  variant?: TableVariant;
367
357
  }): JSX.Element;
@@ -372,42 +362,16 @@ export declare function TableCaption({ className, ...props }: React_2.ComponentP
372
362
 
373
363
  export declare function TableCell({ className, ...props }: React_2.ComponentProps<"td">): JSX.Element;
374
364
 
375
- export declare function TableContent(): JSX.Element;
376
-
377
365
  export declare function TableFooter({ className, ...props }: React_2.ComponentProps<"tfoot">): JSX.Element;
378
366
 
379
367
  export declare function TableHead({ className, ...props }: React_2.ComponentProps<"th">): JSX.Element;
380
368
 
381
369
  export declare function TableHeader({ className, ...props }: React_2.ComponentProps<"thead">): JSX.Element;
382
370
 
383
- export declare function TableNavigator({ rowsPerPageOptions, showPageSelector, showRecordInfo, showControls, }?: TableNavigatorProps): JSX.Element;
384
-
385
- export declare interface TableNavigatorProps {
386
- rowsPerPageOptions?: number[];
387
- showPageSelector?: boolean;
388
- showRecordInfo?: boolean;
389
- showControls?: boolean;
390
- }
391
-
392
- export declare function TableRoot<TData>({ table, totalRecords, children }: TableRootProps<TData>): JSX.Element;
393
-
394
- declare interface TableRootProps<TData> {
395
- table: Table_2<TData>;
396
- totalRecords: number;
397
- children: React_2.ReactNode;
398
- }
399
-
400
371
  export declare function TableRow({ className, ...props }: React_2.ComponentProps<"tr">): JSX.Element;
401
372
 
402
373
  declare type TableVariant = "default" | "clean";
403
374
 
404
- export declare function TableWrapper({ children, className }: TableWrapperProps): JSX.Element;
405
-
406
- declare interface TableWrapperProps {
407
- children: React_2.ReactNode;
408
- className?: string;
409
- }
410
-
411
375
  export declare const TimePicker: default_2.FC<TimePickerProps>;
412
376
 
413
377
  declare interface TimePickerProps {