@bioturing/components 0.44.1 → 0.46.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.
Files changed (63) hide show
  1. package/dist/base.d.ts +2 -0
  2. package/dist/base.d.ts.map +1 -1
  3. package/dist/base.js +2 -0
  4. package/dist/base.js.map +1 -1
  5. package/dist/components/base-menu/index.d.ts.map +1 -1
  6. package/dist/components/base-menu/item.d.ts.map +1 -1
  7. package/dist/components/base-menu/item.js +6 -13
  8. package/dist/components/base-menu/item.js.map +1 -1
  9. package/dist/components/button/style.css +1 -1
  10. package/dist/components/choice-list/component.d.ts +11 -1
  11. package/dist/components/choice-list/component.d.ts.map +1 -1
  12. package/dist/components/choice-list/component.js +79 -82
  13. package/dist/components/choice-list/component.js.map +1 -1
  14. package/dist/components/choice-list/style.css +1 -1
  15. package/dist/components/combobox/component.d.ts +32 -1
  16. package/dist/components/combobox/component.d.ts.map +1 -1
  17. package/dist/components/combobox/component.js +286 -261
  18. package/dist/components/combobox/component.js.map +1 -1
  19. package/dist/components/combobox/style.css +1 -1
  20. package/dist/components/combobox/utils.d.ts +2 -0
  21. package/dist/components/combobox/utils.d.ts.map +1 -0
  22. package/dist/components/combobox/utils.js +10 -0
  23. package/dist/components/combobox/utils.js.map +1 -0
  24. package/dist/components/command-palette/style.css +1 -1
  25. package/dist/components/data-table/style.css +1 -1
  26. package/dist/components/dialog/Dialog.d.ts.map +1 -1
  27. package/dist/components/dialog/Dialog.js +73 -69
  28. package/dist/components/dialog/Dialog.js.map +1 -1
  29. package/dist/components/dialog/dialog.css +1 -1
  30. package/dist/components/hooks/useDraggable.d.ts.map +1 -1
  31. package/dist/components/hooks/useDraggable.js +34 -27
  32. package/dist/components/hooks/useDraggable.js.map +1 -1
  33. package/dist/components/input/component.d.ts +1 -1
  34. package/dist/components/input/component.d.ts.map +1 -1
  35. package/dist/components/input/component.js +55 -45
  36. package/dist/components/input/component.js.map +1 -1
  37. package/dist/components/modal/Modal.d.ts.map +1 -1
  38. package/dist/components/modal/Modal.js +151 -132
  39. package/dist/components/modal/Modal.js.map +1 -1
  40. package/dist/components/modal/style.css +1 -1
  41. package/dist/components/popup-panel/component.d.ts +1 -1
  42. package/dist/components/popup-panel/component.d.ts.map +1 -1
  43. package/dist/components/popup-panel/component.js +217 -233
  44. package/dist/components/popup-panel/component.js.map +1 -1
  45. package/dist/components/popup-panel/constants.d.ts +5 -1
  46. package/dist/components/popup-panel/constants.d.ts.map +1 -1
  47. package/dist/components/popup-panel/constants.js +8 -4
  48. package/dist/components/popup-panel/constants.js.map +1 -1
  49. package/dist/components/popup-panel/style.css +1 -1
  50. package/dist/components/popup-panel/types.d.ts +14 -1
  51. package/dist/components/popup-panel/types.d.ts.map +1 -1
  52. package/dist/components/select-trigger/style.css +1 -1
  53. package/dist/components/theme-provider/style.css +1 -1
  54. package/dist/components/truncate/helpers.d.ts +13 -7
  55. package/dist/components/truncate/helpers.d.ts.map +1 -1
  56. package/dist/components/truncate/helpers.js +102 -85
  57. package/dist/components/truncate/helpers.js.map +1 -1
  58. package/dist/stats.html +1 -1
  59. package/dist/tailwind.css +16 -0
  60. package/dist/tokens/and-theme/tokens.d.ts.map +1 -1
  61. package/dist/tokens/and-theme/tokens.js +4 -1
  62. package/dist/tokens/and-theme/tokens.js.map +1 -1
  63. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../src/components/dialog/Dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { useStableCallback } from \"@base-ui/utils/useStableCallback\";\nimport { XIcon } from \"@bioturing/assets\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport React, {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\nimport { Button, type ButtonProps } from \"../button/component\";\nimport { useControlledState } from \"../hooks/useControlledState\";\nimport { IconButton } from \"../icon-button\";\nimport { Spin } from \"../spin\";\nimport { Stack } from \"../stack\";\nimport { useTheme } from \"../theme-provider\";\nimport { Truncate } from \"../truncate\";\nimport { clsx, useCls } from \"../utils\";\nimport type { ModalType } from \"../modal/functions\";\nimport {\n\tDIALOG_CLOSE_REASON_ESCAPE,\n\tDIALOG_DEFAULT_BODY_SCROLLABLE,\n\tDIALOG_DEFAULT_CANCEL_TEXT,\n\tDIALOG_DEFAULT_CENTERED,\n\tDIALOG_DEFAULT_OK_TEXT,\n\tDIALOG_DEFAULT_OPEN,\n\tDIALOG_DEFAULT_SIZE,\n\tDIALOG_SIZE_WIDTHS,\n\ttype DialogBackground,\n\ttype DialogSize,\n} from \"./constants\";\n\nexport type DialogCancelEvent = Event | React.MouseEvent<HTMLButtonElement>;\nexport type DialogOkEvent = React.MouseEvent<HTMLButtonElement>;\n\nconst DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH = parseInt(\n\tDIALOG_SIZE_WIDTHS.medium,\n\t10,\n);\n\nfunction resolveContentPadding(\n\tcontentPadding: number | string | boolean | undefined,\n) {\n\tif (typeof contentPadding === \"undefined\") {\n\t\treturn undefined;\n\t}\n\n\tif (contentPadding === false || contentPadding === 0) {\n\t\treturn \"0\";\n\t}\n\n\treturn typeof contentPadding === \"number\"\n\t\t? `${contentPadding}px`\n\t\t: contentPadding;\n}\n\nfunction resolveBackground(\n\tsize: DialogSize,\n\tbackground?: DialogBackground,\n): DialogBackground {\n\tif (background) {\n\t\treturn background;\n\t}\n\n\tconst dialogWidth = parseInt(DIALOG_SIZE_WIDTHS[size], 10);\n\n\tif (\n\t\t!Number.isNaN(dialogWidth) &&\n\t\tdialogWidth <= DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH\n\t) {\n\t\treturn \"elevated\";\n\t}\n\n\treturn \"container\";\n}\n\nexport interface DialogProps {\n\tchildren?: React.ReactNode;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonCancel?: (event?: DialogCancelEvent) => void;\n\t/**\n\t * @deprecated Use `onCancel` instead.\n\t */\n\tonClose?: (event?: DialogCancelEvent) => void;\n\tonOk?: (event: DialogOkEvent) => void;\n\ttitle?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\tsize?: DialogSize;\n\tloading?: boolean;\n\tconfirmLoading?: boolean;\n\thideOkButton?: boolean;\n\thideCancelButton?: boolean;\n\tokText?: React.ReactNode;\n\tcancelText?: React.ReactNode;\n\tokType?: ButtonProps[\"type\"];\n\tcontentPadding?: number | string | boolean;\n\tafterTitle?: React.ReactNode;\n\tbeforeCloseButton?: React.ReactNode;\n\tafterCloseButton?: React.ReactNode;\n\tdefaultFixedHeaderFooter?: boolean;\n\tcentered?: boolean;\n\ttype?: ModalType;\n\tbackground?: DialogBackground;\n\tbodyScrollable?: boolean;\n\tcloseIcon?: React.ReactNode | false;\n\tclosable?: boolean;\n\tmaskClosable?: boolean;\n\tkeyboard?: boolean;\n\twidth?: number | string;\n\tstyle?: React.CSSProperties;\n\tdestroyOnHidden?: boolean;\n\tafterOpenChange?: (open: boolean) => void;\n\tclassName?: string;\n\trootClassName?: string;\n\theaderClassName?: string;\n\tbodyClassName?: string;\n\tfooterClassName?: string;\n\tokButtonProps?: ButtonProps;\n\tcancelButtonProps?: ButtonProps;\n}\n\nexport const Dialog = ({\n\tchildren,\n\topen: openProp,\n\tdefaultOpen = DIALOG_DEFAULT_OPEN,\n\tonCancel,\n\tonClose,\n\tonOk,\n\ttitle,\n\tfooter,\n\tsize,\n\tloading = false,\n\tconfirmLoading = false,\n\thideOkButton = false,\n\thideCancelButton = false,\n\tokText = DIALOG_DEFAULT_OK_TEXT,\n\tcancelText = DIALOG_DEFAULT_CANCEL_TEXT,\n\tokType = \"primary\",\n\tcontentPadding,\n\tafterTitle,\n\tbeforeCloseButton,\n\tafterCloseButton,\n\tdefaultFixedHeaderFooter = false,\n\tcentered = DIALOG_DEFAULT_CENTERED,\n\ttype = \"default\",\n\tbackground,\n\tbodyScrollable = DIALOG_DEFAULT_BODY_SCROLLABLE,\n\tcloseIcon,\n\tclosable = true,\n\tmaskClosable = true,\n\tkeyboard = true,\n\twidth,\n\tstyle,\n\tdestroyOnHidden = false,\n\tafterOpenChange,\n\tclassName,\n\trootClassName,\n\theaderClassName,\n\tbodyClassName,\n\tfooterClassName,\n\tokButtonProps,\n\tcancelButtonProps,\n}: DialogProps) => {\n\tconst cls = useCls();\n\tconst { className: themeClassName } = useTheme();\n\tconst [actualOpen, setActualOpen] = useControlledState(\n\t\topenProp,\n\t\tundefined,\n\t\tdefaultOpen,\n\t);\n\tconst [locale] = useLocale(\"Modal\", getConfirmLocale());\n\tconst [isContentOverflow, setIsContentOverflow] = useState(false);\n\tconst resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n\tconst resolvedSize =\n\t\tsize ?? (type === \"default\" ? DIALOG_DEFAULT_SIZE : \"xsmall\");\n\tconst isFullscreen = resolvedSize === \"fullscreen\";\n\tconst hasCustomFooter = typeof footer !== \"undefined\";\n\tconst showDefaultFooter =\n\t\t!hasCustomFooter && !(hideOkButton && hideCancelButton);\n\tconst showCloseButton = closable && closeIcon !== false;\n\tconst resolvedBackground = resolveBackground(resolvedSize, background);\n\tconst resolvedCloseIcon =\n\t\tcloseIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n\tconst resolvedContentPadding = resolveContentPadding(contentPadding);\n\tconst okTextLocale = okText || locale?.okText;\n\tconst cancelTextLocale = cancelText || locale?.cancelText;\n\tconst closeAriaLabel =\n\t\ttypeof cancelTextLocale === \"string\" ? cancelTextLocale : \"Close\";\n\tconst resolvedWidth =\n\t\ttypeof width === \"number\"\n\t\t\t? `${width}px`\n\t\t\t: (width ?? DIALOG_SIZE_WIDTHS[resolvedSize]);\n\n\tconst popupStyle = useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\t\"--ds-dialog-width\": resolvedWidth,\n\t\t\t\t\"--ds-dialog-bg\": `var(--ds-color-bg-${resolvedBackground})`,\n\t\t\t\t...(resolvedContentPadding\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t\"--ds-dialog-content-padding\": resolvedContentPadding,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t\t...style,\n\t\t\t}) as React.CSSProperties,\n\t\t[resolvedBackground, resolvedContentPadding, resolvedWidth, style],\n\t);\n\n\tconst observeBodyOverflow = useCallback((node: HTMLDivElement | null) => {\n\t\tif (resizeObserverRef.current) {\n\t\t\tresizeObserverRef.current.disconnect();\n\t\t\tresizeObserverRef.current = null;\n\t\t}\n\n\t\tif (!node) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst updateOverflowState = () => {\n\t\t\tsetIsContentOverflow(node.scrollHeight > node.clientHeight);\n\t\t};\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tupdateOverflowState();\n\t\t});\n\n\t\tresizeObserver.observe(node);\n\t\tresizeObserverRef.current = resizeObserver;\n\t\tupdateOverflowState();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (resizeObserverRef.current) {\n\t\t\t\tresizeObserverRef.current.disconnect();\n\t\t\t\tresizeObserverRef.current = null;\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleCancel = useStableCallback((event?: DialogCancelEvent) => {\n\t\tif (confirmLoading) {\n\t\t\treturn;\n\t\t}\n\t\tsetActualOpen(false);\n\t\tonCancel?.(event);\n\t\tonClose?.(event);\n\t});\n\n\tconst handleOk = useStableCallback((event: DialogOkEvent) => {\n\t\tif (confirmLoading) {\n\t\t\treturn;\n\t\t}\n\t\tsetActualOpen(false);\n\t\tonOk?.(event);\n\t});\n\n\tconst handleOpenChange = useStableCallback(\n\t\t(\n\t\t\tnextOpen: boolean,\n\t\t\teventDetails: Parameters<\n\t\t\t\tNonNullable<\n\t\t\t\t\tReact.ComponentProps<typeof BaseDialog.Root>[\"onOpenChange\"]\n\t\t\t\t>\n\t\t\t>[1],\n\t\t) => {\n\t\t\tif (nextOpen) {\n\t\t\t\tsetActualOpen(true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\teventDetails.reason === DIALOG_CLOSE_REASON_ESCAPE &&\n\t\t\t\tkeyboard === false\n\t\t\t) {\n\t\t\t\teventDetails.cancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (confirmLoading) {\n\t\t\t\teventDetails.cancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thandleCancel(eventDetails.event);\n\t\t},\n\t);\n\n\tconst hasHeader =\n\t\ttitle ||\n\t\tafterTitle ||\n\t\tbeforeCloseButton ||\n\t\tafterCloseButton ||\n\t\tshowCloseButton;\n\tconst hasFooter = hasCustomFooter ? footer !== null : showDefaultFooter;\n\tconst fixedChrome =\n\t\tdefaultFixedHeaderFooter || isContentOverflow || isFullscreen;\n\n\treturn (\n\t\t<BaseDialog.Root\n\t\t\topen={!!actualOpen}\n\t\t\tonOpenChange={handleOpenChange}\n\t\t\tonOpenChangeComplete={afterOpenChange}\n\t\t\tmodal={true}\n\t\t\tdisablePointerDismissal={!maskClosable}\n\t\t>\n\t\t\t<BaseDialog.Portal keepMounted={!destroyOnHidden}>\n\t\t\t\t<BaseDialog.Backdrop className={cls(\"dialog-mask\")} />\n\t\t\t\t<BaseDialog.Viewport\n\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\tthemeClassName,\n\t\t\t\t\t\trootClassName,\n\t\t\t\t\t\tcls(\n\t\t\t\t\t\t\t\"dialog-wrap\",\n\t\t\t\t\t\t\tcentered ? \"dialog-centered\" : \"dialog-top-aligned\",\n\t\t\t\t\t\t\tisFullscreen && \"dialog-wrap-fullscreen\",\n\t\t\t\t\t\t),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<BaseDialog.Popup\n\t\t\t\t\t\tclassName={clsx(\n\t\t\t\t\t\t\tcls(\n\t\t\t\t\t\t\t\t\"dialog\",\n\t\t\t\t\t\t\t\t`dialog-size-${resolvedSize}`,\n\t\t\t\t\t\t\t\tfixedChrome && \"dialog-fixed\",\n\t\t\t\t\t\t\t\tbodyScrollable === false && \"dialog-no-body-scroll\",\n\t\t\t\t\t\t\t\tloading && \"dialog-loading\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tstyle={popupStyle}\n\t\t\t\t\t\taria-busy={loading || undefined}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cls(\"dialog-content\")}>\n\t\t\t\t\t\t\t{hasHeader && (\n\t\t\t\t\t\t\t\t<div className={clsx(cls(\"dialog-header\"), headerClassName)}>\n\t\t\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\tgap={8}\n\t\t\t\t\t\t\t\t\t\tclassName={cls(\"dialog-title-row\")}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Stack.Child grow>\n\t\t\t\t\t\t\t\t\t\t\t{title ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<BaseDialog.Title className={cls(\"dialog-title\")}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{typeof title === \"string\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Truncate>{title}</Truncate>\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</BaseDialog.Title>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<div />\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</Stack.Child>\n\t\t\t\t\t\t\t\t\t\t<Stack.Child stack hug align=\"center\" gap={8}>\n\t\t\t\t\t\t\t\t\t\t\t{beforeCloseButton}\n\t\t\t\t\t\t\t\t\t\t\t{showCloseButton && (\n\t\t\t\t\t\t\t\t\t\t\t\t<BaseDialog.Close\n\t\t\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cls(\"dialog-close\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={closeAriaLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{resolvedCloseIcon}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{afterCloseButton}\n\t\t\t\t\t\t\t\t\t\t</Stack.Child>\n\t\t\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t\t\t{afterTitle ? (\n\t\t\t\t\t\t\t\t\t\t<div className={cls(\"dialog-header-after-title\")}>\n\t\t\t\t\t\t\t\t\t\t\t{afterTitle}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tref={observeBodyOverflow}\n\t\t\t\t\t\t\t\tclassName={clsx(cls(\"dialog-body\"), bodyClassName)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t\t\t\t<Spin spinning className={cls(\"dialog-body-spin\")}>\n\t\t\t\t\t\t\t\t\t\t<div className={cls(\"dialog-body-content\")}>{children}</div>\n\t\t\t\t\t\t\t\t\t</Spin>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\tchildren\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{hasFooter && (\n\t\t\t\t\t\t\t\t<div className={clsx(cls(\"dialog-footer\"), footerClassName)}>\n\t\t\t\t\t\t\t\t\t{hasCustomFooter ? (\n\t\t\t\t\t\t\t\t\t\tfooter\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<div className={cls(\"dialog-footer-actions\")}>\n\t\t\t\t\t\t\t\t\t\t\t{!hideCancelButton && (\n\t\t\t\t\t\t\t\t\t\t\t\t<BaseDialog.Close\n\t\t\t\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Button type=\"default\" {...cancelButtonProps}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{cancelTextLocale}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{!hideOkButton && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype={okType}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{...okButtonProps}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={confirmLoading || okButtonProps?.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={confirmLoading || okButtonProps?.loading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleOk}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{okTextLocale}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</BaseDialog.Popup>\n\t\t\t\t</BaseDialog.Viewport>\n\t\t\t</BaseDialog.Portal>\n\t\t</BaseDialog.Root>\n\t);\n};\n"],"names":["DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH","DIALOG_SIZE_WIDTHS","resolveContentPadding","contentPadding","resolveBackground","size","background","dialogWidth","Dialog","children","openProp","defaultOpen","DIALOG_DEFAULT_OPEN","onCancel","onClose","onOk","title","footer","loading","confirmLoading","hideOkButton","hideCancelButton","okText","DIALOG_DEFAULT_OK_TEXT","cancelText","DIALOG_DEFAULT_CANCEL_TEXT","okType","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","DIALOG_DEFAULT_CENTERED","type","bodyScrollable","DIALOG_DEFAULT_BODY_SCROLLABLE","closeIcon","closable","maskClosable","keyboard","width","style","destroyOnHidden","afterOpenChange","className","rootClassName","headerClassName","bodyClassName","footerClassName","okButtonProps","cancelButtonProps","cls","useCls","themeClassName","useTheme","actualOpen","setActualOpen","useControlledState","locale","useLocale","getConfirmLocale","isContentOverflow","setIsContentOverflow","useState","resizeObserverRef","useRef","resolvedSize","DIALOG_DEFAULT_SIZE","isFullscreen","hasCustomFooter","showDefaultFooter","showCloseButton","resolvedBackground","resolvedCloseIcon","jsx","XIcon","resolvedContentPadding","okTextLocale","cancelTextLocale","closeAriaLabel","resolvedWidth","popupStyle","useMemo","observeBodyOverflow","useCallback","node","updateOverflowState","resizeObserver","useEffect","handleCancel","useStableCallback","event","handleOk","handleOpenChange","nextOpen","eventDetails","DIALOG_CLOSE_REASON_ESCAPE","hasHeader","hasFooter","fixedChrome","BaseDialog","clsx","jsxs","Stack","Truncate","IconButton","Spin","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../src/components/dialog/Dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { Dialog as BaseDialog } from \"@base-ui/react/dialog\";\nimport { useStableCallback } from \"@base-ui/utils/useStableCallback\";\nimport { XIcon } from \"@bioturing/assets\";\nimport { getConfirmLocale } from \"antd/es/modal/locale\";\nimport { useLocale } from \"antd/es/locale\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Button, type ButtonProps } from \"../button/component\";\nimport { useControlledState } from \"../hooks/useControlledState\";\nimport { IconButton } from \"../icon-button\";\nimport { Spin } from \"../spin\";\nimport { Stack } from \"../stack\";\nimport { useTheme } from \"../theme-provider\";\nimport { Truncate } from \"../truncate\";\nimport { clsx, useCls } from \"../utils\";\nimport type { ModalType } from \"../modal/functions\";\nimport {\n DIALOG_CLOSE_REASON_ESCAPE,\n DIALOG_DEFAULT_BODY_SCROLLABLE,\n DIALOG_DEFAULT_CANCEL_TEXT,\n DIALOG_DEFAULT_CENTERED,\n DIALOG_DEFAULT_OK_TEXT,\n DIALOG_DEFAULT_OPEN,\n DIALOG_DEFAULT_SIZE,\n DIALOG_SIZE_WIDTHS,\n type DialogBackground,\n type DialogSize,\n} from \"./constants\";\n\nexport type DialogCancelEvent = Event | React.MouseEvent<HTMLButtonElement>;\nexport type DialogOkEvent = React.MouseEvent<HTMLButtonElement>;\n\nconst DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH = parseInt(\n DIALOG_SIZE_WIDTHS.medium,\n 10,\n);\n\nfunction resolveContentPadding(\n contentPadding: number | string | boolean | undefined,\n) {\n if (typeof contentPadding === \"undefined\") {\n return undefined;\n }\n\n if (contentPadding === false || contentPadding === 0) {\n return \"0\";\n }\n\n return typeof contentPadding === \"number\"\n ? `${contentPadding}px`\n : contentPadding;\n}\n\nfunction resolveBackground(\n size: DialogSize,\n background?: DialogBackground,\n): DialogBackground {\n if (background) {\n return background;\n }\n\n const dialogWidth = parseInt(DIALOG_SIZE_WIDTHS[size], 10);\n\n if (\n !Number.isNaN(dialogWidth) &&\n dialogWidth <= DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH\n ) {\n return \"elevated\";\n }\n\n return \"container\";\n}\n\nexport interface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onCancel?: (event?: DialogCancelEvent) => void;\n /**\n * @deprecated Use `onCancel` instead.\n */\n onClose?: (event?: DialogCancelEvent) => void;\n onOk?: (event: DialogOkEvent) => void;\n title?: React.ReactNode;\n footer?: React.ReactNode;\n size?: DialogSize;\n loading?: boolean;\n confirmLoading?: boolean;\n hideOkButton?: boolean;\n hideCancelButton?: boolean;\n okText?: React.ReactNode;\n cancelText?: React.ReactNode;\n okType?: ButtonProps[\"type\"];\n contentPadding?: number | string | boolean;\n afterTitle?: React.ReactNode;\n beforeCloseButton?: React.ReactNode;\n afterCloseButton?: React.ReactNode;\n defaultFixedHeaderFooter?: boolean;\n centered?: boolean;\n type?: ModalType;\n background?: DialogBackground;\n bodyScrollable?: boolean;\n closeIcon?: React.ReactNode | false;\n closable?: boolean;\n maskClosable?: boolean;\n keyboard?: boolean;\n width?: number | string;\n style?: React.CSSProperties;\n destroyOnHidden?: boolean;\n afterOpenChange?: (open: boolean) => void;\n className?: string;\n rootClassName?: string;\n headerClassName?: string;\n bodyClassName?: string;\n footerClassName?: string;\n okButtonProps?: ButtonProps;\n cancelButtonProps?: ButtonProps;\n}\n\nexport const Dialog = ({\n children,\n open: openProp,\n defaultOpen = DIALOG_DEFAULT_OPEN,\n onCancel,\n onClose,\n onOk,\n title,\n footer,\n size,\n loading = false,\n confirmLoading = false,\n hideOkButton = false,\n hideCancelButton = false,\n okText = DIALOG_DEFAULT_OK_TEXT,\n cancelText = DIALOG_DEFAULT_CANCEL_TEXT,\n okType = \"primary\",\n contentPadding,\n afterTitle,\n beforeCloseButton,\n afterCloseButton,\n defaultFixedHeaderFooter = false,\n centered = DIALOG_DEFAULT_CENTERED,\n type = \"default\",\n background,\n bodyScrollable = DIALOG_DEFAULT_BODY_SCROLLABLE,\n closeIcon,\n closable = true,\n maskClosable = true,\n keyboard = true,\n width,\n style,\n destroyOnHidden = false,\n afterOpenChange,\n className,\n rootClassName,\n headerClassName,\n bodyClassName,\n footerClassName,\n okButtonProps,\n cancelButtonProps,\n}: DialogProps) => {\n const cls = useCls();\n const { className: themeClassName } = useTheme();\n const [actualOpen, setActualOpen] = useControlledState(\n openProp,\n undefined,\n defaultOpen,\n );\n const [locale] = useLocale(\"Modal\", getConfirmLocale());\n const [isContentOverflow, setIsContentOverflow] = useState(false);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const resolvedSize =\n size ?? (type === \"default\" ? DIALOG_DEFAULT_SIZE : \"xsmall\");\n const isFullscreen = resolvedSize === \"fullscreen\";\n const hasCustomFooter = typeof footer !== \"undefined\";\n const showDefaultFooter =\n !hasCustomFooter && !(hideOkButton && hideCancelButton);\n const showCloseButton = closable && closeIcon !== false;\n const resolvedBackground = resolveBackground(resolvedSize, background);\n const resolvedCloseIcon =\n closeIcon === undefined ? <XIcon size={16} weight=\"bold\" /> : closeIcon;\n const resolvedContentPadding = resolveContentPadding(contentPadding);\n const okTextLocale = okText || locale?.okText;\n const cancelTextLocale = cancelText || locale?.cancelText;\n const closeAriaLabel =\n typeof cancelTextLocale === \"string\" ? cancelTextLocale : \"Close\";\n const resolvedWidth =\n typeof width === \"number\"\n ? `${width}px`\n : (width ?? DIALOG_SIZE_WIDTHS[resolvedSize]);\n\n const popupStyle = useMemo(\n () =>\n ({\n \"--ds-dialog-width\": resolvedWidth,\n \"--ds-dialog-bg\": `var(--ds-color-bg-${resolvedBackground})`,\n ...(resolvedContentPadding\n ? {\n \"--ds-dialog-content-padding\": resolvedContentPadding,\n }\n : {}),\n ...style,\n }) as React.CSSProperties,\n [resolvedBackground, resolvedContentPadding, resolvedWidth, style],\n );\n\n const observeBodyOverflow = useCallback((node: HTMLDivElement | null) => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n\n if (!node) {\n return;\n }\n\n const updateOverflowState = () => {\n setIsContentOverflow(node.scrollHeight > node.clientHeight);\n };\n\n const resizeObserver = new ResizeObserver(() => {\n updateOverflowState();\n });\n\n resizeObserver.observe(node);\n resizeObserverRef.current = resizeObserver;\n updateOverflowState();\n }, []);\n\n useEffect(() => {\n return () => {\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n resizeObserverRef.current = null;\n }\n };\n }, []);\n\n const handleCancel = useStableCallback((event?: DialogCancelEvent) => {\n if (confirmLoading) {\n return;\n }\n setActualOpen(false);\n onCancel?.(event);\n onClose?.(event);\n });\n\n const handleOk = useStableCallback((event: DialogOkEvent) => {\n if (confirmLoading) {\n return;\n }\n setActualOpen(false);\n onOk?.(event);\n });\n\n const handleOpenChange = useStableCallback(\n (\n nextOpen: boolean,\n eventDetails: Parameters<\n NonNullable<\n React.ComponentProps<typeof BaseDialog.Root>[\"onOpenChange\"]\n >\n >[1],\n ) => {\n if (nextOpen) {\n setActualOpen(true);\n return;\n }\n\n if (\n eventDetails.reason === DIALOG_CLOSE_REASON_ESCAPE &&\n keyboard === false\n ) {\n eventDetails.cancel();\n return;\n }\n\n if (confirmLoading) {\n eventDetails.cancel();\n return;\n }\n\n handleCancel(eventDetails.event);\n },\n );\n\n const hasHeader =\n title ||\n afterTitle ||\n beforeCloseButton ||\n afterCloseButton ||\n showCloseButton;\n const hasFooter = hasCustomFooter ? footer !== null : showDefaultFooter;\n const fixedChrome =\n defaultFixedHeaderFooter || isContentOverflow || isFullscreen;\n\n return (\n <BaseDialog.Root\n open={!!actualOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={afterOpenChange}\n modal={true}\n disablePointerDismissal={!maskClosable}\n >\n <BaseDialog.Portal keepMounted={!destroyOnHidden}>\n <BaseDialog.Backdrop className={cls(\"dialog-mask\")} />\n <BaseDialog.Viewport\n className={clsx(\n themeClassName,\n rootClassName,\n cls(\n \"dialog-wrap\",\n centered ? \"dialog-centered\" : \"dialog-top-aligned\",\n isFullscreen && \"dialog-wrap-fullscreen\",\n loading && \"dialog-loading\",\n ),\n )}\n >\n <BaseDialog.Popup\n className={clsx(\n cls(\n \"dialog\",\n `dialog-size-${resolvedSize}`,\n fixedChrome && \"dialog-fixed\",\n bodyScrollable === false && \"dialog-no-body-scroll\",\n loading && \"dialog-loading\",\n ),\n className,\n )}\n style={popupStyle}\n aria-busy={loading || undefined}\n >\n <div className={cls(\"dialog-content\")}>\n {hasHeader && (\n <div className={clsx(cls(\"dialog-header\"), headerClassName)}>\n <Stack\n align=\"center\"\n gap={8}\n className={cls(\"dialog-title-row\")}\n >\n <Stack.Child grow>\n {title ? (\n <BaseDialog.Title className={cls(\"dialog-title\")}>\n {typeof title === \"string\" ? (\n <Truncate>{title}</Truncate>\n ) : (\n title\n )}\n </BaseDialog.Title>\n ) : (\n <div />\n )}\n </Stack.Child>\n <Stack.Child stack hug align=\"center\" gap={8}>\n {beforeCloseButton}\n {showCloseButton && (\n <BaseDialog.Close\n render={\n <IconButton\n className={cls(\"dialog-close\")}\n aria-label={closeAriaLabel}\n >\n {resolvedCloseIcon}\n </IconButton>\n }\n />\n )}\n {afterCloseButton}\n </Stack.Child>\n </Stack>\n {afterTitle ? (\n <div className={cls(\"dialog-header-after-title\")}>\n {afterTitle}\n </div>\n ) : null}\n </div>\n )}\n <div className={cls(\"dialog-body-wrapper\")}>\n <div\n ref={observeBodyOverflow}\n className={clsx(cls(\"dialog-body\"), bodyClassName)}\n >\n {children}\n </div>\n {loading ? (\n <div className={cls(\"dialog-loading-overlay\")}>\n <Spin />\n </div>\n ) : null}\n </div>\n\n {hasFooter && (\n <div className={clsx(cls(\"dialog-footer\"), footerClassName)}>\n {hasCustomFooter ? (\n footer\n ) : (\n <div className={cls(\"dialog-footer-actions\")}>\n {!hideCancelButton && (\n <BaseDialog.Close\n render={\n <Button type=\"default\" {...cancelButtonProps}>\n {cancelTextLocale}\n </Button>\n }\n />\n )}\n {!hideOkButton && (\n <Button\n type={okType}\n {...okButtonProps}\n disabled={confirmLoading || okButtonProps?.disabled}\n loading={confirmLoading || okButtonProps?.loading}\n onClick={handleOk}\n >\n {okTextLocale}\n </Button>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n </BaseDialog.Popup>\n </BaseDialog.Viewport>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n );\n};\n"],"names":["DIALOG_ELEVATED_BACKGROUND_MAX_WIDTH","DIALOG_SIZE_WIDTHS","resolveContentPadding","contentPadding","resolveBackground","size","background","dialogWidth","Dialog","children","openProp","defaultOpen","DIALOG_DEFAULT_OPEN","onCancel","onClose","onOk","title","footer","loading","confirmLoading","hideOkButton","hideCancelButton","okText","DIALOG_DEFAULT_OK_TEXT","cancelText","DIALOG_DEFAULT_CANCEL_TEXT","okType","afterTitle","beforeCloseButton","afterCloseButton","defaultFixedHeaderFooter","centered","DIALOG_DEFAULT_CENTERED","type","bodyScrollable","DIALOG_DEFAULT_BODY_SCROLLABLE","closeIcon","closable","maskClosable","keyboard","width","style","destroyOnHidden","afterOpenChange","className","rootClassName","headerClassName","bodyClassName","footerClassName","okButtonProps","cancelButtonProps","cls","useCls","themeClassName","useTheme","actualOpen","setActualOpen","useControlledState","locale","useLocale","getConfirmLocale","isContentOverflow","setIsContentOverflow","useState","resizeObserverRef","useRef","resolvedSize","DIALOG_DEFAULT_SIZE","isFullscreen","hasCustomFooter","showDefaultFooter","showCloseButton","resolvedBackground","resolvedCloseIcon","jsx","XIcon","resolvedContentPadding","okTextLocale","cancelTextLocale","closeAriaLabel","resolvedWidth","popupStyle","useMemo","observeBodyOverflow","useCallback","node","updateOverflowState","resizeObserver","useEffect","handleCancel","useStableCallback","event","handleOk","handleOpenChange","nextOpen","eventDetails","DIALOG_CLOSE_REASON_ESCAPE","hasHeader","hasFooter","fixedChrome","BaseDialog","clsx","jsxs","Stack","Truncate","IconButton","Spin","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- @layer components{.ds-dialog-mask{position:fixed;inset:0;z-index:var(--ds-z-index-modal-mask);background-color:var(--ds-color-bg-mask);transition:opacity .2s var(--ds-motion-ease-out)}.ds-dialog-mask[data-starting-style],.ds-dialog-mask[data-ending-style]{opacity:0}.ds-dialog-wrap{--ds-dialog-edge-padding: var(--ds-modal-edge-padding);position:fixed;inset:0;z-index:var(--ds-z-index-modal);display:flex;overflow-y:auto;padding:var(--ds-dialog-edge-padding);outline:0;-webkit-overflow-scrolling:touch}.ds-dialog-centered{align-items:center;justify-content:center}.ds-dialog-top-aligned{align-items:flex-start;justify-content:center;padding-top:calc(var(--ds-dialog-edge-padding) + 4rem)}.ds-dialog-wrap-fullscreen{padding:0}.ds-dialog{width:min(var(--ds-dialog-width),calc(100vw - var(--ds-dialog-edge-padding) * 2));max-width:100%;max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2);margin:auto;padding-bottom:0;pointer-events:none;position:relative;top:0;transform-origin:center;transition:transform .2s var(--ds-motion-ease-out),opacity .2s var(--ds-motion-ease-out)}.ds-dialog[data-starting-style],.ds-dialog[data-ending-style]{transform:scale(.96);opacity:0}.ds-dialog-content{width:100%;max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--ds-border-radius-lg);background:var(--ds-dialog-bg, var(--ds-color-bg-elevated));box-shadow:var(--ds-box-shadow-secondary);color:var(--ds-color-text);pointer-events:auto}.ds-dialog-content:focus,.ds-dialog-content:focus-visible{outline:none}.ds-dialog-size-fullscreen{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;top:0}.ds-dialog-size-fullscreen .ds-dialog-content{width:100%;height:100%;max-height:100%;border-radius:0}.ds-dialog-header,.ds-dialog-footer{flex:0 0 auto;background:transparent}.ds-dialog-header{padding:calc(var(--ds-modal-padding) * 2 / 3) var(--ds-modal-padding) 0 var(--ds-modal-padding)}.ds-dialog-footer{padding:0 var(--ds-modal-padding) var(--ds-modal-padding) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-header{border-bottom:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-footer{border-top:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-title-row{min-width:0}.ds-dialog-title{display:block;min-width:0;color:var(--ds-color-text);font-size:var(--ds-font-size-lg);font-weight:600;line-height:var(--ds-line-height-lg)}.ds-dialog-header-after-title{margin-top:calc(var(--ds-modal-padding) / 3)}.ds-dialog-close{flex-shrink:0}.ds-dialog-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--ds-dialog-content-padding, var(--ds-modal-padding))}.ds-dialog-body-spin{width:100%}.ds-dialog-body-spin,.ds-dialog-body-spin .ds-spin-container,.ds-dialog-body-content{min-height:100%}.ds-dialog-no-body-scroll .ds-dialog{max-height:100%}.ds-dialog-no-body-scroll .ds-dialog-body{overflow:hidden;display:grid}.ds-dialog-no-body-scroll .ds-dialog-body>*{min-height:0}.ds-dialog-footer-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.ds-dialog-loading .ds-dialog-body-spin,.ds-dialog-loading .ds-dialog-body-spin .ds-spin-nested-loading,.ds-dialog-loading .ds-dialog-body-spin .ds-spin-container,.ds-dialog-loading .ds-dialog-body-content{height:100%}@media(max-width:640px){.ds-dialog-wrap{--ds-dialog-edge-padding: 16px}.ds-dialog-top-aligned{padding-top:24px}.ds-dialog{max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2)}}}
1
+ @layer components{.ds-dialog-mask{position:fixed;inset:0;z-index:var(--ds-z-index-modal-mask);background-color:var(--ds-color-bg-mask);transition:opacity .2s var(--ds-motion-ease-out)}.ds-dialog-mask[data-starting-style],.ds-dialog-mask[data-ending-style]{opacity:0}.ds-dialog-wrap{--ds-dialog-edge-padding: var(--ds-modal-edge-padding);position:fixed;inset:0;z-index:var(--ds-z-index-modal);display:flex;overflow-y:auto;padding:var(--ds-dialog-edge-padding);outline:0;-webkit-overflow-scrolling:touch}.ds-dialog-centered{align-items:center;justify-content:center}.ds-dialog-top-aligned{align-items:flex-start;justify-content:center;padding-top:calc(var(--ds-dialog-edge-padding) + 4rem)}.ds-dialog-wrap-fullscreen{padding:0}.ds-dialog{width:min(var(--ds-dialog-width),calc(100vw - var(--ds-dialog-edge-padding) * 2));max-width:100%;max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2);margin:auto;padding-bottom:0;pointer-events:none;position:relative;top:0;transform-origin:center;transition:transform .2s var(--ds-motion-ease-out),opacity .2s var(--ds-motion-ease-out)}.ds-dialog[data-starting-style],.ds-dialog[data-ending-style]{transform:scale(.96);opacity:0}.ds-dialog-content{width:100%;max-height:inherit;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--ds-border-radius-lg);background:var(--ds-dialog-bg, var(--ds-color-bg-elevated));box-shadow:var(--ds-box-shadow-secondary);color:var(--ds-color-text);pointer-events:auto}.ds-dialog-content:focus,.ds-dialog-content:focus-visible{outline:none}.ds-dialog-size-fullscreen{width:100vw;max-width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;top:0}.ds-dialog-size-fullscreen .ds-dialog-content{width:100%;height:100%;max-height:100%;border-radius:0}.ds-dialog-header,.ds-dialog-footer{flex:0 0 auto;background:transparent}.ds-dialog-header{padding:calc(var(--ds-modal-padding) * 2 / 3) var(--ds-modal-padding) 0 var(--ds-modal-padding)}.ds-dialog-footer{padding:0 var(--ds-modal-padding) var(--ds-modal-padding) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-header{border-bottom:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-fixed .ds-dialog-footer{border-top:1px solid var(--ds-color-split);padding:calc(var(--ds-modal-padding) / 2) var(--ds-modal-padding)}.ds-dialog-title-row{min-width:0}.ds-dialog-title{display:block;min-width:0;color:var(--ds-color-text);font-size:var(--ds-font-size-lg);font-weight:600;line-height:var(--ds-line-height-lg)}.ds-dialog-header-after-title{margin-top:calc(var(--ds-modal-padding) / 3)}.ds-dialog-close{flex-shrink:0}.ds-dialog-body-wrapper{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative}.ds-dialog-body{flex:1 1 auto;min-height:0;overflow:auto;padding:var(--ds-dialog-content-padding, var(--ds-modal-padding))}.ds-dialog-no-body-scroll .ds-dialog{max-height:100%}.ds-dialog-no-body-scroll .ds-dialog-body{overflow:hidden;display:grid}.ds-dialog-no-body-scroll .ds-dialog-body>*{min-height:0}.ds-dialog-footer-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.ds-dialog-loading-overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background-color:color-mix(in oklab,var(--ds-dialog-bg) 60%,transparent);margin-top:calc(var(--ds-dialog-header-height, 0));margin-bottom:calc(var(--ds-dialog-footer-height, 0))}@media(max-width:640px){.ds-dialog-wrap{--ds-dialog-edge-padding: 16px}.ds-dialog-top-aligned{padding-top:24px}.ds-dialog{max-height:calc(100vh - var(--ds-dialog-edge-padding) * 2)}}}
@@ -1 +1 @@
1
- {"version":3,"file":"useDraggable.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useDraggable.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,OAAO,GAAE,OAAc;mBAChB,WAAW,GAAG,IAAI;EAyMrD"}
1
+ {"version":3,"file":"useDraggable.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useDraggable.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,OAAO,GAAE,OAAc;mBAChB,WAAW,GAAG,IAAI;EAqNrD"}
@@ -1,11 +1,18 @@
1
1
  "use client";
2
- import { useCallback as H } from "react";
3
- function T(u = !0) {
4
- return { ref: H((n) => {
5
- if (!n || !u) return;
6
- let i = !1, d = 0, m = 0, f = 0, v = 0, o = null;
2
+ import { useCallback as M } from "react";
3
+ function B(d = !0) {
4
+ return { ref: M((n) => {
5
+ if (!n || !d) return;
6
+ let a = !1, f = 0, m = 0, g = 0, v = 0, o = null;
7
7
  n.addEventListener("mousedown", p);
8
- function z(t) {
8
+ function l(t) {
9
+ if (t) {
10
+ n.setAttribute("data-dragging", "true");
11
+ return;
12
+ }
13
+ n.removeAttribute("data-dragging");
14
+ }
15
+ function y(t) {
9
16
  let e = t;
10
17
  for (; e && e !== n; ) {
11
18
  if (e.classList.contains("resize-handle") || e.classList.contains("ds-resizable-resize-handle") || e.getAttribute("data-resize-handle") || e.getAttribute("data-testid")?.includes("resize") || e.getAttribute("data-placement") || // Resizable handles have data-placement
@@ -17,39 +24,39 @@ function T(u = !0) {
17
24
  }
18
25
  return !1;
19
26
  }
20
- function y(t) {
27
+ function L(t) {
21
28
  const e = window.getComputedStyle(t), s = new DOMMatrix(e.transform);
22
29
  return {
23
30
  x: s.m41 || parseInt(e.left) || 0,
24
31
  y: s.m42 || parseInt(e.top) || 0
25
32
  };
26
33
  }
27
- function L(t, e, s) {
34
+ function w(t, e, s) {
28
35
  t.style.transform = `translate(${e}px, ${s}px)`;
29
36
  }
30
37
  function p(t) {
31
38
  const e = t.target;
32
- if (z(e))
39
+ if (y(e))
33
40
  return;
34
41
  if (n.closest("[data-resizable]")) {
35
- const r = n.getBoundingClientRect(), E = t.clientX - r.left, b = t.clientY - r.top, c = 8, w = b <= c, x = b >= r.height - c, S = E <= c, A = E >= r.width - c, D = n.querySelector('.ds-resizable-resize-handle[data-placement*="top"]'), X = n.querySelector('.ds-resizable-resize-handle[data-placement*="bottom"]'), Y = n.querySelector('.ds-resizable-resize-handle[data-placement*="left"]'), q = n.querySelector('.ds-resizable-resize-handle[data-placement*="right"]');
36
- if (w && D || x && X || S && Y || A && q)
42
+ const r = n.getBoundingClientRect(), E = t.clientX - r.left, z = t.clientY - r.top, c = 8, A = z <= c, S = z >= r.height - c, x = E <= c, D = E >= r.width - c, X = n.querySelector('.ds-resizable-resize-handle[data-placement*="top"]'), Y = n.querySelector('.ds-resizable-resize-handle[data-placement*="bottom"]'), q = n.querySelector('.ds-resizable-resize-handle[data-placement*="left"]'), H = n.querySelector('.ds-resizable-resize-handle[data-placement*="right"]');
43
+ if (A && X || S && Y || x && q || D && H)
37
44
  return;
38
45
  }
39
- t.preventDefault(), t.stopPropagation(), i = !0, d = t.clientX, m = t.clientY;
40
- const s = y(n);
41
- f = s.x, v = s.y, document.body.style.cursor = "grabbing", document.body.style.userSelect = "none", n.querySelectorAll('button, a, input, select, textarea, [role="button"]').forEach((r) => {
46
+ t.preventDefault(), t.stopPropagation(), a = !0, l(!0), f = t.clientX, m = t.clientY;
47
+ const s = L(n);
48
+ g = s.x, v = s.y, document.body.style.cursor = "grabbing", document.body.style.userSelect = "none", n.querySelectorAll('button, a, input, select, textarea, [role="button"]').forEach((r) => {
42
49
  r.style.pointerEvents = "auto";
43
- }), document.addEventListener("mousemove", l, { passive: !1 }), document.addEventListener("mouseup", a), document.addEventListener("touchmove", h, { passive: !1 }), document.addEventListener("touchend", a);
50
+ }), document.addEventListener("mousemove", u, { passive: !1 }), document.addEventListener("mouseup", i), document.addEventListener("touchmove", h, { passive: !1 }), document.addEventListener("touchend", i);
44
51
  }
45
- function l(t) {
46
- !i || !n || (t.preventDefault(), o && cancelAnimationFrame(o), o = requestAnimationFrame(() => {
47
- const e = t.clientX - d, s = t.clientY - m, g = f + e, r = v + s;
48
- L(n, g, r);
52
+ function u(t) {
53
+ !a || !n || (t.preventDefault(), o && cancelAnimationFrame(o), o = requestAnimationFrame(() => {
54
+ const e = t.clientX - f, s = t.clientY - m, b = g + e, r = v + s;
55
+ w(n, b, r);
49
56
  }));
50
57
  }
51
58
  function h(t) {
52
- if (!i || !n) return;
59
+ if (!a || !n) return;
53
60
  t.preventDefault();
54
61
  const e = t.touches[0];
55
62
  if (!e) return;
@@ -58,19 +65,19 @@ function T(u = !0) {
58
65
  clientY: e.clientY,
59
66
  bubbles: !0
60
67
  });
61
- l(s);
68
+ u(s);
62
69
  }
63
- function a() {
64
- i && (i = !1, o && (cancelAnimationFrame(o), o = null), document.body.style.cursor = "", document.body.style.userSelect = "", n && n.querySelectorAll('button, a, input, select, textarea, [role="button"]').forEach((e) => {
70
+ function i() {
71
+ a && (a = !1, l(!1), o && (cancelAnimationFrame(o), o = null), document.body.style.cursor = "", document.body.style.userSelect = "", n && n.querySelectorAll('button, a, input, select, textarea, [role="button"]').forEach((e) => {
65
72
  e.style.pointerEvents = "";
66
- }), document.removeEventListener("mousemove", l), document.removeEventListener("mouseup", a), document.removeEventListener("touchmove", h), document.removeEventListener("touchend", a));
73
+ }), document.removeEventListener("mousemove", u), document.removeEventListener("mouseup", i), document.removeEventListener("touchmove", h), document.removeEventListener("touchend", i));
67
74
  }
68
75
  return () => {
69
- n.removeEventListener("mousedown", p), a();
76
+ n.removeEventListener("mousedown", p), l(!1), i();
70
77
  };
71
- }, [u]) };
78
+ }, [d]) };
72
79
  }
73
80
  export {
74
- T as useDraggable
81
+ B as useDraggable
75
82
  };
76
83
  //# sourceMappingURL=useDraggable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDraggable.js","sources":["../../../src/components/hooks/useDraggable.ts"],"sourcesContent":["\"use client\";\nimport { useCallback } from \"react\";\n\nexport function useDraggable(enabled: boolean = true) {\n const ref = useCallback((element: HTMLElement | null) => {\n if (!element || !enabled) return;\n \n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let initialLeft = 0;\n let initialTop = 0;\n let rafId: number | null = null;\n\n element.addEventListener(\"mousedown\", dragMouseDown);\n\n function isResizeHandle(target: HTMLElement): boolean {\n // Check if the element or any of its parents is a resize handle\n let current = target;\n while (current && current !== element) {\n // Check for various resize handle indicators\n if (\n current.classList.contains('resize-handle') ||\n current.classList.contains('ds-resizable-resize-handle') ||\n current.getAttribute('data-resize-handle') ||\n current.getAttribute('data-testid')?.includes('resize') ||\n current.getAttribute('data-placement') || // Resizable handles have data-placement\n current.style.cursor?.includes('resize') ||\n // Check for react-use-resizable specific classes/attributes\n current.classList.contains('resizable-handle') ||\n current.hasAttribute('data-resizable-handle') ||\n // Check for common resize cursor styles\n ['n-resize', 's-resize', 'e-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize'].includes(current.style.cursor)\n ) {\n return true;\n }\n current = current.parentElement as HTMLElement;\n }\n return false;\n }\n\n function getElementPosition(el: HTMLElement) {\n const style = window.getComputedStyle(el);\n const matrix = new DOMMatrix(style.transform);\n return {\n x: matrix.m41 || parseInt(style.left) || 0,\n y: matrix.m42 || parseInt(style.top) || 0\n };\n }\n\n function setElementPosition(el: HTMLElement, x: number, y: number) {\n // Use transform for better performance and smoother animation\n el.style.transform = `translate(${x}px, ${y}px)`;\n }\n\n function dragMouseDown(e: MouseEvent) {\n const target = e.target as HTMLElement;\n \n // Check if the click is on a resize handle\n if (isResizeHandle(target)) {\n return; // Don't start dragging\n }\n \n // Let resize handles take priority - if we reach this point and there's a resizable container,\n // we should check if there are actual resize handles present before preventing drag\n if (element.closest('[data-resizable]')) {\n const rect = element.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n const handleSize = 8;\n \n // Only prevent drag if we're near an edge AND there are actual resize handles\n const nearTopEdge = y <= handleSize;\n const nearBottomEdge = y >= rect.height - handleSize;\n const nearLeftEdge = x <= handleSize;\n const nearRightEdge = x >= rect.width - handleSize;\n \n // Check if resize handles exist for the edges we're near\n const hasTopHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"top\"]');\n const hasBottomHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"bottom\"]');\n const hasLeftHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"left\"]');\n const hasRightHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"right\"]');\n \n if (\n (nearTopEdge && hasTopHandle) ||\n (nearBottomEdge && hasBottomHandle) ||\n (nearLeftEdge && hasLeftHandle) ||\n (nearRightEdge && hasRightHandle)\n ) {\n return; // Let resize handle it\n }\n }\n \n e.preventDefault();\n e.stopPropagation();\n \n isDragging = true;\n \n // Store initial mouse position\n startX = e.clientX;\n startY = e.clientY;\n \n // Get initial element position\n const pos = getElementPosition(element);\n initialLeft = pos.x;\n initialTop = pos.y;\n \n // Set initial cursor style and prevent text selection\n document.body.style.cursor = 'grabbing';\n document.body.style.userSelect = 'none';\n \n // Only disable pointer events on content areas, not buttons/interactive elements\n const interactiveElements = element.querySelectorAll('button, a, input, select, textarea, [role=\"button\"]');\n interactiveElements.forEach(el => {\n (el as HTMLElement).style.pointerEvents = 'auto';\n });\n \n // Add move and up listeners\n document.addEventListener(\"mousemove\", elementDrag, { passive: false });\n document.addEventListener(\"mouseup\", closeDragElement);\n \n // Add touch events for mobile support\n document.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n document.addEventListener(\"touchend\", closeDragElement);\n }\n\n function elementDrag(e: MouseEvent) {\n if (!isDragging || !element) return;\n \n e.preventDefault();\n \n // Cancel any previous animation frame\n if (rafId) {\n cancelAnimationFrame(rafId);\n }\n \n // Use requestAnimationFrame for smooth animation\n rafId = requestAnimationFrame(() => {\n const deltaX = e.clientX - startX;\n const deltaY = e.clientY - startY;\n \n const newX = initialLeft + deltaX;\n const newY = initialTop + deltaY;\n \n // Apply position directly without bounds checking\n setElementPosition(element, newX, newY);\n });\n }\n\n function handleTouchMove(e: TouchEvent) {\n if (!isDragging || !element) return;\n \n e.preventDefault();\n \n const touch = e.touches[0];\n if (!touch) return;\n \n // Convert touch event to mouse-like event\n const mouseEvent = new MouseEvent('mousemove', {\n clientX: touch.clientX,\n clientY: touch.clientY,\n bubbles: true\n });\n \n elementDrag(mouseEvent);\n }\n\n function closeDragElement() {\n if (!isDragging) return;\n \n isDragging = false;\n \n // Cancel any pending animation frame\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n \n // Restore styles\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n \n // Restore pointer events for interactive elements\n if (element) {\n const interactiveElements = element.querySelectorAll('button, a, input, select, textarea, [role=\"button\"]');\n interactiveElements.forEach(el => {\n (el as HTMLElement).style.pointerEvents = '';\n });\n }\n \n // Remove event listeners\n document.removeEventListener(\"mousemove\", elementDrag);\n document.removeEventListener(\"mouseup\", closeDragElement);\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", closeDragElement);\n }\n\n // Cleanup function\n return () => {\n element.removeEventListener(\"mousedown\", dragMouseDown);\n closeDragElement();\n };\n }, [enabled]);\n \n return { ref };\n}\n"],"names":["useDraggable","enabled","useCallback","element","isDragging","startX","startY","initialLeft","initialTop","rafId","dragMouseDown","isResizeHandle","target","current","getElementPosition","el","style","matrix","setElementPosition","x","y","e","rect","handleSize","nearTopEdge","nearBottomEdge","nearLeftEdge","nearRightEdge","hasTopHandle","hasBottomHandle","hasLeftHandle","hasRightHandle","pos","elementDrag","closeDragElement","handleTouchMove","deltaX","deltaY","newX","newY","touch","mouseEvent"],"mappings":"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"}
1
+ {"version":3,"file":"useDraggable.js","sources":["../../../src/components/hooks/useDraggable.ts"],"sourcesContent":["\"use client\";\nimport { useCallback } from \"react\";\n\nexport function useDraggable(enabled: boolean = true) {\n const ref = useCallback((element: HTMLElement | null) => {\n if (!element || !enabled) return;\n\n let isDragging = false;\n let startX = 0;\n let startY = 0;\n let initialLeft = 0;\n let initialTop = 0;\n let rafId: number | null = null;\n\n element.addEventListener(\"mousedown\", dragMouseDown);\n\n function setDraggingState(dragging: boolean) {\n if (dragging) {\n element.setAttribute(\"data-dragging\", \"true\");\n return;\n }\n\n element.removeAttribute(\"data-dragging\");\n }\n\n function isResizeHandle(target: HTMLElement): boolean {\n // Check if the element or any of its parents is a resize handle\n let current = target;\n while (current && current !== element) {\n // Check for various resize handle indicators\n if (\n current.classList.contains('resize-handle') ||\n current.classList.contains('ds-resizable-resize-handle') ||\n current.getAttribute('data-resize-handle') ||\n current.getAttribute('data-testid')?.includes('resize') ||\n current.getAttribute('data-placement') || // Resizable handles have data-placement\n current.style.cursor?.includes('resize') ||\n // Check for react-use-resizable specific classes/attributes\n current.classList.contains('resizable-handle') ||\n current.hasAttribute('data-resizable-handle') ||\n // Check for common resize cursor styles\n ['n-resize', 's-resize', 'e-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize'].includes(current.style.cursor)\n ) {\n return true;\n }\n current = current.parentElement as HTMLElement;\n }\n return false;\n }\n\n function getElementPosition(el: HTMLElement) {\n const style = window.getComputedStyle(el);\n const matrix = new DOMMatrix(style.transform);\n return {\n x: matrix.m41 || parseInt(style.left) || 0,\n y: matrix.m42 || parseInt(style.top) || 0\n };\n }\n\n function setElementPosition(el: HTMLElement, x: number, y: number) {\n // Use transform for better performance and smoother animation\n el.style.transform = `translate(${x}px, ${y}px)`;\n }\n\n function dragMouseDown(e: MouseEvent) {\n const target = e.target as HTMLElement;\n\n // Check if the click is on a resize handle\n if (isResizeHandle(target)) {\n return; // Don't start dragging\n }\n\n // Let resize handles take priority - if we reach this point and there's a resizable container,\n // we should check if there are actual resize handles present before preventing drag\n if (element.closest('[data-resizable]')) {\n const rect = element.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n const handleSize = 8;\n\n // Only prevent drag if we're near an edge AND there are actual resize handles\n const nearTopEdge = y <= handleSize;\n const nearBottomEdge = y >= rect.height - handleSize;\n const nearLeftEdge = x <= handleSize;\n const nearRightEdge = x >= rect.width - handleSize;\n\n // Check if resize handles exist for the edges we're near\n const hasTopHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"top\"]');\n const hasBottomHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"bottom\"]');\n const hasLeftHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"left\"]');\n const hasRightHandle = element.querySelector('.ds-resizable-resize-handle[data-placement*=\"right\"]');\n\n if (\n (nearTopEdge && hasTopHandle) ||\n (nearBottomEdge && hasBottomHandle) ||\n (nearLeftEdge && hasLeftHandle) ||\n (nearRightEdge && hasRightHandle)\n ) {\n return; // Let resize handle it\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n isDragging = true;\n setDraggingState(true);\n\n // Store initial mouse position\n startX = e.clientX;\n startY = e.clientY;\n\n // Get initial element position\n const pos = getElementPosition(element);\n initialLeft = pos.x;\n initialTop = pos.y;\n\n // Set initial cursor style and prevent text selection\n document.body.style.cursor = 'grabbing';\n document.body.style.userSelect = 'none';\n\n // Only disable pointer events on content areas, not buttons/interactive elements\n const interactiveElements = element.querySelectorAll('button, a, input, select, textarea, [role=\"button\"]');\n interactiveElements.forEach(el => {\n (el as HTMLElement).style.pointerEvents = 'auto';\n });\n\n // Add move and up listeners\n document.addEventListener(\"mousemove\", elementDrag, { passive: false });\n document.addEventListener(\"mouseup\", closeDragElement);\n\n // Add touch events for mobile support\n document.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n document.addEventListener(\"touchend\", closeDragElement);\n }\n\n function elementDrag(e: MouseEvent) {\n if (!isDragging || !element) return;\n\n e.preventDefault();\n\n // Cancel any previous animation frame\n if (rafId) {\n cancelAnimationFrame(rafId);\n }\n\n // Use requestAnimationFrame for smooth animation\n rafId = requestAnimationFrame(() => {\n const deltaX = e.clientX - startX;\n const deltaY = e.clientY - startY;\n\n const newX = initialLeft + deltaX;\n const newY = initialTop + deltaY;\n\n // Apply position directly without bounds checking\n setElementPosition(element, newX, newY);\n });\n }\n\n function handleTouchMove(e: TouchEvent) {\n if (!isDragging || !element) return;\n\n e.preventDefault();\n\n const touch = e.touches[0];\n if (!touch) return;\n\n // Convert touch event to mouse-like event\n const mouseEvent = new MouseEvent('mousemove', {\n clientX: touch.clientX,\n clientY: touch.clientY,\n bubbles: true\n });\n\n elementDrag(mouseEvent);\n }\n\n function closeDragElement() {\n if (!isDragging) return;\n\n isDragging = false;\n setDraggingState(false);\n\n // Cancel any pending animation frame\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n\n // Restore styles\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n\n // Restore pointer events for interactive elements\n if (element) {\n const interactiveElements = element.querySelectorAll('button, a, input, select, textarea, [role=\"button\"]');\n interactiveElements.forEach(el => {\n (el as HTMLElement).style.pointerEvents = '';\n });\n }\n \n // Remove event listeners\n document.removeEventListener(\"mousemove\", elementDrag);\n document.removeEventListener(\"mouseup\", closeDragElement);\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", closeDragElement);\n }\n\n // Cleanup function\n return () => {\n element.removeEventListener(\"mousedown\", dragMouseDown);\n setDraggingState(false);\n closeDragElement();\n };\n }, [enabled]);\n\n return { ref };\n}\n"],"names":["useDraggable","enabled","useCallback","element","isDragging","startX","startY","initialLeft","initialTop","rafId","dragMouseDown","setDraggingState","dragging","isResizeHandle","target","current","getElementPosition","el","style","matrix","setElementPosition","x","y","e","rect","handleSize","nearTopEdge","nearBottomEdge","nearLeftEdge","nearRightEdge","hasTopHandle","hasBottomHandle","hasLeftHandle","hasRightHandle","pos","elementDrag","closeDragElement","handleTouchMove","deltaX","deltaY","newX","newY","touch","mouseEvent"],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface TextAreaProps extends AntTextAreaProps {
9
9
  export interface SearchProps extends AntSearchProps {
10
10
  }
11
11
  declare const MainInputInner: (props: InputProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
12
- declare const PasswordInner: (props: PasswordProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
12
+ declare const PasswordInner: ({ iconRender, ...rest }: PasswordProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
13
13
  declare const SearchInner: ({ enterButton, onSearch, prefix, onPressEnter, onClear, loading, ...rest }: SearchProps, ref: React.Ref<InputRef>) => import("react/jsx-runtime").JSX.Element;
14
14
  declare const TextAreaInner: (props: TextAreaProps, ref: React.Ref<HTMLTextAreaElement>) => import("react/jsx-runtime").JSX.Element;
15
15
  export declare const Input: ((props: InputProps & {
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/input/component.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EAChC,KAAK,QAAQ,EACd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKvE,OAAO,aAAa,CAAC;AAIrB,MAAM,WAAW,UAAW,SAAQ,aAAa;CAAG;AACpD,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAGtD,QAAA,MAAM,cAAc,GAAI,OAAO,UAAU,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAElE,CAAC;AAGF,QAAA,MAAM,aAAa,GAAI,OAAO,aAAa,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAiBpE,CAAC;AAGF,QAAA,MAAM,WAAW,GACf,4EAQG,WAAW,EACd,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CA6CzB,CAAC;AAGF,QAAA,MAAM,aAAa,GACjB,OAAO,aAAa,EACpB,KAAK,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,4CAGpC,CAAC;AA+BF,eAAO,MAAM,KAAK,WA3BT,UAAU,GAAG;IAClB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CACpC,KACE,UAAU,CAAC,OAAO,cAAc,CAAC;sBAI7B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;oBAI5B,WAAW,GAAG;QACnB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,WAAW,CAAC;sBAI1B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAC/C,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;CAOnC,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/input/component.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EAChC,KAAK,QAAQ,EACd,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,KAAK,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,KAAK,aAAa,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKvE,OAAO,aAAa,CAAC;AAIrB,MAAM,WAAW,UAAW,SAAQ,aAAa;CAAG;AACpD,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,aAAc,SAAQ,gBAAgB;CAAG;AAC1D,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAGtD,QAAA,MAAM,cAAc,GAAI,OAAO,UAAU,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAElE,CAAC;AAGF,QAAA,MAAM,aAAa,GACjB,yBAAyB,aAAa,EACtC,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAsBzB,CAAC;AAGF,QAAA,MAAM,WAAW,GACf,4EAQG,WAAW,EACd,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,4CAkDzB,CAAC;AAGF,QAAA,MAAM,aAAa,GACjB,OAAO,aAAa,EACpB,KAAK,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,4CAGpC,CAAC;AA+BF,eAAO,MAAM,KAAK,WA3BT,UAAU,GAAG;IAClB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;CACpC,KACE,UAAU,CAAC,OAAO,cAAc,CAAC;sBAI7B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;oBAI5B,WAAW,GAAG;QACnB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;KACpC,KACE,UAAU,CAAC,OAAO,WAAW,CAAC;sBAI1B,aAAa,GAAG;QACrB,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAC/C,KACE,UAAU,CAAC,OAAO,aAAa,CAAC;CAOnC,CAAC"}
@@ -1,71 +1,81 @@
1
1
  "use client";
2
2
  import { jsx as e } from "react/jsx-runtime";
3
- import { MagnifyingGlassIcon as p, EyeIcon as x, EyeClosedIcon as C } from "@bioturing/assets";
3
+ import { MagnifyingGlassIcon as f, EyeIcon as x, EyeClosedIcon as z } from "@bioturing/assets";
4
4
  import { Input as o } from "antd";
5
- import { forwardRef as a, useCallback as d, useMemo as P } from "react";
5
+ import { forwardRef as a, useCallback as i, useMemo as I } from "react";
6
6
  import './style.css';/* empty css */
7
- import { useCls as g } from "../utils/antdUtils.js";
8
- import { Spin as h } from "../spin/component.js";
9
- import { IconButton as z } from "../icon-button/component.js";
10
- const M = (s, r) => /* @__PURE__ */ e(o, { ref: r, ...s }), T = (s, r) => {
11
- const t = P(() => ({
12
- iconRender: (n) => /* @__PURE__ */ e(
13
- z,
7
+ import { useCls as M } from "../utils/antdUtils.js";
8
+ import { Spin as T } from "../spin/component.js";
9
+ import { IconButton as y } from "../icon-button/component.js";
10
+ const A = (n, r) => /* @__PURE__ */ e(o, { ref: r, ...n }), E = ({ iconRender: n, ...r }, s) => {
11
+ const c = i(
12
+ (t) => /* @__PURE__ */ e(
13
+ y,
14
14
  {
15
15
  size: "small",
16
- label: n ? "Hide password" : "Show password",
17
- children: n ? /* @__PURE__ */ e(x, {}) : /* @__PURE__ */ e(C, {})
16
+ label: t ? "Hide password" : "Show password",
17
+ children: t ? /* @__PURE__ */ e(x, {}) : /* @__PURE__ */ e(z, {})
18
18
  }
19
19
  ),
20
- ...s
21
- }), [s]);
22
- return /* @__PURE__ */ e(o.Password, { ref: r, ...t });
23
- }, y = ({
24
- enterButton: s = !1,
20
+ []
21
+ );
22
+ return /* @__PURE__ */ e(
23
+ o.Password,
24
+ {
25
+ ref: s,
26
+ iconRender: n ?? c,
27
+ ...r
28
+ }
29
+ );
30
+ }, R = ({
31
+ enterButton: n = !1,
25
32
  onSearch: r,
26
- prefix: t,
27
- onPressEnter: n,
28
- onClear: c,
29
- loading: i,
30
- ...u
31
- }, l) => {
32
- const I = g(), f = d(
33
- (m) => {
34
- r?.(m.currentTarget.value, m, { source: "input" });
33
+ prefix: s,
34
+ onPressEnter: c,
35
+ onClear: t,
36
+ loading: u,
37
+ ...l
38
+ }, m) => {
39
+ const p = M(), w = i(
40
+ (d) => {
41
+ r?.(d.currentTarget.value, d, { source: "input" });
35
42
  },
36
43
  [r]
37
- ), w = d(() => {
44
+ ), P = i(() => {
38
45
  r?.("", void 0, { source: "clear" });
39
- }, [r]);
40
- return s === !1 ? /* @__PURE__ */ e(
46
+ }, [r]), C = I(() => s || (u ? /* @__PURE__ */ e(T, { size: 16 }) : /* @__PURE__ */ e(f, { size: 16, className: p("input-search-icon") })), [s, u, p]), h = I(
47
+ () => n === !0 ? /* @__PURE__ */ e(f, { size: 16 }) : n,
48
+ [n]
49
+ );
50
+ return n === !1 ? /* @__PURE__ */ e(
41
51
  o,
42
52
  {
43
- ref: l,
44
- prefix: t || (i ? /* @__PURE__ */ e(h, { size: 16 }) : /* @__PURE__ */ e(p, { size: 16, className: I("input-search-icon") })),
45
- onPressEnter: n || f,
46
- onClear: c || w,
53
+ ref: m,
54
+ prefix: C,
55
+ onPressEnter: c || w,
56
+ onClear: t || P,
47
57
  allowClear: !0,
48
- ...u
58
+ ...l
49
59
  }
50
60
  ) : /* @__PURE__ */ e(
51
61
  o.Search,
52
62
  {
53
- ref: l,
54
- prefix: t,
55
- onPressEnter: n,
63
+ ref: m,
64
+ prefix: s,
65
+ onPressEnter: c,
56
66
  onSearch: r,
57
- onClear: c,
58
- loading: i,
59
- enterButton: s === !0 ? /* @__PURE__ */ e(p, { size: 16 }) : s,
60
- ...u
67
+ onClear: t,
68
+ loading: u,
69
+ enterButton: h,
70
+ ...l
61
71
  }
62
72
  );
63
- }, A = (s, r) => /* @__PURE__ */ e(o.TextArea, { ref: r, ...s }), E = a(M), b = a(T), j = a(y), R = a(A), v = Object.assign(E, {
64
- Password: b,
65
- Search: j,
66
- TextArea: R
73
+ }, b = (n, r) => /* @__PURE__ */ e(o.TextArea, { ref: r, ...n }), g = a(A), j = a(E), k = a(R), G = a(b), D = Object.assign(g, {
74
+ Password: j,
75
+ Search: k,
76
+ TextArea: G
67
77
  });
68
78
  export {
69
- v as Input
79
+ D as Input
70
80
  };
71
81
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/input/component.tsx"],"sourcesContent":["\"use client\";\nimport { EyeIcon, EyeClosedIcon, MagnifyingGlassIcon } from \"@bioturing/assets\";\nimport {\n Input as AntInput,\n type InputProps as AntInputProps,\n type InputRef,\n} from \"antd\";\nimport { type PasswordProps as AntPasswordProps } from \"antd/es/input\";\nimport { type SearchProps as AntSearchProps } from \"antd/es/input\";\nimport { type TextAreaProps as AntTextAreaProps } from \"antd/es/input\";\nimport { forwardRef, useCallback, useMemo } from \"react\";\nimport { useCls } from \"../utils\";\nimport { Spin } from \"../spin\";\n\nimport \"./style.css\";\nimport { IconButton } from \"../icon-button\";\n\n// Define props interfaces\nexport interface InputProps extends AntInputProps {}\nexport interface PasswordProps extends AntPasswordProps {}\nexport interface TextAreaProps extends AntTextAreaProps {}\nexport interface SearchProps extends AntSearchProps {}\n\n// Create inner function for main Input\nconst MainInputInner = (props: InputProps, ref: React.Ref<InputRef>) => {\n return <AntInput ref={ref} {...props} />;\n};\n\n// Create inner function for Password\nconst PasswordInner = (props: PasswordProps, ref: React.Ref<InputRef>) => {\n // Apply default iconRender unless overridden by props\n const mergedProps = useMemo(() => {\n return {\n iconRender: (visible: boolean) => (\n <IconButton\n size=\"small\"\n label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? <EyeIcon /> : <EyeClosedIcon />}\n </IconButton>\n ),\n ...props,\n };\n }, [props]);\n\n return <AntInput.Password ref={ref} {...mergedProps} />;\n};\n\n// Create inner function for Search\nconst SearchInner = (\n {\n enterButton = false,\n onSearch,\n prefix,\n onPressEnter,\n onClear,\n loading,\n ...rest\n }: SearchProps,\n ref: React.Ref<InputRef>\n) => {\n const cls = useCls();\n\n const handlePressEnter = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n onSearch?.(event.currentTarget.value, event, { source: \"input\" });\n },\n [onSearch]\n );\n\n const handleClear = useCallback(() => {\n onSearch?.(\"\", undefined, { source: \"clear\" });\n }, [onSearch]);\n\n return enterButton === false ? (\n <AntInput\n ref={ref}\n prefix={\n prefix ||\n (loading ? (\n <Spin size={16} />\n ) : (\n <MagnifyingGlassIcon size={16} className={cls(\"input-search-icon\")} />\n ))\n }\n onPressEnter={onPressEnter || handlePressEnter}\n onClear={onClear || handleClear}\n allowClear\n {...rest}\n />\n ) : (\n <AntInput.Search\n ref={ref}\n prefix={prefix}\n onPressEnter={onPressEnter}\n onSearch={onSearch}\n onClear={onClear}\n loading={loading}\n enterButton={\n enterButton === true ? <MagnifyingGlassIcon size={16} /> : enterButton\n }\n {...rest}\n />\n );\n};\n\n// Create inner function for TextArea\nconst TextAreaInner = (\n props: TextAreaProps,\n ref: React.Ref<HTMLTextAreaElement>\n) => {\n return <AntInput.TextArea ref={ref} {...props} />;\n};\n\n// Use forwardRef with type assertion for main Input\nconst MainInput = forwardRef(MainInputInner) as (\n props: InputProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof MainInputInner>;\n\n// Use forwardRef with type assertion for Password\nconst Password = forwardRef(PasswordInner) as (\n props: PasswordProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof PasswordInner>;\n\n// Use forwardRef with type assertion for Search\nconst Search = forwardRef(SearchInner) as (\n props: SearchProps & {\n ref?: React.ForwardedRef<InputRef>;\n }\n) => ReturnType<typeof SearchInner>;\n\n// Use forwardRef with type assertion for TextArea\nconst TextArea = forwardRef(TextAreaInner) as (\n props: TextAreaProps & {\n ref?: React.ForwardedRef<HTMLTextAreaElement>;\n }\n) => ReturnType<typeof TextAreaInner>;\n\n// Export the final composed component\nexport const Input = Object.assign(MainInput, {\n Password,\n Search,\n TextArea,\n});\n"],"names":["MainInputInner","props","ref","jsx","AntInput","PasswordInner","mergedProps","useMemo","visible","IconButton","EyeIcon","EyeClosedIcon","SearchInner","enterButton","onSearch","prefix","onPressEnter","onClear","loading","rest","cls","useCls","handlePressEnter","useCallback","event","handleClear","Spin","MagnifyingGlassIcon","TextAreaInner","MainInput","forwardRef","Password","Search","TextArea","Input"],"mappings":";;;;;;;;;AAwBA,MAAMA,IAAiB,CAACC,GAAmBC,MAClC,gBAAAC,EAACC,GAAA,EAAS,KAAAF,GAAW,GAAGD,EAAA,CAAO,GAIlCI,IAAgB,CAACJ,GAAsBC,MAA6B;AAExE,QAAMI,IAAcC,EAAQ,OACnB;AAAA,IACL,YAAY,CAACC,MACX,gBAAAL;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOD,IAAU,kBAAkB;AAAA,QAElC,UAAAA,IAAU,gBAAAL,EAACO,GAAA,CAAA,CAAQ,sBAAMC,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAG5C,GAAGV;AAAA,EAAA,IAEJ,CAACA,CAAK,CAAC;AAEV,2BAAQG,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGI,GAAa;AACvD,GAGMM,IAAc,CAClB;AAAA,EACE,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GACAjB,MACG;AACH,QAAMkB,IAAMC,EAAA,GAENC,IAAmBC;AAAA,IACvB,CAACC,MAAiD;AAChD,MAAAV,IAAWU,EAAM,cAAc,OAAOA,GAAO,EAAE,QAAQ,SAAS;AAAA,IAClE;AAAA,IACA,CAACV,CAAQ;AAAA,EAAA,GAGLW,IAAcF,EAAY,MAAM;AACpC,IAAAT,IAAW,IAAI,QAAW,EAAE,QAAQ,SAAS;AAAA,EAC/C,GAAG,CAACA,CAAQ,CAAC;AAEb,SAAOD,MAAgB,KACrB,gBAAAV;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,QACEa,MACCG,IACC,gBAAAf,EAACuB,KAAK,MAAM,IAAI,IAEhB,gBAAAvB,EAACwB,KAAoB,MAAM,IAAI,WAAWP,EAAI,mBAAmB,EAAA,CAAG;AAAA,MAGxE,cAAcJ,KAAgBM;AAAA,MAC9B,SAASL,KAAWQ;AAAA,MACpB,YAAU;AAAA,MACT,GAAGN;AAAA,IAAA;AAAA,EAAA,IAGN,gBAAAhB;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,KAAAF;AAAA,MACA,QAAAa;AAAA,MACA,cAAAC;AAAA,MACA,UAAAF;AAAA,MACA,SAAAG;AAAA,MACA,SAAAC;AAAA,MACA,aACEL,MAAgB,uBAAQc,GAAA,EAAoB,MAAM,IAAI,IAAKd;AAAA,MAE5D,GAAGM;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMS,IAAgB,CACpB3B,GACAC,wBAEQE,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGD,GAAO,GAI3C4B,IAAYC,EAAW9B,CAAc,GAOrC+B,IAAWD,EAAWzB,CAAa,GAOnC2B,IAASF,EAAWlB,CAAW,GAO/BqB,IAAWH,EAAWF,CAAa,GAO5BM,IAAQ,OAAO,OAAOL,GAAW;AAAA,EAC5C,UAAAE;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,CAAC;"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/input/component.tsx"],"sourcesContent":["\"use client\";\nimport { EyeIcon, EyeClosedIcon, MagnifyingGlassIcon } from \"@bioturing/assets\";\nimport {\n Input as AntInput,\n type InputProps as AntInputProps,\n type InputRef,\n} from \"antd\";\nimport { type PasswordProps as AntPasswordProps } from \"antd/es/input\";\nimport { type SearchProps as AntSearchProps } from \"antd/es/input\";\nimport { type TextAreaProps as AntTextAreaProps } from \"antd/es/input\";\nimport { forwardRef, useCallback, useMemo } from \"react\"; // useMemo still used in SearchInner\nimport { useCls } from \"../utils\";\nimport { Spin } from \"../spin\";\n\nimport \"./style.css\";\nimport { IconButton } from \"../icon-button\";\n\n// Define props interfaces\nexport interface InputProps extends AntInputProps {}\nexport interface PasswordProps extends AntPasswordProps {}\nexport interface TextAreaProps extends AntTextAreaProps {}\nexport interface SearchProps extends AntSearchProps {}\n\n// Create inner function for main Input\nconst MainInputInner = (props: InputProps, ref: React.Ref<InputRef>) => {\n return <AntInput ref={ref} {...props} />;\n};\n\n// Create inner function for Password\nconst PasswordInner = (\n { iconRender, ...rest }: PasswordProps,\n ref: React.Ref<InputRef>,\n) => {\n // Apply default iconRender unless overridden by props\n const defaultIconRender = useCallback(\n (visible: boolean) => (\n <IconButton\n size=\"small\"\n label={visible ? \"Hide password\" : \"Show password\"}\n >\n {visible ? <EyeIcon /> : <EyeClosedIcon />}\n </IconButton>\n ),\n [],\n );\n\n return (\n <AntInput.Password\n ref={ref}\n iconRender={iconRender ?? defaultIconRender}\n {...rest}\n />\n );\n};\n\n// Create inner function for Search\nconst SearchInner = (\n {\n enterButton = false,\n onSearch,\n prefix,\n onPressEnter,\n onClear,\n loading,\n ...rest\n }: SearchProps,\n ref: React.Ref<InputRef>,\n) => {\n const cls = useCls();\n\n const handlePressEnter = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n onSearch?.(event.currentTarget.value, event, { source: \"input\" });\n },\n [onSearch],\n );\n\n const handleClear = useCallback(() => {\n onSearch?.(\"\", undefined, { source: \"clear\" });\n }, [onSearch]);\n\n const defaultPrefix = useMemo(() => {\n if (prefix) return prefix;\n if (loading) return <Spin size={16} />;\n return (\n <MagnifyingGlassIcon size={16} className={cls(\"input-search-icon\")} />\n );\n }, [prefix, loading, cls]);\n\n const enterButtonProp = useMemo(\n () =>\n enterButton === true ? <MagnifyingGlassIcon size={16} /> : enterButton,\n [enterButton],\n );\n\n return enterButton === false ? (\n <AntInput\n ref={ref}\n prefix={defaultPrefix}\n onPressEnter={onPressEnter || handlePressEnter}\n onClear={onClear || handleClear}\n allowClear\n {...rest}\n />\n ) : (\n <AntInput.Search\n ref={ref}\n prefix={prefix}\n onPressEnter={onPressEnter}\n onSearch={onSearch}\n onClear={onClear}\n loading={loading}\n enterButton={enterButtonProp}\n {...rest}\n />\n );\n};\n\n// Create inner function for TextArea\nconst TextAreaInner = (\n props: TextAreaProps,\n ref: React.Ref<HTMLTextAreaElement>,\n) => {\n return <AntInput.TextArea ref={ref} {...props} />;\n};\n\n// Use forwardRef with type assertion for main Input\nconst MainInput = forwardRef(MainInputInner) as (\n props: InputProps & {\n ref?: React.ForwardedRef<InputRef>;\n },\n) => ReturnType<typeof MainInputInner>;\n\n// Use forwardRef with type assertion for Password\nconst Password = forwardRef(PasswordInner) as (\n props: PasswordProps & {\n ref?: React.ForwardedRef<InputRef>;\n },\n) => ReturnType<typeof PasswordInner>;\n\n// Use forwardRef with type assertion for Search\nconst Search = forwardRef(SearchInner) as (\n props: SearchProps & {\n ref?: React.ForwardedRef<InputRef>;\n },\n) => ReturnType<typeof SearchInner>;\n\n// Use forwardRef with type assertion for TextArea\nconst TextArea = forwardRef(TextAreaInner) as (\n props: TextAreaProps & {\n ref?: React.ForwardedRef<HTMLTextAreaElement>;\n },\n) => ReturnType<typeof TextAreaInner>;\n\n// Export the final composed component\nexport const Input = Object.assign(MainInput, {\n Password,\n Search,\n TextArea,\n});\n"],"names":["MainInputInner","props","ref","jsx","AntInput","PasswordInner","iconRender","rest","defaultIconRender","useCallback","visible","IconButton","EyeIcon","EyeClosedIcon","SearchInner","enterButton","onSearch","prefix","onPressEnter","onClear","loading","cls","useCls","handlePressEnter","event","handleClear","defaultPrefix","useMemo","Spin","MagnifyingGlassIcon","enterButtonProp","TextAreaInner","MainInput","forwardRef","Password","Search","TextArea","Input"],"mappings":";;;;;;;;;AAwBA,MAAMA,IAAiB,CAACC,GAAmBC,MAClC,gBAAAC,EAACC,GAAA,EAAS,KAAAF,GAAW,GAAGD,EAAA,CAAO,GAIlCI,IAAgB,CACpB,EAAE,YAAAC,GAAY,GAAGC,EAAA,GACjBL,MACG;AAEH,QAAMM,IAAoBC;AAAA,IACxB,CAACC,MACC,gBAAAP;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOD,IAAU,kBAAkB;AAAA,QAElC,UAAAA,IAAU,gBAAAP,EAACS,GAAA,CAAA,CAAQ,sBAAMC,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAG5C,CAAA;AAAA,EAAC;AAGH,SACE,gBAAAV;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,KAAAF;AAAA,MACA,YAAYI,KAAcE;AAAA,MACzB,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMO,IAAc,CAClB;AAAA,EACE,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGb;AACL,GACAL,MACG;AACH,QAAMmB,IAAMC,EAAA,GAENC,IAAmBd;AAAA,IACvB,CAACe,MAAiD;AAChD,MAAAR,IAAWQ,EAAM,cAAc,OAAOA,GAAO,EAAE,QAAQ,SAAS;AAAA,IAClE;AAAA,IACA,CAACR,CAAQ;AAAA,EAAA,GAGLS,IAAchB,EAAY,MAAM;AACpC,IAAAO,IAAW,IAAI,QAAW,EAAE,QAAQ,SAAS;AAAA,EAC/C,GAAG,CAACA,CAAQ,CAAC,GAEPU,IAAgBC,EAAQ,MACxBV,MACAG,IAAgB,gBAAAjB,EAACyB,GAAA,EAAK,MAAM,IAAI,sBAEjCC,GAAA,EAAoB,MAAM,IAAI,WAAWR,EAAI,mBAAmB,GAAG,IAErE,CAACJ,GAAQG,GAASC,CAAG,CAAC,GAEnBS,IAAkBH;AAAA,IACtB,MACEZ,MAAgB,uBAAQc,GAAA,EAAoB,MAAM,IAAI,IAAKd;AAAA,IAC7D,CAACA,CAAW;AAAA,EAAA;AAGd,SAAOA,MAAgB,KACrB,gBAAAZ;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,QAAQwB;AAAA,MACR,cAAcR,KAAgBK;AAAA,MAC9B,SAASJ,KAAWM;AAAA,MACpB,YAAU;AAAA,MACT,GAAGlB;AAAA,IAAA;AAAA,EAAA,IAGN,gBAAAJ;AAAA,IAACC,EAAS;AAAA,IAAT;AAAA,MACC,KAAAF;AAAA,MACA,QAAAe;AAAA,MACA,cAAAC;AAAA,MACA,UAAAF;AAAA,MACA,SAAAG;AAAA,MACA,SAAAC;AAAA,MACA,aAAaU;AAAA,MACZ,GAAGvB;AAAA,IAAA;AAAA,EAAA;AAGV,GAGMwB,IAAgB,CACpB9B,GACAC,wBAEQE,EAAS,UAAT,EAAkB,KAAAF,GAAW,GAAGD,GAAO,GAI3C+B,IAAYC,EAAWjC,CAAc,GAOrCkC,IAAWD,EAAW5B,CAAa,GAOnC8B,IAASF,EAAWnB,CAAW,GAO/BsB,IAAWH,EAAWF,CAAa,GAO5BM,IAAQ,OAAO,OAAOL,GAAW;AAAA,EAC5C,UAAAE;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AACF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IACjE;;;;;;;;;OASG;IACH,IAAI,CAAC,EACD,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,eAAO,MAAM,KAAK,GAAI,ibAkCnB,UAAU,4CA4PZ,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,UAAU,IAAI,aAAa,EACjC,MAAM,eAAe,CAAC;AAEvB,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;IACjE;;;;;;;;;OASG;IACH,IAAI,CAAC,EACD,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,SAAS,GACT,YAAY,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;OAEG;IACH,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAGD,eAAO,MAAM,KAAK,GAAI,ibAkCnB,UAAU,4CAqSZ,CAAC"}