@bioturing/components 0.14.1 → 0.15.1
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/Badge/component.js +21 -0
- package/dist/components/Badge/component.js.map +1 -0
- package/dist/components/Badge/style.css +1 -0
- package/dist/components/Breadcrumb/component.js +46 -0
- package/dist/components/Breadcrumb/component.js.map +1 -0
- package/dist/components/Breadcrumb/style.css +1 -0
- package/dist/components/Breadcrumb/useItemRender.js +27 -0
- package/dist/components/Breadcrumb/useItemRender.js.map +1 -0
- package/dist/components/Button/component.js +9 -0
- package/dist/components/Button/component.js.map +1 -0
- package/dist/components/Button/style.css +1 -0
- package/dist/components/Checkbox/component.js +11 -0
- package/dist/components/Checkbox/component.js.map +1 -0
- package/dist/components/Checkbox/style.css +1 -0
- package/dist/components/CodeBlock/component.js +127 -0
- package/dist/components/CodeBlock/component.js.map +1 -0
- package/dist/components/CodeBlock/style.css +1 -0
- package/dist/components/DSRoot/component.js +21 -0
- package/dist/components/DSRoot/component.js.map +1 -0
- package/dist/components/DSRoot/context.js +9 -0
- package/dist/components/DSRoot/context.js.map +1 -0
- package/dist/components/DSRoot/style.css +1 -0
- package/dist/components/DropdownMenu/component.js +103 -0
- package/dist/components/DropdownMenu/component.js.map +1 -0
- package/dist/components/DropdownMenu/style.css +1 -0
- package/dist/components/Empty/component.js +48 -0
- package/dist/components/Empty/component.js.map +1 -0
- package/dist/components/Empty/style.css +1 -0
- package/dist/components/Field/component.js +30 -0
- package/dist/components/Field/component.js.map +1 -0
- package/dist/components/Field/style.css +1 -0
- package/dist/components/Form/component.js +23 -0
- package/dist/components/Form/component.js.map +1 -0
- package/dist/components/Form/item.js +30 -0
- package/dist/components/Form/item.js.map +1 -0
- package/dist/components/Form/style.css +1 -0
- package/dist/components/IconButton/component.js +49 -0
- package/dist/components/IconButton/component.js.map +1 -0
- package/dist/components/IconButton/style.css +1 -0
- package/dist/components/Input/component.js +25 -0
- package/dist/components/Input/component.js.map +1 -0
- package/dist/components/Modal/Modal.js +161 -0
- package/dist/components/Modal/Modal.js.map +1 -0
- package/dist/components/Modal/ModalProvider.js +70 -0
- package/dist/components/Modal/ModalProvider.js.map +1 -0
- package/dist/components/Modal/ModalService.js +25 -0
- package/dist/components/Modal/ModalService.js.map +1 -0
- package/dist/components/Modal/constants.js +5 -0
- package/dist/components/Modal/constants.js.map +1 -0
- package/dist/components/Modal/functions.js +27 -0
- package/dist/components/Modal/functions.js.map +1 -0
- package/dist/components/Modal/index.js +20 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/Modal/style.css +1 -0
- package/dist/components/Popover/component.js +12 -0
- package/dist/components/Popover/component.js.map +1 -0
- package/dist/components/PopupPanel/component.js +190 -0
- package/dist/components/PopupPanel/component.js.map +1 -0
- package/dist/components/PopupPanel/constants.js +5 -0
- package/dist/components/PopupPanel/constants.js.map +1 -0
- package/dist/components/PopupPanel/style.css +1 -0
- package/dist/components/Radio/component.js +22 -0
- package/dist/components/Radio/component.js.map +1 -0
- package/dist/components/Radio/style.css +1 -0
- package/dist/components/ScrollArea/component.js +40 -0
- package/dist/components/ScrollArea/component.js.map +1 -0
- package/dist/components/ScrollArea/style.css +1 -0
- package/dist/components/Segmented/component.js +9 -0
- package/dist/components/Segmented/component.js.map +1 -0
- package/dist/components/Segmented/style.css +1 -0
- package/dist/components/Select/component.js +135 -0
- package/dist/components/Select/component.js.map +1 -0
- package/dist/components/Select/style.css +1 -0
- package/dist/components/Slider/component.js +23 -0
- package/dist/components/Slider/component.js.map +1 -0
- package/dist/components/Spin/component.js +12 -0
- package/dist/components/Spin/component.js.map +1 -0
- package/dist/components/Spin/style.css +1 -0
- package/dist/components/Splitter/component.js +40 -0
- package/dist/components/Splitter/component.js.map +1 -0
- package/dist/components/Splitter/style.css +1 -0
- package/dist/components/Stack/Stack.js +37 -0
- package/dist/components/Stack/Stack.js.map +1 -0
- package/dist/components/Stack/StackChild.js +57 -0
- package/dist/components/Stack/StackChild.js.map +1 -0
- package/dist/components/Stack/index.js +9 -0
- package/dist/components/Stack/index.js.map +1 -0
- package/dist/components/Stack/style.css +1 -0
- package/dist/components/Switch/component.js +9 -0
- package/dist/components/Switch/component.js.map +1 -0
- package/dist/components/Switch/style.css +1 -0
- package/dist/components/Table/component.js +68 -0
- package/dist/components/Table/component.js.map +1 -0
- package/dist/components/Table/style.css +1 -0
- package/dist/components/Tag/component.js +30 -0
- package/dist/components/Tag/component.js.map +1 -0
- package/dist/components/Tag/style.css +1 -0
- package/dist/components/ThemeProvider/component.js +41 -0
- package/dist/components/ThemeProvider/component.js.map +1 -0
- package/dist/components/ThemeProvider/style.css +1 -0
- package/dist/components/Toast/component.js +101 -0
- package/dist/components/Toast/component.js.map +1 -0
- package/dist/components/Toast/function.js +25 -0
- package/dist/components/Toast/function.js.map +1 -0
- package/dist/components/Toast/style.css +1 -0
- package/dist/components/Tooltip/component.js +26 -0
- package/dist/components/Tooltip/component.js.map +1 -0
- package/dist/components/Tooltip/style.css +1 -0
- package/dist/components/Tour/component.js +35 -0
- package/dist/components/Tour/component.js.map +1 -0
- package/dist/components/Tour/style.css +1 -0
- package/dist/components/Transition/component.js +44 -0
- package/dist/components/Transition/component.js.map +1 -0
- package/dist/components/Tree/components.js +67 -0
- package/dist/components/Tree/components.js.map +1 -0
- package/dist/components/Tree/helpers.js +53 -0
- package/dist/components/Tree/helpers.js.map +1 -0
- package/dist/components/Tree/useTreeCommon.js +86 -0
- package/dist/components/Tree/useTreeCommon.js.map +1 -0
- package/dist/components/Tree/useUniqueKeysTree.js +142 -0
- package/dist/components/Tree/useUniqueKeysTree.js.map +1 -0
- package/dist/components/Truncate/component.js +93 -0
- package/dist/components/Truncate/component.js.map +1 -0
- package/dist/components/Truncate/helpers.js +36 -0
- package/dist/components/Truncate/helpers.js.map +1 -0
- package/dist/components/Truncate/style.css +1 -0
- package/dist/components/Upload/component.js +39 -0
- package/dist/components/Upload/component.js.map +1 -0
- package/dist/components/Upload/dragger.js +23 -0
- package/dist/components/Upload/dragger.js.map +1 -0
- package/dist/components/Upload/hooks.js +18 -0
- package/dist/components/Upload/hooks.js.map +1 -0
- package/dist/components/Upload/item.js +84 -0
- package/dist/components/Upload/item.js.map +1 -0
- package/dist/components/Upload/utils.js +7 -0
- package/dist/components/Upload/utils.js.map +1 -0
- package/dist/components/VerticalCollapsiblePanel/component.js +125 -0
- package/dist/components/VerticalCollapsiblePanel/component.js.map +1 -0
- package/dist/components/VerticalCollapsiblePanel/style.css +1 -0
- package/dist/components/hooks/antd.js +22 -0
- package/dist/components/hooks/antd.js.map +1 -0
- package/dist/components/hooks/base-ui.js +47 -0
- package/dist/components/hooks/base-ui.js.map +1 -0
- package/dist/components/hooks/useCharts.js +28 -0
- package/dist/components/hooks/useCharts.js.map +1 -0
- package/dist/components/hooks/useControlledState.js +15 -0
- package/dist/components/hooks/useControlledState.js.map +1 -0
- package/dist/components/utils/WithAntdTokens.js +24 -0
- package/dist/components/utils/WithAntdTokens.js.map +1 -0
- package/dist/components/utils/antdUtils.js +58 -0
- package/dist/components/utils/antdUtils.js.map +1 -0
- package/dist/components/utils/cn.js +27 -0
- package/dist/components/utils/cn.js.map +1 -0
- package/dist/components/utils/isTracebackError.js +10 -0
- package/dist/components/utils/isTracebackError.js.map +1 -0
- package/dist/components/utils/reactToString.js +23 -0
- package/dist/components/utils/reactToString.js.map +1 -0
- package/dist/index.d.ts +2497 -2
- package/dist/index.js +188 -3376
- package/dist/index.js.map +1 -0
- package/dist/metadata.js +513 -0
- package/dist/metadata.js.map +1 -0
- package/dist/tailwind.css +1 -4
- package/dist/tailwind.d.ts +1 -0
- package/dist/tokens/and-theme/tokens.js +351 -0
- package/dist/tokens/and-theme/tokens.js.map +1 -0
- package/dist/tokens/charts/index.js +18 -0
- package/dist/tokens/charts/index.js.map +1 -0
- package/dist/tokens/charts/tokens.js +208 -0
- package/dist/tokens/charts/tokens.js.map +1 -0
- package/dist/tokens/utils.js +37 -0
- package/dist/tokens/utils.js.map +1 -0
- package/package.json +10 -108
- package/dist/Badge.js +0 -41
- package/dist/Breadcrumb.js +0 -92
- package/dist/Checkbox.js +0 -12
- package/dist/CodeBlock.js +0 -641
- package/dist/Collapse.js +0 -49
- package/dist/DSRoot.js +0 -1181
- package/dist/DropdownMenu.js +0 -211
- package/dist/Empty.js +0 -53
- package/dist/Field.js +0 -66
- package/dist/Form.js +0 -125
- package/dist/IconButton.js +0 -82
- package/dist/Input.js +0 -48
- package/dist/Modal.js +0 -430
- package/dist/Popover.js +0 -10
- package/dist/PopupPanel.css +0 -116
- package/dist/PopupPanel.js +0 -333
- package/dist/Radio.js +0 -24
- package/dist/ScrollArea.js +0 -50
- package/dist/Segmented.js +0 -10
- package/dist/Select.js +0 -157
- package/dist/Slider.js +0 -39
- package/dist/Spin.js +0 -33
- package/dist/Splitter.js +0 -47
- package/dist/Switch.js +0 -10
- package/dist/Table.js +0 -126
- package/dist/Tag.js +0 -24
- package/dist/ThemeProvider.js +0 -403
- package/dist/Toast.js +0 -1154
- package/dist/Tooltip.js +0 -36
- package/dist/Tour.js +0 -54
- package/dist/Tree.js +0 -318
- package/dist/Truncate.js +0 -160
- package/dist/Upload.js +0 -460
- package/dist/VerticalCollapsiblePanel.js +0 -413
- package/dist/components/Badge/component.d.ts +0 -3
- package/dist/components/Badge/index.d.ts +0 -1
- package/dist/components/Breadcrumb/component.d.ts +0 -5
- package/dist/components/Breadcrumb/index.d.ts +0 -2
- package/dist/components/Breadcrumb/types.d.ts +0 -18
- package/dist/components/Breadcrumb/useItemRender.d.ts +0 -6
- package/dist/components/Button/component.d.ts +0 -7
- package/dist/components/Button/index.d.ts +0 -1
- package/dist/components/Checkbox/component.d.ts +0 -10
- package/dist/components/Checkbox/index.d.ts +0 -1
- package/dist/components/CodeBlock/component.d.ts +0 -2
- package/dist/components/CodeBlock/index.d.ts +0 -2
- package/dist/components/CodeBlock/types.d.ts +0 -47
- package/dist/components/Collapse/component.d.ts +0 -13
- package/dist/components/Collapse/index.d.ts +0 -1
- package/dist/components/DSRoot/component.d.ts +0 -13
- package/dist/components/DSRoot/context.d.ts +0 -7
- package/dist/components/DSRoot/index.d.ts +0 -1
- package/dist/components/DropdownMenu/component.d.ts +0 -30
- package/dist/components/DropdownMenu/index.d.ts +0 -2
- package/dist/components/Empty/component.d.ts +0 -12
- package/dist/components/Empty/index.d.ts +0 -1
- package/dist/components/Field/component.d.ts +0 -41
- package/dist/components/Field/index.d.ts +0 -1
- package/dist/components/Form/component.d.ts +0 -18
- package/dist/components/Form/index.d.ts +0 -1
- package/dist/components/Form/item.d.ts +0 -5
- package/dist/components/IconButton/component.d.ts +0 -29
- package/dist/components/IconButton/index.d.ts +0 -1
- package/dist/components/Input/component.d.ts +0 -30
- package/dist/components/Input/index.d.ts +0 -1
- package/dist/components/Modal/Modal.d.ts +0 -84
- package/dist/components/Modal/ModalProvider.d.ts +0 -5
- package/dist/components/Modal/ModalService.d.ts +0 -33
- package/dist/components/Modal/constants.d.ts +0 -9
- package/dist/components/Modal/functions.d.ts +0 -27
- package/dist/components/Modal/index.d.ts +0 -14
- package/dist/components/Popover/component.d.ts +0 -9
- package/dist/components/Popover/index.d.ts +0 -1
- package/dist/components/PopupPanel/component.d.ts +0 -61
- package/dist/components/PopupPanel/constants.d.ts +0 -7
- package/dist/components/PopupPanel/index.d.ts +0 -1
- package/dist/components/Radio/component.d.ts +0 -7
- package/dist/components/Radio/index.d.ts +0 -2
- package/dist/components/Radio/interface.d.ts +0 -5
- package/dist/components/ScrollArea/component.d.ts +0 -10
- package/dist/components/ScrollArea/index.d.ts +0 -1
- package/dist/components/Segmented/component.d.ts +0 -9
- package/dist/components/Segmented/index.d.ts +0 -1
- package/dist/components/Select/component.d.ts +0 -23
- package/dist/components/Select/index.d.ts +0 -1
- package/dist/components/Slider/component.d.ts +0 -5
- package/dist/components/Slider/index.d.ts +0 -1
- package/dist/components/Spin/component.d.ts +0 -3
- package/dist/components/Spin/index.d.ts +0 -1
- package/dist/components/Splitter/component.d.ts +0 -12
- package/dist/components/Splitter/index.d.ts +0 -1
- package/dist/components/Switch/component.d.ts +0 -8
- package/dist/components/Switch/index.d.ts +0 -1
- package/dist/components/Table/component.d.ts +0 -19
- package/dist/components/Table/index.d.ts +0 -1
- package/dist/components/Tag/component.d.ts +0 -11
- package/dist/components/Tag/index.d.ts +0 -1
- package/dist/components/ThemeProvider/component.d.ts +0 -6
- package/dist/components/ThemeProvider/index.d.ts +0 -1
- package/dist/components/Toast/component.d.ts +0 -14
- package/dist/components/Toast/function.d.ts +0 -10
- package/dist/components/Toast/index.d.ts +0 -3
- package/dist/components/Toast/types.d.ts +0 -3
- package/dist/components/Tooltip/component.d.ts +0 -9
- package/dist/components/Tooltip/index.d.ts +0 -1
- package/dist/components/Tour/component.d.ts +0 -7
- package/dist/components/Tour/index.d.ts +0 -1
- package/dist/components/Transition/component.d.ts +0 -17
- package/dist/components/Transition/index.d.ts +0 -1
- package/dist/components/Tree/components.d.ts +0 -13
- package/dist/components/Tree/helpers.d.ts +0 -4
- package/dist/components/Tree/index.d.ts +0 -4
- package/dist/components/Tree/types.d.ts +0 -55
- package/dist/components/Tree/useTreeCommon.d.ts +0 -178
- package/dist/components/Tree/useUniqueKeysTree.d.ts +0 -33
- package/dist/components/Truncate/component.d.ts +0 -12
- package/dist/components/Truncate/helpers.d.ts +0 -5
- package/dist/components/Truncate/index.d.ts +0 -1
- package/dist/components/Upload/component.d.ts +0 -16
- package/dist/components/Upload/dragger.d.ts +0 -13
- package/dist/components/Upload/hooks.d.ts +0 -5
- package/dist/components/Upload/index.d.ts +0 -3
- package/dist/components/Upload/item.d.ts +0 -11
- package/dist/components/Upload/utils.d.ts +0 -1
- package/dist/components/VerticalCollapsiblePanel/component.d.ts +0 -64
- package/dist/components/VerticalCollapsiblePanel/index.d.ts +0 -1
- package/dist/components/hooks/antd.d.ts +0 -11
- package/dist/components/hooks/base-ui.d.ts +0 -7
- package/dist/components/hooks/index.d.ts +0 -4
- package/dist/components/hooks/useCharts.d.ts +0 -22
- package/dist/components/hooks/useControlledState.d.ts +0 -1
- package/dist/components/index.d.ts +0 -40
- package/dist/components/utils/WithAntdTokens.d.ts +0 -7
- package/dist/components/utils/antdUtils.d.ts +0 -15
- package/dist/components/utils/client.d.ts +0 -2
- package/dist/components/utils/cn.d.ts +0 -4
- package/dist/components/utils/index.d.ts +0 -3
- package/dist/components/utils/isTracebackError.d.ts +0 -1
- package/dist/components/utils/main.d.ts +0 -3
- package/dist/components/utils/reactToString.d.ts +0 -2
- package/dist/components/utils/types.d.ts +0 -9
- package/dist/hooks.js +0 -961
- package/dist/index.css +0 -116
- package/dist/style.css +0 -1392
- package/dist/style.js +0 -0
- package/dist/tailwind.js +0 -0
- package/dist/tokens/and-theme/index.d.ts +0 -1
- package/dist/tokens/and-theme/tokens.d.ts +0 -5
- package/dist/tokens/charts/index.d.ts +0 -6
- package/dist/tokens/charts/tokens.d.ts +0 -455
- package/dist/tokens/index.d.ts +0 -2
- package/dist/tokens/utils.d.ts +0 -16
- package/dist/utils.js +0 -120
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import m from "antd/es/form/ErrorList";
|
|
3
|
+
import t, { useWatch as i, useForm as e } from "antd/es/form/Form";
|
|
4
|
+
import s from "antd/es/form/FormList";
|
|
5
|
+
import { FormProvider as n } from "antd/es/form/context";
|
|
6
|
+
import p from "antd/es/form/hooks/useFormInstance";
|
|
7
|
+
import { FormItem as F } from "./item.js";
|
|
8
|
+
import './style.css';/* empty css */
|
|
9
|
+
const f = ({
|
|
10
|
+
...r
|
|
11
|
+
}) => /* @__PURE__ */ o(t, { ...r }), v = Object.assign(f, {
|
|
12
|
+
useForm: e,
|
|
13
|
+
useFormInstance: p,
|
|
14
|
+
useWatch: i,
|
|
15
|
+
Item: F,
|
|
16
|
+
List: s,
|
|
17
|
+
ErrorList: m,
|
|
18
|
+
Provider: n
|
|
19
|
+
});
|
|
20
|
+
export {
|
|
21
|
+
v as Form
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/Form/component.tsx"],"sourcesContent":["\"use client\";\nimport ErrorList from \"antd/es/form/ErrorList\";\nimport {\n FormProps as AntdFormProps,\n default as AntdInternalForm,\n useForm,\n useWatch,\n} from \"antd/es/form/Form\";\nimport FormList from \"antd/es/form/FormList\";\nimport { FormProvider } from \"antd/es/form/context\";\nimport useFormInstance from \"antd/es/form/hooks/useFormInstance\";\nimport * as React from \"react\";\nimport { FormItem, type FormItemProps } from \"./item\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface FormProps<Values = any> extends AntdFormProps<Values> {}\n\ninterface InternalFormProps<Values = any>\n extends React.ComponentProps<typeof AntdInternalForm<Values>> {}\n\nconst InternalForm = <Values = any,>({\n ...rest\n}: InternalFormProps<Values>) => {\n return <AntdInternalForm {...rest} />;\n};\n\nexport const Form = Object.assign(InternalForm, {\n useForm,\n useFormInstance,\n useWatch,\n Item: FormItem,\n List: FormList,\n ErrorList,\n Provider: FormProvider,\n});\n\nexport type { FormItemProps };\n"],"names":["InternalForm","rest","jsx","AntdInternalForm","Form","useForm","useFormInstance","useWatch","FormItem","FormList","ErrorList","FormProvider"],"mappings":";;;;;;;;AAsBA,MAAMA,IAAe,CAAgB;AAAA,EACnC,GAAGC;AACL,MACS,gBAAAC,EAACC,GAAkB,EAAA,GAAGF,EAAM,CAAA,GAGxBG,IAAO,OAAO,OAAOJ,GAAc;AAAA,EAC9C,SAAAK;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAMC;AAAA,EACN,MAAMC;AAAA,EACN,WAAAC;AAAA,EACA,UAAUC;AACZ,CAAC;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { isValidElement as l } from "react";
|
|
3
|
+
import a from "antd/es/form/FormItem";
|
|
4
|
+
import { Question as c } from "@bioturing/assets";
|
|
5
|
+
import { useCls as f } from "../utils/antdUtils.js";
|
|
6
|
+
import { IconButton as d } from "../IconButton/component.js";
|
|
7
|
+
const N = ({
|
|
8
|
+
tooltip: e,
|
|
9
|
+
label: o,
|
|
10
|
+
optionalMark: m,
|
|
11
|
+
...s
|
|
12
|
+
}) => {
|
|
13
|
+
const n = f(), i = e || m ? /* @__PURE__ */ t("span", { className: n("form-item-label-inner"), children: [
|
|
14
|
+
o,
|
|
15
|
+
e && /* @__PURE__ */ r(
|
|
16
|
+
d,
|
|
17
|
+
{
|
|
18
|
+
className: n("form-item-explaination-icon"),
|
|
19
|
+
label: typeof e == "string" || l(e) ? e : void 0,
|
|
20
|
+
children: /* @__PURE__ */ r(c, {})
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
m && /* @__PURE__ */ r("span", { className: n("form-item-label-optional-mark"), children: typeof m == "boolean" ? "(optional)" : m })
|
|
24
|
+
] }) : o;
|
|
25
|
+
return /* @__PURE__ */ r(a, { label: i, ...s });
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
N as FormItem
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../src/components/Form/item.tsx"],"sourcesContent":["\"use client\";\nimport { isValidElement } from \"react\";\nimport {\n default as AntdFormItem,\n type FormItemProps as AntdFormItemProps,\n} from \"antd/es/form/FormItem\";\nimport { Question } from \"@bioturing/assets\";\nimport { IconButton } from \"../IconButton\";\nimport { useCls } from \"../utils\";\n\nexport interface FormItemProps<Values = unknown>\n extends AntdFormItemProps<Values> {\n // tooltip?: React.ReactNode | TooltipProps;\n optionalMark?: boolean | React.ReactNode;\n}\n\nexport const FormItem = <Values = unknown,>({\n tooltip,\n label,\n optionalMark,\n ...rest\n}: FormItemProps<Values>) => {\n const cls = useCls();\n const renderedLabel =\n tooltip || optionalMark ? (\n <span className={cls(\"form-item-label-inner\")}>\n {label}\n {tooltip && (\n <IconButton\n className={cls(\"form-item-explaination-icon\")}\n label={\n typeof tooltip == \"string\" || isValidElement(tooltip)\n ? tooltip\n : undefined\n }\n >\n <Question />\n </IconButton>\n )}\n {optionalMark && (\n <span className={cls(\"form-item-label-optional-mark\")}>\n {typeof optionalMark == \"boolean\" ? \"(optional)\" : optionalMark}\n </span>\n )}\n </span>\n ) : (\n label\n );\n return <AntdFormItem label={renderedLabel} {...rest} />;\n};\n"],"names":["FormItem","tooltip","label","optionalMark","rest","cls","useCls","renderedLabel","jsxs","jsx","IconButton","isValidElement","Question","AntdFormItem"],"mappings":";;;;;;AAgBO,MAAMA,IAAW,CAAoB;AAAA,EAC1C,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACL,MAA6B;AAC3B,QAAMC,IAAMC,EAAO,GACbC,IACJN,KAAWE,IACT,gBAAAK,EAAC,UAAK,WAAWH,EAAI,uBAAuB,GACzC,UAAA;AAAA,IAAAH;AAAA,IACAD,KACC,gBAAAQ;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAWL,EAAI,6BAA6B;AAAA,QAC5C,OACE,OAAOJ,KAAW,YAAYU,EAAeV,CAAO,IAChDA,IACA;AAAA,QAGN,4BAACW,GAAS,CAAA,CAAA;AAAA,MAAA;AAAA,IACZ;AAAA,IAEDT,KACE,gBAAAM,EAAA,QAAA,EAAK,WAAWJ,EAAI,+BAA+B,GACjD,UAAO,OAAAF,KAAgB,YAAY,eAAeA,EACrD,CAAA;AAAA,EAAA,EAAA,CAEJ,IAEAD;AAEJ,SAAQ,gBAAAO,EAAAI,GAAA,EAAa,OAAON,GAAgB,GAAGH,GAAM;AACvD;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components{.ds-form-item-label-inner{display:inline-flex;align-items:center;gap:.25rem}.ds-form-item-label-optional-mark{color:var(--ds-color-text-tertiary)}}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as j } from "react";
|
|
3
|
+
import { Tooltip as x } from "antd";
|
|
4
|
+
import './style.css';/* empty css */
|
|
5
|
+
import { useCls as y, useAntdCssVarClassname as N } from "../utils/antdUtils.js";
|
|
6
|
+
const V = (u, d) => {
|
|
7
|
+
const {
|
|
8
|
+
label: e,
|
|
9
|
+
size: p = "medium",
|
|
10
|
+
negativeMargin: f = !0,
|
|
11
|
+
children: b,
|
|
12
|
+
className: v,
|
|
13
|
+
tooltipProps: C = {},
|
|
14
|
+
as: g,
|
|
15
|
+
href: o,
|
|
16
|
+
// Extract anchor-specific props
|
|
17
|
+
target: s,
|
|
18
|
+
rel: r,
|
|
19
|
+
download: a,
|
|
20
|
+
hrefLang: i,
|
|
21
|
+
referrerPolicy: l,
|
|
22
|
+
...h
|
|
23
|
+
} = u, t = y(), P = N(), w = [
|
|
24
|
+
t("icon-button"),
|
|
25
|
+
t(`icon-button-${p}`),
|
|
26
|
+
t(f ? "icon-button-negative-margin" : ""),
|
|
27
|
+
P,
|
|
28
|
+
v
|
|
29
|
+
].filter(Boolean).join(" "), n = g || (o ? "a" : "button"), B = n === "a" ? {
|
|
30
|
+
...s !== void 0 && { target: s },
|
|
31
|
+
...r !== void 0 && { rel: r },
|
|
32
|
+
...a !== void 0 && { download: a },
|
|
33
|
+
...i !== void 0 && { hrefLang: i },
|
|
34
|
+
...l !== void 0 && { referrerPolicy: l }
|
|
35
|
+
} : {}, I = {
|
|
36
|
+
ref: d,
|
|
37
|
+
className: w,
|
|
38
|
+
...n === "button" && { type: "button" },
|
|
39
|
+
...o && { href: o },
|
|
40
|
+
...B,
|
|
41
|
+
...h
|
|
42
|
+
}, c = /* @__PURE__ */ m(n, { ...I, children: b });
|
|
43
|
+
return e ? /* @__PURE__ */ m(x, { title: e, arrow: !1, ...C, children: c }) : c;
|
|
44
|
+
}, T = j(V);
|
|
45
|
+
export {
|
|
46
|
+
T as IconButton,
|
|
47
|
+
T as default
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/IconButton/component.tsx"],"sourcesContent":["\"use client\";\nimport React, {\n forwardRef,\n type ElementType,\n type ComponentPropsWithoutRef,\n type ReactElement,\n type Ref,\n type AnchorHTMLAttributes,\n ComponentPropsWithRef,\n} from \"react\";\nimport { Tooltip } from \"antd\";\nimport { useCls, useAntdCssVarClassname } from \"../utils\";\n\n// Import component-specific styles\nimport \"./style.css\";\n\n// Base props without href/as handling\ntype IconButtonBaseProps = {\n label?: React.ReactNode;\n size?: \"small\" | \"medium\";\n negativeMargin?: boolean;\n tooltipProps?: React.ComponentProps<typeof Tooltip>;\n};\n\n// Extract anchor-specific props we want to automatically handle\ntype AnchorSpecificProps = Pick<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n \"target\" | \"rel\" | \"download\" | \"hrefLang\" | \"referrerPolicy\"\n>;\n\n// Props when href is provided - as defaults to 'a' and includes anchor-specific props\ntype WithHrefProps<E extends ElementType = \"a\"> = IconButtonBaseProps & {\n href: string;\n as?: E;\n} & AnchorSpecificProps;\n\n// Props when href is not provided - as defaults to 'button'\ntype WithoutHrefProps<E extends ElementType = \"button\"> =\n IconButtonBaseProps & {\n href?: undefined;\n as?: E;\n } & {\n [K in keyof AnchorSpecificProps]?: never;\n };\n\n// Combined props type with conditional behavior\ntype IconButtonOwnProps<E extends ElementType = ElementType> =\n | WithHrefProps<E>\n | WithoutHrefProps<E>;\n\nexport type IconButtonProps<E extends ElementType = \"button\"> =\n IconButtonOwnProps<E> &\n Omit<ComponentPropsWithoutRef<E>, keyof IconButtonOwnProps<E>>;\n\n/**\n * A type-safe polymorphic component pattern\n */\ninterface PolymorphicComponentProps<E extends ElementType = \"button\"> {\n as?: E;\n href?: string;\n}\n\n/**\n * Type for wrapping the forwardRef implementation\n */\ntype IconButtonComponent = <E extends ElementType = \"button\">(\n props: IconButtonProps<E> & { ref?: ComponentPropsWithRef<E>[\"ref\"] }\n) => ReactElement;\n\n/**\n * Implementation of the IconButton component\n */\nconst IconButtonImpl = <E extends ElementType = \"button\">(\n props: IconButtonProps<E> & PolymorphicComponentProps<E>,\n ref: Ref<Element>\n) => {\n const {\n label,\n size = \"medium\",\n negativeMargin = true,\n children,\n className,\n tooltipProps = {},\n as,\n href,\n // Extract anchor-specific props\n target,\n rel,\n download,\n hrefLang,\n referrerPolicy,\n ...rest\n } = props;\n const cls = useCls();\n const antdCssVarClassname = useAntdCssVarClassname();\n const buttonClasses = [\n cls(\"icon-button\"),\n cls(`icon-button-${size}`),\n cls(negativeMargin ? \"icon-button-negative-margin\" : \"\"),\n antdCssVarClassname,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n // Use a type assertion for the component to avoid TypeScript errors\n const Component = (as || (href ? \"a\" : \"button\")) as ElementType;\n\n // Collect anchor-specific props only if they're defined\n const anchorProps =\n Component === \"a\"\n ? {\n ...(target !== undefined && { target }),\n ...(rel !== undefined && { rel }),\n ...(download !== undefined && { download }),\n ...(hrefLang !== undefined && { hrefLang }),\n ...(referrerPolicy !== undefined && { referrerPolicy }),\n }\n : {};\n\n const elementProps = {\n ref,\n className: buttonClasses,\n ...(Component === \"button\" && { type: \"button\" }),\n ...(href && { href }),\n ...anchorProps,\n ...rest,\n };\n\n const element = <Component {...elementProps}>{children}</Component>;\n\n return label ? (\n <Tooltip title={label} arrow={false} {...tooltipProps}>\n {element}\n </Tooltip>\n ) : (\n element\n );\n};\n\n// Export with correct typing\nexport const IconButton = forwardRef(IconButtonImpl) as IconButtonComponent;\n\nexport default IconButton;\n"],"names":["IconButtonImpl","props","ref","label","size","negativeMargin","children","className","tooltipProps","as","href","target","rel","download","hrefLang","referrerPolicy","rest","cls","useCls","antdCssVarClassname","useAntdCssVarClassname","buttonClasses","Component","anchorProps","elementProps","element","jsx","Tooltip","IconButton","forwardRef"],"mappings":";;;;;AAwEA,MAAMA,IAAiB,CACrBC,GACAC,MACG;AACG,QAAA;AAAA,IACJ,OAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,gBAAAC,IAAiB;AAAA,IACjB,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,cAAAC,IAAe,CAAC;AAAA,IAChB,IAAAC;AAAA,IACA,MAAAC;AAAA;AAAA,IAEA,QAAAC;AAAA,IACA,KAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDf,GACEgB,IAAMC,EAAO,GACbC,IAAsBC,EAAuB,GAC7CC,IAAgB;AAAA,IACpBJ,EAAI,aAAa;AAAA,IACjBA,EAAI,eAAeb,CAAI,EAAE;AAAA,IACzBa,EAAIZ,IAAiB,gCAAgC,EAAE;AAAA,IACvDc;AAAA,IACAZ;AAAA,EAEC,EAAA,OAAO,OAAO,EACd,KAAK,GAAG,GAGLe,IAAab,MAAOC,IAAO,MAAM,WAGjCa,IACJD,MAAc,MACV;AAAA,IACE,GAAIX,MAAW,UAAa,EAAE,QAAAA,EAAO;AAAA,IACrC,GAAIC,MAAQ,UAAa,EAAE,KAAAA,EAAI;AAAA,IAC/B,GAAIC,MAAa,UAAa,EAAE,UAAAA,EAAS;AAAA,IACzC,GAAIC,MAAa,UAAa,EAAE,UAAAA,EAAS;AAAA,IACzC,GAAIC,MAAmB,UAAa,EAAE,gBAAAA,EAAe;AAAA,EAAA,IAEvD,CAAC,GAEDS,IAAe;AAAA,IACnB,KAAAtB;AAAA,IACA,WAAWmB;AAAA,IACX,GAAIC,MAAc,YAAY,EAAE,MAAM,SAAS;AAAA,IAC/C,GAAIZ,KAAQ,EAAE,MAAAA,EAAK;AAAA,IACnB,GAAGa;AAAA,IACH,GAAGP;AAAA,EACL,GAEMS,IAAU,gBAAAC,EAACJ,GAAW,EAAA,GAAGE,GAAe,UAAAlB,GAAS;AAEhD,SAAAH,IACJ,gBAAAuB,EAAAC,GAAA,EAAQ,OAAOxB,GAAO,OAAO,IAAQ,GAAGK,GACtC,UAAAiB,EAAA,CACH,IAEAA;AAEJ,GAGaG,IAAaC,EAAW7B,CAAc;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components{.ds-icon-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;cursor:pointer;background-color:transparent;color:var(--ds-color-icon);transition:all .2s}.ds-icon-button:hover{background-color:var(--ds-color-fill-secondary);color:var(--ds-color-icon-hover)}.ds-icon-button:active,.ds-icon-button.ds-popover-open{background-color:var(--ds-color-primary-bg);color:var(--ds-color-primary)}.ds-icon-button:focus{outline:none}.ds-icon-button:disabled{cursor:not-allowed;pointer-events:none;color:var(--ds-color-text-disabled)}.ds-icon-button.ds-icon-button-medium{padding:.125rem;font-size:1.25rem;height:1.5rem;width:1.5rem}.ds-icon-button.ds-icon-button-small{padding:.125rem;font-size:1rem;height:1.25rem;width:1.25rem}.ds-icon-button.ds-icon-button-negative-margin{margin:-.125rem}}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { MagnifyingGlass as c, Eye as i, EyeClosed as u } from "@bioturing/assets";
|
|
3
|
+
import { Input as t } from "antd";
|
|
4
|
+
import { forwardRef as o } from "react";
|
|
5
|
+
const m = (n, e) => /* @__PURE__ */ r(t, { ref: e, ...n }), I = (n, e) => {
|
|
6
|
+
const s = {
|
|
7
|
+
iconRender: (a) => a ? /* @__PURE__ */ r(i, { size: 16 }) : /* @__PURE__ */ r(u, { size: 16 }),
|
|
8
|
+
...n
|
|
9
|
+
};
|
|
10
|
+
return /* @__PURE__ */ r(t.Password, { ref: e, ...s });
|
|
11
|
+
}, d = (n, e) => {
|
|
12
|
+
const s = {
|
|
13
|
+
enterButton: n.enterButton === !0 ? /* @__PURE__ */ r(c, { size: 16 }) : n.enterButton,
|
|
14
|
+
...n
|
|
15
|
+
};
|
|
16
|
+
return /* @__PURE__ */ r(t.Search, { ref: e, ...s });
|
|
17
|
+
}, p = (n, e) => /* @__PURE__ */ r(t.TextArea, { ref: e, ...n }), f = o(m), g = o(I), x = o(d), P = o(p), A = Object.assign(f, {
|
|
18
|
+
Password: g,
|
|
19
|
+
Search: x,
|
|
20
|
+
TextArea: P
|
|
21
|
+
});
|
|
22
|
+
export {
|
|
23
|
+
A as Input
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/Input/component.tsx"],"sourcesContent":["import { Eye, EyeClosed, MagnifyingGlass } 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 } from \"react\";\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 = {\n iconRender: (visible: boolean) =>\n visible ? <Eye size={16} /> : <EyeClosed size={16} />,\n ...props,\n };\n\n return <AntInput.Password ref={ref} {...mergedProps} />;\n};\n\n// Create inner function for Search\nconst SearchInner = (props: SearchProps, ref: React.Ref<InputRef>) => {\n // Apply default enterButton unless overridden\n const mergedProps = {\n enterButton:\n props.enterButton === true ? (\n <MagnifyingGlass size={16} />\n ) : (\n props.enterButton\n ),\n ...props,\n };\n\n return <AntInput.Search ref={ref} {...mergedProps} />;\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","visible","Eye","EyeClosed","SearchInner","MagnifyingGlass","TextAreaInner","MainInput","forwardRef","Password","Search","TextArea","Input"],"mappings":";;;;AAkBA,MAAMA,IAAiB,CAACC,GAAmBC,MACjC,gBAAAC,EAAAC,GAAA,EAAS,KAAAF,GAAW,GAAGD,EAAO,CAAA,GAIlCI,IAAgB,CAACJ,GAAsBC,MAA6B;AAExE,QAAMI,IAAc;AAAA,IAClB,YAAY,CAACC,MACXA,IAAW,gBAAAJ,EAAAK,GAAA,EAAI,MAAM,GAAI,CAAA,IAAK,gBAAAL,EAACM,GAAU,EAAA,MAAM,GAAI,CAAA;AAAA,IACrD,GAAGR;AAAA,EACL;AAEA,2BAAQG,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGI,GAAa;AACvD,GAGMI,IAAc,CAACT,GAAoBC,MAA6B;AAEpE,QAAMI,IAAc;AAAA,IAClB,aACEL,EAAM,gBAAgB,uBACnBU,GAAgB,EAAA,MAAM,IAAI,IAE3BV,EAAM;AAAA,IAEV,GAAGA;AAAA,EACL;AAEA,2BAAQG,EAAS,QAAT,EAAgB,KAAAF,GAAW,GAAGI,GAAa;AACrD,GAGMM,IAAgB,CACpBX,GACAC,wBAEQE,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGD,GAAO,GAI3CY,IAAYC,EAAWd,CAAc,GAOrCe,IAAWD,EAAWT,CAAa,GAOnCW,IAASF,EAAWJ,CAAW,GAO/BO,IAAWH,EAAWF,CAAa,GAO5BM,IAAQ,OAAO,OAAOL,GAAW;AAAA,EAC5C,UAAAE;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,CAAC;"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { jsx as e, jsxs as m, Fragment as N } from "react/jsx-runtime";
|
|
2
|
+
import me from "antd/es/modal";
|
|
3
|
+
import { XIcon as fe } from "@bioturing/assets";
|
|
4
|
+
import { useState as R, useRef as ue, useCallback as pe, useEffect as he } from "react";
|
|
5
|
+
import { ModalContextProvider as be } from "antd/es/modal/context";
|
|
6
|
+
import L from "antd/es/modal/components/NormalCancelBtn";
|
|
7
|
+
import C from "antd/es/modal/components/NormalOkBtn";
|
|
8
|
+
import { getConfirmLocale as ve } from "antd/es/modal/locale";
|
|
9
|
+
import { useLocale as ge } from "antd/es/locale";
|
|
10
|
+
import { ModalSize as f } from "./constants.js";
|
|
11
|
+
import { Stack as h } from "../Stack/index.js";
|
|
12
|
+
import { Truncate as ye } from "../Truncate/component.js";
|
|
13
|
+
import { IconButton as we } from "../IconButton/component.js";
|
|
14
|
+
import { useCls as xe } from "../utils/antdUtils.js";
|
|
15
|
+
const We = ({
|
|
16
|
+
open: b,
|
|
17
|
+
closeIcon: v,
|
|
18
|
+
children: j,
|
|
19
|
+
size: E,
|
|
20
|
+
footer: g,
|
|
21
|
+
width: F,
|
|
22
|
+
style: P,
|
|
23
|
+
styles: c,
|
|
24
|
+
classNames: W,
|
|
25
|
+
okButtonProps: $,
|
|
26
|
+
cancelButtonProps: q,
|
|
27
|
+
loading: A,
|
|
28
|
+
onOk: i,
|
|
29
|
+
onCancel: r,
|
|
30
|
+
okText: y,
|
|
31
|
+
okType: X = "primary",
|
|
32
|
+
confirmLoading: w,
|
|
33
|
+
cancelText: x = "Close",
|
|
34
|
+
hideOkButton: z = !1,
|
|
35
|
+
hideCancelButton: k = !1,
|
|
36
|
+
contentPadding: l,
|
|
37
|
+
title: u,
|
|
38
|
+
afterTitle: B,
|
|
39
|
+
beforeCloseButton: D,
|
|
40
|
+
afterCloseButton: G,
|
|
41
|
+
defaultFixedHeaderFooter: J = !1,
|
|
42
|
+
centered: K = !0,
|
|
43
|
+
type: Q = "default",
|
|
44
|
+
defaultOpen: U = !0,
|
|
45
|
+
background: V,
|
|
46
|
+
bodyScrollable: Y = !0,
|
|
47
|
+
...Z
|
|
48
|
+
}) => {
|
|
49
|
+
const _ = v === void 0 ? /* @__PURE__ */ e(fe, { size: 16, weight: "bold" }) : v, t = E || (Q === "default" ? "medium" : "xsmall"), ee = F || f[t], oe = {
|
|
50
|
+
"--ds-modal-bg": `var(--ds-color-bg-${V || (t && t in f && parseInt(f[t]) <= parseInt(f.medium) ? "elevated" : "container")})`,
|
|
51
|
+
...P,
|
|
52
|
+
...t === "fullscreen" ? { top: 0, maxWidth: "100%", height: "100%" } : {}
|
|
53
|
+
}, re = {
|
|
54
|
+
...c,
|
|
55
|
+
body: {
|
|
56
|
+
...typeof l < "u" ? {
|
|
57
|
+
"--ds-modal-content-padding": l === !1 || l === 0 ? "0" : typeof l == "number" ? `${l}px` : l
|
|
58
|
+
} : {},
|
|
59
|
+
...c == null ? void 0 : c.body
|
|
60
|
+
}
|
|
61
|
+
}, [I, M] = R(!1), a = xe(), d = ue(null), te = pe(
|
|
62
|
+
(o) => {
|
|
63
|
+
if (!o) return;
|
|
64
|
+
const n = o.querySelector("." + a("modal-body"));
|
|
65
|
+
if (!(n instanceof HTMLElement)) return;
|
|
66
|
+
const H = new ResizeObserver(() => {
|
|
67
|
+
const de = n.scrollHeight > n.clientHeight;
|
|
68
|
+
M(de);
|
|
69
|
+
});
|
|
70
|
+
d.current = H, H.observe(n);
|
|
71
|
+
const ie = n.scrollHeight > n.clientHeight;
|
|
72
|
+
M(ie);
|
|
73
|
+
},
|
|
74
|
+
[a]
|
|
75
|
+
);
|
|
76
|
+
he(() => () => {
|
|
77
|
+
d.current && (d.current.disconnect(), d.current = null);
|
|
78
|
+
}, []);
|
|
79
|
+
const [s] = ge("Modal", ve()), le = y || (s == null ? void 0 : s.okText), se = x || (s == null ? void 0 : s.cancelText), S = {
|
|
80
|
+
loading: A,
|
|
81
|
+
...$
|
|
82
|
+
}, O = {
|
|
83
|
+
...q
|
|
84
|
+
}, [ne, T] = R(U), p = typeof b > "u", ae = p ? ne : b, ce = /* @__PURE__ */ e(
|
|
85
|
+
be,
|
|
86
|
+
{
|
|
87
|
+
value: {
|
|
88
|
+
okButtonProps: S,
|
|
89
|
+
cancelButtonProps: O,
|
|
90
|
+
onCancel: r,
|
|
91
|
+
onOk: i,
|
|
92
|
+
okType: X,
|
|
93
|
+
confirmLoading: w,
|
|
94
|
+
okTextLocale: le,
|
|
95
|
+
cancelTextLocale: se
|
|
96
|
+
},
|
|
97
|
+
children: z ? /* @__PURE__ */ e(L, {}) : k ? /* @__PURE__ */ e(C, {}) : /* @__PURE__ */ m(N, { children: [
|
|
98
|
+
/* @__PURE__ */ e(L, {}),
|
|
99
|
+
/* @__PURE__ */ e(C, {})
|
|
100
|
+
] })
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
return /* @__PURE__ */ e(
|
|
104
|
+
me,
|
|
105
|
+
{
|
|
106
|
+
closeIcon: !1,
|
|
107
|
+
open: ae,
|
|
108
|
+
width: ee,
|
|
109
|
+
style: oe,
|
|
110
|
+
title: /* @__PURE__ */ m(N, { children: [
|
|
111
|
+
/* @__PURE__ */ m(h, { align: "center", gap: 8, className: a("modal-title-wrapper"), children: [
|
|
112
|
+
/* @__PURE__ */ e(h.Child, { grow: !0, children: typeof u == "string" ? /* @__PURE__ */ e(ye, { children: u }) : u }),
|
|
113
|
+
/* @__PURE__ */ m(h.Child, { stack: !0, hug: !0, align: "center", children: [
|
|
114
|
+
D,
|
|
115
|
+
/* @__PURE__ */ e(
|
|
116
|
+
we,
|
|
117
|
+
{
|
|
118
|
+
onClick: (o) => r == null ? void 0 : r(o),
|
|
119
|
+
children: _
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
G
|
|
123
|
+
] })
|
|
124
|
+
] }),
|
|
125
|
+
B || null
|
|
126
|
+
] }),
|
|
127
|
+
classNames: {
|
|
128
|
+
...W,
|
|
129
|
+
wrapper: a(
|
|
130
|
+
"modal-wrap",
|
|
131
|
+
t == "fullscreen" && "modal-fullscreen",
|
|
132
|
+
I && "modal-content-overflow",
|
|
133
|
+
Y === !1 && "modal-no-body-scroll",
|
|
134
|
+
J || I || t == "fullscreen" ? "modal-fixed" : ""
|
|
135
|
+
)
|
|
136
|
+
},
|
|
137
|
+
styles: re,
|
|
138
|
+
modalRender: (o) => /* @__PURE__ */ e("div", { ref: te, className: a("modal-inner"), children: o }),
|
|
139
|
+
okButtonProps: S,
|
|
140
|
+
cancelButtonProps: O,
|
|
141
|
+
onOk: (o) => {
|
|
142
|
+
p && T(!1), i == null || i(o);
|
|
143
|
+
},
|
|
144
|
+
onCancel: (o) => {
|
|
145
|
+
p && T(!1), r == null || r(o);
|
|
146
|
+
},
|
|
147
|
+
okText: y,
|
|
148
|
+
cancelText: x,
|
|
149
|
+
okType: "primary",
|
|
150
|
+
confirmLoading: w,
|
|
151
|
+
footer: typeof g > "u" ? z && k ? null : ce : g,
|
|
152
|
+
centered: K,
|
|
153
|
+
...Z,
|
|
154
|
+
children: j
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
};
|
|
158
|
+
export {
|
|
159
|
+
We as Modal
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +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 \"../IconButton\";\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\">\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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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsxs as f, Fragment as m } from "react/jsx-runtime";
|
|
2
|
+
import { useState as y, useEffect as g, createElement as b } from "react";
|
|
3
|
+
import { Modal as M } from "./Modal.js";
|
|
4
|
+
import { modalManager as n } from "./ModalService.js";
|
|
5
|
+
const j = ({ children: l }) => {
|
|
6
|
+
const [p, u] = y([]);
|
|
7
|
+
return g(() => n.subscribe((e) => {
|
|
8
|
+
u((r) => {
|
|
9
|
+
switch (e.type) {
|
|
10
|
+
case "add":
|
|
11
|
+
return [...r, e.payload];
|
|
12
|
+
case "update":
|
|
13
|
+
return r.map((t) => {
|
|
14
|
+
if (t.id === e.payload.id) {
|
|
15
|
+
const o = e.payload.config, a = typeof o == "function" ? o(t) : { ...t, ...o };
|
|
16
|
+
return { ...t, ...a };
|
|
17
|
+
}
|
|
18
|
+
return t;
|
|
19
|
+
});
|
|
20
|
+
case "destroy":
|
|
21
|
+
return r.filter((t) => t.id !== e.payload.id);
|
|
22
|
+
case "destroyAll":
|
|
23
|
+
return [];
|
|
24
|
+
default:
|
|
25
|
+
return r;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}), []), /* @__PURE__ */ f(m, { children: [
|
|
29
|
+
l,
|
|
30
|
+
p.map((d) => {
|
|
31
|
+
const {
|
|
32
|
+
id: e,
|
|
33
|
+
content: r,
|
|
34
|
+
children: t,
|
|
35
|
+
onOk: o,
|
|
36
|
+
onCancel: a,
|
|
37
|
+
trigger: i,
|
|
38
|
+
...c
|
|
39
|
+
} = d;
|
|
40
|
+
return /* @__PURE__ */ b(
|
|
41
|
+
M,
|
|
42
|
+
{
|
|
43
|
+
...c,
|
|
44
|
+
key: e,
|
|
45
|
+
open: c.open,
|
|
46
|
+
onOk: (s) => {
|
|
47
|
+
o == null || o(s), n.emit({
|
|
48
|
+
type: "update",
|
|
49
|
+
payload: { id: e, config: { open: !1 } }
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
onCancel: (s) => {
|
|
53
|
+
a == null || a(s), n.emit({
|
|
54
|
+
type: "update",
|
|
55
|
+
payload: { id: e, config: { open: !1 } }
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
afterClose: () => {
|
|
59
|
+
n.emit({ type: "destroy", payload: { id: e } }), i instanceof HTMLElement && i.focus();
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
r || t
|
|
63
|
+
);
|
|
64
|
+
})
|
|
65
|
+
] });
|
|
66
|
+
};
|
|
67
|
+
export {
|
|
68
|
+
j as ModalProvider
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=ModalProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalProvider.js","sources":["../../../src/components/Modal/ModalProvider.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from \"react\";\nimport { Modal } from \"./Modal\";\nimport { modalManager } from \"./ModalService\";\nimport type { ModalConfig, ModalEvent } from \"./ModalService\";\n\nexport interface ModalProviderProps {\n children?: React.ReactNode;\n}\n\nexport const ModalProvider: React.FC<ModalProviderProps> = ({ children }) => {\n const [modals, setModals] = useState<ModalConfig[]>([]);\n\n useEffect(() => {\n const unsubscribe = modalManager.subscribe((event: ModalEvent) => {\n setModals((prev) => {\n switch (event.type) {\n case \"add\":\n return [...prev, event.payload];\n case \"update\":\n return prev.map((m) => {\n if (m.id === event.payload.id) {\n const cfg = event.payload.config;\n const merged =\n typeof cfg === \"function\" ? cfg(m) : { ...m, ...cfg };\n return { ...m, ...merged };\n }\n return m;\n });\n case \"destroy\":\n return prev.filter((m) => m.id !== event.payload.id);\n case \"destroyAll\":\n return [];\n default:\n return prev;\n }\n });\n });\n return unsubscribe;\n }, []);\n\n return (\n <>\n {children}\n {modals.map((modal) => {\n const {\n id,\n content,\n children,\n onOk,\n onCancel,\n trigger,\n ...modalProps\n } = modal;\n return (\n <Modal\n {...modalProps}\n key={id}\n // control visibility for transitions\n open={modalProps.open}\n onOk={(e) => {\n onOk?.(e);\n modalManager.emit({\n type: \"update\",\n payload: { id, config: { open: false } },\n });\n }}\n onCancel={(e) => {\n onCancel?.(e);\n modalManager.emit({\n type: \"update\",\n payload: { id, config: { open: false } },\n });\n }}\n afterClose={() => {\n // destroy and restore focus\n modalManager.emit({ type: \"destroy\", payload: { id } });\n if (trigger instanceof HTMLElement) {\n trigger.focus();\n }\n }}\n >\n {content || children}\n </Modal>\n );\n })}\n </>\n );\n};\n"],"names":["ModalProvider","children","modals","setModals","useState","useEffect","modalManager","event","prev","m","cfg","merged","jsxs","Fragment","modal","id","content","onOk","onCancel","trigger","modalProps","createElement","Modal","e"],"mappings":";;;;AAUO,MAAMA,IAA8C,CAAC,EAAE,UAAAC,QAAe;AAC3E,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAwB,CAAA,CAAE;AAEtD,SAAAC,EAAU,MACYC,EAAa,UAAU,CAACC,MAAsB;AAChE,IAAAJ,EAAU,CAACK,MAAS;AAClB,cAAQD,EAAM,MAAM;AAAA,QAClB,KAAK;AACH,iBAAO,CAAC,GAAGC,GAAMD,EAAM,OAAO;AAAA,QAChC,KAAK;AACI,iBAAAC,EAAK,IAAI,CAACC,MAAM;AACrB,gBAAIA,EAAE,OAAOF,EAAM,QAAQ,IAAI;AACvB,oBAAAG,IAAMH,EAAM,QAAQ,QACpBI,IACJ,OAAOD,KAAQ,aAAaA,EAAID,CAAC,IAAI,EAAE,GAAGA,GAAG,GAAGC,EAAI;AACtD,qBAAO,EAAE,GAAGD,GAAG,GAAGE,EAAO;AAAA,YAAA;AAEpB,mBAAAF;AAAA,UAAA,CACR;AAAA,QACH,KAAK;AACI,iBAAAD,EAAK,OAAO,CAACC,MAAMA,EAAE,OAAOF,EAAM,QAAQ,EAAE;AAAA,QACrD,KAAK;AACH,iBAAO,CAAC;AAAA,QACV;AACS,iBAAAC;AAAA,MAAA;AAAA,IACX,CACD;AAAA,EAAA,CACF,GAEA,EAAE,GAIA,gBAAAI,EAAAC,GAAA,EAAA,UAAA;AAAA,IAAAZ;AAAA,IACAC,EAAO,IAAI,CAACY,MAAU;AACf,YAAA;AAAA,QACJ,IAAAC;AAAA,QACA,SAAAC;AAAA,QACA,UAAAf;AAAAA,QACA,MAAAgB;AAAA,QACA,UAAAC;AAAA,QACA,SAAAC;AAAA,QACA,GAAGC;AAAA,MAAA,IACDN;AAEF,aAAA,gBAAAO;AAAA,QAACC;AAAA,QAAA;AAAA,UACE,GAAGF;AAAA,UACJ,KAAKL;AAAA,UAEL,MAAMK,EAAW;AAAA,UACjB,MAAM,CAACG,MAAM;AACX,YAAAN,KAAA,QAAAA,EAAOM,IACPjB,EAAa,KAAK;AAAA,cAChB,MAAM;AAAA,cACN,SAAS,EAAE,IAAAS,GAAI,QAAQ,EAAE,MAAM,GAAQ,EAAA;AAAA,YAAA,CACxC;AAAA,UACH;AAAA,UACA,UAAU,CAACQ,MAAM;AACf,YAAAL,KAAA,QAAAA,EAAWK,IACXjB,EAAa,KAAK;AAAA,cAChB,MAAM;AAAA,cACN,SAAS,EAAE,IAAAS,GAAI,QAAQ,EAAE,MAAM,GAAQ,EAAA;AAAA,YAAA,CACxC;AAAA,UACH;AAAA,UACA,YAAY,MAAM;AAEH,YAAAT,EAAA,KAAK,EAAE,MAAM,WAAW,SAAS,EAAE,IAAAS,EAAA,GAAM,GAClDI,aAAmB,eACrBA,EAAQ,MAAM;AAAA,UAChB;AAAA,QACF;AAAA,QAECH,KAAWf;AAAAA,MACd;AAAA,IAEH,CAAA;AAAA,EAAA,GACH;AAEJ;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var n = Object.defineProperty;
|
|
2
|
+
var i = (t, e, s) => e in t ? n(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
|
|
3
|
+
var r = (t, e, s) => i(t, typeof e != "symbol" ? e + "" : e, s);
|
|
4
|
+
class a {
|
|
5
|
+
constructor() {
|
|
6
|
+
r(this, "listeners", []);
|
|
7
|
+
r(this, "counter", 0);
|
|
8
|
+
}
|
|
9
|
+
subscribe(e) {
|
|
10
|
+
return this.listeners.push(e), () => {
|
|
11
|
+
this.listeners = this.listeners.filter((s) => s !== e);
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
emit(e) {
|
|
15
|
+
this.listeners.forEach((s) => s(e));
|
|
16
|
+
}
|
|
17
|
+
generateId() {
|
|
18
|
+
return this.counter += 1, `modal_${this.counter}_${Date.now()}`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const l = new a();
|
|
22
|
+
export {
|
|
23
|
+
l as modalManager
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=ModalService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalService.js","sources":["../../../src/components/Modal/ModalService.ts"],"sourcesContent":["import type { ModalFuncProps } from \"./functions\";\n\nexport type ModalConfig = ModalFuncProps & {\n id: string;\n trigger?: HTMLElement;\n};\n\nexport type UpdateConfig =\n | Partial<ModalFuncProps>\n | ((prev: ModalFuncProps) => ModalFuncProps);\n\nexport type ModalEvent =\n | { type: \"add\"; payload: ModalConfig }\n | { type: \"update\"; payload: { id: string; config: UpdateConfig } }\n | { type: \"destroy\"; payload: { id: string } }\n | { type: \"destroyAll\" };\n\ntype Listener = (event: ModalEvent) => void;\n\nclass ModalManager {\n private listeners: Listener[] = [];\n private counter = 0;\n\n subscribe(listener: Listener) {\n this.listeners.push(listener);\n return () => {\n this.listeners = this.listeners.filter((l) => l !== listener);\n };\n }\n\n emit(event: ModalEvent) {\n this.listeners.forEach((l) => l(event));\n }\n\n generateId() {\n this.counter += 1;\n return `modal_${this.counter}_${Date.now()}`;\n }\n}\n\nexport const modalManager = new ModalManager();\n"],"names":["ModalManager","__publicField","listener","l","event","modalManager"],"mappings":";;;AAmBA,MAAMA,EAAa;AAAA,EAAnB;AACU,IAAAC,EAAA,mBAAwB,CAAC;AACzB,IAAAA,EAAA,iBAAU;AAAA;AAAA,EAElB,UAAUC,GAAoB;AACvB,gBAAA,UAAU,KAAKA,CAAQ,GACrB,MAAM;AACX,WAAK,YAAY,KAAK,UAAU,OAAO,CAACC,MAAMA,MAAMD,CAAQ;AAAA,IAC9D;AAAA,EAAA;AAAA,EAGF,KAAKE,GAAmB;AACtB,SAAK,UAAU,QAAQ,CAACD,MAAMA,EAAEC,CAAK,CAAC;AAAA,EAAA;AAAA,EAGxC,aAAa;AACX,gBAAK,WAAW,GACT,SAAS,KAAK,OAAO,IAAI,KAAK,KAAK;AAAA,EAAA;AAE9C;AAEa,MAAAC,IAAe,IAAIL,EAAa;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../src/components/Modal/constants.ts"],"sourcesContent":["// Size map for predefined modal sizes\nexport enum ModalSize {\n xsmall = \"400px\",\n small = \"520px\",\n medium = \"640px\",\n large = \"840px\",\n xlarge = \"1024px\",\n xxlarge = \"1280px\",\n fullscreen = \"100%\",\n}\n"],"names":["ModalSize"],"mappings":"AACY,IAAAA,sBAAAA,OACVA,EAAA,SAAS,SACTA,EAAA,QAAQ,SACRA,EAAA,SAAS,SACTA,EAAA,QAAQ,SACRA,EAAA,SAAS,UACTA,EAAA,UAAU,UACVA,EAAA,aAAa,QAPHA,IAAAA,KAAA,CAAA,CAAA;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { modalManager as o } from "./ModalService.js";
|
|
2
|
+
function t(e) {
|
|
3
|
+
const r = document.activeElement instanceof HTMLElement ? document.activeElement : void 0, { type: c = "default", ...a } = e, n = o.generateId();
|
|
4
|
+
return o.emit({
|
|
5
|
+
type: "add",
|
|
6
|
+
payload: {
|
|
7
|
+
id: n,
|
|
8
|
+
type: c,
|
|
9
|
+
trigger: r,
|
|
10
|
+
...a
|
|
11
|
+
}
|
|
12
|
+
}), {
|
|
13
|
+
update: (s) => o.emit({ type: "update", payload: { id: n, config: s } }),
|
|
14
|
+
destroy: () => o.emit({ type: "destroy", payload: { id: n } })
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const i = (e) => t({ ...e, type: "confirm" }), p = (e) => t({ ...e, type: "info" }), y = (e) => t({ ...e, type: "success" }), l = (e) => t({ ...e, type: "error" }), m = (e) => t({ ...e, type: "warning" }), f = (e) => t({ ...e, type: "default" }), u = () => o.emit({ type: "destroyAll" });
|
|
18
|
+
export {
|
|
19
|
+
i as confirm,
|
|
20
|
+
u as destroyAll,
|
|
21
|
+
l as error,
|
|
22
|
+
p as info,
|
|
23
|
+
f as open,
|
|
24
|
+
y as success,
|
|
25
|
+
m as warning
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=functions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functions.js","sources":["../../../src/components/Modal/functions.tsx"],"sourcesContent":["import React, { JSX } from \"react\";\nimport type { ModalFuncProps as AntModalFuncProps } from \"antd\";\nimport { modalManager } from \"./ModalService\";\nimport { ModalProps } from \"./Modal\";\n\n// Extend Ant ModalFuncProps to include 'default'\nexport type ModalType = NonNullable<AntModalFuncProps[\"type\"]> | \"default\";\n\n// export type ModalFuncProps = Omit<AntModalFuncProps, \"type\"> & {\n// type?: ModalType;\n// };\n\nexport type ModalFuncProps = ModalProps & {\n /**\n * Content to be displayed in the modal\n * Similar to children prop in Modal component\n * Keep this to be compatible with antd ModalFuncProps\n */\n content?: React.ReactNode;\n};\n\nexport type ModalUpdateConfig =\n | Partial<ModalFuncProps>\n | ((prev: ModalFuncProps) => ModalFuncProps);\n\nexport interface ModalRef {\n update: (config: ModalUpdateConfig) => void;\n destroy: () => void;\n}\n\nfunction createModal(config: ModalFuncProps): ModalRef {\n // capture trigger element for focus restoration\n const trigger =\n document.activeElement instanceof HTMLElement\n ? document.activeElement\n : undefined;\n const { type = \"default\", ...restConfig } = config;\n\n const id = modalManager.generateId();\n // initialize modal as open\n modalManager.emit({\n type: \"add\",\n payload: {\n id,\n type,\n trigger,\n ...restConfig,\n },\n });\n return {\n update: (cfg: ModalUpdateConfig) =>\n modalManager.emit({ type: \"update\", payload: { id, config: cfg } }),\n destroy: () => modalManager.emit({ type: \"destroy\", payload: { id } }),\n };\n}\n\nexport const confirm = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"confirm\" });\nexport const info = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"info\" });\nexport const success = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"success\" });\nexport const error = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"error\" });\nexport const warning = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"warning\" });\n\n/**\n * Open a default (normal) modal\n */\nexport const open = (config: ModalFuncProps): ModalRef =>\n createModal({ ...config, type: \"default\" });\n\nexport const destroyAll = (): void => modalManager.emit({ type: \"destroyAll\" });\n"],"names":["createModal","config","trigger","type","restConfig","id","modalManager","cfg","confirm","info","success","error","warning","open","destroyAll"],"mappings":";AA8BA,SAASA,EAAYC,GAAkC;AAErD,QAAMC,IACJ,SAAS,yBAAyB,cAC9B,SAAS,gBACT,QACA,EAAE,MAAAC,IAAO,WAAW,GAAGC,EAAe,IAAAH,GAEtCI,IAAKC,EAAa,WAAW;AAEnC,SAAAA,EAAa,KAAK;AAAA,IAChB,MAAM;AAAA,IACN,SAAS;AAAA,MACP,IAAAD;AAAA,MACA,MAAAF;AAAA,MACA,SAAAD;AAAA,MACA,GAAGE;AAAA,IAAA;AAAA,EACL,CACD,GACM;AAAA,IACL,QAAQ,CAACG,MACPD,EAAa,KAAK,EAAE,MAAM,UAAU,SAAS,EAAE,IAAAD,GAAI,QAAQE,KAAO;AAAA,IACpE,SAAS,MAAMD,EAAa,KAAK,EAAE,MAAM,WAAW,SAAS,EAAE,IAAAD,IAAM,CAAA;AAAA,EACvE;AACF;AAEa,MAAAG,IAAU,CAACP,MACtBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAC/BQ,IAAO,CAACR,MACnBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,OAAQ,CAAA,GAC5BS,IAAU,CAACT,MACtBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAC/BU,IAAQ,CAACV,MACpBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,QAAS,CAAA,GAC7BW,IAAU,CAACX,MACtBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAK/BY,IAAO,CAACZ,MACnBD,EAAY,EAAE,GAAGC,GAAQ,MAAM,UAAW,CAAA,GAE/Ba,IAAa,MAAYR,EAAa,KAAK,EAAE,MAAM,aAAc,CAAA;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import o from "antd/es/app/useApp";
|
|
2
|
+
import { Modal as r } from "./Modal.js";
|
|
3
|
+
import { destroyAll as e, confirm as i, warning as m, error as s, success as t, info as a, open as d } from "./functions.js";
|
|
4
|
+
import { ModalProvider as n } from "./ModalProvider.js";
|
|
5
|
+
import './style.css';/* empty css */
|
|
6
|
+
const p = () => o().modal, g = Object.assign(r, {
|
|
7
|
+
Provider: n,
|
|
8
|
+
open: d,
|
|
9
|
+
info: a,
|
|
10
|
+
success: t,
|
|
11
|
+
error: s,
|
|
12
|
+
warning: m,
|
|
13
|
+
confirm: i,
|
|
14
|
+
destroyAll: e,
|
|
15
|
+
useModal: p
|
|
16
|
+
});
|
|
17
|
+
export {
|
|
18
|
+
g as Modal
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Modal/index.ts"],"sourcesContent":["\"use client\";\nimport useApp from \"antd/es/app/useApp\";\nimport { Modal as MainModal } from \"./Modal\";\nimport {\n confirm,\n info,\n success,\n error,\n warning,\n open,\n destroyAll,\n type ModalFuncProps,\n} from \"./functions\";\nimport { ModalProvider, type ModalProviderProps } from \"./ModalProvider\";\n\nimport \"./style.css\";\n\nconst useModal = () => {\n return useApp().modal;\n};\n\n// Export the Modal component with static methods\nexport const Modal = Object.assign(MainModal, {\n Provider: ModalProvider,\n open,\n info,\n success,\n error,\n warning,\n confirm,\n destroyAll,\n useModal,\n});\n\nexport { ModalFuncProps, ModalProviderProps };\n"],"names":["useModal","useApp","Modal","MainModal","ModalProvider","open","info","success","error","warning","confirm","destroyAll"],"mappings":";;;;;AAiBA,MAAMA,IAAW,MACRC,EAAS,EAAA,OAILC,IAAQ,OAAO,OAAOC,GAAW;AAAA,EAC5C,UAAUC;AAAA,EACV,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAX;AACF,CAAC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components{.ds-modal-wrap{max-height:100vh}.ds-modal-wrap .ds-modal-close-x{width:100%;display:flex}.ds-modal-wrap .ds-modal{padding-bottom:0;margin-top:0;margin-bottom:0;max-height:100vh;top:0}:is(.ds-modal-wrap .ds-modal) .ds-modal-content{display:flex;flex-direction:column;padding:0;box-shadow:var(--ds-box-shadow-secondary);background:var(--ds-modal-bg)}:is(.ds-modal-wrap .ds-modal) .ds-modal-body{padding:var(--ds-modal-content-padding);flex-grow:1;flex-shrink:1;min-height:0;overflow:auto}:is(.ds-modal-wrap .ds-modal) .ds-modal-header{padding:calc(var(--ds-modal-padding) * 2 / 3) var(--ds-modal-padding) 0 var(--ds-modal-padding);margin-bottom:0;background:transparent}:is(.ds-modal-wrap .ds-modal) .ds-modal-footer{padding:0 var(--ds-modal-padding) var(--ds-modal-padding) var(--ds-modal-padding);margin-top:0;background:transparent}:is(.ds-modal-wrap .ds-modal) .ds-modal-close{top:calc(var(--ds-modal-padding) * 2 / 3 - 4px)}.ds-modal-wrap:not(.ds-modal-centered) .ds-modal-inner{margin-top:4rem}.ds-modal-wrap:not(.ds-modal-fullscreen) .ds-modal-content{max-height:calc(100vh - var(--ds-modal-edge-padding) * 2);margin:var(--ds-modal-edge-padding)}.ds-modal-wrap:not(.ds-modal-fullscreen) .ds-modal>div[tabindex="0"]{max-height:calc(100vh - var(--ds-modal-edge-padding) * 2)}.ds-modal-no-body-scroll .ds-modal{max-height:100%}:is(.ds-modal-no-body-scroll .ds-modal) .ds-modal-body{overflow:hidden;display:grid}:is(:is(.ds-modal-no-body-scroll .ds-modal) .ds-modal-body)>*{min-height:0}.ds-modal-fullscreen .ds-modal>div[tabindex="0"]{height:100%}.ds-modal-fullscreen .ds-modal .ds-modal-inner{height:100%}.ds-modal-fullscreen .ds-modal .ds-modal-content{border-radius:0;height:100%;width:100%}:is(.ds-modal-fixed .ds-modal) .ds-modal-footer{border-top:1px solid var(--ds-color-split);margin-top:0;padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}:is(.ds-modal-fixed .ds-modal) .ds-modal-header{border-bottom:1px solid var(--ds-color-split);margin-bottom:0;padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}:is(.ds-modal-fixed .ds-modal) .ds-modal-close{top:8px}:is(.ds-modal-content-overflow .ds-modal) .ds-modal-inner{margin-top:0}}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
2
|
+
import m from "antd/es/popover";
|
|
3
|
+
const s = ({
|
|
4
|
+
className: o,
|
|
5
|
+
style: r,
|
|
6
|
+
arrow: t = !1,
|
|
7
|
+
...e
|
|
8
|
+
}) => /* @__PURE__ */ p(m, { className: o, arrow: t, style: r, ...e });
|
|
9
|
+
export {
|
|
10
|
+
s as Popover
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/Popover/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as AntPopover,\n type PopoverProps as AntPopoverProps,\n} from \"antd/es/popover\";\n\n// Define props interface extending Ant Design's PopoverProps\nexport interface PopoverProps extends AntPopoverProps {\n /**\n * Arrow config for of the popover\n * @default false\n */\n arrow?: AntPopoverProps[\"arrow\"];\n}\n\n// Create Popover component\nexport const Popover = ({\n className,\n style,\n arrow = false,\n ...rest\n}: PopoverProps) => {\n return (\n <AntPopover className={className} arrow={arrow} style={style} {...rest} />\n );\n};\n"],"names":["Popover","className","style","arrow","rest","AntPopover"],"mappings":";;AAgBO,MAAMA,IAAU,CAAC;AAAA,EACtB,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,GAAGC;AACL,wBAEKC,GAAW,EAAA,WAAAJ,GAAsB,OAAAE,GAAc,OAAAD,GAAe,GAAGE,GAAM;"}
|