@bioturing/components 0.44.1 → 0.45.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.
@@ -2,14 +2,14 @@
2
2
  import { jsx as e, jsxs as n } from "react/jsx-runtime";
3
3
  import { Dialog as s } from "@base-ui/react/dialog";
4
4
  import { useStableCallback as D } from "@base-ui/utils/useStableCallback";
5
- import { XIcon as be } from "@bioturing/assets";
6
- import { getConfirmLocale as Le } from "antd/es/modal/locale";
5
+ import { XIcon as Le } from "@bioturing/assets";
6
+ import { getConfirmLocale as be } from "antd/es/modal/locale";
7
7
  import { useLocale as Te } from "antd/es/locale";
8
- import { useState as Ie, useRef as ye, useMemo as Se, useCallback as xe, useEffect as we } from "react";
8
+ import { useState as Ie, useRef as ye, useMemo as Se, useCallback as we, useEffect as xe } from "react";
9
9
  import { Button as z } from "../button/component.js";
10
10
  import { useControlledState as Fe } from "../hooks/useControlledState.js";
11
- import { Stack as b } from "../stack/index.js";
12
- import { DIALOG_SIZE_WIDTHS as L, DIALOG_CLOSE_REASON_ESCAPE as Ge, DIALOG_DEFAULT_CANCEL_TEXT as ke, DIALOG_DEFAULT_OK_TEXT as Re, DIALOG_DEFAULT_SIZE as Ue, DIALOG_DEFAULT_BODY_SCROLLABLE as ze, DIALOG_DEFAULT_CENTERED as He, DIALOG_DEFAULT_OPEN as $e } from "./constants.js";
11
+ import { Stack as L } from "../stack/index.js";
12
+ import { DIALOG_SIZE_WIDTHS as b, DIALOG_CLOSE_REASON_ESCAPE as Ge, DIALOG_DEFAULT_CANCEL_TEXT as ke, DIALOG_DEFAULT_OK_TEXT as Re, DIALOG_DEFAULT_SIZE as Ue, DIALOG_DEFAULT_BODY_SCROLLABLE as ze, DIALOG_DEFAULT_CENTERED as He, DIALOG_DEFAULT_OPEN as $e } from "./constants.js";
13
13
  import { useCls as Be } from "../utils/antdUtils.js";
14
14
  import { useTheme as Me } from "../theme-provider/context/themeStore.js";
15
15
  import { clsx as d } from "../utils/cn.js";
@@ -17,30 +17,30 @@ import { Truncate as We } from "../truncate/component.js";
17
17
  import { IconButton as Xe } from "../icon-button/component.js";
18
18
  import { Spin as je } from "../spin/component.js";
19
19
  const Ke = parseInt(
20
- L.medium,
20
+ b.medium,
21
21
  10
22
22
  );
23
- function Ve(r) {
24
- if (!(typeof r > "u"))
25
- return r === !1 || r === 0 ? "0" : typeof r == "number" ? `${r}px` : r;
23
+ function Ve(l) {
24
+ if (!(typeof l > "u"))
25
+ return l === !1 || l === 0 ? "0" : typeof l == "number" ? `${l}px` : l;
26
26
  }
27
- function Ze(r, u) {
27
+ function Ze(l, u) {
28
28
  if (u)
29
29
  return u;
30
- const f = parseInt(L[r], 10);
30
+ const f = parseInt(b[l], 10);
31
31
  return !Number.isNaN(f) && f <= Ke ? "elevated" : "container";
32
32
  }
33
- const mo = ({
34
- children: r,
33
+ const fr = ({
34
+ children: l,
35
35
  open: u,
36
36
  defaultOpen: f = $e,
37
37
  onCancel: H,
38
38
  onClose: $,
39
39
  onOk: B,
40
40
  title: i,
41
- footer: p,
41
+ footer: g,
42
42
  size: M,
43
- loading: g = !1,
43
+ loading: m = !1,
44
44
  confirmLoading: c = !1,
45
45
  hideOkButton: T = !1,
46
46
  hideCancelButton: I = !1,
@@ -56,56 +56,56 @@ const mo = ({
56
56
  type: Y = "default",
57
57
  background: q,
58
58
  bodyScrollable: J = ze,
59
- closeIcon: C,
59
+ closeIcon: v,
60
60
  closable: P = !0,
61
61
  maskClosable: Q = !0,
62
62
  keyboard: ee = !0,
63
- width: O,
64
- style: x,
65
- destroyOnHidden: oe = !1,
66
- afterOpenChange: re,
63
+ width: C,
64
+ style: w,
65
+ destroyOnHidden: re = !1,
66
+ afterOpenChange: oe,
67
67
  className: le,
68
68
  rootClassName: se,
69
69
  headerClassName: ae,
70
70
  bodyClassName: te,
71
71
  footerClassName: ne,
72
- okButtonProps: v,
72
+ okButtonProps: O,
73
73
  cancelButtonProps: ie
74
74
  }) => {
75
- const o = Be(), { className: ce } = Me(), [de, A] = Fe(
75
+ const r = Be(), { className: ce } = Me(), [de, A] = Fe(
76
76
  u,
77
77
  void 0,
78
78
  f
79
- ), [w] = Te("Modal", Le()), [ue, fe] = Ie(!1), a = ye(null), m = M ?? (Y === "default" ? Ue : "xsmall"), F = m === "fullscreen", E = typeof p < "u", me = !E && !(T && I), G = P && C !== !1, k = Ze(m, q), pe = C === void 0 ? /* @__PURE__ */ e(be, { size: 16, weight: "bold" }) : C, N = Ve(K), ge = W || w?.okText, _ = X || w?.cancelText, he = typeof _ == "string" ? _ : "Close", R = typeof O == "number" ? `${O}px` : O ?? L[m], Ce = Se(
79
+ ), [x] = Te("Modal", be()), [ue, fe] = Ie(!1), a = ye(null), p = M ?? (Y === "default" ? Ue : "xsmall"), F = p === "fullscreen", E = typeof g < "u", me = !E && !(T && I), G = P && v !== !1, k = Ze(p, q), pe = v === void 0 ? /* @__PURE__ */ e(Le, { size: 16, weight: "bold" }) : v, N = Ve(K), ge = W || x?.okText, _ = X || x?.cancelText, he = typeof _ == "string" ? _ : "Close", R = typeof C == "number" ? `${C}px` : C ?? b[p], ve = Se(
80
80
  () => ({
81
81
  "--ds-dialog-width": R,
82
82
  "--ds-dialog-bg": `var(--ds-color-bg-${k})`,
83
83
  ...N ? {
84
84
  "--ds-dialog-content-padding": N
85
85
  } : {},
86
- ...x
86
+ ...w
87
87
  }),
88
- [k, N, R, x]
89
- ), Oe = xe((l) => {
90
- if (a.current && (a.current.disconnect(), a.current = null), !l)
88
+ [k, N, R, w]
89
+ ), Ce = we((o) => {
90
+ if (a.current && (a.current.disconnect(), a.current = null), !o)
91
91
  return;
92
92
  const t = () => {
93
- fe(l.scrollHeight > l.clientHeight);
93
+ fe(o.scrollHeight > o.clientHeight);
94
94
  }, U = new ResizeObserver(() => {
95
95
  t();
96
96
  });
97
- U.observe(l), a.current = U, t();
97
+ U.observe(o), a.current = U, t();
98
98
  }, []);
99
- we(() => () => {
99
+ xe(() => () => {
100
100
  a.current && (a.current.disconnect(), a.current = null);
101
101
  }, []);
102
- const ve = D((l) => {
103
- c || (A(!1), H?.(l), $?.(l));
104
- }), Ae = D((l) => {
105
- c || (A(!1), B?.(l));
102
+ const Oe = D((o) => {
103
+ c || (A(!1), H?.(o), $?.(o));
104
+ }), Ae = D((o) => {
105
+ c || (A(!1), B?.(o));
106
106
  }), Ee = D(
107
- (l, t) => {
108
- if (l) {
107
+ (o, t) => {
108
+ if (o) {
109
109
  A(!0);
110
110
  return;
111
111
  }
@@ -117,57 +117,58 @@ const mo = ({
117
117
  t.cancel();
118
118
  return;
119
119
  }
120
- ve(t.event);
120
+ Oe(t.event);
121
121
  }
122
- ), Ne = i || h || y || S || G, _e = E ? p !== null : me, De = V || ue || F;
122
+ ), Ne = i || h || y || S || G, _e = E ? g !== null : me, De = V || ue || F;
123
123
  return /* @__PURE__ */ e(
124
124
  s.Root,
125
125
  {
126
126
  open: !!de,
127
127
  onOpenChange: Ee,
128
- onOpenChangeComplete: re,
128
+ onOpenChangeComplete: oe,
129
129
  modal: !0,
130
130
  disablePointerDismissal: !Q,
131
- children: /* @__PURE__ */ n(s.Portal, { keepMounted: !oe, children: [
132
- /* @__PURE__ */ e(s.Backdrop, { className: o("dialog-mask") }),
131
+ children: /* @__PURE__ */ n(s.Portal, { keepMounted: !re, children: [
132
+ /* @__PURE__ */ e(s.Backdrop, { className: r("dialog-mask") }),
133
133
  /* @__PURE__ */ e(
134
134
  s.Viewport,
135
135
  {
136
136
  className: d(
137
137
  ce,
138
138
  se,
139
- o(
139
+ r(
140
140
  "dialog-wrap",
141
141
  Z ? "dialog-centered" : "dialog-top-aligned",
142
- F && "dialog-wrap-fullscreen"
142
+ F && "dialog-wrap-fullscreen",
143
+ m && "dialog-loading"
143
144
  )
144
145
  ),
145
146
  children: /* @__PURE__ */ e(
146
147
  s.Popup,
147
148
  {
148
149
  className: d(
149
- o(
150
+ r(
150
151
  "dialog",
151
- `dialog-size-${m}`,
152
+ `dialog-size-${p}`,
152
153
  De && "dialog-fixed",
153
154
  J === !1 && "dialog-no-body-scroll",
154
- g && "dialog-loading"
155
+ m && "dialog-loading"
155
156
  ),
156
157
  le
157
158
  ),
158
- style: Ce,
159
- "aria-busy": g || void 0,
160
- children: /* @__PURE__ */ n("div", { className: o("dialog-content"), children: [
161
- Ne && /* @__PURE__ */ n("div", { className: d(o("dialog-header"), ae), children: [
159
+ style: ve,
160
+ "aria-busy": m || void 0,
161
+ children: /* @__PURE__ */ n("div", { className: r("dialog-content"), children: [
162
+ Ne && /* @__PURE__ */ n("div", { className: d(r("dialog-header"), ae), children: [
162
163
  /* @__PURE__ */ n(
163
- b,
164
+ L,
164
165
  {
165
166
  align: "center",
166
167
  gap: 8,
167
- className: o("dialog-title-row"),
168
+ className: r("dialog-title-row"),
168
169
  children: [
169
- /* @__PURE__ */ e(b.Child, { grow: !0, children: i ? /* @__PURE__ */ e(s.Title, { className: o("dialog-title"), children: typeof i == "string" ? /* @__PURE__ */ e(We, { children: i }) : i }) : /* @__PURE__ */ e("div", {}) }),
170
- /* @__PURE__ */ n(b.Child, { stack: !0, hug: !0, align: "center", gap: 8, children: [
170
+ /* @__PURE__ */ e(L.Child, { grow: !0, children: i ? /* @__PURE__ */ e(s.Title, { className: r("dialog-title"), children: typeof i == "string" ? /* @__PURE__ */ e(We, { children: i }) : i }) : /* @__PURE__ */ e("div", {}) }),
171
+ /* @__PURE__ */ n(L.Child, { stack: !0, hug: !0, align: "center", gap: 8, children: [
171
172
  y,
172
173
  G && /* @__PURE__ */ e(
173
174
  s.Close,
@@ -175,7 +176,7 @@ const mo = ({
175
176
  render: /* @__PURE__ */ e(
176
177
  Xe,
177
178
  {
178
- className: o("dialog-close"),
179
+ className: r("dialog-close"),
179
180
  "aria-label": he,
180
181
  children: pe
181
182
  }
@@ -187,17 +188,20 @@ const mo = ({
187
188
  ]
188
189
  }
189
190
  ),
190
- h ? /* @__PURE__ */ e("div", { className: o("dialog-header-after-title"), children: h }) : null
191
+ h ? /* @__PURE__ */ e("div", { className: r("dialog-header-after-title"), children: h }) : null
191
192
  ] }),
192
- /* @__PURE__ */ e(
193
- "div",
194
- {
195
- ref: Oe,
196
- className: d(o("dialog-body"), te),
197
- children: g ? /* @__PURE__ */ e(je, { spinning: !0, className: o("dialog-body-spin"), children: /* @__PURE__ */ e("div", { className: o("dialog-body-content"), children: r }) }) : r
198
- }
199
- ),
200
- _e && /* @__PURE__ */ e("div", { className: d(o("dialog-footer"), ne), children: E ? p : /* @__PURE__ */ n("div", { className: o("dialog-footer-actions"), children: [
193
+ /* @__PURE__ */ n("div", { className: r("dialog-body-wrapper"), children: [
194
+ /* @__PURE__ */ e(
195
+ "div",
196
+ {
197
+ ref: Ce,
198
+ className: d(r("dialog-body"), te),
199
+ children: l
200
+ }
201
+ ),
202
+ m ? /* @__PURE__ */ e("div", { className: r("dialog-loading-overlay"), children: /* @__PURE__ */ e(je, {}) }) : null
203
+ ] }),
204
+ _e && /* @__PURE__ */ e("div", { className: d(r("dialog-footer"), ne), children: E ? g : /* @__PURE__ */ n("div", { className: r("dialog-footer-actions"), children: [
201
205
  !I && /* @__PURE__ */ e(
202
206
  s.Close,
203
207
  {
@@ -208,9 +212,9 @@ const mo = ({
208
212
  z,
209
213
  {
210
214
  type: j,
211
- ...v,
212
- disabled: c || v?.disabled,
213
- loading: c || v?.loading,
215
+ ...O,
216
+ disabled: c || O?.disabled,
217
+ loading: c || O?.loading,
214
218
  onClick: Ae,
215
219
  children: ge
216
220
  }
@@ -226,6 +230,6 @@ const mo = ({
226
230
  );
227
231
  };
228
232
  export {
229
- mo as Dialog
233
+ fr as Dialog
230
234
  };
231
235
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../src/components/dialog/Dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { useStableCallback } from \"@base-ui/utils/useStableCallback\";\nimport { XIcon } from \"@bioturing/assets\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport React, {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { Button, type ButtonProps } from \"../button/component\";\nimport { useControlledState } from \"../hooks/useControlledState\";\nimport { IconButton } from \"../icon-button\";\nimport { Spin } from \"../spin\";\nimport { Stack } from \"../stack\";\nimport { useTheme } from \"../theme-provider\";\nimport { Truncate } from \"../truncate\";\nimport { clsx, useCls } from \"../utils\";\nimport type { ModalType } from \"../modal/functions\";\nimport {\n\tDIALOG_CLOSE_REASON_ESCAPE,\n\tDIALOG_DEFAULT_BODY_SCROLLABLE,\n\tDIALOG_DEFAULT_CANCEL_TEXT,\n\tDIALOG_DEFAULT_CENTERED,\n\tDIALOG_DEFAULT_OK_TEXT,\n\tDIALOG_DEFAULT_OPEN,\n\tDIALOG_DEFAULT_SIZE,\n\tDIALOG_SIZE_WIDTHS,\n\ttype DialogBackground,\n\ttype DialogSize,\n} from \"./constants\";\n\nexport type DialogCancelEvent = Event | React.MouseEvent<HTMLButtonElement>;\nexport type DialogOkEvent = React.MouseEvent<HTMLButtonElement>;\n\nconst DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH = parseInt(\n\tDIALOG_SIZE_WIDTHS.medium,\n\t10,\n);\n\nfunction resolveContentPadding(\n\tcontentPadding: number | string | boolean | undefined,\n) {\n\tif (typeof contentPadding === \"undefined\") {\n\t\treturn undefined;\n\t}\n\n\tif (contentPadding === false || contentPadding === 0) {\n\t\treturn \"0\";\n\t}\n\n\treturn typeof contentPadding === \"number\"\n\t\t? `${contentPadding}px`\n\t\t: contentPadding;\n}\n\nfunction resolveBackground(\n\tsize: DialogSize,\n\tbackground?: DialogBackground,\n): DialogBackground {\n\tif (background) {\n\t\treturn background;\n\t}\n\n\tconst dialogWidth = parseInt(DIALOG_SIZE_WIDTHS[size], 10);\n\n\tif (\n\t\t!Number.isNaN(dialogWidth) &&\n\t\tdialogWidth <= DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH\n\t) {\n\t\treturn \"elevated\";\n\t}\n\n\treturn \"container\";\n}\n\nexport interface DialogProps {\n\tchildren?: React.ReactNode;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonCancel?: (event?: DialogCancelEvent) => void;\n\t/**\n\t * @deprecated Use `onCancel` instead.\n\t */\n\tonClose?: (event?: DialogCancelEvent) => void;\n\tonOk?: (event: DialogOkEvent) => void;\n\ttitle?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\tsize?: DialogSize;\n\tloading?: boolean;\n\tconfirmLoading?: boolean;\n\thideOkButton?: boolean;\n\thideCancelButton?: boolean;\n\tokText?: React.ReactNode;\n\tcancelText?: React.ReactNode;\n\tokType?: ButtonProps[\"type\"];\n\tcontentPadding?: number | string | boolean;\n\tafterTitle?: React.ReactNode;\n\tbeforeCloseButton?: React.ReactNode;\n\tafterCloseButton?: React.ReactNode;\n\tdefaultFixedHeaderFooter?: boolean;\n\tcentered?: boolean;\n\ttype?: ModalType;\n\tbackground?: DialogBackground;\n\tbodyScrollable?: boolean;\n\tcloseIcon?: React.ReactNode | false;\n\tclosable?: boolean;\n\tmaskClosable?: boolean;\n\tkeyboard?: boolean;\n\twidth?: number | string;\n\tstyle?: React.CSSProperties;\n\tdestroyOnHidden?: boolean;\n\tafterOpenChange?: (open: boolean) => void;\n\tclassName?: string;\n\trootClassName?: string;\n\theaderClassName?: string;\n\tbodyClassName?: string;\n\tfooterClassName?: string;\n\tokButtonProps?: ButtonProps;\n\tcancelButtonProps?: ButtonProps;\n}\n\nexport const Dialog = ({\n\tchildren,\n\topen: openProp,\n\tdefaultOpen = DIALOG_DEFAULT_OPEN,\n\tonCancel,\n\tonClose,\n\tonOk,\n\ttitle,\n\tfooter,\n\tsize,\n\tloading = false,\n\tconfirmLoading = false,\n\thideOkButton = false,\n\thideCancelButton = false,\n\tokText = DIALOG_DEFAULT_OK_TEXT,\n\tcancelText = DIALOG_DEFAULT_CANCEL_TEXT,\n\tokType = \"primary\",\n\tcontentPadding,\n\tafterTitle,\n\tbeforeCloseButton,\n\tafterCloseButton,\n\tdefaultFixedHeaderFooter = false,\n\tcentered = DIALOG_DEFAULT_CENTERED,\n\ttype = \"default\",\n\tbackground,\n\tbodyScrollable = DIALOG_DEFAULT_BODY_SCROLLABLE,\n\tcloseIcon,\n\tclosable = true,\n\tmaskClosable = true,\n\tkeyboard = true,\n\twidth,\n\tstyle,\n\tdestroyOnHidden = false,\n\tafterOpenChange,\n\tclassName,\n\trootClassName,\n\theaderClassName,\n\tbodyClassName,\n\tfooterClassName,\n\tokButtonProps,\n\tcancelButtonProps,\n}: DialogProps) => {\n\tconst cls = useCls();\n\tconst { className: themeClassName } = useTheme();\n\tconst [actualOpen, setActualOpen] = useControlledState(\n\t\topenProp,\n\t\tundefined,\n\t\tdefaultOpen,\n\t);\n\tconst [locale] = useLocale(\"Modal\", getConfirmLocale());\n\tconst [isContentOverflow, setIsContentOverflow] = useState(false);\n\tconst resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n\tconst resolvedSize =\n\t\tsize ?? (type === \"default\" ? DIALOG_DEFAULT_SIZE : \"xsmall\");\n\tconst isFullscreen = resolvedSize === \"fullscreen\";\n\tconst hasCustomFooter = typeof footer !== \"undefined\";\n\tconst showDefaultFooter =\n\t\t!hasCustomFooter && !(hideOkButton && hideCancelButton);\n\tconst showCloseButton = closable && closeIcon !== false;\n\tconst resolvedBackground = resolveBackground(resolvedSize, background);\n\tconst resolvedCloseIcon =\n\t\tcloseIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n\tconst resolvedContentPadding = resolveContentPadding(contentPadding);\n\tconst okTextLocale = okText || locale?.okText;\n\tconst cancelTextLocale = cancelText || locale?.cancelText;\n\tconst closeAriaLabel =\n\t\ttypeof cancelTextLocale === \"string\" ? cancelTextLocale : \"Close\";\n\tconst resolvedWidth =\n\t\ttypeof width === \"number\"\n\t\t\t? `${width}px`\n\t\t\t: (width ?? DIALOG_SIZE_WIDTHS[resolvedSize]);\n\n\tconst popupStyle = useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\t\"--ds-dialog-width\": resolvedWidth,\n\t\t\t\t\"--ds-dialog-bg\": `var(--ds-color-bg-${resolvedBackground})`,\n\t\t\t\t...(resolvedContentPadding\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t\"--ds-dialog-content-padding\": resolvedContentPadding,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t\t...style,\n\t\t\t}) as React.CSSProperties,\n\t\t[resolvedBackground, resolvedContentPadding, resolvedWidth, style],\n\t);\n\n\tconst observeBodyOverflow = useCallback((node: HTMLDivElement | null) => {\n\t\tif (resizeObserverRef.current) {\n\t\t\tresizeObserverRef.current.disconnect();\n\t\t\tresizeObserverRef.current = null;\n\t\t}\n\n\t\tif (!node) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst updateOverflowState = () => {\n\t\t\tsetIsContentOverflow(node.scrollHeight > node.clientHeight);\n\t\t};\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tupdateOverflowState();\n\t\t});\n\n\t\tresizeObserver.observe(node);\n\t\tresizeObserverRef.current = resizeObserver;\n\t\tupdateOverflowState();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (resizeObserverRef.current) {\n\t\t\t\tresizeObserverRef.current.disconnect();\n\t\t\t\tresizeObserverRef.current = null;\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleCancel = useStableCallback((event?: DialogCancelEvent) => {\n\t\tif (confirmLoading) {\n\t\t\treturn;\n\t\t}\n\t\tsetActualOpen(false);\n\t\tonCancel?.(event);\n\t\tonClose?.(event);\n\t});\n\n\tconst handleOk = useStableCallback((event: DialogOkEvent) => {\n\t\tif (confirmLoading) {\n\t\t\treturn;\n\t\t}\n\t\tsetActualOpen(false);\n\t\tonOk?.(event);\n\t});\n\n\tconst handleOpenChange = useStableCallback(\n\t\t(\n\t\t\tnextOpen: boolean,\n\t\t\teventDetails: Parameters<\n\t\t\t\tNonNullable<\n\t\t\t\t\tReact.ComponentProps<typeof BaseDialog.Root>[\"onOpenChange\"]\n\t\t\t\t>\n\t\t\t>[1],\n\t\t) => {\n\t\t\tif (nextOpen) {\n\t\t\t\tsetActualOpen(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\teventDetails.reason === DIALOG_CLOSE_REASON_ESCAPE &&\n\t\t\t\tkeyboard === false\n\t\t\t) {\n\t\t\t\teventDetails.cancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (confirmLoading) {\n\t\t\t\teventDetails.cancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thandleCancel(eventDetails.event);\n\t\t},\n\t);\n\n\tconst hasHeader =\n\t\ttitle ||\n\t\tafterTitle ||\n\t\tbeforeCloseButton ||\n\t\tafterCloseButton ||\n\t\tshowCloseButton;\n\tconst hasFooter = hasCustomFooter ? footer !== null : showDefaultFooter;\n\tconst fixedChrome =\n\t\tdefaultFixedHeaderFooter || isContentOverflow || isFullscreen;\n\n\treturn (\n\t\t<BaseDialog.Root\n\t\t\topen={!!actualOpen}\n\t\t\tonOpenChange={handleOpenChange}\n\t\t\tonOpenChangeComplete={afterOpenChange}\n\t\t\tmodal={true}\n\t\t\tdisablePointerDismissal={!maskClosable}\n\t\t>\n\t\t\t<BaseDialog.Portal keepMounted={!destroyOnHidden}>\n\t\t\t\t<BaseDialog.Backdrop className={cls(\"dialog-mask\")} />\n\t\t\t\t<BaseDialog.Viewport\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\tthemeClassName,\n\t\t\t\t\t\trootClassName,\n\t\t\t\t\t\tcls(\n\t\t\t\t\t\t\t\"dialog-wrap\",\n\t\t\t\t\t\t\tcentered ? \"dialog-centered\" : \"dialog-top-aligned\",\n\t\t\t\t\t\t\tisFullscreen && \"dialog-wrap-fullscreen\",\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<BaseDialog.Popup\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\tcls(\n\t\t\t\t\t\t\t\t\"dialog\",\n\t\t\t\t\t\t\t\t`dialog-size-${resolvedSize}`,\n\t\t\t\t\t\t\t\tfixedChrome && \"dialog-fixed\",\n\t\t\t\t\t\t\t\tbodyScrollable === false && \"dialog-no-body-scroll\",\n\t\t\t\t\t\t\t\tloading && \"dialog-loading\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tstyle={popupStyle}\n\t\t\t\t\t\taria-busy={loading || undefined}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cls(\"dialog-content\")}>\n\t\t\t\t\t\t\t{hasHeader && (\n\t\t\t\t\t\t\t\t<div className={clsx(cls(\"dialog-header\"), headerClassName)}>\n\t\t\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\tgap={8}\n\t\t\t\t\t\t\t\t\t\tclassName={cls(\"dialog-title-row\")}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Stack.Child grow>\n\t\t\t\t\t\t\t\t\t\t\t{title ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<BaseDialog.Title className={cls(\"dialog-title\")}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{typeof title === \"string\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Truncate>{title}</Truncate>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</BaseDialog.Title>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<div />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</Stack.Child>\n\t\t\t\t\t\t\t\t\t\t<Stack.Child stack hug align=\"center\" gap={8}>\n\t\t\t\t\t\t\t\t\t\t\t{beforeCloseButton}\n\t\t\t\t\t\t\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t\t\t\t\t\t\t<BaseDialog.Close\n\t\t\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cls(\"dialog-close\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={closeAriaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{resolvedCloseIcon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{afterCloseButton}\n\t\t\t\t\t\t\t\t\t\t</Stack.Child>\n\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t{afterTitle ? (\n\t\t\t\t\t\t\t\t\t\t<div className={cls(\"dialog-header-after-title\")}>\n\t\t\t\t\t\t\t\t\t\t\t{afterTitle}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tref={observeBodyOverflow}\n\t\t\t\t\t\t\t\tclassName={clsx(cls(\"dialog-body\"), bodyClassName)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t\t\t\t<Spin spinning className={cls(\"dialog-body-spin\")}>\n\t\t\t\t\t\t\t\t\t\t<div className={cls(\"dialog-body-content\")}>{children}</div>\n\t\t\t\t\t\t\t\t\t</Spin>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\tchildren\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{hasFooter && (\n\t\t\t\t\t\t\t\t<div className={clsx(cls(\"dialog-footer\"), footerClassName)}>\n\t\t\t\t\t\t\t\t\t{hasCustomFooter ? (\n\t\t\t\t\t\t\t\t\t\tfooter\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<div className={cls(\"dialog-footer-actions\")}>\n\t\t\t\t\t\t\t\t\t\t\t{!hideCancelButton && (\n\t\t\t\t\t\t\t\t\t\t\t\t<BaseDialog.Close\n\t\t\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button type=\"default\" {...cancelButtonProps}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{cancelTextLocale}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{!hideOkButton && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype={okType}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{...okButtonProps}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={confirmLoading || okButtonProps?.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={confirmLoading || okButtonProps?.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleOk}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{okTextLocale}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</BaseDialog.Popup>\n\t\t\t\t</BaseDialog.Viewport>\n\t\t\t</BaseDialog.Portal>\n\t\t</BaseDialog.Root>\n\t);\n};\n"],"names":["DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH","DIALOG_SIZE_WIDTHS","resolveContentPadding","contentPadding","resolveBackground","size","background","dialogWidth","Dialog","children","openProp","defaultOpen","DIALOG_DEFAULT_OPEN","onCancel","onClose","onOk","title","footer","loading","confirmLoading","hideOkButton","hideCancelButton","okText","DIALOG_DEFAULT_OK_TEXT","cancelText","DIALOG_DEFAULT_CANCEL_TEXT","okType","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","DIALOG_DEFAULT_CENTERED","type","bodyScrollable","DIALOG_DEFAULT_BODY_SCROLLABLE","closeIcon","closable","maskClosable","keyboard","width","style","destroyOnHidden","afterOpenChange","className","rootClassName","headerClassName","bodyClassName","footerClassName","okButtonProps","cancelButtonProps","cls","useCls","themeClassName","useTheme","actualOpen","setActualOpen","useControlledState","locale","useLocale","getConfirmLocale","isContentOverflow","setIsContentOverflow","useState","resizeObserverRef","useRef","resolvedSize","DIALOG_DEFAULT_SIZE","isFullscreen","hasCustomFooter","showDefaultFooter","showCloseButton","resolvedBackground","resolvedCloseIcon","jsx","XIcon","resolvedContentPadding","okTextLocale","cancelTextLocale","closeAriaLabel","resolvedWidth","popupStyle","useMemo","observeBodyOverflow","useCallback","node","updateOverflowState","resizeObserver","useEffect","handleCancel","useStableCallback","event","handleOk","handleOpenChange","nextOpen","eventDetails","DIALOG_CLOSE_REASON_ESCAPE","hasHeader","hasFooter","fixedChrome","BaseDialog","clsx","jsxs","Stack","Truncate","IconButton","Spin","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../src/components/dialog/Dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { useStableCallback } from \"@base-ui/utils/useStableCallback\";\nimport { XIcon } from \"@bioturing/assets\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Button, type ButtonProps } from \"../button/component\";\nimport { useControlledState } from \"../hooks/useControlledState\";\nimport { IconButton } from \"../icon-button\";\nimport { Spin } from \"../spin\";\nimport { Stack } from \"../stack\";\nimport { useTheme } from \"../theme-provider\";\nimport { Truncate } from \"../truncate\";\nimport { clsx, useCls } from \"../utils\";\nimport type { ModalType } from \"../modal/functions\";\nimport {\n DIALOG_CLOSE_REASON_ESCAPE,\n DIALOG_DEFAULT_BODY_SCROLLABLE,\n DIALOG_DEFAULT_CANCEL_TEXT,\n DIALOG_DEFAULT_CENTERED,\n DIALOG_DEFAULT_OK_TEXT,\n DIALOG_DEFAULT_OPEN,\n DIALOG_DEFAULT_SIZE,\n DIALOG_SIZE_WIDTHS,\n type DialogBackground,\n type DialogSize,\n} from \"./constants\";\n\nexport type DialogCancelEvent = Event | React.MouseEvent<HTMLButtonElement>;\nexport type DialogOkEvent = React.MouseEvent<HTMLButtonElement>;\n\nconst DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH = parseInt(\n DIALOG_SIZE_WIDTHS.medium,\n 10,\n);\n\nfunction resolveContentPadding(\n contentPadding: number | string | boolean | undefined,\n) {\n if (typeof contentPadding === \"undefined\") {\n return undefined;\n }\n\n if (contentPadding === false || contentPadding === 0) {\n return \"0\";\n }\n\n return typeof contentPadding === \"number\"\n ? `${contentPadding}px`\n : contentPadding;\n}\n\nfunction resolveBackground(\n size: DialogSize,\n background?: DialogBackground,\n): DialogBackground {\n if (background) {\n return background;\n }\n\n const dialogWidth = parseInt(DIALOG_SIZE_WIDTHS[size], 10);\n\n if (\n !Number.isNaN(dialogWidth) &&\n dialogWidth <= DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH\n ) {\n return \"elevated\";\n }\n\n return \"container\";\n}\n\nexport interface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onCancel?: (event?: DialogCancelEvent) => void;\n /**\n * @deprecated Use `onCancel` instead.\n */\n onClose?: (event?: DialogCancelEvent) => void;\n onOk?: (event: DialogOkEvent) => void;\n title?: React.ReactNode;\n footer?: React.ReactNode;\n size?: DialogSize;\n loading?: boolean;\n confirmLoading?: boolean;\n hideOkButton?: boolean;\n hideCancelButton?: boolean;\n okText?: React.ReactNode;\n cancelText?: React.ReactNode;\n okType?: ButtonProps[\"type\"];\n contentPadding?: number | string | boolean;\n afterTitle?: React.ReactNode;\n beforeCloseButton?: React.ReactNode;\n afterCloseButton?: React.ReactNode;\n defaultFixedHeaderFooter?: boolean;\n centered?: boolean;\n type?: ModalType;\n background?: DialogBackground;\n bodyScrollable?: boolean;\n closeIcon?: React.ReactNode | false;\n closable?: boolean;\n maskClosable?: boolean;\n keyboard?: boolean;\n width?: number | string;\n style?: React.CSSProperties;\n destroyOnHidden?: boolean;\n afterOpenChange?: (open: boolean) => void;\n className?: string;\n rootClassName?: string;\n headerClassName?: string;\n bodyClassName?: string;\n footerClassName?: string;\n okButtonProps?: ButtonProps;\n cancelButtonProps?: ButtonProps;\n}\n\nexport const Dialog = ({\n children,\n open: openProp,\n defaultOpen = DIALOG_DEFAULT_OPEN,\n onCancel,\n onClose,\n onOk,\n title,\n footer,\n size,\n loading = false,\n confirmLoading = false,\n hideOkButton = false,\n hideCancelButton = false,\n okText = DIALOG_DEFAULT_OK_TEXT,\n cancelText = DIALOG_DEFAULT_CANCEL_TEXT,\n okType = \"primary\",\n contentPadding,\n afterTitle,\n beforeCloseButton,\n afterCloseButton,\n defaultFixedHeaderFooter = false,\n centered = DIALOG_DEFAULT_CENTERED,\n type = \"default\",\n background,\n bodyScrollable = DIALOG_DEFAULT_BODY_SCROLLABLE,\n closeIcon,\n closable = true,\n maskClosable = true,\n keyboard = true,\n width,\n style,\n destroyOnHidden = false,\n afterOpenChange,\n className,\n rootClassName,\n headerClassName,\n bodyClassName,\n footerClassName,\n okButtonProps,\n cancelButtonProps,\n}: DialogProps) => {\n const cls = useCls();\n const { className: themeClassName } = useTheme();\n const [actualOpen, setActualOpen] = useControlledState(\n openProp,\n undefined,\n defaultOpen,\n );\n const [locale] = useLocale(\"Modal\", getConfirmLocale());\n const [isContentOverflow, setIsContentOverflow] = useState(false);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const resolvedSize =\n size ?? (type === \"default\" ? DIALOG_DEFAULT_SIZE : \"xsmall\");\n const isFullscreen = resolvedSize === \"fullscreen\";\n const hasCustomFooter = typeof footer !== \"undefined\";\n const showDefaultFooter =\n !hasCustomFooter && !(hideOkButton && hideCancelButton);\n const showCloseButton = closable && closeIcon !== false;\n const resolvedBackground = resolveBackground(resolvedSize, background);\n const resolvedCloseIcon =\n closeIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n const resolvedContentPadding = resolveContentPadding(contentPadding);\n const okTextLocale = okText || locale?.okText;\n const cancelTextLocale = cancelText || locale?.cancelText;\n const closeAriaLabel =\n typeof cancelTextLocale === \"string\" ? cancelTextLocale : \"Close\";\n const resolvedWidth =\n typeof width === \"number\"\n ? `${width}px`\n : (width ?? DIALOG_SIZE_WIDTHS[resolvedSize]);\n\n const popupStyle = useMemo(\n () =>\n ({\n \"--ds-dialog-width\": resolvedWidth,\n \"--ds-dialog-bg\": `var(--ds-color-bg-${resolvedBackground})`,\n ...(resolvedContentPadding\n ? {\n \"--ds-dialog-content-padding\": resolvedContentPadding,\n }\n : {}),\n ...style,\n }) as React.CSSProperties,\n [resolvedBackground, resolvedContentPadding, resolvedWidth, style],\n );\n\n const observeBodyOverflow = useCallback((node: HTMLDivElement | null) => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n\n if (!node) {\n return;\n }\n\n const updateOverflowState = () => {\n setIsContentOverflow(node.scrollHeight > node.clientHeight);\n };\n\n const resizeObserver = new ResizeObserver(() => {\n updateOverflowState();\n });\n\n resizeObserver.observe(node);\n resizeObserverRef.current = resizeObserver;\n updateOverflowState();\n }, []);\n\n useEffect(() => {\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n };\n }, []);\n\n const handleCancel = useStableCallback((event?: DialogCancelEvent) => {\n if (confirmLoading) {\n return;\n }\n setActualOpen(false);\n onCancel?.(event);\n onClose?.(event);\n });\n\n const handleOk = useStableCallback((event: DialogOkEvent) => {\n if (confirmLoading) {\n return;\n }\n setActualOpen(false);\n onOk?.(event);\n });\n\n const handleOpenChange = useStableCallback(\n (\n nextOpen: boolean,\n eventDetails: Parameters<\n NonNullable<\n React.ComponentProps<typeof BaseDialog.Root>[\"onOpenChange\"]\n >\n >[1],\n ) => {\n if (nextOpen) {\n setActualOpen(true);\n return;\n }\n\n if (\n eventDetails.reason === DIALOG_CLOSE_REASON_ESCAPE &&\n keyboard === false\n ) {\n eventDetails.cancel();\n return;\n }\n\n if (confirmLoading) {\n eventDetails.cancel();\n return;\n }\n\n handleCancel(eventDetails.event);\n },\n );\n\n const hasHeader =\n title ||\n afterTitle ||\n beforeCloseButton ||\n afterCloseButton ||\n showCloseButton;\n const hasFooter = hasCustomFooter ? footer !== null : showDefaultFooter;\n const fixedChrome =\n defaultFixedHeaderFooter || isContentOverflow || isFullscreen;\n\n return (\n <BaseDialog.Root\n open={!!actualOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={afterOpenChange}\n modal={true}\n disablePointerDismissal={!maskClosable}\n >\n <BaseDialog.Portal keepMounted={!destroyOnHidden}>\n <BaseDialog.Backdrop className={cls(\"dialog-mask\")} />\n <BaseDialog.Viewport\n className={clsx(\n themeClassName,\n rootClassName,\n cls(\n \"dialog-wrap\",\n centered ? \"dialog-centered\" : \"dialog-top-aligned\",\n isFullscreen && \"dialog-wrap-fullscreen\",\n loading && \"dialog-loading\",\n ),\n )}\n >\n <BaseDialog.Popup\n className={clsx(\n cls(\n \"dialog\",\n `dialog-size-${resolvedSize}`,\n fixedChrome && \"dialog-fixed\",\n bodyScrollable === false && \"dialog-no-body-scroll\",\n loading && \"dialog-loading\",\n ),\n className,\n )}\n style={popupStyle}\n aria-busy={loading || undefined}\n >\n <div className={cls(\"dialog-content\")}>\n {hasHeader && (\n <div className={clsx(cls(\"dialog-header\"), headerClassName)}>\n <Stack\n align=\"center\"\n gap={8}\n className={cls(\"dialog-title-row\")}\n >\n <Stack.Child grow>\n {title ? (\n <BaseDialog.Title className={cls(\"dialog-title\")}>\n {typeof title === \"string\" ? (\n <Truncate>{title}</Truncate>\n ) : (\n title\n )}\n </BaseDialog.Title>\n ) : (\n <div />\n )}\n </Stack.Child>\n <Stack.Child stack hug align=\"center\" gap={8}>\n {beforeCloseButton}\n {showCloseButton && (\n <BaseDialog.Close\n render={\n <IconButton\n className={cls(\"dialog-close\")}\n aria-label={closeAriaLabel}\n >\n {resolvedCloseIcon}\n </IconButton>\n }\n />\n )}\n {afterCloseButton}\n </Stack.Child>\n </Stack>\n {afterTitle ? (\n <div className={cls(\"dialog-header-after-title\")}>\n {afterTitle}\n </div>\n ) : null}\n </div>\n )}\n <div className={cls(\"dialog-body-wrapper\")}>\n <div\n ref={observeBodyOverflow}\n className={clsx(cls(\"dialog-body\"), bodyClassName)}\n >\n {children}\n </div>\n {loading ? (\n <div className={cls(\"dialog-loading-overlay\")}>\n <Spin />\n </div>\n ) : null}\n </div>\n\n {hasFooter && (\n <div className={clsx(cls(\"dialog-footer\"), footerClassName)}>\n {hasCustomFooter ? (\n footer\n ) : (\n <div className={cls(\"dialog-footer-actions\")}>\n {!hideCancelButton && (\n <BaseDialog.Close\n render={\n <Button type=\"default\" {...cancelButtonProps}>\n {cancelTextLocale}\n </Button>\n }\n />\n )}\n {!hideOkButton && (\n <Button\n type={okType}\n {...okButtonProps}\n disabled={confirmLoading || okButtonProps?.disabled}\n loading={confirmLoading || okButtonProps?.loading}\n onClick={handleOk}\n >\n {okTextLocale}\n </Button>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n </BaseDialog.Popup>\n </BaseDialog.Viewport>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n};\n"],"names":["DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH","DIALOG_SIZE_WIDTHS","resolveContentPadding","contentPadding","resolveBackground","size","background","dialogWidth","Dialog","children","openProp","defaultOpen","DIALOG_DEFAULT_OPEN","onCancel","onClose","onOk","title","footer","loading","confirmLoading","hideOkButton","hideCancelButton","okText","DIALOG_DEFAULT_OK_TEXT","cancelText","DIALOG_DEFAULT_CANCEL_TEXT","okType","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","DIALOG_DEFAULT_CENTERED","type","bodyScrollable","DIALOG_DEFAULT_BODY_SCROLLABLE","closeIcon","closable","maskClosable","keyboard","width","style","destroyOnHidden","afterOpenChange","className","rootClassName","headerClassName","bodyClassName","footerClassName","okButtonProps","cancelButtonProps","cls","useCls","themeClassName","useTheme","actualOpen","setActualOpen","useControlledState","locale","useLocale","getConfirmLocale","isContentOverflow","setIsContentOverflow","useState","resizeObserverRef","useRef","resolvedSize","DIALOG_DEFAULT_SIZE","isFullscreen","hasCustomFooter","showDefaultFooter","showCloseButton","resolvedBackground","resolvedCloseIcon","jsx","XIcon","resolvedContentPadding","okTextLocale","cancelTextLocale","closeAriaLabel","resolvedWidth","popupStyle","useMemo","observeBodyOverflow","useCallback","node","updateOverflowState","resizeObserver","useEffect","handleCancel","useStableCallback","event","handleOk","handleOpenChange","nextOpen","eventDetails","DIALOG_CLOSE_REASON_ESCAPE","hasHeader","hasFooter","fixedChrome","BaseDialog","clsx","jsxs","Stack","Truncate","IconButton","Spin","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- @layer components{.ds-dialog-mask{position:fixed;inset:0;z-index:var(--ds-z-index-modal-mask);background-color:var(--ds-color-bg-mask);transition:opacity .2s var(--ds-motion-ease-out)}.ds-dialog-mask[data-starting-style],.ds-dialog-mask[data-ending-style]{opacity:0}.ds-dialog-wrap{--ds-dialog-edge-padding: var(--ds-modal-edge-padding);position:fixed;inset:0;z-index:var(--ds-z-index-modal);display:flex;overflow-y:auto;padding:var(--ds-dialog-edge-padding);outline:0;-webkit-overflow-scrolling:touch}.ds-dialog-centered{align-items:center;justify-content:center}.ds-dialog-top-aligned{align-items:flex-start;justify-content:center;padding-top:calc(var(--ds-dialog-edge-padding) + 4rem)}.ds-dialog-wrap-fullscreen{padding:0}.ds-dialog{width:min(var(--ds-dialog-width),calc(100vw - var(--ds-dialog-edge-padding) * 2));max-width:100%;max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2);margin:auto;padding-bottom:0;pointer-events:none;position:relative;top:0;transform-origin:center;transition:transform .2s var(--ds-motion-ease-out),opacity .2s var(--ds-motion-ease-out)}.ds-dialog[data-starting-style],.ds-dialog[data-ending-style]{transform:scale(.96);opacity:0}.ds-dialog-content{width:100%;max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--ds-border-radius-lg);background:var(--ds-dialog-bg, var(--ds-color-bg-elevated));box-shadow:var(--ds-box-shadow-secondary);color:var(--ds-color-text);pointer-events:auto}.ds-dialog-content:focus,.ds-dialog-content:focus-visible{outline:none}.ds-dialog-size-fullscreen{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;top:0}.ds-dialog-size-fullscreen .ds-dialog-content{width:100%;height:100%;max-height:100%;border-radius:0}.ds-dialog-header,.ds-dialog-footer{flex:0 0 auto;background:transparent}.ds-dialog-header{padding:calc(var(--ds-modal-padding) * 2 / 3) var(--ds-modal-padding) 0 var(--ds-modal-padding)}.ds-dialog-footer{padding:0 var(--ds-modal-padding) var(--ds-modal-padding) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-header{border-bottom:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-footer{border-top:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-title-row{min-width:0}.ds-dialog-title{display:block;min-width:0;color:var(--ds-color-text);font-size:var(--ds-font-size-lg);font-weight:600;line-height:var(--ds-line-height-lg)}.ds-dialog-header-after-title{margin-top:calc(var(--ds-modal-padding) / 3)}.ds-dialog-close{flex-shrink:0}.ds-dialog-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--ds-dialog-content-padding, var(--ds-modal-padding))}.ds-dialog-body-spin{width:100%}.ds-dialog-body-spin,.ds-dialog-body-spin .ds-spin-container,.ds-dialog-body-content{min-height:100%}.ds-dialog-no-body-scroll .ds-dialog{max-height:100%}.ds-dialog-no-body-scroll .ds-dialog-body{overflow:hidden;display:grid}.ds-dialog-no-body-scroll .ds-dialog-body>*{min-height:0}.ds-dialog-footer-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.ds-dialog-loading .ds-dialog-body-spin,.ds-dialog-loading .ds-dialog-body-spin .ds-spin-nested-loading,.ds-dialog-loading .ds-dialog-body-spin .ds-spin-container,.ds-dialog-loading .ds-dialog-body-content{height:100%}@media(max-width:640px){.ds-dialog-wrap{--ds-dialog-edge-padding: 16px}.ds-dialog-top-aligned{padding-top:24px}.ds-dialog{max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2)}}}
1
+ @layer components{.ds-dialog-mask{position:fixed;inset:0;z-index:var(--ds-z-index-modal-mask);background-color:var(--ds-color-bg-mask);transition:opacity .2s var(--ds-motion-ease-out)}.ds-dialog-mask[data-starting-style],.ds-dialog-mask[data-ending-style]{opacity:0}.ds-dialog-wrap{--ds-dialog-edge-padding: var(--ds-modal-edge-padding);position:fixed;inset:0;z-index:var(--ds-z-index-modal);display:flex;overflow-y:auto;padding:var(--ds-dialog-edge-padding);outline:0;-webkit-overflow-scrolling:touch}.ds-dialog-centered{align-items:center;justify-content:center}.ds-dialog-top-aligned{align-items:flex-start;justify-content:center;padding-top:calc(var(--ds-dialog-edge-padding) + 4rem)}.ds-dialog-wrap-fullscreen{padding:0}.ds-dialog{width:min(var(--ds-dialog-width),calc(100vw - var(--ds-dialog-edge-padding) * 2));max-width:100%;max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2);margin:auto;padding-bottom:0;pointer-events:none;position:relative;top:0;transform-origin:center;transition:transform .2s var(--ds-motion-ease-out),opacity .2s var(--ds-motion-ease-out)}.ds-dialog[data-starting-style],.ds-dialog[data-ending-style]{transform:scale(.96);opacity:0}.ds-dialog-content{width:100%;max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--ds-border-radius-lg);background:var(--ds-dialog-bg, var(--ds-color-bg-elevated));box-shadow:var(--ds-box-shadow-secondary);color:var(--ds-color-text);pointer-events:auto}.ds-dialog-content:focus,.ds-dialog-content:focus-visible{outline:none}.ds-dialog-size-fullscreen{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;top:0}.ds-dialog-size-fullscreen .ds-dialog-content{width:100%;height:100%;max-height:100%;border-radius:0}.ds-dialog-header,.ds-dialog-footer{flex:0 0 auto;background:transparent}.ds-dialog-header{padding:calc(var(--ds-modal-padding) * 2 / 3) var(--ds-modal-padding) 0 var(--ds-modal-padding)}.ds-dialog-footer{padding:0 var(--ds-modal-padding) var(--ds-modal-padding) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-header{border-bottom:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-footer{border-top:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-title-row{min-width:0}.ds-dialog-title{display:block;min-width:0;color:var(--ds-color-text);font-size:var(--ds-font-size-lg);font-weight:600;line-height:var(--ds-line-height-lg)}.ds-dialog-header-after-title{margin-top:calc(var(--ds-modal-padding) / 3)}.ds-dialog-close{flex-shrink:0}.ds-dialog-body-wrapper{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative}.ds-dialog-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--ds-dialog-content-padding, var(--ds-modal-padding))}.ds-dialog-no-body-scroll .ds-dialog{max-height:100%}.ds-dialog-no-body-scroll .ds-dialog-body{overflow:hidden;display:grid}.ds-dialog-no-body-scroll .ds-dialog-body>*{min-height:0}.ds-dialog-footer-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.ds-dialog-loading-overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background-color:color-mix(in oklab,var(--ds-dialog-bg) 60%,transparent);margin-top:calc(var(--ds-dialog-header-height, 0));margin-bottom:calc(var(--ds-dialog-footer-height, 0))}@media(max-width:640px){.ds-dialog-wrap{--ds-dialog-edge-padding: 16px}.ds-dialog-top-aligned{padding-top:24px}.ds-dialog{max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2)}}}
@@ -9,7 +9,7 @@ export interface TextAreaProps extends AntTextAreaProps {
9
9
  export interface SearchProps extends AntSearchProps {
10
10
  }
11
11
  declare const MainInputInner: (props: InputProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
12
- declare const PasswordInner: (props: PasswordProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
12
+ declare const PasswordInner: ({ iconRender, ...rest }: PasswordProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
13
13
  declare const SearchInner: ({ enterButton, onSearch, prefix, onPressEnter, onClear, loading, ...rest }: SearchProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
14
14
  declare const TextAreaInner: (props: TextAreaProps, ref: React.Ref<HTMLTextAreaElement>) => import("react/jsx-runtime").JSX.Element;
15
15
  export declare const Input: ((props: InputProps & {
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/input/component.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EAChC,KAAK,QAAQ,EACd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKvE,OAAO,aAAa,CAAC;AAIrB,MAAM,WAAW,UAAW,SAAQ,aAAa;CAAG;AACpD,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAGtD,QAAA,MAAM,cAAc,GAAI,OAAO,UAAU,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAElE,CAAC;AAGF,QAAA,MAAM,aAAa,GAAI,OAAO,aAAa,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAiBpE,CAAC;AAGF,QAAA,MAAM,WAAW,GACf,4EAQG,WAAW,EACd,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CA6CzB,CAAC;AAGF,QAAA,MAAM,aAAa,GACjB,OAAO,aAAa,EACpB,KAAK,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,4CAGpC,CAAC;AA+BF,eAAO,MAAM,KAAK,WA3BT,UAAU,GAAG;IAClB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CACpC,KACE,UAAU,CAAC,OAAO,cAAc,CAAC;sBAI7B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;oBAI5B,WAAW,GAAG;QACnB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,WAAW,CAAC;sBAI1B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAC/C,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;CAOnC,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/input/component.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EAChC,KAAK,QAAQ,EACd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKvE,OAAO,aAAa,CAAC;AAIrB,MAAM,WAAW,UAAW,SAAQ,aAAa;CAAG;AACpD,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAGtD,QAAA,MAAM,cAAc,GAAI,OAAO,UAAU,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAElE,CAAC;AAGF,QAAA,MAAM,aAAa,GACjB,yBAAyB,aAAa,EACtC,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAsBzB,CAAC;AAGF,QAAA,MAAM,WAAW,GACf,4EAQG,WAAW,EACd,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAkDzB,CAAC;AAGF,QAAA,MAAM,aAAa,GACjB,OAAO,aAAa,EACpB,KAAK,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,4CAGpC,CAAC;AA+BF,eAAO,MAAM,KAAK,WA3BT,UAAU,GAAG;IAClB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CACpC,KACE,UAAU,CAAC,OAAO,cAAc,CAAC;sBAI7B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;oBAI5B,WAAW,GAAG;QACnB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,WAAW,CAAC;sBAI1B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAC/C,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;CAOnC,CAAC"}
@@ -1,71 +1,81 @@
1
1
  "use client";
2
2
  import { jsx as e } from "react/jsx-runtime";
3
- import { MagnifyingGlassIcon as p, EyeIcon as x, EyeClosedIcon as C } from "@bioturing/assets";
3
+ import { MagnifyingGlassIcon as f, EyeIcon as x, EyeClosedIcon as z } from "@bioturing/assets";
4
4
  import { Input as o } from "antd";
5
- import { forwardRef as a, useCallback as d, useMemo as P } from "react";
5
+ import { forwardRef as a, useCallback as i, useMemo as I } from "react";
6
6
  import './style.css';/* empty css */
7
- import { useCls as g } from "../utils/antdUtils.js";
8
- import { Spin as h } from "../spin/component.js";
9
- import { IconButton as z } from "../icon-button/component.js";
10
- const M = (s, r) => /* @__PURE__ */ e(o, { ref: r, ...s }), T = (s, r) => {
11
- const t = P(() => ({
12
- iconRender: (n) => /* @__PURE__ */ e(
13
- z,
7
+ import { useCls as M } from "../utils/antdUtils.js";
8
+ import { Spin as T } from "../spin/component.js";
9
+ import { IconButton as y } from "../icon-button/component.js";
10
+ const A = (n, r) => /* @__PURE__ */ e(o, { ref: r, ...n }), E = ({ iconRender: n, ...r }, s) => {
11
+ const c = i(
12
+ (t) => /* @__PURE__ */ e(
13
+ y,
14
14
  {
15
15
  size: "small",
16
- label: n ? "Hide password" : "Show password",
17
- children: n ? /* @__PURE__ */ e(x, {}) : /* @__PURE__ */ e(C, {})
16
+ label: t ? "Hide password" : "Show password",
17
+ children: t ? /* @__PURE__ */ e(x, {}) : /* @__PURE__ */ e(z, {})
18
18
  }
19
19
  ),
20
- ...s
21
- }), [s]);
22
- return /* @__PURE__ */ e(o.Password, { ref: r, ...t });
23
- }, y = ({
24
- enterButton: s = !1,
20
+ []
21
+ );
22
+ return /* @__PURE__ */ e(
23
+ o.Password,
24
+ {
25
+ ref: s,
26
+ iconRender: n ?? c,
27
+ ...r
28
+ }
29
+ );
30
+ }, R = ({
31
+ enterButton: n = !1,
25
32
  onSearch: r,
26
- prefix: t,
27
- onPressEnter: n,
28
- onClear: c,
29
- loading: i,
30
- ...u
31
- }, l) => {
32
- const I = g(), f = d(
33
- (m) => {
34
- r?.(m.currentTarget.value, m, { source: "input" });
33
+ prefix: s,
34
+ onPressEnter: c,
35
+ onClear: t,
36
+ loading: u,
37
+ ...l
38
+ }, m) => {
39
+ const p = M(), w = i(
40
+ (d) => {
41
+ r?.(d.currentTarget.value, d, { source: "input" });
35
42
  },
36
43
  [r]
37
- ), w = d(() => {
44
+ ), P = i(() => {
38
45
  r?.("", void 0, { source: "clear" });
39
- }, [r]);
40
- return s === !1 ? /* @__PURE__ */ e(
46
+ }, [r]), C = I(() => s || (u ? /* @__PURE__ */ e(T, { size: 16 }) : /* @__PURE__ */ e(f, { size: 16, className: p("input-search-icon") })), [s, u, p]), h = I(
47
+ () => n === !0 ? /* @__PURE__ */ e(f, { size: 16 }) : n,
48
+ [n]
49
+ );
50
+ return n === !1 ? /* @__PURE__ */ e(
41
51
  o,
42
52
  {
43
- ref: l,
44
- prefix: t || (i ? /* @__PURE__ */ e(h, { size: 16 }) : /* @__PURE__ */ e(p, { size: 16, className: I("input-search-icon") })),
45
- onPressEnter: n || f,
46
- onClear: c || w,
53
+ ref: m,
54
+ prefix: C,
55
+ onPressEnter: c || w,
56
+ onClear: t || P,
47
57
  allowClear: !0,
48
- ...u
58
+ ...l
49
59
  }
50
60
  ) : /* @__PURE__ */ e(
51
61
  o.Search,
52
62
  {
53
- ref: l,
54
- prefix: t,
55
- onPressEnter: n,
63
+ ref: m,
64
+ prefix: s,
65
+ onPressEnter: c,
56
66
  onSearch: r,
57
- onClear: c,
58
- loading: i,
59
- enterButton: s === !0 ? /* @__PURE__ */ e(p, { size: 16 }) : s,
60
- ...u
67
+ onClear: t,
68
+ loading: u,
69
+ enterButton: h,
70
+ ...l
61
71
  }
62
72
  );
63
- }, A = (s, r) => /* @__PURE__ */ e(o.TextArea, { ref: r, ...s }), E = a(M), b = a(T), j = a(y), R = a(A), v = Object.assign(E, {
64
- Password: b,
65
- Search: j,
66
- TextArea: R
73
+ }, b = (n, r) => /* @__PURE__ */ e(o.TextArea, { ref: r, ...n }), g = a(A), j = a(E), k = a(R), G = a(b), D = Object.assign(g, {
74
+ Password: j,
75
+ Search: k,
76
+ TextArea: G
67
77
  });
68
78
  export {
69
- v as Input
79
+ D as Input
70
80
  };
71
81
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/input/component.tsx"],"sourcesContent":["\"use client\";\nimport { EyeIcon, EyeClosedIcon, MagnifyingGlassIcon } from \"@bioturing/assets\";\nimport {\n Input as AntInput,\n type InputProps as AntInputProps,\n type InputRef,\n} from \"antd\";\nimport { type PasswordProps as AntPasswordProps } from \"antd/es/input\";\nimport { type SearchProps as AntSearchProps } from \"antd/es/input\";\nimport { type TextAreaProps as AntTextAreaProps } from \"antd/es/input\";\nimport { forwardRef, useCallback, useMemo } from \"react\";\nimport { useCls } from \"../utils\";\nimport { Spin } from \"../spin\";\n\nimport \"./style.css\";\nimport { IconButton } from \"../icon-button\";\n\n// Define props interfaces\nexport interface InputProps extends AntInputProps {}\nexport interface PasswordProps extends AntPasswordProps {}\nexport interface TextAreaProps extends AntTextAreaProps {}\nexport interface SearchProps extends AntSearchProps {}\n\n// Create inner function for main Input\nconst MainInputInner = (props: InputProps, ref: React.Ref<InputRef>) => {\n return <AntInput ref={ref} {...props} />;\n};\n\n// Create inner function for Password\nconst PasswordInner = (props: PasswordProps, ref: React.Ref<InputRef>) => {\n // Apply default iconRender unless overridden by props\n const mergedProps = useMemo(() => {\n return {\n iconRender: (visible: boolean) => (\n <IconButton\n size=\"small\"\n label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? <EyeIcon /> : <EyeClosedIcon />}\n </IconButton>\n ),\n ...props,\n };\n }, [props]);\n\n return <AntInput.Password ref={ref} {...mergedProps} />;\n};\n\n// Create inner function for Search\nconst SearchInner = (\n {\n enterButton = false,\n onSearch,\n prefix,\n onPressEnter,\n onClear,\n loading,\n ...rest\n }: SearchProps,\n ref: React.Ref<InputRef>\n) => {\n const cls = useCls();\n\n const handlePressEnter = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n onSearch?.(event.currentTarget.value, event, { source: \"input\" });\n },\n [onSearch]\n );\n\n const handleClear = useCallback(() => {\n onSearch?.(\"\", undefined, { source: \"clear\" });\n }, [onSearch]);\n\n return enterButton === false ? (\n <AntInput\n ref={ref}\n prefix={\n prefix ||\n (loading ? (\n <Spin size={16} />\n ) : (\n <MagnifyingGlassIcon size={16} className={cls(\"input-search-icon\")} />\n ))\n }\n onPressEnter={onPressEnter || handlePressEnter}\n onClear={onClear || handleClear}\n allowClear\n {...rest}\n />\n ) : (\n <AntInput.Search\n ref={ref}\n prefix={prefix}\n onPressEnter={onPressEnter}\n onSearch={onSearch}\n onClear={onClear}\n loading={loading}\n enterButton={\n enterButton === true ? <MagnifyingGlassIcon size={16} /> : enterButton\n }\n {...rest}\n />\n );\n};\n\n// Create inner function for TextArea\nconst TextAreaInner = (\n props: TextAreaProps,\n ref: React.Ref<HTMLTextAreaElement>\n) => {\n return <AntInput.TextArea ref={ref} {...props} />;\n};\n\n// Use forwardRef with type assertion for main Input\nconst MainInput = forwardRef(MainInputInner) as (\n props: InputProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof MainInputInner>;\n\n// Use forwardRef with type assertion for Password\nconst Password = forwardRef(PasswordInner) as (\n props: PasswordProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof PasswordInner>;\n\n// Use forwardRef with type assertion for Search\nconst Search = forwardRef(SearchInner) as (\n props: SearchProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof SearchInner>;\n\n// Use forwardRef with type assertion for TextArea\nconst TextArea = forwardRef(TextAreaInner) as (\n props: TextAreaProps & {\n ref?: React.ForwardedRef<HTMLTextAreaElement>;\n }\n) => ReturnType<typeof TextAreaInner>;\n\n// Export the final composed component\nexport const Input = Object.assign(MainInput, {\n Password,\n Search,\n TextArea,\n});\n"],"names":["MainInputInner","props","ref","jsx","AntInput","PasswordInner","mergedProps","useMemo","visible","IconButton","EyeIcon","EyeClosedIcon","SearchInner","enterButton","onSearch","prefix","onPressEnter","onClear","loading","rest","cls","useCls","handlePressEnter","useCallback","event","handleClear","Spin","MagnifyingGlassIcon","TextAreaInner","MainInput","forwardRef","Password","Search","TextArea","Input"],"mappings":";;;;;;;;;AAwBA,MAAMA,IAAiB,CAACC,GAAmBC,MAClC,gBAAAC,EAACC,GAAA,EAAS,KAAAF,GAAW,GAAGD,EAAA,CAAO,GAIlCI,IAAgB,CAACJ,GAAsBC,MAA6B;AAExE,QAAMI,IAAcC,EAAQ,OACnB;AAAA,IACL,YAAY,CAACC,MACX,gBAAAL;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOD,IAAU,kBAAkB;AAAA,QAElC,UAAAA,IAAU,gBAAAL,EAACO,GAAA,CAAA,CAAQ,sBAAMC,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAG5C,GAAGV;AAAA,EAAA,IAEJ,CAACA,CAAK,CAAC;AAEV,2BAAQG,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGI,GAAa;AACvD,GAGMM,IAAc,CAClB;AAAA,EACE,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GACAjB,MACG;AACH,QAAMkB,IAAMC,EAAA,GAENC,IAAmBC;AAAA,IACvB,CAACC,MAAiD;AAChD,MAAAV,IAAWU,EAAM,cAAc,OAAOA,GAAO,EAAE,QAAQ,SAAS;AAAA,IAClE;AAAA,IACA,CAACV,CAAQ;AAAA,EAAA,GAGLW,IAAcF,EAAY,MAAM;AACpC,IAAAT,IAAW,IAAI,QAAW,EAAE,QAAQ,SAAS;AAAA,EAC/C,GAAG,CAACA,CAAQ,CAAC;AAEb,SAAOD,MAAgB,KACrB,gBAAAV;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,QACEa,MACCG,IACC,gBAAAf,EAACuB,KAAK,MAAM,IAAI,IAEhB,gBAAAvB,EAACwB,KAAoB,MAAM,IAAI,WAAWP,EAAI,mBAAmB,EAAA,CAAG;AAAA,MAGxE,cAAcJ,KAAgBM;AAAA,MAC9B,SAASL,KAAWQ;AAAA,MACpB,YAAU;AAAA,MACT,GAAGN;AAAA,IAAA;AAAA,EAAA,IAGN,gBAAAhB;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,KAAAF;AAAA,MACA,QAAAa;AAAA,MACA,cAAAC;AAAA,MACA,UAAAF;AAAA,MACA,SAAAG;AAAA,MACA,SAAAC;AAAA,MACA,aACEL,MAAgB,uBAAQc,GAAA,EAAoB,MAAM,IAAI,IAAKd;AAAA,MAE5D,GAAGM;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMS,IAAgB,CACpB3B,GACAC,wBAEQE,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGD,GAAO,GAI3C4B,IAAYC,EAAW9B,CAAc,GAOrC+B,IAAWD,EAAWzB,CAAa,GAOnC2B,IAASF,EAAWlB,CAAW,GAO/BqB,IAAWH,EAAWF,CAAa,GAO5BM,IAAQ,OAAO,OAAOL,GAAW;AAAA,EAC5C,UAAAE;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,CAAC;"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/input/component.tsx"],"sourcesContent":["\"use client\";\nimport { EyeIcon, EyeClosedIcon, MagnifyingGlassIcon } from \"@bioturing/assets\";\nimport {\n Input as AntInput,\n type InputProps as AntInputProps,\n type InputRef,\n} from \"antd\";\nimport { type PasswordProps as AntPasswordProps } from \"antd/es/input\";\nimport { type SearchProps as AntSearchProps } from \"antd/es/input\";\nimport { type TextAreaProps as AntTextAreaProps } from \"antd/es/input\";\nimport { forwardRef, useCallback, useMemo } from \"react\"; // useMemo still used in SearchInner\nimport { useCls } from \"../utils\";\nimport { Spin } from \"../spin\";\n\nimport \"./style.css\";\nimport { IconButton } from \"../icon-button\";\n\n// Define props interfaces\nexport interface InputProps extends AntInputProps {}\nexport interface PasswordProps extends AntPasswordProps {}\nexport interface TextAreaProps extends AntTextAreaProps {}\nexport interface SearchProps extends AntSearchProps {}\n\n// Create inner function for main Input\nconst MainInputInner = (props: InputProps, ref: React.Ref<InputRef>) => {\n return <AntInput ref={ref} {...props} />;\n};\n\n// Create inner function for Password\nconst PasswordInner = (\n { iconRender, ...rest }: PasswordProps,\n ref: React.Ref<InputRef>,\n) => {\n // Apply default iconRender unless overridden by props\n const defaultIconRender = useCallback(\n (visible: boolean) => (\n <IconButton\n size=\"small\"\n label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? <EyeIcon /> : <EyeClosedIcon />}\n </IconButton>\n ),\n [],\n );\n\n return (\n <AntInput.Password\n ref={ref}\n iconRender={iconRender ?? defaultIconRender}\n {...rest}\n />\n );\n};\n\n// Create inner function for Search\nconst SearchInner = (\n {\n enterButton = false,\n onSearch,\n prefix,\n onPressEnter,\n onClear,\n loading,\n ...rest\n }: SearchProps,\n ref: React.Ref<InputRef>,\n) => {\n const cls = useCls();\n\n const handlePressEnter = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n onSearch?.(event.currentTarget.value, event, { source: \"input\" });\n },\n [onSearch],\n );\n\n const handleClear = useCallback(() => {\n onSearch?.(\"\", undefined, { source: \"clear\" });\n }, [onSearch]);\n\n const defaultPrefix = useMemo(() => {\n if (prefix) return prefix;\n if (loading) return <Spin size={16} />;\n return (\n <MagnifyingGlassIcon size={16} className={cls(\"input-search-icon\")} />\n );\n }, [prefix, loading, cls]);\n\n const enterButtonProp = useMemo(\n () =>\n enterButton === true ? <MagnifyingGlassIcon size={16} /> : enterButton,\n [enterButton],\n );\n\n return enterButton === false ? (\n <AntInput\n ref={ref}\n prefix={defaultPrefix}\n onPressEnter={onPressEnter || handlePressEnter}\n onClear={onClear || handleClear}\n allowClear\n {...rest}\n />\n ) : (\n <AntInput.Search\n ref={ref}\n prefix={prefix}\n onPressEnter={onPressEnter}\n onSearch={onSearch}\n onClear={onClear}\n loading={loading}\n enterButton={enterButtonProp}\n {...rest}\n />\n );\n};\n\n// Create inner function for TextArea\nconst TextAreaInner = (\n props: TextAreaProps,\n ref: React.Ref<HTMLTextAreaElement>,\n) => {\n return <AntInput.TextArea ref={ref} {...props} />;\n};\n\n// Use forwardRef with type assertion for main Input\nconst MainInput = forwardRef(MainInputInner) as (\n props: InputProps & {\n ref?: React.ForwardedRef<InputRef>;\n },\n) => ReturnType<typeof MainInputInner>;\n\n// Use forwardRef with type assertion for Password\nconst Password = forwardRef(PasswordInner) as (\n props: PasswordProps & {\n ref?: React.ForwardedRef<InputRef>;\n },\n) => ReturnType<typeof PasswordInner>;\n\n// Use forwardRef with type assertion for Search\nconst Search = forwardRef(SearchInner) as (\n props: SearchProps & {\n ref?: React.ForwardedRef<InputRef>;\n },\n) => ReturnType<typeof SearchInner>;\n\n// Use forwardRef with type assertion for TextArea\nconst TextArea = forwardRef(TextAreaInner) as (\n props: TextAreaProps & {\n ref?: React.ForwardedRef<HTMLTextAreaElement>;\n },\n) => ReturnType<typeof TextAreaInner>;\n\n// Export the final composed component\nexport const Input = Object.assign(MainInput, {\n Password,\n Search,\n TextArea,\n});\n"],"names":["MainInputInner","props","ref","jsx","AntInput","PasswordInner","iconRender","rest","defaultIconRender","useCallback","visible","IconButton","EyeIcon","EyeClosedIcon","SearchInner","enterButton","onSearch","prefix","onPressEnter","onClear","loading","cls","useCls","handlePressEnter","event","handleClear","defaultPrefix","useMemo","Spin","MagnifyingGlassIcon","enterButtonProp","TextAreaInner","MainInput","forwardRef","Password","Search","TextArea","Input"],"mappings":";;;;;;;;;AAwBA,MAAMA,IAAiB,CAACC,GAAmBC,MAClC,gBAAAC,EAACC,GAAA,EAAS,KAAAF,GAAW,GAAGD,EAAA,CAAO,GAIlCI,IAAgB,CACpB,EAAE,YAAAC,GAAY,GAAGC,EAAA,GACjBL,MACG;AAEH,QAAMM,IAAoBC;AAAA,IACxB,CAACC,MACC,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOD,IAAU,kBAAkB;AAAA,QAElC,UAAAA,IAAU,gBAAAP,EAACS,GAAA,CAAA,CAAQ,sBAAMC,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAG5C,CAAA;AAAA,EAAC;AAGH,SACE,gBAAAV;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,KAAAF;AAAA,MACA,YAAYI,KAAcE;AAAA,MACzB,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMO,IAAc,CAClB;AAAA,EACE,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGb;AACL,GACAL,MACG;AACH,QAAMmB,IAAMC,EAAA,GAENC,IAAmBd;AAAA,IACvB,CAACe,MAAiD;AAChD,MAAAR,IAAWQ,EAAM,cAAc,OAAOA,GAAO,EAAE,QAAQ,SAAS;AAAA,IAClE;AAAA,IACA,CAACR,CAAQ;AAAA,EAAA,GAGLS,IAAchB,EAAY,MAAM;AACpC,IAAAO,IAAW,IAAI,QAAW,EAAE,QAAQ,SAAS;AAAA,EAC/C,GAAG,CAACA,CAAQ,CAAC,GAEPU,IAAgBC,EAAQ,MACxBV,MACAG,IAAgB,gBAAAjB,EAACyB,GAAA,EAAK,MAAM,IAAI,sBAEjCC,GAAA,EAAoB,MAAM,IAAI,WAAWR,EAAI,mBAAmB,GAAG,IAErE,CAACJ,GAAQG,GAASC,CAAG,CAAC,GAEnBS,IAAkBH;AAAA,IACtB,MACEZ,MAAgB,uBAAQc,GAAA,EAAoB,MAAM,IAAI,IAAKd;AAAA,IAC7D,CAACA,CAAW;AAAA,EAAA;AAGd,SAAOA,MAAgB,KACrB,gBAAAZ;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,QAAQwB;AAAA,MACR,cAAcR,KAAgBK;AAAA,MAC9B,SAASJ,KAAWM;AAAA,MACpB,YAAU;AAAA,MACT,GAAGlB;AAAA,IAAA;AAAA,EAAA,IAGN,gBAAAJ;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,KAAAF;AAAA,MACA,QAAAe;AAAA,MACA,cAAAC;AAAA,MACA,UAAAF;AAAA,MACA,SAAAG;AAAA,MACA,SAAAC;AAAA,MACA,aAAaU;AAAA,MACZ,GAAGvB;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMwB,IAAgB,CACpB9B,GACAC,wBAEQE,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGD,GAAO,GAI3C+B,IAAYC,EAAWjC,CAAc,GAOrCkC,IAAWD,EAAW5B,CAAa,GAOnC8B,IAASF,EAAWnB,CAAW,GAO/BsB,IAAWH,EAAWF,CAAa,GAO5BM,IAAQ,OAAO,OAAOL,GAAW;AAAA,EAC5C,UAAAE;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IACjE;;;;;;;;;OASG;IACH,IAAI,CAAC,EACD,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,eAAO,MAAM,KAAK,GAAI,ibAkCnB,UAAU,4CA4PZ,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IACjE;;;;;;;;;OASG;IACH,IAAI,CAAC,EACD,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,eAAO,MAAM,KAAK,GAAI,ibAkCnB,UAAU,4CAqSZ,CAAC"}