@app-studio/web 0.9.45 → 0.9.47
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/dist/components/Button/Button/Button.style.d.ts +1 -1
- package/dist/components/Icon/Icon.d.ts +2 -1
- package/dist/web.cjs.development.js +538 -445
- package/dist/web.cjs.development.js.map +1 -1
- package/dist/web.cjs.production.min.js +1 -1
- package/dist/web.cjs.production.min.js.map +1 -1
- package/dist/web.esm.js +538 -446
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +538 -445
- package/dist/web.umd.development.js.map +1 -1
- package/dist/web.umd.production.min.js +1 -1
- package/dist/web.umd.production.min.js.map +1 -1
- package/docs/components/Icon.mdx +90 -57
- package/docs/components.md +0 -164
- package/package.json +1 -1
- package/docs/components/Calendar.mdx +0 -189
- package/docs/components/Flow.mdx +0 -258
- package/docs/components/KanbanBoard.mdx +0 -286
- package/docs/components/OKR.mdx +0 -452
- package/docs/components/Tree.mdx +0 -341
package/docs/components/Icon.mdx
CHANGED
|
@@ -118,63 +118,96 @@ export const IconOrientations = () => (
|
|
|
118
118
|
);
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
### **Available Icons**
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
- `
|
|
127
|
-
- `
|
|
128
|
-
- `
|
|
129
|
-
- `
|
|
130
|
-
- `
|
|
131
|
-
- `
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
- `
|
|
135
|
-
- `
|
|
136
|
-
- `
|
|
137
|
-
- `
|
|
138
|
-
- `
|
|
139
|
-
- `
|
|
140
|
-
- `
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
- `
|
|
144
|
-
- `
|
|
145
|
-
- `
|
|
146
|
-
- `
|
|
147
|
-
- `
|
|
148
|
-
- `
|
|
149
|
-
- `
|
|
150
|
-
- `
|
|
151
|
-
- `
|
|
152
|
-
- `
|
|
153
|
-
- `
|
|
154
|
-
- `
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
- `
|
|
158
|
-
- `
|
|
159
|
-
- `
|
|
160
|
-
- `
|
|
161
|
-
- `
|
|
162
|
-
- `
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- `
|
|
166
|
-
- `
|
|
167
|
-
- `
|
|
168
|
-
- `
|
|
169
|
-
- `
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
- `
|
|
173
|
-
- `
|
|
174
|
-
- `
|
|
175
|
-
- `
|
|
176
|
-
- `
|
|
177
|
-
- `
|
|
121
|
+
### **Available Icons (complete list)**
|
|
122
|
+
|
|
123
|
+
Below is the complete list of exported icons with short English descriptions. Use the "Icon Grid Display" example to preview them.
|
|
124
|
+
|
|
125
|
+
- `ArrowIcon` — Directional arrow with orientation (up/right/down/left).
|
|
126
|
+
- `AttachmentIcon` — Attach a file (paperclip).
|
|
127
|
+
- `AudioIcon` — Speaker with sound waves (audio on).
|
|
128
|
+
- `BatteryIcon` — Battery/energy status.
|
|
129
|
+
- `BluetoothIcon` — Bluetooth logo, wireless connectivity.
|
|
130
|
+
- `BoldArrowIcon` — Thick arrow for primary action.
|
|
131
|
+
- `BookmarkIcon` — Bookmark / saved item.
|
|
132
|
+
- `CalendarIcon` — Calendar / date / agenda.
|
|
133
|
+
- `CameraIcon` — Camera / image capture.
|
|
134
|
+
- `ChartIcon` — Document with lines, report/graph context.
|
|
135
|
+
- `CheckIcon` — Validation / success (tick).
|
|
136
|
+
- `ChevronIcon` — Chevron (navigation, expand/collapse).
|
|
137
|
+
- `ClockIcon` — Clock / time / deadlines.
|
|
138
|
+
- `CloseEyeIcon` — Eye-off, hide/mask content.
|
|
139
|
+
- `CloseIcon` — Close / dismiss (cross).
|
|
140
|
+
- `CloudIcon` — Cloud / storage / weather.
|
|
141
|
+
- `CopyIcon` — Copy to clipboard.
|
|
142
|
+
- `CropIcon` — Crop tool / image cropping.
|
|
143
|
+
- `DeleteIcon` — Delete / trash.
|
|
144
|
+
- `DocumentIcon` — Document/file with lines.
|
|
145
|
+
- `DragHandleIcon` — Drag handle (grid of dots).
|
|
146
|
+
- `DragHandleLinesIcon` — Drag handle (two lines).
|
|
147
|
+
- `DustBinIcon` — Trash bin (alias of Delete).
|
|
148
|
+
- `EditIcon` — Edit/modify (pencil).
|
|
149
|
+
- `ErrorIcon` — Error / critical state.
|
|
150
|
+
- `ExternalLinkIcon` — Open in new tab / external link.
|
|
151
|
+
- `FacebookIcon` — Facebook social network.
|
|
152
|
+
- `FileIcon` — Generic file.
|
|
153
|
+
- `FilterIcon` — Filter / sort.
|
|
154
|
+
- `FolderIcon` — Folder / directory.
|
|
155
|
+
- `GiftIcon` — Gift / reward / promo.
|
|
156
|
+
- `HeartIcon` — Like / favorite / love.
|
|
157
|
+
- `HelpIcon` — Help / support / question mark.
|
|
158
|
+
- `HomeIcon` — Home / main page.
|
|
159
|
+
- `ImageIcon` — Image / media.
|
|
160
|
+
- `InfoIcon` — Information / details.
|
|
161
|
+
- `InstagramIcon` — Instagram social network.
|
|
162
|
+
- `LikeIcon` — Thumbs up / like.
|
|
163
|
+
- `LinkedinIcon` — LinkedIn social network.
|
|
164
|
+
- `LoadingSpinnerIcon` — Loading / in progress.
|
|
165
|
+
- `LocationIcon` — Location / pin.
|
|
166
|
+
- `LockIcon` — Locked / secure.
|
|
167
|
+
- `LogoutIcon` — Logout / sign out.
|
|
168
|
+
- `MagicWandIcon` — Assistant / automation / magic.
|
|
169
|
+
- `MenuIcon` — Hamburger menu.
|
|
170
|
+
- `MicrophoneIcon` — Microphone / audio input.
|
|
171
|
+
- `MinusIcon` — Minus / reduce / remove.
|
|
172
|
+
- `MoonIcon` — Moon / dark mode / night.
|
|
173
|
+
- `NotificationIcon` — Notifications / alert.
|
|
174
|
+
- `OpenEyeIcon` — Eye-on, show/visibility.
|
|
175
|
+
- `PanelIcon` — Layout with side panel.
|
|
176
|
+
- `PauseIcon` — Pause media.
|
|
177
|
+
- `PlayIcon` — Play media.
|
|
178
|
+
- `PlusIcon` — Plus / add / create.
|
|
179
|
+
- `PowerOffIcon` — Power / turn off.
|
|
180
|
+
- `PrintIcon` — Print.
|
|
181
|
+
- `ProfileIcon` — Profile / user.
|
|
182
|
+
- `RefreshIcon` — Refresh / reload.
|
|
183
|
+
- `RotateIcon` — Rotate / pivot.
|
|
184
|
+
- `SaveIcon` — Save / persist.
|
|
185
|
+
- `SearchIcon` — Search.
|
|
186
|
+
- `SendIcon` — Send (paper plane).
|
|
187
|
+
- `SettingsIcon` — Settings / configuration.
|
|
188
|
+
- `ShapeIcon` — Shapes (rectangle/circle/polygon).
|
|
189
|
+
- `ShieldIcon` — Shield / protection / security.
|
|
190
|
+
- `SliderIcon` — Slider controls.
|
|
191
|
+
- `SpinnerIcon` — Circular progress indicator.
|
|
192
|
+
- `StarIcon` — Star / rating / favorite.
|
|
193
|
+
- `StopIcon` — Stop media (square).
|
|
194
|
+
- `SuccessIcon` — Success / validated (circle + tick).
|
|
195
|
+
- `TextIcon` — Text / title.
|
|
196
|
+
- `ThreadsIcon` — Threads social network.
|
|
197
|
+
- `TickIcon` — Checkmark / validated.
|
|
198
|
+
- `TrashIcon` — Trash (alias of Delete).
|
|
199
|
+
- `TwitchIcon` — Twitch platform.
|
|
200
|
+
- `TwitterIcon` — Twitter/X social network.
|
|
201
|
+
- `UploadIcon` — Upload / send a file.
|
|
202
|
+
- `UnLikeIcon` — Thumbs down / dislike.
|
|
203
|
+
- `UnlockIcon` — Unlock / access.
|
|
204
|
+
- `UserIcon` — User / account.
|
|
205
|
+
- `VideoIcon` — Video / media.
|
|
206
|
+
- `WifiIcon` — Wi‑Fi network.
|
|
207
|
+
- `XIcon` — X social network.
|
|
208
|
+
- `YoutubeIcon` — YouTube platform.
|
|
209
|
+
- `ZoomInIcon` — Zoom in.
|
|
210
|
+
- `ZoomOutIcon` — Zoom out.
|
|
178
211
|
|
|
179
212
|
### **Icon Usage in Components**
|
|
180
213
|
```tsx
|
package/docs/components.md
CHANGED
|
@@ -297,167 +297,3 @@ const TooltipExample = () => (
|
|
|
297
297
|
);
|
|
298
298
|
```
|
|
299
299
|
|
|
300
|
-
## V. Data Display Components
|
|
301
|
-
|
|
302
|
-
### Calendar
|
|
303
|
-
|
|
304
|
-
A component for displaying dates and allowing users to select a single date or a date range.
|
|
305
|
-
|
|
306
|
-
**Example:**
|
|
307
|
-
```tsx
|
|
308
|
-
import { Calendar } from '@app-studio';
|
|
309
|
-
import { useState } from 'react';
|
|
310
|
-
|
|
311
|
-
const CalendarExample = () => {
|
|
312
|
-
const [selectedDate, setSelectedDate] = useState(new Date());
|
|
313
|
-
|
|
314
|
-
return (
|
|
315
|
-
<Calendar
|
|
316
|
-
value={selectedDate}
|
|
317
|
-
onChange={setSelectedDate}
|
|
318
|
-
/>
|
|
319
|
-
);
|
|
320
|
-
};
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
### Kanban Card
|
|
324
|
-
|
|
325
|
-
A draggable card component designed for use within a Kanban board. It displays key information and can be customized.
|
|
326
|
-
|
|
327
|
-
**Example:**
|
|
328
|
-
```tsx
|
|
329
|
-
import { KanbanCard } from '@app-studio';
|
|
330
|
-
|
|
331
|
-
const KanbanCardExample = () => (
|
|
332
|
-
<KanbanCard
|
|
333
|
-
id="task-1"
|
|
334
|
-
title="Design the new dashboard"
|
|
335
|
-
description="Create mockups in Figma for the v2 dashboard."
|
|
336
|
-
tags={[{ label: 'UI/UX', color: 'blue' }, { label: 'High Priority', color: 'red' }]}
|
|
337
|
-
assignee={{ name: 'Jane Doe', avatarUrl: '/avatars/jane.png' }}
|
|
338
|
-
/>
|
|
339
|
-
);
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
### Tree
|
|
343
|
-
|
|
344
|
-
A component for displaying hierarchical data with expandable/collapsible nodes. Supports both a compound component pattern and a data-driven approach.
|
|
345
|
-
|
|
346
|
-
**Example:**
|
|
347
|
-
```tsx
|
|
348
|
-
import { Tree } from '@app-studio/web';
|
|
349
|
-
import { FolderIcon, FileIcon } from '@app-studio/web';
|
|
350
|
-
|
|
351
|
-
const FileTreeExample = () => {
|
|
352
|
-
const treeData = [
|
|
353
|
-
{
|
|
354
|
-
id: 'root',
|
|
355
|
-
label: 'Project',
|
|
356
|
-
icon: <FolderIcon size={16} />,
|
|
357
|
-
children: [
|
|
358
|
-
{
|
|
359
|
-
id: 'src',
|
|
360
|
-
label: 'src',
|
|
361
|
-
icon: <FolderIcon size={16} />,
|
|
362
|
-
children: [
|
|
363
|
-
{ id: 'components', label: 'components', icon: <FileIcon size={16} /> },
|
|
364
|
-
{ id: 'utils', label: 'utils', icon: <FileIcon size={16} /> },
|
|
365
|
-
],
|
|
366
|
-
},
|
|
367
|
-
],
|
|
368
|
-
},
|
|
369
|
-
];
|
|
370
|
-
|
|
371
|
-
return (
|
|
372
|
-
<Tree
|
|
373
|
-
items={treeData}
|
|
374
|
-
defaultExpandedItems={['root', 'src']}
|
|
375
|
-
onItemSelect={(itemId) => console.log(`Selected: ${itemId}`)}
|
|
376
|
-
/>
|
|
377
|
-
);
|
|
378
|
-
};
|
|
379
|
-
```
|
|
380
|
-
|
|
381
|
-
For detailed documentation, see [Tree Component](./components/Tree.mdx).
|
|
382
|
-
|
|
383
|
-
### Flow
|
|
384
|
-
|
|
385
|
-
A component for creating interactive workflow diagrams and flowcharts with support for node connections, drag-and-drop functionality, and viewport controls.
|
|
386
|
-
|
|
387
|
-
**Example:**
|
|
388
|
-
```tsx
|
|
389
|
-
import { Flow } from '@app-studio/web';
|
|
390
|
-
import { useState } from 'react';
|
|
391
|
-
|
|
392
|
-
const FlowExample = () => {
|
|
393
|
-
const [nodes, setNodes] = useState([
|
|
394
|
-
{
|
|
395
|
-
id: 'node-1',
|
|
396
|
-
position: { x: 50, y: 50 },
|
|
397
|
-
data: { label: 'Start Node', subtitle: 'Begin here' },
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
id: 'node-2',
|
|
401
|
-
position: { x: 50, y: 200 },
|
|
402
|
-
data: { label: 'Process Node', subtitle: 'Do something' },
|
|
403
|
-
},
|
|
404
|
-
]);
|
|
405
|
-
|
|
406
|
-
const [edges, setEdges] = useState([
|
|
407
|
-
{ id: 'edge-1-2', source: 'node-1', target: 'node-2' },
|
|
408
|
-
]);
|
|
409
|
-
|
|
410
|
-
return (
|
|
411
|
-
<Flow
|
|
412
|
-
nodes={nodes}
|
|
413
|
-
edges={edges}
|
|
414
|
-
onNodesChange={setNodes}
|
|
415
|
-
onEdgesChange={setEdges}
|
|
416
|
-
/>
|
|
417
|
-
);
|
|
418
|
-
};
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
For detailed documentation, see [Flow Component](./components/Flow.mdx).
|
|
422
|
-
|
|
423
|
-
### OKR
|
|
424
|
-
|
|
425
|
-
A component for displaying and tracking Objectives and Key Results (OKRs). Provides a comprehensive view of progress, status, and ownership for strategic goals.
|
|
426
|
-
|
|
427
|
-
**Example:**
|
|
428
|
-
```tsx
|
|
429
|
-
import { OKR } from '@app-studio/web';
|
|
430
|
-
|
|
431
|
-
const OKRExample = () => {
|
|
432
|
-
const objectives = [
|
|
433
|
-
{
|
|
434
|
-
id: '1',
|
|
435
|
-
title: 'Launch New Feature',
|
|
436
|
-
description: 'Successfully launch the new feature to all users.',
|
|
437
|
-
owner: 'John Doe',
|
|
438
|
-
timeframe: 'Q4 2025',
|
|
439
|
-
tags: ['new-feature', 'launch'],
|
|
440
|
-
progress: 50,
|
|
441
|
-
status: 'onTrack',
|
|
442
|
-
keyResults: [
|
|
443
|
-
{
|
|
444
|
-
id: '1.1',
|
|
445
|
-
title: 'Complete development',
|
|
446
|
-
progress: 80,
|
|
447
|
-
status: 'onTrack',
|
|
448
|
-
},
|
|
449
|
-
{
|
|
450
|
-
id: '1.2',
|
|
451
|
-
title: 'Complete QA testing',
|
|
452
|
-
progress: 40,
|
|
453
|
-
status: 'atRisk',
|
|
454
|
-
},
|
|
455
|
-
],
|
|
456
|
-
},
|
|
457
|
-
];
|
|
458
|
-
|
|
459
|
-
return <OKR objectives={objectives} />;
|
|
460
|
-
};
|
|
461
|
-
```
|
|
462
|
-
|
|
463
|
-
For detailed documentation, see [OKR Component](./components/OKR.mdx).
|
package/package.json
CHANGED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
# Calendar
|
|
2
|
-
|
|
3
|
-
A flexible calendar component with day, week, and month views for displaying and managing events. Features intelligent navigation (day-by-day, week-by-week, month-by-month), interactive hover cards for events and days, custom event rendering, and comprehensive styling customization.
|
|
4
|
-
|
|
5
|
-
### **Import**
|
|
6
|
-
```tsx
|
|
7
|
-
import { Calendar } from '@app-studio/web';
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
### **Default**
|
|
11
|
-
```tsx
|
|
12
|
-
import React from 'react';
|
|
13
|
-
import { Calendar } from '@app-studio/web';
|
|
14
|
-
|
|
15
|
-
export const DefaultCalendar = () => {
|
|
16
|
-
return <Calendar />;
|
|
17
|
-
};
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### **With Events**
|
|
21
|
-
Display events in the calendar with customizable event objects. Hover over events to see detailed information in a popup card, and hover over day cells to see a summary of the day's events.
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
import React from 'react';
|
|
25
|
-
import { Calendar } from '@app-studio/web';
|
|
26
|
-
import { CalendarEvent } from '@app-studio/web';
|
|
27
|
-
|
|
28
|
-
export const CalendarWithEvents = () => {
|
|
29
|
-
const events: CalendarEvent[] = [
|
|
30
|
-
{
|
|
31
|
-
id: 1,
|
|
32
|
-
title: 'Team Meeting',
|
|
33
|
-
start: new Date(2025, 9, 15, 10, 0),
|
|
34
|
-
end: new Date(2025, 9, 15, 11, 0),
|
|
35
|
-
description: 'Weekly team sync-up',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
id: 2,
|
|
39
|
-
title: 'Project Deadline',
|
|
40
|
-
start: new Date(2025, 9, 18, 17, 0),
|
|
41
|
-
description: 'Submit final deliverables',
|
|
42
|
-
},
|
|
43
|
-
];
|
|
44
|
-
|
|
45
|
-
return <Calendar events={events} />;
|
|
46
|
-
};
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Interactive Features:**
|
|
50
|
-
- **Event Hover Cards**: Hover over any event to see full details including title, date, time, and description
|
|
51
|
-
- **Smart Navigation**: Navigation buttons automatically adapt to the current view (Previous/Next Day, Week, or Month)
|
|
52
|
-
- **Fixed Cell Dimensions**: All day cells maintain consistent width (minimum 180px) and height for uniform layout
|
|
53
|
-
- **Scrollable Content**: Events within each day cell scroll independently while maintaining cell dimensions
|
|
54
|
-
|
|
55
|
-
### **Day View**
|
|
56
|
-
Show a single day with all events for that day.
|
|
57
|
-
|
|
58
|
-
```tsx
|
|
59
|
-
import React from 'react';
|
|
60
|
-
import { Calendar } from '@app-studio/web';
|
|
61
|
-
|
|
62
|
-
export const DayViewCalendar = () => {
|
|
63
|
-
return <Calendar initialView="day" />;
|
|
64
|
-
};
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### **Week View**
|
|
68
|
-
Display a full week with events across all days.
|
|
69
|
-
|
|
70
|
-
```tsx
|
|
71
|
-
import React from 'react';
|
|
72
|
-
import { Calendar } from '@app-studio/web';
|
|
73
|
-
|
|
74
|
-
export const WeekViewCalendar = () => {
|
|
75
|
-
return <Calendar initialView="week" />;
|
|
76
|
-
};
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### **Month View**
|
|
80
|
-
Show the entire month with events distributed across days.
|
|
81
|
-
|
|
82
|
-
```tsx
|
|
83
|
-
import React from 'react';
|
|
84
|
-
import { Calendar } from '@app-studio/web';
|
|
85
|
-
|
|
86
|
-
export const MonthViewCalendar = () => {
|
|
87
|
-
return <Calendar initialView="month" />;
|
|
88
|
-
};
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### **Week Starts On**
|
|
92
|
-
Configure which day the week starts on (0 = Sunday, 1 = Monday, etc.).
|
|
93
|
-
|
|
94
|
-
```tsx
|
|
95
|
-
import React from 'react';
|
|
96
|
-
import { Calendar } from '@app-studio/web';
|
|
97
|
-
|
|
98
|
-
export const WeekStartsOnMonday = () => {
|
|
99
|
-
return <Calendar weekStartsOn={1} />;
|
|
100
|
-
};
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### **Custom Styles**
|
|
104
|
-
Customize the appearance of calendar elements using the `views` prop.
|
|
105
|
-
|
|
106
|
-
## Props
|
|
107
|
-
|
|
108
|
-
| Prop | Type | Description | Default |
|
|
109
|
-
| --- | --- | --- | --- |
|
|
110
|
-
| `events` | `CalendarEvent[]` | Array of events to display. | `[]` |
|
|
111
|
-
| `initialDate` | `Date \| string` | Initial date to display (ISO string or Date object). | `new Date()` |
|
|
112
|
-
| `initialView` | `'day' \| 'week' \| 'month'` | Initial view to display. | `'month'` |
|
|
113
|
-
| `weekStartsOn` | `0-6` | Day the week starts on (0 = Sunday, 1 = Monday). | `0` |
|
|
114
|
-
| `onEventDrop` | `(event: CalendarEvent) => void` | Callback when an event is moved to a new date. | - |
|
|
115
|
-
| `onEventResize` | `(event: CalendarEvent) => void` | Callback when an event is resized. | - |
|
|
116
|
-
| `onEventAdd` | `(start: string, end: string) => void` | Callback when a date is double-clicked to add an event. | - |
|
|
117
|
-
| `onEventTitleChange` | `(event: CalendarEvent, newTitle: string) => void` | Callback when an event's title is changed. | - |
|
|
118
|
-
| `onEventDescriptionChange` | `(event: CalendarEvent, newDescription: string) => void` | Callback when an event's description is changed. | - |
|
|
119
|
-
| `onEventDelete` | `(event: CalendarEvent) => void` | Callback when an event is deleted. | - |
|
|
120
|
-
| `onDateClick` | `(date: string) => void` | Callback when a date is clicked. | - |
|
|
121
|
-
| `onDateChange` | `(date: Date) => void` | Callback when the visible date range changes. | - |
|
|
122
|
-
| `onViewChange` | `(view: CalendarView) => void` | Callback when the active view changes. | - |
|
|
123
|
-
| `views` | `CalendarViews` | Style overrides for various parts of the component. | `{}` |
|
|
124
|
-
|
|
125
|
-
## CalendarEvent Interface
|
|
126
|
-
|
|
127
|
-
| Property | Type | Description |
|
|
128
|
-
| --- | --- | --- |
|
|
129
|
-
| `id` | `string \| number` | Unique identifier for the event. |
|
|
130
|
-
| `title` | `string` | Event title shown in the calendar. |
|
|
131
|
-
| `start` | `string` | Start date/time in ISO format (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM`). |
|
|
132
|
-
| `end` | `string` | End date/time in ISO format (`YYYY-MM-DD` or `YYYY-MM-DDTHH:MM`). |
|
|
133
|
-
| `color` | `'blue' \| 'red' \| 'green' \| 'purple' \| 'orange'` | Color variant for the event. |
|
|
134
|
-
| `description` | `string` | Optional description (used for tooltips or custom rendering). |
|
|
135
|
-
| `metadata` | `Record<string, unknown>` | Additional metadata for custom logic. |
|
|
136
|
-
|
|
137
|
-
## CalendarViews Interface
|
|
138
|
-
|
|
139
|
-
Customize the appearance of different calendar elements. All elements support the `views` prop for complete customization:
|
|
140
|
-
|
|
141
|
-
### Container & Layout
|
|
142
|
-
- `container` - Main calendar container (ViewProps)
|
|
143
|
-
- `header` - Header section (ViewProps)
|
|
144
|
-
- `grid` - Calendar grid container (ViewProps)
|
|
145
|
-
|
|
146
|
-
### Header Elements
|
|
147
|
-
- `headerTitle` - Title text in header (TextProps)
|
|
148
|
-
- `navigation` - Navigation buttons container (ViewProps)
|
|
149
|
-
- `navigationButton` - Navigation button props (ButtonProps)
|
|
150
|
-
- `viewSwitcher` - View switcher buttons container (ViewProps)
|
|
151
|
-
- `viewButton` - View button props (ButtonProps)
|
|
152
|
-
|
|
153
|
-
### Weekday Header
|
|
154
|
-
- `weekdayRow` - Weekday row container (ViewProps)
|
|
155
|
-
- `weekdayHeader` - Individual weekday header cell (ViewProps)
|
|
156
|
-
- `weekdayLabel` - Weekday label text (TextProps)
|
|
157
|
-
|
|
158
|
-
### Week & Day Structure
|
|
159
|
-
- `weekRow` - Week row container (ViewProps)
|
|
160
|
-
- `dayColumn` - Individual day column/cell (ViewProps)
|
|
161
|
-
- `dayHeader` - Day header within cell (ViewProps)
|
|
162
|
-
- `dayNumber` - Day number text (TextProps)
|
|
163
|
-
- `dayMeta` - Day metadata text (TextProps)
|
|
164
|
-
|
|
165
|
-
### Events
|
|
166
|
-
- `events` - Events container within day (ViewProps)
|
|
167
|
-
- `event` - Individual event container (ViewProps)
|
|
168
|
-
- `eventTitle` - Event title text (TextProps)
|
|
169
|
-
- `eventTime` - Event time text (TextProps)
|
|
170
|
-
- `emptyState` - Empty state text when no events (TextProps)
|
|
171
|
-
|
|
172
|
-
### Example: Complete Customization
|
|
173
|
-
|
|
174
|
-
```tsx
|
|
175
|
-
<Calendar
|
|
176
|
-
events={events}
|
|
177
|
-
views={{
|
|
178
|
-
container: { backgroundColor: 'color.gray.50', padding: 32 },
|
|
179
|
-
headerTitle: { fontSize: 24, color: 'color.primary.700' },
|
|
180
|
-
weekdayRow: { backgroundColor: 'color.primary.50', borderRadius: 8 },
|
|
181
|
-
weekdayLabel: { fontSize: 16, fontWeight: '700' },
|
|
182
|
-
dayColumn: { padding: 20, borderRadius: 16, borderWidth: 2 },
|
|
183
|
-
dayNumber: { fontSize: 20, color: 'color.primary.700' },
|
|
184
|
-
event: { padding: 16, backgroundColor: 'color.primary.100' },
|
|
185
|
-
eventTitle: { fontSize: 16, fontWeight: '700' },
|
|
186
|
-
}}
|
|
187
|
-
/>
|
|
188
|
-
```
|
|
189
|
-
|