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 +77 -4
- package/dist/index.cjs +781 -52
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +179 -0
- package/dist/index.d.cts +64 -1
- package/dist/index.d.ts +64 -1
- package/dist/index.js +750 -23
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
# ssovee-os-web-ui
|
|
2
2
|
|
|
3
|
-
Reusable React UI components for
|
|
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
|
|
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
|
|
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
|
-
##
|
|
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`
|