@bioturing/components 0.32.3 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/code-block/component.d.ts +1 -1
- package/dist/components/code-block/component.d.ts.map +1 -1
- package/dist/components/code-block/component.js +81 -73
- package/dist/components/code-block/component.js.map +1 -1
- package/dist/components/code-block/types.d.ts +17 -0
- package/dist/components/code-block/types.d.ts.map +1 -1
- package/dist/components/command-palette/component.d.ts.map +1 -1
- package/dist/components/command-palette/component.js +18 -18
- package/dist/components/command-palette/component.js.map +1 -1
- package/dist/components/data-table/component.d.ts +8 -0
- package/dist/components/data-table/component.d.ts.map +1 -0
- package/dist/components/data-table/component.js +112 -0
- package/dist/components/data-table/component.js.map +1 -0
- package/dist/components/data-table/components/TableBody.d.ts +15 -0
- package/dist/components/data-table/components/TableBody.d.ts.map +1 -0
- package/dist/components/data-table/components/TableBody.js +114 -0
- package/dist/components/data-table/components/TableBody.js.map +1 -0
- package/dist/components/data-table/components/TableHeader.d.ts +11 -0
- package/dist/components/data-table/components/TableHeader.d.ts.map +1 -0
- package/dist/components/data-table/components/TableHeader.js +103 -0
- package/dist/components/data-table/components/TableHeader.js.map +1 -0
- package/dist/components/data-table/components/TablePagination.d.ts +10 -0
- package/dist/components/data-table/components/TablePagination.d.ts.map +1 -0
- package/dist/components/data-table/components/TablePagination.js +38 -0
- package/dist/components/data-table/components/TablePagination.js.map +1 -0
- package/dist/components/data-table/components/index.d.ts +4 -0
- package/dist/components/data-table/components/index.d.ts.map +1 -0
- package/dist/components/data-table/hooks.d.ts +14 -0
- package/dist/components/data-table/hooks.d.ts.map +1 -0
- package/dist/components/data-table/hooks.js +120 -0
- package/dist/components/data-table/hooks.js.map +1 -0
- package/dist/components/data-table/index.d.ts +4 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/style.css +1 -0
- package/dist/components/data-table/types.d.ts +108 -0
- package/dist/components/data-table/types.d.ts.map +1 -0
- package/dist/components/data-table/utils.d.ts +39 -0
- package/dist/components/data-table/utils.d.ts.map +1 -0
- package/dist/components/data-table/utils.js +71 -0
- package/dist/components/data-table/utils.js.map +1 -0
- package/dist/components/dropdown-menu/component.d.ts.map +1 -1
- package/dist/components/dropdown-menu/component.js +60 -56
- package/dist/components/dropdown-menu/component.js.map +1 -1
- package/dist/components/ds-root/component.d.ts.map +1 -1
- package/dist/components/ds-root/component.js +15 -16
- package/dist/components/ds-root/component.js.map +1 -1
- package/dist/components/ds-root/hook.d.ts +5 -0
- package/dist/components/ds-root/hook.d.ts.map +1 -0
- package/dist/components/ds-root/hook.js +7 -0
- package/dist/components/ds-root/hook.js.map +1 -0
- package/dist/components/ds-root/index.d.ts +1 -1
- package/dist/components/ds-root/index.d.ts.map +1 -1
- package/dist/components/field/component.d.ts.map +1 -1
- package/dist/components/field/component.js +22 -21
- package/dist/components/field/component.js.map +1 -1
- package/dist/components/hooks/useBreakpoint.d.ts.map +1 -1
- package/dist/components/hooks/useBreakpoint.js +30 -8
- package/dist/components/hooks/useBreakpoint.js.map +1 -1
- package/dist/components/hooks/useCharts.js +1 -1
- package/dist/components/hooks/useCharts.js.map +1 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +59 -55
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/index.d.ts +1 -1
- package/dist/components/popover/component.d.ts.map +1 -1
- package/dist/components/popover/component.js +22 -9
- package/dist/components/popover/component.js.map +1 -1
- package/dist/components/popup-panel/component.d.ts.map +1 -1
- package/dist/components/popup-panel/component.js +61 -56
- package/dist/components/popup-panel/component.js.map +1 -1
- package/dist/components/scroll-area/component.d.ts +1 -1
- package/dist/components/scroll-area/component.d.ts.map +1 -1
- package/dist/components/scroll-area/component.js +79 -63
- package/dist/components/scroll-area/component.js.map +1 -1
- package/dist/components/table/component.d.ts.map +1 -1
- package/dist/components/table/component.js.map +1 -1
- package/dist/components/theme-provider/component.d.ts +6 -2
- package/dist/components/theme-provider/component.d.ts.map +1 -1
- package/dist/components/theme-provider/component.js +32 -28
- package/dist/components/theme-provider/component.js.map +1 -1
- package/dist/components/theme-provider/context/index.d.ts +3 -0
- package/dist/components/theme-provider/context/index.d.ts.map +1 -0
- package/dist/components/theme-provider/context/provider.d.ts +7 -0
- package/dist/components/theme-provider/context/provider.d.ts.map +1 -0
- package/dist/components/theme-provider/context/provider.js +11 -0
- package/dist/components/theme-provider/context/provider.js.map +1 -0
- package/dist/components/theme-provider/context/themeStore.d.ts +11 -0
- package/dist/components/theme-provider/context/themeStore.d.ts.map +1 -0
- package/dist/components/theme-provider/context/themeStore.js +15 -0
- package/dist/components/theme-provider/context/themeStore.js.map +1 -0
- package/dist/components/theme-provider/index.d.ts +1 -0
- package/dist/components/theme-provider/index.d.ts.map +1 -1
- package/dist/components/tree/useTreeCommon.d.ts +10 -10
- package/dist/components/tree/useTreeCommon.d.ts.map +1 -1
- package/dist/components/utils/client.d.ts +0 -1
- package/dist/components/utils/client.d.ts.map +1 -1
- package/dist/index.js +223 -219
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +9 -0
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +18 -0
- package/dist/metadata.js.map +1 -1
- package/dist/stats.html +1 -1
- package/package.json +3 -2
- package/dist/components/ds-root/context.d.ts +0 -8
- package/dist/components/ds-root/context.d.ts.map +0 -1
- package/dist/components/ds-root/context.js +0 -10
- package/dist/components/ds-root/context.js.map +0 -1
- package/dist/components/utils/WithAntdTokens.d.ts +0 -8
- package/dist/components/utils/WithAntdTokens.d.ts.map +0 -1
- package/dist/components/utils/WithAntdTokens.js +0 -25
- package/dist/components/utils/WithAntdTokens.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sources":["../../../src/components/ds-root/hook.ts"],"sourcesContent":["\"use client\";\nimport { useTheme } from \"../theme-provider\";\n\nexport const useDS = () => {\n return useTheme();\n};\n"],"names":["useDS","useTheme"],"mappings":";;AAGO,MAAMA,IAAQ,MACZC,EAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ds-root/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/field/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/field/component.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAqB,MAAM,OAAO,CAAC;AAKxD,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3C,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,OAAO,GACjD,QAAQ,GACR,CAAC,SAAS,QAAQ,GAClB,cAAc,GACd,KAAK,CAAC;AAEV,UAAU,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,eAAe,GAAG,cAAc,GAAG;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,gBAAgB,GAAG,cAAc,GAAG;IACvC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,OAAO,GACrE,eAAe,GACf,gBAAgB,CAAC;AAErB;;GAEG;AACH,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,SAAS,EACrC,kDAOG,UAAU,CAAC,CAAC,CAAC,EAChB,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4CA0B9B,CAAC;AAEF,eAAO,MAAM,KAAK,EAA6B,CAAC,CAAC,SAAS,SAAS,EACjE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,KACtD,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import { Select as
|
|
4
|
-
import { forwardRef as
|
|
2
|
+
import { jsxs as m, jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { Select as d, Input as f } from "antd";
|
|
4
|
+
import { forwardRef as h, useId as x } from "react";
|
|
5
5
|
import './style.css';/* empty css */
|
|
6
|
-
import { useCls as I
|
|
6
|
+
import { useCls as I } from "../utils/antdUtils.js";
|
|
7
|
+
import { useTheme as N } from "../theme-provider/context/themeStore.js";
|
|
7
8
|
import { clsx as F } from "../utils/cn.js";
|
|
8
9
|
const j = ({
|
|
9
|
-
label:
|
|
10
|
-
className:
|
|
11
|
-
size:
|
|
12
|
-
colon:
|
|
13
|
-
type:
|
|
14
|
-
...
|
|
15
|
-
},
|
|
16
|
-
const
|
|
10
|
+
label: r,
|
|
11
|
+
className: c,
|
|
12
|
+
size: t = "small",
|
|
13
|
+
colon: i = !0,
|
|
14
|
+
type: p = "input",
|
|
15
|
+
...s
|
|
16
|
+
}, o) => {
|
|
17
|
+
const l = I(), e = x(), { className: u } = N(), a = () => p === "select" ? (
|
|
17
18
|
// @ts-expect-error: this is a workaround for the type error
|
|
18
|
-
/* @__PURE__ */
|
|
19
|
-
) : /* @__PURE__ */
|
|
20
|
-
return /* @__PURE__ */
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
/* @__PURE__ */ n(d, { id: e, ref: o, size: t, ...s.selectProps || {} })
|
|
20
|
+
) : /* @__PURE__ */ n(f, { id: e, ref: o, size: t, ...s.inputProps || {} });
|
|
21
|
+
return /* @__PURE__ */ m("div", { className: F(l("field"), u, c), children: [
|
|
22
|
+
r && /* @__PURE__ */ m("label", { htmlFor: e, className: l("field-label"), children: [
|
|
23
|
+
r,
|
|
24
|
+
i ? ":" : ""
|
|
24
25
|
] }),
|
|
25
|
-
|
|
26
|
+
a()
|
|
26
27
|
] });
|
|
27
|
-
},
|
|
28
|
+
}, R = h(j);
|
|
28
29
|
export {
|
|
29
|
-
|
|
30
|
+
R as Field
|
|
30
31
|
};
|
|
31
32
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/field/component.tsx"],"sourcesContent":["\"use client\";\nimport type { InputProps, InputRef, SelectProps } from \"antd\";\nimport { Input, Select } from \"antd\";\nimport { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport { RefSelectProps } from \"antd/es/select\";\nimport { ForwardedRef, forwardRef, useId } from \"react\";\nimport { clsx, useCls
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/field/component.tsx"],"sourcesContent":["\"use client\";\nimport type { InputProps, InputRef, SelectProps } from \"antd\";\nimport { Input, Select } from \"antd\";\nimport { SizeType } from \"antd/es/config-provider/SizeContext\";\nimport { RefSelectProps } from \"antd/es/select\";\nimport { ForwardedRef, forwardRef, useId } from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { useTheme } from \"../theme-provider\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport type FieldType = \"input\" | \"select\";\n\ntype RefType<T extends FieldType> = T extends \"input\"\n ? InputRef\n : T extends \"select\"\n ? RefSelectProps\n : never;\n\ninterface BaseFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n label?: React.ReactNode;\n /**\n * Block or inline display\n * @default false\n */\n block?: boolean;\n /**\n * Size of the field\n * @default \"small\"\n */\n size?: SizeType;\n /**\n * Colon after label\n * @default true\n */\n colon?: boolean;\n}\n\ntype InputFieldProps = BaseFieldProps & {\n type?: \"input\";\n inputProps: InputProps;\n};\n\ntype SelectFieldProps = BaseFieldProps & {\n type: \"select\";\n selectProps: SelectProps;\n};\n\nexport type FieldProps<T extends FieldType = \"input\"> = T extends \"input\"\n ? InputFieldProps\n : SelectFieldProps;\n\n/**\n * Generic Field component that forwards ref to Input or Select\n */\nconst FieldInner = <T extends FieldType>(\n {\n label,\n className,\n size = \"small\",\n colon = true,\n type = \"input\",\n ...rest\n }: FieldProps<T>,\n ref: ForwardedRef<RefType<T>>\n) => {\n const cls = useCls();\n const id = useId();\n const { className: themeClassName } = useTheme();\n const renderInputOrSelect = () => {\n if (type === \"select\") {\n return (\n // @ts-expect-error: this is a workaround for the type error\n <Select id={id} ref={ref} size={size} {...(rest.selectProps || {})} />\n );\n }\n // @ts-expect-error: this is a workaround for the type error\n return <Input id={id} ref={ref} size={size} {...(rest.inputProps || {})} />;\n };\n return (\n <div className={clsx(cls(\"field\"), themeClassName, className)}>\n {label && (\n <label htmlFor={id} className={cls(\"field-label\")}>\n {label}\n {colon ? \":\" : \"\"}\n </label>\n )}\n {renderInputOrSelect()}\n </div>\n );\n};\n\nexport const Field = forwardRef(FieldInner) as <T extends FieldType>(\n props: FieldProps<T> & { ref?: ForwardedRef<RefType<T>> }\n) => ReturnType<typeof FieldInner<T>>;\n"],"names":["FieldInner","label","className","size","colon","type","rest","ref","cls","useCls","id","useId","themeClassName","useTheme","renderInputOrSelect","jsx","Select","Input","jsxs","clsx","Field","forwardRef"],"mappings":";;;;;;;;AAwDA,MAAMA,IAAa,CACjB;AAAA,EACE,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GACAC,MACG;AACH,QAAMC,IAAMC,EAAA,GACNC,IAAKC,EAAA,GACL,EAAE,WAAWC,EAAA,IAAmBC,EAAA,GAChCC,IAAsB,MACtBT,MAAS;AAAA;AAAA,IAGT,gBAAAU,EAACC,KAAO,IAAAN,GAAQ,KAAAH,GAAU,MAAAJ,GAAa,GAAIG,EAAK,eAAe,GAAC,CAAI;AAAA,MAIjE,gBAAAS,EAACE,KAAM,IAAAP,GAAQ,KAAAH,GAAU,MAAAJ,GAAa,GAAIG,EAAK,cAAc,CAAA,GAAK;AAE3E,SACE,gBAAAY,EAAC,SAAI,WAAWC,EAAKX,EAAI,OAAO,GAAGI,GAAgBV,CAAS,GACzD,UAAA;AAAA,IAAAD,uBACE,SAAA,EAAM,SAASS,GAAI,WAAWF,EAAI,aAAa,GAC7C,UAAA;AAAA,MAAAP;AAAA,MACAG,IAAQ,MAAM;AAAA,IAAA,GACjB;AAAA,IAEDU,EAAA;AAAA,EAAoB,GACvB;AAEJ,GAEaM,IAAQC,EAAWrB,CAAU;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBreakpoint.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useBreakpoint.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,GAAI,gBAAe,UAAiB;;
|
|
1
|
+
{"version":3,"file":"useBreakpoint.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useBreakpoint.ts"],"names":[],"mappings":"AAGA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,GAAI,gBAAe,UAAiB;;aAmErD,UAAU;eAaV,UAAU;qBAaP,UAAU,SAAS,UAAU;eAoBhC,UAAU;CAqClB,CAAC"}
|
|
@@ -9,7 +9,15 @@ const e = {
|
|
|
9
9
|
}, q = (x = "lg") => {
|
|
10
10
|
const [i, h] = c(x), [d, l] = c(!1), a = y(() => {
|
|
11
11
|
const t = {};
|
|
12
|
-
return typeof window < "u" && (t.sm = window.matchMedia(`(max-width: ${e.md - 1}px)`), t.md = window.matchMedia(
|
|
12
|
+
return typeof window < "u" && (t.sm = window.matchMedia(`(max-width: ${e.md - 1}px)`), t.md = window.matchMedia(
|
|
13
|
+
`(min-width: ${e.md}px) and (max-width: ${e.lg - 1}px)`
|
|
14
|
+
), t.lg = window.matchMedia(
|
|
15
|
+
`(min-width: ${e.lg}px) and (max-width: ${e.xl - 1}px)`
|
|
16
|
+
), t.xl = window.matchMedia(
|
|
17
|
+
`(min-width: ${e.xl}px) and (max-width: ${e["2xl"] - 1}px)`
|
|
18
|
+
), t["2xl"] = window.matchMedia(
|
|
19
|
+
`(min-width: ${e["2xl"]}px)`
|
|
20
|
+
)), t;
|
|
13
21
|
}, []);
|
|
14
22
|
r(() => {
|
|
15
23
|
l(!0);
|
|
@@ -27,13 +35,27 @@ const e = {
|
|
|
27
35
|
});
|
|
28
36
|
};
|
|
29
37
|
}, [a, d]);
|
|
30
|
-
const u = m(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
const u = m(
|
|
39
|
+
(t) => typeof window > "u" || !d ? e[i] >= e[t] : window.matchMedia(`(min-width: ${e[t]}px)`).matches,
|
|
40
|
+
[d, i]
|
|
41
|
+
), f = m(
|
|
42
|
+
(t) => typeof window > "u" || !d ? e[i] < e[t] : window.matchMedia(`(max-width: ${e[t] - 1}px)`).matches,
|
|
43
|
+
[d, i]
|
|
44
|
+
), p = m(
|
|
45
|
+
(t, n) => typeof window > "u" || !d ? e[i] >= e[t] && e[i] < e[n] : window.matchMedia(
|
|
46
|
+
`(min-width: ${e[t]}px) and (max-width: ${e[n] - 1}px)`
|
|
47
|
+
).matches,
|
|
48
|
+
[d, i]
|
|
49
|
+
), $ = m(
|
|
50
|
+
(t) => {
|
|
51
|
+
if (typeof window > "u" || !d)
|
|
52
|
+
return i === t;
|
|
53
|
+
const n = Object.keys(e), o = n.indexOf(t), w = n[o + 1];
|
|
54
|
+
let s;
|
|
55
|
+
return o === 0 ? s = `(max-width: ${e.md - 1}px)` : w ? s = `(min-width: ${e[t]}px) and (max-width: ${e[w] - 1}px)` : s = `(min-width: ${e[t]}px)`, window.matchMedia(s).matches;
|
|
56
|
+
},
|
|
57
|
+
[d, i]
|
|
58
|
+
);
|
|
37
59
|
return {
|
|
38
60
|
breakpoint: i,
|
|
39
61
|
up: u,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBreakpoint.js","sources":["../../../src/components/hooks/useBreakpoint.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useState, useCallback, useMemo } from \"react\";\n\ntype Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n\nexport const BREAKPOINTS = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536,\n};\n\n/**\n * A responsive breakpoint hook using window.matchMedia for optimal performance.\n *\n * @param ssrBreakpoint - The breakpoint to use during SSR and before hydration.\n * Defaults to \"lg\" for better SEO (search engines typically use desktop viewports).\n *\n * @example\n * ```tsx\n * // Default: uses \"lg\" for SSR\n * const bp = useBreakpoint();\n *\n * // Custom SSR breakpoint\n * const bp = useBreakpoint(\"md\");\n *\n * // Usage\n * bp.breakpoint // Current breakpoint: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n * bp.up(\"md\") // true if screen >= 768px\n * bp.down(\"lg\") // true if screen < 1024px\n * bp.between(\"md\", \"xl\") // true if 768px <= screen < 1280px\n * bp.only(\"lg\") // true if screen is exactly in \"lg\" range\n * ```\n */\nexport const useBreakpoint = (ssrBreakpoint: Breakpoint = \"lg\") => {\n const [breakpoint, setBreakpoint] = useState<Breakpoint>(ssrBreakpoint);\n const [isHydrated, setIsHydrated] = useState(false);\n\n // Generate media queries\n const mediaQueries = useMemo(() => {\n const queries: Record<Breakpoint, MediaQueryList> = {} as any;\n if (typeof window !==
|
|
1
|
+
{"version":3,"file":"useBreakpoint.js","sources":["../../../src/components/hooks/useBreakpoint.ts"],"sourcesContent":["\"use client\";\nimport { useEffect, useState, useCallback, useMemo } from \"react\";\n\ntype Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n\nexport const BREAKPOINTS = {\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n \"2xl\": 1536,\n};\n\n/**\n * A responsive breakpoint hook using window.matchMedia for optimal performance.\n *\n * @param ssrBreakpoint - The breakpoint to use during SSR and before hydration.\n * Defaults to \"lg\" for better SEO (search engines typically use desktop viewports).\n *\n * @example\n * ```tsx\n * // Default: uses \"lg\" for SSR\n * const bp = useBreakpoint();\n *\n * // Custom SSR breakpoint\n * const bp = useBreakpoint(\"md\");\n *\n * // Usage\n * bp.breakpoint // Current breakpoint: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n * bp.up(\"md\") // true if screen >= 768px\n * bp.down(\"lg\") // true if screen < 1024px\n * bp.between(\"md\", \"xl\") // true if 768px <= screen < 1280px\n * bp.only(\"lg\") // true if screen is exactly in \"lg\" range\n * ```\n */\nexport const useBreakpoint = (ssrBreakpoint: Breakpoint = \"lg\") => {\n const [breakpoint, setBreakpoint] = useState<Breakpoint>(ssrBreakpoint);\n const [isHydrated, setIsHydrated] = useState(false);\n\n // Generate media queries\n const mediaQueries = useMemo(() => {\n const queries: Record<Breakpoint, MediaQueryList> = {} as any;\n if (typeof window !== \"undefined\") {\n queries.sm = window.matchMedia(`(max-width: ${BREAKPOINTS.md - 1}px)`);\n queries.md = window.matchMedia(\n `(min-width: ${BREAKPOINTS.md}px) and (max-width: ${\n BREAKPOINTS.lg - 1\n }px)`\n );\n queries.lg = window.matchMedia(\n `(min-width: ${BREAKPOINTS.lg}px) and (max-width: ${\n BREAKPOINTS.xl - 1\n }px)`\n );\n queries.xl = window.matchMedia(\n `(min-width: ${BREAKPOINTS.xl}px) and (max-width: ${\n BREAKPOINTS[\"2xl\"] - 1\n }px)`\n );\n queries[\"2xl\"] = window.matchMedia(\n `(min-width: ${BREAKPOINTS[\"2xl\"]}px)`\n );\n }\n return queries;\n }, []);\n\n useEffect(() => {\n setIsHydrated(true);\n }, []);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !isHydrated) return;\n\n const updateBreakpoint = () => {\n let currentBp: Breakpoint = \"sm\";\n\n if (mediaQueries[\"2xl\"]?.matches) currentBp = \"2xl\";\n else if (mediaQueries.xl?.matches) currentBp = \"xl\";\n else if (mediaQueries.lg?.matches) currentBp = \"lg\";\n else if (mediaQueries.md?.matches) currentBp = \"md\";\n else currentBp = \"sm\";\n\n setBreakpoint(currentBp);\n };\n\n // Initial check\n updateBreakpoint();\n\n // Add listeners\n Object.values(mediaQueries).forEach((mq) => {\n if (mq) mq.addEventListener(\"change\", updateBreakpoint);\n });\n\n return () => {\n Object.values(mediaQueries).forEach((mq) => {\n if (mq) mq.removeEventListener(\"change\", updateBreakpoint);\n });\n };\n }, [mediaQueries, isHydrated]);\n\n // Min width check: is current width >= breakpoint\n const up = useCallback(\n (bp: Breakpoint) => {\n if (typeof window === \"undefined\" || !isHydrated) {\n // SSR fallback: check if ssrBreakpoint >= bp\n return BREAKPOINTS[breakpoint] >= BREAKPOINTS[bp];\n }\n const mq = window.matchMedia(`(min-width: ${BREAKPOINTS[bp]}px)`);\n return mq.matches;\n },\n [isHydrated, breakpoint]\n );\n\n // Max width check: is current width < breakpoint\n const down = useCallback(\n (bp: Breakpoint) => {\n if (typeof window === \"undefined\" || !isHydrated) {\n // SSR fallback: check if ssrBreakpoint < bp\n return BREAKPOINTS[breakpoint] < BREAKPOINTS[bp];\n }\n const mq = window.matchMedia(`(max-width: ${BREAKPOINTS[bp] - 1}px)`);\n return mq.matches;\n },\n [isHydrated, breakpoint]\n );\n\n // Range check: is current width between min and max breakpoints\n const between = useCallback(\n (minBp: Breakpoint, maxBp: Breakpoint) => {\n if (typeof window === \"undefined\" || !isHydrated) {\n // SSR fallback: check if minBp <= ssrBreakpoint < maxBp\n return (\n BREAKPOINTS[breakpoint] >= BREAKPOINTS[minBp] &&\n BREAKPOINTS[breakpoint] < BREAKPOINTS[maxBp]\n );\n }\n const mq = window.matchMedia(\n `(min-width: ${BREAKPOINTS[minBp]}px) and (max-width: ${\n BREAKPOINTS[maxBp] - 1\n }px)`\n );\n return mq.matches;\n },\n [isHydrated, breakpoint]\n );\n\n // Only check: is current width only within this breakpoint range\n const only = useCallback(\n (bp: Breakpoint) => {\n if (typeof window === \"undefined\" || !isHydrated) {\n // SSR fallback: check if ssrBreakpoint === bp\n return breakpoint === bp;\n }\n\n const breakpointKeys = Object.keys(BREAKPOINTS) as Breakpoint[];\n const currentIndex = breakpointKeys.indexOf(bp);\n const nextBp = breakpointKeys[currentIndex + 1];\n\n let query: string;\n if (currentIndex === 0) {\n // For 'sm', check if width < md\n query = `(max-width: ${BREAKPOINTS.md - 1}px)`;\n } else if (!nextBp) {\n // For highest breakpoint, check if width >= current\n query = `(min-width: ${BREAKPOINTS[bp]}px)`;\n } else {\n // For middle breakpoints, check range\n query = `(min-width: ${BREAKPOINTS[bp]}px) and (max-width: ${\n BREAKPOINTS[nextBp] - 1\n }px)`;\n }\n\n const mq = window.matchMedia(query);\n return mq.matches;\n },\n [isHydrated, breakpoint]\n );\n\n return {\n breakpoint,\n up,\n down,\n between,\n only,\n };\n};\n"],"names":["BREAKPOINTS","useBreakpoint","ssrBreakpoint","breakpoint","setBreakpoint","useState","isHydrated","setIsHydrated","mediaQueries","useMemo","queries","useEffect","updateBreakpoint","currentBp","mq","up","useCallback","bp","down","between","minBp","maxBp","only","breakpointKeys","currentIndex","nextBp","query"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useDS as c } from "../ds-root/
|
|
1
|
+
import { useDS as c } from "../ds-root/hook.js";
|
|
2
2
|
import { getTokensByTheme as C } from "../../tokens/utils.js";
|
|
3
3
|
import { chartColorTokens as h } from "../../tokens/charts/palettes/cloudscape.js";
|
|
4
4
|
import { useMemo as m } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCharts.js","sources":["../../../src/components/hooks/useCharts.ts"],"sourcesContent":["import { useDS } from \"../ds-root/
|
|
1
|
+
{"version":3,"file":"useCharts.js","sources":["../../../src/components/hooks/useCharts.ts"],"sourcesContent":["import { useDS } from \"../ds-root/hook\";\nimport { getTokensByTheme } from \"../../tokens/utils\";\nimport { chartColorTokens } from \"../../tokens/charts/palettes/cloudscape\";\n\nimport {\n SequentialPaletteName,\n CategoricalPaletteName,\n CATEGORICAL_PALETTE_NAMES,\n getCategoricalChartColors,\n getSequentialChartColors,\n SEQUENTIAL_PALETTE_NAMES,\n Theme,\n} from \"../../tokens\";\nimport { useMemo } from \"react\";\n\nexport interface UseChartsOptions {\n /**\n * The palette to use for the charts.\n * @default \"cloudscape\"\n */\n palette?: SequentialPaletteName | CategoricalPaletteName;\n /**\n * The theme to use for the charts.\n * @default \"light\"\n */\n theme?: Theme;\n}\n\n/**\n * Get chart colors and axis configuration based on the current theme.\n * @param options\n * @returns\n */\nexport const useCharts = (\n options: UseChartsOptions = {\n palette: \"cloudscape\",\n theme: undefined,\n }\n) => {\n const { theme: themeContext } = useDS();\n const theme = options.theme || themeContext;\n\n const chartInfo = useMemo(() => {\n const themedChartColorTokens = getTokensByTheme(chartColorTokens, theme);\n const axisLineColor = themedChartColorTokens[\"colorChartsLineAxis\"];\n const splitLineColor = themedChartColorTokens[\"colorChartsLineGrid\"];\n const axisLabelColor = themedChartColorTokens[\"colorChartsLabelAxis\"];\n\n const palette = options.palette;\n\n const chartColors = CATEGORICAL_PALETTE_NAMES.includes(\n palette as CategoricalPaletteName\n )\n ? getCategoricalChartColors(palette as CategoricalPaletteName, theme)\n : SEQUENTIAL_PALETTE_NAMES.includes(palette as SequentialPaletteName)\n ? getSequentialChartColors(palette as SequentialPaletteName, theme)\n : [];\n const echartsAxisConfig = {\n axisLine: { lineStyle: { color: axisLineColor } },\n splitLine: { lineStyle: { color: splitLineColor } },\n axisLabel: {\n color: axisLabelColor,\n fontFamily: \"InterVariable, Inter, Helvetica, Arial, sans-serif\",\n },\n };\n return {\n axisLineColor,\n splitLineColor,\n axisLabelColor,\n chartColors,\n echartsAxisConfig,\n };\n }, [theme, options.palette]);\n\n return chartInfo;\n};\n"],"names":["useCharts","options","themeContext","useDS","theme","useMemo","themedChartColorTokens","getTokensByTheme","chartColorTokens","axisLineColor","splitLineColor","axisLabelColor","palette","chartColors","CATEGORICAL_PALETTE_NAMES","getCategoricalChartColors","SEQUENTIAL_PALETTE_NAMES","getSequentialChartColors"],"mappings":";;;;;AAiCO,MAAMA,IAAY,CACvBC,IAA4B;AAAA,EAC1B,SAAS;AAAA,EACT,OAAO;AACT,MACG;AACH,QAAM,EAAE,OAAOC,EAAA,IAAiBC,EAAA,GAC1BC,IAAQH,EAAQ,SAASC;AAkC/B,SAhCkBG,EAAQ,MAAM;AAC9B,UAAMC,IAAyBC,EAAiBC,GAAkBJ,CAAK,GACjEK,IAAgBH,EAAuB,qBACvCI,IAAiBJ,EAAuB,qBACxCK,IAAiBL,EAAuB,sBAExCM,IAAUX,EAAQ,SAElBY,IAAcC,EAA0B;AAAA,MAC5CF;AAAA,IAAA,IAEEG,EAA0BH,GAAmCR,CAAK,IAClEY,EAAyB,SAASJ,CAAgC,IAClEK,EAAyBL,GAAkCR,CAAK,IAChE,CAAA;AASJ,WAAO;AAAA,MACL,eAAAK;AAAA,MACA,gBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,aAAAE;AAAA,MACA,mBAbwB;AAAA,QACxB,UAAU,EAAE,WAAW,EAAE,OAAOJ,IAAc;AAAA,QAC9C,WAAW,EAAE,WAAW,EAAE,OAAOC,IAAe;AAAA,QAChD,WAAW;AAAA,UACT,OAAOC;AAAA,UACP,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,IAOA;AAAA,EAEJ,GAAG,CAACP,GAAOH,EAAQ,OAAO,CAAC;AAG7B;"}
|
|
@@ -7,8 +7,10 @@ export * from './switch/component';
|
|
|
7
7
|
export * from './checkbox/index';
|
|
8
8
|
export * from './segmented/index';
|
|
9
9
|
export * from './table/component';
|
|
10
|
+
export { DataTable } from './data-table/component';
|
|
11
|
+
export type { DataTableProps, DataTableColumnType, DataTableRef, DataTableRowSelection, DataTablePaginationConfig, } from './data-table/types';
|
|
10
12
|
export * from './tag/component';
|
|
11
|
-
export * from './theme-provider
|
|
13
|
+
export * from './theme-provider';
|
|
12
14
|
export * from './splitter/component';
|
|
13
15
|
export * from './truncate/component';
|
|
14
16
|
export * from './dropdown-menu/index';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,GAAG,EACH,YAAY,EACZ,MAAM,EACN,OAAO,EAIP,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EAER,GAAG,EAEH,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,MAAM,EACN,QAAQ,EAER,IAAI,EACJ,WAAW,EAEX,IAAI,EAGJ,WAAW,EACX,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,OAAO,EAEP,YAAY,EACZ,UAAU,EACV,UAAU,EAEV,QAAQ,EACR,MAAM,EAEN,IAAI,EACJ,MAAM,EACN,GAAG,EAGH,QAAQ,EAER,KAAK,EAEL,SAAS,EACT,KAAK,EAGL,IAAI,EAEJ,KAAK,EACL,UAAU,EACV,QAAQ,EAGR,QAAQ,EAER,UAAU,EACV,UAAU,EAEV,OAAO,EACP,SAAS,EAET,iBAAiB,GAClB,MAAM,MAAM,CAAC;AAEd,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,YAAY,EAKZ,YAAY,EACZ,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAElB,WAAW,EACX,QAAQ,EAGR,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EAEb,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,YAAY,EAEZ,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,EAIT,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EAEd,qBAAqB,EACrB,eAAe,EACf,eAAe,EAEf,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EAIV,SAAS,EACT,WAAW,EACX,QAAQ,EAER,cAAc,EAEd,aAAa,EACb,iBAAiB,EACjB,UAAU,EAEV,cAAc,EACd,cAAc,EACd,SAAS,EACT,UAAU,EAEV,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EAErB,YAAY,EACZ,SAAS,EAET,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EAIb,aAAa,EAIb,eAAe,EACf,eAAe,EACf,UAAU,EAGV,cAAc,GAEf,MAAM,MAAM,CAAC;AAEd,cAAc,gBAAgB,CAAC;AAE/B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,5 +81,5 @@ export interface ModalProps extends Omit<AntModalProps, "centered"> {
|
|
|
81
81
|
*/
|
|
82
82
|
bodyScrollable?: boolean;
|
|
83
83
|
}
|
|
84
|
-
export declare const Modal: ({ open: externalOpen, closeIcon, children, size: sizeProp, footer, width, style, styles, classNames, okButtonProps, cancelButtonProps, loading, onOk, onCancel, okText, okType, confirmLoading, cancelText, hideOkButton, hideCancelButton, contentPadding, title, afterTitle, beforeCloseButton, afterCloseButton, defaultFixedHeaderFooter, centered, type, defaultOpen, background: backgroundProp, bodyScrollable, ...rest }: ModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
export declare const Modal: ({ open: externalOpen, closeIcon, children, size: sizeProp, footer, width, style, styles, classNames, okButtonProps, cancelButtonProps, loading, onOk, onCancel, okText, okType, confirmLoading, cancelText, hideOkButton, hideCancelButton, contentPadding, title, afterTitle, beforeCloseButton, afterCloseButton, defaultFixedHeaderFooter, centered, type, defaultOpen, background: backgroundProp, bodyScrollable, rootClassName, ...rest }: ModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
85
85
|
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -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,KAAmD,MAAM,OAAO,CAAC;AASxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,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,KAAmD,MAAM,OAAO,CAAC;AASxE,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,4CAoNZ,CAAC"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as e, jsxs as a, Fragment as
|
|
3
|
-
import
|
|
4
|
-
import { XIcon as
|
|
5
|
-
import { useState as
|
|
6
|
-
import { ModalContextProvider as
|
|
2
|
+
import { jsx as e, jsxs as a, Fragment as T } from "react/jsx-runtime";
|
|
3
|
+
import ue from "antd/es/modal";
|
|
4
|
+
import { XIcon as pe } from "@bioturing/assets";
|
|
5
|
+
import { useState as H, useRef as he, useCallback as ye, useEffect as be } from "react";
|
|
6
|
+
import { ModalContextProvider as ge } from "antd/es/modal/context";
|
|
7
7
|
import R from "antd/es/modal/components/NormalCancelBtn";
|
|
8
8
|
import L from "antd/es/modal/components/NormalOkBtn";
|
|
9
|
-
import { getConfirmLocale as
|
|
10
|
-
import { useLocale as
|
|
9
|
+
import { getConfirmLocale as ve } from "antd/es/modal/locale";
|
|
10
|
+
import { useLocale as Ce } from "antd/es/locale";
|
|
11
11
|
import { ModalSize as c } from "./constants.js";
|
|
12
12
|
import { Stack as f } from "../stack/index.js";
|
|
13
|
-
import { Truncate as
|
|
14
|
-
import { IconButton as
|
|
15
|
-
import { useCls as
|
|
16
|
-
|
|
13
|
+
import { Truncate as ke } from "../truncate/component.js";
|
|
14
|
+
import { IconButton as we } from "../icon-button/component.js";
|
|
15
|
+
import { useCls as xe } from "../utils/antdUtils.js";
|
|
16
|
+
import { useTheme as Oe } from "../theme-provider/context/themeStore.js";
|
|
17
|
+
import { clsx as ze } from "../utils/cn.js";
|
|
18
|
+
const Ge = ({
|
|
17
19
|
open: u,
|
|
18
20
|
closeIcon: p,
|
|
19
21
|
children: j,
|
|
@@ -27,16 +29,16 @@ const We = ({
|
|
|
27
29
|
cancelButtonProps: q,
|
|
28
30
|
loading: A,
|
|
29
31
|
onOk: b,
|
|
30
|
-
onCancel:
|
|
32
|
+
onCancel: m,
|
|
31
33
|
okText: g,
|
|
32
34
|
okType: X = "primary",
|
|
33
35
|
confirmLoading: v,
|
|
34
|
-
cancelText:
|
|
35
|
-
hideOkButton:
|
|
36
|
-
hideCancelButton:
|
|
36
|
+
cancelText: C = "Close",
|
|
37
|
+
hideOkButton: k = !1,
|
|
38
|
+
hideCancelButton: w = !1,
|
|
37
39
|
contentPadding: r,
|
|
38
|
-
title:
|
|
39
|
-
afterTitle:
|
|
40
|
+
title: i,
|
|
41
|
+
afterTitle: x,
|
|
40
42
|
beforeCloseButton: D,
|
|
41
43
|
afterCloseButton: G,
|
|
42
44
|
defaultFixedHeaderFooter: J = !1,
|
|
@@ -45,13 +47,14 @@ const We = ({
|
|
|
45
47
|
defaultOpen: U = !0,
|
|
46
48
|
background: V,
|
|
47
49
|
bodyScrollable: Y = !0,
|
|
48
|
-
|
|
50
|
+
rootClassName: Z,
|
|
51
|
+
..._
|
|
49
52
|
}) => {
|
|
50
|
-
const
|
|
53
|
+
const ee = p === void 0 ? /* @__PURE__ */ e(pe, { size: 16, weight: "bold" }) : p, t = E || (Q === "default" ? "medium" : "xsmall"), oe = F || c[t], re = {
|
|
51
54
|
"--ds-modal-bg": `var(--ds-color-bg-${V || (t in c && parseInt(c[t]) <= parseInt(c.medium) ? "elevated" : "container")})`,
|
|
52
55
|
...P,
|
|
53
56
|
...t === "fullscreen" ? { top: 0, maxWidth: "100%", height: "100%" } : {}
|
|
54
|
-
},
|
|
57
|
+
}, te = {
|
|
55
58
|
...y,
|
|
56
59
|
body: {
|
|
57
60
|
...typeof r < "u" ? {
|
|
@@ -59,104 +62,105 @@ const We = ({
|
|
|
59
62
|
} : {},
|
|
60
63
|
...y?.body
|
|
61
64
|
}
|
|
62
|
-
}, [
|
|
65
|
+
}, [O, z] = H(!1), n = xe(), { className: le } = Oe(), s = he(null), ne = ye(
|
|
63
66
|
(o) => {
|
|
64
67
|
if (!o) return;
|
|
65
68
|
const l = o.querySelector("." + n("modal-body"));
|
|
66
69
|
if (!(l instanceof HTMLElement)) return;
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
z(
|
|
70
|
+
const S = new ResizeObserver(() => {
|
|
71
|
+
const fe = l.scrollHeight > l.clientHeight;
|
|
72
|
+
z(fe);
|
|
70
73
|
});
|
|
71
|
-
s.current =
|
|
72
|
-
const
|
|
73
|
-
z(
|
|
74
|
+
s.current = S, S.observe(l);
|
|
75
|
+
const de = l.scrollHeight > l.clientHeight;
|
|
76
|
+
z(de);
|
|
74
77
|
},
|
|
75
78
|
[n]
|
|
76
79
|
);
|
|
77
|
-
|
|
80
|
+
be(() => () => {
|
|
78
81
|
s.current && (s.current.disconnect(), s.current = null);
|
|
79
82
|
}, []);
|
|
80
|
-
const [B] =
|
|
83
|
+
const [B] = Ce("Modal", ve()), se = g || B?.okText, ae = C || B?.cancelText, I = {
|
|
81
84
|
loading: A,
|
|
82
85
|
...$
|
|
83
86
|
}, M = {
|
|
84
87
|
...q
|
|
85
|
-
}, [
|
|
86
|
-
|
|
88
|
+
}, [ce, N] = H(U), d = typeof u > "u", me = d ? ce : u, ie = /* @__PURE__ */ e(
|
|
89
|
+
ge,
|
|
87
90
|
{
|
|
88
91
|
value: {
|
|
89
92
|
okButtonProps: I,
|
|
90
93
|
cancelButtonProps: M,
|
|
91
|
-
onCancel:
|
|
94
|
+
onCancel: m,
|
|
92
95
|
onOk: b,
|
|
93
96
|
okType: X,
|
|
94
97
|
confirmLoading: v,
|
|
95
|
-
okTextLocale:
|
|
96
|
-
cancelTextLocale:
|
|
98
|
+
okTextLocale: se,
|
|
99
|
+
cancelTextLocale: ae
|
|
97
100
|
},
|
|
98
|
-
children:
|
|
101
|
+
children: k ? /* @__PURE__ */ e(R, {}) : w ? /* @__PURE__ */ e(L, {}) : /* @__PURE__ */ a(T, { children: [
|
|
99
102
|
/* @__PURE__ */ e(R, {}),
|
|
100
103
|
/* @__PURE__ */ e(L, {})
|
|
101
104
|
] })
|
|
102
105
|
}
|
|
103
106
|
);
|
|
104
107
|
return /* @__PURE__ */ e(
|
|
105
|
-
|
|
108
|
+
ue,
|
|
106
109
|
{
|
|
107
110
|
closeIcon: !1,
|
|
108
|
-
open:
|
|
109
|
-
width:
|
|
110
|
-
style:
|
|
111
|
-
title: /* @__PURE__ */ a(
|
|
111
|
+
open: me,
|
|
112
|
+
width: oe,
|
|
113
|
+
style: re,
|
|
114
|
+
title: /* @__PURE__ */ a(T, { children: [
|
|
112
115
|
/* @__PURE__ */ a(f, { align: "center", gap: 8, className: n("modal-title-wrapper"), children: [
|
|
113
|
-
/* @__PURE__ */ e(f.Child, { grow: !0, children: typeof
|
|
116
|
+
/* @__PURE__ */ e(f.Child, { grow: !0, children: typeof i == "string" ? /* @__PURE__ */ e(ke, { children: i }) : i }),
|
|
114
117
|
/* @__PURE__ */ a(f.Child, { stack: !0, hug: !0, align: "center", gap: 8, children: [
|
|
115
118
|
D,
|
|
116
119
|
/* @__PURE__ */ e(
|
|
117
|
-
|
|
120
|
+
we,
|
|
118
121
|
{
|
|
119
|
-
onClick: (o) =>
|
|
120
|
-
children:
|
|
122
|
+
onClick: (o) => m?.(o),
|
|
123
|
+
children: ee
|
|
121
124
|
}
|
|
122
125
|
),
|
|
123
126
|
G
|
|
124
127
|
] })
|
|
125
128
|
] }),
|
|
126
|
-
|
|
129
|
+
x || null
|
|
127
130
|
] }),
|
|
131
|
+
rootClassName: ze(le, Z),
|
|
128
132
|
classNames: {
|
|
129
133
|
...W,
|
|
130
134
|
wrapper: n(
|
|
131
135
|
"modal-wrap",
|
|
132
136
|
t == "fullscreen" && "modal-fullscreen",
|
|
133
|
-
|
|
137
|
+
O && "modal-content-overflow",
|
|
134
138
|
Y === !1 && "modal-no-body-scroll",
|
|
135
|
-
J ||
|
|
139
|
+
J || O || t == "fullscreen" ? "modal-fixed" : ""
|
|
136
140
|
)
|
|
137
141
|
},
|
|
138
|
-
styles:
|
|
139
|
-
modalRender: (o) => /* @__PURE__ */ e("div", { ref:
|
|
142
|
+
styles: te,
|
|
143
|
+
modalRender: (o) => /* @__PURE__ */ e("div", { ref: ne, className: n("modal-inner"), children: o }),
|
|
140
144
|
okButtonProps: I,
|
|
141
145
|
cancelButtonProps: M,
|
|
142
146
|
onOk: (o) => {
|
|
143
|
-
|
|
147
|
+
d && N(!1), b?.(o);
|
|
144
148
|
},
|
|
145
149
|
onCancel: (o) => {
|
|
146
|
-
|
|
150
|
+
d && N(!1), m?.(o);
|
|
147
151
|
},
|
|
148
152
|
okText: g,
|
|
149
|
-
cancelText:
|
|
153
|
+
cancelText: C,
|
|
150
154
|
okType: "primary",
|
|
151
155
|
confirmLoading: v,
|
|
152
|
-
footer: typeof h > "u" ?
|
|
156
|
+
footer: typeof h > "u" ? k && w ? null : ie : h,
|
|
153
157
|
centered: K,
|
|
154
|
-
...
|
|
158
|
+
..._,
|
|
155
159
|
children: j
|
|
156
160
|
}
|
|
157
161
|
);
|
|
158
162
|
};
|
|
159
163
|
export {
|
|
160
|
-
|
|
164
|
+
Ge as Modal
|
|
161
165
|
};
|
|
162
166
|
//# sourceMappingURL=Modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntModal,\n type ModalProps as AntModalProps,\n} from \"antd/es/modal\";\nimport { XIcon } from \"@bioturing/assets\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useCls } from \"../utils\";\nimport { ModalContextProvider } from \"antd/es/modal/context\";\nimport NormalCancelBtn from \"antd/es/modal/components/NormalCancelBtn\";\nimport NormalOkBtn from \"antd/es/modal/components/NormalOkBtn\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport { IconButton } from \"../icon-button\";\nimport { ModalSize } from \"./constants\";\nimport { ModalType } from \"./functions\";\nimport { Truncate } from \"../truncate\";\nimport { Stack } from \"../stack\";\n\n// Define props interface extending Ant Design's ModalProps\nexport interface ModalProps extends Omit<AntModalProps, \"centered\"> {\n /**\n * Predefined sizes for the modal\n * - xsmall: 400px\n * - small: 520px\n * - medium: 640px (default)\n * - large: 840px\n * - xlarge: 1024px\n * - fullscreen: 100vw (takes full screen width with margins)\n * @default \"medium\" for default type, \"xsmall\" for other types\n */\n size?:\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"fullscreen\";\n /**\n * Mark modal as loading\n * @default false\n */\n loading?: boolean;\n /**\n * Hide Ok button\n * @default false\n */\n hideOkButton?: boolean;\n /**\n * Hide Cancel button\n * @default false\n */\n hideCancelButton?: boolean;\n /**\n * Custom Content Padding\n * @default \"24px\"\n */\n contentPadding?: number | string | boolean;\n /**\n * Add more content below the title\n */\n afterTitle?: React.ReactNode;\n /**\n * Add more actions before close button\n */\n beforeCloseButton?: React.ReactNode;\n /**\n * Add more actions after close button\n */\n afterCloseButton?: React.ReactNode;\n /**\n * Set header and footer to fixed position\n * @default false\n */\n defaultFixedHeaderFooter?: boolean;\n /**\n * Centered Modal\n * @default true\n */\n centered?: boolean;\n /**\n * Modal type\n * @default \"default\"\n */\n type?: ModalType;\n /**\n * Default open state for uncontrolled modal\n * @default true\n */\n defaultOpen?: boolean;\n /**\n * Modal background\n * @default \"elevated\" if size smaller than \"medium\", otherwise \"container\"\n */\n background?: \"elevated\" | \"container\";\n /**\n * Modal old close callback\n * @deprecated use onCancel instead\n */\n onClose?: () => void;\n /**\n * Make modal body scrollable\n * @default true\n */\n bodyScrollable?: boolean;\n}\n\n// Create Modal component\nexport const Modal = ({\n open: externalOpen,\n closeIcon,\n children,\n size: sizeProp,\n footer,\n width,\n style,\n styles,\n classNames,\n okButtonProps,\n cancelButtonProps,\n loading,\n onOk,\n onCancel,\n okText,\n okType = \"primary\",\n confirmLoading,\n cancelText = \"Close\",\n hideOkButton = false,\n hideCancelButton = false,\n contentPadding,\n title,\n afterTitle,\n beforeCloseButton,\n afterCloseButton,\n defaultFixedHeaderFooter = false,\n centered = true,\n type = \"default\",\n defaultOpen = true,\n background: backgroundProp,\n bodyScrollable = true,\n ...rest\n}: ModalProps) => {\n // Default close icon with Phosphor icon\n const defaultCloseIcon =\n closeIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n\n // Use custom width if provided, otherwise use the size from the map\n const defaultModalSize = type === \"default\" ? \"medium\" : \"xsmall\";\n\n const size: keyof typeof ModalSize = sizeProp || defaultModalSize;\n const modalWidth = width || ModalSize[size];\n\n const background =\n backgroundProp ||\n (size &&\n size in ModalSize &&\n parseInt(ModalSize[size]) <= parseInt(ModalSize.medium)\n ? \"elevated\"\n : \"container\");\n\n // Apply additional styles for fullscreen mode\n const modalStyle = {\n \"--ds-modal-bg\": `var(--ds-color-bg-${background})`,\n ...style,\n ...(size === \"fullscreen\"\n ? { top: 0, maxWidth: \"100%\", height: \"100%\" }\n : {}),\n };\n\n const modalStyles = {\n ...styles,\n body: {\n ...((typeof contentPadding != \"undefined\"\n ? {\n \"--ds-modal-content-padding\":\n contentPadding === false || contentPadding === 0\n ? \"0\"\n : typeof contentPadding == \"number\"\n ? `${contentPadding}px`\n : contentPadding,\n }\n : {}) as React.CSSProperties),\n ...styles?.body,\n },\n };\n\n const [isContentOverflow, setIsContentOverflow] = useState(false);\n\n const cls = useCls();\n\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const modalInnerRef = useCallback(\n (node: HTMLElement | null) => {\n // If the node is null (component unmounting), just return\n if (!node) return;\n\n const modalBody = node.querySelector(\".\" + cls(\"modal-body\"));\n if (!(modalBody instanceof HTMLElement)) return;\n\n // Create ResizeObserver to detect overflow\n const resizeObserver = new ResizeObserver(() => {\n const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;\n setIsContentOverflow(hasOverflow);\n });\n\n // Store reference to the observer\n resizeObserverRef.current = resizeObserver;\n\n // Start observing\n resizeObserver.observe(modalBody);\n\n // Initial check\n const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;\n setIsContentOverflow(hasOverflow);\n },\n [cls]\n );\n\n // clean up resize observer\n useEffect(() => {\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n };\n }, []);\n\n const [locale] = useLocale(\"Modal\", getConfirmLocale());\n\n const okTextLocale: React.ReactNode = okText || locale?.okText;\n const cancelTextLocale = cancelText || locale?.cancelText;\n\n const modalOkButtonProps = {\n loading: loading,\n ...okButtonProps,\n };\n\n const modalCancelButtonProps = {\n ...cancelButtonProps,\n };\n\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n\n const uncontrolledOpen = typeof externalOpen === \"undefined\";\n\n const open = uncontrolledOpen ? internalOpen : externalOpen;\n\n const defaultFooter = (\n <ModalContextProvider\n value={{\n okButtonProps: modalOkButtonProps,\n cancelButtonProps: modalCancelButtonProps,\n onCancel,\n onOk,\n okType,\n confirmLoading,\n okTextLocale,\n cancelTextLocale,\n }}\n >\n {hideOkButton ? (\n <NormalCancelBtn />\n ) : hideCancelButton ? (\n <NormalOkBtn />\n ) : (\n <>\n <NormalCancelBtn />\n <NormalOkBtn />\n </>\n )}\n </ModalContextProvider>\n );\n const renderTitle = () => {\n return (\n <>\n <Stack align=\"center\" gap={8} className={cls(\"modal-title-wrapper\")}>\n <Stack.Child grow>\n {typeof title === \"string\" ? <Truncate>{title}</Truncate> : title}\n </Stack.Child>\n <Stack.Child stack hug align=\"center\" gap={8}>\n {beforeCloseButton}\n <IconButton\n onClick={(e: React.MouseEvent<HTMLButtonElement>) =>\n onCancel?.(e)\n }\n >\n {defaultCloseIcon}\n </IconButton>\n {afterCloseButton}\n </Stack.Child>\n {}\n </Stack>\n {afterTitle ? afterTitle : null}\n </>\n );\n };\n return (\n <AntModal\n closeIcon={false}\n open={open}\n width={modalWidth}\n style={modalStyle}\n title={renderTitle()}\n classNames={{\n ...classNames,\n wrapper: cls(\n \"modal-wrap\",\n size == \"fullscreen\" && \"modal-fullscreen\",\n isContentOverflow && \"modal-content-overflow\",\n bodyScrollable === false && \"modal-no-body-scroll\",\n defaultFixedHeaderFooter || isContentOverflow || size == \"fullscreen\"\n ? \"modal-fixed\"\n : \"\"\n ),\n }}\n styles={modalStyles}\n modalRender={(modal) => (\n <div ref={modalInnerRef} className={cls(\"modal-inner\")}>\n {modal}\n </div>\n )}\n okButtonProps={modalOkButtonProps}\n cancelButtonProps={modalCancelButtonProps}\n onOk={(e) => {\n if (uncontrolledOpen) setInternalOpen(false);\n onOk?.(e);\n }}\n onCancel={(e) => {\n if (uncontrolledOpen) setInternalOpen(false);\n onCancel?.(e);\n }}\n okText={okText}\n cancelText={cancelText}\n okType=\"primary\"\n confirmLoading={confirmLoading}\n footer={\n typeof footer === \"undefined\"\n ? hideOkButton && hideCancelButton\n ? null\n : defaultFooter\n : footer\n }\n centered={centered}\n {...rest}\n >\n {children}\n </AntModal>\n );\n};\n"],"names":["Modal","externalOpen","closeIcon","children","sizeProp","footer","width","style","styles","classNames","okButtonProps","cancelButtonProps","loading","onOk","onCancel","okText","okType","confirmLoading","cancelText","hideOkButton","hideCancelButton","contentPadding","title","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","type","defaultOpen","backgroundProp","bodyScrollable","rest","defaultCloseIcon","jsx","XIcon","size","modalWidth","ModalSize","modalStyle","modalStyles","isContentOverflow","setIsContentOverflow","useState","cls","useCls","resizeObserverRef","useRef","modalInnerRef","useCallback","node","modalBody","resizeObserver","hasOverflow","useEffect","locale","useLocale","getConfirmLocale","okTextLocale","cancelTextLocale","modalOkButtonProps","modalCancelButtonProps","internalOpen","setInternalOpen","uncontrolledOpen","open","defaultFooter","ModalContextProvider","NormalCancelBtn","NormalOkBtn","jsxs","Fragment","AntModal","Stack","Truncate","IconButton","e","modal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntModal,\n type ModalProps as AntModalProps,\n} from \"antd/es/modal\";\nimport { XIcon } from \"@bioturing/assets\";\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { ModalContextProvider } from \"antd/es/modal/context\";\nimport NormalCancelBtn from \"antd/es/modal/components/NormalCancelBtn\";\nimport NormalOkBtn from \"antd/es/modal/components/NormalOkBtn\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport { IconButton } from \"../icon-button\";\nimport { ModalSize } from \"./constants\";\nimport { ModalType } from \"./functions\";\nimport { Truncate } from \"../truncate\";\nimport { Stack } from \"../stack\";\nimport { useTheme } from \"../theme-provider\";\n\n// Define props interface extending Ant Design's ModalProps\nexport interface ModalProps extends Omit<AntModalProps, \"centered\"> {\n /**\n * Predefined sizes for the modal\n * - xsmall: 400px\n * - small: 520px\n * - medium: 640px (default)\n * - large: 840px\n * - xlarge: 1024px\n * - fullscreen: 100vw (takes full screen width with margins)\n * @default \"medium\" for default type, \"xsmall\" for other types\n */\n size?:\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"fullscreen\";\n /**\n * Mark modal as loading\n * @default false\n */\n loading?: boolean;\n /**\n * Hide Ok button\n * @default false\n */\n hideOkButton?: boolean;\n /**\n * Hide Cancel button\n * @default false\n */\n hideCancelButton?: boolean;\n /**\n * Custom Content Padding\n * @default \"24px\"\n */\n contentPadding?: number | string | boolean;\n /**\n * Add more content below the title\n */\n afterTitle?: React.ReactNode;\n /**\n * Add more actions before close button\n */\n beforeCloseButton?: React.ReactNode;\n /**\n * Add more actions after close button\n */\n afterCloseButton?: React.ReactNode;\n /**\n * Set header and footer to fixed position\n * @default false\n */\n defaultFixedHeaderFooter?: boolean;\n /**\n * Centered Modal\n * @default true\n */\n centered?: boolean;\n /**\n * Modal type\n * @default \"default\"\n */\n type?: ModalType;\n /**\n * Default open state for uncontrolled modal\n * @default true\n */\n defaultOpen?: boolean;\n /**\n * Modal background\n * @default \"elevated\" if size smaller than \"medium\", otherwise \"container\"\n */\n background?: \"elevated\" | \"container\";\n /**\n * Modal old close callback\n * @deprecated use onCancel instead\n */\n onClose?: () => void;\n /**\n * Make modal body scrollable\n * @default true\n */\n bodyScrollable?: boolean;\n}\n\n// Create Modal component\nexport const Modal = ({\n open: externalOpen,\n closeIcon,\n children,\n size: sizeProp,\n footer,\n width,\n style,\n styles,\n classNames,\n okButtonProps,\n cancelButtonProps,\n loading,\n onOk,\n onCancel,\n okText,\n okType = \"primary\",\n confirmLoading,\n cancelText = \"Close\",\n hideOkButton = false,\n hideCancelButton = false,\n contentPadding,\n title,\n afterTitle,\n beforeCloseButton,\n afterCloseButton,\n defaultFixedHeaderFooter = false,\n centered = true,\n type = \"default\",\n defaultOpen = true,\n background: backgroundProp,\n bodyScrollable = true,\n rootClassName,\n ...rest\n}: ModalProps) => {\n // Default close icon with Phosphor icon\n const defaultCloseIcon =\n closeIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n\n // Use custom width if provided, otherwise use the size from the map\n const defaultModalSize = type === \"default\" ? \"medium\" : \"xsmall\";\n\n const size: keyof typeof ModalSize = sizeProp || defaultModalSize;\n const modalWidth = width || ModalSize[size];\n\n const background =\n backgroundProp ||\n (size &&\n size in ModalSize &&\n parseInt(ModalSize[size]) <= parseInt(ModalSize.medium)\n ? \"elevated\"\n : \"container\");\n\n // Apply additional styles for fullscreen mode\n const modalStyle = {\n \"--ds-modal-bg\": `var(--ds-color-bg-${background})`,\n ...style,\n ...(size === \"fullscreen\"\n ? { top: 0, maxWidth: \"100%\", height: \"100%\" }\n : {}),\n };\n\n const modalStyles = {\n ...styles,\n body: {\n ...((typeof contentPadding != \"undefined\"\n ? {\n \"--ds-modal-content-padding\":\n contentPadding === false || contentPadding === 0\n ? \"0\"\n : typeof contentPadding == \"number\"\n ? `${contentPadding}px`\n : contentPadding,\n }\n : {}) as React.CSSProperties),\n ...styles?.body,\n },\n };\n\n const [isContentOverflow, setIsContentOverflow] = useState(false);\n\n const cls = useCls();\n\n const { className: themeClassName } = useTheme();\n\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const modalInnerRef = useCallback(\n (node: HTMLElement | null) => {\n // If the node is null (component unmounting), just return\n if (!node) return;\n\n const modalBody = node.querySelector(\".\" + cls(\"modal-body\"));\n if (!(modalBody instanceof HTMLElement)) return;\n\n // Create ResizeObserver to detect overflow\n const resizeObserver = new ResizeObserver(() => {\n const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;\n setIsContentOverflow(hasOverflow);\n });\n\n // Store reference to the observer\n resizeObserverRef.current = resizeObserver;\n\n // Start observing\n resizeObserver.observe(modalBody);\n\n // Initial check\n const hasOverflow = modalBody.scrollHeight > modalBody.clientHeight;\n setIsContentOverflow(hasOverflow);\n },\n [cls]\n );\n\n // clean up resize observer\n useEffect(() => {\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n };\n }, []);\n\n const [locale] = useLocale(\"Modal\", getConfirmLocale());\n\n const okTextLocale: React.ReactNode = okText || locale?.okText;\n const cancelTextLocale = cancelText || locale?.cancelText;\n\n const modalOkButtonProps = {\n loading: loading,\n ...okButtonProps,\n };\n\n const modalCancelButtonProps = {\n ...cancelButtonProps,\n };\n\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n\n const uncontrolledOpen = typeof externalOpen === \"undefined\";\n\n const open = uncontrolledOpen ? internalOpen : externalOpen;\n\n const defaultFooter = (\n <ModalContextProvider\n value={{\n okButtonProps: modalOkButtonProps,\n cancelButtonProps: modalCancelButtonProps,\n onCancel,\n onOk,\n okType,\n confirmLoading,\n okTextLocale,\n cancelTextLocale,\n }}\n >\n {hideOkButton ? (\n <NormalCancelBtn />\n ) : hideCancelButton ? (\n <NormalOkBtn />\n ) : (\n <>\n <NormalCancelBtn />\n <NormalOkBtn />\n </>\n )}\n </ModalContextProvider>\n );\n const renderTitle = () => {\n return (\n <>\n <Stack align=\"center\" gap={8} className={cls(\"modal-title-wrapper\")}>\n <Stack.Child grow>\n {typeof title === \"string\" ? <Truncate>{title}</Truncate> : title}\n </Stack.Child>\n <Stack.Child stack hug align=\"center\" gap={8}>\n {beforeCloseButton}\n <IconButton\n onClick={(e: React.MouseEvent<HTMLButtonElement>) =>\n onCancel?.(e)\n }\n >\n {defaultCloseIcon}\n </IconButton>\n {afterCloseButton}\n </Stack.Child>\n {}\n </Stack>\n {afterTitle ? afterTitle : null}\n </>\n );\n };\n return (\n <AntModal\n closeIcon={false}\n open={open}\n width={modalWidth}\n style={modalStyle}\n title={renderTitle()}\n rootClassName={clsx(themeClassName, rootClassName)}\n classNames={{\n ...classNames,\n wrapper: cls(\n \"modal-wrap\",\n size == \"fullscreen\" && \"modal-fullscreen\",\n isContentOverflow && \"modal-content-overflow\",\n bodyScrollable === false && \"modal-no-body-scroll\",\n defaultFixedHeaderFooter || isContentOverflow || size == \"fullscreen\"\n ? \"modal-fixed\"\n : \"\"\n ),\n }}\n styles={modalStyles}\n modalRender={(modal) => (\n <div ref={modalInnerRef} className={cls(\"modal-inner\")}>\n {modal}\n </div>\n )}\n okButtonProps={modalOkButtonProps}\n cancelButtonProps={modalCancelButtonProps}\n onOk={(e) => {\n if (uncontrolledOpen) setInternalOpen(false);\n onOk?.(e);\n }}\n onCancel={(e) => {\n if (uncontrolledOpen) setInternalOpen(false);\n onCancel?.(e);\n }}\n okText={okText}\n cancelText={cancelText}\n okType=\"primary\"\n confirmLoading={confirmLoading}\n footer={\n typeof footer === \"undefined\"\n ? hideOkButton && hideCancelButton\n ? null\n : defaultFooter\n : footer\n }\n centered={centered}\n {...rest}\n >\n {children}\n </AntModal>\n );\n};\n"],"names":["Modal","externalOpen","closeIcon","children","sizeProp","footer","width","style","styles","classNames","okButtonProps","cancelButtonProps","loading","onOk","onCancel","okText","okType","confirmLoading","cancelText","hideOkButton","hideCancelButton","contentPadding","title","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","type","defaultOpen","backgroundProp","bodyScrollable","rootClassName","rest","defaultCloseIcon","jsx","XIcon","size","modalWidth","ModalSize","modalStyle","modalStyles","isContentOverflow","setIsContentOverflow","useState","cls","useCls","themeClassName","useTheme","resizeObserverRef","useRef","modalInnerRef","useCallback","node","modalBody","resizeObserver","hasOverflow","useEffect","locale","useLocale","getConfirmLocale","okTextLocale","cancelTextLocale","modalOkButtonProps","modalCancelButtonProps","internalOpen","setInternalOpen","uncontrolledOpen","open","defaultFooter","ModalContextProvider","NormalCancelBtn","NormalOkBtn","jsxs","Fragment","AntModal","Stack","Truncate","IconButton","e","clsx","modal"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ModalProps } from './Modal';
|
|
2
2
|
import { ModalFuncProps } from './functions';
|
|
3
3
|
import { ModalProviderProps } from './ModalProvider';
|
|
4
|
-
export declare const Modal: (({ open: externalOpen, closeIcon, children, size: sizeProp, footer, width, style, styles, classNames, okButtonProps, cancelButtonProps, loading, onOk, onCancel, okText, okType, confirmLoading, cancelText, hideOkButton, hideCancelButton, contentPadding, title, afterTitle, beforeCloseButton, afterCloseButton, defaultFixedHeaderFooter, centered, type, defaultOpen, background: backgroundProp, bodyScrollable, ...rest }: ModalProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
4
|
+
export declare const Modal: (({ open: externalOpen, closeIcon, children, size: sizeProp, footer, width, style, styles, classNames, okButtonProps, cancelButtonProps, loading, onOk, onCancel, okText, okType, confirmLoading, cancelText, hideOkButton, hideCancelButton, contentPadding, title, afterTitle, beforeCloseButton, afterCloseButton, defaultFixedHeaderFooter, centered, type, defaultOpen, background: backgroundProp, bodyScrollable, rootClassName, ...rest }: ModalProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
5
5
|
Provider: import('react').FC<ModalProviderProps>;
|
|
6
6
|
open: (config: ModalFuncProps) => import('./functions').ModalRef;
|
|
7
7
|
info: (config: ModalFuncProps) => import('./functions').ModalRef;
|