ssovee-os-web-ui 0.1.23 → 0.1.26

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
@@ -1,16 +1,18 @@
1
1
  # ssovee-os-web-ui
2
2
 
3
- Reusable React UI components for consuming projects.
3
+ Reusable React UI components for building shared desktop-style web experiences.
4
4
 
5
5
  ## Overview
6
6
 
7
- This package provides a shared set of React UI components for SSOVEE applications. It ships component styles through the package stylesheet and includes the Tailwind dependency required by the library.
7
+ This package provides a shared set of React UI components for SSOVEE applications. It includes themed UI primitives, hooks, and desktop-style window wrappers for app-like layouts.
8
8
 
9
9
  ## Features
10
10
 
11
11
  - Ready-to-use React UI components
12
12
  - Packaged theme stylesheet for shared visual tokens
13
- - TypeScript types for the main public components
13
+ - TypeScript support for the main public components
14
+ - Window components for desktop-style app shells
15
+ - Plugin playground support for local plugin testing
14
16
 
15
17
  ## Install
16
18
 
@@ -38,7 +40,7 @@ If your setup prefers CSS imports, this also works:
38
40
  @import "ssovee-os-web-ui/theme.css";
39
41
  ```
40
42
 
41
- ## Use components
43
+ ## Basic usage
42
44
 
43
45
  ```tsx
44
46
  import { Button, Input, Card } from "ssovee-os-web-ui";
@@ -53,6 +55,74 @@ export function Example() {
53
55
  }
54
56
  ```
55
57
 
58
+ ## Window components
59
+
60
+ ### Simple window
61
+
62
+ {% raw %}
63
+ ```tsx
64
+ import { WindowWithoutSideMenu, Typography } from "ssovee-os-web-ui";
65
+
66
+ const app = {
67
+ name: "Notes",
68
+ slug: "notes",
69
+ isActive: true,
70
+ isMinimize: false,
71
+ windowSize: {
72
+ windowSize: { width: 420, height: 320 },
73
+ isAppWindowResizing: false,
74
+ },
75
+ };
76
+
77
+ export function NotesWindow() {
78
+ return (
79
+ <WindowWithoutSideMenu app={app} defaultSize={{ width: 420, height: 320 }}>
80
+ <Typography variant="h6">Notes</Typography>
81
+ </WindowWithoutSideMenu>
82
+ );
83
+ }
84
+ ```
85
+ {% endraw %}
86
+
87
+ ### Window with sidebar menu
88
+
89
+ {% raw %}
90
+ ```tsx
91
+ import { WindowWithSideMenu, Typography, Button } from "ssovee-os-web-ui";
92
+
93
+ const app = {
94
+ name: "Settings",
95
+ slug: "settings",
96
+ isActive: true,
97
+ isMinimize: false,
98
+ windowSize: {
99
+ windowSize: { width: 720, height: 500 },
100
+ isAppWindowResizing: false,
101
+ },
102
+ };
103
+
104
+ export function SettingsWindow() {
105
+ return (
106
+ <WindowWithSideMenu
107
+ app={app}
108
+ defaultSize={{ width: 720, height: 500 }}
109
+ actionButtons={{ title: "Save", onClick: () => console.log("Saved") }}
110
+ menu={{
111
+ title: "Navigation",
112
+ items: [
113
+ { title: "Profile", icon: "👤", onClick: () => console.log("Profile"), isActive: true },
114
+ { title: "Security", icon: "🔒", onClick: () => console.log("Security") },
115
+ ],
116
+ }}
117
+ >
118
+ <Typography variant="h6">Settings</Typography>
119
+ <Button variant="primary">Update</Button>
120
+ </WindowWithSideMenu>
121
+ );
122
+ }
123
+ ```
124
+ {% endraw %}
125
+
56
126
  ## Hooks
57
127
 
58
128
  Hooks are also available through the SDK-style entrypoint:
@@ -92,6 +162,9 @@ The package exports these components and types for external use:
92
162
  - `Tabs`
93
163
  - `Typography`
94
164
  - `ImageWithPlaceholder`
165
+ - `PluginPlayground`
166
+ - `WindowWithSideMenu`
167
+ - `WindowWithoutSideMenu`
95
168
  - `Table` and its subcomponents
96
169
  - `useGridClasses`
97
170
  - `useShortcutFormatter`