@oneplatformdev/ui 0.1.99-beta.249 → 0.1.99-beta.250
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 +8 -0
- package/Dialog/Dialog.d.ts.map +1 -1
- package/Dialog/Dialog.js +36 -36
- package/Dialog/Dialog.js.map +1 -1
- package/Dialog/Dialog.stories.js +7 -6
- package/Dialog/Dialog.stories.js.map +1 -1
- package/Dialog/useDialogClosePosition.d.ts +1 -2
- package/Dialog/useDialogClosePosition.d.ts.map +1 -1
- package/Dialog/useDialogClosePosition.js +21 -24
- package/Dialog/useDialogClosePosition.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
## 0.1.99-beta.250 (2026-03-11)
|
|
2
|
+
|
|
3
|
+
### 🧱 Updated Dependencies
|
|
4
|
+
|
|
5
|
+
- Updated @oneplatformdev/utils to 0.1.99-beta.250
|
|
6
|
+
- Updated @oneplatformdev/hooks to 0.1.99-beta.250
|
|
7
|
+
- Updated @oneplatformdev/tokens to 0.1.99-beta.250
|
|
8
|
+
|
|
1
9
|
## 0.1.99-beta.249 (2026-03-11)
|
|
2
10
|
|
|
3
11
|
### 🧱 Updated Dependencies
|
package/Dialog/Dialog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAOzD,iBAAS,MAAM,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnE;AAED,iBAAS,aAAa,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAE7E;AAED,iBAAS,YAAY,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,2CAE3E;AAED,iBAAS,WAAW,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEzE;AAED,iBAAS,aAAa,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAW7E;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;KAChE,CAAA;CACF,
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/Dialog/Dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAOzD,iBAAS,MAAM,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnE;AAED,iBAAS,aAAa,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAE7E;AAED,iBAAS,YAAY,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,2CAE3E;AAED,iBAAS,WAAW,CAAC,EACE,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEzE;AAED,iBAAS,aAAa,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAW7E;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;KAChE,CAAA;CACF,2CAsEA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQzE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWzE;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CA2B7E;AAED,iBAAS,iBAAiB,CAAC,EACE,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,2CAYrF;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EAChB,CAAA"}
|
package/Dialog/Dialog.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import * as
|
|
1
|
+
import { jsx as e, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import * as p from "react";
|
|
3
3
|
import * as a from "@radix-ui/react-dialog";
|
|
4
|
-
import { XIcon as
|
|
4
|
+
import { XIcon as m } from "lucide-react";
|
|
5
5
|
import { cn as n } from "@oneplatformdev/utils";
|
|
6
|
-
import { ButtonIcon as
|
|
6
|
+
import { ButtonIcon as x } from "../ButtonIcon/ButtonIcon.js";
|
|
7
7
|
import "../ButtonIcon/buttonIconVariants.js";
|
|
8
|
-
import { useDialogClosePosition as
|
|
9
|
-
function
|
|
8
|
+
import { useDialogClosePosition as h } from "./useDialogClosePosition.js";
|
|
9
|
+
function P({
|
|
10
10
|
...t
|
|
11
11
|
}) {
|
|
12
12
|
return /* @__PURE__ */ e(a.Root, { "data-slot": "dialog", ...t });
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function k({
|
|
15
15
|
...t
|
|
16
16
|
}) {
|
|
17
17
|
return /* @__PURE__ */ e(a.Trigger, { "data-slot": "dialog-trigger", ...t });
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function v({
|
|
20
20
|
...t
|
|
21
21
|
}) {
|
|
22
22
|
return /* @__PURE__ */ e(a.Portal, { "data-slot": "dialog-portal", ...t });
|
|
23
23
|
}
|
|
24
|
-
function
|
|
24
|
+
function j({
|
|
25
25
|
...t
|
|
26
26
|
}) {
|
|
27
27
|
return /* @__PURE__ */ e(a.Close, { "data-slot": "dialog-close", ...t });
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function b({
|
|
30
30
|
className: t,
|
|
31
31
|
...o
|
|
32
32
|
}) {
|
|
@@ -42,21 +42,21 @@ function v({
|
|
|
42
42
|
}
|
|
43
43
|
);
|
|
44
44
|
}
|
|
45
|
-
function
|
|
45
|
+
function T(t) {
|
|
46
46
|
const {
|
|
47
47
|
className: o,
|
|
48
48
|
children: i,
|
|
49
49
|
showCloseButton: s = !0,
|
|
50
|
-
style:
|
|
51
|
-
slotProps:
|
|
52
|
-
...
|
|
53
|
-
} = t,
|
|
50
|
+
style: c,
|
|
51
|
+
slotProps: d,
|
|
52
|
+
...u
|
|
53
|
+
} = t, [f, g] = p.useState(null), l = h(f, {
|
|
54
54
|
enabled: s
|
|
55
55
|
});
|
|
56
|
-
return /* @__PURE__ */ e(
|
|
56
|
+
return /* @__PURE__ */ e(v, { "data-slot": "dialog-portal", children: /* @__PURE__ */ e(b, { ...d?.overlay, children: /* @__PURE__ */ r(
|
|
57
57
|
a.Content,
|
|
58
58
|
{
|
|
59
|
-
ref:
|
|
59
|
+
ref: g,
|
|
60
60
|
"data-slot": "dialog-content",
|
|
61
61
|
"data-closable": JSON.stringify(s),
|
|
62
62
|
className: n(
|
|
@@ -70,14 +70,14 @@ function j(t) {
|
|
|
70
70
|
"outline-none focus:outline-none focus-visible:outline-none",
|
|
71
71
|
o
|
|
72
72
|
),
|
|
73
|
-
...
|
|
73
|
+
...u,
|
|
74
74
|
style: {
|
|
75
75
|
pointerEvents: "auto",
|
|
76
|
-
...
|
|
76
|
+
...c || {}
|
|
77
77
|
},
|
|
78
78
|
children: [
|
|
79
79
|
i,
|
|
80
|
-
s && /* @__PURE__ */
|
|
80
|
+
s && /* @__PURE__ */ r(
|
|
81
81
|
a.Close,
|
|
82
82
|
{
|
|
83
83
|
"data-slot": "dialog-close",
|
|
@@ -91,16 +91,16 @@ function j(t) {
|
|
|
91
91
|
"cursor-pointer size-10 flex items-center justify-center"
|
|
92
92
|
),
|
|
93
93
|
style: {
|
|
94
|
-
top:
|
|
95
|
-
right:
|
|
94
|
+
top: l.top,
|
|
95
|
+
right: l.right
|
|
96
96
|
},
|
|
97
97
|
children: [
|
|
98
98
|
/* @__PURE__ */ e(
|
|
99
|
-
|
|
99
|
+
x,
|
|
100
100
|
{
|
|
101
101
|
variant: "ghost",
|
|
102
102
|
color: "secondary",
|
|
103
|
-
icon:
|
|
103
|
+
icon: m
|
|
104
104
|
}
|
|
105
105
|
),
|
|
106
106
|
/* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
|
|
@@ -111,7 +111,7 @@ function j(t) {
|
|
|
111
111
|
}
|
|
112
112
|
) }) });
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function E({ className: t, ...o }) {
|
|
115
115
|
return /* @__PURE__ */ e(
|
|
116
116
|
"div",
|
|
117
117
|
{
|
|
@@ -121,7 +121,7 @@ function R({ className: t, ...o }) {
|
|
|
121
121
|
}
|
|
122
122
|
);
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function O({ className: t, ...o }) {
|
|
125
125
|
return /* @__PURE__ */ e(
|
|
126
126
|
"div",
|
|
127
127
|
{
|
|
@@ -134,7 +134,7 @@ function T({ className: t, ...o }) {
|
|
|
134
134
|
}
|
|
135
135
|
);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
137
|
+
function S(t) {
|
|
138
138
|
const {
|
|
139
139
|
className: o,
|
|
140
140
|
children: i,
|
|
@@ -182,16 +182,16 @@ function _({
|
|
|
182
182
|
);
|
|
183
183
|
}
|
|
184
184
|
export {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
185
|
+
P as Dialog,
|
|
186
|
+
j as DialogClose,
|
|
187
|
+
T as DialogContent,
|
|
188
188
|
_ as DialogDescription,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
189
|
+
O as DialogFooter,
|
|
190
|
+
E as DialogHeader,
|
|
191
|
+
b as DialogOverlay,
|
|
192
|
+
v as DialogPortal,
|
|
193
193
|
a as DialogPrimitive,
|
|
194
|
-
|
|
195
|
-
|
|
194
|
+
S as DialogTitle,
|
|
195
|
+
k as DialogTrigger
|
|
196
196
|
};
|
|
197
197
|
//# sourceMappingURL=Dialog.js.map
|
package/Dialog/Dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sources":["../../src/Dialog/Dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { ButtonIcon } from \"../ButtonIcon\";\nimport { useDialogClosePosition } from \"./useDialogClosePosition\";\n\nfunction Dialog({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent(props: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n slotProps?: {\n overlay?: React.ComponentProps<typeof DialogPrimitive.Overlay>;\n }\n}) {\n const {\n className,\n children,\n showCloseButton = true,\n style,\n slotProps,\n ...rest\n } = props;\n
|
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../../src/Dialog/Dialog.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@oneplatformdev/utils\"\nimport { ButtonIcon } from \"../ButtonIcon\";\nimport { useDialogClosePosition } from \"./useDialogClosePosition\";\n\nfunction Dialog({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent(props: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n slotProps?: {\n overlay?: React.ComponentProps<typeof DialogPrimitive.Overlay>;\n }\n}) {\n const {\n className,\n children,\n showCloseButton = true,\n style,\n slotProps,\n ...rest\n } = props;\n const [contentEl, setContentEl] = React.useState<HTMLDivElement | null>(null);\n\n const closePosition = useDialogClosePosition(contentEl, {\n enabled: showCloseButton,\n });\n\n\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay {...slotProps?.overlay}>\n <DialogPrimitive.Content\n ref={setContentEl}\n data-slot=\"dialog-content\"\n data-closable={JSON.stringify(showCloseButton)}\n className={cn(\n 'group group/content',\n 'fixed top-[50%] left-[50%] z-50 translate-x-[-50%] translate-y-[-50%]',\n 'flex flex-col w-full max-w-[calc(100%-2rem)] sm:max-w-2xl gap-3',\n 'max-h-[90%] overflow-auto overscroll-none',\n 'bg-background rounded-lg border shadow-lg duration-200 p-6',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n \"focus:outline-none focus-visible:outline-none focus:ring-0 focus-visible:ring-0 focus:ring-transparent\",\n 'outline-none focus:outline-none focus-visible:outline-none',\n className\n )}\n {...rest}\n style={{\n pointerEvents: 'auto',\n ...(style || {}),\n }}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={cn(\n 'absolute top-6 right-6 rounded-2xl opacity-70 transition-opacity hover:opacity-100',\n 'data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n 'ring-offset-background focus:ring-transparent focus:ring-0 focus:ring-offset-0 focus:outline-hidden',\n 'focus:outline-none focus:ring-0',\n 'disabled:pointer-events-none [&_svg]:pointer-events-none',\n '[&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:size-5',\n 'cursor-pointer size-10 flex items-center justify-center',\n )}\n style={{\n top: closePosition.top,\n right: closePosition.right,\n }}\n >\n <ButtonIcon\n variant='ghost'\n color='secondary'\n icon={XIcon}\n />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogOverlay>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-4 justify-center text-center sm:text-left min-h-10\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle(props: React.ComponentProps<typeof DialogPrimitive.Title>) {\n const {\n className,\n children,\n ...rest\n } = props;\n return (\n <DialogPrimitive.Title\n asChild\n data-slot=\"dialog-title\"\n className={cn(\n \"flex items-center min-h-10\",\n \"group-data-[closable='true']/content:pr-13\",\n className\n )}\n {...rest}\n >\n <span\n className={cn(\n \"text-lg leading-[1.2] font-bold text-[#06080D]\",\n 'whitespace-pre-wrap wrap-break-word line-clamp-10',\n )}\n >\n {children}\n </span>\n </DialogPrimitive.Title>\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-[#06080D] font-medium text-base\",\n 'whitespace-pre-wrap wrap-break-word line-clamp-10',\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n DialogPrimitive\n}\n"],"names":["Dialog","props","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","className","jsx","cn","DialogContent","children","showCloseButton","style","slotProps","rest","contentEl","setContentEl","React","closePosition","useDialogClosePosition","jsxs","ButtonIcon","XIcon","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":";;;;;;;;AAUA,SAASA,EAAO;AAAA,EACE,GAAGC;AACL,GAAsD;AACpE,2BAAQC,EAAgB,MAAhB,EAAqB,aAAU,UAAU,GAAGD,GAAO;AAC7D;AAEA,SAASE,EAAc;AAAA,EACE,GAAGF;AACL,GAAyD;AAC9E,2BAAQC,EAAgB,SAAhB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACxE;AAEA,SAASG,EAAa;AAAA,EACE,GAAGH;AACL,GAAwD;AAC5E,2BAAQC,EAAgB,QAAhB,EAAuB,aAAU,iBAAiB,GAAGD,GAAO;AACtE;AAEA,SAASI,EAAY;AAAA,EACE,GAAGJ;AACL,GAAuD;AAC1E,2BAAQC,EAAgB,OAAhB,EAAsB,aAAU,gBAAgB,GAAGD,GAAO;AACpE;AAEA,SAASK,EAAc;AAAA,EACE,WAAAC;AAAA,EACA,GAAGN;AACL,GAAyD;AAC9E,SACE,gBAAAO;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWO;AAAA,QACT;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASS,EAAcT,GAKpB;AACD,QAAM;AAAA,IACJ,WAAAM;AAAA,IACA,UAAAI;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDd,GACE,CAACe,GAAWC,CAAY,IAAIC,EAAM,SAAgC,IAAI,GAEtEC,IAAgBC,EAAuBJ,GAAW;AAAA,IACtD,SAASJ;AAAA,EAAA,CACV;AAGD,SACE,gBAAAJ,EAACJ,KAAa,aAAU,iBACtB,4BAACE,GAAA,EAAe,GAAGQ,GAAW,SAC5B,UAAA,gBAAAO;AAAA,IAACnB,EAAgB;AAAA,IAAhB;AAAA,MACC,KAAKe;AAAA,MACL,aAAU;AAAA,MACV,iBAAe,KAAK,UAAUL,CAAe;AAAA,MAC7C,WAAWH;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGQ;AAAA,MACJ,OAAO;AAAA,QACL,eAAe;AAAA,QACf,GAAIF,KAAS,CAAA;AAAA,MAAC;AAAA,MAGf,UAAA;AAAA,QAAAF;AAAA,QACAC,KACC,gBAAAS;AAAA,UAACnB,EAAgB;AAAA,UAAhB;AAAA,YACC,aAAU;AAAA,YACV,WAAWO;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YAAA;AAAA,YAEF,OAAO;AAAA,cACL,KAAKU,EAAc;AAAA,cACnB,OAAOA,EAAc;AAAA,YAAA;AAAA,YAGvB,UAAA;AAAA,cAAA,gBAAAX;AAAA,gBAACc;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,OAAM;AAAA,kBACN,MAAMC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAER,gBAAAf,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACjC;AAAA,IAAA;AAAA,EAAA,GAGN,EAAA,CACF;AAEJ;AAEA,SAASgB,EAAa,EAAE,WAAAjB,GAAW,GAAGN,KAAsC;AAC1E,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,wEAAwEF,CAAS;AAAA,MAC9F,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASwB,EAAa,EAAE,WAAAlB,GAAW,GAAGN,KAAsC;AAC1E,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASyB,EAAYzB,GAA2D;AAC9E,QAAM;AAAA,IACJ,WAAAM;AAAA,IACA,UAAAI;AAAA,IACA,GAAGI;AAAA,EAAA,IACDd;AACJ,SACE,gBAAAO;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACC,SAAO;AAAA,MACP,aAAU;AAAA,MACV,WAAWO;AAAA,QACT;AAAA,QACA;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGQ;AAAA,MAEJ,UAAA,gBAAAP;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWC;AAAA,YACT;AAAA,YACA;AAAA,UAAA;AAAA,UAGD,UAAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;AAEA,SAASgB,EAAkB;AAAA,EACE,WAAApB;AAAA,EACA,GAAGN;AACL,GAA6D;AACtF,SACE,gBAAAO;AAAA,IAACN,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWO;AAAA,QACT;AAAA,QACA;AAAA,QACAF;AAAA,MAAA;AAAA,MAED,GAAGN;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
package/Dialog/Dialog.stories.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as o, jsxs as e } from "react/jsx-runtime";
|
|
2
|
-
import { Dialog as b, DialogTrigger as O, DialogContent as B, DialogHeader as v, DialogTitle as w, DialogDescription as
|
|
2
|
+
import { Dialog as b, DialogTrigger as O, DialogContent as B, DialogHeader as v, DialogTitle as w, DialogDescription as N, DialogFooter as T, DialogClose as F } from "./Dialog.js";
|
|
3
3
|
import { Button as l } from "../Button/Button.js";
|
|
4
4
|
import "../Button/buttonVariants.js";
|
|
5
|
-
import { useState as
|
|
5
|
+
import { useState as L, useCallback as S } from "react";
|
|
6
6
|
function I(p) {
|
|
7
7
|
const {
|
|
8
8
|
open: i,
|
|
@@ -15,7 +15,7 @@ function I(p) {
|
|
|
15
15
|
triggerLabel: C = "Open dialog",
|
|
16
16
|
bodyText: s = "Some content inside dialog…",
|
|
17
17
|
longBody: c = !1
|
|
18
|
-
} = p, [D, x] =
|
|
18
|
+
} = p, [D, x] = L(f), t = i !== void 0, y = t ? i : D, d = S((n) => {
|
|
19
19
|
t || x(n), r?.(n);
|
|
20
20
|
}, [t, r]);
|
|
21
21
|
return /* @__PURE__ */ o("div", { className: "p-10", children: /* @__PURE__ */ e(b, { open: y, onOpenChange: d, children: [
|
|
@@ -24,13 +24,14 @@ function I(p) {
|
|
|
24
24
|
B,
|
|
25
25
|
{
|
|
26
26
|
showCloseButton: u,
|
|
27
|
+
className: "p-12",
|
|
27
28
|
children: [
|
|
28
29
|
/* @__PURE__ */ e(v, { children: [
|
|
29
30
|
/* @__PURE__ */ e(w, { children: [
|
|
30
31
|
h,
|
|
31
32
|
" 123"
|
|
32
33
|
] }),
|
|
33
|
-
a ? /* @__PURE__ */ o(
|
|
34
|
+
a ? /* @__PURE__ */ o(N, { children: a }) : null
|
|
34
35
|
] }),
|
|
35
36
|
/* @__PURE__ */ o("div", { className: c ? "max-h-[50vh] overflow-auto pr-1" : void 0, children: c ? /* @__PURE__ */ o("div", { className: "space-y-3 text-sm leading-6", children: Array.from({ length: 30 }).map((n, g) => /* @__PURE__ */ e("p", { children: [
|
|
36
37
|
"#",
|
|
@@ -39,8 +40,8 @@ function I(p) {
|
|
|
39
40
|
s,
|
|
40
41
|
" Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
41
42
|
] }, g)) }) : /* @__PURE__ */ o("p", { className: "text-sm leading-6", children: s }) }),
|
|
42
|
-
m ? /* @__PURE__ */ e(
|
|
43
|
-
/* @__PURE__ */ o(
|
|
43
|
+
m ? /* @__PURE__ */ e(T, { children: [
|
|
44
|
+
/* @__PURE__ */ o(F, { asChild: !0, children: /* @__PURE__ */ o(l, { color: "secondary", children: "Cancel" }) }),
|
|
44
45
|
/* @__PURE__ */ o(l, { onClick: () => d(!1), children: "Save" })
|
|
45
46
|
] }) : null
|
|
46
47
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.stories.js","sources":["../../src/Dialog/Dialog.stories.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\n\nimport {\n Dialog,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n DialogClose,\n} from \"./Dialog\";\nimport { Button } from \"../Button\";\nimport { useCallback, useState } from \"react\";\nimport { DialogControlsProps } from \"./Dialog.types\";\n\ntype DialogDemoProps = DialogControlsProps & {\n title: string;\n description?: string;\n showCloseButton?: boolean;\n withFooter?: boolean;\n initialOpen?: boolean;\n triggerLabel?: string;\n bodyText?: string;\n longBody?: boolean;\n};\n\n// TODO: create cmp like alert\nfunction DialogDemo(props: DialogDemoProps) {\n const {\n open: controlledOpen,\n onOpenChange,\n title,\n description,\n showCloseButton = true,\n withFooter = true,\n initialOpen = false,\n triggerLabel = \"Open dialog\",\n bodyText = \"Some content inside dialog…\",\n longBody = false,\n } = props;\n\n const [ internalOpen, setInternalOpen ] = useState(initialOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const setOpen = useCallback((next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n }, [ isControlled, onOpenChange ]);\n\n return (\n <div className=\"p-10\">\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button variant='outlined'>\n {triggerLabel}\n </Button>\n </DialogTrigger>\n\n <DialogContent\n showCloseButton={showCloseButton}\n >\n <DialogHeader>\n <DialogTitle>{title} 123</DialogTitle>\n {description ? <DialogDescription>{description}</DialogDescription> : null}\n </DialogHeader>\n\n <div className={longBody ? \"max-h-[50vh] overflow-auto pr-1\" : undefined}>\n {longBody ? (\n <div className=\"space-y-3 text-sm leading-6\">\n {Array.from({ length: 30 }).map((_, i) => (\n <p key={i}>\n #{i + 1}. {bodyText} Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n </p>\n ))}\n </div>\n ) : (\n <p className=\"text-sm leading-6\">{bodyText}</p>\n )}\n </div>\n\n {withFooter ? (\n <DialogFooter>\n <DialogClose asChild>\n <Button color='secondary'>\n Cancel\n </Button>\n </DialogClose>\n\n <Button onClick={() => setOpen(false)}>\n Save\n </Button>\n </DialogFooter>\n ) : null}\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nconst meta: Meta<typeof DialogDemo> = {\n title: \"UI/Dialog\",\n component: DialogDemo,\n parameters: {\n layout: \"fullscreen\",\n },\n argTypes: {\n title: { control: \"text\" },\n description: { control: \"text\" },\n showCloseButton: { control: \"boolean\" },\n withFooter: { control: \"boolean\" },\n initialOpen: { control: \"boolean\" },\n triggerLabel: { control: \"text\" },\n bodyText: { control: \"text\" },\n longBody: { control: \"boolean\" },\n },\n args: {\n title: \"Dialog title\",\n description: \"Dialog description\",\n showCloseButton: true,\n withFooter: true,\n initialOpen: false,\n triggerLabel: \"Open dialog\",\n bodyText: \"Some content inside dialog…\",\n longBody: false,\n },\n};\nexport default meta;\n\ntype Story = StoryObj<typeof DialogDemo>;\n\nexport const Default: Story = {};\n\nexport const WithoutDescription: Story = {\n args: {\n description: \"\",\n },\n};\n\nexport const NoCloseButton: Story = {\n args: {\n showCloseButton: false,\n },\n};\n\nexport const NoFooter: Story = {\n args: {\n withFooter: false,\n },\n};\n\nexport const LongContentScrollable: Story = {\n args: {\n longBody: true,\n bodyText: \"Long text line\",\n },\n};\n\nexport const InitiallyOpen: Story = {\n args: {\n initialOpen: true,\n },\n};\n"],"names":["DialogDemo","props","controlledOpen","onOpenChange","title","description","showCloseButton","withFooter","initialOpen","triggerLabel","bodyText","longBody","internalOpen","setInternalOpen","useState","isControlled","open","setOpen","useCallback","next","jsx","Dialog","DialogTrigger","Button","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","_","i","DialogFooter","DialogClose","meta","Default","WithoutDescription","NoCloseButton","NoFooter","LongContentScrollable","InitiallyOpen"],"mappings":";;;;;AA6BA,SAASA,EAAWC,GAAwB;AAC1C,QAAM;AAAA,IACJ,MAAMC;AAAA,IACN,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,YAAAC,IAAa;AAAA,IACb,aAAAC,IAAc;AAAA,IACd,cAAAC,IAAe;AAAA,IACf,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,EAAA,IACTV,GAEE,CAAEW,GAAcC,CAAgB,IAAIC,EAASN,CAAW,GACxDO,IAAeb,MAAmB,QAClCc,IAAOD,IAAeb,IAAiBU,GACvCK,IAAUC,EAAY,CAACC,MAAkB;AAC7C,IAAKJ,KAAcF,EAAgBM,CAAI,GACvChB,IAAegB,CAAI;AAAA,EACrB,GAAG,CAAEJ,GAAcZ,CAAa,CAAC;AAEjC,SACE,gBAAAiB,EAAC,SAAI,WAAU,QACb,4BAACC,GAAA,EAAO,MAAAL,GAAY,cAAcC,GAChC,UAAA;AAAA,IAAA,gBAAAG,EAACE,GAAA,EAAc,SAAO,IACpB,UAAA,gBAAAF,EAACG,KAAO,SAAQ,YACb,aACH,EAAA,CACF;AAAA,IAEA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,iBAAAnB;AAAA,
|
|
1
|
+
{"version":3,"file":"Dialog.stories.js","sources":["../../src/Dialog/Dialog.stories.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\n\nimport {\n Dialog,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n DialogClose,\n} from \"./Dialog\";\nimport { Button } from \"../Button\";\nimport { useCallback, useState } from \"react\";\nimport { DialogControlsProps } from \"./Dialog.types\";\n\ntype DialogDemoProps = DialogControlsProps & {\n title: string;\n description?: string;\n showCloseButton?: boolean;\n withFooter?: boolean;\n initialOpen?: boolean;\n triggerLabel?: string;\n bodyText?: string;\n longBody?: boolean;\n};\n\n// TODO: create cmp like alert\nfunction DialogDemo(props: DialogDemoProps) {\n const {\n open: controlledOpen,\n onOpenChange,\n title,\n description,\n showCloseButton = true,\n withFooter = true,\n initialOpen = false,\n triggerLabel = \"Open dialog\",\n bodyText = \"Some content inside dialog…\",\n longBody = false,\n } = props;\n\n const [ internalOpen, setInternalOpen ] = useState(initialOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const setOpen = useCallback((next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n }, [ isControlled, onOpenChange ]);\n\n return (\n <div className=\"p-10\">\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button variant='outlined'>\n {triggerLabel}\n </Button>\n </DialogTrigger>\n\n <DialogContent\n showCloseButton={showCloseButton}\n className='p-12'\n >\n <DialogHeader>\n <DialogTitle>{title} 123</DialogTitle>\n {description ? <DialogDescription>{description}</DialogDescription> : null}\n </DialogHeader>\n\n <div className={longBody ? \"max-h-[50vh] overflow-auto pr-1\" : undefined}>\n {longBody ? (\n <div className=\"space-y-3 text-sm leading-6\">\n {Array.from({ length: 30 }).map((_, i) => (\n <p key={i}>\n #{i + 1}. {bodyText} Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n </p>\n ))}\n </div>\n ) : (\n <p className=\"text-sm leading-6\">{bodyText}</p>\n )}\n </div>\n\n {withFooter ? (\n <DialogFooter>\n <DialogClose asChild>\n <Button color='secondary'>\n Cancel\n </Button>\n </DialogClose>\n\n <Button onClick={() => setOpen(false)}>\n Save\n </Button>\n </DialogFooter>\n ) : null}\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nconst meta: Meta<typeof DialogDemo> = {\n title: \"UI/Dialog\",\n component: DialogDemo,\n parameters: {\n layout: \"fullscreen\",\n },\n argTypes: {\n title: { control: \"text\" },\n description: { control: \"text\" },\n showCloseButton: { control: \"boolean\" },\n withFooter: { control: \"boolean\" },\n initialOpen: { control: \"boolean\" },\n triggerLabel: { control: \"text\" },\n bodyText: { control: \"text\" },\n longBody: { control: \"boolean\" },\n },\n args: {\n title: \"Dialog title\",\n description: \"Dialog description\",\n showCloseButton: true,\n withFooter: true,\n initialOpen: false,\n triggerLabel: \"Open dialog\",\n bodyText: \"Some content inside dialog…\",\n longBody: false,\n },\n};\nexport default meta;\n\ntype Story = StoryObj<typeof DialogDemo>;\n\nexport const Default: Story = {};\n\nexport const WithoutDescription: Story = {\n args: {\n description: \"\",\n },\n};\n\nexport const NoCloseButton: Story = {\n args: {\n showCloseButton: false,\n },\n};\n\nexport const NoFooter: Story = {\n args: {\n withFooter: false,\n },\n};\n\nexport const LongContentScrollable: Story = {\n args: {\n longBody: true,\n bodyText: \"Long text line\",\n },\n};\n\nexport const InitiallyOpen: Story = {\n args: {\n initialOpen: true,\n },\n};\n"],"names":["DialogDemo","props","controlledOpen","onOpenChange","title","description","showCloseButton","withFooter","initialOpen","triggerLabel","bodyText","longBody","internalOpen","setInternalOpen","useState","isControlled","open","setOpen","useCallback","next","jsx","Dialog","DialogTrigger","Button","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","_","i","DialogFooter","DialogClose","meta","Default","WithoutDescription","NoCloseButton","NoFooter","LongContentScrollable","InitiallyOpen"],"mappings":";;;;;AA6BA,SAASA,EAAWC,GAAwB;AAC1C,QAAM;AAAA,IACJ,MAAMC;AAAA,IACN,cAAAC;AAAA,IACA,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,YAAAC,IAAa;AAAA,IACb,aAAAC,IAAc;AAAA,IACd,cAAAC,IAAe;AAAA,IACf,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,EAAA,IACTV,GAEE,CAAEW,GAAcC,CAAgB,IAAIC,EAASN,CAAW,GACxDO,IAAeb,MAAmB,QAClCc,IAAOD,IAAeb,IAAiBU,GACvCK,IAAUC,EAAY,CAACC,MAAkB;AAC7C,IAAKJ,KAAcF,EAAgBM,CAAI,GACvChB,IAAegB,CAAI;AAAA,EACrB,GAAG,CAAEJ,GAAcZ,CAAa,CAAC;AAEjC,SACE,gBAAAiB,EAAC,SAAI,WAAU,QACb,4BAACC,GAAA,EAAO,MAAAL,GAAY,cAAcC,GAChC,UAAA;AAAA,IAAA,gBAAAG,EAACE,GAAA,EAAc,SAAO,IACpB,UAAA,gBAAAF,EAACG,KAAO,SAAQ,YACb,aACH,EAAA,CACF;AAAA,IAEA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,iBAAAnB;AAAA,QACA,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAkB,EAACE,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAF,EAACG,GAAA,EAAa,UAAA;AAAA,cAAAvB;AAAA,cAAM;AAAA,YAAA,GAAI;AAAA,YACvBC,IAAc,gBAAAe,EAACQ,GAAA,EAAmB,UAAAvB,EAAA,CAAY,IAAuB;AAAA,UAAA,GACxE;AAAA,UAEA,gBAAAe,EAAC,SAAI,WAAWT,IAAW,oCAAoC,QAC5D,UAAAA,IACC,gBAAAS,EAAC,OAAA,EAAI,WAAU,+BACZ,gBAAM,KAAK,EAAE,QAAQ,GAAA,CAAI,EAAE,IAAI,CAACS,GAAGC,MAClC,gBAAAN,EAAC,KAAA,EAAU,UAAA;AAAA,YAAA;AAAA,YACPM,IAAI;AAAA,YAAE;AAAA,YAAGpB;AAAA,YAAS;AAAA,UAAA,EAAA,GADdoB,CAER,CACD,EAAA,CACH,sBAEC,KAAA,EAAE,WAAU,qBAAqB,UAAApB,EAAA,CAAS,EAAA,CAE/C;AAAA,UAECH,sBACEwB,GAAA,EACC,UAAA;AAAA,YAAA,gBAAAX,EAACY,GAAA,EAAY,SAAO,IAClB,UAAA,gBAAAZ,EAACG,KAAO,OAAM,aAAY,oBAE1B,EAAA,CACF;AAAA,8BAECA,GAAA,EAAO,SAAS,MAAMN,EAAQ,EAAK,GAAG,UAAA,OAAA,CAEvC;AAAA,UAAA,EAAA,CACF,IACE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,EAAA,CACF,EAAA,CACF;AAEJ;AAEA,MAAMgB,IAAgC;AAAA,EACpC,OAAO;AAAA,EACP,WAAWjC;AAAA,EACX,YAAY;AAAA,IACV,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,OAAO,EAAE,SAAS,OAAA;AAAA,IAClB,aAAa,EAAE,SAAS,OAAA;AAAA,IACxB,iBAAiB,EAAE,SAAS,UAAA;AAAA,IAC5B,YAAY,EAAE,SAAS,UAAA;AAAA,IACvB,aAAa,EAAE,SAAS,UAAA;AAAA,IACxB,cAAc,EAAE,SAAS,OAAA;AAAA,IACzB,UAAU,EAAE,SAAS,OAAA;AAAA,IACrB,UAAU,EAAE,SAAS,UAAA;AAAA,EAAU;AAAA,EAEjC,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,aAAa;AAAA,IACb,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,cAAc;AAAA,IACd,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd,GAKakC,IAAiB,CAAA,GAEjBC,IAA4B;AAAA,EACvC,MAAM;AAAA,IACJ,aAAa;AAAA,EAAA;AAEjB,GAEaC,IAAuB;AAAA,EAClC,MAAM;AAAA,IACJ,iBAAiB;AAAA,EAAA;AAErB,GAEaC,IAAkB;AAAA,EAC7B,MAAM;AAAA,IACJ,YAAY;AAAA,EAAA;AAEhB,GAEaC,IAA+B;AAAA,EAC1C,MAAM;AAAA,IACJ,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd,GAEaC,IAAuB;AAAA,EAClC,MAAM;AAAA,IACJ,aAAa;AAAA,EAAA;AAEjB;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
type UseDialogClosePositionOptions = {
|
|
3
2
|
enabled?: boolean;
|
|
4
3
|
titleSelector?: string;
|
|
@@ -7,6 +6,6 @@ type DialogClosePosition = {
|
|
|
7
6
|
top?: number;
|
|
8
7
|
right?: number;
|
|
9
8
|
};
|
|
10
|
-
export declare function useDialogClosePosition(
|
|
9
|
+
export declare function useDialogClosePosition(contentEl: HTMLElement | null, options?: UseDialogClosePositionOptions): DialogClosePosition;
|
|
11
10
|
export {};
|
|
12
11
|
//# sourceMappingURL=useDialogClosePosition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDialogClosePosition.d.ts","sourceRoot":"","sources":["../../src/Dialog/useDialogClosePosition.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDialogClosePosition.d.ts","sourceRoot":"","sources":["../../src/Dialog/useDialogClosePosition.ts"],"names":[],"mappings":"AAEA,KAAK,6BAA6B,GAAG;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,6BAA6B,uBAkFxC"}
|
|
@@ -1,53 +1,50 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
function
|
|
1
|
+
import * as a from "react";
|
|
2
|
+
function g(i, c) {
|
|
3
3
|
const {
|
|
4
|
-
enabled:
|
|
4
|
+
enabled: s = !0,
|
|
5
5
|
titleSelector: u = '[data-slot="dialog-title"]'
|
|
6
|
-
} =
|
|
7
|
-
|
|
8
|
-
}, []), o =
|
|
9
|
-
|
|
10
|
-
if (!a || !t) {
|
|
6
|
+
} = c ?? {}, [l, d] = a.useState({}), r = a.useCallback((t) => {
|
|
7
|
+
d((e) => e.top === t.top && e.right === t.right ? e : t);
|
|
8
|
+
}, []), o = a.useCallback(() => {
|
|
9
|
+
if (!s || !i) {
|
|
11
10
|
r({});
|
|
12
11
|
return;
|
|
13
12
|
}
|
|
14
|
-
const
|
|
15
|
-
if (!
|
|
13
|
+
const t = i.querySelector(u);
|
|
14
|
+
if (!t) {
|
|
16
15
|
r({});
|
|
17
16
|
return;
|
|
18
17
|
}
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
18
|
+
const e = i.getBoundingClientRect(), n = t.getBoundingClientRect();
|
|
19
|
+
if (e.width <= 0 || e.height <= 0 || n.width <= 0 || n.height <= 0) {
|
|
21
20
|
r({});
|
|
22
21
|
return;
|
|
23
22
|
}
|
|
24
23
|
r({
|
|
25
|
-
top: Math.round(
|
|
26
|
-
right: Math.round(
|
|
24
|
+
top: Math.round(n.top - e.top),
|
|
25
|
+
right: Math.round(e.right - n.right)
|
|
27
26
|
});
|
|
28
|
-
}, [
|
|
29
|
-
return
|
|
30
|
-
if (!
|
|
27
|
+
}, [i, s, r, u]);
|
|
28
|
+
return a.useEffect(() => {
|
|
29
|
+
if (!s || !i) {
|
|
31
30
|
r({});
|
|
32
31
|
return;
|
|
33
32
|
}
|
|
34
33
|
let t = 0, e = 0;
|
|
35
|
-
const n = s.current;
|
|
36
|
-
if (!n) return;
|
|
37
34
|
t = requestAnimationFrame(() => {
|
|
38
35
|
e = requestAnimationFrame(() => {
|
|
39
36
|
o();
|
|
40
37
|
});
|
|
41
38
|
});
|
|
42
|
-
const
|
|
39
|
+
const n = new ResizeObserver(() => {
|
|
43
40
|
o();
|
|
44
41
|
});
|
|
45
|
-
return
|
|
46
|
-
cancelAnimationFrame(t), cancelAnimationFrame(e),
|
|
42
|
+
return n.observe(i), window.addEventListener("resize", o), () => {
|
|
43
|
+
cancelAnimationFrame(t), cancelAnimationFrame(e), n.disconnect(), window.removeEventListener("resize", o);
|
|
47
44
|
};
|
|
48
|
-
}, [
|
|
45
|
+
}, [i, s, o, r]), l;
|
|
49
46
|
}
|
|
50
47
|
export {
|
|
51
|
-
|
|
48
|
+
g as useDialogClosePosition
|
|
52
49
|
};
|
|
53
50
|
//# sourceMappingURL=useDialogClosePosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDialogClosePosition.js","sources":["../../src/Dialog/useDialogClosePosition.ts"],"sourcesContent":["import * as React from 'react';\n\ntype UseDialogClosePositionOptions = {\n enabled?: boolean;\n titleSelector?: string;\n};\n\ntype DialogClosePosition = {\n top?: number;\n right?: number;\n};\n\nexport function useDialogClosePosition(\n
|
|
1
|
+
{"version":3,"file":"useDialogClosePosition.js","sources":["../../src/Dialog/useDialogClosePosition.ts"],"sourcesContent":["import * as React from 'react';\n\ntype UseDialogClosePositionOptions = {\n enabled?: boolean;\n titleSelector?: string;\n};\n\ntype DialogClosePosition = {\n top?: number;\n right?: number;\n};\n\nexport function useDialogClosePosition(\n contentEl: HTMLElement | null,\n options?: UseDialogClosePositionOptions,\n) {\n const {\n enabled = true,\n titleSelector = '[data-slot=\"dialog-title\"]',\n } = options ?? {};\n\n const [position, setPosition] = React.useState<DialogClosePosition>({});\n\n const setIfChanged = React.useCallback((next: DialogClosePosition) => {\n setPosition((prev) => {\n if (prev.top === next.top && prev.right === next.right) {\n return prev;\n }\n\n return next;\n });\n }, []);\n\n const measure = React.useCallback(() => {\n if (!enabled || !contentEl) {\n setIfChanged({});\n return;\n }\n\n const titleEl = contentEl.querySelector<HTMLElement>(titleSelector);\n\n if (!titleEl) {\n setIfChanged({});\n return;\n }\n\n const contentRect = contentEl.getBoundingClientRect();\n const titleRect = titleEl.getBoundingClientRect();\n\n if (\n contentRect.width <= 0 ||\n contentRect.height <= 0 ||\n titleRect.width <= 0 ||\n titleRect.height <= 0\n ) {\n setIfChanged({});\n return;\n }\n\n setIfChanged({\n top: Math.round(titleRect.top - contentRect.top),\n right: Math.round(contentRect.right - titleRect.right),\n });\n }, [contentEl, enabled, setIfChanged, titleSelector]);\n\n React.useEffect(() => {\n if (!enabled || !contentEl) {\n setIfChanged({});\n return;\n }\n\n let raf1 = 0;\n let raf2 = 0;\n\n raf1 = requestAnimationFrame(() => {\n raf2 = requestAnimationFrame(() => {\n measure();\n });\n });\n\n const resizeObserver = new ResizeObserver(() => {\n measure();\n });\n\n resizeObserver.observe(contentEl);\n window.addEventListener('resize', measure);\n\n return () => {\n cancelAnimationFrame(raf1);\n cancelAnimationFrame(raf2);\n resizeObserver.disconnect();\n window.removeEventListener('resize', measure);\n };\n }, [contentEl, enabled, measure, setIfChanged]);\n\n return position;\n}\n"],"names":["useDialogClosePosition","contentEl","options","enabled","titleSelector","position","setPosition","React","setIfChanged","next","prev","measure","titleEl","contentRect","titleRect","raf1","raf2","resizeObserver"],"mappings":";AAYO,SAASA,EACdC,GACAC,GACA;AACA,QAAM;AAAA,IACJ,SAAAC,IAAU;AAAA,IACV,eAAAC,IAAgB;AAAA,EAAA,IACdF,KAAW,CAAA,GAET,CAACG,GAAUC,CAAW,IAAIC,EAAM,SAA8B,CAAA,CAAE,GAEhEC,IAAeD,EAAM,YAAY,CAACE,MAA8B;AACpE,IAAAH,EAAY,CAACI,MACPA,EAAK,QAAQD,EAAK,OAAOC,EAAK,UAAUD,EAAK,QACxCC,IAGFD,CACR;AAAA,EACH,GAAG,CAAA,CAAE,GAECE,IAAUJ,EAAM,YAAY,MAAM;AACtC,QAAI,CAACJ,KAAW,CAACF,GAAW;AAC1B,MAAAO,EAAa,CAAA,CAAE;AACf;AAAA,IACF;AAEA,UAAMI,IAAUX,EAAU,cAA2BG,CAAa;AAElE,QAAI,CAACQ,GAAS;AACZ,MAAAJ,EAAa,CAAA,CAAE;AACf;AAAA,IACF;AAEA,UAAMK,IAAcZ,EAAU,sBAAA,GACxBa,IAAYF,EAAQ,sBAAA;AAE1B,QACEC,EAAY,SAAS,KACrBA,EAAY,UAAU,KACtBC,EAAU,SAAS,KACnBA,EAAU,UAAU,GACpB;AACA,MAAAN,EAAa,CAAA,CAAE;AACf;AAAA,IACF;AAEA,IAAAA,EAAa;AAAA,MACX,KAAK,KAAK,MAAMM,EAAU,MAAMD,EAAY,GAAG;AAAA,MAC/C,OAAO,KAAK,MAAMA,EAAY,QAAQC,EAAU,KAAK;AAAA,IAAA,CACtD;AAAA,EACH,GAAG,CAACb,GAAWE,GAASK,GAAcJ,CAAa,CAAC;AAEpD,SAAAG,EAAM,UAAU,MAAM;AACpB,QAAI,CAACJ,KAAW,CAACF,GAAW;AAC1B,MAAAO,EAAa,CAAA,CAAE;AACf;AAAA,IACF;AAEA,QAAIO,IAAO,GACPC,IAAO;AAEX,IAAAD,IAAO,sBAAsB,MAAM;AACjC,MAAAC,IAAO,sBAAsB,MAAM;AACjC,QAAAL,EAAA;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAED,UAAMM,IAAiB,IAAI,eAAe,MAAM;AAC9C,MAAAN,EAAA;AAAA,IACF,CAAC;AAED,WAAAM,EAAe,QAAQhB,CAAS,GAChC,OAAO,iBAAiB,UAAUU,CAAO,GAElC,MAAM;AACX,2BAAqBI,CAAI,GACzB,qBAAqBC,CAAI,GACzBC,EAAe,WAAA,GACf,OAAO,oBAAoB,UAAUN,CAAO;AAAA,IAC9C;AAAA,EACF,GAAG,CAACV,GAAWE,GAASQ,GAASH,CAAY,CAAC,GAEvCH;AACT;"}
|
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.250",
|
|
4
4
|
"description": "UI component library for OnePlatform",
|
|
5
5
|
"author": "One Platform Development Team",
|
|
6
6
|
"keywords": [
|
|
@@ -106,9 +106,9 @@
|
|
|
106
106
|
"recharts": "^3.2.0",
|
|
107
107
|
"sonner": "^2.0.7",
|
|
108
108
|
"vaul": "^1.1.2",
|
|
109
|
-
"@oneplatformdev/
|
|
110
|
-
"@oneplatformdev/
|
|
111
|
-
"@oneplatformdev/
|
|
109
|
+
"@oneplatformdev/hooks": "^0.1.99-beta.250",
|
|
110
|
+
"@oneplatformdev/utils": "^0.1.99-beta.250",
|
|
111
|
+
"@oneplatformdev/tokens": "^0.1.99-beta.250"
|
|
112
112
|
},
|
|
113
113
|
"scripts": {
|
|
114
114
|
"chromatic": "chromatic"
|