@robosophy/ui-react 1.0.1 → 3.0.0
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/AGENTS.md +2 -2
- package/README.md +4 -4
- package/dist/{chunk-AEWPQXHG.js → chunk-DA5JOU36.js} +19 -27
- package/dist/components/RsSidebar/index.css +7 -11
- package/dist/components/RsSidebar/index.js +1 -1
- package/dist/index.css +7 -11
- package/dist/index.js +1 -1
- package/package.json +7 -6
package/AGENTS.md
CHANGED
|
@@ -30,14 +30,14 @@ The main barrel (`@robosophy/ui-react`) loads all components including PrimeReac
|
|
|
30
30
|
PrimeReact apps:
|
|
31
31
|
|
|
32
32
|
```tsx
|
|
33
|
-
import { PrimeReactProvider } from "primereact/
|
|
33
|
+
import { PrimeReactProvider } from "@primereact/core";
|
|
34
34
|
import RobosophyPreset from "@robosophy/prime-theme";
|
|
35
35
|
import "@robosophy/prime-theme/prime.css";
|
|
36
36
|
import "@robosophy/ui-react/styles.css";
|
|
37
37
|
|
|
38
38
|
function MyApp({ Component, pageProps }) {
|
|
39
39
|
return (
|
|
40
|
-
<PrimeReactProvider
|
|
40
|
+
<PrimeReactProvider theme={{ preset: RobosophyPreset }}>
|
|
41
41
|
<Component {...pageProps} />
|
|
42
42
|
</PrimeReactProvider>
|
|
43
43
|
);
|
package/README.md
CHANGED
|
@@ -32,14 +32,14 @@ If your app uses PrimeReact, configure the Robosophy preset and load its tokens/
|
|
|
32
32
|
|
|
33
33
|
```tsx
|
|
34
34
|
// app/layout.tsx or pages/_app.tsx
|
|
35
|
-
import { PrimeReactProvider } from "primereact/
|
|
35
|
+
import { PrimeReactProvider } from "@primereact/core";
|
|
36
36
|
import RobosophyPreset from "@robosophy/prime-theme";
|
|
37
37
|
import "@robosophy/prime-theme/prime.css";
|
|
38
38
|
import "@robosophy/ui-react/styles.css";
|
|
39
39
|
|
|
40
40
|
function MyApp({ Component, pageProps }) {
|
|
41
41
|
return (
|
|
42
|
-
<PrimeReactProvider
|
|
42
|
+
<PrimeReactProvider theme={{ preset: RobosophyPreset }}>
|
|
43
43
|
<Component {...pageProps} />
|
|
44
44
|
</PrimeReactProvider>
|
|
45
45
|
);
|
|
@@ -148,7 +148,7 @@ robosophyMaterialSymbols({
|
|
|
148
148
|
For PrimeReact APIs that receive `icon` as a string, use the helper:
|
|
149
149
|
|
|
150
150
|
```tsx
|
|
151
|
-
import { Button } from "primereact/button";
|
|
151
|
+
import { Button } from "@primereact/ui/button";
|
|
152
152
|
import { rsPrimeIcon } from "@robosophy/ui-react";
|
|
153
153
|
|
|
154
154
|
<Button label="Inicio" icon={rsPrimeIcon("home")} />
|
|
@@ -158,7 +158,7 @@ import { rsPrimeIcon } from "@robosophy/ui-react";
|
|
|
158
158
|
For full control over props (fill, grade, etc.), use the `icon` slot:
|
|
159
159
|
|
|
160
160
|
```tsx
|
|
161
|
-
import { Button } from "primereact/button";
|
|
161
|
+
import { Button } from "@primereact/ui/button";
|
|
162
162
|
import { RsIcon } from "@robosophy/ui-react";
|
|
163
163
|
|
|
164
164
|
<Button label="Favorito" icon={<RsIcon name="favorite" fill color="danger" />} />
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
|
|
5
5
|
// src/components/RsSidebar/RsSidebar.tsx
|
|
6
6
|
import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
7
|
-
import { Menu } from "primereact/menu";
|
|
7
|
+
import { Menu } from "@primereact/ui/menu";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
var variantIconMap = {
|
|
10
10
|
pc: "article",
|
|
@@ -82,22 +82,6 @@ var RsSidebar = forwardRef(
|
|
|
82
82
|
},
|
|
83
83
|
[navigateOnModuleSelect, onModuleSelect]
|
|
84
84
|
);
|
|
85
|
-
const moduleMenuItems = useMemo(
|
|
86
|
-
() => modules.map((module) => {
|
|
87
|
-
const isCurrent = module.active || module.text === displayedHeaderTitle;
|
|
88
|
-
return {
|
|
89
|
-
className: [
|
|
90
|
-
"rs-sidebar__module-option",
|
|
91
|
-
isCurrent ? "rs-sidebar__module-option--active" : "",
|
|
92
|
-
module.disabled || isCurrent ? "rs-sidebar__module-option--disabled" : ""
|
|
93
|
-
].filter(Boolean).join(" "),
|
|
94
|
-
command: () => selectModule(module),
|
|
95
|
-
disabled: module.disabled || isCurrent,
|
|
96
|
-
label: module.text
|
|
97
|
-
};
|
|
98
|
-
}),
|
|
99
|
-
[modules, displayedHeaderTitle, selectModule]
|
|
100
|
-
);
|
|
101
85
|
const displayedItems = useMemo(
|
|
102
86
|
() => activeParent ? (activeParent.children ?? []).filter(isVisible) : visibleItems,
|
|
103
87
|
[activeParent, visibleItems]
|
|
@@ -281,16 +265,24 @@ var RsSidebar = forwardRef(
|
|
|
281
265
|
if (!hasModuleSelector || !isModuleMenuOpen) {
|
|
282
266
|
return null;
|
|
283
267
|
}
|
|
284
|
-
return /* @__PURE__ */ jsx(
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
268
|
+
return /* @__PURE__ */ jsx(Menu.Root, { className: "rs-sidebar__module-menu", children: /* @__PURE__ */ jsx(Menu.List, { role: "menu", children: modules.map((module) => {
|
|
269
|
+
const isCurrent = module.active || module.text === displayedHeaderTitle;
|
|
270
|
+
return /* @__PURE__ */ jsx(
|
|
271
|
+
Menu.Item,
|
|
272
|
+
{
|
|
273
|
+
value: module.text,
|
|
274
|
+
className: [
|
|
275
|
+
"rs-sidebar__module-option",
|
|
276
|
+
isCurrent ? "rs-sidebar__module-option--active" : "",
|
|
277
|
+
module.disabled || isCurrent ? "rs-sidebar__module-option--disabled" : ""
|
|
278
|
+
].filter(Boolean).join(" "),
|
|
279
|
+
disabled: module.disabled || isCurrent,
|
|
280
|
+
onSelect: () => selectModule(module),
|
|
281
|
+
children: module.text
|
|
282
|
+
},
|
|
283
|
+
module.text
|
|
284
|
+
);
|
|
285
|
+
}) }) });
|
|
294
286
|
};
|
|
295
287
|
const renderFooterContent = () => {
|
|
296
288
|
if (typeof footer === "function") {
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
line-height: 1;
|
|
133
133
|
text-overflow: ellipsis;
|
|
134
134
|
}
|
|
135
|
-
.rs-sidebar__module-menu
|
|
135
|
+
.rs-sidebar__module-menu {
|
|
136
136
|
background: var(--rs-sidebar-background);
|
|
137
137
|
border: 1px solid var(--rs-sidebar-border);
|
|
138
138
|
border-radius: 4px;
|
|
@@ -149,34 +149,30 @@
|
|
|
149
149
|
gap: 0;
|
|
150
150
|
padding: 0;
|
|
151
151
|
}
|
|
152
|
-
.rs-sidebar__module-
|
|
152
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option {
|
|
153
153
|
color: var(--rs-sidebar-color);
|
|
154
154
|
border-radius: 0;
|
|
155
|
-
}
|
|
156
|
-
.rs-sidebar__module-option .p-menu-item-link {
|
|
157
155
|
font-family: inherit;
|
|
158
156
|
font-size: inherit;
|
|
159
157
|
line-height: 1;
|
|
160
158
|
min-height: 38px;
|
|
161
159
|
padding: 10px 14px;
|
|
162
160
|
}
|
|
163
|
-
.rs-sidebar__module-option:not(.p-disabled)
|
|
164
|
-
.rs-sidebar__module-
|
|
161
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option:not(.p-disabled):hover,
|
|
162
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option--active {
|
|
165
163
|
background: var(--rs-sidebar-hover);
|
|
166
164
|
color: var(--rs-sidebar-color);
|
|
167
165
|
}
|
|
168
|
-
.rs-sidebar__module-
|
|
166
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option--disabled {
|
|
169
167
|
color: var(--rs-sidebar-muted);
|
|
170
168
|
cursor: not-allowed;
|
|
171
169
|
}
|
|
172
|
-
.rs-sidebar__module-
|
|
170
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option--disabled:hover {
|
|
173
171
|
background: transparent;
|
|
174
172
|
}
|
|
175
|
-
.rs-sidebar__module-option.p-focus
|
|
173
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option.p-focus {
|
|
176
174
|
background: var(--rs-sidebar-hover);
|
|
177
175
|
color: var(--rs-sidebar-color);
|
|
178
|
-
}
|
|
179
|
-
.rs-sidebar__module-option.p-focus .p-menu-item-link {
|
|
180
176
|
outline: 2px solid var(--rs-color-stroke-focused, #48a0d4);
|
|
181
177
|
outline-offset: -2px;
|
|
182
178
|
}
|
package/dist/index.css
CHANGED
|
@@ -182,7 +182,7 @@
|
|
|
182
182
|
line-height: 1;
|
|
183
183
|
text-overflow: ellipsis;
|
|
184
184
|
}
|
|
185
|
-
.rs-sidebar__module-menu
|
|
185
|
+
.rs-sidebar__module-menu {
|
|
186
186
|
background: var(--rs-sidebar-background);
|
|
187
187
|
border: 1px solid var(--rs-sidebar-border);
|
|
188
188
|
border-radius: 4px;
|
|
@@ -199,34 +199,30 @@
|
|
|
199
199
|
gap: 0;
|
|
200
200
|
padding: 0;
|
|
201
201
|
}
|
|
202
|
-
.rs-sidebar__module-
|
|
202
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option {
|
|
203
203
|
color: var(--rs-sidebar-color);
|
|
204
204
|
border-radius: 0;
|
|
205
|
-
}
|
|
206
|
-
.rs-sidebar__module-option .p-menu-item-link {
|
|
207
205
|
font-family: inherit;
|
|
208
206
|
font-size: inherit;
|
|
209
207
|
line-height: 1;
|
|
210
208
|
min-height: 38px;
|
|
211
209
|
padding: 10px 14px;
|
|
212
210
|
}
|
|
213
|
-
.rs-sidebar__module-option:not(.p-disabled)
|
|
214
|
-
.rs-sidebar__module-
|
|
211
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option:not(.p-disabled):hover,
|
|
212
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option--active {
|
|
215
213
|
background: var(--rs-sidebar-hover);
|
|
216
214
|
color: var(--rs-sidebar-color);
|
|
217
215
|
}
|
|
218
|
-
.rs-sidebar__module-
|
|
216
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option--disabled {
|
|
219
217
|
color: var(--rs-sidebar-muted);
|
|
220
218
|
cursor: not-allowed;
|
|
221
219
|
}
|
|
222
|
-
.rs-sidebar__module-
|
|
220
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option--disabled:hover {
|
|
223
221
|
background: transparent;
|
|
224
222
|
}
|
|
225
|
-
.rs-sidebar__module-option.p-focus
|
|
223
|
+
.rs-sidebar__module-menu .rs-sidebar__module-option.p-focus {
|
|
226
224
|
background: var(--rs-sidebar-hover);
|
|
227
225
|
color: var(--rs-sidebar-color);
|
|
228
|
-
}
|
|
229
|
-
.rs-sidebar__module-option.p-focus .p-menu-item-link {
|
|
230
226
|
outline: 2px solid var(--rs-color-stroke-focused, #48a0d4);
|
|
231
227
|
outline-offset: -2px;
|
|
232
228
|
}
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robosophy/ui-react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"test": "vitest run"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"primereact": ">=
|
|
47
|
-
"react": ">=
|
|
48
|
-
"react-dom": ">=
|
|
46
|
+
"@primereact/ui": ">=11",
|
|
47
|
+
"react": ">=19",
|
|
48
|
+
"react-dom": ">=19"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"react": {
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"react-dom": {
|
|
55
55
|
"optional": true
|
|
56
56
|
},
|
|
57
|
-
"primereact": {
|
|
57
|
+
"@primereact/ui": {
|
|
58
58
|
"optional": true
|
|
59
59
|
}
|
|
60
60
|
},
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"@robosophy/tokens": "^1.0.4"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
+
"@primereact/ui": "^11.2.0",
|
|
65
66
|
"@storybook/addon-docs": "^9.1.0",
|
|
66
67
|
"@storybook/react": "^9.1.0",
|
|
67
68
|
"@storybook/react-vite": "^9.1.0",
|
|
@@ -70,7 +71,7 @@
|
|
|
70
71
|
"@types/react": "^19.1.0",
|
|
71
72
|
"@types/react-dom": "^19.1.0",
|
|
72
73
|
"jsdom": "^26.1.0",
|
|
73
|
-
"primereact": "^
|
|
74
|
+
"primereact": "^11.2.0",
|
|
74
75
|
"react": "^19.1.0",
|
|
75
76
|
"react-dom": "^19.1.0",
|
|
76
77
|
"storybook": "^9.1.0",
|