@oneplatformdev/ui 0.1.99-beta.17 → 0.1.99-beta.19
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/CHANGELOG.md +32 -0
- package/Resizable/Resizable.d.ts +2 -2
- package/Resizable/Resizable.d.ts.map +1 -1
- package/Resizable/Resizable.js +6 -6
- package/Resizable/Resizable.js.map +1 -1
- package/Resizable/Resizable.stories.js +140 -0
- package/Resizable/Resizable.stories.js.map +1 -0
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
## 0.1.99-beta.19 (2026-01-07)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **Resizable:** add Storybook stories for ResizablePanelGroup and ResizablePanel components ([dc5a4b8](https://github.com/oneplatformdev/core-web/commit/dc5a4b8))
|
|
6
|
+
|
|
7
|
+
### 🧱 Updated Dependencies
|
|
8
|
+
|
|
9
|
+
- Updated @oneplatformdev/utils to 0.1.99-beta.19
|
|
10
|
+
- Updated @oneplatformdev/hooks to 0.1.99-beta.19
|
|
11
|
+
- Updated @oneplatformdev/tokens to 0.1.99-beta.19
|
|
12
|
+
|
|
13
|
+
### ❤️ Thank You
|
|
14
|
+
|
|
15
|
+
- Bohdan Radchenko
|
|
16
|
+
|
|
17
|
+
## 0.1.99-beta.18 (2026-01-07)
|
|
18
|
+
|
|
19
|
+
### 🚀 Features
|
|
20
|
+
|
|
21
|
+
- **Resizable:** replace PanelGroup and PanelResizeHandle with Group and Separator components ([4a246a8](https://github.com/oneplatformdev/core-web/commit/4a246a8))
|
|
22
|
+
|
|
23
|
+
### 🧱 Updated Dependencies
|
|
24
|
+
|
|
25
|
+
- Updated @oneplatformdev/utils to 0.1.99-beta.18
|
|
26
|
+
- Updated @oneplatformdev/hooks to 0.1.99-beta.18
|
|
27
|
+
- Updated @oneplatformdev/tokens to 0.1.99-beta.18
|
|
28
|
+
|
|
29
|
+
### ❤️ Thank You
|
|
30
|
+
|
|
31
|
+
- Bohdan Radchenko
|
|
32
|
+
|
|
1
33
|
## 0.1.99-beta.17 (2026-01-07)
|
|
2
34
|
|
|
3
35
|
### 🚀 Features
|
package/Resizable/Resizable.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
3
|
-
declare function ResizablePanelGroup({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.
|
|
3
|
+
declare function ResizablePanelGroup({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
declare function ResizablePanel({ ...props }: React.ComponentProps<typeof ResizablePrimitive.Panel>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
-
declare function ResizableHandle({ withHandle, className, ...props }: React.ComponentProps<typeof ResizablePrimitive.
|
|
5
|
+
declare function ResizableHandle({ withHandle, className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
|
|
6
6
|
withHandle?: boolean;
|
|
7
7
|
}): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export { ResizablePanelGroup, ResizablePanel, ResizableHandle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resizable.d.ts","sourceRoot":"","sources":["../../src/Resizable/Resizable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAA;AAI5D,iBAAS,mBAAmB,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"Resizable.d.ts","sourceRoot":"","sources":["../../src/Resizable/Resizable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAA;AAI5D,iBAAS,mBAAmB,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,2CAWzF;AAED,iBAAS,cAAc,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,2CAE/E;AAED,iBAAS,eAAe,CAAC,EACE,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG;IAC9F,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,2CAiBA;AAED,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
|
package/Resizable/Resizable.js
CHANGED
|
@@ -2,12 +2,12 @@ import { jsx as a } from "react/jsx-runtime";
|
|
|
2
2
|
import { GripVerticalIcon as n } from "lucide-react";
|
|
3
3
|
import * as t from "react-resizable-panels";
|
|
4
4
|
import { cn as i } from "@oneplatformdev/utils";
|
|
5
|
-
function
|
|
5
|
+
function d({
|
|
6
6
|
className: e,
|
|
7
7
|
...r
|
|
8
8
|
}) {
|
|
9
9
|
return /* @__PURE__ */ a(
|
|
10
|
-
t.
|
|
10
|
+
t.PanelGroup,
|
|
11
11
|
{
|
|
12
12
|
"data-slot": "resizable-panel-group",
|
|
13
13
|
className: i(
|
|
@@ -18,7 +18,7 @@ function f({
|
|
|
18
18
|
}
|
|
19
19
|
);
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function f({
|
|
22
22
|
...e
|
|
23
23
|
}) {
|
|
24
24
|
return /* @__PURE__ */ a(t.Panel, { "data-slot": "resizable-panel", ...e });
|
|
@@ -29,7 +29,7 @@ function p({
|
|
|
29
29
|
...l
|
|
30
30
|
}) {
|
|
31
31
|
return /* @__PURE__ */ a(
|
|
32
|
-
t.
|
|
32
|
+
t.PanelResizeHandle,
|
|
33
33
|
{
|
|
34
34
|
"data-slot": "resizable-handle",
|
|
35
35
|
className: i(
|
|
@@ -43,7 +43,7 @@ function p({
|
|
|
43
43
|
}
|
|
44
44
|
export {
|
|
45
45
|
p as ResizableHandle,
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
f as ResizablePanel,
|
|
47
|
+
d as ResizablePanelGroup
|
|
48
48
|
};
|
|
49
49
|
//# sourceMappingURL=Resizable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resizable.js","sources":["../../src/Resizable/Resizable.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { GripVerticalIcon } from \"lucide-react\"\nimport * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction ResizablePanelGroup({\n className,\n ...props\n }: React.ComponentProps<typeof ResizablePrimitive.
|
|
1
|
+
{"version":3,"file":"Resizable.js","sources":["../../src/Resizable/Resizable.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { GripVerticalIcon } from \"lucide-react\"\nimport * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"@oneplatformdev/utils\"\n\nfunction ResizablePanelGroup({\n className,\n ...props\n }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {\n return (\n <ResizablePrimitive.PanelGroup\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({\n ...props\n }: React.ComponentProps<typeof ResizablePrimitive.Panel>) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean\n}) {\n return (\n <ResizablePrimitive.PanelResizeHandle\n data-slot=\"resizable-handle\"\n className={cn(\n \"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border\">\n <GripVerticalIcon className=\"size-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n )\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n"],"names":["ResizablePanelGroup","className","props","jsx","ResizablePrimitive","cn","ResizablePanel","ResizableHandle","withHandle","GripVerticalIcon"],"mappings":";;;;AAQA,SAASA,EAAoB;AAAA,EACE,WAAAC;AAAA,EACA,GAAGC;AACL,GAA+D;AAC1F,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAe;AAAA,EACE,GAAGJ;AACL,GAA0D;AAChF,2BAAQE,EAAmB,OAAnB,EAAyB,aAAU,mBAAmB,GAAGF,GAAO;AAC1E;AAEA,SAASK,EAAgB;AAAA,EACE,YAAAC;AAAA,EACA,WAAAP;AAAA,EACA,GAAGC;AACL,GAEtB;AACD,SACE,gBAAAC;AAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAAM,uBACE,OAAA,EAAI,WAAU,6EACb,UAAA,gBAAAL,EAACM,GAAA,EAAiB,WAAU,WAAA,CAAW,EAAA,CACzC;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
import * as c from "react";
|
|
3
|
+
import { ResizablePanelGroup as r, ResizablePanel as l, ResizableHandle as n } from "./Resizable.js";
|
|
4
|
+
const b = {
|
|
5
|
+
title: "ui/Resizable",
|
|
6
|
+
component: r,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: "fullscreen"
|
|
9
|
+
},
|
|
10
|
+
decorators: [
|
|
11
|
+
(a) => /* @__PURE__ */ e("div", { className: "p-6", children: /* @__PURE__ */ e("div", { className: "h-[420px] w-[920px] overflow-hidden rounded-xl border bg-background shadow-sm", children: /* @__PURE__ */ e(a, {}) }) })
|
|
12
|
+
]
|
|
13
|
+
};
|
|
14
|
+
function i({
|
|
15
|
+
label: a,
|
|
16
|
+
subtle: d
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ e(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
className: [
|
|
22
|
+
"h-full w-full",
|
|
23
|
+
"flex items-center justify-center",
|
|
24
|
+
"text-sm font-medium",
|
|
25
|
+
"select-none",
|
|
26
|
+
d ? "bg-muted/30" : "bg-muted/50"
|
|
27
|
+
].join(" "),
|
|
28
|
+
children: a
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
const z = {
|
|
33
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
34
|
+
/* @__PURE__ */ e(l, { defaultSize: 50, children: /* @__PURE__ */ e(i, { label: "Left (50%)" }) }),
|
|
35
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
36
|
+
/* @__PURE__ */ e(l, { defaultSize: 50, children: /* @__PURE__ */ e(i, { label: "Right (50%)", subtle: !0 }) })
|
|
37
|
+
] })
|
|
38
|
+
}, f = {
|
|
39
|
+
render: () => /* @__PURE__ */ t(r, { direction: "vertical", children: [
|
|
40
|
+
/* @__PURE__ */ e(l, { defaultSize: 60, children: /* @__PURE__ */ e(i, { label: "Top (60%)" }) }),
|
|
41
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
42
|
+
/* @__PURE__ */ e(l, { defaultSize: 40, children: /* @__PURE__ */ e(i, { label: "Bottom (40%)", subtle: !0 }) })
|
|
43
|
+
] })
|
|
44
|
+
}, S = {
|
|
45
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
46
|
+
/* @__PURE__ */ e(l, { defaultSize: 35, children: /* @__PURE__ */ e(i, { label: "Sidebar (35%)" }) }),
|
|
47
|
+
/* @__PURE__ */ e(n, {}),
|
|
48
|
+
/* @__PURE__ */ e(l, { defaultSize: 65, children: /* @__PURE__ */ e(i, { label: "Content (65%)", subtle: !0 }) })
|
|
49
|
+
] })
|
|
50
|
+
}, m = {
|
|
51
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
52
|
+
/* @__PURE__ */ e(l, { defaultSize: 33, children: /* @__PURE__ */ e(i, { label: "A (33%)" }) }),
|
|
53
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
54
|
+
/* @__PURE__ */ e(l, { defaultSize: 34, children: /* @__PURE__ */ e(i, { label: "B (34%)", subtle: !0 }) }),
|
|
55
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
56
|
+
/* @__PURE__ */ e(l, { defaultSize: 33, children: /* @__PURE__ */ e(i, { label: "C (33%)" }) })
|
|
57
|
+
] })
|
|
58
|
+
}, p = {
|
|
59
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
60
|
+
/* @__PURE__ */ e(l, { defaultSize: 20, minSize: 12, children: /* @__PURE__ */ e(i, { label: "Nav (20%)" }) }),
|
|
61
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
62
|
+
/* @__PURE__ */ e(l, { defaultSize: 55, minSize: 30, children: /* @__PURE__ */ e(i, { label: "Main (55%)", subtle: !0 }) }),
|
|
63
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
64
|
+
/* @__PURE__ */ e(l, { defaultSize: 25, minSize: 12, children: /* @__PURE__ */ e(i, { label: "Details (25%)" }) })
|
|
65
|
+
] })
|
|
66
|
+
}, x = {
|
|
67
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
68
|
+
/* @__PURE__ */ e(l, { defaultSize: 30, minSize: 20, maxSize: 40, children: /* @__PURE__ */ e(i, { label: "Left (min 20 / max 40)" }) }),
|
|
69
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
70
|
+
/* @__PURE__ */ e(l, { defaultSize: 70, minSize: 60, maxSize: 80, children: /* @__PURE__ */ e(i, { label: "Right (min 60 / max 80)", subtle: !0 }) })
|
|
71
|
+
] })
|
|
72
|
+
}, w = {
|
|
73
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
74
|
+
/* @__PURE__ */ e(
|
|
75
|
+
l,
|
|
76
|
+
{
|
|
77
|
+
defaultSize: 22,
|
|
78
|
+
minSize: 12,
|
|
79
|
+
collapsible: !0,
|
|
80
|
+
collapsedSize: 4,
|
|
81
|
+
children: /* @__PURE__ */ e(i, { label: "Sidebar (collapsible)" })
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
85
|
+
/* @__PURE__ */ e(l, { defaultSize: 78, minSize: 50, children: /* @__PURE__ */ e(i, { label: "Main content", subtle: !0 }) })
|
|
86
|
+
] })
|
|
87
|
+
}, H = {
|
|
88
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
89
|
+
/* @__PURE__ */ e(l, { defaultSize: 50, children: /* @__PURE__ */ e(i, { label: "Left (fixed)" }) }),
|
|
90
|
+
/* @__PURE__ */ e(n, { withHandle: !0, disabled: !0 }),
|
|
91
|
+
/* @__PURE__ */ e(l, { defaultSize: 50, children: /* @__PURE__ */ e(i, { label: "Right (fixed)", subtle: !0 }) })
|
|
92
|
+
] })
|
|
93
|
+
}, g = {
|
|
94
|
+
render: () => /* @__PURE__ */ t(r, { direction: "horizontal", children: [
|
|
95
|
+
/* @__PURE__ */ e(l, { defaultSize: 45, minSize: 25, children: /* @__PURE__ */ t(r, { direction: "vertical", children: [
|
|
96
|
+
/* @__PURE__ */ e(l, { defaultSize: 55, minSize: 20, children: /* @__PURE__ */ e(i, { label: "Left / Top" }) }),
|
|
97
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
98
|
+
/* @__PURE__ */ e(l, { defaultSize: 45, minSize: 20, children: /* @__PURE__ */ e(i, { label: "Left / Bottom", subtle: !0 }) })
|
|
99
|
+
] }) }),
|
|
100
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
101
|
+
/* @__PURE__ */ e(l, { defaultSize: 55, minSize: 30, children: /* @__PURE__ */ e(i, { label: "Right (single)", subtle: !0 }) })
|
|
102
|
+
] })
|
|
103
|
+
}, y = {
|
|
104
|
+
render: () => /* @__PURE__ */ e(() => {
|
|
105
|
+
const [d, u] = c.useState([]);
|
|
106
|
+
return /* @__PURE__ */ t("div", { className: "h-full w-full", children: [
|
|
107
|
+
/* @__PURE__ */ t("div", { className: "border-b px-3 py-2 text-xs text-muted-foreground", children: [
|
|
108
|
+
"Layout:",
|
|
109
|
+
" ",
|
|
110
|
+
d.length ? d.map((o) => Math.round(o)).join(" / ") : "— (move handle)"
|
|
111
|
+
] }),
|
|
112
|
+
/* @__PURE__ */ e("div", { className: "h-[calc(100%-33px)]", children: /* @__PURE__ */ t(
|
|
113
|
+
r,
|
|
114
|
+
{
|
|
115
|
+
direction: "horizontal",
|
|
116
|
+
onLayout: (o) => u(o),
|
|
117
|
+
children: [
|
|
118
|
+
/* @__PURE__ */ e(l, { defaultSize: 40, minSize: 20, children: /* @__PURE__ */ e(i, { label: "Left" }) }),
|
|
119
|
+
/* @__PURE__ */ e(n, { withHandle: !0 }),
|
|
120
|
+
/* @__PURE__ */ e(l, { defaultSize: 60, minSize: 20, children: /* @__PURE__ */ e(i, { label: "Right", subtle: !0 }) })
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
) })
|
|
124
|
+
] });
|
|
125
|
+
}, {})
|
|
126
|
+
};
|
|
127
|
+
export {
|
|
128
|
+
w as CollapsibleSidebar,
|
|
129
|
+
H as DisabledHandle,
|
|
130
|
+
S as HandleWithoutGrip,
|
|
131
|
+
z as HorizontalTwoPanels,
|
|
132
|
+
y as LayoutDebug,
|
|
133
|
+
x as MinMaxConstraints,
|
|
134
|
+
g as NestedResizable,
|
|
135
|
+
m as ThreePanelsEqual,
|
|
136
|
+
p as ThreePanelsSidebarLayout,
|
|
137
|
+
f as VerticalTwoPanels,
|
|
138
|
+
b as default
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=Resizable.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Resizable.stories.js","sources":["../../src/Resizable/Resizable.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\"\nimport * as React from \"react\"\n\nimport {\n ResizablePanelGroup,\n ResizablePanel,\n ResizableHandle,\n} from \"./Resizable\"\n\nconst meta: Meta<typeof ResizablePanelGroup> = {\n title: \"ui/Resizable\",\n component: ResizablePanelGroup,\n parameters: {\n layout: \"fullscreen\",\n },\n decorators: [\n (Story) => (\n <div className=\"p-6\">\n <div className=\"h-[420px] w-[920px] overflow-hidden rounded-xl border bg-background shadow-sm\">\n <Story />\n </div>\n </div>\n ),\n ],\n}\nexport default meta\ntype Story = StoryObj<typeof ResizablePanelGroup>\n\nfunction PanelBox({\n label,\n subtle,\n }: {\n label: string\n subtle?: boolean\n}) {\n return (\n <div\n className={[\n \"h-full w-full\",\n \"flex items-center justify-center\",\n \"text-sm font-medium\",\n \"select-none\",\n subtle ? \"bg-muted/30\" : \"bg-muted/50\",\n ].join(\" \")}\n >\n {label}\n </div>\n )\n}\n\n/** 1) Базовий горизонтальний спліт 50/50 */\nexport const HorizontalTwoPanels: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={50}>\n <PanelBox label=\"Left (50%)\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={50}>\n <PanelBox label=\"Right (50%)\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 2) Вертикальний спліт 60/40 */\nexport const VerticalTwoPanels: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"vertical\">\n <ResizablePanel defaultSize={60}>\n <PanelBox label=\"Top (60%)\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={40}>\n <PanelBox label=\"Bottom (40%)\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 3) Без “grip” (withHandle=false) — тонкий роздільник */\nexport const HandleWithoutGrip: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={35}>\n <PanelBox label=\"Sidebar (35%)\" />\n </ResizablePanel>\n <ResizableHandle />\n <ResizablePanel defaultSize={65}>\n <PanelBox label=\"Content (65%)\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 4) Три панелі рівномірно (33/34/33) */\nexport const ThreePanelsEqual: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={33}>\n <PanelBox label=\"A (33%)\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={34}>\n <PanelBox label=\"B (34%)\" subtle />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={33}>\n <PanelBox label=\"C (33%)\" />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 5) Три панелі з “sidebar layout” (20/55/25) */\nexport const ThreePanelsSidebarLayout: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={20} minSize={12}>\n <PanelBox label=\"Nav (20%)\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={55} minSize={30}>\n <PanelBox label=\"Main (55%)\" subtle />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={25} minSize={12}>\n <PanelBox label=\"Details (25%)\" />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 6) Обмеження min/max size (наочно “впирається” при ресайзі) */\nexport const MinMaxConstraints: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={30} minSize={20} maxSize={40}>\n <PanelBox label=\"Left (min 20 / max 40)\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={70} minSize={60} maxSize={80}>\n <PanelBox label=\"Right (min 60 / max 80)\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 7) Collapsible sidebar (якщо ваш Panel підтримує collapsible/collapsedSize) */\nexport const CollapsibleSidebar: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel\n defaultSize={22}\n minSize={12}\n collapsible\n collapsedSize={4}\n >\n <PanelBox label=\"Sidebar (collapsible)\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={78} minSize={50}>\n <PanelBox label=\"Main content\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 8) Disabled handle (якщо Separator/Handle підтримує disabled) */\nexport const DisabledHandle: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={50}>\n <PanelBox label=\"Left (fixed)\" />\n </ResizablePanel>\n <ResizableHandle withHandle disabled />\n <ResizablePanel defaultSize={50}>\n <PanelBox label=\"Right (fixed)\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 9) Nested split: зліва — вертикальний, справа — суцільний */\nexport const NestedResizable: Story = {\n render: () => (\n <ResizablePanelGroup direction=\"horizontal\">\n <ResizablePanel defaultSize={45} minSize={25}>\n <ResizablePanelGroup direction=\"vertical\">\n <ResizablePanel defaultSize={55} minSize={20}>\n <PanelBox label=\"Left / Top\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={45} minSize={20}>\n <PanelBox label=\"Left / Bottom\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={55} minSize={30}>\n <PanelBox label=\"Right (single)\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n ),\n}\n\n/** 10) Debug layout: показує поточні розміри (onLayout) */\nexport const LayoutDebug: Story = {\n render: () => {\n const LayoutStory = () => {\n const [layout, setLayout] = React.useState<number[]>([])\n\n return (\n <div className=\"h-full w-full\">\n <div className=\"border-b px-3 py-2 text-xs text-muted-foreground\">\n Layout:{\" \"}\n {layout.length\n ? layout.map((v) => Math.round(v)).join(\" / \")\n : \"— (move handle)\"}\n </div>\n\n <div className=\"h-[calc(100%-33px)]\">\n <ResizablePanelGroup\n direction=\"horizontal\"\n onLayout={(sizes) => setLayout(sizes)}\n >\n <ResizablePanel defaultSize={40} minSize={20}>\n <PanelBox label=\"Left\" />\n </ResizablePanel>\n <ResizableHandle withHandle />\n <ResizablePanel defaultSize={60} minSize={20}>\n <PanelBox label=\"Right\" subtle />\n </ResizablePanel>\n </ResizablePanelGroup>\n </div>\n </div>\n )\n }\n\n return <LayoutStory />\n },\n}\n"],"names":["meta","ResizablePanelGroup","Story","jsx","PanelBox","label","subtle","HorizontalTwoPanels","jsxs","ResizablePanel","ResizableHandle","VerticalTwoPanels","HandleWithoutGrip","ThreePanelsEqual","ThreePanelsSidebarLayout","MinMaxConstraints","CollapsibleSidebar","DisabledHandle","NestedResizable","LayoutDebug","layout","setLayout","React","v","sizes"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneplatformdev/ui",
|
|
3
|
-
"version": "0.1.99-beta.
|
|
3
|
+
"version": "0.1.99-beta.19",
|
|
4
4
|
"description": "UI component library for OnePlatform",
|
|
5
5
|
"author": "One Platform Development Team",
|
|
6
6
|
"keywords": [
|
|
@@ -101,13 +101,13 @@
|
|
|
101
101
|
"next-themes": "^0.4.6",
|
|
102
102
|
"react-day-picker": "9.10.0",
|
|
103
103
|
"react-dropzone": "^14.3.8",
|
|
104
|
-
"react-resizable-panels": "^
|
|
104
|
+
"react-resizable-panels": "^3.0.6",
|
|
105
105
|
"recharts": "^3.2.0",
|
|
106
106
|
"sonner": "^2.0.7",
|
|
107
107
|
"vaul": "^1.1.2",
|
|
108
|
-
"@oneplatformdev/
|
|
109
|
-
"@oneplatformdev/
|
|
110
|
-
"@oneplatformdev/
|
|
108
|
+
"@oneplatformdev/tokens": "^0.1.99-beta.19",
|
|
109
|
+
"@oneplatformdev/utils": "^0.1.99-beta.19",
|
|
110
|
+
"@oneplatformdev/hooks": "^0.1.99-beta.19"
|
|
111
111
|
},
|
|
112
112
|
"scripts": {
|
|
113
113
|
"chromatic": "chromatic"
|