@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.
@@ -118,63 +118,96 @@ export const IconOrientations = () => (
118
118
  );
119
119
  ```
120
120
 
121
- ### **Available Icons**
122
-
123
- The icon library includes a comprehensive set of icons organized by category:
124
-
125
- **Navigation & Actions:**
126
- - `ArrowIcon` - Directional arrows with orientation support
127
- - `ChevronIcon` - Chevron arrows for dropdowns and navigation
128
- - `CloseIcon` - Close/X icon for modals and dismissible elements
129
- - `MenuIcon` - Hamburger menu icon
130
- - `BackIcon` - Back navigation arrow
131
- - `ForwardIcon` - Forward navigation arrow
132
-
133
- **File & Media:**
134
- - `UploadIcon` - File upload indicator
135
- - `DownloadIcon` - File download indicator
136
- - `ImageIcon` - Image file representation
137
- - `VideoIcon` - Video file representation
138
- - `FileIcon` - Generic file representation
139
- - `FolderIcon` - Folder/directory representation
140
- - `AttachmentIcon` - File attachment indicator
141
-
142
- **User Interface:**
143
- - `EditIcon` - Edit/pencil icon for editing actions
144
- - `DeleteIcon` / `DustBinIcon` - Delete/trash actions
145
- - `CopyIcon` - Copy to clipboard actions
146
- - `SearchIcon` - Search functionality
147
- - `FilterIcon` - Filter/sort functionality
148
- - `SettingsIcon` - Settings and configuration
149
- - `InfoIcon` - Information and help
150
- - `WarningIcon` - Warning and alert states
151
- - `ErrorIcon` - Error states
152
- - `CheckIcon` - Success and confirmation
153
- - `PlusIcon` - Add/create actions
154
- - `MinusIcon` - Remove/subtract actions
155
-
156
- **Social & Communication:**
157
- - `FacebookIcon` - Facebook social media
158
- - `XIcon` - X (Twitter) social media
159
- - `MessageIcon` - Chat and messaging
160
- - `MailIcon` - Email communication
161
- - `PhoneIcon` - Phone and calling
162
- - `ShareIcon` - Share functionality
163
-
164
- **Media Controls:**
165
- - `PlayIcon` - Play media content
166
- - `PauseIcon` - Pause media content
167
- - `StopIcon` - Stop media content
168
- - `VolumeIcon` - Audio volume control
169
- - `MuteIcon` - Mute audio
170
-
171
- **Status & Indicators:**
172
- - `LoadingSpinnerIcon` - Loading and progress states
173
- - `StarIcon` - Ratings and favorites
174
- - `HeartIcon` - Likes and favorites
175
- - `BookmarkIcon` - Bookmarks and saved items
176
- - `BellIcon` - Notifications
177
- - `BadgeIcon` - Status badges
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
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@app-studio/web",
3
- "version": "0.9.45",
3
+ "version": "0.9.47",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/components/index.d.ts",
6
6
  "files": [
@@ -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
-