@datability/8ui 1.5.2 → 1.5.3

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 (40) hide show
  1. package/dist/index.es.js.map +1 -1
  2. package/dist/index.umd.js.map +1 -1
  3. package/dist/types/components/input/auto-complete/index.d.ts +2 -2
  4. package/dist/types/components/input/auto-complete/index.type.d.ts +2 -1
  5. package/dist/types/components/input/checkbox/index.d.ts +2 -2
  6. package/dist/types/components/input/checkbox/index.type.d.ts +4 -4
  7. package/dist/types/components/input/date-input/index.d.ts +2 -2
  8. package/dist/types/components/input/date-input/index.type.d.ts +2 -1
  9. package/dist/types/components/input/date-range-input/index.d.ts +2 -2
  10. package/dist/types/components/input/date-range-input/index.type.d.ts +2 -1
  11. package/dist/types/components/input/date-time-input/index.d.ts +2 -2
  12. package/dist/types/components/input/date-time-input/index.type.d.ts +2 -1
  13. package/dist/types/components/input/input-base/index.type.d.ts +4 -4
  14. package/dist/types/components/input/multi-select/index.d.ts +2 -2
  15. package/dist/types/components/input/multi-select/index.type.d.ts +2 -1
  16. package/dist/types/components/input/number-input/index.d.ts +2 -2
  17. package/dist/types/components/input/number-input/index.type.d.ts +2 -1
  18. package/dist/types/components/input/password-input/index.d.ts +2 -2
  19. package/dist/types/components/input/password-input/index.type.d.ts +2 -1
  20. package/dist/types/components/input/phone-input/index.d.ts +2 -2
  21. package/dist/types/components/input/phone-input/index.type.d.ts +2 -1
  22. package/dist/types/components/input/radio-button/index.d.ts +2 -2
  23. package/dist/types/components/input/radio-button/index.type.d.ts +4 -4
  24. package/dist/types/components/input/range-slider/index.d.ts +2 -2
  25. package/dist/types/components/input/range-slider/index.type.d.ts +4 -4
  26. package/dist/types/components/input/select/index.d.ts +2 -2
  27. package/dist/types/components/input/select/index.type.d.ts +2 -1
  28. package/dist/types/components/input/slider/index.d.ts +2 -2
  29. package/dist/types/components/input/slider/index.type.d.ts +4 -4
  30. package/dist/types/components/input/text-input/index.d.ts +2 -2
  31. package/dist/types/components/input/text-input/index.type.d.ts +2 -1
  32. package/dist/types/components/input/textarea/index.d.ts +2 -2
  33. package/dist/types/components/input/textarea/index.type.d.ts +2 -1
  34. package/dist/types/components/input/toggle/index.d.ts +2 -2
  35. package/dist/types/components/input/toggle/index.type.d.ts +4 -4
  36. package/dist/types/components/quantity/index.d.ts +2 -2
  37. package/dist/types/components/quantity/index.type.d.ts +4 -4
  38. package/dist/types/components/search-bar/index.d.ts +2 -2
  39. package/dist/types/components/search-bar/index.type.d.ts +4 -4
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/components/typography/index.tsx","../src/components/avatars/index.tsx","../src/components/avatar-group/index.tsx","../src/components/counter-label/index.tsx","../src/components/button/index.tsx","../src/components/button-icon/index.tsx","../node_modules/react-hook-form/dist/index.esm.mjs","../src/components/input/input-base/index.tsx","../src/components/input/text-input/index.tsx","../src/components/input/number-input/index.tsx","../src/components/assets/flag-th.tsx","../src/components/input/phone-input/index.tsx","../src/components/assets/eye.tsx","../src/components/assets/eye-off.tsx","../src/components/input/password-input/index.tsx","../src/components/input/textarea/index.tsx","../src/components/menu/position.ts","../src/components/menu/useMenuDropdown.ts","../src/components/assets/chevron-right.tsx","../src/components/menu/index.tsx","../src/components/loading/index.tsx","../src/components/assets/chevron-down.tsx","../src/components/input/select/index.tsx","../src/components/assets/chevron-left.tsx","../src/components/calendar/index.tsx","../src/components/assets/calendar.tsx","../src/components/input/date-utils.ts","../src/components/input/date-input/index.tsx","../src/components/input/date-time-input/index.tsx","../src/components/input/date-range-input/index.tsx","../src/components/assets/search.tsx","../src/components/assets/x-circle-fill.tsx","../src/components/search-bar/index.tsx","../src/components/assets/icon-checkmark.tsx","../src/components/assets/bar.tsx","../src/components/input/checkbox/index.tsx","../src/components/input/radio-button/index.tsx","../src/components/input/auto-complete/index.tsx","../src/components/on-remove/index.tsx","../src/components/chip/index.tsx","../src/components/input/multi-select/index.tsx","../src/components/input/toggle/index.tsx","../src/components/overlay/useOverlay.ts","../src/components/modal/index.tsx","../src/components/dialog-box/index.tsx","../src/components/assets/info-circle-fill.tsx","../src/components/assets/check-circle-fill.tsx","../src/components/assets/warning-fill.tsx","../src/components/toast/store.ts","../src/components/toast/index.tsx","../src/components/toast/toast.ts","../src/components/assets/star-fill.tsx","../src/components/rate/index.tsx","../src/components/tooltip/index.tsx","../src/components/assets/plus.tsx","../src/components/assets/minus.tsx","../src/components/assets/trash.tsx","../src/components/quantity/index.tsx","../src/components/breadcrumbs/index.tsx","../src/components/progress-bar/index.tsx","../src/components/assets/upload-simple.tsx","../src/components/file-uploader/index.tsx","../src/components/assets/inbox.tsx","../src/components/assets/file-earmark.tsx","../src/components/assets/image-broken.tsx","../src/components/upload-list-item/index.tsx","../src/components/upload-dragger/index.tsx","../src/components/assets/empty-basic.tsx","../src/components/assets/empty-simple.tsx","../src/components/empty/index.tsx","../src/components/tabs/index.tsx","../src/components/tag/index.tsx","../src/components/assets/heart-fill.tsx","../src/components/assets/heart-outline.tsx","../src/components/favorite/index.tsx","../src/components/slider/index.tsx","../src/components/input/slider/index.tsx","../src/components/input/range-slider/index.tsx","../src/components/assets/images.tsx","../src/components/user-profile/index.tsx","../src/components/assets/dots-six-vertical.tsx","../src/components/assets/folder-closed.tsx","../src/components/assets/folder-open.tsx","../src/components/tree-folder-right/index.tsx","../src/components/tree-folder-left/index.tsx","../src/components/tree-folder/index.tsx","../src/components/battery/index.tsx","../src/components/assets/arrow-left.tsx","../src/components/assets/arrow-right.tsx","../src/components/pagination/index.tsx","../src/components/table/index.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import React from \"react\"\nimport type { PropsTypography, TypographyWeight } from \"./index.type\"\n\nconst weightValue: Record<TypographyWeight, number> = {\n bold: 700,\n semibold: 600,\n medium: 500,\n text: 400,\n light: 300,\n thin: 100,\n}\n\nconst createTypography = (\n defaultTag: React.ElementType,\n className: string,\n baselinePrefix: string,\n defaultWeight: TypographyWeight,\n) => {\n const Component: React.FC<PropsTypography> = ({ as, children, className: extraClass, style, weight }) => {\n const Tag = as || defaultTag\n const w = weight || defaultWeight\n const fontStyle: React.CSSProperties = {\n fontFamily: \"var(--typographyFontFamilyPlain), sans-serif\",\n fontSize: `var(--${baselinePrefix}FontSize)`,\n lineHeight: `var(--${baselinePrefix}LineHeight)`,\n fontWeight: weightValue[w],\n ...style,\n }\n const classes = [className, extraClass].filter(Boolean).join(\" \")\n return (\n <Tag className={classes} style={fontStyle}>\n {children}\n </Tag>\n )\n }\n return Component\n}\n\n// Display\nexport const Display1 = createTypography(\"p\", \"DBui-typography-display1\", \"baselineDisplay1\", \"bold\")\nexport const Display2 = createTypography(\"p\", \"DBui-typography-display2\", \"baselineDisplay2\", \"bold\")\nexport const Display3 = createTypography(\"p\", \"DBui-typography-display3\", \"baselineDisplay3\", \"bold\")\nexport const Display4 = createTypography(\"p\", \"DBui-typography-display4\", \"baselineDisplay4\", \"bold\")\n\n// Headings\nexport const H1 = createTypography(\"h1\", \"DBui-typography-heading1\", \"baselineH1\", \"bold\")\nexport const H2 = createTypography(\"h2\", \"DBui-typography-heading2\", \"baselineH2\", \"bold\")\nexport const H3 = createTypography(\"h3\", \"DBui-typography-heading3\", \"baselineH3\", \"bold\")\nexport const H4 = createTypography(\"h4\", \"DBui-typography-heading4\", \"baselineH4\", \"bold\")\nexport const H5 = createTypography(\"h5\", \"DBui-typography-heading5\", \"baselineH5\", \"bold\")\nexport const H6 = createTypography(\"h6\", \"DBui-typography-heading6\", \"baselineH6\", \"bold\")\n\n// Body\nexport const Title = createTypography(\"p\", \"DBui-typography-title\", \"baselineTitle\", \"semibold\")\nexport const Subtitle = createTypography(\"p\", \"DBui-typography-subtitle\", \"baselineSubtitle\", \"semibold\")\nexport const LabelLg = createTypography(\"p\", \"DBui-typography-body\", \"baselineLabelLg\", \"text\")\nexport const LabelMd = createTypography(\"span\", \"DBui-typography-text\", \"baselineLabelMd\", \"text\")\nexport const LabelSm = createTypography(\"span\", \"DBui-typography-caption\", \"baselineLabelSm\", \"text\")\nexport const Paragraph = createTypography(\"p\", \"DBui-typography-paragraph\", \"baselineParagraph\", \"text\")\n\n// Caption\nexport const CaptionLg = createTypography(\"span\", \"DBui-typography-captionLg\", \"baselineCaptionLg\", \"text\")\nexport const CaptionMd = createTypography(\"span\", \"DBui-typography-captionMd\", \"baselineCaptionMd\", \"text\")\nexport const CaptionSm = createTypography(\"span\", \"DBui-typography-captionSm\", \"baselineCaptionSm\", \"text\")\nexport const CaptionXs = createTypography(\"span\", \"DBui-typography-captionXs\", \"baselineCaptionXs\", \"text\")\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelLg, H4, H6, Subtitle, Title } from \"../typography\"\n\n// Include in project\nimport type { PropsAvatars, AvatarsSize } from \"./index.type\"\nimport \"./index.scss\"\n\nconst initialBySize: Record<AvatarsSize, { Component: React.FC<{ children?: React.ReactNode; weight?: \"medium\" }> }> = {\n sm: { Component: LabelLg },\n md: { Component: Subtitle },\n lg: { Component: Title },\n xl: { Component: H6 },\n \"2xl\": { Component: H4 },\n}\n\nconst Avatars: React.FC<PropsAvatars> = ({ size = \"md\", type = \"image\", src, initial = \"\", className, style }) => {\n const { Component: InitialText } = initialBySize[size]\n\n return (\n <div\n className={`DBui-avatars ${className ? className : \"\"}`}\n style={style ? style : {}}\n data-size={size}\n data-type={type}\n >\n {type === \"image\" && <img src={src} alt=\"\" className=\"DBui-avatarsImage\" />}\n {type === \"initial\" && <InitialText weight=\"medium\">{initial.charAt(0)}</InitialText>}\n </div>\n )\n}\n\nexport default Avatars\n","// Lib\nimport React from \"react\"\n\n// Components\nimport Avatars from \"../avatars\"\nimport { LabelMd } from \"../typography\"\n\n// Include in project\nimport type { PropsAvatarGroup } from \"./index.type\"\nimport \"./index.scss\"\n\nconst AvatarGroup: React.FC<PropsAvatarGroup> = ({\n items,\n type = \"spaced\",\n size = \"2xl\",\n max = 3,\n className,\n style,\n}) => {\n const visible = items.slice(0, max)\n const overflow = items.length - max\n\n return (\n <div className={`DBui-avatarGroup ${className ? className : \"\"}`} style={style ? style : {}} data-type={type}>\n {visible.map((item, index) => (\n <Avatars\n key={index}\n className=\"DBui-avatarGroupItem\"\n size={size}\n type={item.src ? \"image\" : \"initial\"}\n src={item.src}\n initial={item.initial}\n />\n ))}\n {overflow > 0 && (\n <div className=\"DBui-avatarGroupOverflow\" data-size={size}>\n <LabelMd weight=\"medium\">+{overflow}</LabelMd>\n </div>\n )}\n </div>\n )\n}\n\nexport default AvatarGroup\n","import React from \"react\"\n\nimport { CaptionMd, Paragraph, LabelMd, LabelLg } from \"../typography\"\nimport type { PropsTypography } from \"../typography/index.type\"\n\nimport \"./index.scss\"\nimport type { PropsCounterLabel, CounterLabelSize } from \"./index.type\"\n\nconst TypoBySize: Record<CounterLabelSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst CounterLabel: React.FC<PropsCounterLabel> = ({ children, shape = \"circle\", size = \"sm\", type = \"default\" }) => {\n const Typo = TypoBySize[size]\n\n return (\n <span className=\"DBui-counterLabel\" data-shape={shape} data-size={size} data-type={type}>\n <Typo as=\"span\" weight=\"semibold\" className=\"DBui-counterLabelText\">\n {children}\n </Typo>\n </span>\n )\n}\n\nexport default CounterLabel\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelMd, LabelLg } from \"../typography\"\nimport CounterLabel from \"../counter-label\"\nimport type { CounterLabelSize } from \"../counter-label/index.type\"\n\n// Include in project\nimport type { PropsButton, ButtonSize } from \"./index.type\"\nimport \"./index.scss\"\n\nconst LabelBySize: Record<ButtonSize, React.FC<{ children?: React.ReactNode; weight?: \"semibold\" }>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: LabelLg,\n}\n\nconst CounterSizeByButtonSize: Record<ButtonSize, CounterLabelSize> = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\",\n}\n\nconst Button: React.FC<PropsButton> = ({\n children,\n name,\n type = \"button\",\n variant = \"default\",\n color = \"primary\",\n size = \"md\",\n disabled = false,\n onClick,\n startIcon: StartIcon,\n endIcon: EndIcon,\n className,\n style,\n isLoading = false,\n count,\n}) => {\n const isDisabled = isLoading || disabled || color === \"disabled\"\n const Label = LabelBySize[size]\n\n return (\n <button\n type={type}\n className={`DBui-button ${className ? className : \"\"}`}\n onClick={onClick}\n disabled={isDisabled}\n style={style ? style : {}}\n data-variant={variant}\n data-color={color}\n data-size={size}\n >\n {isLoading ? (\n <div className=\"DBui-buttonLoader\" />\n ) : (\n <>\n {StartIcon && (\n <span className=\"DBui-buttonIcon\">\n {typeof StartIcon === \"string\" ? <img src={StartIcon} alt=\"\" /> : <StartIcon />}\n </span>\n )}\n <Label weight=\"semibold\">{children || name}</Label>\n {count !== undefined && (\n <CounterLabel shape=\"circle\" size={CounterSizeByButtonSize[size]} type=\"brand-tertiary\">\n {count}\n </CounterLabel>\n )}\n {EndIcon && (\n <span className=\"DBui-buttonIcon\">\n {typeof EndIcon === \"string\" ? <img src={EndIcon} alt=\"\" /> : <EndIcon />}\n </span>\n )}\n </>\n )}\n </button>\n )\n}\n\nexport default Button\n","// Lib\nimport React from \"react\"\n\n// Include in project\nimport type { PropsButtonIcon } from \"./index.type\"\nimport \"./index.scss\"\n\nconst ButtonIcon: React.FC<PropsButtonIcon> = ({\n icon: Icon,\n type = \"button\",\n variant = \"default\",\n color = \"primary\",\n size = \"md\",\n disabled = false,\n onClick,\n className,\n style,\n}) => {\n const isDisabled = disabled || color === \"disabled\"\n\n return (\n <button\n type={type}\n className={`DBui-buttonIcon ${className ? className : \"\"}`}\n onClick={onClick}\n disabled={isDisabled}\n style={style ? style : {}}\n data-variant={variant}\n data-color={color}\n data-size={size}\n >\n <span className=\"DBui-buttonIconInner\">{typeof Icon === \"string\" ? <img src={Icon} alt=\"\" /> : <Icon />}</span>\n </button>\n )\n}\n\nexport default ButtonIcon\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n if (data instanceof Date) {\n return new Date(data);\n }\n const isFileListInstance = typeof FileList !== 'undefined' && data instanceof FileList;\n if (isWeb && (data instanceof Blob || isFileListInstance)) {\n return data;\n }\n const isArray = Array.isArray(data);\n if (!isArray && !(isObject(data) && isPlainObject(data))) {\n return data;\n }\n const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n return copy;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar isUndefined = (val) => val === undefined;\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\n/**\n * Separate context for `control` to prevent unnecessary rerenders.\n * Internal hooks that only need control use this instead of full form context.\n */\nconst HookFormControlContext = React.createContext(null);\nHookFormControlContext.displayName = 'HookFormControlContext';\n/**\n * @internal Internal hook to access only control from context.\n */\nconst useFormControlContext = () => React.useContext(HookFormControlContext);\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const formControl = useFormControlContext();\n const { control = formControl, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n useIsomorphicLayoutEffect(() => control._subscribe({\n name,\n formState: _localProxyFormState.current,\n exact,\n callback: (formState) => {\n !disabled &&\n updateFormState({\n ...control._formState,\n ...formState,\n });\n },\n }), [name, disabled, exact]);\n React.useEffect(() => {\n _localProxyFormState.current.isValid && control._setValid(true);\n }, [control]);\n return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\n get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2, _internal_visited = new WeakSet()) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return Object.is(object1, object2);\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return Object.is(object1.getTime(), object2.getTime());\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : !Object.is(val1, val2)) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const formControl = useFormControlContext();\n const { control = formControl, name, defaultValue, disabled, exact, compute, } = props || {};\n const _defaultValue = React.useRef(defaultValue);\n const _compute = React.useRef(compute);\n const _computeFormValues = React.useRef(undefined);\n const _prevControl = React.useRef(control);\n const _prevName = React.useRef(name);\n _compute.current = compute;\n const [value, updateValue] = React.useState(() => {\n const defaultValue = control._getWatch(name, _defaultValue.current);\n return _compute.current ? _compute.current(defaultValue) : defaultValue;\n });\n const getCurrentOutput = React.useCallback((values) => {\n const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);\n return _compute.current ? _compute.current(formValues) : formValues;\n }, [control._formValues, control._names, name]);\n const refreshValue = React.useCallback((values) => {\n if (!disabled) {\n const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);\n if (_compute.current) {\n const computedFormValues = _compute.current(formValues);\n if (!deepEqual(computedFormValues, _computeFormValues.current)) {\n updateValue(computedFormValues);\n _computeFormValues.current = computedFormValues;\n }\n }\n else {\n updateValue(formValues);\n }\n }\n }, [control._formValues, control._names, disabled, name]);\n useIsomorphicLayoutEffect(() => {\n if (_prevControl.current !== control ||\n !deepEqual(_prevName.current, name)) {\n _prevControl.current = control;\n _prevName.current = name;\n refreshValue();\n }\n return control._subscribe({\n name,\n formState: {\n values: true,\n },\n exact,\n callback: (formState) => {\n refreshValue(formState.values);\n },\n });\n }, [control, exact, name, refreshValue]);\n React.useEffect(() => control._removeUnmounted());\n // If name or control changed for this render, synchronously reflect the\n // latest value so callers (like useController) see the correct value\n // immediately on the same render.\n // Optimize: Check control reference first before expensive deepEqual\n const controlChanged = _prevControl.current !== control;\n const prevName = _prevName.current;\n // Cache the computed output to avoid duplicate calls within the same render\n // We include shouldReturnImmediate in deps to ensure proper recomputation\n const computedOutput = React.useMemo(() => {\n if (disabled) {\n return null;\n }\n const nameChanged = !controlChanged && !deepEqual(prevName, name);\n const shouldReturnImmediate = controlChanged || nameChanged;\n return shouldReturnImmediate ? getCurrentOutput() : null;\n }, [disabled, controlChanged, name, prevName, getCurrentOutput]);\n return computedOutput !== null ? computedOutput : value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const formControl = useFormControlContext();\n const { name, disabled, control = formControl, shouldUnregister, defaultValue, exact = true, } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const defaultValueMemo = React.useMemo(() => get(control._formValues, name, get(control._defaultValues, name, defaultValue)), [control, name, defaultValue]);\n const value = useWatch({\n control,\n name,\n defaultValue: defaultValueMemo,\n exact,\n });\n const formState = useFormState({\n control,\n name,\n exact,\n });\n const _props = React.useRef(props);\n const _previousNameRef = React.useRef(undefined);\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n _props.current = props;\n const fieldState = React.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const onChange = React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]);\n const onBlur = React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control._formValues]);\n const ref = React.useCallback((elm) => {\n const field = get(control._fields, name);\n if (field && field._f && elm) {\n field._f.ref = {\n focus: () => isFunction(elm.focus) && elm.focus(),\n select: () => isFunction(elm.select) && elm.select(),\n setCustomValidity: (message) => isFunction(elm.setCustomValidity) && elm.setCustomValidity(message),\n reportValidity: () => isFunction(elm.reportValidity) && elm.reportValidity(),\n };\n }\n }, [control._fields, name]);\n const field = React.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange,\n onBlur,\n ref,\n }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const previousName = _previousNameRef.current;\n if (previousName && previousName !== name && !isArrayField) {\n control.unregister(previousName);\n }\n control.register(name, {\n ..._props.current.rules,\n ...(isBoolean(_props.current.disabled)\n ? { disabled: _props.current.disabled }\n : {}),\n });\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name, _props.current.defaultValue));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n _previousNameRef.current = name;\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n control._setDisabledField({\n disabled,\n name,\n });\n }, [disabled, name, control]);\n return React.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst HookFormContext = React.createContext(null);\nHookFormContext.displayName = 'HookFormContext';\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://react.dev/reference/react/useContext) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, watch, getValues, getFieldState, setError, clearErrors, setValue, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, } = props;\n return (React.createElement(HookFormContext.Provider, { value: React.useMemo(() => ({\n watch,\n getValues,\n getFieldState,\n setError,\n clearErrors,\n setValue,\n trigger,\n formState,\n resetField,\n reset,\n handleSubmit,\n unregister,\n control,\n register,\n setFocus,\n subscribe,\n }), [\n clearErrors,\n control,\n formState,\n getFieldState,\n getValues,\n handleSubmit,\n register,\n reset,\n resetField,\n setError,\n setFocus,\n setValue,\n subscribe,\n trigger,\n unregister,\n watch,\n ]) },\n React.createElement(HookFormControlContext.Provider, { value: control }, children)));\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType && encType !== 'multipart/form-data'\n ? { 'Content-Type': encType }\n : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nconst FormStateSubscribe = ({ control, disabled, exact, name, render, }) => render(useFormState({ control, name, disabled, exact }));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nfunction extractFormValues(fieldsState, formValues) {\n const values = {};\n for (const key in fieldsState) {\n if (fieldsState.hasOwnProperty(key)) {\n const fieldState = fieldsState[key];\n const fieldValue = formValues[key];\n if (fieldState && isObject(fieldState) && fieldValue) {\n const nestedFieldsState = extractFormValues(fieldState, fieldValue);\n if (isObject(nestedFieldsState)) {\n values[key] = nestedFieldsState;\n }\n }\n else if (fieldsState[key]) {\n values[key] = fieldValue;\n }\n }\n }\n return values;\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction isTraversable(value) {\n return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));\n}\nfunction markFieldsDirty(data, fields = {}) {\n for (const key in data) {\n const value = data[key];\n if (isTraversable(value)) {\n fields[key] = Array.isArray(value) ? [] : {};\n markFieldsDirty(value, fields[key]);\n }\n else if (!isUndefined(value)) {\n fields[key] = true;\n }\n }\n return fields;\n}\nfunction getDirtyFields(data, formValues, dirtyFieldsFromValues) {\n if (!dirtyFieldsFromValues) {\n dirtyFieldsFromValues = markFieldsDirty(formValues);\n }\n for (const key in data) {\n const value = data[key];\n if (isTraversable(value)) {\n if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = markFieldsDirty(value, Array.isArray(value) ? [] : {});\n }\n else {\n getDirtyFields(value, isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n const formValue = formValues[key];\n dirtyFieldsFromValues[key] = !deepEqual(value, formValue);\n }\n }\n return dirtyFieldsFromValues;\n}\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isString(result) ||\n (Array.isArray(result) && result.every(isString)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isString(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isString(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isReady: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n keepIsValid: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const defaultProxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _proxyFormState = {\n ...defaultProxyFormState,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _subjects = {\n array: createSubject(),\n state: createSubject(),\n };\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _setValid = async (shouldUpdateValid) => {\n if (_state.keepIsValid) {\n return;\n }\n if (!_options.disabled &&\n (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid ||\n shouldUpdateValid)) {\n let isValid;\n if (_options.resolver) {\n isValid = isEmptyObject((await _runSchema()).errors);\n _updateIsValidating();\n }\n else {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating ||\n _proxyFormState.validatingFields ||\n _proxySubscribeFormState.isValidating ||\n _proxySubscribeFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && !_state.action && _setValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.dirtyFields ||\n _proxySubscribeFormState.dirtyFields) &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _runSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _runSchema(names);\n _updateIsValidating(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid || props.shouldUseNativeValidation) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find((data) => data === checkboxRef.value);\n }\n else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.state.next({\n name,\n values: cloneObject(_formValues),\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n return;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: cloneObject(_formValues),\n });\n if ((_proxyFormState.isDirty ||\n _proxyFormState.dirtyFields ||\n _proxySubscribeFormState.isDirty ||\n _proxySubscribeFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n if (isWatched(name, _names)) {\n _subjects.state.next({\n ..._formState,\n name,\n values: cloneObject(_formValues),\n });\n }\n else {\n _subjects.state.next({\n name: _state.mount ? name : undefined,\n values: cloneObject(_formValues),\n });\n }\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n if (!target || !target.readOnly) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n }\n else if (!isBlurEvent) {\n _setValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames, config) => {\n let values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n if (config) {\n values = extractFormValues(config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields, values);\n }\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.state.subscribe({\n next: (payload) => 'values' in payload &&\n name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const _subscribe = (props) => _subjects.state.subscribe({\n next: (formState) => {\n if (shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(formState, props.formState || _proxyFormState, _setFormState, props.reRenderRoot)) {\n props.callback({\n values: { ..._formValues },\n ..._formState,\n ...formState,\n defaultValues: _defaultValues,\n });\n }\n },\n }).unsubscribe;\n const subscribe = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: {\n ...defaultProxyFormState,\n ...props.formState,\n },\n });\n };\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _setValid();\n };\n const _setDisabledField = ({ disabled, name, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n const wasDisabled = _names.disabled.has(name);\n const isDisabled = !!disabled;\n const disabledStateChanged = wasDisabled !== isDisabled;\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n disabledStateChanged && _state.mount && !_state.action && _setValid();\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist &&\n e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _runSchema();\n _updateIsValidating();\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _setValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n const isDirty = get(_formState.dirtyFields, fieldName);\n const existingValue = get(_formValues, fieldName);\n const newValue = get(values, fieldName);\n if (isDirty && !isUndefined(existingValue)) {\n set(values, fieldName, existingValue);\n }\n else if (!isDirty && !isUndefined(newValue)) {\n setValue(fieldName, newValue);\n }\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n if (keepStateOptions.keepFieldsRef) {\n for (const fieldName of _names.mount) {\n setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n _fields = {};\n }\n }\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.state.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues ||\n (!_options.shouldUnregister && !isEmptyObject(values));\n _state.watch = !!_options.shouldUnregister;\n _state.keepIsValid = !!keepStateOptions.keepIsValid;\n _state.action = false;\n // Clear errors synchronously to prevent validation errors on subsequent submissions\n // This fixes the issue where form.reset() causes validation errors on subsequent\n // submissions in Next.js 16 with Server Actions\n if (!keepStateOptions.keepErrors) {\n _formState.errors = {};\n }\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n defaultValues: _defaultValues,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, { ..._options.resetOptions, ...keepStateOptions });\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n // Use setTimeout to ensure focus happens after any pending state updates\n // This fixes the issue where setFocus doesn't work immediately after setError\n setTimeout(() => {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n });\n }\n }\n };\n const _setFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _updateIsValidating,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n return {\n ...methods,\n formControl: methods,\n };\n}\n\nvar generateId = () => {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = ((Math.random() * 16 + d) % 16) | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const formControl = useFormControlContext();\n const { control = formControl, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _actioned = React.useRef(false);\n control._names.array.add(name);\n React.useMemo(() => rules &&\n fields.length >= 0 &&\n control.register(name, rules), [control, name, fields.length, rules]);\n useIsomorphicLayoutEffect(() => control._subjects.array.subscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === name || !fieldArrayName) {\n const fieldValues = get(values, name);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n }).unsubscribe, [control, name]);\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._setFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._setFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted) &&\n !getValidationModes(control._options.reValidateMode).isOnSubmit) {\n if (control._options.resolver) {\n control._runSchema([name]).then((result) => {\n control._updateIsValidating([name]);\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.state.next({\n name,\n values: cloneObject(control._formValues),\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._setValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._setFieldArray(name);\n return () => {\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n control._options.shouldUnregister || shouldUnregister\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef(undefined);\n const _values = React.useRef(undefined);\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n isReady: false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n if (props.formControl) {\n _formControl.current = {\n ...props.formControl,\n formState,\n };\n if (props.defaultValues && !isFunction(props.defaultValues)) {\n props.formControl.reset(props.defaultValues, props.resetOptions);\n }\n }\n else {\n const { formControl, ...rest } = createFormControl(props);\n _formControl.current = {\n ...rest,\n formState,\n };\n }\n }\n const control = _formControl.current.control;\n control._options = props;\n useIsomorphicLayoutEffect(() => {\n const sub = control._subscribe({\n formState: control._proxyFormState,\n callback: () => updateFormState({ ...control._formState }),\n reRenderRoot: true,\n });\n updateFormState((data) => ({\n ...data,\n isReady: true,\n }));\n control._formState.isReady = true;\n return sub;\n }, [control]);\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (props.mode) {\n control._options.mode = props.mode;\n }\n if (props.reValidateMode) {\n control._options.reValidateMode = props.reValidateMode;\n }\n }, [control, props.mode, props.reValidateMode]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n control._focusError();\n }\n }, [control, props.errors]);\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.state.next({\n values: control._getWatch(),\n });\n }, [control, props.shouldUnregister]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n var _a;\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, {\n keepFieldsRef: true,\n ...control._options.resetOptions,\n });\n if (!((_a = control._options.resetOptions) === null || _a === void 0 ? void 0 : _a.keepIsValid)) {\n control._setValid();\n }\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [control, props.values]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._setValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = React.useMemo(() => getProxyFormState(formState, control), [control, formState]);\n return _formControl.current;\n}\n\n/**\n * Watch component that subscribes to form field changes and re-renders when watched fields update.\n *\n * @param control - The form control object from useForm\n * @param name - Can be field name, array of field names, or undefined to watch the entire form\n * @param disabled - Disable subscription\n * @param exact - Whether to watch exact field names or not\n * @param defaultValue - The default value to use if the field is not yet set\n * @param compute - Function to compute derived values from watched fields\n * @param render - The function that receives watched values and returns ReactNode\n * @returns The result of calling render function with watched values\n *\n * @example\n * The `Watch` component only re-render when the values of `foo`, `bar`, and `baz.qux` change.\n * The types of `foo`, `bar`, and `baz.qux` are precisely inferred.\n *\n * ```tsx\n * const { control } = useForm();\n *\n * <Watch\n * control={control}\n * names={['foo', 'bar', 'baz.qux']}\n * render={([foo, bar, baz_qux]) => <div>{foo}{bar}{baz_qux}</div>}\n * />\n * ```\n */\nconst Watch = (props) => props.render(useWatch({ name: props.names, ...props }));\n\nexport { Controller, Form, FormProvider, FormStateSubscribe, Watch, appendErrors, createFormControl, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelMd, LabelLg, Subtitle, Paragraph } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsInputBase, InputBaseSize } from \"./index.type\"\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelMd,\n lg: LabelLg,\n xl: Subtitle,\n}\n\nconst CaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst HintBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelMd,\n}\n\nconst InputBase: React.FC<PropsInputBase> = ({\n label,\n caption,\n require = false,\n fullWidth = false,\n size = \"sm\",\n children,\n isInvalid,\n isSuccess,\n hint,\n errorMessage,\n}) => {\n const styleDiv = {\n width: !fullWidth ? \"fit-content\" : \"100%\",\n }\n\n const hintText = isInvalid && errorMessage ? errorMessage.toString() : hint\n\n const Label = LabelBySize[size]\n const CaptionText = CaptionBySize[size]\n const Hint = HintBySize[size]\n\n return (\n <div className=\"DBui-inputBase\" style={styleDiv} data-invalid={isInvalid} data-success={isSuccess} data-size={size}>\n {(label || caption || require) && (\n <div className=\"DBui-inputBaseLabel\">\n {label && (\n <Label as=\"span\" weight=\"semibold\" className=\"DBui-inputBaseLabelText\">\n {label}\n </Label>\n )}\n {caption && (\n <CaptionText as=\"span\" weight=\"medium\" className=\"DBui-inputBaseLabelCaption\">\n {caption}\n </CaptionText>\n )}\n {require && (\n <CaptionText as=\"span\" weight=\"medium\" className=\"DBui-inputBaseLabelRequired\">\n *\n </CaptionText>\n )}\n </div>\n )}\n\n {children}\n\n {hintText && (\n <Hint as=\"span\" weight=\"medium\" className=\"DBui-inputBaseHint\">\n {hintText}\n </Hint>\n )}\n </div>\n )\n}\n\nexport default InputBase\n","// Lib\nimport React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport { Paragraph, CaptionLg, CaptionMd, CaptionSm } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsTextInput } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst IconTextCaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst TextInput: React.FC<PropsTextInput> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n icon,\n iconText,\n isSuccess,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const IconCaption = IconTextCaptionBySize[size]\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-textInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n className=\"DBui-textInputField\"\n type=\"text\"\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n {(icon || iconText) && (\n <div className=\"DBui-textInputActions\">\n {icon && <span className=\"DBui-textInputIcon\">{icon}</span>}\n {iconText && (\n <IconCaption weight=\"medium\" className=\"DBui-textInputIconText\">\n {iconText}\n </IconCaption>\n )}\n </div>\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default TextInput\n","// Lib\nimport React, { useState, useCallback } from \"react\"\nimport { Controller, type ControllerRenderProps, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport { Paragraph, CaptionLg, CaptionMd, CaptionSm } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsNumberInput } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst IconTextCaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst formatNumber = (value: number | null | undefined): string => {\n if (value === null || value === undefined) return \"\"\n return value.toLocaleString(\"en-US\")\n}\n\nconst parseNumber = (raw: string): number | null => {\n const stripped = raw.replace(/,/g, \"\")\n if (stripped === \"\" || stripped === \"-\") return null\n const num = Number(stripped)\n return isNaN(num) ? null : num\n}\n\ntype NumberFieldProps = {\n field: ControllerRenderProps<FieldValues, string>\n size: InputBaseSize\n placeholder?: string\n disabled: boolean\n readOnly: boolean\n icon?: React.ReactNode\n iconText?: string\n isInvalid: boolean\n isSuccess?: boolean\n}\n\nconst NumberField: React.FC<NumberFieldProps> = ({\n field,\n size,\n placeholder,\n disabled,\n readOnly,\n icon,\n iconText,\n isInvalid,\n isSuccess,\n}) => {\n const { value, onChange, onBlur } = field\n\n const [displayValue, setDisplayValue] = useState(() => formatNumber(value))\n const [isFocused, setIsFocused] = useState(false)\n\n const IconCaption = IconTextCaptionBySize[size]\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n if (raw !== \"\" && !/^-?[\\d,]*\\.?\\d*$/.test(raw)) return\n\n setDisplayValue(raw)\n const num = parseNumber(raw)\n onChange(num)\n },\n [onChange],\n )\n\n const handleFocus = useCallback(() => {\n setIsFocused(true)\n if (value !== null && value !== undefined) {\n setDisplayValue(String(value))\n }\n }, [value])\n\n const handleBlur = useCallback(() => {\n setIsFocused(false)\n setDisplayValue(formatNumber(value))\n onBlur()\n }, [value, onBlur])\n\n // Sync display when value changes externally while not focused\n const formatted = formatNumber(value)\n if (!isFocused && displayValue !== formatted) {\n setDisplayValue(formatted)\n }\n\n return (\n <div\n className=\"DBui-numberInput\"\n data-size={size}\n data-invalid={isInvalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n className=\"DBui-numberInputField\"\n type=\"text\"\n inputMode=\"decimal\"\n value={displayValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n {(icon || iconText) && (\n <div className=\"DBui-numberInputActions\">\n {icon && <span className=\"DBui-numberInputIcon\">{icon}</span>}\n {iconText && (\n <IconCaption weight=\"medium\" className=\"DBui-numberInputIconText\">\n {iconText}\n </IconCaption>\n )}\n </div>\n )}\n </div>\n )\n}\n\nconst NumberInput: React.FC<PropsNumberInput> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n icon,\n iconText,\n isSuccess,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { error, invalid } = fieldState\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <NumberField\n field={field}\n size={size}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n icon={icon}\n iconText={iconText}\n isInvalid={invalid}\n isSuccess={isSuccess}\n />\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default NumberInput\n","import React from \"react\"\n\nconst FlagThSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"15\" viewBox=\"0 0 20 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect width=\"20\" height=\"15\" rx=\"1\" fill=\"#F4F5F8\" />\n <rect y=\"2.5\" width=\"20\" height=\"10\" fill=\"#2D2A4A\" />\n <rect y=\"2.5\" width=\"20\" height=\"10\" fill=\"white\" />\n <rect y=\"5\" width=\"20\" height=\"5\" fill=\"#2D2A4A\" />\n <rect width=\"20\" height=\"2.5\" fill=\"#A51931\" />\n <rect y=\"12.5\" width=\"20\" height=\"2.5\" fill=\"#A51931\" />\n </svg>\n )\n}\n\nexport default FlagThSvg\n","// Lib\nimport React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport { Paragraph, CaptionLg, CaptionMd, CaptionSm } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport FlagThSvg from \"../../assets/flag-th\"\nimport type { PropsPhoneInput } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst IconTextCaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst formatPhone = (value: string): string => {\n const digits = value.replace(/\\D/g, \"\").slice(0, 10)\n if (digits.length <= 3) return digits\n if (digits.length <= 6) return `${digits.slice(0, 3)}-${digits.slice(3)}`\n return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`\n}\n\nconst PhoneInput: React.FC<PropsPhoneInput> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n icon,\n iconText,\n isSuccess,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const IconCaption = IconTextCaptionBySize[size]\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const digits = e.target.value.replace(/\\D/g, \"\").slice(0, 10)\n onChange(digits)\n }\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-phoneInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <span className=\"DBui-phoneInputFlag\">\n <FlagThSvg />\n </span>\n <input\n className=\"DBui-phoneInputField\"\n type=\"tel\"\n value={formatPhone(value ?? \"\")}\n onChange={handleChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n {(icon || iconText) && (\n <div className=\"DBui-phoneInputActions\">\n {icon && <span className=\"DBui-phoneInputIcon\">{icon}</span>}\n {iconText && (\n <IconCaption weight=\"medium\" className=\"DBui-phoneInputIconText\">\n {iconText}\n </IconCaption>\n )}\n </div>\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default PhoneInput\n","import React from \"react\"\n\nconst EyeSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M11.9999 9.00462C14.209 9.00462 15.9999 10.7955 15.9999 13.0046C15.9999 15.2138 14.209 17.0046 11.9999 17.0046C9.79073 17.0046 7.99987 15.2138 7.99987 13.0046C7.99987 10.7955 9.79073 9.00462 11.9999 9.00462ZM11.9999 5.5C16.6134 5.5 20.596 8.65001 21.701 13.0644C21.8016 13.4662 21.5574 13.8735 21.1556 13.9741C20.7537 14.0746 20.3465 13.8305 20.2459 13.4286C19.307 9.67796 15.9212 7 11.9999 7C8.07681 7 4.68997 9.68026 3.75273 13.4332C3.65237 13.835 3.24523 14.0794 2.84336 13.9791C2.44149 13.8787 2.19707 13.4716 2.29743 13.0697C3.40052 8.65272 7.38436 5.5 11.9999 5.5Z\"\n fill=\"#ADADAD\"\n />\n </svg>\n )\n}\n\nexport default EyeSvg\n","import React from \"react\"\n\nconst EyeOffSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M2.21967 2.21967C1.9534 2.48594 1.9292 2.9026 2.14705 3.19621L2.21967 3.28033L6.25424 7.3149C4.33225 8.66437 2.89577 10.6799 2.29888 13.0644C2.1983 13.4662 2.4425 13.8735 2.84431 13.9741C3.24613 14.0746 3.6534 13.8305 3.75399 13.4286C4.28346 11.3135 5.59112 9.53947 7.33416 8.39452L9.14379 10.2043C8.43628 10.9258 8 11.9143 8 13.0046C8 15.2138 9.79086 17.0046 12 17.0046C13.0904 17.0046 14.0788 16.5683 14.8004 15.8608L20.7197 21.7803C21.0126 22.0732 21.4874 22.0732 21.7803 21.7803C22.0466 21.5141 22.0708 21.0974 21.8529 20.8038L21.7803 20.7197L15.6668 14.6055L15.668 14.604L8.71877 7.65782L8.72 7.656L7.58672 6.52549L3.28033 2.21967C2.98744 1.92678 2.51256 1.92678 2.21967 2.21967ZM12 5.5C10.9997 5.5 10.0291 5.64807 9.11109 5.925L10.3481 7.16119C10.8839 7.05532 11.4364 7 12 7C15.9231 7 19.3099 9.68026 20.2471 13.4332C20.3475 13.835 20.7546 14.0794 21.1565 13.9791C21.5584 13.8787 21.8028 13.4716 21.7024 13.0697C20.5994 8.65272 16.6155 5.5 12 5.5ZM12.1947 9.00928L15.996 12.81C15.8942 10.7531 14.2472 9.10764 12.1947 9.00928Z\"\n fill=\"#ADADAD\"\n />\n </svg>\n )\n}\n\nexport default EyeOffSvg\n","// Lib\nimport React, { useState } from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport EyeSvg from \"../../assets/eye\"\nimport EyeOffSvg from \"../../assets/eye-off\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsPasswordInput } from \"./index.type\"\n\nconst PasswordInput: React.FC<PropsPasswordInput> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n}) => {\n const [isShow, setIsShow] = useState(false)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-passwordInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n className=\"DBui-passwordInputField\"\n type={isShow ? \"text\" : \"password\"}\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n <button\n type=\"button\"\n className=\"DBui-passwordInputToggle\"\n onClick={() => setIsShow((s) => !s)}\n tabIndex={-1}\n disabled={disabled}\n >\n {isShow ? <EyeSvg /> : <EyeOffSvg />}\n </button>\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default PasswordInput\n","// Lib\nimport React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsTextarea } from \"./index.type\"\n\nconst Textarea: React.FC<PropsTextarea> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n rows = 3,\n cols,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-textarea\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <textarea\n className=\"DBui-textareaField\"\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n rows={rows}\n cols={cols}\n />\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default Textarea\n","export type MenuPositionAlign = \"left\" | \"right\"\n\nexport type MenuPositionOptions = {\n align?: MenuPositionAlign\n matchWidth?: boolean\n}\n\nconst MENU_GAP = 4\n\nexport const applyMenuPosition = (\n triggerEl: HTMLElement,\n menuEl: HTMLElement,\n options: MenuPositionOptions = {},\n) => {\n const { align = \"left\", matchWidth = false } = options\n const rect = triggerEl.getBoundingClientRect()\n const spaceBelow = window.innerHeight - rect.bottom - MENU_GAP\n const spaceAbove = rect.top - MENU_GAP\n const viewportMax = window.innerHeight * 0.7\n const goUp = spaceBelow < 150 && spaceAbove > spaceBelow\n const maxHeight = Math.min(goUp ? spaceAbove : spaceBelow, viewportMax)\n const top = goUp ? rect.top - MENU_GAP : rect.bottom + MENU_GAP\n\n const s = menuEl.style\n s.position = \"fixed\"\n s.maxHeight = `${maxHeight}px`\n s.overflowY = \"auto\"\n\n if (goUp) {\n s.top = \"\"\n s.bottom = `${window.innerHeight - top}px`\n } else {\n s.top = `${top}px`\n s.bottom = \"\"\n }\n\n if (align === \"right\") {\n s.left = \"\"\n s.right = `${window.innerWidth - rect.right}px`\n } else {\n s.left = `${rect.left}px`\n s.right = \"\"\n }\n\n if (matchWidth) {\n s.minWidth = `${rect.width}px`\n }\n}\n","import { useState, useRef, useEffect, useCallback } from \"react\"\nimport { applyMenuPosition } from \"./position\"\nimport type { MenuPositionOptions } from \"./position\"\n\nexport const useMenuDropdown = (positionOptions: MenuPositionOptions = {}, ignorePortalClicks = false) => {\n const [open, setOpen] = useState(false)\n const triggerRef = useRef<HTMLDivElement>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n\n const close = useCallback(() => setOpen(false), [])\n const toggle = useCallback(() => setOpen((prev) => !prev), [])\n\n useEffect(() => {\n if (!open) return\n\n const reposition = () => {\n if (triggerRef.current && menuRef.current) {\n applyMenuPosition(triggerRef.current, menuRef.current, positionOptions)\n }\n }\n reposition()\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (triggerRef.current?.contains(target) || menuRef.current?.contains(target)) return\n // Don't close if clicking inside a portalled dropdown (nested Select, Menu, etc.)\n if (ignorePortalClicks && target instanceof Element && target.closest(\".DBui-menuButtonDropdown, .DBui-selectDropdown\")) return\n close()\n }\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") close()\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside)\n document.addEventListener(\"keydown\", handleEscape)\n window.addEventListener(\"scroll\", reposition, true)\n window.addEventListener(\"resize\", reposition)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n document.removeEventListener(\"keydown\", handleEscape)\n window.removeEventListener(\"scroll\", reposition, true)\n window.removeEventListener(\"resize\", reposition)\n }\n }, [open, close, positionOptions, ignorePortalClicks])\n\n return { open, setOpen, close, toggle, triggerRef, menuRef }\n}\n","import React from \"react\"\n\nconst ChevronRightSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.125 2L7.875 6L4.125 10\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ChevronRightSvg\n","import React, { useMemo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { useMenuDropdown } from \"./useMenuDropdown\"\nimport { Paragraph, LabelMd, LabelLg, Subtitle, CaptionMd } from \"../typography\"\nimport type { PropsTypography } from \"../typography/index.type\"\n\nimport \"./index.scss\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport CounterLabel from \"../counter-label\"\nimport type { CounterLabelSize } from \"../counter-label/index.type\"\nimport type {\n PropsMenu,\n PropsMenuItem,\n PropsMenuHeader,\n PropsMenuDivider,\n PropsMenuButton,\n MenuSize,\n} from \"./index.type\"\n\nconst CounterSizeByMenuSize: Record<MenuSize, CounterLabelSize> = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\",\n xl: \"md\",\n}\n\nconst LabelBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: Subtitle,\n}\n\nconst ShortcutBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: LabelLg,\n}\n\nconst DescriptionBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelMd,\n}\n\nconst HeaderBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: Subtitle,\n}\n\nconst applySizeToChildren = (nodes: React.ReactNode, size: MenuSize): React.ReactNode =>\n React.Children.map(nodes, (child) => {\n if (!React.isValidElement(child)) return child\n if (child.type === React.Fragment) {\n return applySizeToChildren((child.props as { children: React.ReactNode }).children, size)\n }\n if (typeof child.type !== \"string\") {\n return React.cloneElement(child as React.ReactElement<{ size?: MenuSize }>, {\n size: (child.props as { size?: MenuSize }).size ?? size,\n })\n }\n return child\n })\n\nconst Menu = React.forwardRef<HTMLDivElement, PropsMenu & React.HTMLAttributes<HTMLDivElement>>(\n ({ children, className, size = \"sm\", ...rest }, ref) => {\n return (\n <div className={`DBui-menu ${className ?? \"\"}`} ref={ref} {...rest}>\n {applySizeToChildren(children, size)}\n </div>\n )\n },\n)\n\nexport const MenuItem: React.FC<PropsMenuItem> = ({\n children,\n description,\n icon,\n shortcut,\n counter,\n counterType = \"red\",\n hasSubmenu = false,\n active = false,\n disabled = false,\n size = \"sm\",\n onClick,\n}) => {\n const Label = LabelBySize[size]\n const Shortcut = ShortcutBySize[size]\n const Description = DescriptionBySize[size]\n\n return (\n <div\n className=\"DBui-menuItem\"\n data-size={size}\n data-active={active}\n data-disabled={disabled}\n data-has-description={!!description}\n tabIndex={disabled ? undefined : 0}\n onClick={onClick}\n >\n <div className=\"DBui-menuItemLeft\" data-size={size}>\n {icon && (\n <div className=\"DBui-menuItemIconWrap\">\n <span className=\"DBui-menuItemIcon\" data-size={size}>\n {icon}\n </span>\n </div>\n )}\n {description ? (\n <div className=\"DBui-menuItemLabel\">\n <Label weight=\"semibold\">{children}</Label>\n <Description weight=\"text\" className=\"DBui-menuItemDescription\">\n {description}\n </Description>\n </div>\n ) : (\n <Label weight=\"medium\">{children}</Label>\n )}\n </div>\n <div className=\"DBui-menuItemRight\">\n {counter != null && (\n <CounterLabel size={CounterSizeByMenuSize[size]} type={counterType}>\n {counter}\n </CounterLabel>\n )}\n {shortcut && <Shortcut weight=\"medium\">{shortcut}</Shortcut>}\n {hasSubmenu && (\n <span className=\"DBui-menuItemChevron\" data-size={size}>\n <ChevronRightSvg />\n </span>\n )}\n </div>\n </div>\n )\n}\n\nexport const MenuHeader: React.FC<PropsMenuHeader> = ({ children, size = \"sm\" }) => {\n const Header = HeaderBySize[size]\n return (\n <div className=\"DBui-menuHeader\">\n <Header weight=\"bold\" className=\"DBui-menuHeaderLabel\">\n {children}\n </Header>\n </div>\n )\n}\n\nexport const MenuDivider: React.FC<PropsMenuDivider> = () => {\n return <div className=\"DBui-menuDivider\" />\n}\n\nexport const MenuButton: React.FC<PropsMenuButton> = ({\n children,\n trigger,\n size = \"sm\",\n align = \"left\",\n fullWidth = false,\n}) => {\n const positionOptions = useMemo(() => ({ align }), [align])\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown(positionOptions)\n\n const wrapMenuItems = (nodes: React.ReactNode): React.ReactNode =>\n React.Children.map(nodes, (child) => {\n if (!React.isValidElement(child)) return child\n if (child.type === React.Fragment) {\n return wrapMenuItems((child.props as { children: React.ReactNode }).children)\n }\n if (child.type === MenuItem) {\n const originalOnClick = (child as React.ReactElement<PropsMenuItem>).props.onClick\n return React.cloneElement(child as React.ReactElement<PropsMenuItem>, {\n onClick: () => {\n originalOnClick?.()\n close()\n },\n })\n }\n return child\n })\n\n const menuContent = open\n ? createPortal(\n <Menu ref={menuRef} className=\"DBui-menuButtonDropdown\" size={size}>\n {wrapMenuItems(children)}\n </Menu>,\n document.body,\n )\n : null\n\n const triggerContent = typeof trigger === \"function\" ? trigger({ isOpen: open }) : trigger\n\n return (\n <div className=\"DBui-menuButton\" ref={triggerRef} data-full-width={fullWidth}>\n <div className=\"DBui-menuButtonTrigger\" onClick={toggle}>\n {triggerContent}\n </div>\n {menuContent}\n </div>\n )\n}\n\nexport default Menu\n","// Lib\nimport React from \"react\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsLoading } from \"./index.type\"\n\nconst VIEWBOX_SIZE = 44\nconst RADIUS = 18\n\nconst STROKE_WIDTH = {\n sm: 4,\n lg: 8,\n} as const\n\nconst Loading: React.FC<PropsLoading> = ({ progress, thickness = \"sm\", className }) => {\n const circumference = 2 * Math.PI * RADIUS\n const clampedProgress = Math.min(100, Math.max(0, progress))\n const offset = circumference - (clampedProgress / 100) * circumference\n\n return (\n <svg\n className={`DBui-loading ${className ?? \"\"}`}\n data-thickness={thickness}\n viewBox={`0 0 ${VIEWBOX_SIZE} ${VIEWBOX_SIZE}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"DBui-loadingTrack\"\n cx={VIEWBOX_SIZE / 2}\n cy={VIEWBOX_SIZE / 2}\n r={RADIUS}\n strokeWidth={STROKE_WIDTH[thickness]}\n fill=\"none\"\n />\n <circle\n className=\"DBui-loadingIndicator\"\n cx={VIEWBOX_SIZE / 2}\n cy={VIEWBOX_SIZE / 2}\n r={RADIUS}\n strokeWidth={STROKE_WIDTH[thickness]}\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n />\n </svg>\n )\n}\n\nexport default Loading\n","import React from \"react\"\n\nconst ChevronDownSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.02903 2.90403C1.15107 2.78199 1.34893 2.78199 1.47097 2.90403L5 6.43306L8.52903 2.90403C8.65107 2.78199 8.84893 2.78199 8.97097 2.90403C9.09301 3.02607 9.09301 3.22393 8.97097 3.34597L5.22097 7.09597C5.09893 7.21801 4.90107 7.21801 4.77903 7.09597L1.02903 3.34597C0.90699 3.22393 0.90699 3.02607 1.02903 2.90403Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default ChevronDownSvg\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport InputBase from \"../input-base\"\nimport Menu from \"../../menu\"\nimport { MenuItem } from \"../../menu\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\nimport Loading from \"../../loading\"\nimport ChevronDownSvg from \"../../assets/chevron-down\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsSelect } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\nimport type { MenuSize } from \"../../menu/index.type\"\n\nconst MATCH_WIDTH_OPTIONS = { matchWidth: true } as const\n\nconst MenuSizeByInputSize: Record<InputBaseSize, MenuSize> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n}\n\nconst Select: React.FC<PropsSelect> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n options,\n loading = false,\n children,\n}) => {\n const { open, close, toggle, triggerRef, menuRef } = useMenuDropdown(MATCH_WIDTH_OPTIONS)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const selectedOption = options.find((o) => o.value === value)\n const menuSize = MenuSizeByInputSize[size]\n\n const handleSelect = (optionValue: string | number) => {\n onChange(optionValue)\n close()\n }\n\n const handleTriggerClick = () => {\n if (disabled || readOnly) return\n toggle()\n }\n\n const handleTriggerBlur = () => {\n if (!open) onBlur()\n }\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-select\">\n <div\n ref={triggerRef}\n className=\"DBui-selectTrigger\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n data-open={open}\n tabIndex={disabled ? undefined : 0}\n onClick={handleTriggerClick}\n onBlur={handleTriggerBlur}\n >\n <span className={`DBui-selectValue ${!selectedOption ? \"DBui-selectPlaceholder\" : \"\"}`}>\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <span className=\"DBui-selectIcon\" data-open={open}>\n <ChevronDownSvg />\n </span>\n </div>\n\n {open &&\n createPortal(\n <Menu ref={menuRef} className=\"DBui-selectDropdown\" size={menuSize}>\n {loading ? (\n <div className=\"DBui-selectLoading\">\n <Loading progress={25} thickness=\"sm\" />\n </div>\n ) : children ? (\n children({ value, onSelect: handleSelect })\n ) : (\n options.map((option) => (\n <MenuItem\n key={option.value}\n size={menuSize}\n active={option.value === value}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </MenuItem>\n ))\n )}\n </Menu>,\n document.body,\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default Select\n","import React from \"react\"\n\nconst ChevronLeftSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.875 2L4.125 6L7.875 10\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ChevronLeftSvg\n","// Lib\nimport React, { useMemo } from \"react\"\nimport { useForm } from \"react-hook-form\"\n\n// Components\nimport ButtonIcon from \"../button-icon\"\nimport Select from \"../input/select\"\nimport ChevronLeftSvg from \"../assets/chevron-left\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\n\n// Include in project\nimport type { PropsCalendar } from \"./index.type\"\nimport \"./index.scss\"\n\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\nconst WEEKDAYS = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]\n\nconst MONTH_OPTIONS = MONTHS.map((m, i) => ({ label: m, value: i }))\n\nfunction getDaysInMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate()\n}\n\nfunction getFirstDayOfWeek(year: number, month: number) {\n return new Date(year, month, 1).getDay()\n}\n\nfunction isSameDay(a: Date, b: Date) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate()\n}\n\nconst Calendar: React.FC<PropsCalendar> = ({ value, onChange, rangeStart, rangeEnd, min, max, className }) => {\n const today = new Date()\n const initial = value ?? rangeStart ?? today\n\n const { control, watch, setValue } = useForm({\n defaultValues: {\n month: initial.getMonth(),\n year: initial.getFullYear(),\n },\n })\n\n const viewMonth = watch(\"month\") as number\n const viewYear = watch(\"year\") as number\n\n const daysInMonth = getDaysInMonth(viewYear, viewMonth)\n const firstDay = getFirstDayOfWeek(viewYear, viewMonth)\n const prevMonthDays = getDaysInMonth(viewYear, viewMonth - 1)\n\n const goToPrevMonth = () => {\n if (viewMonth === 0) {\n setValue(\"month\", 11)\n setValue(\"year\", viewYear - 1)\n } else {\n setValue(\"month\", viewMonth - 1)\n }\n }\n\n const goToNextMonth = () => {\n if (viewMonth === 11) {\n setValue(\"month\", 0)\n setValue(\"year\", viewYear + 1)\n } else {\n setValue(\"month\", viewMonth + 1)\n }\n }\n\n const handleSelectDate = (day: number) => {\n const date = new Date(viewYear, viewMonth, day)\n onChange?.(date)\n }\n\n const yearOptions = useMemo(() => {\n const base = today.getFullYear()\n const opts = []\n for (let y = base - 100; y <= base + 20; y++) {\n opts.push({ label: String(y), value: y })\n }\n return opts\n }, [])\n\n // Build grid cells\n const cells: { day: number; outside: boolean }[] = []\n\n // Previous month trailing days\n for (let i = 0; i < firstDay; i++) {\n cells.push({ day: prevMonthDays - firstDay + 1 + i, outside: true })\n }\n\n // Current month days\n for (let d = 1; d <= daysInMonth; d++) {\n cells.push({ day: d, outside: false })\n }\n\n // Next month leading days\n const remaining = 7 - (cells.length % 7)\n if (remaining < 7) {\n for (let d = 1; d <= remaining; d++) {\n cells.push({ day: d, outside: true })\n }\n }\n\n return (\n <div className={`DBui-calendar ${className ?? \"\"}`}>\n <div className=\"DBui-calendarHeader\">\n <ButtonIcon icon={ChevronLeftSvg} size=\"sm\" variant=\"ghost\" color=\"default\" onClick={goToPrevMonth} />\n <div className=\"DBui-calendarSelects\">\n <Select control={control} name=\"month\" options={MONTH_OPTIONS} size=\"md\" fullWidth />\n <Select control={control} name=\"year\" options={yearOptions} size=\"md\" fullWidth />\n </div>\n <ButtonIcon icon={ChevronRightSvg} size=\"sm\" variant=\"ghost\" color=\"default\" onClick={goToNextMonth} />\n </div>\n\n <div className=\"DBui-calendarTable\">\n <div className=\"DBui-calendarWeekdays\">\n {WEEKDAYS.map((wd) => (\n <div key={wd} className=\"DBui-calendarWeekday\">\n {wd}\n </div>\n ))}\n </div>\n <div className=\"DBui-calendarBody\">\n {Array.from({ length: cells.length / 7 }, (_, rowIndex) => (\n <div key={rowIndex} className=\"DBui-calendarRow\">\n {cells.slice(rowIndex * 7, rowIndex * 7 + 7).map((cell, colIndex) => {\n const cellDate = cell.outside ? null : new Date(viewYear, viewMonth, cell.day)\n const isSelected = !cell.outside && value && isSameDay(value, new Date(viewYear, viewMonth, cell.day))\n const isRangeStart = !cell.outside && rangeStart && isSameDay(rangeStart, new Date(viewYear, viewMonth, cell.day))\n const isRangeEnd = !cell.outside && rangeEnd && isSameDay(rangeEnd, new Date(viewYear, viewMonth, cell.day))\n const isInRange =\n !cell.outside &&\n rangeStart &&\n rangeEnd &&\n cellDate &&\n cellDate > rangeStart &&\n cellDate < rangeEnd\n const isToday = !cell.outside && isSameDay(today, new Date(viewYear, viewMonth, cell.day))\n const isDisabled =\n cell.outside ||\n (min && cellDate && cellDate < new Date(min.getFullYear(), min.getMonth(), min.getDate())) ||\n (max && cellDate && cellDate > new Date(max.getFullYear(), max.getMonth(), max.getDate()))\n\n return (\n <button\n key={colIndex}\n type=\"button\"\n className=\"DBui-calendarDay\"\n data-selected={isSelected || isRangeStart || isRangeEnd || undefined}\n data-in-range={isInRange || undefined}\n data-outside={cell.outside || undefined}\n data-today={isToday || undefined}\n disabled={!!isDisabled}\n onClick={() => !cell.outside && handleSelectDate(cell.day)}\n >\n {cell.day}\n </button>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default Calendar\n","import React from \"react\"\n\nconst CalendarSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.875 4.0625C6.875 3.88991 7.01491 3.75 7.1875 3.75H7.8125C7.98509 3.75 8.125 3.88991 8.125 4.0625V4.6875C8.125 4.86009 7.98509 5 7.8125 5H7.1875C7.01491 5 6.875 4.86009 6.875 4.6875V4.0625Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M5 4.0625C5 3.88991 5.13991 3.75 5.3125 3.75H5.9375C6.11009 3.75 6.25 3.88991 6.25 4.0625V4.6875C6.25 4.86009 6.11009 5 5.9375 5H5.3125C5.13991 5 5 4.86009 5 4.6875V4.0625Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.875 5.9375C1.875 5.76491 2.01491 5.625 2.1875 5.625H2.8125C2.98509 5.625 3.125 5.76491 3.125 5.9375V6.5625C3.125 6.73509 2.98509 6.875 2.8125 6.875H2.1875C2.01491 6.875 1.875 6.73509 1.875 6.5625V5.9375Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.75 5.9375C3.75 5.76491 3.88991 5.625 4.0625 5.625H4.6875C4.86009 5.625 5 5.76491 5 5.9375V6.5625C5 6.73509 4.86009 6.875 4.6875 6.875H4.0625C3.88991 6.875 3.75 6.73509 3.75 6.5625V5.9375Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M2.1875 0C2.36009 0 2.5 0.139911 2.5 0.3125V0.625H7.5V0.3125C7.5 0.139911 7.63991 0 7.8125 0C7.98509 0 8.125 0.139911 8.125 0.3125V0.625H8.75C9.44036 0.625 10 1.18464 10 1.875V8.75C10 9.44036 9.44036 10 8.75 10H1.25C0.559644 10 0 9.44036 0 8.75V1.875C0 1.18464 0.559644 0.625 1.25 0.625H1.875V0.3125C1.875 0.139911 2.01491 0 2.1875 0ZM0.625 2.5V8.75C0.625 9.09518 0.904822 9.375 1.25 9.375H8.75C9.09518 9.375 9.375 9.09518 9.375 8.75V2.5H0.625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default CalendarSvg\n","export function parseDate(str: string): Date | null {\n if (!str) return null\n const datePart = str.split(\"T\")[0]\n const [y, m, d] = datePart.split(\"-\").map(Number)\n if (!y || !m || !d) return null\n return new Date(y, m - 1, d)\n}\n\nexport function formatDate(date: Date): string {\n const y = date.getFullYear()\n const m = String(date.getMonth() + 1).padStart(2, \"0\")\n const d = String(date.getDate()).padStart(2, \"0\")\n return `${y}-${m}-${d}`\n}\n\nexport function formatDisplayDate(str: string): string {\n if (!str) return \"\"\n const date = parseDate(str)\n if (!date) return str\n return date.toLocaleDateString(\"en-US\", { year: \"numeric\", month: \"short\", day: \"numeric\" })\n}\n\nexport function formatDisplayDateTime(str: string): string {\n if (!str) return \"\"\n const date = parseDate(str)\n if (!date) return str\n const time = getTimePart(str)\n const dateStr = date.toLocaleDateString(\"en-US\", { year: \"numeric\", month: \"short\", day: \"numeric\" })\n return `${dateStr}, ${time}`\n}\n\nexport function getTimePart(str: string): string {\n if (!str || !str.includes(\"T\")) return \"00:00\"\n return str.split(\"T\")[1] || \"00:00\"\n}\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport CalendarSvg from \"../../assets/calendar\"\nimport Calendar from \"../../calendar\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport { parseDate, formatDate, formatDisplayDate } from \"../date-utils\"\nimport type { PropsDateInput } from \"./index.type\"\n\nconst DateInput: React.FC<PropsDateInput> = ({\n control,\n name,\n label,\n caption,\n placeholder = \"Select date\",\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n min,\n max,\n}) => {\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown({}, true)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const handleSelect = (date: Date) => {\n onChange(formatDate(date))\n close()\n }\n\n return (\n <>\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div ref={triggerRef}>\n <div\n className=\"DBui-dateInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n onClick={() => !disabled && !readOnly && toggle()}\n onBlur={onBlur}\n >\n <span className=\"DBui-dateInputValue\" data-empty={!value}>\n {value ? formatDisplayDate(value) : placeholder}\n </span>\n <span className=\"DBui-dateInputIcon\">\n <CalendarSvg />\n </span>\n </div>\n </div>\n </InputBase>\n {open &&\n createPortal(\n <div ref={menuRef}>\n <Calendar\n value={parseDate(value ?? \"\")}\n onChange={handleSelect}\n min={min ? (parseDate(min) ?? undefined) : undefined}\n max={max ? (parseDate(max) ?? undefined) : undefined}\n />\n </div>,\n document.body,\n )}\n </>\n )\n }}\n />\n )\n}\n\nexport default DateInput\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport CalendarSvg from \"../../assets/calendar\"\nimport Calendar from \"../../calendar\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport { parseDate, formatDate, formatDisplayDateTime, getTimePart } from \"../date-utils\"\nimport type { PropsDateTimeInput } from \"./index.type\"\n\nconst DateTimeInput: React.FC<PropsDateTimeInput> = ({\n control,\n name,\n label,\n caption,\n placeholder = \"Select date & time\",\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n min,\n max,\n}) => {\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown({}, true)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n const currentTime = getTimePart(value ?? \"\")\n\n const handleSelectDate = (date: Date) => {\n onChange(`${formatDate(date)}T${currentTime}`)\n close()\n }\n\n const handleTimeChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const datePart = value ? value.split(\"T\")[0] : formatDate(new Date())\n onChange(`${datePart}T${e.target.value}`)\n }\n\n return (\n <>\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div ref={triggerRef}>\n <div\n className=\"DBui-dateTimeInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n onClick={() => !disabled && !readOnly && toggle()}\n onBlur={onBlur}\n >\n <span className=\"DBui-dateTimeInputValue\" data-empty={!value}>\n {value ? formatDisplayDateTime(value) : placeholder}\n </span>\n <span className=\"DBui-dateTimeInputIcon\">\n <CalendarSvg />\n </span>\n </div>\n </div>\n </InputBase>\n {open &&\n createPortal(\n <div ref={menuRef} className=\"DBui-dateTimeInputPopup\">\n <Calendar\n value={parseDate(value ?? \"\")}\n onChange={handleSelectDate}\n min={min ? (parseDate(min) ?? undefined) : undefined}\n max={max ? (parseDate(max) ?? undefined) : undefined}\n />\n <div className=\"DBui-dateTimeInputTimeRow\">\n <input\n type=\"time\"\n className=\"DBui-dateTimeInputTime\"\n value={currentTime}\n onChange={handleTimeChange}\n />\n </div>\n </div>,\n document.body,\n )}\n </>\n )\n }}\n />\n )\n}\n\nexport default DateTimeInput\n","// Lib\nimport React, { useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport CalendarSvg from \"../../assets/calendar\"\nimport Calendar from \"../../calendar\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport { parseDate, formatDate, formatDisplayDate } from \"../date-utils\"\nimport type { PropsDateRangeInput, DateRangeValue } from \"./index.type\"\n\nconst DateRangeInput: React.FC<PropsDateRangeInput> = ({\n control,\n name,\n label,\n caption,\n startPlaceholder = \"Start date\",\n endPlaceholder = \"End date\",\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n min,\n max,\n}) => {\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown({}, true)\n const [picking, setPicking] = useState<\"start\" | \"end\">(\"start\")\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const value: DateRangeValue = field.value ?? { start: \"\", end: \"\" }\n const { onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const handleSelect = (date: Date) => {\n const dateStr = formatDate(date)\n\n if (picking === \"start\") {\n if (value.end && dateStr > value.end) {\n onChange({ start: dateStr, end: \"\" })\n } else {\n onChange({ ...value, start: dateStr })\n }\n setPicking(\"end\")\n } else {\n if (value.start && dateStr < value.start) {\n onChange({ start: dateStr, end: \"\" })\n setPicking(\"end\")\n } else {\n onChange({ ...value, end: dateStr })\n setPicking(\"start\")\n close()\n }\n }\n }\n\n const handleOpen = () => {\n if (disabled || readOnly) return\n setPicking(\"start\")\n toggle()\n }\n\n return (\n <>\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div ref={triggerRef}>\n <div\n className=\"DBui-dateRangeInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n onClick={handleOpen}\n onBlur={onBlur}\n >\n <span className=\"DBui-dateRangeInputValue\" data-empty={!value.start}>\n {value.start ? formatDisplayDate(value.start) : startPlaceholder}\n </span>\n <span className=\"DBui-dateRangeInputSeparator\">–</span>\n <span className=\"DBui-dateRangeInputValue\" data-empty={!value.end}>\n {value.end ? formatDisplayDate(value.end) : endPlaceholder}\n </span>\n <span className=\"DBui-dateRangeInputIcon\">\n <CalendarSvg />\n </span>\n </div>\n </div>\n </InputBase>\n {open &&\n createPortal(\n <div ref={menuRef}>\n <Calendar\n rangeStart={parseDate(value.start)}\n rangeEnd={parseDate(value.end)}\n onChange={handleSelect}\n min={min ? (parseDate(min) ?? undefined) : undefined}\n max={max ? (parseDate(max) ?? undefined) : undefined}\n />\n </div>,\n document.body,\n )}\n </>\n )\n }}\n />\n )\n}\n\nexport default DateRangeInput\n","import React from \"react\"\n\nconst SearchSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.33885 6.46493C7.83307 5.79206 8.125 4.96137 8.125 4.0625C8.125 1.81884 6.30616 0 4.0625 0C1.81884 0 0 1.81884 0 4.0625C0 6.30616 1.81884 8.125 4.0625 8.125C4.96161 8.125 5.79251 7.83291 6.46547 7.33845L6.46493 7.33885C6.48336 7.36384 6.50389 7.38778 6.52652 7.4104L8.93306 9.81694C9.17714 10.061 9.57287 10.061 9.81694 9.81694C10.061 9.57287 10.061 9.17714 9.81694 8.93306L7.4104 6.52652C7.38778 6.50389 7.36384 6.48336 7.33885 6.46493ZM7.5 4.0625C7.5 5.96098 5.96098 7.5 4.0625 7.5C2.16402 7.5 0.625 5.96098 0.625 4.0625C0.625 2.16402 2.16402 0.625 4.0625 0.625C5.96098 0.625 7.5 2.16402 7.5 4.0625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default SearchSvg\n","import React from \"react\"\n\nconst XCircleFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14ZM9.36872 8.13128C9.02701 7.78957 8.47299 7.78957 8.13128 8.13128C7.78957 8.47299 7.78957 9.02701 8.13128 9.36872L12.7626 14L8.13128 18.6313C7.78957 18.973 7.78957 19.527 8.13128 19.8687C8.47299 20.2104 9.02701 20.2104 9.36872 19.8687L14 15.2374L18.6313 19.8687C18.973 20.2104 19.527 20.2104 19.8687 19.8687C20.2104 19.527 20.2104 18.973 19.8687 18.6313L15.2374 14L19.8687 9.36872C20.2104 9.02701 20.2104 8.47299 19.8687 8.13128C19.527 7.78957 18.973 7.78957 18.6313 8.13128L14 12.7626L9.36872 8.13128Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default XCircleFillSvg\n","// Lib\nimport React, { useRef } from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport SearchSvg from \"../assets/search\"\nimport XCircleFillSvg from \"../assets/x-circle-fill\"\n\n// Include in project\nimport type { PropsSearchBar } from \"./index.type\"\nimport \"./index.scss\"\n\nconst SearchBar: React.FC<PropsSearchBar> = ({\n control,\n name,\n placeholder = \"Search\",\n showIcon = true,\n size = \"sm\",\n disabled = false,\n onClear,\n className,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const { value, onChange, onBlur } = field\n const hasValue = !!(value && value.length > 0)\n\n const handleClear = () => {\n onChange(\"\")\n onClear?.()\n inputRef.current?.focus()\n }\n\n return (\n <div className={`DBui-searchBar ${className ?? \"\"}`} data-size={size} data-disabled={disabled}>\n {showIcon && (\n <span className=\"DBui-searchBarIcon\">\n <SearchSvg />\n </span>\n )}\n <input\n ref={inputRef}\n className=\"DBui-searchBarInput\"\n type=\"text\"\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n />\n {hasValue && (\n <button type=\"button\" className=\"DBui-searchBarClear\" onClick={handleClear} disabled={disabled}>\n <XCircleFillSvg />\n </button>\n )}\n </div>\n )\n }}\n />\n )\n}\n\nexport default SearchBar\n","import React from \"react\"\n\nconst IonCheckmarkSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_391_146)\">\n <path\n d=\"M1.08942 4.68117L2.90774 6.40964L6.99994 1.33325\"\n stroke=\"white\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_391_146\">\n <rect width=\"8\" height=\"8\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default IonCheckmarkSvg\n","import React from \"react\"\n\nconst BarSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"8\" height=\"2\" viewBox=\"0 0 8 2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0 1C0 0.447715 0.358172 0 0.8 0H7.2C7.64183 0 8 0.447715 8 1C8 1.55228 7.64183 2 7.2 2H0.8C0.358172 2 0 1.55228 0 1Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nexport default BarSvg\n","// Lib\nimport React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport { LabelMd, LabelLg, Subtitle, Title, CaptionMd, Paragraph } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\nimport IonCheckmarkSvg from \"../../assets/icon-checkmark\"\nimport BarSvg from \"../../assets/bar\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsCheckbox } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: Subtitle,\n xl: Title,\n}\n\nconst DescBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst Checkbox: React.FC<PropsCheckbox> = ({\n control,\n name,\n label,\n caption,\n disabled = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n isVertical = false,\n hint,\n isSuccess,\n options,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const value: (string | number)[] = field.value ?? []\n const { onChange } = field\n const { error, invalid } = fieldState\n const Label = LabelBySize[size]\n const Desc = DescBySize[size]\n\n const toggleValue = (checkedValue: string | number) => {\n if (value.includes(checkedValue)) {\n onChange(value.filter((v) => v !== checkedValue))\n } else {\n onChange([...value, checkedValue])\n }\n }\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-checkboxList\" data-vertical={isVertical} data-size={size}>\n {options.map((data, index) => {\n const isChecked = value.includes(data.value)\n const isIndeterminate = !!data.indeterminate && !isChecked\n\n return (\n <label key={index} className=\"DBui-checkboxItem\" data-disabled={disabled}>\n <span className=\"DBui-checkboxControl\">\n <input\n type=\"checkbox\"\n className=\"DBui-checkboxNative\"\n disabled={disabled}\n checked={isChecked}\n ref={(el) => {\n if (el) el.indeterminate = isIndeterminate\n }}\n onChange={() => toggleValue(data.value)}\n />\n <span\n className=\"DBui-checkboxBox\"\n data-checked={isChecked}\n data-indeterminate={isIndeterminate}\n data-invalid={invalid}\n data-disabled={disabled}\n >\n {isChecked && (\n <span className=\"DBui-checkboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n {isIndeterminate && (\n <span className=\"DBui-checkboxIcon\">\n <BarSvg />\n </span>\n )}\n </span>\n </span>\n <span className=\"DBui-checkboxContent\">\n <Label as=\"span\" weight=\"medium\" className=\"DBui-checkboxLabel\">{data.label}</Label>\n {data.description && <Desc as=\"span\" className=\"DBui-checkboxDescription\">{data.description}</Desc>}\n </span>\n </label>\n )\n })}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default Checkbox\n","// Lib\nimport React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport { LabelMd, LabelLg, Subtitle, Title, CaptionMd, Paragraph } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsRadioButton } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: Subtitle,\n xl: Title,\n}\n\nconst DescBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst RadioButton: React.FC<PropsRadioButton> = ({\n control,\n name,\n label,\n caption,\n disabled = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n isVertical = false,\n hint,\n isSuccess,\n options,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange } = field\n const { error, invalid } = fieldState\n const Label = LabelBySize[size]\n const Desc = DescBySize[size]\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-radioList\" data-vertical={isVertical} data-size={size}>\n {options.map((data, index) => {\n const isChecked = value === data.value\n\n return (\n <label key={index} className=\"DBui-radioItem\" data-disabled={disabled}>\n <span className=\"DBui-radioControl\">\n <input\n type=\"radio\"\n className=\"DBui-radioNative\"\n disabled={disabled}\n checked={isChecked}\n onChange={() => {}}\n onClick={() => {\n if (isChecked) {\n onChange(\"\")\n } else {\n onChange(data.value)\n }\n }}\n />\n <span\n className=\"DBui-radioCircle\"\n data-checked={isChecked}\n data-invalid={invalid}\n data-disabled={disabled}\n >\n {isChecked && <span className=\"DBui-radioDot\" />}\n </span>\n </span>\n <span className=\"DBui-radioContent\">\n <span className=\"DBui-radioLabelRow\">\n <Label as=\"span\" weight=\"medium\" className=\"DBui-radioLabel\">{data.label}</Label>\n {data.image && <span className=\"DBui-radioImage\">{data.image}</span>}\n </span>\n {data.description && <Desc as=\"span\" className=\"DBui-radioDescription\">{data.description}</Desc>}\n </span>\n </label>\n )\n })}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default RadioButton\n","// Lib\nimport React, { useState, useCallback } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport InputBase from \"../input-base\"\nimport Menu from \"../../menu\"\nimport { MenuItem } from \"../../menu\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\nimport Loading from \"../../loading\"\nimport { CaptionSm, CaptionMd, CaptionLg, Paragraph, LabelMd, LabelLg } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsAutoComplete } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\nimport type { MenuSize } from \"../../menu/index.type\"\n\nconst MATCH_WIDTH_OPTIONS = { matchWidth: true } as const\n\nconst MenuSizeByInputSize: Record<InputBaseSize, MenuSize> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n}\n\nconst IconTextBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst EmptyLabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: LabelLg,\n}\n\nconst AutoComplete: React.FC<PropsAutoComplete> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n options,\n loading = false,\n emptyText = \"No results found\",\n children,\n}) => {\n const { open, setOpen, close, triggerRef, menuRef } = useMenuDropdown(MATCH_WIDTH_OPTIONS)\n const [query, setQuery] = useState(\"\")\n\n const filteredOptions = options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))\n\n const IconCaption = IconTextBySize[size]\n const EmptyLabel = EmptyLabelBySize[size]\n\n const openDropdown = useCallback(() => {\n if (!disabled && !readOnly) setOpen(true)\n }, [disabled, readOnly, setOpen])\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n const menuSize = MenuSizeByInputSize[size]\n\n const handleSelect = (optionValue: string | number) => {\n const selected = options.find((o) => o.value === optionValue)\n if (selected) {\n onChange(optionValue)\n setQuery(selected.label)\n }\n close()\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const text = e.target.value\n setQuery(text)\n onChange(\"\")\n openDropdown()\n }\n\n const handleFocus = () => {\n openDropdown()\n }\n\n const handleBlur = () => {\n if (!open) {\n if (!value) setQuery(\"\")\n onBlur()\n }\n }\n\n // sync query if value changes externally\n const selectedOption = options.find((o) => o.value === value)\n if (value && selectedOption && query !== selectedOption.label && !open) {\n setQuery(selectedOption.label)\n }\n\n const showDropdown = open && !disabled && !readOnly\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-autoComplete\">\n <div\n ref={triggerRef}\n className=\"DBui-autoCompleteTrigger\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n type=\"text\"\n value={query}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n <div className=\"DBui-autoCompleteActions\">\n <IconCaption weight=\"medium\" className=\"DBui-autoCompleteIconText\">\n Autofill\n </IconCaption>\n </div>\n </div>\n\n {showDropdown &&\n createPortal(\n <Menu ref={menuRef} className=\"DBui-autoCompleteDropdown\" size={menuSize}>\n {loading ? (\n <div className=\"DBui-autoCompleteLoading\">\n <Loading progress={25} thickness=\"sm\" />\n </div>\n ) : children ? (\n children({ query, onSelect: handleSelect })\n ) : filteredOptions.length === 0 ? (\n <div className=\"DBui-autoCompleteEmpty\" data-size={menuSize}>\n <EmptyLabel weight=\"medium\">{emptyText}</EmptyLabel>\n </div>\n ) : (\n filteredOptions.map((option) => (\n <MenuItem\n key={option.value}\n size={menuSize}\n active={option.value === value}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </MenuItem>\n ))\n )}\n </Menu>,\n document.body,\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default AutoComplete\n","// Lib\nimport React from \"react\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsOnRemove } from \"./index.type\"\n\nconst XIcon: React.FC = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.79 2.79C2.89547 2.68466 3.03844 2.62549 3.1875 2.62549C3.33656 2.62549 3.47953 2.68466 3.585 2.79L6 5.205L8.415 2.79C8.46653 2.73473 8.52863 2.69041 8.59763 2.65966C8.66663 2.62892 8.7411 2.61239 8.81663 2.61106C8.89215 2.60972 8.96715 2.62362 9.0372 2.65191C9.10725 2.6802 9.17085 2.7223 9.22425 2.77572C9.27773 2.82913 9.3198 2.89276 9.34808 2.9628C9.37635 3.03284 9.3903 3.10787 9.38895 3.18339C9.3876 3.25892 9.3711 3.3334 9.34035 3.4024C9.3096 3.4714 9.26528 3.5335 9.21 3.585L6.795 6L9.21 8.415C9.26528 8.46653 9.3096 8.52863 9.34035 8.59763C9.3711 8.66663 9.3876 8.7411 9.38895 8.81662C9.3903 8.89215 9.37635 8.96715 9.34808 9.0372C9.3198 9.10725 9.27773 9.17085 9.22425 9.22425C9.17085 9.27772 9.10725 9.3198 9.0372 9.34807C8.96715 9.37635 8.89215 9.3903 8.81663 9.38895C8.7411 9.3876 8.66663 9.3711 8.59763 9.34035C8.52863 9.3096 8.46653 9.26527 8.415 9.21L6 6.795L3.585 9.21C3.47837 9.30937 3.33733 9.36345 3.1916 9.3609C3.04588 9.35828 2.90684 9.29925 2.80378 9.1962C2.70072 9.09315 2.64169 8.9541 2.63912 8.80838C2.63654 8.66265 2.69064 8.52165 2.79 8.415L5.205 6L2.79 3.585C2.68466 3.47953 2.6255 3.33656 2.6255 3.1875C2.6255 3.03844 2.68466 2.89547 2.79 2.79Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst OnRemove: React.FC<PropsOnRemove> = ({\n size = \"sm\",\n color = \"default\",\n selected = false,\n onClick,\n className,\n}) => {\n return (\n <span\n className={`DBui-onRemove ${className ?? \"\"}`}\n data-size={size}\n data-color={color}\n data-selected={selected}\n onClick={onClick}\n >\n <span className=\"DBui-onRemoveIcon\">\n <XIcon />\n </span>\n </span>\n )\n}\n\nexport default OnRemove\n","// Lib\nimport React from \"react\"\n\n// Components\nimport OnRemove from \"../on-remove\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsChip } from \"./index.type\"\n\nconst Chip: React.FC<PropsChip> = ({\n children,\n color = \"secondary\",\n size = \"sm\",\n disabled = false,\n onRemove,\n className,\n}) => {\n const hasRemove = !!onRemove\n const isWhiteIcon = color !== \"default\" && !disabled\n\n return (\n <span\n className={`DBui-chip ${className ?? \"\"}`}\n data-color={disabled ? \"default\" : color}\n data-size={size}\n data-disabled={disabled}\n data-has-remove={hasRemove}\n >\n {children}\n {hasRemove && (\n <OnRemove\n size={size}\n color={isWhiteIcon ? \"white\" : \"default\"}\n selected\n onClick={(e) => {\n e?.stopPropagation()\n onRemove()\n }}\n />\n )}\n </span>\n )\n}\n\nexport default Chip\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller } from \"react-hook-form\"\n\n// Components\nimport InputBase from \"../input-base\"\nimport Menu from \"../../menu\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\nimport Loading from \"../../loading\"\nimport Chip from \"../../chip\"\nimport ChevronDownSvg from \"../../assets/chevron-down\"\nimport IonCheckmarkSvg from \"../../assets/icon-checkmark\"\nimport { LabelMd, LabelLg, Subtitle } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\nimport type { ChipSize } from \"../../chip/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsMultiSelect } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\nimport type { MenuSize } from \"../../menu/index.type\"\n\nconst MATCH_WIDTH_OPTIONS = { matchWidth: true } as const\n\nconst MenuSizeByInputSize: Record<InputBaseSize, MenuSize> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n}\n\nconst ChipSizeByInputSize: Record<InputBaseSize, ChipSize> = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\",\n xl: \"lg\",\n}\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: Subtitle,\n xl: Subtitle,\n}\n\nconst MultiSelect: React.FC<PropsMultiSelect> = ({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n options,\n loading = false,\n children,\n}) => {\n const { open, toggle, triggerRef, menuRef } = useMenuDropdown(MATCH_WIDTH_OPTIONS)\n\n const chipSize = ChipSizeByInputSize[size]\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const values: (string | number)[] = field.value ?? []\n const { onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const menuSize = MenuSizeByInputSize[size]\n\n const toggleOption = (optionValue: string | number) => {\n if (values.includes(optionValue)) {\n onChange(values.filter((v) => v !== optionValue))\n } else {\n onChange([...values, optionValue])\n }\n }\n\n const handleTriggerClick = () => {\n if (disabled) return\n toggle()\n }\n\n const handleTriggerBlur = () => {\n if (!open) onBlur()\n }\n\n const selectedOptions = options.filter((o) => values.includes(o.value))\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-multiSelect\">\n <div\n ref={triggerRef}\n className=\"DBui-multiSelectTrigger\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-open={open}\n tabIndex={disabled ? undefined : 0}\n onClick={handleTriggerClick}\n onBlur={handleTriggerBlur}\n >\n <div className=\"DBui-multiSelectChips\">\n {selectedOptions.length === 0 && <span className=\"DBui-multiSelectPlaceholder\">{placeholder}</span>}\n {selectedOptions.map((option) => (\n <Chip\n key={option.value}\n size={chipSize}\n disabled={disabled}\n onRemove={() => onChange(values.filter((v) => v !== option.value))}\n >\n {option.label}\n </Chip>\n ))}\n </div>\n <span className=\"DBui-multiSelectIcon\" data-open={open}>\n <ChevronDownSvg />\n </span>\n </div>\n\n {open &&\n createPortal(\n <Menu ref={menuRef} className=\"DBui-multiSelectDropdown\" size={menuSize}>\n {loading ? (\n <div className=\"DBui-multiSelectLoading\">\n <Loading progress={25} thickness=\"sm\" />\n </div>\n ) : children ? (\n children({ values, onToggle: toggleOption })\n ) : (\n options.map((option) => {\n const active = values.includes(option.value)\n return (\n <div\n key={option.value}\n className=\"DBui-multiSelectOption\"\n data-size={menuSize}\n tabIndex={0}\n onClick={() => toggleOption(option.value)}\n >\n <span className=\"DBui-multiSelectOptionCheckbox\" data-checked={active}>\n {active && (\n <span className=\"DBui-multiSelectOptionCheckboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n </span>\n {(() => {\n const OptionLabel = LabelBySize[size]\n return <OptionLabel weight=\"medium\">{option.label}</OptionLabel>\n })()}\n </div>\n )\n })\n )}\n </Menu>,\n document.body,\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default MultiSelect\n","// Lib\nimport React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsToggle } from \"./index.type\"\n\nconst Toggle: React.FC<PropsToggle> = ({ control, name, disabled = false, size = \"sm\" }) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const { value, onChange } = field\n const isChecked = Boolean(value)\n\n return (\n <label className=\"DBui-toggle\" data-size={size} data-disabled={disabled}>\n <input\n type=\"checkbox\"\n className=\"DBui-toggleNative\"\n checked={isChecked}\n disabled={disabled}\n onChange={() => onChange(!value)}\n />\n <span className=\"DBui-toggleTrack\" data-checked={isChecked} data-disabled={disabled}>\n <span className=\"DBui-toggleThumb\" />\n </span>\n </label>\n )\n }}\n />\n )\n}\n\nexport default Toggle\n","import { useEffect, useState, useCallback } from \"react\"\n\nexport const useOverlay = (open: boolean, onClose: () => void) => {\n const [removing, setRemoving] = useState(false)\n\n const handleClose = useCallback(() => {\n setRemoving(true)\n setTimeout(() => {\n setRemoving(false)\n onClose()\n }, 200)\n }, [onClose])\n\n useEffect(() => {\n if (!open) return\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") handleClose()\n }\n document.addEventListener(\"keydown\", handleEscape)\n return () => document.removeEventListener(\"keydown\", handleEscape)\n }, [open, handleClose])\n\n const visible = open || removing\n\n return { removing, visible, handleClose }\n}\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\n\n// Components\nimport { H6 } from \"../typography\"\nimport Button from \"../button\"\nimport OnRemove from \"../on-remove\"\nimport { useOverlay } from \"../overlay/useOverlay\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsModal } from \"./index.type\"\n\nconst Modal: React.FC<PropsModal> = ({\n open,\n onClose,\n title,\n children,\n footer,\n onBack,\n onNext,\n onDelete,\n backText = \"Back\",\n nextText = \"Next\",\n deleteText = \"Delete\",\n}) => {\n const { removing, visible, handleClose } = useOverlay(open, onClose)\n\n if (!visible) return null\n\n const hasBuiltInFooter = onBack || onNext || onDelete\n const hasDelete = !!onDelete\n\n return createPortal(\n <div className=\"DBui-modalBackdrop\" data-removing={removing} onClick={handleClose}>\n <div className=\"DBui-modal\" data-removing={removing} onClick={(e) => e.stopPropagation()}>\n <div className=\"DBui-modalHeader\">\n <div className=\"DBui-modalHeaderTitle\">\n {title && (\n <H6 as=\"span\" weight=\"bold\">\n {title}\n </H6>\n )}\n </div>\n <OnRemove size=\"lg\" selected onClick={handleClose} className=\"DBui-modalHeaderClose\" />\n </div>\n\n <div className=\"DBui-modalBody\">{children}</div>\n\n {footer\n ? footer\n : hasBuiltInFooter && (\n <div className=\"DBui-modalFooter\" data-has-delete={hasDelete}>\n {onDelete && (\n <Button size=\"lg\" variant=\"outline\" color=\"danger\" onClick={onDelete}>\n {deleteText}\n </Button>\n )}\n <div className=\"DBui-modalFooterRight\">\n {onBack && (\n <Button size=\"lg\" color=\"neutral\" onClick={onBack}>\n {backText}\n </Button>\n )}\n {onNext && (\n <Button size=\"lg\" color=\"primary\" onClick={onNext}>\n {nextText}\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n </div>,\n document.body,\n )\n}\n\nexport default Modal\n","// Lib\nimport React, { useCallback } from \"react\"\nimport { createPortal } from \"react-dom\"\n\n// Components\nimport { H5, LabelLg } from \"../typography\"\nimport Button from \"../button\"\nimport OnRemove from \"../on-remove\"\nimport { useOverlay } from \"../overlay/useOverlay\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsDialogBox } from \"./index.type\"\n\nconst DialogBox: React.FC<PropsDialogBox> = ({\n open,\n onClose,\n title,\n children,\n onConfirm,\n onCancel,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n confirmColor = \"primary\",\n showCancel = true,\n}) => {\n const { removing, visible, handleClose } = useOverlay(open, onClose)\n\n const handleCancel = useCallback(() => {\n onCancel?.()\n handleClose()\n }, [onCancel, handleClose])\n\n const handleConfirm = useCallback(() => {\n onConfirm?.()\n handleClose()\n }, [onConfirm, handleClose])\n\n if (!visible) return null\n\n return createPortal(\n <div className=\"DBui-dialogBackdrop\" data-removing={removing} onClick={handleClose}>\n <div className=\"DBui-dialogBox\" data-removing={removing} onClick={(e) => e.stopPropagation()}>\n <div className=\"DBui-dialogBoxContent\">\n <div className=\"DBui-dialogBoxMain\">\n {title && (\n <H5 as=\"span\" weight=\"semibold\">\n {title}\n </H5>\n )}\n {children && <LabelLg weight=\"medium\">{children}</LabelLg>}\n </div>\n <OnRemove size=\"lg\" selected onClick={handleClose} className=\"DBui-dialogBoxClose\" />\n </div>\n {(onConfirm || showCancel) && (\n <div className=\"DBui-dialogBoxActions\">\n {showCancel && (\n <Button size=\"lg\" variant=\"outline\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </Button>\n )}\n {onConfirm && (\n <Button size=\"lg\" color={confirmColor} onClick={handleConfirm}>\n {confirmText}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>,\n document.body,\n )\n}\n\nexport default DialogBox\n","import React from \"react\"\n\nconst InfoCircleFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 28C21.732 28 28 21.732 28 14C28 6.26801 21.732 0 14 0C6.26801 0 0 6.26801 0 14C0 21.732 6.26801 28 14 28ZM15.6287 11.5288L13.8753 19.7627C13.7523 20.3574 13.9266 20.6958 14.4085 20.6958C14.7469 20.6958 15.2596 20.5728 15.6082 20.2651L15.4544 20.9932C14.952 21.5981 13.8446 22.0391 12.8909 22.0391C11.6605 22.0391 11.1375 21.3008 11.4759 19.7319L12.7679 13.6616C12.8807 13.1489 12.7781 12.9644 12.2654 12.8413L11.4759 12.6978L11.6195 12.0312L15.6287 11.5288ZM14 9.625C13.0335 9.625 12.25 8.8415 12.25 7.875C12.25 6.9085 13.0335 6.125 14 6.125C14.9665 6.125 15.75 6.9085 15.75 7.875C15.75 8.8415 14.9665 9.625 14 9.625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default InfoCircleFillSvg\n","import React from \"react\"\n\nconst CheckCircleFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14ZM21.0531 8.69692C20.5405 8.18436 19.7095 8.18436 19.1969 8.69692C19.1845 8.7093 19.1729 8.72241 19.1621 8.73618L13.0854 16.4793L9.42178 12.8156C8.90922 12.3031 8.07819 12.3031 7.56563 12.8156C7.05307 13.3282 7.05307 14.1592 7.56563 14.6718L12.1969 19.3031C12.7095 19.8156 13.5405 19.8156 14.0531 19.3031C14.0645 19.2917 14.0753 19.2796 14.0853 19.267L21.0717 10.5341C21.5656 10.0202 21.5593 9.2032 21.0531 8.69692Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default CheckCircleFillSvg\n","import React from \"react\"\n\nconst WarningFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"25\" viewBox=\"0 0 28 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.7176 0.991238C14.9409 -0.330413 13.0645 -0.330413 12.2878 0.991238L0.288095 21.4079C-0.511712 22.7687 0.448488 24.5 2.00303 24.5H26.0024C27.5569 24.5 28.5171 22.7687 27.7173 21.4079L15.7176 0.991238ZM14 7C14.937 7 15.6691 7.809 15.5759 8.74131L14.9621 14.8793C14.9126 15.3736 14.4967 15.75 14 15.75C13.5033 15.75 13.0874 15.3736 13.0379 14.8793L12.4241 8.74132C12.3309 7.809 13.063 7 14 7ZM14.0027 17.5C14.9692 17.5 15.7527 18.2835 15.7527 19.25C15.7527 20.2165 14.9692 21 14.0027 21C13.0362 21 12.2527 20.2165 12.2527 19.25C12.2527 18.2835 13.0362 17.5 14.0027 17.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default WarningFillSvg\n","import type { ToastItem, ToastType, ToastOptions } from \"./index.type\"\n\nlet toasts: ToastItem[] = []\nconst listeners = new Set<() => void>()\nlet counter = 0\n\nconst emit = () => {\n listeners.forEach((l) => l())\n}\n\nexport const toastStore = {\n subscribe(listener: () => void) {\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n }\n },\n getSnapshot() {\n return toasts\n },\n add(type: ToastType, body: React.ReactNode, options: ToastOptions = {}) {\n const id = `toast-${++counter}`\n const item: ToastItem = {\n id,\n type,\n title: options.title,\n body,\n duration: options.duration ?? 4000,\n }\n toasts = [...toasts, item]\n emit()\n return id\n },\n remove(id: string) {\n toasts = toasts.map((t) => (t.id === id ? { ...t, removing: true } : t))\n emit()\n setTimeout(() => {\n toasts = toasts.filter((t) => t.id !== id)\n emit()\n }, 300)\n },\n clear() {\n toasts = []\n emit()\n },\n}\n","import React, { useEffect, useSyncExternalStore } from \"react\"\nimport { createPortal } from \"react-dom\"\n\nimport { H6, LabelLg } from \"../typography\"\nimport InfoCircleFillSvg from \"../assets/info-circle-fill\"\nimport XCircleFillSvg from \"../assets/x-circle-fill\"\nimport CheckCircleFillSvg from \"../assets/check-circle-fill\"\nimport WarningFillSvg from \"../assets/warning-fill\"\nimport OnRemove from \"../on-remove\"\n\nimport \"./index.scss\"\nimport { toastStore } from \"./store\"\nimport type { ToastItem, ToastType, ToastPosition, PropsToaster } from \"./index.type\"\n\nconst IconByType: Record<ToastType, React.FC<React.SVGProps<SVGSVGElement>>> = {\n default: InfoCircleFillSvg,\n danger: XCircleFillSvg,\n success: CheckCircleFillSvg,\n warning: WarningFillSvg,\n info: InfoCircleFillSvg,\n}\n\nconst getAnimDir = (position: ToastPosition) => {\n if (position.includes(\"right\")) return \"right\"\n if (position.includes(\"left\")) return \"left\"\n if (position.startsWith(\"top\")) return \"down\"\n return \"up\"\n}\n\nconst ToastCard: React.FC<{ item: ToastItem; animDir: string }> = ({ item, animDir }) => {\n const Icon = IconByType[item.type]\n\n useEffect(() => {\n if (item.duration <= 0) return\n const timer = setTimeout(() => toastStore.remove(item.id), item.duration)\n return () => clearTimeout(timer)\n }, [item.id, item.duration])\n\n return (\n <div className=\"DBui-toast\" data-type={item.type} data-removing={item.removing} data-anim-dir={animDir}>\n <div className=\"DBui-toastContent\">\n <div className=\"DBui-toastMain\">\n <span className=\"DBui-toastIcon\">\n <Icon />\n </span>\n <div className=\"DBui-toastText\">\n {item.title && (\n <H6 as=\"span\" weight=\"bold\" className=\"DBui-toastTitle\">\n {item.title}\n </H6>\n )}\n {item.body && (\n <LabelLg as=\"span\" weight=\"text\" className=\"DBui-toastBody\">\n {item.body}\n </LabelLg>\n )}\n </div>\n </div>\n <OnRemove size=\"sm\" selected onClick={() => toastStore.remove(item.id)} className=\"DBui-toastClose\" />\n </div>\n </div>\n )\n}\n\nexport const Toaster: React.FC<PropsToaster> = ({ position = \"top-right\", maxToasts = 5 }) => {\n const toasts = useSyncExternalStore(toastStore.subscribe, toastStore.getSnapshot)\n\n const visible = toasts.slice(-maxToasts)\n const animDir = getAnimDir(position)\n\n if (visible.length === 0) return null\n\n return createPortal(\n <div className=\"DBui-toaster\" data-position={position}>\n {visible.map((item) => (\n <ToastCard key={item.id} item={item} animDir={animDir} />\n ))}\n </div>,\n document.body,\n )\n}\n\nexport default Toaster\n","import type { ReactNode } from \"react\"\nimport { toastStore } from \"./store\"\nimport type { ToastOptions } from \"./index.type\"\n\nconst createToast = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"default\", body, options)\n\ncreateToast.success = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"success\", body, options)\ncreateToast.error = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"danger\", body, options)\ncreateToast.warning = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"warning\", body, options)\ncreateToast.info = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"info\", body, options)\ncreateToast.dismiss = (id: string) => toastStore.remove(id)\ncreateToast.clear = () => toastStore.clear()\n\nexport const toast = createToast\n","import React from \"react\"\n\nconst StarFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\" />\n </svg>\n )\n}\n\nexport default StarFillSvg\n","import React, { useState } from \"react\"\nimport StarFillSvg from \"../assets/star-fill\"\n\nimport \"./index.scss\"\nimport type { PropsRate } from \"./index.type\"\n\ntype StarState = \"full\" | \"half\" | \"empty\"\n\nconst getStarState = (index: number, displayValue: number): StarState => {\n if (displayValue >= index) return \"full\"\n if (displayValue >= index - 0.5) return \"half\"\n return \"empty\"\n}\n\nconst Rate: React.FC<PropsRate> = ({ value = 0, count = 5, onChange, readOnly = false, className }) => {\n const [hoverValue, setHoverValue] = useState<number | null>(null)\n const displayValue = hoverValue ?? value\n\n const handleMouseMove = (index: number, e: React.MouseEvent) => {\n if (readOnly) return\n const rect = e.currentTarget.getBoundingClientRect()\n const isLeftHalf = e.clientX - rect.left < rect.width / 2\n setHoverValue(isLeftHalf ? index - 0.5 : index)\n }\n\n const handleClick = (index: number, e: React.MouseEvent) => {\n if (readOnly || !onChange) return\n const rect = e.currentTarget.getBoundingClientRect()\n const isLeftHalf = e.clientX - rect.left < rect.width / 2\n onChange(isLeftHalf ? index - 0.5 : index)\n }\n\n return (\n <div className={`DBui-rate ${className ?? \"\"}`} data-readonly={readOnly} onMouseLeave={() => setHoverValue(null)}>\n {Array.from({ length: count }, (_, i) => {\n const index = i + 1\n const state = getStarState(index, displayValue)\n return (\n <button\n key={i}\n className=\"DBui-rateStar\"\n data-state={state}\n type=\"button\"\n onMouseMove={(e) => handleMouseMove(index, e)}\n onClick={(e) => handleClick(index, e)}\n >\n {state === \"half\" ? (\n <>\n <StarFillSvg className=\"DBui-rateStarEmpty\" />\n <StarFillSvg className=\"DBui-rateStarFilled\" />\n </>\n ) : (\n <StarFillSvg />\n )}\n </button>\n )\n })}\n </div>\n )\n}\n\nexport default Rate\n","import React, { useId, useRef, useState, useCallback, useEffect } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Subtitle, LabelLg } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsTooltip } from \"./index.type\"\n\nconst Tooltip: React.FC<PropsTooltip> = ({\n children,\n title,\n body,\n action,\n size = \"sm\",\n placement = \"top\",\n className,\n}) => {\n const [open, setOpen] = useState(false)\n const id = useId().replace(/:/g, \"\")\n const anchorName = `--tooltip-${id}`\n const hoverRef = useRef({ trigger: false, popover: false })\n const timeoutRef = useRef<number>()\n\n const updateOpen = useCallback(() => {\n clearTimeout(timeoutRef.current)\n if (hoverRef.current.trigger || hoverRef.current.popover) {\n setOpen(true)\n } else {\n timeoutRef.current = window.setTimeout(() => setOpen(false), 100)\n }\n }, [])\n\n useEffect(() => {\n return () => clearTimeout(timeoutRef.current)\n }, [])\n\n return (\n <>\n <span\n className={`DBui-tooltipAnchor ${className ?? \"\"}`}\n style={{ anchorName } as React.CSSProperties}\n onMouseEnter={() => {\n hoverRef.current.trigger = true\n updateOpen()\n }}\n onMouseLeave={() => {\n hoverRef.current.trigger = false\n updateOpen()\n }}\n >\n {children}\n </span>\n {open &&\n createPortal(\n <div\n className=\"DBui-tooltipPopover\"\n style={{ positionAnchor: anchorName } as React.CSSProperties}\n data-placement={placement}\n data-size={size}\n role=\"tooltip\"\n onMouseEnter={() => {\n hoverRef.current.popover = true\n updateOpen()\n }}\n onMouseLeave={() => {\n hoverRef.current.popover = false\n updateOpen()\n }}\n >\n <div className=\"DBui-tooltipArrow\" />\n <div className=\"DBui-tooltipCard\">\n <Subtitle as=\"span\" weight=\"bold\">\n {title}\n </Subtitle>\n {body &&\n (size === \"sm\" ? (\n <LabelLg as=\"span\" weight=\"medium\">\n {body}\n </LabelLg>\n ) : (\n <Subtitle as=\"span\" weight=\"text\">\n {body}\n </Subtitle>\n ))}\n {action}\n </div>\n </div>,\n document.body,\n )}\n </>\n )\n}\n\nexport default Tooltip\n","import React from \"react\"\n\nconst PlusSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.99992 5.8335V10.0002M9.99992 10.0002V14.1668M9.99992 10.0002H5.83325M9.99992 10.0002H14.1666\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n />\n </svg>\n )\n}\n\nexport default PlusSvg\n","import React from \"react\"\n\nconst MinusSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M5.83333 10H9.99999H14.1667\" stroke=\"currentColor\" stroke-width=\"1.66667\" stroke-linecap=\"round\" />\n </svg>\n )\n}\n\nexport default MinusSvg\n","import React from \"react\"\n\nconst TrashSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M5.6875 0.875H8.3125C8.55413 0.875 8.75 1.07088 8.75 1.3125V2.1875H5.25V1.3125C5.25 1.07088 5.44588 0.875 5.6875 0.875ZM9.625 2.1875V1.3125C9.625 0.587626 9.03737 0 8.3125 0H5.6875C4.96263 0 4.375 0.587626 4.375 1.3125V2.1875H2.19245C2.18947 2.18747 2.1865 2.18747 2.18351 2.1875H1.3125C1.07088 2.1875 0.875 2.38338 0.875 2.625C0.875 2.86662 1.07088 3.0625 1.3125 3.0625H1.7836L2.52977 12.3896C2.60252 13.299 3.36181 14 4.27419 14H9.72581C10.6382 14 11.3975 13.299 11.4702 12.3896L12.2164 3.0625H12.6875C12.9291 3.0625 13.125 2.86662 13.125 2.625C13.125 2.38338 12.9291 2.1875 12.6875 2.1875H11.8165C11.8135 2.18747 11.8105 2.18747 11.8076 2.1875H9.625ZM11.3386 3.0625L10.598 12.3198C10.5616 12.7745 10.182 13.125 9.72581 13.125H4.27419C3.818 13.125 3.43836 12.7745 3.40198 12.3198L2.6614 3.0625H11.3386ZM4.78681 3.93825C5.02802 3.92407 5.23506 4.1081 5.24925 4.34931L5.68675 11.7868C5.70093 12.028 5.5169 12.2351 5.27569 12.2492C5.03448 12.2634 4.82744 12.0794 4.81325 11.8382L4.37576 4.40069C4.36157 4.15948 4.5456 3.95244 4.78681 3.93825ZM9.21319 3.93825C9.4544 3.95244 9.63843 4.15948 9.62424 4.40069L9.18674 11.8382C9.17256 12.0794 8.96552 12.2634 8.72431 12.2492C8.4831 12.2351 8.29907 12.028 8.31326 11.7868L8.75076 4.34931C8.76494 4.1081 8.97198 3.92407 9.21319 3.93825ZM7 3.9375C7.24162 3.9375 7.4375 4.13338 7.4375 4.375V11.8125C7.4375 12.0541 7.24162 12.25 7 12.25C6.75838 12.25 6.5625 12.0541 6.5625 11.8125V4.375C6.5625 4.13338 6.75838 3.9375 7 3.9375Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default TrashSvg\n","import React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\nimport { Subtitle } from \"../typography\"\nimport PlusSvg from \"../assets/plus\"\nimport MinusSvg from \"../assets/minus\"\nimport TrashSvg from \"../assets/trash\"\n\nimport \"./index.scss\"\nimport type { PropsQuantity } from \"./index.type\"\n\nconst Quantity: React.FC<PropsQuantity> = ({\n control,\n name,\n min = 0,\n max = 99,\n size = \"sm\",\n variant = \"quantity\",\n disabled = false,\n}) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const { value, onChange } = field\n const numValue = value ?? min\n const isAtMin = numValue <= min\n const isAtMax = numValue >= max\n const showTrash = variant === \"cart\" && numValue <= min + 1\n\n return (\n <div className=\"DBui-quantity\" data-size={size} data-disabled={disabled}>\n <button\n className=\"DBui-quantityButton\"\n onClick={() => !isAtMin && onChange(numValue - 1)}\n disabled={disabled || (isAtMin && variant === \"quantity\")}\n type=\"button\"\n >\n {showTrash ? <TrashSvg /> : <MinusSvg />}\n </button>\n <div className=\"DBui-quantityValue\">\n <Subtitle weight=\"medium\">{numValue}</Subtitle>\n </div>\n <button\n className=\"DBui-quantityButton\"\n onClick={() => !isAtMax && onChange(numValue + 1)}\n disabled={disabled || isAtMax}\n type=\"button\"\n >\n <PlusSvg />\n </button>\n </div>\n )\n }}\n />\n )\n}\n\nexport default Quantity\n","import React from \"react\"\n\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport { LabelLg } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsBreadcrumbs } from \"./index.type\"\n\nconst Breadcrumbs: React.FC<PropsBreadcrumbs> = ({ items, className }) => {\n return (\n <nav className={`DBui-breadcrumbs ${className ?? \"\"}`}>\n {items.map((item, index) => {\n const isCurrent = index === items.length - 1\n\n return (\n <React.Fragment key={index}>\n {index > 0 && (\n <span className=\"DBui-breadcrumbsSeparator\">\n <ChevronRightSvg />\n </span>\n )}\n {item.href && !isCurrent ? (\n <a className=\"DBui-breadcrumbsItem\" href={item.href} data-current={isCurrent}>\n <LabelLg as=\"span\" weight=\"medium\">\n {item.label}\n </LabelLg>\n </a>\n ) : (\n <span\n className=\"DBui-breadcrumbsItem\"\n data-current={isCurrent}\n onClick={!isCurrent ? item.onClick : undefined}\n >\n <LabelLg as=\"span\" weight=\"medium\">\n {item.label}\n </LabelLg>\n </span>\n )}\n </React.Fragment>\n )\n })}\n </nav>\n )\n}\n\nexport default Breadcrumbs\n","import React from \"react\"\n\nimport \"./index.scss\"\nimport type { PropsProgressBar } from \"./index.type\"\n\nconst ProgressBar: React.FC<PropsProgressBar> = ({ value, size = \"sm\", className }) => {\n const clampedValue = Math.min(100, Math.max(0, value))\n\n return (\n <div className={`DBui-progressBar ${className ?? \"\"}`} data-size={size} role=\"progressbar\" aria-valuenow={clampedValue} aria-valuemin={0} aria-valuemax={100}>\n <div className=\"DBui-progressBarFill\" style={{ width: `${clampedValue}%` }} />\n </div>\n )\n}\n\nexport default ProgressBar\n","import React from \"react\"\n\nconst UploadSimpleSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 9.49991V12.9999C14 13.2651 13.8946 13.5195 13.7071 13.707C13.5196 13.8945 13.2652 13.9999 13 13.9999H3C2.73478 13.9999 2.48043 13.8945 2.29289 13.707C2.10536 13.5195 2 13.2651 2 12.9999V9.49991C2 9.3673 2.05268 9.24012 2.14645 9.14635C2.24021 9.05258 2.36739 8.99991 2.5 8.99991C2.63261 8.99991 2.75979 9.05258 2.85355 9.14635C2.94732 9.24012 3 9.3673 3 9.49991V12.9999H13V9.49991C13 9.3673 13.0527 9.24012 13.1464 9.14635C13.2402 9.05258 13.3674 8.99991 13.5 8.99991C13.6326 8.99991 13.7598 9.05258 13.8536 9.14635C13.9473 9.24012 14 9.3673 14 9.49991ZM5.85375 5.35366L7.5 3.70678V9.49991C7.5 9.63251 7.55268 9.75969 7.64645 9.85346C7.74021 9.94723 7.86739 9.9999 8 9.9999C8.13261 9.9999 8.25979 9.94723 8.35355 9.85346C8.44732 9.75969 8.5 9.63251 8.5 9.49991V3.70678L10.1462 5.35366C10.2401 5.44748 10.3673 5.50018 10.5 5.50018C10.6327 5.50018 10.7599 5.44748 10.8538 5.35366C10.9476 5.25984 11.0003 5.13259 11.0003 4.99991C11.0003 4.86722 10.9476 4.73998 10.8538 4.64615L8.35375 2.14615C8.30731 2.09967 8.25217 2.06279 8.19147 2.03763C8.13077 2.01246 8.06571 1.99951 8 1.99951C7.93429 1.99951 7.86923 2.01246 7.80853 2.03763C7.74783 2.06279 7.69269 2.09967 7.64625 2.14615L5.14625 4.64615C5.05243 4.73998 4.99972 4.86722 4.99972 4.99991C4.99972 5.13259 5.05243 5.25984 5.14625 5.35366C5.24007 5.44748 5.36732 5.50018 5.5 5.50018C5.63268 5.50018 5.75993 5.44748 5.85375 5.35366Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default UploadSimpleSvg\n","import React, { useRef } from \"react\"\n\nimport UploadSimpleSvg from \"../assets/upload-simple\"\nimport OnRemove from \"../on-remove\"\nimport ProgressBar from \"../progress-bar\"\nimport { LabelLg, LabelMd, Paragraph } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsFileUploader } from \"./index.type\"\n\nconst FileUploader: React.FC<PropsFileUploader> = ({\n size = \"sm\",\n variant = \"default\",\n preview,\n progress,\n onChange,\n onDelete,\n accept,\n className,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const status = preview ? \"uploaded\" : progress != null ? \"uploading\" : \"primary\"\n\n const handleClick = () => {\n if (status !== \"uploaded\") {\n inputRef.current?.click()\n }\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0] ?? null\n onChange?.(file)\n e.target.value = \"\"\n }\n\n const Label =\n size === \"md\" && status === \"primary\"\n ? LabelLg\n : size === \"md\"\n ? LabelMd\n : status === \"uploading\"\n ? Paragraph\n : LabelMd\n\n return (\n <div\n className={`DBui-fileUploader ${className ?? \"\"}`}\n data-size={size}\n data-variant={variant}\n data-status={status}\n onClick={handleClick}\n >\n {status === \"primary\" && (\n <div className=\"DBui-fileUploaderInner\">\n <span className=\"DBui-fileUploaderIcon\">\n <UploadSimpleSvg width=\"100%\" height=\"100%\" />\n </span>\n <Label as=\"span\" weight=\"medium\" className=\"DBui-fileUploaderLabel\">\n Upload\n </Label>\n </div>\n )}\n\n {status === \"uploading\" && (\n <div className=\"DBui-fileUploaderInner\">\n <Label as=\"span\" weight=\"medium\" className=\"DBui-fileUploaderLabel\">\n Uploading\n </Label>\n <ProgressBar value={progress ?? 0} size=\"xs\" className=\"DBui-fileUploaderProgress\" />\n </div>\n )}\n\n {status === \"uploaded\" && (\n <div className=\"DBui-fileUploaderPreviewWrapper\">\n <img className=\"DBui-fileUploaderPreview\" src={preview} alt=\"\" />\n {onDelete && (\n <OnRemove\n size={size === \"sm\" ? \"sm\" : \"md\"}\n color=\"default\"\n selected\n className=\"DBui-fileUploaderDelete\"\n onClick={(e) => {\n e?.stopPropagation()\n onDelete()\n }}\n />\n )}\n </div>\n )}\n\n <input ref={inputRef} type=\"file\" accept={accept} className=\"DBui-fileUploaderInput\" onChange={handleChange} />\n </div>\n )\n}\n\nexport default FileUploader\n","import React from \"react\"\n\nconst InboxSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_206_14354)\">\n <g clip-path=\"url(#clip1_206_14354)\">\n <path\n d=\"M33.0573 8.99927C34.4243 8.99927 35.718 9.62033 36.572 10.6877L47.6706 24.5618C47.9236 24.878 48.0382 25.284 47.988 25.6858L46.8161 35.0579C46.5344 37.3095 44.6206 38.9993 42.3513 38.9993H5.64816C3.37884 38.9993 1.464 37.3096 1.18234 35.0579L0.0114441 25.6858C-0.0387837 25.284 0.0748804 24.878 0.32785 24.5618L11.4275 10.6877C12.2814 9.62048 13.5743 8.99938 14.9411 8.99927H33.0573ZM4.15988 34.6858C4.25393 35.4362 4.89185 35.9993 5.64816 35.9993H42.3513C43.1076 35.9993 43.7455 35.4362 43.8396 34.6858L44.8005 26.9993H31.3493C30.6544 30.4226 27.6281 32.9992 23.9997 32.9993C20.3713 32.9993 17.3451 30.4226 16.6501 26.9993H3.19894L4.15988 34.6858ZM14.9411 11.9993C14.4857 11.9994 14.0548 12.2062 13.7702 12.5618L4.62082 23.9993H17.9997C18.8281 23.9993 19.4997 24.6709 19.4997 25.4993C19.4997 27.9846 21.5144 29.9993 23.9997 29.9993C26.485 29.9992 28.4997 27.9845 28.4997 25.4993C28.4997 24.6708 29.1713 23.9993 29.9997 23.9993H43.3786L34.2292 12.5618C33.9446 12.2061 33.5129 11.9993 33.0573 11.9993H14.9411Z\"\n fill=\"currentColor\"\n />\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_206_14354\">\n <rect width=\"48\" height=\"48\" fill=\"white\" />\n </clipPath>\n <clipPath id=\"clip1_206_14354\">\n <rect width=\"48\" height=\"48\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default InboxSvg\n","import React from \"react\"\n\nconst FileEarmarkSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M12.25 3.9375V12.25C12.25 13.2165 11.4665 14 10.5 14H3.5C2.5335 14 1.75 13.2165 1.75 12.25V1.75C1.75 0.783501 2.5335 0 3.5 0H8.3125L12.25 3.9375ZM9.625 3.9375C8.90013 3.9375 8.3125 3.34987 8.3125 2.625V0.875H3.5C3.01675 0.875 2.625 1.26675 2.625 1.75V12.25C2.625 12.7332 3.01675 13.125 3.5 13.125H10.5C10.9832 13.125 11.375 12.7332 11.375 12.25V3.9375H9.625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default FileEarmarkSvg\n","import React from \"react\"\n\nconst ImageBrokenSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_169_124944)\">\n <g clip-path=\"url(#clip1_169_124944)\">\n <path\n d=\"M35.2525 10.8743C37.3236 10.8743 39.0025 12.5532 39.0025 14.6243V33.3743C39.0025 35.4453 37.3236 37.1243 35.2525 37.1243H12.7525C10.6815 37.1242 9.0025 35.4453 9.0025 33.3743V14.6243C9.0025 12.5532 10.6815 10.8743 12.7525 10.8743H35.2525ZM12.7525 12.7493C11.717 12.7493 10.8775 13.5888 10.8775 14.6243V31.4993L15.8394 27.0862C16.1554 26.7702 16.6512 26.7211 17.023 26.969L22.0084 30.2932L28.9644 23.3362C29.2496 23.051 29.6856 22.9802 30.0464 23.1604L37.1275 26.8118V14.6243C37.1275 13.5887 36.288 12.7493 35.2525 12.7493H12.7525ZM17.44 16.4993C18.9933 16.4993 20.2525 17.7585 20.2525 19.3118C20.2525 20.8651 18.9933 22.1243 17.44 22.1243C15.8867 22.1242 14.6275 20.8651 14.6275 19.3118C14.6275 17.7585 15.8867 16.4993 17.44 16.4993Z\"\n fill=\"currentColor\"\n />\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_169_124944\">\n <rect width=\"30\" height=\"30\" fill=\"white\" transform=\"translate(9 9)\" />\n </clipPath>\n <clipPath id=\"clip1_169_124944\">\n <rect width=\"30\" height=\"30\" fill=\"white\" transform=\"translate(9 9)\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default ImageBrokenSvg\n","import React from \"react\"\n\nimport FileEarmarkSvg from \"../assets/file-earmark\"\nimport ImageBrokenSvg from \"../assets/image-broken\"\nimport TrashSvg from \"../assets/trash\"\nimport { Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsUploadListItem } from \"./index.type\"\n\nconst UploadListItem: React.FC<PropsUploadListItem> = ({\n type = \"file\",\n name,\n preview,\n error = false,\n onRemove,\n className,\n}) => {\n return (\n <div className={`DBui-uploadListItem ${className ?? \"\"}`} data-type={type} data-error={error}>\n <div className=\"DBui-uploadListItemWrapper\">\n {type === \"file\" && <FileEarmarkSvg className=\"DBui-uploadListItemFileIcon\" />}\n\n {type === \"image\" && !error && (\n <img className=\"DBui-uploadListItemThumbnail\" src={preview} alt={name} />\n )}\n\n {type === \"image\" && error && (\n <span className=\"DBui-uploadListItemErrorIcon\">\n <ImageBrokenSvg />\n </span>\n )}\n\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-uploadListItemName\">\n {name}\n </Subtitle>\n </div>\n\n {onRemove && (\n <button\n className=\"DBui-uploadListItemRemove\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove()\n }}\n >\n <TrashSvg width=\"100%\" height=\"100%\" />\n </button>\n )}\n </div>\n )\n}\n\nexport default UploadListItem\n","import React, { useRef, useState } from \"react\"\n\nimport InboxSvg from \"../assets/inbox\"\nimport { LabelMd, Subtitle } from \"../typography\"\nimport UploadListItem from \"../upload-list-item\"\n\nimport \"./index.scss\"\nimport type { PropsUploadDragger } from \"./index.type\"\n\nconst UploadDragger: React.FC<PropsUploadDragger> = ({\n title = \"Click or drag file to this area to upload\",\n description = \"Support for a single or bulk upload. Maximum file size 2MB.\",\n files,\n onChange,\n onRemove,\n accept,\n multiple = false,\n className,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const [dragging, setDragging] = useState(false)\n\n const handleClick = () => {\n inputRef.current?.click()\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.files)\n e.target.value = \"\"\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n setDragging(true)\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n setDragging(false)\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n setDragging(false)\n onChange?.(e.dataTransfer.files)\n }\n\n return (\n <div className={`DBui-uploadDragger ${className ?? \"\"}`}>\n <div\n className=\"DBui-uploadDraggerDropzone\"\n data-dragging={dragging}\n onClick={handleClick}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <span className=\"DBui-uploadDraggerIcon\">\n <InboxSvg width=\"100%\" height=\"100%\" />\n </span>\n <div className=\"DBui-uploadDraggerText\">\n <Subtitle as=\"p\" className=\"DBui-uploadDraggerTitle\">\n {title}\n </Subtitle>\n <LabelMd as=\"p\" weight=\"medium\" className=\"DBui-uploadDraggerDescription\">\n {description}\n </LabelMd>\n </div>\n </div>\n\n {files && files.length > 0 && (\n <div className=\"DBui-uploadDraggerFiles\">\n {files.map((file, index) => (\n <UploadListItem\n key={index}\n type=\"file\"\n name={file.name}\n error={file.error}\n onRemove={onRemove ? () => onRemove(index) : undefined}\n />\n ))}\n </div>\n )}\n\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"DBui-uploadDraggerInput\"\n onChange={handleChange}\n />\n </div>\n )\n}\n\nexport default UploadDragger\n","import React from \"react\"\n\nconst EmptyBasicSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"121\" height=\"100\" viewBox=\"0 0 121 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M60.6033 99.4921C85.237 99.4921 105.207 95.7607 105.207 91.1579C105.207 86.555 85.237 82.8237 60.6033 82.8237C35.9696 82.8237 16 86.555 16 91.1579C16 95.7607 35.9696 99.4921 60.6033 99.4921Z\"\n fill=\"#F5F5F7\"\n fill-opacity=\"0.8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M96.2855 66.6737L80.5454 47.3019C79.7901 46.3901 78.6862 45.8381 77.5237 45.8381H43.6816C42.5197 45.8381 41.4158 46.3901 40.6605 47.3019L24.9211 66.6737V76.7941H96.2862V66.6737H96.2855Z\"\n fill=\"#AEB8C2\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M38.2566 20.8355H82.9493C83.6473 20.8355 84.3166 21.1128 84.8102 21.6063C85.3037 22.0998 85.5809 22.7692 85.5809 23.4671V84.8776C85.5809 85.5755 85.3037 86.2449 84.8102 86.7384C84.3166 87.2319 83.6473 87.5092 82.9493 87.5092H38.2566C37.5586 87.5092 36.8893 87.2319 36.3958 86.7384C35.9023 86.2449 35.625 85.5755 35.625 84.8776V23.4671C35.625 22.7692 35.9023 22.0998 36.3958 21.6063C36.8893 21.1128 37.5586 20.8355 38.2566 20.8355V20.8355Z\"\n fill=\"#F5F5F7\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M44.0776 27.3835H77.1283C77.4772 27.3835 77.8119 27.5222 78.0587 27.7689C78.3054 28.0157 78.4441 28.3504 78.4441 28.6993V45.1184C78.4441 45.4674 78.3054 45.8021 78.0587 46.0488C77.8119 46.2956 77.4772 46.4342 77.1283 46.4342H44.0776C43.7286 46.4342 43.394 46.2956 43.1472 46.0488C42.9005 45.8021 42.7618 45.4674 42.7618 45.1184V28.6993C42.7618 28.3504 42.9005 28.0157 43.1472 27.7689C43.394 27.5222 43.7286 27.3835 44.0776 27.3835ZM44.25 53.577H76.9559C77.3506 53.577 77.7291 53.7338 78.0082 54.0128C78.2873 54.2919 78.4441 54.6704 78.4441 55.0651C78.4441 55.4598 78.2873 55.8383 78.0082 56.1174C77.7291 56.3965 77.3506 56.5533 76.9559 56.5533H44.25C43.8553 56.5533 43.4768 56.3965 43.1977 56.1174C42.9186 55.8383 42.7618 55.4598 42.7618 55.0651C42.7618 54.6704 42.9186 54.2919 43.1977 54.0128C43.4768 53.7338 43.8553 53.577 44.25 53.577ZM44.25 61.3158H76.9559C77.3507 61.3158 77.7293 61.4726 78.0084 61.7518C78.2876 62.0309 78.4444 62.4095 78.4444 62.8043C78.4444 63.199 78.2876 63.5776 78.0084 63.8568C77.7293 64.1359 77.3507 64.2928 76.9559 64.2928H44.25C43.8552 64.2928 43.4766 64.1359 43.1975 63.8568C42.9183 63.5776 42.7615 63.199 42.7615 62.8043C42.7615 62.4095 42.9183 62.0309 43.1975 61.7518C43.4766 61.4726 43.8552 61.3158 44.25 61.3158ZM96.1401 89.9355C95.6303 91.9559 93.8395 93.4618 91.7092 93.4618H29.4967C27.3664 93.4618 25.5756 91.9553 25.0664 89.9355C24.9693 89.5505 24.9203 89.1549 24.9204 88.7579V66.6743H42.2349C44.1474 66.6743 45.6888 68.2849 45.6888 70.2401V70.2664C45.6888 72.221 47.248 73.7993 49.1605 73.7993H72.0454C73.9579 73.7993 75.5171 72.2066 75.5171 70.2513V70.2434C75.5171 68.2881 77.0585 66.6737 78.971 66.6737H96.2855V88.7585C96.2855 89.1645 96.2349 89.5585 96.1401 89.9355Z\"\n fill=\"#DCE0E6\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M98.3165 21.9026L93.823 23.6461C93.7076 23.6909 93.5818 23.7023 93.4602 23.6789C93.3386 23.6555 93.2261 23.5982 93.1356 23.5137C93.045 23.4292 92.9802 23.3208 92.9486 23.2011C92.9169 23.0813 92.9197 22.9551 92.9566 22.8368L94.2309 18.7533C92.5276 16.8164 91.5276 14.4546 91.5276 11.9059C91.5276 5.33026 98.1842 0 106.396 0C114.606 0 121.263 5.33026 121.263 11.9059C121.263 18.4816 114.607 23.8118 106.395 23.8118C103.416 23.8118 100.643 23.1105 98.3165 21.9026Z\"\n fill=\"#DCE0E6\"\n />\n <path\n d=\"M112.253 14.0559C113.288 14.0559 114.127 13.2268 114.127 12.204C114.127 11.1811 113.288 10.352 112.253 10.352C111.217 10.352 110.378 11.1811 110.378 12.204C110.378 13.2268 111.217 14.0559 112.253 14.0559Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M102.413 13.8244H98.6645L100.571 10.5836L102.413 13.8244ZM104.756 10.5836H108.036V13.8244H104.756V10.5836Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nexport default EmptyBasicSvg\n","import React from \"react\"\n\nconst EmptySimpleSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"64\" height=\"40\" viewBox=\"0 0 64 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_169_457978)\">\n <path\n d=\"M32 39.7031C49.6731 39.7031 64 36.5923 64 32.755C64 28.9177 49.6731 25.807 32 25.807C14.3269 25.807 0 28.9177 0 32.755C0 36.5923 14.3269 39.7031 32 39.7031Z\"\n fill=\"#F5F5F5\"\n />\n <path\n d=\"M55 13.6653L44.854 2.24866C44.367 1.47048 43.656 1 42.907 1H21.093C20.344 1 19.633 1.47048 19.146 2.24767L9 13.6663V22.8367H55V13.6653Z\"\n stroke=\"#D1D9E0\"\n />\n <path\n d=\"M41.613 16.8127C41.613 15.2197 42.607 13.9045 43.84 13.9035H55V31.9059C55 34.0131 53.68 35.7402 52.05 35.7402H11.95C10.32 35.7402 9 34.0121 9 31.9059V13.9035H20.16C21.393 13.9035 22.387 15.2167 22.387 16.8098V16.8316C22.387 18.4247 23.392 19.7111 24.624 19.7111H39.376C40.608 19.7111 41.613 18.4128 41.613 16.8197V16.8127Z\"\n fill=\"#FAFAFA\"\n stroke=\"#D1D9E0\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_169_457978\">\n <rect width=\"64\" height=\"40\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default EmptySimpleSvg\n","import React from \"react\"\n\nimport EmptyBasicSvg from \"../assets/empty-basic\"\nimport EmptySimpleSvg from \"../assets/empty-simple\"\nimport { Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsEmpty } from \"./index.type\"\n\nconst Empty: React.FC<PropsEmpty> = ({\n type = \"basic\",\n description = \"No Data\",\n image,\n action,\n className,\n}) => {\n const defaultImage = type === \"simple\" ? <EmptySimpleSvg /> : <EmptyBasicSvg />\n\n return (\n <div className={`DBui-empty ${className ?? \"\"}`} data-type={type}>\n <div className=\"DBui-emptyImage\">{image ?? defaultImage}</div>\n <Subtitle as=\"p\" weight=\"medium\" className=\"DBui-emptyDescription\">\n {description}\n </Subtitle>\n {action}\n </div>\n )\n}\n\nexport default Empty\n","import React from \"react\"\n\nimport CounterLabel from \"../counter-label\"\nimport { LabelMd } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsTabs } from \"./index.type\"\n\nconst Tabs: React.FC<PropsTabs> = ({ items, activeKey, onChange, className }) => {\n return (\n <div className={`DBui-tabs ${className ?? \"\"}`}>\n {items.map((item) => {\n const isActive = item.key === activeKey\n\n return (\n <button\n key={item.key}\n className=\"DBui-tabsItem\"\n data-state={isActive ? \"active\" : \"default\"}\n onClick={() => onChange?.(item.key)}\n >\n <span className=\"DBui-tabsItemContent\">\n {item.icon && <span className=\"DBui-tabsItemIcon\">{item.icon}</span>}\n <LabelMd as=\"span\" weight=\"semibold\">\n {item.label}\n </LabelMd>\n {item.count != null && (\n <CounterLabel\n size=\"md\"\n type={isActive ? \"brand-secondary\" : \"default\"}\n >\n {item.count}\n </CounterLabel>\n )}\n </span>\n </button>\n )\n })}\n </div>\n )\n}\n\nexport default Tabs\n","import React from \"react\"\n\nimport { LabelMd } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsTag } from \"./index.type\"\n\nconst Tag: React.FC<PropsTag> = ({ children, color = \"secondary\", variant = \"default\", icon, className }) => {\n return (\n <span className={`DBui-tag ${className ?? \"\"}`} data-color={color} data-variant={variant}>\n {icon && <span className=\"DBui-tagIcon\">{icon}</span>}\n <LabelMd as=\"span\" weight=\"semibold\">\n {children}\n </LabelMd>\n </span>\n )\n}\n\nexport default Tag\n","import React from \"react\"\n\nconst HeartFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.5167 17.3417C10.2334 17.4417 9.76672 17.4417 9.48338 17.3417C7.06672 16.5167 1.66672 13.075 1.66672 7.24167C1.66672 4.66667 3.74172 2.58334 6.30005 2.58334C7.81672 2.58334 9.15838 3.31667 10 4.45001C10.8417 3.31667 12.1917 2.58334 13.7 2.58334C16.2584 2.58334 18.3334 4.66667 18.3334 7.24167C18.3334 13.075 12.9334 16.5167 10.5167 17.3417Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default HeartFillSvg\n","import React from \"react\"\n\nconst HeartOutlineSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.5167 17.3417C10.2334 17.4417 9.76672 17.4417 9.48338 17.3417C7.06672 16.5167 1.66672 13.075 1.66672 7.24167C1.66672 4.66667 3.74172 2.58334 6.30005 2.58334C7.81672 2.58334 9.15838 3.31667 10 4.45001C10.8417 3.31667 12.1917 2.58334 13.7 2.58334C16.2584 2.58334 18.3334 4.66667 18.3334 7.24167C18.3334 13.075 12.9334 16.5167 10.5167 17.3417Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default HeartOutlineSvg\n","import React from \"react\"\n\nimport HeartFillSvg from \"../assets/heart-fill\"\nimport HeartOutlineSvg from \"../assets/heart-outline\"\n\nimport \"./index.scss\"\nimport type { PropsFavorite } from \"./index.type\"\n\nconst Favorite: React.FC<PropsFavorite> = ({\n liked = false,\n variant = \"ghost\",\n onClick,\n className,\n}) => {\n return (\n <button\n className={`DBui-favorite ${className ?? \"\"}`}\n data-variant={variant}\n data-liked={liked}\n onClick={onClick}\n >\n <span className=\"DBui-favoriteIcon\">\n {liked ? <HeartFillSvg width=\"100%\" height=\"100%\" /> : <HeartOutlineSvg width=\"100%\" height=\"100%\" />}\n </span>\n </button>\n )\n}\n\nexport default Favorite\n","import React, { useCallback, useRef } from \"react\"\n\nimport { Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsRangeSlider, PropsSlider } from \"./index.type\"\n\nconst clamp = (val: number, min: number, max: number) => Math.min(max, Math.max(min, val))\n\nconst getPercent = (val: number, min: number, max: number) => ((val - min) / (max - min)) * 100\n\nconst useSliderDrag = (\n trackRef: React.RefObject<HTMLDivElement | null>,\n min: number,\n max: number,\n onUpdate: (value: number) => void,\n) => {\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault()\n const el = trackRef.current\n if (!el) return\n\n const update = (clientX: number) => {\n const rect = el.getBoundingClientRect()\n const ratio = clamp((clientX - rect.left) / rect.width, 0, 1)\n onUpdate(Math.round(min + ratio * (max - min)))\n }\n\n update(e.clientX)\n\n const onMove = (ev: PointerEvent) => update(ev.clientX)\n const onUp = () => {\n window.removeEventListener(\"pointermove\", onMove)\n window.removeEventListener(\"pointerup\", onUp)\n }\n window.addEventListener(\"pointermove\", onMove)\n window.addEventListener(\"pointerup\", onUp)\n },\n [trackRef, min, max, onUpdate],\n )\n\n return handlePointerDown\n}\n\nconst Slider: React.FC<PropsSlider> = ({ value, min = 0, max = 100, onChange, className }) => {\n const trackRef = useRef<HTMLDivElement>(null)\n const percent = getPercent(clamp(value, min, max), min, max)\n\n const handleDrag = useSliderDrag(trackRef, min, max, (v) => onChange?.(v))\n\n return (\n <div className={`DBui-slider ${className ?? \"\"}`}>\n <div className=\"DBui-sliderTrack\" ref={trackRef} />\n <div className=\"DBui-sliderFill\" style={{ left: 10, width: `calc(${percent / 100} * (100% - 20px))` }} />\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-sliderLabel\" style={{ left: `calc(${percent}% * (100% - 20px) / 100% + 10px)` }}>\n {value}\n </Subtitle>\n <div\n className=\"DBui-sliderThumb\"\n style={{ left: `calc(${percent}% * (100% - 20px) / 100% + 10px)` }}\n onPointerDown={handleDrag}\n />\n </div>\n )\n}\n\nexport const RangeSlider: React.FC<PropsRangeSlider> = ({ value, min = 0, max = 100, onChange, className }) => {\n const trackRef = useRef<HTMLDivElement>(null)\n const [low, high] = [clamp(value[0], min, max), clamp(value[1], min, max)]\n const lowPercent = getPercent(low, min, max)\n const highPercent = getPercent(high, min, max)\n\n const handleLowDrag = useSliderDrag(trackRef, min, max, (v) => {\n onChange?.([Math.min(v, high), high])\n })\n\n const handleHighDrag = useSliderDrag(trackRef, min, max, (v) => {\n onChange?.([low, Math.max(v, low)])\n })\n\n return (\n <div className={`DBui-slider ${className ?? \"\"}`}>\n <div className=\"DBui-sliderTrack\" ref={trackRef} />\n <div\n className=\"DBui-sliderFill\"\n style={{\n left: `calc(${lowPercent / 100} * (100% - 20px) + 10px)`,\n width: `calc(${(highPercent - lowPercent) / 100} * (100% - 20px))`,\n }}\n />\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-sliderLabel\" style={{ left: `calc(${lowPercent}% * (100% - 20px) / 100% + 10px)` }}>\n {low}\n </Subtitle>\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-sliderLabel\" style={{ left: `calc(${highPercent}% * (100% - 20px) / 100% + 10px)` }}>\n {high}\n </Subtitle>\n <div\n className=\"DBui-sliderThumb\"\n style={{ left: `calc(${lowPercent}% * (100% - 20px) / 100% + 10px)` }}\n onPointerDown={handleLowDrag}\n />\n <div\n className=\"DBui-sliderThumb\"\n style={{ left: `calc(${highPercent}% * (100% - 20px) / 100% + 10px)` }}\n onPointerDown={handleHighDrag}\n />\n </div>\n )\n}\n\nexport default Slider\n","import React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\nimport Slider from \"../../slider\"\n\nimport type { PropsSliderInput } from \"./index.type\"\n\nconst SliderInput: React.FC<PropsSliderInput> = ({ control, name, min = 0, max = 100, disabled = false, className }) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => (\n <Slider\n value={field.value ?? min}\n min={min}\n max={max}\n onChange={disabled ? undefined : field.onChange}\n className={className}\n />\n )}\n />\n )\n}\n\nexport default SliderInput\n","import React from \"react\"\nimport { Controller } from \"react-hook-form\"\n\nimport { RangeSlider } from \"../../slider\"\n\nimport type { PropsRangeSliderInput } from \"./index.type\"\n\nconst RangeSliderInput: React.FC<PropsRangeSliderInput> = ({ control, name, min = 0, max = 100, disabled = false, className }) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => (\n <RangeSlider\n value={field.value ?? [min, max]}\n min={min}\n max={max}\n onChange={disabled ? undefined : field.onChange}\n className={className}\n />\n )}\n />\n )\n}\n\nexport default RangeSliderInput\n","import React from \"react\"\n\nconst ImagesSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.93921 7.875C4.66408 7.875 5.25171 7.28737 5.25171 6.5625C5.25171 5.83763 4.66408 5.25 3.93921 5.25C3.21434 5.25 2.62671 5.83763 2.62671 6.5625C2.62671 7.28737 3.21434 7.875 3.93921 7.875Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.2517 11.375C12.2517 12.3415 11.4682 13.125 10.5017 13.125H1.75171C0.785211 13.125 0.00170898 12.3415 0.00170898 11.375V4.375C0.00170898 3.40895 0.784482 2.62573 1.75036 2.625C1.75036 1.6585 2.53386 0.875 3.50036 0.875H12.2504C13.2169 0.875 14.0004 1.6585 14.0004 2.625V9.625C14.0004 10.591 13.2176 11.3743 12.2517 11.375ZM12.2504 1.75H3.50036C3.01711 1.75 2.62536 2.14175 2.62536 2.625L10.5017 2.625C11.4682 2.625 12.2517 3.4085 12.2517 4.375V10.5C12.7343 10.4993 13.1254 10.1078 13.1254 9.625V2.625C13.1254 2.14175 12.7336 1.75 12.2504 1.75ZM1.75171 3.5C1.26846 3.5 0.876709 3.89175 0.876709 4.375V11.375L3.19235 9.31565C3.33982 9.16819 3.57087 9.14531 3.74439 9.26099L6.07096 10.812L9.31735 7.56565C9.45051 7.4325 9.65393 7.39948 9.82236 7.4837L11.3767 9.18751V4.375C11.3767 3.89175 10.985 3.5 10.5017 3.5H1.75171Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default ImagesSvg\n","import React from \"react\"\n\nimport EyeSvg from \"../assets/eye\"\nimport ImagesSvg from \"../assets/images\"\nimport { H1, Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsUserProfile } from \"./index.type\"\n\nconst UserProfile: React.FC<PropsUserProfile> = ({\n src,\n name,\n subtitle,\n onChangePhoto,\n onViewPhoto,\n className,\n}) => {\n const initial = typeof name === \"string\" ? name.charAt(0) : \"\"\n\n return (\n <div className={`DBui-userProfile ${className ?? \"\"}`}>\n <div className=\"DBui-userProfileAvatar\">\n {src ? (\n <img className=\"DBui-userProfileImage\" src={src} alt=\"\" />\n ) : (\n <div className=\"DBui-userProfileInitial\">\n <H1 as=\"span\" weight=\"medium\">\n {initial}\n </H1>\n </div>\n )}\n {(onChangePhoto || onViewPhoto) && (\n <div className=\"DBui-userProfileActions\">\n {onChangePhoto && (\n <button className=\"DBui-userProfileAction\" onClick={onChangePhoto}>\n <span className=\"DBui-userProfileActionIcon\">\n <ImagesSvg width=\"100%\" height=\"100%\" />\n </span>\n </button>\n )}\n {onViewPhoto && (\n <button className=\"DBui-userProfileAction\" onClick={onViewPhoto}>\n <span className=\"DBui-userProfileActionIcon\">\n <EyeSvg width=\"100%\" height=\"100%\" />\n </span>\n </button>\n )}\n </div>\n )}\n </div>\n {(name || subtitle) && (\n <div className=\"DBui-userProfileInfo\">\n {name && (\n <Subtitle as=\"p\" weight=\"medium\" className=\"DBui-userProfileName\">\n {name}\n </Subtitle>\n )}\n {subtitle && <p className=\"DBui-userProfileSubtitle\">{subtitle}</p>}\n </div>\n )}\n </div>\n )\n}\n\nexport default UserProfile\n","import React from \"react\"\n\nconst DotsSixVerticalSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.5 3.75C6.5 3.89834 6.45601 4.04334 6.3736 4.16668C6.29119 4.29001 6.17406 4.38614 6.03701 4.44291C5.89997 4.49968 5.74917 4.51453 5.60368 4.48559C5.4582 4.45665 5.32456 4.38522 5.21967 4.28033C5.11478 4.17544 5.04335 4.0418 5.01441 3.89632C4.98547 3.75083 5.00032 3.60003 5.05709 3.46299C5.11386 3.32594 5.20999 3.20881 5.33332 3.1264C5.45666 3.04399 5.60166 3 5.75 3C5.94891 3 6.13968 3.07902 6.28033 3.21967C6.42098 3.36032 6.5 3.55109 6.5 3.75ZM10.25 4.5C10.3983 4.5 10.5433 4.45601 10.6667 4.3736C10.79 4.29119 10.8861 4.17406 10.9429 4.03701C10.9997 3.89997 11.0145 3.74917 10.9856 3.60368C10.9567 3.4582 10.8852 3.32456 10.7803 3.21967C10.6754 3.11478 10.5418 3.04335 10.3963 3.01441C10.2508 2.98547 10.1 3.00032 9.96299 3.05709C9.82594 3.11386 9.70881 3.20999 9.6264 3.33332C9.54399 3.45666 9.5 3.60166 9.5 3.75C9.5 3.94891 9.57902 4.13968 9.71967 4.28033C9.86032 4.42098 10.0511 4.5 10.25 4.5ZM5.75 7.25C5.60166 7.25 5.45666 7.29399 5.33332 7.3764C5.20999 7.45881 5.11386 7.57594 5.05709 7.71299C5.00032 7.85003 4.98547 8.00083 5.01441 8.14632C5.04335 8.2918 5.11478 8.42544 5.21967 8.53033C5.32456 8.63522 5.4582 8.70665 5.60368 8.73559C5.74917 8.76453 5.89997 8.74968 6.03701 8.69291C6.17406 8.63614 6.29119 8.54001 6.3736 8.41668C6.45601 8.29334 6.5 8.14834 6.5 8C6.5 7.80109 6.42098 7.61032 6.28033 7.46967C6.13968 7.32902 5.94891 7.25 5.75 7.25ZM10.25 7.25C10.1017 7.25 9.95666 7.29399 9.83332 7.3764C9.70999 7.45881 9.61386 7.57594 9.55709 7.71299C9.50033 7.85003 9.48547 8.00083 9.51441 8.14632C9.54335 8.2918 9.61478 8.42544 9.71967 8.53033C9.82456 8.63522 9.9582 8.70665 10.1037 8.73559C10.2492 8.76453 10.4 8.74968 10.537 8.69291C10.6741 8.63614 10.7912 8.54001 10.8736 8.41668C10.956 8.29334 11 8.14834 11 8C11 7.80109 10.921 7.61032 10.7803 7.46967C10.6397 7.32902 10.4489 7.25 10.25 7.25ZM5.75 11.5C5.60166 11.5 5.45666 11.544 5.33332 11.6264C5.20999 11.7088 5.11386 11.8259 5.05709 11.963C5.00032 12.1 4.98547 12.2508 5.01441 12.3963C5.04335 12.5418 5.11478 12.6754 5.21967 12.7803C5.32456 12.8852 5.4582 12.9566 5.60368 12.9856C5.74917 13.0145 5.89997 12.9997 6.03701 12.9429C6.17406 12.8861 6.29119 12.79 6.3736 12.6667C6.45601 12.5433 6.5 12.3983 6.5 12.25C6.5 12.0511 6.42098 11.8603 6.28033 11.7197C6.13968 11.579 5.94891 11.5 5.75 11.5ZM10.25 11.5C10.1017 11.5 9.95666 11.544 9.83332 11.6264C9.70999 11.7088 9.61386 11.8259 9.55709 11.963C9.50033 12.1 9.48547 12.2508 9.51441 12.3963C9.54335 12.5418 9.61478 12.6754 9.71967 12.7803C9.82456 12.8852 9.9582 12.9566 10.1037 12.9856C10.2492 13.0145 10.4 12.9997 10.537 12.9429C10.6741 12.8861 10.7912 12.79 10.8736 12.6667C10.956 12.5433 11 12.3983 11 12.25C11 12.0511 10.921 11.8603 10.7803 11.7197C10.6397 11.579 10.4489 11.5 10.25 11.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default DotsSixVerticalSvg\n","import React from \"react\"\n\nconst FolderClosedSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_231_4273)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.53125 0.875C1.12514 0.875 0.735658 1.03632 0.448493 1.32349C0.161327 1.61066 0 2.00014 0 2.40625V11.5938C0 12.439 0.686 13.125 1.53125 13.125H12.4688C12.8748 13.125 13.2643 12.9636 13.5515 12.6765C13.8386 12.3893 14 11.9998 14 11.5938V4.15625C14 3.75014 13.8386 3.36066 13.5515 3.07349C13.2643 2.78632 12.8748 2.625 12.4688 2.625H6.78125C6.74729 2.625 6.7138 2.61709 6.68342 2.60191C6.65304 2.58672 6.62663 2.56467 6.60625 2.5375L5.81875 1.4875C5.53 1.1025 5.075 0.875 4.59375 0.875H1.53125Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_231_4273\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default FolderClosedSvg\n","import React from \"react\"\n\nconst FolderOpenSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_231_4284)\">\n <path\n d=\"M0.448493 1.32349C0.735658 1.03632 1.12514 0.875 1.53125 0.875H4.59375C5.075 0.875 5.53 1.1025 5.81875 1.4875L6.60625 2.5375C6.62663 2.56467 6.65304 2.58672 6.68342 2.60191C6.7138 2.61709 6.74729 2.625 6.78125 2.625H11.375C11.8582 2.625 12.25 3.01675 12.25 3.5V3.9375H2.40625C2.04381 3.9375 1.75 4.23131 1.75 4.59375C1.75 4.95619 2.04381 5.25 2.40625 5.25H12.8873C13.4111 5.25 13.8176 5.70705 13.7564 6.22724L13.125 11.5938C13.125 11.9998 12.9637 12.3893 12.6765 12.6765C12.3893 12.9637 11.9998 13.125 11.5938 13.125H1.53125C0.686 13.125 0 12.439 0 11.5938V2.40625C0 2.00014 0.161327 1.61066 0.448493 1.32349Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_231_4284\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default FolderOpenSvg\n","import React from \"react\"\n\nimport ChevronDownSvg from \"../assets/chevron-down\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport DotsSixVerticalSvg from \"../assets/dots-six-vertical\"\nimport FolderClosedSvg from \"../assets/folder-closed\"\nimport FolderOpenSvg from \"../assets/folder-open\"\nimport CounterLabel from \"../counter-label\"\n\nimport \"./index.scss\"\nimport type { PropsTreeFolderRight } from \"./index.type\"\n\nconst TreeFolderRight: React.FC<PropsTreeFolderRight> = ({\n label,\n count,\n badge,\n open = false,\n showDrag = true,\n showTree = true,\n iconRight,\n onIconRightClick,\n onClick,\n className,\n}) => {\n return (\n <div className={`DBui-treeFolderRight ${className ?? \"\"}`} data-active={open} onClick={onClick}>\n <div className=\"DBui-treeFolderRightContent\">\n <div className=\"DBui-treeFolderRightLeft\">\n {showDrag && (\n <span className=\"DBui-treeFolderRightDrag\">\n <DotsSixVerticalSvg width=\"100%\" height=\"100%\" />\n </span>\n )}\n <span className=\"DBui-treeFolderRightIcon\">\n {open ? <FolderOpenSvg width=\"100%\" height=\"100%\" /> : <FolderClosedSvg width=\"100%\" height=\"100%\" />}\n </span>\n <span className=\"DBui-treeFolderRightLabelGroup\">\n <span className=\"DBui-treeFolderRightLabel\">{label}</span>\n {count != null && <span className=\"DBui-treeFolderRightLabel\">({count})</span>}\n {badge != null && (\n <CounterLabel size=\"sm\" type=\"red\">\n {badge}\n </CounterLabel>\n )}\n </span>\n </div>\n <div className=\"DBui-treeFolderRightRight\">\n {iconRight && (\n <span\n className=\"DBui-treeFolderRightIconRight\"\n onClick={\n onIconRightClick\n ? (e) => {\n e.stopPropagation()\n onIconRightClick()\n }\n : undefined\n }\n >\n {iconRight}\n </span>\n )}\n {showTree && (\n <span className=\"DBui-treeFolderRightArrow\">\n {open ? <ChevronDownSvg width=\"100%\" height=\"100%\" /> : <ChevronRightSvg width=\"100%\" height=\"100%\" />}\n </span>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport default TreeFolderRight\n","import React from \"react\"\n\nimport ChevronDownSvg from \"../assets/chevron-down\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport FolderClosedSvg from \"../assets/folder-closed\"\nimport FolderOpenSvg from \"../assets/folder-open\"\nimport CounterLabel from \"../counter-label\"\n\nimport \"./index.scss\"\nimport type { PropsTreeFolderLeft } from \"./index.type\"\n\nconst TreeFolderLeft: React.FC<PropsTreeFolderLeft> = ({\n label,\n count,\n badge,\n open = false,\n showTree = true,\n iconRight,\n onIconRightClick,\n onClick,\n className,\n}) => {\n return (\n <div className={`DBui-treeFolderLeft ${className ?? \"\"}`} data-active={open} onClick={onClick}>\n <div className=\"DBui-treeFolderLeftContent\">\n <div className=\"DBui-treeFolderLeftLeft\">\n {showTree && (\n <span className=\"DBui-treeFolderLeftArrow\">\n {open ? <ChevronDownSvg width=\"100%\" height=\"100%\" /> : <ChevronRightSvg width=\"100%\" height=\"100%\" />}\n </span>\n )}\n <span className=\"DBui-treeFolderLeftIcon\">\n {open ? <FolderOpenSvg width=\"100%\" height=\"100%\" /> : <FolderClosedSvg width=\"100%\" height=\"100%\" />}\n </span>\n <span className=\"DBui-treeFolderLeftLabelGroup\">\n <span className=\"DBui-treeFolderLeftLabel\">{label}</span>\n {count != null && <span className=\"DBui-treeFolderLeftLabel\">({count})</span>}\n {badge != null && (\n <CounterLabel size=\"sm\" type=\"red\">\n {badge}\n </CounterLabel>\n )}\n </span>\n </div>\n {iconRight && (\n <div className=\"DBui-treeFolderLeftRight\">\n <span\n className=\"DBui-treeFolderLeftIconRight\"\n onClick={\n onIconRightClick\n ? (e) => {\n e.stopPropagation()\n onIconRightClick()\n }\n : undefined\n }\n >\n {iconRight}\n </span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport default TreeFolderLeft\n","import React, { useRef, useState } from \"react\"\n\nimport TreeFolderLeft from \"../tree-folder-left\"\nimport TreeFolderRight from \"../tree-folder-right\"\n\nimport \"./index.scss\"\nimport type { PropsTreeFolder, TreeNode } from \"./index.type\"\n\ntype DropPosition = \"before\" | \"after\" | \"inside\"\n\nconst cloneTree = (nodes: TreeNode[]): TreeNode[] =>\n nodes.map((n) => ({ ...n, children: n.children ? cloneTree(n.children) : undefined }))\n\nconst removeNode = (nodes: TreeNode[], key: string): { tree: TreeNode[]; removed: TreeNode | null } => {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].key === key) {\n const removed = nodes[i]\n nodes.splice(i, 1)\n return { tree: nodes, removed }\n }\n if (nodes[i].children) {\n const result = removeNode(nodes[i].children!, key)\n if (result.removed) return { tree: nodes, removed: result.removed }\n }\n }\n return { tree: nodes, removed: null }\n}\n\nconst insertNode = (nodes: TreeNode[], targetKey: string, node: TreeNode, position: DropPosition): boolean => {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].key === targetKey) {\n if (position === \"before\") {\n nodes.splice(i, 0, node)\n } else if (position === \"after\") {\n nodes.splice(i + 1, 0, node)\n } else {\n if (!nodes[i].children) nodes[i].children = []\n nodes[i].children!.push(node)\n }\n return true\n }\n if (nodes[i].children) {\n if (insertNode(nodes[i].children!, targetKey, node, position)) return true\n }\n }\n return false\n}\n\nconst isDescendant = (nodes: TreeNode[], ancestorKey: string, targetKey: string): boolean => {\n const find = (children: TreeNode[]): boolean =>\n children.some((n) => n.key === targetKey || (n.children ? find(n.children) : false))\n const ancestor = findNode(nodes, ancestorKey)\n return ancestor?.children ? find(ancestor.children) : false\n}\n\nconst findNode = (nodes: TreeNode[], key: string): TreeNode | null => {\n for (const n of nodes) {\n if (n.key === key) return n\n if (n.children) {\n const found = findNode(n.children, key)\n if (found) return found\n }\n }\n return null\n}\n\nconst TreeItem: React.FC<{\n node: TreeNode\n depth: number\n variant: \"left\" | \"right\"\n isDraggable: boolean\n activeKey?: string\n expandedKeys: Set<string>\n draggedKey: string | null\n dropTarget: { key: string; position: DropPosition } | null\n onToggle: (key: string) => void\n onSelect?: (key: string) => void\n onDragStart: (key: string) => void\n onDragOver: (e: React.DragEvent, key: string) => void\n onDragEnd: () => void\n onDrop: (e: React.DragEvent, key: string) => void\n}> = ({\n node,\n depth,\n variant,\n isDraggable,\n activeKey,\n expandedKeys,\n draggedKey,\n dropTarget,\n onToggle,\n onSelect,\n onDragStart,\n onDragOver,\n onDragEnd,\n onDrop,\n}) => {\n const hasChildren = node.children && node.children.length > 0\n const isExpanded = expandedKeys.has(node.key)\n const isDragging = draggedKey === node.key\n\n const handleClick = () => {\n if (hasChildren) onToggle(node.key)\n onSelect?.(node.key)\n }\n\n const dropClass = dropTarget?.key === node.key ? `DBui-treeFolderDrop-${dropTarget.position}` : \"\"\n\n return (\n <>\n <div\n className={`DBui-treeFolderRow ${dropClass}`}\n data-dragging={isDragging}\n draggable={isDraggable}\n onDragStart={(e) => {\n e.dataTransfer.effectAllowed = \"move\"\n onDragStart(node.key)\n }}\n onDragOver={(e) => onDragOver(e, node.key)}\n onDragLeave={(e) => {\n e.preventDefault()\n }}\n onDrop={(e) => onDrop(e, node.key)}\n onDragEnd={onDragEnd}\n >\n {Array.from({ length: depth }).map((_, i) => (\n <div key={i} className=\"DBui-treeFolderIndent\" />\n ))}\n {variant === \"left\" ? (\n <TreeFolderLeft\n label={node.label}\n count={node.count}\n badge={node.badge}\n iconRight={node.iconRight}\n onIconRightClick={node.onIconRightClick}\n open={isExpanded}\n showTree={hasChildren}\n onClick={handleClick}\n />\n ) : (\n <TreeFolderRight\n label={node.label}\n count={node.count}\n badge={node.badge}\n iconRight={node.iconRight}\n onIconRightClick={node.onIconRightClick}\n open={isExpanded}\n showDrag={isDraggable}\n showTree={hasChildren}\n onClick={handleClick}\n />\n )}\n </div>\n {isExpanded &&\n node.children?.map((child) => (\n <TreeItem\n key={child.key}\n node={child}\n depth={depth + 1}\n variant={variant}\n isDraggable={isDraggable}\n activeKey={activeKey}\n expandedKeys={expandedKeys}\n draggedKey={draggedKey}\n dropTarget={dropTarget}\n onToggle={onToggle}\n onSelect={onSelect}\n onDragStart={onDragStart}\n onDragOver={onDragOver}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n />\n ))}\n </>\n )\n}\n\nconst TreeFolder: React.FC<PropsTreeFolder> = ({\n data,\n variant = \"left\",\n draggable = false,\n activeKey,\n defaultExpandedKeys = [],\n onSelect,\n onToggle,\n onReorder,\n className,\n}) => {\n const [expandedKeys, setExpandedKeys] = useState<Set<string>>(new Set(defaultExpandedKeys))\n const [draggedKey, setDraggedKey] = useState<string | null>(null)\n const [dropTarget, setDropTarget] = useState<{ key: string; position: DropPosition } | null>(null)\n const dataRef = useRef(data)\n dataRef.current = data\n\n const handleToggle = (key: string) => {\n setExpandedKeys((prev) => {\n const next = new Set(prev)\n const expanded = !next.has(key)\n if (expanded) next.add(key)\n else next.delete(key)\n onToggle?.(key, expanded)\n return next\n })\n }\n\n const handleDragStart = (key: string) => {\n setDraggedKey(key)\n }\n\n const handleDragOver = (e: React.DragEvent, key: string) => {\n e.preventDefault()\n if (!draggedKey || draggedKey === key) {\n setDropTarget(null)\n return\n }\n\n const rect = e.currentTarget.getBoundingClientRect()\n const y = e.clientY - rect.top\n const h = rect.height\n\n let position: DropPosition\n if (y < h * 0.25) {\n position = \"before\"\n } else if (y > h * 0.75) {\n position = \"after\"\n } else {\n position = \"inside\"\n }\n\n setDropTarget({ key, position })\n }\n\n const handleDragEnd = () => {\n setDraggedKey(null)\n setDropTarget(null)\n }\n\n const handleDrop = (e: React.DragEvent, targetKey: string) => {\n e.preventDefault()\n if (!draggedKey || !dropTarget || draggedKey === targetKey) {\n handleDragEnd()\n return\n }\n\n if (isDescendant(dataRef.current, draggedKey, targetKey)) {\n handleDragEnd()\n return\n }\n\n const tree = cloneTree(dataRef.current)\n const { removed } = removeNode(tree, draggedKey)\n if (!removed) {\n handleDragEnd()\n return\n }\n\n insertNode(tree, targetKey, removed, dropTarget.position)\n\n if (dropTarget.position === \"inside\") {\n setExpandedKeys((prev) => new Set([...prev, targetKey]))\n }\n\n onReorder?.(tree)\n handleDragEnd()\n }\n\n return (\n <div className={`DBui-treeFolder ${className ?? \"\"}`}>\n {data.map((node) => (\n <TreeItem\n key={node.key}\n node={node}\n depth={0}\n variant={variant}\n isDraggable={draggable}\n activeKey={activeKey}\n expandedKeys={expandedKeys}\n draggedKey={draggedKey}\n dropTarget={dropTarget}\n onToggle={handleToggle}\n onSelect={onSelect}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n onDrop={handleDrop}\n />\n ))}\n </div>\n )\n}\n\nexport default TreeFolder\n","import React, { useId } from \"react\"\n\nimport \"./index.scss\"\nimport type { PropsBattery } from \"./index.type\"\n\n// Battery body frame (nonzero winding: outer boundary + inner cutout)\nconst BODY =\n \"M22.9091 9.8182V7.6364C22.9091 6.43143 21.9323 5.45461 20.7273 5.45461H2.1818C0.976828 5.45456 0 6.43139 0 7.63635V16.3636C0 17.5686 0.976828 18.5454 2.1818 18.5454H20.7272C21.9322 18.5454 22.909 17.5686 22.909 16.3636V14.1818C23.5115 14.1818 24 13.6934 24 13.0909V10.9091C24 10.3066 23.5116 9.8182 22.9091 9.8182ZM21.8182 10.9091V16.3636C21.8182 16.9661 21.3298 17.4546 20.7273 17.4546H2.1818C1.57931 17.4546 1.09087 16.9661 1.09087 16.3636V7.63635C1.09087 7.03387 1.57931 6.54543 2.1818 6.54543H20.7272C21.3297 6.54543 21.8182 7.03387 21.8182 7.63635L21.8182 10.9091Z\"\n\n// Inner boundary (clipPath for warning state only)\nconst INNER_CLIP =\n \"M2.1818 6.54542H20.7273C21.3298 6.54542 21.8182 7.03386 21.8182 7.63634V16.3636C21.8182 16.9661 21.3298 17.4545 20.7273 17.4545H2.1818C1.57931 17.4545 1.09087 16.9661 1.09087 16.3636V7.63634C1.09087 7.03386 1.57931 6.54542 2.1818 6.54542Z\"\n\n// Warning triangle + exclamation\nconst WARNING =\n \"M10.6571 6.1469L4.83488 16.2305C4.72971 16.4126 4.67434 16.6192 4.67432 16.8294C4.6743 17.0397 4.72964 17.2463 4.83477 17.4284C4.93991 17.6105 5.09113 17.7618 5.27325 17.8669C5.45536 17.972 5.66194 18.0274 5.87223 18.0274H17.5157C17.7259 18.0274 17.9325 17.972 18.1146 17.8669C18.2968 17.7618 18.448 17.6105 18.5531 17.4284C18.6583 17.2463 18.7136 17.0397 18.7136 16.8294C18.7136 16.6192 18.6582 16.4126 18.553 16.2305L12.7314 6.1469C12.6263 5.96484 12.4751 5.81366 12.2931 5.70854C12.111 5.60343 11.9045 5.5481 11.6943 5.5481C11.484 5.5481 11.2775 5.60343 11.0954 5.70854C10.9134 5.81366 10.7622 5.96484 10.6571 6.1469Z\"\nconst EXCL_LINE =\n \"M11.7702 9.2569H11.6183C11.2444 9.2569 10.9413 9.56002 10.9413 9.93393V13.17C10.9413 13.5439 11.2444 13.8471 11.6183 13.8471H11.7702C12.1441 13.8471 12.4472 13.5439 12.4472 13.17V9.93393C12.4472 9.56002 12.1441 9.2569 11.7702 9.2569Z\"\nconst EXCL_DOT =\n \"M11.6943 16.4136C12.1101 16.4136 12.4472 16.0765 12.4472 15.6607C12.4472 15.2448 12.1101 14.9077 11.6943 14.9077C11.2784 14.9077 10.9413 15.2448 10.9413 15.6607C10.9413 16.0765 11.2784 16.4136 11.6943 16.4136Z\"\n\n// Indicator bar (0% state)\nconst INDICATOR_BAR =\n \"M3.34179 15.7836V8.21635C3.34179 7.89603 3.08212 7.63635 2.76179 7.63635C2.44147 7.63635 2.18179 7.89603 2.18179 8.21635V15.7836C2.18179 16.104 2.44147 16.3636 2.76179 16.3636C3.08212 16.3636 3.34179 16.104 3.34179 15.7836Z\"\n\n// Fill bar dimensions (inset from inner body edge by ~1.09)\nconst FILL_X = 2.18179\nconst FILL_Y = 7.63635\nconst FILL_HEIGHT = 8.72725\nconst FILL_MAX_WIDTH = 18.5455\n\nfunction getLevel(value: number): string {\n if (value === 0) return \"empty\"\n if (value < 20) return \"critical\"\n if (value < 75) return \"medium\"\n return \"high\"\n}\n\nconst Battery: React.FC<PropsBattery> = ({ value, variant = \"bw\", className }) => {\n const clipId = useId()\n const clampedValue = Math.min(100, Math.max(0, value))\n const level = getLevel(clampedValue)\n const fillWidth = (clampedValue / 100) * FILL_MAX_WIDTH\n\n return (\n <svg\n className={`DBui-battery ${className ?? \"\"}`}\n data-variant={variant}\n data-level={level}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className=\"DBui-batteryBody\" d={BODY} />\n {level === \"empty\" ? (\n <>\n <defs>\n <clipPath id={clipId}>\n <path d={INNER_CLIP} />\n </clipPath>\n </defs>\n <g clipPath={`url(#${clipId})`}>\n <path className=\"DBui-batteryIndicator\" d={INDICATOR_BAR} />\n <path className=\"DBui-batteryWarning\" d={WARNING} />\n <path className=\"DBui-batteryExclamation\" d={EXCL_LINE} />\n <path className=\"DBui-batteryExclamation\" d={EXCL_DOT} />\n </g>\n </>\n ) : (\n <rect className=\"DBui-batteryFill\" x={FILL_X} y={FILL_Y} width={fillWidth} height={FILL_HEIGHT} rx=\"1\" />\n )}\n </svg>\n )\n}\n\nexport default Battery\n","import React from \"react\"\n\nconst ArrowLeftSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10 6H2M2 6L5.5 2.5M2 6L5.5 9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ArrowLeftSvg\n","import React from \"react\"\n\nconst ArrowRightSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M2 6H10M10 6L6.5 2.5M10 6L6.5 9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ArrowRightSvg\n","import React from \"react\"\n\nimport ArrowLeftSvg from \"../assets/arrow-left\"\nimport ArrowRightSvg from \"../assets/arrow-right\"\nimport ChevronDownSvg from \"../assets/chevron-down\"\nimport { MenuButton, MenuItem } from \"../menu\"\nimport { LabelLg, LabelMd } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsPagination } from \"./index.type\"\n\nfunction getPageRange(current: number, total: number): (number | \"gap\")[] {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1)\n }\n\n const pages = new Set<number>()\n pages.add(1)\n pages.add(total)\n\n for (let i = Math.max(1, current - 1); i <= Math.min(total, current + 1); i++) {\n pages.add(i)\n }\n\n if (current <= 3) {\n for (let i = 1; i <= Math.min(3, total); i++) pages.add(i)\n }\n if (current >= total - 2) {\n for (let i = Math.max(1, total - 2); i <= total; i++) pages.add(i)\n }\n\n pages.add(total - 1)\n\n const sorted = Array.from(pages).sort((a, b) => a - b)\n const result: (number | \"gap\")[] = []\n\n for (let i = 0; i < sorted.length; i++) {\n if (i > 0 && sorted[i] - sorted[i - 1] > 1) {\n result.push(\"gap\")\n }\n result.push(sorted[i])\n }\n\n return result\n}\n\nconst Pagination: React.FC<PropsPagination> = ({\n currentPage,\n totalPages,\n onPageChange,\n pageSize = 10,\n pageSizeOptions,\n onPageSizeChange,\n className,\n}) => {\n const pages = getPageRange(currentPage, totalPages)\n const isFirst = currentPage === 1\n const isLast = currentPage === totalPages\n\n return (\n <div className={`DBui-pagination ${className ?? \"\"}`}>\n <div className=\"DBui-paginationRow\">\n <button className=\"DBui-paginationPrev\" disabled={isFirst} onClick={() => onPageChange?.(currentPage - 1)}>\n <ArrowLeftSvg width=\"12\" height=\"12\" />\n <LabelMd weight=\"medium\">Previous</LabelMd>\n </button>\n\n <div className=\"DBui-paginationPages\">\n {pages.map((item, i) =>\n item === \"gap\" ? (\n <span key={`gap-${i}`} className=\"DBui-paginationGap\">\n <LabelLg weight=\"medium\">...</LabelLg>\n </span>\n ) : (\n <button\n key={item}\n className=\"DBui-paginationPage\"\n data-current={item === currentPage}\n onClick={() => onPageChange?.(item)}\n >\n <LabelLg weight=\"medium\">{item}</LabelLg>\n </button>\n ),\n )}\n </div>\n\n <button className=\"DBui-paginationNext\" disabled={isLast} onClick={() => onPageChange?.(currentPage + 1)}>\n <LabelMd weight=\"medium\">Next</LabelMd>\n <ArrowRightSvg width=\"12\" height=\"12\" />\n </button>\n </div>\n\n {pageSizeOptions && (\n <MenuButton\n trigger={\n <div className=\"DBui-paginationSize\">\n <LabelLg weight=\"medium\">{pageSize} / page</LabelLg>\n <ChevronDownSvg width=\"14\" height=\"14\" />\n </div>\n }\n size=\"md\"\n align=\"right\"\n >\n {pageSizeOptions.map((size) => (\n <MenuItem key={size} active={size === pageSize} onClick={() => onPageSizeChange?.(size)}>\n {size} / page\n </MenuItem>\n ))}\n </MenuButton>\n )}\n </div>\n )\n}\n\nexport default Pagination\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelMd, LabelLg, Paragraph } from \"../typography\"\nimport Pagination from \"../pagination\"\nimport IonCheckmarkSvg from \"../assets/icon-checkmark\"\nimport BarSvg from \"../assets/bar\"\n\n// Include in project\nimport type { PropsTableSort, PropsTableHead, PropsTableCell, PropsTable } from \"./index.type\"\nimport \"./index.scss\"\n\n// --- TableSort ---\nexport const TableSort: React.FC<PropsTableSort> = ({ size = \"lg\", className }) => {\n return (\n <span className={`DBui-tableSort ${className ?? \"\"}`} data-size={size}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 1L8.59808 4.75H3.40192L6 1Z\" fill=\"currentColor\" />\n <path d=\"M6 11L3.40192 7.25L8.59808 7.25L6 11Z\" fill=\"currentColor\" />\n </svg>\n </span>\n )\n}\n\n// --- TableHead ---\nexport const TableHead: React.FC<PropsTableHead> = ({\n children,\n description,\n showCheckbox = false,\n checked = false,\n indeterminate = false,\n onCheck,\n showSort = true,\n onSort,\n className,\n}) => {\n return (\n <div className={`DBui-tableHead ${className ?? \"\"}`}>\n {showCheckbox && (\n <label className=\"DBui-tableCheckbox\">\n <input\n type=\"checkbox\"\n className=\"DBui-tableCheckboxNative\"\n checked={checked}\n ref={(el) => {\n if (el) el.indeterminate = indeterminate\n }}\n onChange={(e) => onCheck?.(e.target.checked)}\n />\n <span className=\"DBui-tableCheckboxBox\" data-checked={checked} data-indeterminate={indeterminate}>\n {checked && (\n <span className=\"DBui-tableCheckboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n {indeterminate && !checked && (\n <span className=\"DBui-tableCheckboxIcon\">\n <BarSvg />\n </span>\n )}\n </span>\n </label>\n )}\n <div className=\"DBui-tableHeadContent\">\n <div className=\"DBui-tableHeadText\">\n {children && (\n <LabelMd as=\"span\" weight=\"semibold\">\n {children}\n </LabelMd>\n )}\n {description && (\n <Paragraph as=\"span\" weight=\"medium\">\n {description}\n </Paragraph>\n )}\n </div>\n {showSort && (\n <span className=\"DBui-tableHeadSort\" onClick={onSort}>\n <TableSort size=\"md\" />\n </span>\n )}\n </div>\n </div>\n )\n}\n\n// --- TableCell ---\nexport const TableCell: React.FC<PropsTableCell> = ({\n children,\n showCheckbox = false,\n checked = false,\n onCheck,\n className,\n}) => {\n return (\n <div className={`DBui-tableCell ${className ?? \"\"}`}>\n {showCheckbox && (\n <label className=\"DBui-tableCheckbox\">\n <input\n type=\"checkbox\"\n className=\"DBui-tableCheckboxNative\"\n checked={checked}\n onChange={(e) => onCheck?.(e.target.checked)}\n />\n <span className=\"DBui-tableCheckboxBox\" data-checked={checked}>\n {checked && (\n <span className=\"DBui-tableCheckboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n </span>\n </label>\n )}\n {children}\n </div>\n )\n}\n\n// --- Table ---\nfunction Table<T>({\n columns,\n data,\n rowKey,\n showCheckbox = false,\n checkedKeys = [],\n onCheck,\n loading = false,\n skeletonRows = 4,\n totalItems,\n currentPage,\n totalPages,\n onPageChange,\n pageSize,\n pageSizeOptions,\n onPageSizeChange,\n className,\n}: PropsTable<T>) {\n const getKey = (row: T, index: number): string | number => (rowKey ? rowKey(row, index) : index)\n\n const allKeys = data.map((row, i) => getKey(row, i))\n const allChecked = allKeys.length > 0 && allKeys.every((k) => checkedKeys.includes(k))\n const someChecked = allKeys.some((k) => checkedKeys.includes(k))\n\n const handleCheckAll = (checked: boolean) => {\n onCheck?.(checked ? allKeys : [])\n }\n\n const handleCheckRow = (key: string | number, checked: boolean) => {\n if (checked) {\n onCheck?.([...checkedKeys, key])\n } else {\n onCheck?.(checkedKeys.filter((k) => k !== key))\n }\n }\n\n const showPagination = totalPages !== undefined && currentPage !== undefined\n\n const gridTemplateColumns = columns\n .map((col) => {\n if (!col.width) return \"1fr\"\n return typeof col.width === \"number\" ? `${col.width}px` : col.width\n })\n .join(\" \")\n\n return (\n <div className={`DBui-table ${className ?? \"\"}`}>\n <div className=\"DBui-tableGrid\" style={{ gridTemplateColumns }}>\n {loading\n ? columns.map((col) => (\n <div key={col.key} className=\"DBui-tableSkeletonHead\">\n <div className=\"DBui-tableSkeletonBar\" style={{ width: 88 }} />\n </div>\n ))\n : columns.map((col, colIndex) => (\n <TableHead\n key={col.key}\n showCheckbox={showCheckbox && colIndex === 0}\n checked={allChecked}\n indeterminate={someChecked && !allChecked}\n onCheck={handleCheckAll}\n showSort={col.showSort}\n onSort={col.onSort}\n description={col.headerDescription}\n >\n {col.header}\n </TableHead>\n ))}\n {loading\n ? Array.from({ length: skeletonRows }, (_, rowIndex) =>\n columns.map((col, colIndex) => (\n <div key={`sk-${rowIndex}-${colIndex}`} className=\"DBui-tableSkeletonCell\">\n <div className=\"DBui-tableSkeletonBar\" style={{ width: 64 }} />\n </div>\n )),\n )\n : data.map((row, rowIndex) => {\n const key = getKey(row, rowIndex)\n return columns.map((col, colIndex) => (\n <TableCell\n key={`${key}-${col.key}`}\n showCheckbox={showCheckbox && colIndex === 0}\n checked={checkedKeys.includes(key)}\n onCheck={(checked) => handleCheckRow(key, checked)}\n >\n {col.render(row, rowIndex)}\n </TableCell>\n ))\n })}\n </div>\n {showPagination && (\n <div className=\"DBui-tableFooter\">\n {totalItems !== undefined && <LabelLg weight=\"medium\">Total {totalItems} items</LabelLg>}\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={onPageChange}\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n onPageSizeChange={onPageSizeChange}\n />\n </div>\n )}\n </div>\n )\n}\n\nexport default Table\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","weightValue","createTypography","defaultTag","className","baselinePrefix","defaultWeight","as","extraClass","style","weight","Tag","w","fontStyle","classes","Display1","Display2","Display3","Display4","H1","H2","H3","H4","H5","H6","Title","Subtitle","LabelLg","LabelMd","LabelSm","Paragraph","CaptionLg","CaptionMd","CaptionSm","CaptionXs","initialBySize","Avatars","size","src","initial","InitialText","jsxs","jsx","AvatarGroup","items","max","visible","overflow","item","index","TypoBySize","CounterLabel","shape","Typo","LabelBySize","CounterSizeByButtonSize","Button","variant","color","disabled","onClick","StartIcon","EndIcon","isLoading","count","isDisabled","Label","Fragment","ButtonIcon","Icon","isCheckBoxInput","element","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","event","getNodeParentName","isNameInFieldArray","names","isPlainObject","tempObject","prototypeCopy","isWeb","cloneObject","data","isFileListInstance","isArray","copy","isKey","isUndefined","val","compact","stringToPath","input","get","path","defaultValue","result","isBoolean","isFunction","set","tempPath","length","lastIndex","newValue","objValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormControlContext","useFormControlContext","getProxyFormState","formState","control","localProxyFormState","isRoot","_key","useIsomorphicLayoutEffect","useFormState","formControl","exact","updateFormState","_localProxyFormState","isString","generateWatchOutput","_names","formValues","isGlobal","fieldName","isPrimitive","deepEqual","object1","object2","_internal_visited","keys1","keys2","val1","val2","useWatch","compute","_defaultValue","_compute","_computeFormValues","_prevControl","_prevName","updateValue","getCurrentOutput","values","refreshValue","computedFormValues","controlChanged","prevName","computedOutput","nameChanged","useController","shouldUnregister","isArrayField","defaultValueMemo","_props","_previousNameRef","_registerProps","fieldState","onChange","onBlur","ref","elm","field","message","_shouldUnregisterField","previousName","updateMounted","Controller","HookFormContext","appendErrors","validateAllFieldCriteria","errors","convertToArrayPayload","createSubject","_observers","observer","o","extractFormValues","fieldsState","fieldValue","nestedFieldsState","isEmptyObject","isFileInput","isHTMLElement","isMultipleSelect","isRadioInput","isRadioOrCheckbox","live","baseGet","updatePath","isEmptyArray","obj","unset","paths","childObject","objectHasFunction","isTraversable","markFieldsDirty","fields","getDirtyFields","dirtyFieldsFromValues","formValue","defaultResult","validResult","getCheckboxValue","options","option","getFieldValueAs","valueAsNumber","valueAsDate","setValueAs","defaultReturn","getRadioValue","previous","getFieldValue","_f","getResolverOptions","fieldsNames","_fields","criteriaMode","shouldUseNativeValidation","isRegex","getRuleValue","rule","getValidationModes","mode","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","isWatched","isBlurEvent","watchName","iterateFieldsByAction","action","abortEarly","currentField","schemaErrorLookup","error","foundError","shouldRenderFormState","formStateData","_proxyFormState","shouldSubscribeByName","signalName","currentName","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","updateFieldArrayRootError","fieldArrayErrors","getValidateError","getValueAndMessage","validationData","validateField","disabledFieldNames","isFieldArray","refs","required","maxLength","minLength","min","pattern","validate","mount","inputValue","inputRef","setCustomValidity","isRadio","isCheckBox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","time","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","defaultOptions","createFormControl","_options","_formState","_defaultValues","_formValues","_state","delayErrorCallback","timer","defaultProxyFormState","_proxySubscribeFormState","_subjects","shouldDisplayAllAssociatedErrors","debounce","callback","wait","_setValid","shouldUpdateValid","isValid","_runSchema","_updateIsValidating","executeBuiltInValidation","isValidating","_setFieldArray","method","args","shouldSetValues","shouldUpdateFieldsAndState","fieldValues","touchedFields","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","context","isFieldArrayRoot","isPromiseFunction","fieldError","_removeUnmounted","unregister","getValues","_getWatch","_getFieldArray","optionRef","checkboxRef","radioRef","trigger","setValues","fieldKey","setValue","cloneValue","target","isFieldValueUpdated","_updateIsFieldValueUpdated","validationModeBeforeSubmit","validationModeAfterSubmit","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","getFieldState","clearErrors","inputName","setError","currentError","currentRef","restOfErrorTree","watch","payload","_subscribe","_setFormState","subscribe","_setDisabledField","disabledStateChanged","register","disabledIsDefined","fieldRef","radioOrCheckbox","_focusError","_disableForm","handleSubmit","onValid","onInvalid","e","onValidError","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","fieldsToCheck","isDirty","existingValue","form","reset","setFocus","methods","useForm","_formControl","_values","rest","sub","_a","state","CaptionBySize","HintBySize","InputBase","label","caption","require","fullWidth","isInvalid","isSuccess","hint","errorMessage","styleDiv","hintText","CaptionText","Hint","IconTextCaptionBySize","TextInput","placeholder","readOnly","icon","iconText","invalid","IconCaption","formatNumber","parseNumber","raw","stripped","num","NumberField","displayValue","setDisplayValue","useState","isFocused","setIsFocused","handleChange","useCallback","handleFocus","handleBlur","formatted","NumberInput","FlagThSvg","formatPhone","digits","PhoneInput","EyeSvg","EyeOffSvg","PasswordInput","isShow","setIsShow","s","Textarea","rows","cols","MENU_GAP","applyMenuPosition","triggerEl","menuEl","align","matchWidth","rect","spaceBelow","spaceAbove","viewportMax","goUp","maxHeight","top","useMenuDropdown","positionOptions","ignorePortalClicks","open","setOpen","triggerRef","useRef","menuRef","close","toggle","prev","useEffect","reposition","handleClickOutside","handleEscape","ChevronRightSvg","CounterSizeByMenuSize","ShortcutBySize","DescriptionBySize","HeaderBySize","applySizeToChildren","nodes","child","Menu","MenuItem","description","shortcut","counter","counterType","hasSubmenu","active","Shortcut","Description","MenuHeader","Header","MenuDivider","MenuButton","useMemo","wrapMenuItems","originalOnClick","menuContent","createPortal","triggerContent","VIEWBOX_SIZE","RADIUS","STROKE_WIDTH","Loading","progress","thickness","circumference","clampedProgress","offset","ChevronDownSvg","MATCH_WIDTH_OPTIONS","MenuSizeByInputSize","Select","loading","selectedOption","menuSize","handleSelect","optionValue","handleTriggerClick","handleTriggerBlur","ChevronLeftSvg","MONTHS","WEEKDAYS","MONTH_OPTIONS","m","i","getDaysInMonth","year","month","getFirstDayOfWeek","isSameDay","a","b","Calendar","rangeStart","rangeEnd","today","viewMonth","viewYear","daysInMonth","firstDay","prevMonthDays","goToPrevMonth","goToNextMonth","handleSelectDate","day","date","yearOptions","base","opts","y","cells","d","remaining","wd","_","rowIndex","cell","colIndex","cellDate","isSelected","isRangeStart","isRangeEnd","isInRange","isToday","CalendarSvg","parseDate","str","datePart","formatDate","formatDisplayDate","formatDisplayDateTime","getTimePart","DateInput","DateTimeInput","currentTime","handleTimeChange","DateRangeInput","startPlaceholder","endPlaceholder","picking","setPicking","dateStr","handleOpen","SearchSvg","XCircleFillSvg","SearchBar","showIcon","onClear","hasValue","handleClear","IonCheckmarkSvg","BarSvg","DescBySize","Checkbox","isVertical","Desc","toggleValue","checkedValue","v","isChecked","isIndeterminate","el","RadioButton","IconTextBySize","EmptyLabelBySize","AutoComplete","emptyText","query","setQuery","filteredOptions","EmptyLabel","openDropdown","selected","handleInputChange","text","showDropdown","XIcon","OnRemove","Chip","onRemove","hasRemove","isWhiteIcon","ChipSizeByInputSize","MultiSelect","chipSize","toggleOption","selectedOptions","OptionLabel","Toggle","useOverlay","onClose","removing","setRemoving","handleClose","Modal","title","footer","onBack","onNext","onDelete","backText","nextText","deleteText","hasBuiltInFooter","hasDelete","DialogBox","onConfirm","onCancel","confirmText","cancelText","confirmColor","showCancel","handleCancel","handleConfirm","InfoCircleFillSvg","CheckCircleFillSvg","WarningFillSvg","toasts","listeners","emit","l","toastStore","listener","body","id","t","IconByType","getAnimDir","position","ToastCard","animDir","Toaster","maxToasts","useSyncExternalStore","createToast","toast","StarFillSvg","getStarState","Rate","hoverValue","setHoverValue","handleMouseMove","isLeftHalf","handleClick","Tooltip","placement","anchorName","useId","hoverRef","timeoutRef","updateOpen","PlusSvg","MinusSvg","TrashSvg","Quantity","numValue","isAtMin","isAtMax","showTrash","Breadcrumbs","isCurrent","ProgressBar","clampedValue","UploadSimpleSvg","FileUploader","preview","accept","status","file","InboxSvg","FileEarmarkSvg","ImageBrokenSvg","UploadListItem","UploadDragger","files","multiple","dragging","setDragging","handleDragOver","handleDragLeave","handleDrop","EmptyBasicSvg","EmptySimpleSvg","Empty","image","defaultImage","Tabs","activeKey","isActive","HeartFillSvg","HeartOutlineSvg","Favorite","liked","clamp","getPercent","useSliderDrag","trackRef","onUpdate","update","clientX","ratio","onMove","ev","onUp","Slider","percent","handleDrag","RangeSlider","low","high","lowPercent","highPercent","handleLowDrag","handleHighDrag","SliderInput","RangeSliderInput","ImagesSvg","UserProfile","subtitle","onChangePhoto","onViewPhoto","DotsSixVerticalSvg","FolderClosedSvg","FolderOpenSvg","TreeFolderRight","badge","showDrag","showTree","iconRight","onIconRightClick","TreeFolderLeft","cloneTree","n","removeNode","removed","insertNode","targetKey","isDescendant","ancestorKey","find","ancestor","findNode","found","TreeItem","depth","isDraggable","expandedKeys","draggedKey","dropTarget","onToggle","onSelect","onDragStart","onDragOver","onDragEnd","onDrop","hasChildren","isExpanded","isDragging","dropClass","TreeFolder","draggable","defaultExpandedKeys","onReorder","setExpandedKeys","setDraggedKey","setDropTarget","dataRef","handleToggle","next","expanded","handleDragStart","h","handleDragEnd","tree","BODY","INNER_CLIP","WARNING","EXCL_LINE","EXCL_DOT","INDICATOR_BAR","FILL_X","FILL_Y","FILL_HEIGHT","FILL_MAX_WIDTH","getLevel","Battery","clipId","level","fillWidth","ArrowLeftSvg","ArrowRightSvg","getPageRange","current","total","pages","sorted","Pagination","currentPage","totalPages","onPageChange","pageSize","pageSizeOptions","onPageSizeChange","isFirst","isLast","TableSort","TableHead","showCheckbox","checked","indeterminate","onCheck","showSort","onSort","TableCell","Table","columns","rowKey","checkedKeys","skeletonRows","totalItems","getKey","row","allKeys","allChecked","someChecked","handleCheckAll","handleCheckRow","showPagination","gridTemplateColumns","col"],"mappings":"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","x_google_ignoreList":[0,1,2,9]}
1
+ {"version":3,"file":"index.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/components/typography/index.tsx","../src/components/avatars/index.tsx","../src/components/avatar-group/index.tsx","../src/components/counter-label/index.tsx","../src/components/button/index.tsx","../src/components/button-icon/index.tsx","../node_modules/react-hook-form/dist/index.esm.mjs","../src/components/input/input-base/index.tsx","../src/components/input/text-input/index.tsx","../src/components/input/number-input/index.tsx","../src/components/assets/flag-th.tsx","../src/components/input/phone-input/index.tsx","../src/components/assets/eye.tsx","../src/components/assets/eye-off.tsx","../src/components/input/password-input/index.tsx","../src/components/input/textarea/index.tsx","../src/components/menu/position.ts","../src/components/menu/useMenuDropdown.ts","../src/components/assets/chevron-right.tsx","../src/components/menu/index.tsx","../src/components/loading/index.tsx","../src/components/assets/chevron-down.tsx","../src/components/input/select/index.tsx","../src/components/assets/chevron-left.tsx","../src/components/calendar/index.tsx","../src/components/assets/calendar.tsx","../src/components/input/date-utils.ts","../src/components/input/date-input/index.tsx","../src/components/input/date-time-input/index.tsx","../src/components/input/date-range-input/index.tsx","../src/components/assets/search.tsx","../src/components/assets/x-circle-fill.tsx","../src/components/search-bar/index.tsx","../src/components/assets/icon-checkmark.tsx","../src/components/assets/bar.tsx","../src/components/input/checkbox/index.tsx","../src/components/input/radio-button/index.tsx","../src/components/input/auto-complete/index.tsx","../src/components/on-remove/index.tsx","../src/components/chip/index.tsx","../src/components/input/multi-select/index.tsx","../src/components/input/toggle/index.tsx","../src/components/overlay/useOverlay.ts","../src/components/modal/index.tsx","../src/components/dialog-box/index.tsx","../src/components/assets/info-circle-fill.tsx","../src/components/assets/check-circle-fill.tsx","../src/components/assets/warning-fill.tsx","../src/components/toast/store.ts","../src/components/toast/index.tsx","../src/components/toast/toast.ts","../src/components/assets/star-fill.tsx","../src/components/rate/index.tsx","../src/components/tooltip/index.tsx","../src/components/assets/plus.tsx","../src/components/assets/minus.tsx","../src/components/assets/trash.tsx","../src/components/quantity/index.tsx","../src/components/breadcrumbs/index.tsx","../src/components/progress-bar/index.tsx","../src/components/assets/upload-simple.tsx","../src/components/file-uploader/index.tsx","../src/components/assets/inbox.tsx","../src/components/assets/file-earmark.tsx","../src/components/assets/image-broken.tsx","../src/components/upload-list-item/index.tsx","../src/components/upload-dragger/index.tsx","../src/components/assets/empty-basic.tsx","../src/components/assets/empty-simple.tsx","../src/components/empty/index.tsx","../src/components/tabs/index.tsx","../src/components/tag/index.tsx","../src/components/assets/heart-fill.tsx","../src/components/assets/heart-outline.tsx","../src/components/favorite/index.tsx","../src/components/slider/index.tsx","../src/components/input/slider/index.tsx","../src/components/input/range-slider/index.tsx","../src/components/assets/images.tsx","../src/components/user-profile/index.tsx","../src/components/assets/dots-six-vertical.tsx","../src/components/assets/folder-closed.tsx","../src/components/assets/folder-open.tsx","../src/components/tree-folder-right/index.tsx","../src/components/tree-folder-left/index.tsx","../src/components/tree-folder/index.tsx","../src/components/battery/index.tsx","../src/components/assets/arrow-left.tsx","../src/components/assets/arrow-right.tsx","../src/components/pagination/index.tsx","../src/components/table/index.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import React from \"react\"\nimport type { PropsTypography, TypographyWeight } from \"./index.type\"\n\nconst weightValue: Record<TypographyWeight, number> = {\n bold: 700,\n semibold: 600,\n medium: 500,\n text: 400,\n light: 300,\n thin: 100,\n}\n\nconst createTypography = (\n defaultTag: React.ElementType,\n className: string,\n baselinePrefix: string,\n defaultWeight: TypographyWeight,\n) => {\n const Component: React.FC<PropsTypography> = ({ as, children, className: extraClass, style, weight }) => {\n const Tag = as || defaultTag\n const w = weight || defaultWeight\n const fontStyle: React.CSSProperties = {\n fontFamily: \"var(--typographyFontFamilyPlain), sans-serif\",\n fontSize: `var(--${baselinePrefix}FontSize)`,\n lineHeight: `var(--${baselinePrefix}LineHeight)`,\n fontWeight: weightValue[w],\n ...style,\n }\n const classes = [className, extraClass].filter(Boolean).join(\" \")\n return (\n <Tag className={classes} style={fontStyle}>\n {children}\n </Tag>\n )\n }\n return Component\n}\n\n// Display\nexport const Display1 = createTypography(\"p\", \"DBui-typography-display1\", \"baselineDisplay1\", \"bold\")\nexport const Display2 = createTypography(\"p\", \"DBui-typography-display2\", \"baselineDisplay2\", \"bold\")\nexport const Display3 = createTypography(\"p\", \"DBui-typography-display3\", \"baselineDisplay3\", \"bold\")\nexport const Display4 = createTypography(\"p\", \"DBui-typography-display4\", \"baselineDisplay4\", \"bold\")\n\n// Headings\nexport const H1 = createTypography(\"h1\", \"DBui-typography-heading1\", \"baselineH1\", \"bold\")\nexport const H2 = createTypography(\"h2\", \"DBui-typography-heading2\", \"baselineH2\", \"bold\")\nexport const H3 = createTypography(\"h3\", \"DBui-typography-heading3\", \"baselineH3\", \"bold\")\nexport const H4 = createTypography(\"h4\", \"DBui-typography-heading4\", \"baselineH4\", \"bold\")\nexport const H5 = createTypography(\"h5\", \"DBui-typography-heading5\", \"baselineH5\", \"bold\")\nexport const H6 = createTypography(\"h6\", \"DBui-typography-heading6\", \"baselineH6\", \"bold\")\n\n// Body\nexport const Title = createTypography(\"p\", \"DBui-typography-title\", \"baselineTitle\", \"semibold\")\nexport const Subtitle = createTypography(\"p\", \"DBui-typography-subtitle\", \"baselineSubtitle\", \"semibold\")\nexport const LabelLg = createTypography(\"p\", \"DBui-typography-body\", \"baselineLabelLg\", \"text\")\nexport const LabelMd = createTypography(\"span\", \"DBui-typography-text\", \"baselineLabelMd\", \"text\")\nexport const LabelSm = createTypography(\"span\", \"DBui-typography-caption\", \"baselineLabelSm\", \"text\")\nexport const Paragraph = createTypography(\"p\", \"DBui-typography-paragraph\", \"baselineParagraph\", \"text\")\n\n// Caption\nexport const CaptionLg = createTypography(\"span\", \"DBui-typography-captionLg\", \"baselineCaptionLg\", \"text\")\nexport const CaptionMd = createTypography(\"span\", \"DBui-typography-captionMd\", \"baselineCaptionMd\", \"text\")\nexport const CaptionSm = createTypography(\"span\", \"DBui-typography-captionSm\", \"baselineCaptionSm\", \"text\")\nexport const CaptionXs = createTypography(\"span\", \"DBui-typography-captionXs\", \"baselineCaptionXs\", \"text\")\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelLg, H4, H6, Subtitle, Title } from \"../typography\"\n\n// Include in project\nimport type { PropsAvatars, AvatarsSize } from \"./index.type\"\nimport \"./index.scss\"\n\nconst initialBySize: Record<AvatarsSize, { Component: React.FC<{ children?: React.ReactNode; weight?: \"medium\" }> }> = {\n sm: { Component: LabelLg },\n md: { Component: Subtitle },\n lg: { Component: Title },\n xl: { Component: H6 },\n \"2xl\": { Component: H4 },\n}\n\nconst Avatars: React.FC<PropsAvatars> = ({ size = \"md\", type = \"image\", src, initial = \"\", className, style }) => {\n const { Component: InitialText } = initialBySize[size]\n\n return (\n <div\n className={`DBui-avatars ${className ? className : \"\"}`}\n style={style ? style : {}}\n data-size={size}\n data-type={type}\n >\n {type === \"image\" && <img src={src} alt=\"\" className=\"DBui-avatarsImage\" />}\n {type === \"initial\" && <InitialText weight=\"medium\">{initial.charAt(0)}</InitialText>}\n </div>\n )\n}\n\nexport default Avatars\n","// Lib\nimport React from \"react\"\n\n// Components\nimport Avatars from \"../avatars\"\nimport { LabelMd } from \"../typography\"\n\n// Include in project\nimport type { PropsAvatarGroup } from \"./index.type\"\nimport \"./index.scss\"\n\nconst AvatarGroup: React.FC<PropsAvatarGroup> = ({\n items,\n type = \"spaced\",\n size = \"2xl\",\n max = 3,\n className,\n style,\n}) => {\n const visible = items.slice(0, max)\n const overflow = items.length - max\n\n return (\n <div className={`DBui-avatarGroup ${className ? className : \"\"}`} style={style ? style : {}} data-type={type}>\n {visible.map((item, index) => (\n <Avatars\n key={index}\n className=\"DBui-avatarGroupItem\"\n size={size}\n type={item.src ? \"image\" : \"initial\"}\n src={item.src}\n initial={item.initial}\n />\n ))}\n {overflow > 0 && (\n <div className=\"DBui-avatarGroupOverflow\" data-size={size}>\n <LabelMd weight=\"medium\">+{overflow}</LabelMd>\n </div>\n )}\n </div>\n )\n}\n\nexport default AvatarGroup\n","import React from \"react\"\n\nimport { CaptionMd, Paragraph, LabelMd, LabelLg } from \"../typography\"\nimport type { PropsTypography } from \"../typography/index.type\"\n\nimport \"./index.scss\"\nimport type { PropsCounterLabel, CounterLabelSize } from \"./index.type\"\n\nconst TypoBySize: Record<CounterLabelSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst CounterLabel: React.FC<PropsCounterLabel> = ({ children, shape = \"circle\", size = \"sm\", type = \"default\" }) => {\n const Typo = TypoBySize[size]\n\n return (\n <span className=\"DBui-counterLabel\" data-shape={shape} data-size={size} data-type={type}>\n <Typo as=\"span\" weight=\"semibold\" className=\"DBui-counterLabelText\">\n {children}\n </Typo>\n </span>\n )\n}\n\nexport default CounterLabel\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelMd, LabelLg } from \"../typography\"\nimport CounterLabel from \"../counter-label\"\nimport type { CounterLabelSize } from \"../counter-label/index.type\"\n\n// Include in project\nimport type { PropsButton, ButtonSize } from \"./index.type\"\nimport \"./index.scss\"\n\nconst LabelBySize: Record<ButtonSize, React.FC<{ children?: React.ReactNode; weight?: \"semibold\" }>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: LabelLg,\n}\n\nconst CounterSizeByButtonSize: Record<ButtonSize, CounterLabelSize> = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\",\n}\n\nconst Button: React.FC<PropsButton> = ({\n children,\n name,\n type = \"button\",\n variant = \"default\",\n color = \"primary\",\n size = \"md\",\n disabled = false,\n onClick,\n startIcon: StartIcon,\n endIcon: EndIcon,\n className,\n style,\n isLoading = false,\n count,\n}) => {\n const isDisabled = isLoading || disabled || color === \"disabled\"\n const Label = LabelBySize[size]\n\n return (\n <button\n type={type}\n className={`DBui-button ${className ? className : \"\"}`}\n onClick={onClick}\n disabled={isDisabled}\n style={style ? style : {}}\n data-variant={variant}\n data-color={color}\n data-size={size}\n >\n {isLoading ? (\n <div className=\"DBui-buttonLoader\" />\n ) : (\n <>\n {StartIcon && (\n <span className=\"DBui-buttonIcon\">\n {typeof StartIcon === \"string\" ? <img src={StartIcon} alt=\"\" /> : <StartIcon />}\n </span>\n )}\n <Label weight=\"semibold\">{children || name}</Label>\n {count !== undefined && (\n <CounterLabel shape=\"circle\" size={CounterSizeByButtonSize[size]} type=\"brand-tertiary\">\n {count}\n </CounterLabel>\n )}\n {EndIcon && (\n <span className=\"DBui-buttonIcon\">\n {typeof EndIcon === \"string\" ? <img src={EndIcon} alt=\"\" /> : <EndIcon />}\n </span>\n )}\n </>\n )}\n </button>\n )\n}\n\nexport default Button\n","// Lib\nimport React from \"react\"\n\n// Include in project\nimport type { PropsButtonIcon } from \"./index.type\"\nimport \"./index.scss\"\n\nconst ButtonIcon: React.FC<PropsButtonIcon> = ({\n icon: Icon,\n type = \"button\",\n variant = \"default\",\n color = \"primary\",\n size = \"md\",\n disabled = false,\n onClick,\n className,\n style,\n}) => {\n const isDisabled = disabled || color === \"disabled\"\n\n return (\n <button\n type={type}\n className={`DBui-buttonIcon ${className ? className : \"\"}`}\n onClick={onClick}\n disabled={isDisabled}\n style={style ? style : {}}\n data-variant={variant}\n data-color={color}\n data-size={size}\n >\n <span className=\"DBui-buttonIconInner\">{typeof Icon === \"string\" ? <img src={Icon} alt=\"\" /> : <Icon />}</span>\n </button>\n )\n}\n\nexport default ButtonIcon\n","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n if (data instanceof Date) {\n return new Date(data);\n }\n const isFileListInstance = typeof FileList !== 'undefined' && data instanceof FileList;\n if (isWeb && (data instanceof Blob || isFileListInstance)) {\n return data;\n }\n const isArray = Array.isArray(data);\n if (!isArray && !(isObject(data) && isPlainObject(data))) {\n return data;\n }\n const copy = isArray ? [] : Object.create(Object.getPrototypeOf(data));\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n return copy;\n}\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar isUndefined = (val) => val === undefined;\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\n/**\n * Separate context for `control` to prevent unnecessary rerenders.\n * Internal hooks that only need control use this instead of full form context.\n */\nconst HookFormControlContext = React.createContext(null);\nHookFormControlContext.displayName = 'HookFormControlContext';\n/**\n * @internal Internal hook to access only control from context.\n */\nconst useFormControlContext = () => React.useContext(HookFormControlContext);\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const formControl = useFormControlContext();\n const { control = formControl, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n useIsomorphicLayoutEffect(() => control._subscribe({\n name,\n formState: _localProxyFormState.current,\n exact,\n callback: (formState) => {\n !disabled &&\n updateFormState({\n ...control._formState,\n ...formState,\n });\n },\n }), [name, disabled, exact]);\n React.useEffect(() => {\n _localProxyFormState.current.isValid && control._setValid(true);\n }, [control]);\n return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName),\n get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2, _internal_visited = new WeakSet()) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return Object.is(object1, object2);\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return Object.is(object1.getTime(), object2.getTime());\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n if (_internal_visited.has(object1) || _internal_visited.has(object2)) {\n return true;\n }\n _internal_visited.add(object1);\n _internal_visited.add(object2);\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2, _internal_visited)\n : !Object.is(val1, val2)) {\n return false;\n }\n }\n }\n return true;\n}\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const formControl = useFormControlContext();\n const { control = formControl, name, defaultValue, disabled, exact, compute, } = props || {};\n const _defaultValue = React.useRef(defaultValue);\n const _compute = React.useRef(compute);\n const _computeFormValues = React.useRef(undefined);\n const _prevControl = React.useRef(control);\n const _prevName = React.useRef(name);\n _compute.current = compute;\n const [value, updateValue] = React.useState(() => {\n const defaultValue = control._getWatch(name, _defaultValue.current);\n return _compute.current ? _compute.current(defaultValue) : defaultValue;\n });\n const getCurrentOutput = React.useCallback((values) => {\n const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);\n return _compute.current ? _compute.current(formValues) : formValues;\n }, [control._formValues, control._names, name]);\n const refreshValue = React.useCallback((values) => {\n if (!disabled) {\n const formValues = generateWatchOutput(name, control._names, values || control._formValues, false, _defaultValue.current);\n if (_compute.current) {\n const computedFormValues = _compute.current(formValues);\n if (!deepEqual(computedFormValues, _computeFormValues.current)) {\n updateValue(computedFormValues);\n _computeFormValues.current = computedFormValues;\n }\n }\n else {\n updateValue(formValues);\n }\n }\n }, [control._formValues, control._names, disabled, name]);\n useIsomorphicLayoutEffect(() => {\n if (_prevControl.current !== control ||\n !deepEqual(_prevName.current, name)) {\n _prevControl.current = control;\n _prevName.current = name;\n refreshValue();\n }\n return control._subscribe({\n name,\n formState: {\n values: true,\n },\n exact,\n callback: (formState) => {\n refreshValue(formState.values);\n },\n });\n }, [control, exact, name, refreshValue]);\n React.useEffect(() => control._removeUnmounted());\n // If name or control changed for this render, synchronously reflect the\n // latest value so callers (like useController) see the correct value\n // immediately on the same render.\n // Optimize: Check control reference first before expensive deepEqual\n const controlChanged = _prevControl.current !== control;\n const prevName = _prevName.current;\n // Cache the computed output to avoid duplicate calls within the same render\n // We include shouldReturnImmediate in deps to ensure proper recomputation\n const computedOutput = React.useMemo(() => {\n if (disabled) {\n return null;\n }\n const nameChanged = !controlChanged && !deepEqual(prevName, name);\n const shouldReturnImmediate = controlChanged || nameChanged;\n return shouldReturnImmediate ? getCurrentOutput() : null;\n }, [disabled, controlChanged, name, prevName, getCurrentOutput]);\n return computedOutput !== null ? computedOutput : value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const formControl = useFormControlContext();\n const { name, disabled, control = formControl, shouldUnregister, defaultValue, exact = true, } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const defaultValueMemo = React.useMemo(() => get(control._formValues, name, get(control._defaultValues, name, defaultValue)), [control, name, defaultValue]);\n const value = useWatch({\n control,\n name,\n defaultValue: defaultValueMemo,\n exact,\n });\n const formState = useFormState({\n control,\n name,\n exact,\n });\n const _props = React.useRef(props);\n const _previousNameRef = React.useRef(undefined);\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n _props.current = props;\n const fieldState = React.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const onChange = React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]);\n const onBlur = React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control._formValues]);\n const ref = React.useCallback((elm) => {\n const field = get(control._fields, name);\n if (field && field._f && elm) {\n field._f.ref = {\n focus: () => isFunction(elm.focus) && elm.focus(),\n select: () => isFunction(elm.select) && elm.select(),\n setCustomValidity: (message) => isFunction(elm.setCustomValidity) && elm.setCustomValidity(message),\n reportValidity: () => isFunction(elm.reportValidity) && elm.reportValidity(),\n };\n }\n }, [control._fields, name]);\n const field = React.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange,\n onBlur,\n ref,\n }), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const previousName = _previousNameRef.current;\n if (previousName && previousName !== name && !isArrayField) {\n control.unregister(previousName);\n }\n control.register(name, {\n ..._props.current.rules,\n ...(isBoolean(_props.current.disabled)\n ? { disabled: _props.current.disabled }\n : {}),\n });\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name, _props.current.defaultValue));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n _previousNameRef.current = name;\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n control._setDisabledField({\n disabled,\n name,\n });\n }, [disabled, name, control]);\n return React.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst HookFormContext = React.createContext(null);\nHookFormContext.displayName = 'HookFormContext';\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://react.dev/reference/react/useContext) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, watch, getValues, getFieldState, setError, clearErrors, setValue, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, } = props;\n return (React.createElement(HookFormContext.Provider, { value: React.useMemo(() => ({\n watch,\n getValues,\n getFieldState,\n setError,\n clearErrors,\n setValue,\n trigger,\n formState,\n resetField,\n reset,\n handleSubmit,\n unregister,\n control,\n register,\n setFocus,\n subscribe,\n }), [\n clearErrors,\n control,\n formState,\n getFieldState,\n getValues,\n handleSubmit,\n register,\n reset,\n resetField,\n setError,\n setFocus,\n setValue,\n subscribe,\n trigger,\n unregister,\n watch,\n ]) },\n React.createElement(HookFormControlContext.Provider, { value: control }, children)));\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType && encType !== 'multipart/form-data'\n ? { 'Content-Type': encType }\n : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nconst FormStateSubscribe = ({ control, disabled, exact, name, render, }) => render(useFormState({ control, name, disabled, exact }));\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nfunction extractFormValues(fieldsState, formValues) {\n const values = {};\n for (const key in fieldsState) {\n if (fieldsState.hasOwnProperty(key)) {\n const fieldState = fieldsState[key];\n const fieldValue = formValues[key];\n if (fieldState && isObject(fieldState) && fieldValue) {\n const nestedFieldsState = extractFormValues(fieldState, fieldValue);\n if (isObject(nestedFieldsState)) {\n values[key] = nestedFieldsState;\n }\n }\n else if (fieldsState[key]) {\n values[key] = fieldValue;\n }\n }\n }\n return values;\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction isTraversable(value) {\n return Array.isArray(value) || (isObject(value) && !objectHasFunction(value));\n}\nfunction markFieldsDirty(data, fields = {}) {\n for (const key in data) {\n const value = data[key];\n if (isTraversable(value)) {\n fields[key] = Array.isArray(value) ? [] : {};\n markFieldsDirty(value, fields[key]);\n }\n else if (!isUndefined(value)) {\n fields[key] = true;\n }\n }\n return fields;\n}\nfunction getDirtyFields(data, formValues, dirtyFieldsFromValues) {\n if (!dirtyFieldsFromValues) {\n dirtyFieldsFromValues = markFieldsDirty(formValues);\n }\n for (const key in data) {\n const value = data[key];\n if (isTraversable(value)) {\n if (isUndefined(formValues) || isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = markFieldsDirty(value, Array.isArray(value) ? [] : {});\n }\n else {\n getDirtyFields(value, isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n const formValue = formValues[key];\n dirtyFieldsFromValues[key] = !deepEqual(value, formValue);\n }\n }\n return dirtyFieldsFromValues;\n}\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n if (foundError && foundError.root && foundError.root.type) {\n return {\n name: `${fieldName}.root`,\n error: foundError.root,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isString(result) ||\n (Array.isArray(result) && result.every(isString)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isString(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isString(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isReady: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n keepIsValid: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const defaultProxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _proxyFormState = {\n ...defaultProxyFormState,\n };\n let _proxySubscribeFormState = {\n ..._proxyFormState,\n };\n const _subjects = {\n array: createSubject(),\n state: createSubject(),\n };\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _setValid = async (shouldUpdateValid) => {\n if (_state.keepIsValid) {\n return;\n }\n if (!_options.disabled &&\n (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid ||\n shouldUpdateValid)) {\n let isValid;\n if (_options.resolver) {\n isValid = isEmptyObject((await _runSchema()).errors);\n _updateIsValidating();\n }\n else {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating ||\n _proxyFormState.validatingFields ||\n _proxySubscribeFormState.isValidating ||\n _proxySubscribeFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && !_state.action && _setValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!get(_formState.dirtyFields, name);\n isCurrentFieldPristine\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.dirtyFields ||\n _proxySubscribeFormState.dirtyFields) &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n ((_proxyFormState.touchedFields ||\n _proxySubscribeFormState.touchedFields) &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = (_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _runSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _runSchema(names);\n _updateIsValidating(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([_f.name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid || props.shouldUseNativeValidation) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.forEach((checkboxRef) => {\n if (!checkboxRef.defaultChecked || !checkboxRef.disabled) {\n if (Array.isArray(fieldValue)) {\n checkboxRef.checked = !!fieldValue.find((data) => data === checkboxRef.value);\n }\n else {\n checkboxRef.checked =\n fieldValue === checkboxRef.value || !!fieldValue;\n }\n }\n });\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.state.next({\n name,\n values: cloneObject(_formValues),\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n if (!value.hasOwnProperty(fieldKey)) {\n return;\n }\n const fieldValue = value[fieldKey];\n const fieldName = name + '.' + fieldKey;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: cloneObject(_formValues),\n });\n if ((_proxyFormState.isDirty ||\n _proxyFormState.dirtyFields ||\n _proxySubscribeFormState.isDirty ||\n _proxySubscribeFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n if (isWatched(name, _names)) {\n _subjects.state.next({\n ..._formState,\n name,\n values: cloneObject(_formValues),\n });\n }\n else {\n _subjects.state.next({\n name: _state.mount ? name : undefined,\n values: cloneObject(_formValues),\n });\n }\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n if (field) {\n let error;\n let isValid;\n const fieldValue = target.type\n ? getFieldValue(field._f)\n : getEventValue(event);\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n if (!target || !target.readOnly) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.state.next({\n name,\n type: event.type,\n values: cloneObject(_formValues),\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {\n if (_options.mode === 'onBlur') {\n if (isBlurEvent) {\n _setValid();\n }\n }\n else if (!isBlurEvent) {\n _setValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _runSchema([name]);\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid ||\n _proxySubscribeFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n (!Array.isArray(field._f.deps) || field._f.deps.length > 0) &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _setValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n ((_proxyFormState.isValid || _proxySubscribeFormState.isValid) &&\n isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames, config) => {\n let values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n if (config) {\n values = extractFormValues(config.dirtyFields ? _formState.dirtyFields : _formState.touchedFields, values);\n }\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.state.subscribe({\n next: (payload) => 'values' in payload &&\n name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const _subscribe = (props) => _subjects.state.subscribe({\n next: (formState) => {\n if (shouldSubscribeByName(props.name, formState.name, props.exact) &&\n shouldRenderFormState(formState, props.formState || _proxyFormState, _setFormState, props.reRenderRoot)) {\n props.callback({\n values: { ..._formValues },\n ..._formState,\n ...formState,\n defaultValues: _defaultValues,\n });\n }\n },\n }).unsubscribe;\n const subscribe = (props) => {\n _state.mount = true;\n _proxySubscribeFormState = {\n ..._proxySubscribeFormState,\n ...props.formState,\n };\n return _subscribe({\n ...props,\n formState: {\n ...defaultProxyFormState,\n ...props.formState,\n },\n });\n };\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.state.next({\n values: cloneObject(_formValues),\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _setValid();\n };\n const _setDisabledField = ({ disabled, name, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n const wasDisabled = _names.disabled.has(name);\n const isDisabled = !!disabled;\n const disabledStateChanged = wasDisabled !== isDisabled;\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n disabledStateChanged && _state.mount && !_state.action && _setValid();\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _setDisabledField({\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist &&\n e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _runSchema();\n _updateIsValidating();\n _formState.errors = errors;\n fieldValues = cloneObject(values);\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n unset(fieldValues, name);\n }\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _setValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n const isDirty = get(_formState.dirtyFields, fieldName);\n const existingValue = get(_formValues, fieldName);\n const newValue = get(values, fieldName);\n if (isDirty && !isUndefined(existingValue)) {\n set(values, fieldName, existingValue);\n }\n else if (!isDirty && !isUndefined(newValue)) {\n setValue(fieldName, newValue);\n }\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n if (keepStateOptions.keepFieldsRef) {\n for (const fieldName of _names.mount) {\n setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n _fields = {};\n }\n }\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.state.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues ||\n (!_options.shouldUnregister && !isEmptyObject(values));\n _state.watch = !!_options.shouldUnregister;\n _state.keepIsValid = !!keepStateOptions.keepIsValid;\n _state.action = false;\n // Clear errors synchronously to prevent validation errors on subsequent submissions\n // This fixes the issue where form.reset() causes validation errors on subsequent\n // submissions in Next.js 16 with Server Actions\n if (!keepStateOptions.keepErrors) {\n _formState.errors = {};\n }\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n defaultValues: _defaultValues,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, { ..._options.resetOptions, ...keepStateOptions });\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n // Use setTimeout to ensure focus happens after any pending state updates\n // This fixes the issue where setFocus doesn't work immediately after setError\n setTimeout(() => {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n });\n }\n }\n };\n const _setFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n const methods = {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _subscribe,\n _runSchema,\n _updateIsValidating,\n _focusError,\n _getWatch,\n _getDirty,\n _setValid,\n _setFieldArray,\n _setDisabledField,\n _setErrors,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _removeUnmounted,\n _disableForm,\n _subjects,\n _proxyFormState,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n subscribe,\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n return {\n ...methods,\n formControl: methods,\n };\n}\n\nvar generateId = () => {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = ((Math.random() * 16 + d) % 16) | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const formControl = useFormControlContext();\n const { control = formControl, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _actioned = React.useRef(false);\n control._names.array.add(name);\n React.useMemo(() => rules &&\n fields.length >= 0 &&\n control.register(name, rules), [control, name, fields.length, rules]);\n useIsomorphicLayoutEffect(() => control._subjects.array.subscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === name || !fieldArrayName) {\n const fieldValues = get(values, name);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n }).unsubscribe, [control, name]);\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._setFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._setFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._setFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._setFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted) &&\n !getValidationModes(control._options.reValidateMode).isOnSubmit) {\n if (control._options.resolver) {\n control._runSchema([name]).then((result) => {\n control._updateIsValidating([name]);\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.state.next({\n name,\n values: cloneObject(control._formValues),\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._setValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._setFieldArray(name);\n return () => {\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n control._options.shouldUnregister || shouldUnregister\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef(undefined);\n const _values = React.useRef(undefined);\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n isReady: false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n if (props.formControl) {\n _formControl.current = {\n ...props.formControl,\n formState,\n };\n if (props.defaultValues && !isFunction(props.defaultValues)) {\n props.formControl.reset(props.defaultValues, props.resetOptions);\n }\n }\n else {\n const { formControl, ...rest } = createFormControl(props);\n _formControl.current = {\n ...rest,\n formState,\n };\n }\n }\n const control = _formControl.current.control;\n control._options = props;\n useIsomorphicLayoutEffect(() => {\n const sub = control._subscribe({\n formState: control._proxyFormState,\n callback: () => updateFormState({ ...control._formState }),\n reRenderRoot: true,\n });\n updateFormState((data) => ({\n ...data,\n isReady: true,\n }));\n control._formState.isReady = true;\n return sub;\n }, [control]);\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (props.mode) {\n control._options.mode = props.mode;\n }\n if (props.reValidateMode) {\n control._options.reValidateMode = props.reValidateMode;\n }\n }, [control, props.mode, props.reValidateMode]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n control._focusError();\n }\n }, [control, props.errors]);\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.state.next({\n values: control._getWatch(),\n });\n }, [control, props.shouldUnregister]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n var _a;\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, {\n keepFieldsRef: true,\n ...control._options.resetOptions,\n });\n if (!((_a = control._options.resetOptions) === null || _a === void 0 ? void 0 : _a.keepIsValid)) {\n control._setValid();\n }\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [control, props.values]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._setValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n _formControl.current.formState = React.useMemo(() => getProxyFormState(formState, control), [control, formState]);\n return _formControl.current;\n}\n\n/**\n * Watch component that subscribes to form field changes and re-renders when watched fields update.\n *\n * @param control - The form control object from useForm\n * @param name - Can be field name, array of field names, or undefined to watch the entire form\n * @param disabled - Disable subscription\n * @param exact - Whether to watch exact field names or not\n * @param defaultValue - The default value to use if the field is not yet set\n * @param compute - Function to compute derived values from watched fields\n * @param render - The function that receives watched values and returns ReactNode\n * @returns The result of calling render function with watched values\n *\n * @example\n * The `Watch` component only re-render when the values of `foo`, `bar`, and `baz.qux` change.\n * The types of `foo`, `bar`, and `baz.qux` are precisely inferred.\n *\n * ```tsx\n * const { control } = useForm();\n *\n * <Watch\n * control={control}\n * names={['foo', 'bar', 'baz.qux']}\n * render={([foo, bar, baz_qux]) => <div>{foo}{bar}{baz_qux}</div>}\n * />\n * ```\n */\nconst Watch = (props) => props.render(useWatch({ name: props.names, ...props }));\n\nexport { Controller, Form, FormProvider, FormStateSubscribe, Watch, appendErrors, createFormControl, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelMd, LabelLg, Subtitle, Paragraph } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsInputBase, InputBaseSize } from \"./index.type\"\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelMd,\n lg: LabelLg,\n xl: Subtitle,\n}\n\nconst CaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst HintBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelMd,\n}\n\nconst InputBase: React.FC<PropsInputBase> = ({\n label,\n caption,\n require = false,\n fullWidth = false,\n size = \"sm\",\n children,\n isInvalid,\n isSuccess,\n hint,\n errorMessage,\n}) => {\n const styleDiv = {\n width: !fullWidth ? \"fit-content\" : \"100%\",\n }\n\n const hintText = isInvalid && errorMessage ? errorMessage.toString() : hint\n\n const Label = LabelBySize[size]\n const CaptionText = CaptionBySize[size]\n const Hint = HintBySize[size]\n\n return (\n <div className=\"DBui-inputBase\" style={styleDiv} data-invalid={isInvalid} data-success={isSuccess} data-size={size}>\n {(label || caption || require) && (\n <div className=\"DBui-inputBaseLabel\">\n {label && (\n <Label as=\"span\" weight=\"semibold\" className=\"DBui-inputBaseLabelText\">\n {label}\n </Label>\n )}\n {caption && (\n <CaptionText as=\"span\" weight=\"medium\" className=\"DBui-inputBaseLabelCaption\">\n {caption}\n </CaptionText>\n )}\n {require && (\n <CaptionText as=\"span\" weight=\"medium\" className=\"DBui-inputBaseLabelRequired\">\n *\n </CaptionText>\n )}\n </div>\n )}\n\n {children}\n\n {hintText && (\n <Hint as=\"span\" weight=\"medium\" className=\"DBui-inputBaseHint\">\n {hintText}\n </Hint>\n )}\n </div>\n )\n}\n\nexport default InputBase\n","// Lib\nimport React from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport { Paragraph, CaptionLg, CaptionMd, CaptionSm } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsTextInput } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst IconTextCaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst TextInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n icon,\n iconText,\n isSuccess,\n}: PropsTextInput<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const IconCaption = IconTextCaptionBySize[size]\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-textInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n className=\"DBui-textInputField\"\n type=\"text\"\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n {(icon || iconText) && (\n <div className=\"DBui-textInputActions\">\n {icon && <span className=\"DBui-textInputIcon\">{icon}</span>}\n {iconText && (\n <IconCaption weight=\"medium\" className=\"DBui-textInputIconText\">\n {iconText}\n </IconCaption>\n )}\n </div>\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default TextInput\n","// Lib\nimport React, { useState, useCallback } from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport { Paragraph, CaptionLg, CaptionMd, CaptionSm } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsNumberInput } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst IconTextCaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst formatNumber = (value: number | null | undefined): string => {\n if (value === null || value === undefined) return \"\"\n return value.toLocaleString(\"en-US\")\n}\n\nconst parseNumber = (raw: string): number | null => {\n const stripped = raw.replace(/,/g, \"\")\n if (stripped === \"\" || stripped === \"-\") return null\n const num = Number(stripped)\n return isNaN(num) ? null : num\n}\n\ntype NumberFieldProps = {\n field: { value: number | null | undefined; onChange: (value: number | null) => void; onBlur: () => void }\n size: InputBaseSize\n placeholder?: string\n disabled: boolean\n readOnly: boolean\n icon?: React.ReactNode\n iconText?: string\n isInvalid: boolean\n isSuccess?: boolean\n}\n\nconst NumberField: React.FC<NumberFieldProps> = ({\n field,\n size,\n placeholder,\n disabled,\n readOnly,\n icon,\n iconText,\n isInvalid,\n isSuccess,\n}) => {\n const { value, onChange, onBlur } = field\n\n const [displayValue, setDisplayValue] = useState(() => formatNumber(value))\n const [isFocused, setIsFocused] = useState(false)\n\n const IconCaption = IconTextCaptionBySize[size]\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = e.target.value\n if (raw !== \"\" && !/^-?[\\d,]*\\.?\\d*$/.test(raw)) return\n\n setDisplayValue(raw)\n const num = parseNumber(raw)\n onChange(num)\n },\n [onChange],\n )\n\n const handleFocus = useCallback(() => {\n setIsFocused(true)\n if (value !== null && value !== undefined) {\n setDisplayValue(String(value))\n }\n }, [value])\n\n const handleBlur = useCallback(() => {\n setIsFocused(false)\n setDisplayValue(formatNumber(value))\n onBlur()\n }, [value, onBlur])\n\n // Sync display when value changes externally while not focused\n const formatted = formatNumber(value)\n if (!isFocused && displayValue !== formatted) {\n setDisplayValue(formatted)\n }\n\n return (\n <div\n className=\"DBui-numberInput\"\n data-size={size}\n data-invalid={isInvalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n className=\"DBui-numberInputField\"\n type=\"text\"\n inputMode=\"decimal\"\n value={displayValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n {(icon || iconText) && (\n <div className=\"DBui-numberInputActions\">\n {icon && <span className=\"DBui-numberInputIcon\">{icon}</span>}\n {iconText && (\n <IconCaption weight=\"medium\" className=\"DBui-numberInputIconText\">\n {iconText}\n </IconCaption>\n )}\n </div>\n )}\n </div>\n )\n}\n\nconst NumberInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n icon,\n iconText,\n isSuccess,\n}: PropsNumberInput<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { error, invalid } = fieldState\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <NumberField\n field={field}\n size={size}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n icon={icon}\n iconText={iconText}\n isInvalid={invalid}\n isSuccess={isSuccess}\n />\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default NumberInput\n","import React from \"react\"\n\nconst FlagThSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"15\" viewBox=\"0 0 20 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect width=\"20\" height=\"15\" rx=\"1\" fill=\"#F4F5F8\" />\n <rect y=\"2.5\" width=\"20\" height=\"10\" fill=\"#2D2A4A\" />\n <rect y=\"2.5\" width=\"20\" height=\"10\" fill=\"white\" />\n <rect y=\"5\" width=\"20\" height=\"5\" fill=\"#2D2A4A\" />\n <rect width=\"20\" height=\"2.5\" fill=\"#A51931\" />\n <rect y=\"12.5\" width=\"20\" height=\"2.5\" fill=\"#A51931\" />\n </svg>\n )\n}\n\nexport default FlagThSvg\n","// Lib\nimport React from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport { Paragraph, CaptionLg, CaptionMd, CaptionSm } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport FlagThSvg from \"../../assets/flag-th\"\nimport type { PropsPhoneInput } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst IconTextCaptionBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst formatPhone = (value: string): string => {\n const digits = value.replace(/\\D/g, \"\").slice(0, 10)\n if (digits.length <= 3) return digits\n if (digits.length <= 6) return `${digits.slice(0, 3)}-${digits.slice(3)}`\n return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`\n}\n\nconst PhoneInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n icon,\n iconText,\n isSuccess,\n}: PropsPhoneInput<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const IconCaption = IconTextCaptionBySize[size]\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const digits = e.target.value.replace(/\\D/g, \"\").slice(0, 10)\n onChange(digits)\n }\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-phoneInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <span className=\"DBui-phoneInputFlag\">\n <FlagThSvg />\n </span>\n <input\n className=\"DBui-phoneInputField\"\n type=\"tel\"\n value={formatPhone(value ?? \"\")}\n onChange={handleChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n {(icon || iconText) && (\n <div className=\"DBui-phoneInputActions\">\n {icon && <span className=\"DBui-phoneInputIcon\">{icon}</span>}\n {iconText && (\n <IconCaption weight=\"medium\" className=\"DBui-phoneInputIconText\">\n {iconText}\n </IconCaption>\n )}\n </div>\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default PhoneInput\n","import React from \"react\"\n\nconst EyeSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M11.9999 9.00462C14.209 9.00462 15.9999 10.7955 15.9999 13.0046C15.9999 15.2138 14.209 17.0046 11.9999 17.0046C9.79073 17.0046 7.99987 15.2138 7.99987 13.0046C7.99987 10.7955 9.79073 9.00462 11.9999 9.00462ZM11.9999 5.5C16.6134 5.5 20.596 8.65001 21.701 13.0644C21.8016 13.4662 21.5574 13.8735 21.1556 13.9741C20.7537 14.0746 20.3465 13.8305 20.2459 13.4286C19.307 9.67796 15.9212 7 11.9999 7C8.07681 7 4.68997 9.68026 3.75273 13.4332C3.65237 13.835 3.24523 14.0794 2.84336 13.9791C2.44149 13.8787 2.19707 13.4716 2.29743 13.0697C3.40052 8.65272 7.38436 5.5 11.9999 5.5Z\"\n fill=\"#ADADAD\"\n />\n </svg>\n )\n}\n\nexport default EyeSvg\n","import React from \"react\"\n\nconst EyeOffSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M2.21967 2.21967C1.9534 2.48594 1.9292 2.9026 2.14705 3.19621L2.21967 3.28033L6.25424 7.3149C4.33225 8.66437 2.89577 10.6799 2.29888 13.0644C2.1983 13.4662 2.4425 13.8735 2.84431 13.9741C3.24613 14.0746 3.6534 13.8305 3.75399 13.4286C4.28346 11.3135 5.59112 9.53947 7.33416 8.39452L9.14379 10.2043C8.43628 10.9258 8 11.9143 8 13.0046C8 15.2138 9.79086 17.0046 12 17.0046C13.0904 17.0046 14.0788 16.5683 14.8004 15.8608L20.7197 21.7803C21.0126 22.0732 21.4874 22.0732 21.7803 21.7803C22.0466 21.5141 22.0708 21.0974 21.8529 20.8038L21.7803 20.7197L15.6668 14.6055L15.668 14.604L8.71877 7.65782L8.72 7.656L7.58672 6.52549L3.28033 2.21967C2.98744 1.92678 2.51256 1.92678 2.21967 2.21967ZM12 5.5C10.9997 5.5 10.0291 5.64807 9.11109 5.925L10.3481 7.16119C10.8839 7.05532 11.4364 7 12 7C15.9231 7 19.3099 9.68026 20.2471 13.4332C20.3475 13.835 20.7546 14.0794 21.1565 13.9791C21.5584 13.8787 21.8028 13.4716 21.7024 13.0697C20.5994 8.65272 16.6155 5.5 12 5.5ZM12.1947 9.00928L15.996 12.81C15.8942 10.7531 14.2472 9.10764 12.1947 9.00928Z\"\n fill=\"#ADADAD\"\n />\n </svg>\n )\n}\n\nexport default EyeOffSvg\n","// Lib\nimport { useState } from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport EyeSvg from \"../../assets/eye\"\nimport EyeOffSvg from \"../../assets/eye-off\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsPasswordInput } from \"./index.type\"\n\nconst PasswordInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n}: PropsPasswordInput<T>) => {\n const [isShow, setIsShow] = useState(false)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-passwordInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n className=\"DBui-passwordInputField\"\n type={isShow ? \"text\" : \"password\"}\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n <button\n type=\"button\"\n className=\"DBui-passwordInputToggle\"\n onClick={() => setIsShow((s) => !s)}\n tabIndex={-1}\n disabled={disabled}\n >\n {isShow ? <EyeSvg /> : <EyeOffSvg />}\n </button>\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default PasswordInput\n","// Lib\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsTextarea } from \"./index.type\"\n\nconst Textarea = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n rows = 3,\n cols,\n}: PropsTextarea<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div\n className=\"DBui-textarea\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <textarea\n className=\"DBui-textareaField\"\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n rows={rows}\n cols={cols}\n />\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default Textarea\n","export type MenuPositionAlign = \"left\" | \"right\"\n\nexport type MenuPositionOptions = {\n align?: MenuPositionAlign\n matchWidth?: boolean\n}\n\nconst MENU_GAP = 4\n\nexport const applyMenuPosition = (\n triggerEl: HTMLElement,\n menuEl: HTMLElement,\n options: MenuPositionOptions = {},\n) => {\n const { align = \"left\", matchWidth = false } = options\n const rect = triggerEl.getBoundingClientRect()\n const spaceBelow = window.innerHeight - rect.bottom - MENU_GAP\n const spaceAbove = rect.top - MENU_GAP\n const viewportMax = window.innerHeight * 0.7\n const goUp = spaceBelow < 150 && spaceAbove > spaceBelow\n const maxHeight = Math.min(goUp ? spaceAbove : spaceBelow, viewportMax)\n const top = goUp ? rect.top - MENU_GAP : rect.bottom + MENU_GAP\n\n const s = menuEl.style\n s.position = \"fixed\"\n s.maxHeight = `${maxHeight}px`\n s.overflowY = \"auto\"\n\n if (goUp) {\n s.top = \"\"\n s.bottom = `${window.innerHeight - top}px`\n } else {\n s.top = `${top}px`\n s.bottom = \"\"\n }\n\n if (align === \"right\") {\n s.left = \"\"\n s.right = `${window.innerWidth - rect.right}px`\n } else {\n s.left = `${rect.left}px`\n s.right = \"\"\n }\n\n if (matchWidth) {\n s.minWidth = `${rect.width}px`\n }\n}\n","import { useState, useRef, useEffect, useCallback } from \"react\"\nimport { applyMenuPosition } from \"./position\"\nimport type { MenuPositionOptions } from \"./position\"\n\nexport const useMenuDropdown = (positionOptions: MenuPositionOptions = {}, ignorePortalClicks = false) => {\n const [open, setOpen] = useState(false)\n const triggerRef = useRef<HTMLDivElement>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n\n const close = useCallback(() => setOpen(false), [])\n const toggle = useCallback(() => setOpen((prev) => !prev), [])\n\n useEffect(() => {\n if (!open) return\n\n const reposition = () => {\n if (triggerRef.current && menuRef.current) {\n applyMenuPosition(triggerRef.current, menuRef.current, positionOptions)\n }\n }\n reposition()\n\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (triggerRef.current?.contains(target) || menuRef.current?.contains(target)) return\n // Don't close if clicking inside a portalled dropdown (nested Select, Menu, etc.)\n if (ignorePortalClicks && target instanceof Element && target.closest(\".DBui-menuButtonDropdown, .DBui-selectDropdown\")) return\n close()\n }\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") close()\n }\n\n document.addEventListener(\"mousedown\", handleClickOutside)\n document.addEventListener(\"keydown\", handleEscape)\n window.addEventListener(\"scroll\", reposition, true)\n window.addEventListener(\"resize\", reposition)\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n document.removeEventListener(\"keydown\", handleEscape)\n window.removeEventListener(\"scroll\", reposition, true)\n window.removeEventListener(\"resize\", reposition)\n }\n }, [open, close, positionOptions, ignorePortalClicks])\n\n return { open, setOpen, close, toggle, triggerRef, menuRef }\n}\n","import React from \"react\"\n\nconst ChevronRightSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.125 2L7.875 6L4.125 10\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ChevronRightSvg\n","import React, { useMemo } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { useMenuDropdown } from \"./useMenuDropdown\"\nimport { Paragraph, LabelMd, LabelLg, Subtitle, CaptionMd } from \"../typography\"\nimport type { PropsTypography } from \"../typography/index.type\"\n\nimport \"./index.scss\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport CounterLabel from \"../counter-label\"\nimport type { CounterLabelSize } from \"../counter-label/index.type\"\nimport type {\n PropsMenu,\n PropsMenuItem,\n PropsMenuHeader,\n PropsMenuDivider,\n PropsMenuButton,\n MenuSize,\n} from \"./index.type\"\n\nconst CounterSizeByMenuSize: Record<MenuSize, CounterLabelSize> = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\",\n xl: \"md\",\n}\n\nconst LabelBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: Subtitle,\n}\n\nconst ShortcutBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: LabelLg,\n}\n\nconst DescriptionBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelMd,\n}\n\nconst HeaderBySize: Record<MenuSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: Subtitle,\n}\n\nconst applySizeToChildren = (nodes: React.ReactNode, size: MenuSize): React.ReactNode =>\n React.Children.map(nodes, (child) => {\n if (!React.isValidElement(child)) return child\n if (child.type === React.Fragment) {\n return applySizeToChildren((child.props as { children: React.ReactNode }).children, size)\n }\n if (typeof child.type !== \"string\") {\n return React.cloneElement(child as React.ReactElement<{ size?: MenuSize }>, {\n size: (child.props as { size?: MenuSize }).size ?? size,\n })\n }\n return child\n })\n\nconst Menu = React.forwardRef<HTMLDivElement, PropsMenu & React.HTMLAttributes<HTMLDivElement>>(\n ({ children, className, size = \"sm\", ...rest }, ref) => {\n return (\n <div className={`DBui-menu ${className ?? \"\"}`} ref={ref} {...rest}>\n {applySizeToChildren(children, size)}\n </div>\n )\n },\n)\n\nexport const MenuItem: React.FC<PropsMenuItem> = ({\n children,\n description,\n icon,\n shortcut,\n counter,\n counterType = \"red\",\n hasSubmenu = false,\n active = false,\n disabled = false,\n size = \"sm\",\n onClick,\n}) => {\n const Label = LabelBySize[size]\n const Shortcut = ShortcutBySize[size]\n const Description = DescriptionBySize[size]\n\n return (\n <div\n className=\"DBui-menuItem\"\n data-size={size}\n data-active={active}\n data-disabled={disabled}\n data-has-description={!!description}\n tabIndex={disabled ? undefined : 0}\n onClick={onClick}\n >\n <div className=\"DBui-menuItemLeft\" data-size={size}>\n {icon && (\n <div className=\"DBui-menuItemIconWrap\">\n <span className=\"DBui-menuItemIcon\" data-size={size}>\n {icon}\n </span>\n </div>\n )}\n {description ? (\n <div className=\"DBui-menuItemLabel\">\n <Label weight=\"semibold\">{children}</Label>\n <Description weight=\"text\" className=\"DBui-menuItemDescription\">\n {description}\n </Description>\n </div>\n ) : (\n <Label weight=\"medium\">{children}</Label>\n )}\n </div>\n <div className=\"DBui-menuItemRight\">\n {counter != null && (\n <CounterLabel size={CounterSizeByMenuSize[size]} type={counterType}>\n {counter}\n </CounterLabel>\n )}\n {shortcut && <Shortcut weight=\"medium\">{shortcut}</Shortcut>}\n {hasSubmenu && (\n <span className=\"DBui-menuItemChevron\" data-size={size}>\n <ChevronRightSvg />\n </span>\n )}\n </div>\n </div>\n )\n}\n\nexport const MenuHeader: React.FC<PropsMenuHeader> = ({ children, size = \"sm\" }) => {\n const Header = HeaderBySize[size]\n return (\n <div className=\"DBui-menuHeader\">\n <Header weight=\"bold\" className=\"DBui-menuHeaderLabel\">\n {children}\n </Header>\n </div>\n )\n}\n\nexport const MenuDivider: React.FC<PropsMenuDivider> = () => {\n return <div className=\"DBui-menuDivider\" />\n}\n\nexport const MenuButton: React.FC<PropsMenuButton> = ({\n children,\n trigger,\n size = \"sm\",\n align = \"left\",\n fullWidth = false,\n}) => {\n const positionOptions = useMemo(() => ({ align }), [align])\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown(positionOptions)\n\n const wrapMenuItems = (nodes: React.ReactNode): React.ReactNode =>\n React.Children.map(nodes, (child) => {\n if (!React.isValidElement(child)) return child\n if (child.type === React.Fragment) {\n return wrapMenuItems((child.props as { children: React.ReactNode }).children)\n }\n if (child.type === MenuItem) {\n const originalOnClick = (child as React.ReactElement<PropsMenuItem>).props.onClick\n return React.cloneElement(child as React.ReactElement<PropsMenuItem>, {\n onClick: () => {\n originalOnClick?.()\n close()\n },\n })\n }\n return child\n })\n\n const menuContent = open\n ? createPortal(\n <Menu ref={menuRef} className=\"DBui-menuButtonDropdown\" size={size}>\n {wrapMenuItems(children)}\n </Menu>,\n document.body,\n )\n : null\n\n const triggerContent = typeof trigger === \"function\" ? trigger({ isOpen: open }) : trigger\n\n return (\n <div className=\"DBui-menuButton\" ref={triggerRef} data-full-width={fullWidth}>\n <div className=\"DBui-menuButtonTrigger\" onClick={toggle}>\n {triggerContent}\n </div>\n {menuContent}\n </div>\n )\n}\n\nexport default Menu\n","// Lib\nimport React from \"react\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsLoading } from \"./index.type\"\n\nconst VIEWBOX_SIZE = 44\nconst RADIUS = 18\n\nconst STROKE_WIDTH = {\n sm: 4,\n lg: 8,\n} as const\n\nconst Loading: React.FC<PropsLoading> = ({ progress, thickness = \"sm\", className }) => {\n const circumference = 2 * Math.PI * RADIUS\n const clampedProgress = Math.min(100, Math.max(0, progress))\n const offset = circumference - (clampedProgress / 100) * circumference\n\n return (\n <svg\n className={`DBui-loading ${className ?? \"\"}`}\n data-thickness={thickness}\n viewBox={`0 0 ${VIEWBOX_SIZE} ${VIEWBOX_SIZE}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"DBui-loadingTrack\"\n cx={VIEWBOX_SIZE / 2}\n cy={VIEWBOX_SIZE / 2}\n r={RADIUS}\n strokeWidth={STROKE_WIDTH[thickness]}\n fill=\"none\"\n />\n <circle\n className=\"DBui-loadingIndicator\"\n cx={VIEWBOX_SIZE / 2}\n cy={VIEWBOX_SIZE / 2}\n r={RADIUS}\n strokeWidth={STROKE_WIDTH[thickness]}\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n />\n </svg>\n )\n}\n\nexport default Loading\n","import React from \"react\"\n\nconst ChevronDownSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.02903 2.90403C1.15107 2.78199 1.34893 2.78199 1.47097 2.90403L5 6.43306L8.52903 2.90403C8.65107 2.78199 8.84893 2.78199 8.97097 2.90403C9.09301 3.02607 9.09301 3.22393 8.97097 3.34597L5.22097 7.09597C5.09893 7.21801 4.90107 7.21801 4.77903 7.09597L1.02903 3.34597C0.90699 3.22393 0.90699 3.02607 1.02903 2.90403Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default ChevronDownSvg\n","// Lib\nimport { createPortal } from \"react-dom\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport InputBase from \"../input-base\"\nimport Menu from \"../../menu\"\nimport { MenuItem } from \"../../menu\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\nimport Loading from \"../../loading\"\nimport ChevronDownSvg from \"../../assets/chevron-down\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsSelect } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\nimport type { MenuSize } from \"../../menu/index.type\"\n\nconst MATCH_WIDTH_OPTIONS = { matchWidth: true } as const\n\nconst MenuSizeByInputSize: Record<InputBaseSize, MenuSize> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n}\n\nconst Select = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n options,\n loading = false,\n children,\n}: PropsSelect<T>) => {\n const { open, close, toggle, triggerRef, menuRef } = useMenuDropdown(MATCH_WIDTH_OPTIONS)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const selectedOption = options.find((o) => o.value === value)\n const menuSize = MenuSizeByInputSize[size]\n\n const handleSelect = (optionValue: string | number) => {\n onChange(optionValue)\n close()\n }\n\n const handleTriggerClick = () => {\n if (disabled || readOnly) return\n toggle()\n }\n\n const handleTriggerBlur = () => {\n if (!open) onBlur()\n }\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-select\">\n <div\n ref={triggerRef}\n className=\"DBui-selectTrigger\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n data-open={open}\n tabIndex={disabled ? undefined : 0}\n onClick={handleTriggerClick}\n onBlur={handleTriggerBlur}\n >\n <span className={`DBui-selectValue ${!selectedOption ? \"DBui-selectPlaceholder\" : \"\"}`}>\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <span className=\"DBui-selectIcon\" data-open={open}>\n <ChevronDownSvg />\n </span>\n </div>\n\n {open &&\n createPortal(\n <Menu ref={menuRef} className=\"DBui-selectDropdown\" size={menuSize}>\n {loading ? (\n <div className=\"DBui-selectLoading\">\n <Loading progress={25} thickness=\"sm\" />\n </div>\n ) : children ? (\n children({ value, onSelect: handleSelect })\n ) : (\n options.map((option) => (\n <MenuItem\n key={option.value}\n size={menuSize}\n active={option.value === value}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </MenuItem>\n ))\n )}\n </Menu>,\n document.body,\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default Select\n","import React from \"react\"\n\nconst ChevronLeftSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.875 2L4.125 6L7.875 10\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ChevronLeftSvg\n","// Lib\nimport React, { useMemo } from \"react\"\nimport { useForm } from \"react-hook-form\"\n\n// Components\nimport ButtonIcon from \"../button-icon\"\nimport Select from \"../input/select\"\nimport ChevronLeftSvg from \"../assets/chevron-left\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\n\n// Include in project\nimport type { PropsCalendar } from \"./index.type\"\nimport \"./index.scss\"\n\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\nconst WEEKDAYS = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]\n\nconst MONTH_OPTIONS = MONTHS.map((m, i) => ({ label: m, value: i }))\n\nfunction getDaysInMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate()\n}\n\nfunction getFirstDayOfWeek(year: number, month: number) {\n return new Date(year, month, 1).getDay()\n}\n\nfunction isSameDay(a: Date, b: Date) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate()\n}\n\nconst Calendar: React.FC<PropsCalendar> = ({ value, onChange, rangeStart, rangeEnd, min, max, className }) => {\n const today = new Date()\n const initial = value ?? rangeStart ?? today\n\n const { control, watch, setValue } = useForm({\n defaultValues: {\n month: initial.getMonth(),\n year: initial.getFullYear(),\n },\n })\n\n const viewMonth = watch(\"month\") as number\n const viewYear = watch(\"year\") as number\n\n const daysInMonth = getDaysInMonth(viewYear, viewMonth)\n const firstDay = getFirstDayOfWeek(viewYear, viewMonth)\n const prevMonthDays = getDaysInMonth(viewYear, viewMonth - 1)\n\n const goToPrevMonth = () => {\n if (viewMonth === 0) {\n setValue(\"month\", 11)\n setValue(\"year\", viewYear - 1)\n } else {\n setValue(\"month\", viewMonth - 1)\n }\n }\n\n const goToNextMonth = () => {\n if (viewMonth === 11) {\n setValue(\"month\", 0)\n setValue(\"year\", viewYear + 1)\n } else {\n setValue(\"month\", viewMonth + 1)\n }\n }\n\n const handleSelectDate = (day: number) => {\n const date = new Date(viewYear, viewMonth, day)\n onChange?.(date)\n }\n\n const yearOptions = useMemo(() => {\n const base = today.getFullYear()\n const opts = []\n for (let y = base - 100; y <= base + 20; y++) {\n opts.push({ label: String(y), value: y })\n }\n return opts\n }, [])\n\n // Build grid cells\n const cells: { day: number; outside: boolean }[] = []\n\n // Previous month trailing days\n for (let i = 0; i < firstDay; i++) {\n cells.push({ day: prevMonthDays - firstDay + 1 + i, outside: true })\n }\n\n // Current month days\n for (let d = 1; d <= daysInMonth; d++) {\n cells.push({ day: d, outside: false })\n }\n\n // Next month leading days\n const remaining = 7 - (cells.length % 7)\n if (remaining < 7) {\n for (let d = 1; d <= remaining; d++) {\n cells.push({ day: d, outside: true })\n }\n }\n\n return (\n <div className={`DBui-calendar ${className ?? \"\"}`}>\n <div className=\"DBui-calendarHeader\">\n <ButtonIcon icon={ChevronLeftSvg} size=\"sm\" variant=\"ghost\" color=\"default\" onClick={goToPrevMonth} />\n <div className=\"DBui-calendarSelects\">\n <Select control={control} name=\"month\" options={MONTH_OPTIONS} size=\"md\" fullWidth />\n <Select control={control} name=\"year\" options={yearOptions} size=\"md\" fullWidth />\n </div>\n <ButtonIcon icon={ChevronRightSvg} size=\"sm\" variant=\"ghost\" color=\"default\" onClick={goToNextMonth} />\n </div>\n\n <div className=\"DBui-calendarTable\">\n <div className=\"DBui-calendarWeekdays\">\n {WEEKDAYS.map((wd) => (\n <div key={wd} className=\"DBui-calendarWeekday\">\n {wd}\n </div>\n ))}\n </div>\n <div className=\"DBui-calendarBody\">\n {Array.from({ length: cells.length / 7 }, (_, rowIndex) => (\n <div key={rowIndex} className=\"DBui-calendarRow\">\n {cells.slice(rowIndex * 7, rowIndex * 7 + 7).map((cell, colIndex) => {\n const cellDate = cell.outside ? null : new Date(viewYear, viewMonth, cell.day)\n const isSelected = !cell.outside && value && isSameDay(value, new Date(viewYear, viewMonth, cell.day))\n const isRangeStart = !cell.outside && rangeStart && isSameDay(rangeStart, new Date(viewYear, viewMonth, cell.day))\n const isRangeEnd = !cell.outside && rangeEnd && isSameDay(rangeEnd, new Date(viewYear, viewMonth, cell.day))\n const isInRange =\n !cell.outside &&\n rangeStart &&\n rangeEnd &&\n cellDate &&\n cellDate > rangeStart &&\n cellDate < rangeEnd\n const isToday = !cell.outside && isSameDay(today, new Date(viewYear, viewMonth, cell.day))\n const isDisabled =\n cell.outside ||\n (min && cellDate && cellDate < new Date(min.getFullYear(), min.getMonth(), min.getDate())) ||\n (max && cellDate && cellDate > new Date(max.getFullYear(), max.getMonth(), max.getDate()))\n\n return (\n <button\n key={colIndex}\n type=\"button\"\n className=\"DBui-calendarDay\"\n data-selected={isSelected || isRangeStart || isRangeEnd || undefined}\n data-in-range={isInRange || undefined}\n data-outside={cell.outside || undefined}\n data-today={isToday || undefined}\n disabled={!!isDisabled}\n onClick={() => !cell.outside && handleSelectDate(cell.day)}\n >\n {cell.day}\n </button>\n )\n })}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default Calendar\n","import React from \"react\"\n\nconst CalendarSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.875 4.0625C6.875 3.88991 7.01491 3.75 7.1875 3.75H7.8125C7.98509 3.75 8.125 3.88991 8.125 4.0625V4.6875C8.125 4.86009 7.98509 5 7.8125 5H7.1875C7.01491 5 6.875 4.86009 6.875 4.6875V4.0625Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M5 4.0625C5 3.88991 5.13991 3.75 5.3125 3.75H5.9375C6.11009 3.75 6.25 3.88991 6.25 4.0625V4.6875C6.25 4.86009 6.11009 5 5.9375 5H5.3125C5.13991 5 5 4.86009 5 4.6875V4.0625Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M1.875 5.9375C1.875 5.76491 2.01491 5.625 2.1875 5.625H2.8125C2.98509 5.625 3.125 5.76491 3.125 5.9375V6.5625C3.125 6.73509 2.98509 6.875 2.8125 6.875H2.1875C2.01491 6.875 1.875 6.73509 1.875 6.5625V5.9375Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.75 5.9375C3.75 5.76491 3.88991 5.625 4.0625 5.625H4.6875C4.86009 5.625 5 5.76491 5 5.9375V6.5625C5 6.73509 4.86009 6.875 4.6875 6.875H4.0625C3.88991 6.875 3.75 6.73509 3.75 6.5625V5.9375Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M2.1875 0C2.36009 0 2.5 0.139911 2.5 0.3125V0.625H7.5V0.3125C7.5 0.139911 7.63991 0 7.8125 0C7.98509 0 8.125 0.139911 8.125 0.3125V0.625H8.75C9.44036 0.625 10 1.18464 10 1.875V8.75C10 9.44036 9.44036 10 8.75 10H1.25C0.559644 10 0 9.44036 0 8.75V1.875C0 1.18464 0.559644 0.625 1.25 0.625H1.875V0.3125C1.875 0.139911 2.01491 0 2.1875 0ZM0.625 2.5V8.75C0.625 9.09518 0.904822 9.375 1.25 9.375H8.75C9.09518 9.375 9.375 9.09518 9.375 8.75V2.5H0.625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default CalendarSvg\n","export function parseDate(str: string): Date | null {\n if (!str) return null\n const datePart = str.split(\"T\")[0]\n const [y, m, d] = datePart.split(\"-\").map(Number)\n if (!y || !m || !d) return null\n return new Date(y, m - 1, d)\n}\n\nexport function formatDate(date: Date): string {\n const y = date.getFullYear()\n const m = String(date.getMonth() + 1).padStart(2, \"0\")\n const d = String(date.getDate()).padStart(2, \"0\")\n return `${y}-${m}-${d}`\n}\n\nexport function formatDisplayDate(str: string): string {\n if (!str) return \"\"\n const date = parseDate(str)\n if (!date) return str\n return date.toLocaleDateString(\"en-US\", { year: \"numeric\", month: \"short\", day: \"numeric\" })\n}\n\nexport function formatDisplayDateTime(str: string): string {\n if (!str) return \"\"\n const date = parseDate(str)\n if (!date) return str\n const time = getTimePart(str)\n const dateStr = date.toLocaleDateString(\"en-US\", { year: \"numeric\", month: \"short\", day: \"numeric\" })\n return `${dateStr}, ${time}`\n}\n\nexport function getTimePart(str: string): string {\n if (!str || !str.includes(\"T\")) return \"00:00\"\n return str.split(\"T\")[1] || \"00:00\"\n}\n","// Lib\nimport { createPortal } from \"react-dom\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport CalendarSvg from \"../../assets/calendar\"\nimport Calendar from \"../../calendar\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport { parseDate, formatDate, formatDisplayDate } from \"../date-utils\"\nimport type { PropsDateInput } from \"./index.type\"\n\nconst DateInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder = \"Select date\",\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n min,\n max,\n}: PropsDateInput<T>) => {\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown({}, true)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const handleSelect = (date: Date) => {\n onChange(formatDate(date))\n close()\n }\n\n return (\n <>\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div ref={triggerRef}>\n <div\n className=\"DBui-dateInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n onClick={() => !disabled && !readOnly && toggle()}\n onBlur={onBlur}\n >\n <span className=\"DBui-dateInputValue\" data-empty={!value}>\n {value ? formatDisplayDate(value) : placeholder}\n </span>\n <span className=\"DBui-dateInputIcon\">\n <CalendarSvg />\n </span>\n </div>\n </div>\n </InputBase>\n {open &&\n createPortal(\n <div ref={menuRef}>\n <Calendar\n value={parseDate(value ?? \"\")}\n onChange={handleSelect}\n min={min ? (parseDate(min) ?? undefined) : undefined}\n max={max ? (parseDate(max) ?? undefined) : undefined}\n />\n </div>,\n document.body,\n )}\n </>\n )\n }}\n />\n )\n}\n\nexport default DateInput\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport CalendarSvg from \"../../assets/calendar\"\nimport Calendar from \"../../calendar\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport { parseDate, formatDate, formatDisplayDateTime, getTimePart } from \"../date-utils\"\nimport type { PropsDateTimeInput } from \"./index.type\"\n\nconst DateTimeInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder = \"Select date & time\",\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n min,\n max,\n}: PropsDateTimeInput<T>) => {\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown({}, true)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n const currentTime = getTimePart(value ?? \"\")\n\n const handleSelectDate = (date: Date) => {\n onChange(`${formatDate(date)}T${currentTime}`)\n close()\n }\n\n const handleTimeChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const datePart = value ? value.split(\"T\")[0] : formatDate(new Date())\n onChange(`${datePart}T${e.target.value}`)\n }\n\n return (\n <>\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div ref={triggerRef}>\n <div\n className=\"DBui-dateTimeInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n onClick={() => !disabled && !readOnly && toggle()}\n onBlur={onBlur}\n >\n <span className=\"DBui-dateTimeInputValue\" data-empty={!value}>\n {value ? formatDisplayDateTime(value) : placeholder}\n </span>\n <span className=\"DBui-dateTimeInputIcon\">\n <CalendarSvg />\n </span>\n </div>\n </div>\n </InputBase>\n {open &&\n createPortal(\n <div ref={menuRef} className=\"DBui-dateTimeInputPopup\">\n <Calendar\n value={parseDate(value ?? \"\")}\n onChange={handleSelectDate}\n min={min ? (parseDate(min) ?? undefined) : undefined}\n max={max ? (parseDate(max) ?? undefined) : undefined}\n />\n <div className=\"DBui-dateTimeInputTimeRow\">\n <input\n type=\"time\"\n className=\"DBui-dateTimeInputTime\"\n value={currentTime}\n onChange={handleTimeChange}\n />\n </div>\n </div>,\n document.body,\n )}\n </>\n )\n }}\n />\n )\n}\n\nexport default DateTimeInput\n","// Lib\nimport { useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport CalendarSvg from \"../../assets/calendar\"\nimport Calendar from \"../../calendar\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport { parseDate, formatDate, formatDisplayDate } from \"../date-utils\"\nimport type { PropsDateRangeInput, DateRangeValue } from \"./index.type\"\n\nconst DateRangeInput = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n startPlaceholder = \"Start date\",\n endPlaceholder = \"End date\",\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n min,\n max,\n}: PropsDateRangeInput<T>) => {\n const { open, toggle, close, triggerRef, menuRef } = useMenuDropdown({}, true)\n const [picking, setPicking] = useState<\"start\" | \"end\">(\"start\")\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const value: DateRangeValue = field.value ?? { start: \"\", end: \"\" }\n const { onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const handleSelect = (date: Date) => {\n const dateStr = formatDate(date)\n\n if (picking === \"start\") {\n if (value.end && dateStr > value.end) {\n onChange({ start: dateStr, end: \"\" })\n } else {\n onChange({ ...value, start: dateStr })\n }\n setPicking(\"end\")\n } else {\n if (value.start && dateStr < value.start) {\n onChange({ start: dateStr, end: \"\" })\n setPicking(\"end\")\n } else {\n onChange({ ...value, end: dateStr })\n setPicking(\"start\")\n close()\n }\n }\n }\n\n const handleOpen = () => {\n if (disabled || readOnly) return\n setPicking(\"start\")\n toggle()\n }\n\n return (\n <>\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div ref={triggerRef}>\n <div\n className=\"DBui-dateRangeInput\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n onClick={handleOpen}\n onBlur={onBlur}\n >\n <span className=\"DBui-dateRangeInputValue\" data-empty={!value.start}>\n {value.start ? formatDisplayDate(value.start) : startPlaceholder}\n </span>\n <span className=\"DBui-dateRangeInputSeparator\">–</span>\n <span className=\"DBui-dateRangeInputValue\" data-empty={!value.end}>\n {value.end ? formatDisplayDate(value.end) : endPlaceholder}\n </span>\n <span className=\"DBui-dateRangeInputIcon\">\n <CalendarSvg />\n </span>\n </div>\n </div>\n </InputBase>\n {open &&\n createPortal(\n <div ref={menuRef}>\n <Calendar\n rangeStart={parseDate(value.start)}\n rangeEnd={parseDate(value.end)}\n onChange={handleSelect}\n min={min ? (parseDate(min) ?? undefined) : undefined}\n max={max ? (parseDate(max) ?? undefined) : undefined}\n />\n </div>,\n document.body,\n )}\n </>\n )\n }}\n />\n )\n}\n\nexport default DateRangeInput\n","import React from \"react\"\n\nconst SearchSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.33885 6.46493C7.83307 5.79206 8.125 4.96137 8.125 4.0625C8.125 1.81884 6.30616 0 4.0625 0C1.81884 0 0 1.81884 0 4.0625C0 6.30616 1.81884 8.125 4.0625 8.125C4.96161 8.125 5.79251 7.83291 6.46547 7.33845L6.46493 7.33885C6.48336 7.36384 6.50389 7.38778 6.52652 7.4104L8.93306 9.81694C9.17714 10.061 9.57287 10.061 9.81694 9.81694C10.061 9.57287 10.061 9.17714 9.81694 8.93306L7.4104 6.52652C7.38778 6.50389 7.36384 6.48336 7.33885 6.46493ZM7.5 4.0625C7.5 5.96098 5.96098 7.5 4.0625 7.5C2.16402 7.5 0.625 5.96098 0.625 4.0625C0.625 2.16402 2.16402 0.625 4.0625 0.625C5.96098 0.625 7.5 2.16402 7.5 4.0625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default SearchSvg\n","import React from \"react\"\n\nconst XCircleFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14ZM9.36872 8.13128C9.02701 7.78957 8.47299 7.78957 8.13128 8.13128C7.78957 8.47299 7.78957 9.02701 8.13128 9.36872L12.7626 14L8.13128 18.6313C7.78957 18.973 7.78957 19.527 8.13128 19.8687C8.47299 20.2104 9.02701 20.2104 9.36872 19.8687L14 15.2374L18.6313 19.8687C18.973 20.2104 19.527 20.2104 19.8687 19.8687C20.2104 19.527 20.2104 18.973 19.8687 18.6313L15.2374 14L19.8687 9.36872C20.2104 9.02701 20.2104 8.47299 19.8687 8.13128C19.527 7.78957 18.973 7.78957 18.6313 8.13128L14 12.7626L9.36872 8.13128Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default XCircleFillSvg\n","// Lib\nimport { useRef } from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport SearchSvg from \"../assets/search\"\nimport XCircleFillSvg from \"../assets/x-circle-fill\"\n\n// Include in project\nimport type { PropsSearchBar } from \"./index.type\"\nimport \"./index.scss\"\n\nconst SearchBar = <T extends FieldValues = FieldValues>({\n control,\n name,\n placeholder = \"Search\",\n showIcon = true,\n size = \"sm\",\n disabled = false,\n onClear,\n className,\n}: PropsSearchBar<T>) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const { value, onChange, onBlur } = field\n const hasValue = !!(value && value.length > 0)\n\n const handleClear = () => {\n onChange(\"\")\n onClear?.()\n inputRef.current?.focus()\n }\n\n return (\n <div className={`DBui-searchBar ${className ?? \"\"}`} data-size={size} data-disabled={disabled}>\n {showIcon && (\n <span className=\"DBui-searchBarIcon\">\n <SearchSvg />\n </span>\n )}\n <input\n ref={inputRef}\n className=\"DBui-searchBarInput\"\n type=\"text\"\n value={value ?? \"\"}\n onChange={onChange}\n onBlur={onBlur}\n placeholder={placeholder}\n disabled={disabled}\n />\n {hasValue && (\n <button type=\"button\" className=\"DBui-searchBarClear\" onClick={handleClear} disabled={disabled}>\n <XCircleFillSvg />\n </button>\n )}\n </div>\n )\n }}\n />\n )\n}\n\nexport default SearchBar\n","import React from \"react\"\n\nconst IonCheckmarkSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_391_146)\">\n <path\n d=\"M1.08942 4.68117L2.90774 6.40964L6.99994 1.33325\"\n stroke=\"white\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_391_146\">\n <rect width=\"8\" height=\"8\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default IonCheckmarkSvg\n","import React from \"react\"\n\nconst BarSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"8\" height=\"2\" viewBox=\"0 0 8 2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0 1C0 0.447715 0.358172 0 0.8 0H7.2C7.64183 0 8 0.447715 8 1C8 1.55228 7.64183 2 7.2 2H0.8C0.358172 2 0 1.55228 0 1Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nexport default BarSvg\n","// Lib\nimport React from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport { LabelMd, LabelLg, Subtitle, Title, CaptionMd, Paragraph } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\nimport IonCheckmarkSvg from \"../../assets/icon-checkmark\"\nimport BarSvg from \"../../assets/bar\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsCheckbox } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: Subtitle,\n xl: Title,\n}\n\nconst DescBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst Checkbox = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n disabled = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n isVertical = false,\n hint,\n isSuccess,\n options,\n}: PropsCheckbox<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const value: (string | number)[] = field.value ?? []\n const { onChange } = field\n const { error, invalid } = fieldState\n const Label = LabelBySize[size]\n const Desc = DescBySize[size]\n\n const toggleValue = (checkedValue: string | number) => {\n if (value.includes(checkedValue)) {\n onChange(value.filter((v) => v !== checkedValue))\n } else {\n onChange([...value, checkedValue])\n }\n }\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-checkboxList\" data-vertical={isVertical} data-size={size}>\n {options.map((data, index) => {\n const isChecked = value.includes(data.value)\n const isIndeterminate = !!data.indeterminate && !isChecked\n\n return (\n <label key={index} className=\"DBui-checkboxItem\" data-disabled={disabled}>\n <span className=\"DBui-checkboxControl\">\n <input\n type=\"checkbox\"\n className=\"DBui-checkboxNative\"\n disabled={disabled}\n checked={isChecked}\n ref={(el) => {\n if (el) el.indeterminate = isIndeterminate\n }}\n onChange={() => toggleValue(data.value)}\n />\n <span\n className=\"DBui-checkboxBox\"\n data-checked={isChecked}\n data-indeterminate={isIndeterminate}\n data-invalid={invalid}\n data-disabled={disabled}\n >\n {isChecked && (\n <span className=\"DBui-checkboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n {isIndeterminate && (\n <span className=\"DBui-checkboxIcon\">\n <BarSvg />\n </span>\n )}\n </span>\n </span>\n <span className=\"DBui-checkboxContent\">\n <Label as=\"span\" weight=\"medium\" className=\"DBui-checkboxLabel\">{data.label}</Label>\n {data.description && <Desc as=\"span\" className=\"DBui-checkboxDescription\">{data.description}</Desc>}\n </span>\n </label>\n )\n })}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default Checkbox\n","// Lib\nimport React from \"react\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport { LabelMd, LabelLg, Subtitle, Title, CaptionMd, Paragraph } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport InputBase from \"../input-base\"\nimport type { PropsRadioButton } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: Subtitle,\n xl: Title,\n}\n\nconst DescBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionMd,\n md: Paragraph,\n lg: LabelMd,\n xl: LabelLg,\n}\n\nconst RadioButton = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n disabled = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n isVertical = false,\n hint,\n isSuccess,\n options,\n}: PropsRadioButton<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange } = field\n const { error, invalid } = fieldState\n const Label = LabelBySize[size]\n const Desc = DescBySize[size]\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-radioList\" data-vertical={isVertical} data-size={size}>\n {options.map((data, index) => {\n const isChecked = value === data.value\n\n return (\n <label key={index} className=\"DBui-radioItem\" data-disabled={disabled}>\n <span className=\"DBui-radioControl\">\n <input\n type=\"radio\"\n className=\"DBui-radioNative\"\n disabled={disabled}\n checked={isChecked}\n onChange={() => {}}\n onClick={() => {\n if (isChecked) {\n onChange(\"\")\n } else {\n onChange(data.value)\n }\n }}\n />\n <span\n className=\"DBui-radioCircle\"\n data-checked={isChecked}\n data-invalid={invalid}\n data-disabled={disabled}\n >\n {isChecked && <span className=\"DBui-radioDot\" />}\n </span>\n </span>\n <span className=\"DBui-radioContent\">\n <span className=\"DBui-radioLabelRow\">\n <Label as=\"span\" weight=\"medium\" className=\"DBui-radioLabel\">{data.label}</Label>\n {data.image && <span className=\"DBui-radioImage\">{data.image}</span>}\n </span>\n {data.description && <Desc as=\"span\" className=\"DBui-radioDescription\">{data.description}</Desc>}\n </span>\n </label>\n )\n })}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default RadioButton\n","// Lib\nimport React, { useState, useCallback } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport InputBase from \"../input-base\"\nimport Menu from \"../../menu\"\nimport { MenuItem } from \"../../menu\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\nimport Loading from \"../../loading\"\nimport { CaptionSm, CaptionMd, CaptionLg, Paragraph, LabelMd, LabelLg } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsAutoComplete } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\nimport type { MenuSize } from \"../../menu/index.type\"\n\nconst MATCH_WIDTH_OPTIONS = { matchWidth: true } as const\n\nconst MenuSizeByInputSize: Record<InputBaseSize, MenuSize> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n}\n\nconst IconTextBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: CaptionSm,\n md: CaptionMd,\n lg: CaptionLg,\n xl: Paragraph,\n}\n\nconst EmptyLabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: Paragraph,\n md: LabelMd,\n lg: LabelLg,\n xl: LabelLg,\n}\n\nconst AutoComplete = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n readOnly = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n options,\n loading = false,\n emptyText = \"No results found\",\n children,\n}: PropsAutoComplete<T>) => {\n const { open, setOpen, close, triggerRef, menuRef } = useMenuDropdown(MATCH_WIDTH_OPTIONS)\n const [query, setQuery] = useState(\"\")\n\n const filteredOptions = options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))\n\n const IconCaption = IconTextBySize[size]\n const EmptyLabel = EmptyLabelBySize[size]\n\n const openDropdown = useCallback(() => {\n if (!disabled && !readOnly) setOpen(true)\n }, [disabled, readOnly, setOpen])\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const { value, onChange, onBlur } = field\n const { error, invalid } = fieldState\n const menuSize = MenuSizeByInputSize[size]\n\n const handleSelect = (optionValue: string | number) => {\n const selected = options.find((o) => o.value === optionValue)\n if (selected) {\n onChange(optionValue)\n setQuery(selected.label)\n }\n close()\n }\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const text = e.target.value\n setQuery(text)\n onChange(\"\")\n openDropdown()\n }\n\n const handleFocus = () => {\n openDropdown()\n }\n\n const handleBlur = () => {\n if (!open) {\n if (!value) setQuery(\"\")\n onBlur()\n }\n }\n\n // sync query if value changes externally\n const selectedOption = options.find((o) => o.value === value)\n if (value && selectedOption && query !== selectedOption.label && !open) {\n setQuery(selectedOption.label)\n }\n\n const showDropdown = open && !disabled && !readOnly\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-autoComplete\">\n <div\n ref={triggerRef}\n className=\"DBui-autoCompleteTrigger\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n <input\n type=\"text\"\n value={query}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n />\n <div className=\"DBui-autoCompleteActions\">\n <IconCaption weight=\"medium\" className=\"DBui-autoCompleteIconText\">\n Autofill\n </IconCaption>\n </div>\n </div>\n\n {showDropdown &&\n createPortal(\n <Menu ref={menuRef} className=\"DBui-autoCompleteDropdown\" size={menuSize}>\n {loading ? (\n <div className=\"DBui-autoCompleteLoading\">\n <Loading progress={25} thickness=\"sm\" />\n </div>\n ) : children ? (\n children({ query, onSelect: handleSelect })\n ) : filteredOptions.length === 0 ? (\n <div className=\"DBui-autoCompleteEmpty\" data-size={menuSize}>\n <EmptyLabel weight=\"medium\">{emptyText}</EmptyLabel>\n </div>\n ) : (\n filteredOptions.map((option) => (\n <MenuItem\n key={option.value}\n size={menuSize}\n active={option.value === value}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </MenuItem>\n ))\n )}\n </Menu>,\n document.body,\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default AutoComplete\n","// Lib\nimport React from \"react\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsOnRemove } from \"./index.type\"\n\nconst XIcon: React.FC = () => (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.79 2.79C2.89547 2.68466 3.03844 2.62549 3.1875 2.62549C3.33656 2.62549 3.47953 2.68466 3.585 2.79L6 5.205L8.415 2.79C8.46653 2.73473 8.52863 2.69041 8.59763 2.65966C8.66663 2.62892 8.7411 2.61239 8.81663 2.61106C8.89215 2.60972 8.96715 2.62362 9.0372 2.65191C9.10725 2.6802 9.17085 2.7223 9.22425 2.77572C9.27773 2.82913 9.3198 2.89276 9.34808 2.9628C9.37635 3.03284 9.3903 3.10787 9.38895 3.18339C9.3876 3.25892 9.3711 3.3334 9.34035 3.4024C9.3096 3.4714 9.26528 3.5335 9.21 3.585L6.795 6L9.21 8.415C9.26528 8.46653 9.3096 8.52863 9.34035 8.59763C9.3711 8.66663 9.3876 8.7411 9.38895 8.81662C9.3903 8.89215 9.37635 8.96715 9.34808 9.0372C9.3198 9.10725 9.27773 9.17085 9.22425 9.22425C9.17085 9.27772 9.10725 9.3198 9.0372 9.34807C8.96715 9.37635 8.89215 9.3903 8.81663 9.38895C8.7411 9.3876 8.66663 9.3711 8.59763 9.34035C8.52863 9.3096 8.46653 9.26527 8.415 9.21L6 6.795L3.585 9.21C3.47837 9.30937 3.33733 9.36345 3.1916 9.3609C3.04588 9.35828 2.90684 9.29925 2.80378 9.1962C2.70072 9.09315 2.64169 8.9541 2.63912 8.80838C2.63654 8.66265 2.69064 8.52165 2.79 8.415L5.205 6L2.79 3.585C2.68466 3.47953 2.6255 3.33656 2.6255 3.1875C2.6255 3.03844 2.68466 2.89547 2.79 2.79Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst OnRemove: React.FC<PropsOnRemove> = ({\n size = \"sm\",\n color = \"default\",\n selected = false,\n onClick,\n className,\n}) => {\n return (\n <span\n className={`DBui-onRemove ${className ?? \"\"}`}\n data-size={size}\n data-color={color}\n data-selected={selected}\n onClick={onClick}\n >\n <span className=\"DBui-onRemoveIcon\">\n <XIcon />\n </span>\n </span>\n )\n}\n\nexport default OnRemove\n","// Lib\nimport React from \"react\"\n\n// Components\nimport OnRemove from \"../on-remove\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsChip } from \"./index.type\"\n\nconst Chip: React.FC<PropsChip> = ({\n children,\n color = \"secondary\",\n size = \"sm\",\n disabled = false,\n onRemove,\n className,\n}) => {\n const hasRemove = !!onRemove\n const isWhiteIcon = color !== \"default\" && !disabled\n\n return (\n <span\n className={`DBui-chip ${className ?? \"\"}`}\n data-color={disabled ? \"default\" : color}\n data-size={size}\n data-disabled={disabled}\n data-has-remove={hasRemove}\n >\n {children}\n {hasRemove && (\n <OnRemove\n size={size}\n color={isWhiteIcon ? \"white\" : \"default\"}\n selected\n onClick={(e) => {\n e?.stopPropagation()\n onRemove()\n }}\n />\n )}\n </span>\n )\n}\n\nexport default Chip\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Components\nimport InputBase from \"../input-base\"\nimport Menu from \"../../menu\"\nimport { useMenuDropdown } from \"../../menu/useMenuDropdown\"\nimport Loading from \"../../loading\"\nimport Chip from \"../../chip\"\nimport ChevronDownSvg from \"../../assets/chevron-down\"\nimport IonCheckmarkSvg from \"../../assets/icon-checkmark\"\nimport { LabelMd, LabelLg, Subtitle } from \"../../typography\"\nimport type { PropsTypography } from \"../../typography/index.type\"\nimport type { ChipSize } from \"../../chip/index.type\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsMultiSelect } from \"./index.type\"\nimport type { InputBaseSize } from \"../input-base/index.type\"\nimport type { MenuSize } from \"../../menu/index.type\"\n\nconst MATCH_WIDTH_OPTIONS = { matchWidth: true } as const\n\nconst MenuSizeByInputSize: Record<InputBaseSize, MenuSize> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"lg\",\n xl: \"xl\",\n}\n\nconst ChipSizeByInputSize: Record<InputBaseSize, ChipSize> = {\n sm: \"sm\",\n md: \"sm\",\n lg: \"md\",\n xl: \"lg\",\n}\n\nconst LabelBySize: Record<InputBaseSize, React.FC<PropsTypography>> = {\n sm: LabelMd,\n md: LabelLg,\n lg: Subtitle,\n xl: Subtitle,\n}\n\nconst MultiSelect = <T extends FieldValues = FieldValues>({\n control,\n name,\n label,\n caption,\n placeholder,\n disabled = false,\n require = false,\n fullWidth = false,\n size = \"sm\",\n hint,\n isSuccess,\n options,\n loading = false,\n children,\n}: PropsMultiSelect<T>) => {\n const { open, toggle, triggerRef, menuRef } = useMenuDropdown(MATCH_WIDTH_OPTIONS)\n\n const chipSize = ChipSizeByInputSize[size]\n\n return (\n <Controller\n name={name}\n control={control}\n render={({ field, fieldState }) => {\n const values: (string | number)[] = field.value ?? []\n const { onChange, onBlur } = field\n const { error, invalid } = fieldState\n\n const menuSize = MenuSizeByInputSize[size]\n\n const toggleOption = (optionValue: string | number) => {\n if (values.includes(optionValue)) {\n onChange(values.filter((v) => v !== optionValue))\n } else {\n onChange([...values, optionValue])\n }\n }\n\n const handleTriggerClick = () => {\n if (disabled) return\n toggle()\n }\n\n const handleTriggerBlur = () => {\n if (!open) onBlur()\n }\n\n const selectedOptions = options.filter((o) => values.includes(o.value))\n\n return (\n <InputBase\n name={name}\n label={label}\n caption={caption}\n require={require}\n fullWidth={fullWidth}\n size={size}\n isInvalid={invalid}\n isSuccess={isSuccess}\n hint={hint}\n errorMessage={error?.message}\n >\n <div className=\"DBui-multiSelect\">\n <div\n ref={triggerRef}\n className=\"DBui-multiSelectTrigger\"\n data-size={size}\n data-invalid={invalid}\n data-success={isSuccess}\n data-disabled={disabled}\n data-open={open}\n tabIndex={disabled ? undefined : 0}\n onClick={handleTriggerClick}\n onBlur={handleTriggerBlur}\n >\n <div className=\"DBui-multiSelectChips\">\n {selectedOptions.length === 0 && <span className=\"DBui-multiSelectPlaceholder\">{placeholder}</span>}\n {selectedOptions.map((option) => (\n <Chip\n key={option.value}\n size={chipSize}\n disabled={disabled}\n onRemove={() => onChange(values.filter((v) => v !== option.value))}\n >\n {option.label}\n </Chip>\n ))}\n </div>\n <span className=\"DBui-multiSelectIcon\" data-open={open}>\n <ChevronDownSvg />\n </span>\n </div>\n\n {open &&\n createPortal(\n <Menu ref={menuRef} className=\"DBui-multiSelectDropdown\" size={menuSize}>\n {loading ? (\n <div className=\"DBui-multiSelectLoading\">\n <Loading progress={25} thickness=\"sm\" />\n </div>\n ) : children ? (\n children({ values, onToggle: toggleOption })\n ) : (\n options.map((option) => {\n const active = values.includes(option.value)\n return (\n <div\n key={option.value}\n className=\"DBui-multiSelectOption\"\n data-size={menuSize}\n tabIndex={0}\n onClick={() => toggleOption(option.value)}\n >\n <span className=\"DBui-multiSelectOptionCheckbox\" data-checked={active}>\n {active && (\n <span className=\"DBui-multiSelectOptionCheckboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n </span>\n {(() => {\n const OptionLabel = LabelBySize[size]\n return <OptionLabel weight=\"medium\">{option.label}</OptionLabel>\n })()}\n </div>\n )\n })\n )}\n </Menu>,\n document.body,\n )}\n </div>\n </InputBase>\n )\n }}\n />\n )\n}\n\nexport default MultiSelect\n","// Lib\nimport { Controller, type FieldValues } from \"react-hook-form\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsToggle } from \"./index.type\"\n\nconst Toggle = <T extends FieldValues = FieldValues>({ control, name, disabled = false, size = \"sm\" }: PropsToggle<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const { value, onChange } = field\n const isChecked = Boolean(value)\n\n return (\n <label className=\"DBui-toggle\" data-size={size} data-disabled={disabled}>\n <input\n type=\"checkbox\"\n className=\"DBui-toggleNative\"\n checked={isChecked}\n disabled={disabled}\n onChange={() => onChange(!value)}\n />\n <span className=\"DBui-toggleTrack\" data-checked={isChecked} data-disabled={disabled}>\n <span className=\"DBui-toggleThumb\" />\n </span>\n </label>\n )\n }}\n />\n )\n}\n\nexport default Toggle\n","import { useEffect, useState, useCallback } from \"react\"\n\nexport const useOverlay = (open: boolean, onClose: () => void) => {\n const [removing, setRemoving] = useState(false)\n\n const handleClose = useCallback(() => {\n setRemoving(true)\n setTimeout(() => {\n setRemoving(false)\n onClose()\n }, 200)\n }, [onClose])\n\n useEffect(() => {\n if (!open) return\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") handleClose()\n }\n document.addEventListener(\"keydown\", handleEscape)\n return () => document.removeEventListener(\"keydown\", handleEscape)\n }, [open, handleClose])\n\n const visible = open || removing\n\n return { removing, visible, handleClose }\n}\n","// Lib\nimport React from \"react\"\nimport { createPortal } from \"react-dom\"\n\n// Components\nimport { H6 } from \"../typography\"\nimport Button from \"../button\"\nimport OnRemove from \"../on-remove\"\nimport { useOverlay } from \"../overlay/useOverlay\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsModal } from \"./index.type\"\n\nconst Modal: React.FC<PropsModal> = ({\n open,\n onClose,\n title,\n children,\n footer,\n onBack,\n onNext,\n onDelete,\n backText = \"Back\",\n nextText = \"Next\",\n deleteText = \"Delete\",\n}) => {\n const { removing, visible, handleClose } = useOverlay(open, onClose)\n\n if (!visible) return null\n\n const hasBuiltInFooter = onBack || onNext || onDelete\n const hasDelete = !!onDelete\n\n return createPortal(\n <div className=\"DBui-modalBackdrop\" data-removing={removing} onClick={handleClose}>\n <div className=\"DBui-modal\" data-removing={removing} onClick={(e) => e.stopPropagation()}>\n <div className=\"DBui-modalHeader\">\n <div className=\"DBui-modalHeaderTitle\">\n {title && (\n <H6 as=\"span\" weight=\"bold\">\n {title}\n </H6>\n )}\n </div>\n <OnRemove size=\"lg\" selected onClick={handleClose} className=\"DBui-modalHeaderClose\" />\n </div>\n\n <div className=\"DBui-modalBody\">{children}</div>\n\n {footer\n ? footer\n : hasBuiltInFooter && (\n <div className=\"DBui-modalFooter\" data-has-delete={hasDelete}>\n {onDelete && (\n <Button size=\"lg\" variant=\"outline\" color=\"danger\" onClick={onDelete}>\n {deleteText}\n </Button>\n )}\n <div className=\"DBui-modalFooterRight\">\n {onBack && (\n <Button size=\"lg\" color=\"neutral\" onClick={onBack}>\n {backText}\n </Button>\n )}\n {onNext && (\n <Button size=\"lg\" color=\"primary\" onClick={onNext}>\n {nextText}\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n </div>,\n document.body,\n )\n}\n\nexport default Modal\n","// Lib\nimport React, { useCallback } from \"react\"\nimport { createPortal } from \"react-dom\"\n\n// Components\nimport { H5, LabelLg } from \"../typography\"\nimport Button from \"../button\"\nimport OnRemove from \"../on-remove\"\nimport { useOverlay } from \"../overlay/useOverlay\"\n\n// Include in project\nimport \"./index.scss\"\nimport type { PropsDialogBox } from \"./index.type\"\n\nconst DialogBox: React.FC<PropsDialogBox> = ({\n open,\n onClose,\n title,\n children,\n onConfirm,\n onCancel,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n confirmColor = \"primary\",\n showCancel = true,\n}) => {\n const { removing, visible, handleClose } = useOverlay(open, onClose)\n\n const handleCancel = useCallback(() => {\n onCancel?.()\n handleClose()\n }, [onCancel, handleClose])\n\n const handleConfirm = useCallback(() => {\n onConfirm?.()\n handleClose()\n }, [onConfirm, handleClose])\n\n if (!visible) return null\n\n return createPortal(\n <div className=\"DBui-dialogBackdrop\" data-removing={removing} onClick={handleClose}>\n <div className=\"DBui-dialogBox\" data-removing={removing} onClick={(e) => e.stopPropagation()}>\n <div className=\"DBui-dialogBoxContent\">\n <div className=\"DBui-dialogBoxMain\">\n {title && (\n <H5 as=\"span\" weight=\"semibold\">\n {title}\n </H5>\n )}\n {children && <LabelLg weight=\"medium\">{children}</LabelLg>}\n </div>\n <OnRemove size=\"lg\" selected onClick={handleClose} className=\"DBui-dialogBoxClose\" />\n </div>\n {(onConfirm || showCancel) && (\n <div className=\"DBui-dialogBoxActions\">\n {showCancel && (\n <Button size=\"lg\" variant=\"outline\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </Button>\n )}\n {onConfirm && (\n <Button size=\"lg\" color={confirmColor} onClick={handleConfirm}>\n {confirmText}\n </Button>\n )}\n </div>\n )}\n </div>\n </div>,\n document.body,\n )\n}\n\nexport default DialogBox\n","import React from \"react\"\n\nconst InfoCircleFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 28C21.732 28 28 21.732 28 14C28 6.26801 21.732 0 14 0C6.26801 0 0 6.26801 0 14C0 21.732 6.26801 28 14 28ZM15.6287 11.5288L13.8753 19.7627C13.7523 20.3574 13.9266 20.6958 14.4085 20.6958C14.7469 20.6958 15.2596 20.5728 15.6082 20.2651L15.4544 20.9932C14.952 21.5981 13.8446 22.0391 12.8909 22.0391C11.6605 22.0391 11.1375 21.3008 11.4759 19.7319L12.7679 13.6616C12.8807 13.1489 12.7781 12.9644 12.2654 12.8413L11.4759 12.6978L11.6195 12.0312L15.6287 11.5288ZM14 9.625C13.0335 9.625 12.25 8.8415 12.25 7.875C12.25 6.9085 13.0335 6.125 14 6.125C14.9665 6.125 15.75 6.9085 15.75 7.875C15.75 8.8415 14.9665 9.625 14 9.625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default InfoCircleFillSvg\n","import React from \"react\"\n\nconst CheckCircleFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14ZM21.0531 8.69692C20.5405 8.18436 19.7095 8.18436 19.1969 8.69692C19.1845 8.7093 19.1729 8.72241 19.1621 8.73618L13.0854 16.4793L9.42178 12.8156C8.90922 12.3031 8.07819 12.3031 7.56563 12.8156C7.05307 13.3282 7.05307 14.1592 7.56563 14.6718L12.1969 19.3031C12.7095 19.8156 13.5405 19.8156 14.0531 19.3031C14.0645 19.2917 14.0753 19.2796 14.0853 19.267L21.0717 10.5341C21.5656 10.0202 21.5593 9.2032 21.0531 8.69692Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default CheckCircleFillSvg\n","import React from \"react\"\n\nconst WarningFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"28\" height=\"25\" viewBox=\"0 0 28 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.7176 0.991238C14.9409 -0.330413 13.0645 -0.330413 12.2878 0.991238L0.288095 21.4079C-0.511712 22.7687 0.448488 24.5 2.00303 24.5H26.0024C27.5569 24.5 28.5171 22.7687 27.7173 21.4079L15.7176 0.991238ZM14 7C14.937 7 15.6691 7.809 15.5759 8.74131L14.9621 14.8793C14.9126 15.3736 14.4967 15.75 14 15.75C13.5033 15.75 13.0874 15.3736 13.0379 14.8793L12.4241 8.74132C12.3309 7.809 13.063 7 14 7ZM14.0027 17.5C14.9692 17.5 15.7527 18.2835 15.7527 19.25C15.7527 20.2165 14.9692 21 14.0027 21C13.0362 21 12.2527 20.2165 12.2527 19.25C12.2527 18.2835 13.0362 17.5 14.0027 17.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default WarningFillSvg\n","import type { ToastItem, ToastType, ToastOptions } from \"./index.type\"\n\nlet toasts: ToastItem[] = []\nconst listeners = new Set<() => void>()\nlet counter = 0\n\nconst emit = () => {\n listeners.forEach((l) => l())\n}\n\nexport const toastStore = {\n subscribe(listener: () => void) {\n listeners.add(listener)\n return () => {\n listeners.delete(listener)\n }\n },\n getSnapshot() {\n return toasts\n },\n add(type: ToastType, body: React.ReactNode, options: ToastOptions = {}) {\n const id = `toast-${++counter}`\n const item: ToastItem = {\n id,\n type,\n title: options.title,\n body,\n duration: options.duration ?? 4000,\n }\n toasts = [...toasts, item]\n emit()\n return id\n },\n remove(id: string) {\n toasts = toasts.map((t) => (t.id === id ? { ...t, removing: true } : t))\n emit()\n setTimeout(() => {\n toasts = toasts.filter((t) => t.id !== id)\n emit()\n }, 300)\n },\n clear() {\n toasts = []\n emit()\n },\n}\n","import React, { useEffect, useSyncExternalStore } from \"react\"\nimport { createPortal } from \"react-dom\"\n\nimport { H6, LabelLg } from \"../typography\"\nimport InfoCircleFillSvg from \"../assets/info-circle-fill\"\nimport XCircleFillSvg from \"../assets/x-circle-fill\"\nimport CheckCircleFillSvg from \"../assets/check-circle-fill\"\nimport WarningFillSvg from \"../assets/warning-fill\"\nimport OnRemove from \"../on-remove\"\n\nimport \"./index.scss\"\nimport { toastStore } from \"./store\"\nimport type { ToastItem, ToastType, ToastPosition, PropsToaster } from \"./index.type\"\n\nconst IconByType: Record<ToastType, React.FC<React.SVGProps<SVGSVGElement>>> = {\n default: InfoCircleFillSvg,\n danger: XCircleFillSvg,\n success: CheckCircleFillSvg,\n warning: WarningFillSvg,\n info: InfoCircleFillSvg,\n}\n\nconst getAnimDir = (position: ToastPosition) => {\n if (position.includes(\"right\")) return \"right\"\n if (position.includes(\"left\")) return \"left\"\n if (position.startsWith(\"top\")) return \"down\"\n return \"up\"\n}\n\nconst ToastCard: React.FC<{ item: ToastItem; animDir: string }> = ({ item, animDir }) => {\n const Icon = IconByType[item.type]\n\n useEffect(() => {\n if (item.duration <= 0) return\n const timer = setTimeout(() => toastStore.remove(item.id), item.duration)\n return () => clearTimeout(timer)\n }, [item.id, item.duration])\n\n return (\n <div className=\"DBui-toast\" data-type={item.type} data-removing={item.removing} data-anim-dir={animDir}>\n <div className=\"DBui-toastContent\">\n <div className=\"DBui-toastMain\">\n <span className=\"DBui-toastIcon\">\n <Icon />\n </span>\n <div className=\"DBui-toastText\">\n {item.title && (\n <H6 as=\"span\" weight=\"bold\" className=\"DBui-toastTitle\">\n {item.title}\n </H6>\n )}\n {item.body && (\n <LabelLg as=\"span\" weight=\"text\" className=\"DBui-toastBody\">\n {item.body}\n </LabelLg>\n )}\n </div>\n </div>\n <OnRemove size=\"sm\" selected onClick={() => toastStore.remove(item.id)} className=\"DBui-toastClose\" />\n </div>\n </div>\n )\n}\n\nexport const Toaster: React.FC<PropsToaster> = ({ position = \"top-right\", maxToasts = 5 }) => {\n const toasts = useSyncExternalStore(toastStore.subscribe, toastStore.getSnapshot)\n\n const visible = toasts.slice(-maxToasts)\n const animDir = getAnimDir(position)\n\n if (visible.length === 0) return null\n\n return createPortal(\n <div className=\"DBui-toaster\" data-position={position}>\n {visible.map((item) => (\n <ToastCard key={item.id} item={item} animDir={animDir} />\n ))}\n </div>,\n document.body,\n )\n}\n\nexport default Toaster\n","import type { ReactNode } from \"react\"\nimport { toastStore } from \"./store\"\nimport type { ToastOptions } from \"./index.type\"\n\nconst createToast = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"default\", body, options)\n\ncreateToast.success = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"success\", body, options)\ncreateToast.error = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"danger\", body, options)\ncreateToast.warning = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"warning\", body, options)\ncreateToast.info = (body: ReactNode, options?: ToastOptions) => toastStore.add(\"info\", body, options)\ncreateToast.dismiss = (id: string) => toastStore.remove(id)\ncreateToast.clear = () => toastStore.clear()\n\nexport const toast = createToast\n","import React from \"react\"\n\nconst StarFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z\" />\n </svg>\n )\n}\n\nexport default StarFillSvg\n","import React, { useState } from \"react\"\nimport StarFillSvg from \"../assets/star-fill\"\n\nimport \"./index.scss\"\nimport type { PropsRate } from \"./index.type\"\n\ntype StarState = \"full\" | \"half\" | \"empty\"\n\nconst getStarState = (index: number, displayValue: number): StarState => {\n if (displayValue >= index) return \"full\"\n if (displayValue >= index - 0.5) return \"half\"\n return \"empty\"\n}\n\nconst Rate: React.FC<PropsRate> = ({ value = 0, count = 5, onChange, readOnly = false, className }) => {\n const [hoverValue, setHoverValue] = useState<number | null>(null)\n const displayValue = hoverValue ?? value\n\n const handleMouseMove = (index: number, e: React.MouseEvent) => {\n if (readOnly) return\n const rect = e.currentTarget.getBoundingClientRect()\n const isLeftHalf = e.clientX - rect.left < rect.width / 2\n setHoverValue(isLeftHalf ? index - 0.5 : index)\n }\n\n const handleClick = (index: number, e: React.MouseEvent) => {\n if (readOnly || !onChange) return\n const rect = e.currentTarget.getBoundingClientRect()\n const isLeftHalf = e.clientX - rect.left < rect.width / 2\n onChange(isLeftHalf ? index - 0.5 : index)\n }\n\n return (\n <div className={`DBui-rate ${className ?? \"\"}`} data-readonly={readOnly} onMouseLeave={() => setHoverValue(null)}>\n {Array.from({ length: count }, (_, i) => {\n const index = i + 1\n const state = getStarState(index, displayValue)\n return (\n <button\n key={i}\n className=\"DBui-rateStar\"\n data-state={state}\n type=\"button\"\n onMouseMove={(e) => handleMouseMove(index, e)}\n onClick={(e) => handleClick(index, e)}\n >\n {state === \"half\" ? (\n <>\n <StarFillSvg className=\"DBui-rateStarEmpty\" />\n <StarFillSvg className=\"DBui-rateStarFilled\" />\n </>\n ) : (\n <StarFillSvg />\n )}\n </button>\n )\n })}\n </div>\n )\n}\n\nexport default Rate\n","import React, { useId, useRef, useState, useCallback, useEffect } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { Subtitle, LabelLg } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsTooltip } from \"./index.type\"\n\nconst Tooltip: React.FC<PropsTooltip> = ({\n children,\n title,\n body,\n action,\n size = \"sm\",\n placement = \"top\",\n className,\n}) => {\n const [open, setOpen] = useState(false)\n const id = useId().replace(/:/g, \"\")\n const anchorName = `--tooltip-${id}`\n const hoverRef = useRef({ trigger: false, popover: false })\n const timeoutRef = useRef<number>()\n\n const updateOpen = useCallback(() => {\n clearTimeout(timeoutRef.current)\n if (hoverRef.current.trigger || hoverRef.current.popover) {\n setOpen(true)\n } else {\n timeoutRef.current = window.setTimeout(() => setOpen(false), 100)\n }\n }, [])\n\n useEffect(() => {\n return () => clearTimeout(timeoutRef.current)\n }, [])\n\n return (\n <>\n <span\n className={`DBui-tooltipAnchor ${className ?? \"\"}`}\n style={{ anchorName } as React.CSSProperties}\n onMouseEnter={() => {\n hoverRef.current.trigger = true\n updateOpen()\n }}\n onMouseLeave={() => {\n hoverRef.current.trigger = false\n updateOpen()\n }}\n >\n {children}\n </span>\n {open &&\n createPortal(\n <div\n className=\"DBui-tooltipPopover\"\n style={{ positionAnchor: anchorName } as React.CSSProperties}\n data-placement={placement}\n data-size={size}\n role=\"tooltip\"\n onMouseEnter={() => {\n hoverRef.current.popover = true\n updateOpen()\n }}\n onMouseLeave={() => {\n hoverRef.current.popover = false\n updateOpen()\n }}\n >\n <div className=\"DBui-tooltipArrow\" />\n <div className=\"DBui-tooltipCard\">\n <Subtitle as=\"span\" weight=\"bold\">\n {title}\n </Subtitle>\n {body &&\n (size === \"sm\" ? (\n <LabelLg as=\"span\" weight=\"medium\">\n {body}\n </LabelLg>\n ) : (\n <Subtitle as=\"span\" weight=\"text\">\n {body}\n </Subtitle>\n ))}\n {action}\n </div>\n </div>,\n document.body,\n )}\n </>\n )\n}\n\nexport default Tooltip\n","import React from \"react\"\n\nconst PlusSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.99992 5.8335V10.0002M9.99992 10.0002V14.1668M9.99992 10.0002H5.83325M9.99992 10.0002H14.1666\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n />\n </svg>\n )\n}\n\nexport default PlusSvg\n","import React from \"react\"\n\nconst MinusSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M5.83333 10H9.99999H14.1667\" stroke=\"currentColor\" stroke-width=\"1.66667\" stroke-linecap=\"round\" />\n </svg>\n )\n}\n\nexport default MinusSvg\n","import React from \"react\"\n\nconst TrashSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M5.6875 0.875H8.3125C8.55413 0.875 8.75 1.07088 8.75 1.3125V2.1875H5.25V1.3125C5.25 1.07088 5.44588 0.875 5.6875 0.875ZM9.625 2.1875V1.3125C9.625 0.587626 9.03737 0 8.3125 0H5.6875C4.96263 0 4.375 0.587626 4.375 1.3125V2.1875H2.19245C2.18947 2.18747 2.1865 2.18747 2.18351 2.1875H1.3125C1.07088 2.1875 0.875 2.38338 0.875 2.625C0.875 2.86662 1.07088 3.0625 1.3125 3.0625H1.7836L2.52977 12.3896C2.60252 13.299 3.36181 14 4.27419 14H9.72581C10.6382 14 11.3975 13.299 11.4702 12.3896L12.2164 3.0625H12.6875C12.9291 3.0625 13.125 2.86662 13.125 2.625C13.125 2.38338 12.9291 2.1875 12.6875 2.1875H11.8165C11.8135 2.18747 11.8105 2.18747 11.8076 2.1875H9.625ZM11.3386 3.0625L10.598 12.3198C10.5616 12.7745 10.182 13.125 9.72581 13.125H4.27419C3.818 13.125 3.43836 12.7745 3.40198 12.3198L2.6614 3.0625H11.3386ZM4.78681 3.93825C5.02802 3.92407 5.23506 4.1081 5.24925 4.34931L5.68675 11.7868C5.70093 12.028 5.5169 12.2351 5.27569 12.2492C5.03448 12.2634 4.82744 12.0794 4.81325 11.8382L4.37576 4.40069C4.36157 4.15948 4.5456 3.95244 4.78681 3.93825ZM9.21319 3.93825C9.4544 3.95244 9.63843 4.15948 9.62424 4.40069L9.18674 11.8382C9.17256 12.0794 8.96552 12.2634 8.72431 12.2492C8.4831 12.2351 8.29907 12.028 8.31326 11.7868L8.75076 4.34931C8.76494 4.1081 8.97198 3.92407 9.21319 3.93825ZM7 3.9375C7.24162 3.9375 7.4375 4.13338 7.4375 4.375V11.8125C7.4375 12.0541 7.24162 12.25 7 12.25C6.75838 12.25 6.5625 12.0541 6.5625 11.8125V4.375C6.5625 4.13338 6.75838 3.9375 7 3.9375Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default TrashSvg\n","import { Controller, type FieldValues } from \"react-hook-form\"\n\nimport { Subtitle } from \"../typography\"\nimport PlusSvg from \"../assets/plus\"\nimport MinusSvg from \"../assets/minus\"\nimport TrashSvg from \"../assets/trash\"\n\nimport \"./index.scss\"\nimport type { PropsQuantity } from \"./index.type\"\n\nconst Quantity = <T extends FieldValues = FieldValues>({\n control,\n name,\n min = 0,\n max = 99,\n size = \"sm\",\n variant = \"quantity\",\n disabled = false,\n}: PropsQuantity<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => {\n const { value, onChange } = field\n const numValue = value ?? min\n const isAtMin = numValue <= min\n const isAtMax = numValue >= max\n const showTrash = variant === \"cart\" && numValue <= min + 1\n\n return (\n <div className=\"DBui-quantity\" data-size={size} data-disabled={disabled}>\n <button\n className=\"DBui-quantityButton\"\n onClick={() => !isAtMin && onChange(numValue - 1)}\n disabled={disabled || (isAtMin && variant === \"quantity\")}\n type=\"button\"\n >\n {showTrash ? <TrashSvg /> : <MinusSvg />}\n </button>\n <div className=\"DBui-quantityValue\">\n <Subtitle weight=\"medium\">{numValue}</Subtitle>\n </div>\n <button\n className=\"DBui-quantityButton\"\n onClick={() => !isAtMax && onChange(numValue + 1)}\n disabled={disabled || isAtMax}\n type=\"button\"\n >\n <PlusSvg />\n </button>\n </div>\n )\n }}\n />\n )\n}\n\nexport default Quantity\n","import React from \"react\"\n\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport { LabelLg } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsBreadcrumbs } from \"./index.type\"\n\nconst Breadcrumbs: React.FC<PropsBreadcrumbs> = ({ items, className }) => {\n return (\n <nav className={`DBui-breadcrumbs ${className ?? \"\"}`}>\n {items.map((item, index) => {\n const isCurrent = index === items.length - 1\n\n return (\n <React.Fragment key={index}>\n {index > 0 && (\n <span className=\"DBui-breadcrumbsSeparator\">\n <ChevronRightSvg />\n </span>\n )}\n {item.href && !isCurrent ? (\n <a className=\"DBui-breadcrumbsItem\" href={item.href} data-current={isCurrent}>\n <LabelLg as=\"span\" weight=\"medium\">\n {item.label}\n </LabelLg>\n </a>\n ) : (\n <span\n className=\"DBui-breadcrumbsItem\"\n data-current={isCurrent}\n onClick={!isCurrent ? item.onClick : undefined}\n >\n <LabelLg as=\"span\" weight=\"medium\">\n {item.label}\n </LabelLg>\n </span>\n )}\n </React.Fragment>\n )\n })}\n </nav>\n )\n}\n\nexport default Breadcrumbs\n","import React from \"react\"\n\nimport \"./index.scss\"\nimport type { PropsProgressBar } from \"./index.type\"\n\nconst ProgressBar: React.FC<PropsProgressBar> = ({ value, size = \"sm\", className }) => {\n const clampedValue = Math.min(100, Math.max(0, value))\n\n return (\n <div className={`DBui-progressBar ${className ?? \"\"}`} data-size={size} role=\"progressbar\" aria-valuenow={clampedValue} aria-valuemin={0} aria-valuemax={100}>\n <div className=\"DBui-progressBarFill\" style={{ width: `${clampedValue}%` }} />\n </div>\n )\n}\n\nexport default ProgressBar\n","import React from \"react\"\n\nconst UploadSimpleSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 9.49991V12.9999C14 13.2651 13.8946 13.5195 13.7071 13.707C13.5196 13.8945 13.2652 13.9999 13 13.9999H3C2.73478 13.9999 2.48043 13.8945 2.29289 13.707C2.10536 13.5195 2 13.2651 2 12.9999V9.49991C2 9.3673 2.05268 9.24012 2.14645 9.14635C2.24021 9.05258 2.36739 8.99991 2.5 8.99991C2.63261 8.99991 2.75979 9.05258 2.85355 9.14635C2.94732 9.24012 3 9.3673 3 9.49991V12.9999H13V9.49991C13 9.3673 13.0527 9.24012 13.1464 9.14635C13.2402 9.05258 13.3674 8.99991 13.5 8.99991C13.6326 8.99991 13.7598 9.05258 13.8536 9.14635C13.9473 9.24012 14 9.3673 14 9.49991ZM5.85375 5.35366L7.5 3.70678V9.49991C7.5 9.63251 7.55268 9.75969 7.64645 9.85346C7.74021 9.94723 7.86739 9.9999 8 9.9999C8.13261 9.9999 8.25979 9.94723 8.35355 9.85346C8.44732 9.75969 8.5 9.63251 8.5 9.49991V3.70678L10.1462 5.35366C10.2401 5.44748 10.3673 5.50018 10.5 5.50018C10.6327 5.50018 10.7599 5.44748 10.8538 5.35366C10.9476 5.25984 11.0003 5.13259 11.0003 4.99991C11.0003 4.86722 10.9476 4.73998 10.8538 4.64615L8.35375 2.14615C8.30731 2.09967 8.25217 2.06279 8.19147 2.03763C8.13077 2.01246 8.06571 1.99951 8 1.99951C7.93429 1.99951 7.86923 2.01246 7.80853 2.03763C7.74783 2.06279 7.69269 2.09967 7.64625 2.14615L5.14625 4.64615C5.05243 4.73998 4.99972 4.86722 4.99972 4.99991C4.99972 5.13259 5.05243 5.25984 5.14625 5.35366C5.24007 5.44748 5.36732 5.50018 5.5 5.50018C5.63268 5.50018 5.75993 5.44748 5.85375 5.35366Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default UploadSimpleSvg\n","import React, { useRef } from \"react\"\n\nimport UploadSimpleSvg from \"../assets/upload-simple\"\nimport OnRemove from \"../on-remove\"\nimport ProgressBar from \"../progress-bar\"\nimport { LabelLg, LabelMd, Paragraph } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsFileUploader } from \"./index.type\"\n\nconst FileUploader: React.FC<PropsFileUploader> = ({\n size = \"sm\",\n variant = \"default\",\n preview,\n progress,\n onChange,\n onDelete,\n accept,\n className,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const status = preview ? \"uploaded\" : progress != null ? \"uploading\" : \"primary\"\n\n const handleClick = () => {\n if (status !== \"uploaded\") {\n inputRef.current?.click()\n }\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0] ?? null\n onChange?.(file)\n e.target.value = \"\"\n }\n\n const Label =\n size === \"md\" && status === \"primary\"\n ? LabelLg\n : size === \"md\"\n ? LabelMd\n : status === \"uploading\"\n ? Paragraph\n : LabelMd\n\n return (\n <div\n className={`DBui-fileUploader ${className ?? \"\"}`}\n data-size={size}\n data-variant={variant}\n data-status={status}\n onClick={handleClick}\n >\n {status === \"primary\" && (\n <div className=\"DBui-fileUploaderInner\">\n <span className=\"DBui-fileUploaderIcon\">\n <UploadSimpleSvg width=\"100%\" height=\"100%\" />\n </span>\n <Label as=\"span\" weight=\"medium\" className=\"DBui-fileUploaderLabel\">\n Upload\n </Label>\n </div>\n )}\n\n {status === \"uploading\" && (\n <div className=\"DBui-fileUploaderInner\">\n <Label as=\"span\" weight=\"medium\" className=\"DBui-fileUploaderLabel\">\n Uploading\n </Label>\n <ProgressBar value={progress ?? 0} size=\"xs\" className=\"DBui-fileUploaderProgress\" />\n </div>\n )}\n\n {status === \"uploaded\" && (\n <div className=\"DBui-fileUploaderPreviewWrapper\">\n <img className=\"DBui-fileUploaderPreview\" src={preview} alt=\"\" />\n {onDelete && (\n <OnRemove\n size={size === \"sm\" ? \"sm\" : \"md\"}\n color=\"default\"\n selected\n className=\"DBui-fileUploaderDelete\"\n onClick={(e) => {\n e?.stopPropagation()\n onDelete()\n }}\n />\n )}\n </div>\n )}\n\n <input ref={inputRef} type=\"file\" accept={accept} className=\"DBui-fileUploaderInput\" onChange={handleChange} />\n </div>\n )\n}\n\nexport default FileUploader\n","import React from \"react\"\n\nconst InboxSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_206_14354)\">\n <g clip-path=\"url(#clip1_206_14354)\">\n <path\n d=\"M33.0573 8.99927C34.4243 8.99927 35.718 9.62033 36.572 10.6877L47.6706 24.5618C47.9236 24.878 48.0382 25.284 47.988 25.6858L46.8161 35.0579C46.5344 37.3095 44.6206 38.9993 42.3513 38.9993H5.64816C3.37884 38.9993 1.464 37.3096 1.18234 35.0579L0.0114441 25.6858C-0.0387837 25.284 0.0748804 24.878 0.32785 24.5618L11.4275 10.6877C12.2814 9.62048 13.5743 8.99938 14.9411 8.99927H33.0573ZM4.15988 34.6858C4.25393 35.4362 4.89185 35.9993 5.64816 35.9993H42.3513C43.1076 35.9993 43.7455 35.4362 43.8396 34.6858L44.8005 26.9993H31.3493C30.6544 30.4226 27.6281 32.9992 23.9997 32.9993C20.3713 32.9993 17.3451 30.4226 16.6501 26.9993H3.19894L4.15988 34.6858ZM14.9411 11.9993C14.4857 11.9994 14.0548 12.2062 13.7702 12.5618L4.62082 23.9993H17.9997C18.8281 23.9993 19.4997 24.6709 19.4997 25.4993C19.4997 27.9846 21.5144 29.9993 23.9997 29.9993C26.485 29.9992 28.4997 27.9845 28.4997 25.4993C28.4997 24.6708 29.1713 23.9993 29.9997 23.9993H43.3786L34.2292 12.5618C33.9446 12.2061 33.5129 11.9993 33.0573 11.9993H14.9411Z\"\n fill=\"currentColor\"\n />\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_206_14354\">\n <rect width=\"48\" height=\"48\" fill=\"white\" />\n </clipPath>\n <clipPath id=\"clip1_206_14354\">\n <rect width=\"48\" height=\"48\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default InboxSvg\n","import React from \"react\"\n\nconst FileEarmarkSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M12.25 3.9375V12.25C12.25 13.2165 11.4665 14 10.5 14H3.5C2.5335 14 1.75 13.2165 1.75 12.25V1.75C1.75 0.783501 2.5335 0 3.5 0H8.3125L12.25 3.9375ZM9.625 3.9375C8.90013 3.9375 8.3125 3.34987 8.3125 2.625V0.875H3.5C3.01675 0.875 2.625 1.26675 2.625 1.75V12.25C2.625 12.7332 3.01675 13.125 3.5 13.125H10.5C10.9832 13.125 11.375 12.7332 11.375 12.25V3.9375H9.625Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default FileEarmarkSvg\n","import React from \"react\"\n\nconst ImageBrokenSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"48\" height=\"48\" viewBox=\"0 0 48 48\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_169_124944)\">\n <g clip-path=\"url(#clip1_169_124944)\">\n <path\n d=\"M35.2525 10.8743C37.3236 10.8743 39.0025 12.5532 39.0025 14.6243V33.3743C39.0025 35.4453 37.3236 37.1243 35.2525 37.1243H12.7525C10.6815 37.1242 9.0025 35.4453 9.0025 33.3743V14.6243C9.0025 12.5532 10.6815 10.8743 12.7525 10.8743H35.2525ZM12.7525 12.7493C11.717 12.7493 10.8775 13.5888 10.8775 14.6243V31.4993L15.8394 27.0862C16.1554 26.7702 16.6512 26.7211 17.023 26.969L22.0084 30.2932L28.9644 23.3362C29.2496 23.051 29.6856 22.9802 30.0464 23.1604L37.1275 26.8118V14.6243C37.1275 13.5887 36.288 12.7493 35.2525 12.7493H12.7525ZM17.44 16.4993C18.9933 16.4993 20.2525 17.7585 20.2525 19.3118C20.2525 20.8651 18.9933 22.1243 17.44 22.1243C15.8867 22.1242 14.6275 20.8651 14.6275 19.3118C14.6275 17.7585 15.8867 16.4993 17.44 16.4993Z\"\n fill=\"currentColor\"\n />\n </g>\n </g>\n <defs>\n <clipPath id=\"clip0_169_124944\">\n <rect width=\"30\" height=\"30\" fill=\"white\" transform=\"translate(9 9)\" />\n </clipPath>\n <clipPath id=\"clip1_169_124944\">\n <rect width=\"30\" height=\"30\" fill=\"white\" transform=\"translate(9 9)\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default ImageBrokenSvg\n","import React from \"react\"\n\nimport FileEarmarkSvg from \"../assets/file-earmark\"\nimport ImageBrokenSvg from \"../assets/image-broken\"\nimport TrashSvg from \"../assets/trash\"\nimport { Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsUploadListItem } from \"./index.type\"\n\nconst UploadListItem: React.FC<PropsUploadListItem> = ({\n type = \"file\",\n name,\n preview,\n error = false,\n onRemove,\n className,\n}) => {\n return (\n <div className={`DBui-uploadListItem ${className ?? \"\"}`} data-type={type} data-error={error}>\n <div className=\"DBui-uploadListItemWrapper\">\n {type === \"file\" && <FileEarmarkSvg className=\"DBui-uploadListItemFileIcon\" />}\n\n {type === \"image\" && !error && (\n <img className=\"DBui-uploadListItemThumbnail\" src={preview} alt={name} />\n )}\n\n {type === \"image\" && error && (\n <span className=\"DBui-uploadListItemErrorIcon\">\n <ImageBrokenSvg />\n </span>\n )}\n\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-uploadListItemName\">\n {name}\n </Subtitle>\n </div>\n\n {onRemove && (\n <button\n className=\"DBui-uploadListItemRemove\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove()\n }}\n >\n <TrashSvg width=\"100%\" height=\"100%\" />\n </button>\n )}\n </div>\n )\n}\n\nexport default UploadListItem\n","import React, { useRef, useState } from \"react\"\n\nimport InboxSvg from \"../assets/inbox\"\nimport { LabelMd, Subtitle } from \"../typography\"\nimport UploadListItem from \"../upload-list-item\"\n\nimport \"./index.scss\"\nimport type { PropsUploadDragger } from \"./index.type\"\n\nconst UploadDragger: React.FC<PropsUploadDragger> = ({\n title = \"Click or drag file to this area to upload\",\n description = \"Support for a single or bulk upload. Maximum file size 2MB.\",\n files,\n onChange,\n onRemove,\n accept,\n multiple = false,\n className,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const [dragging, setDragging] = useState(false)\n\n const handleClick = () => {\n inputRef.current?.click()\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.files)\n e.target.value = \"\"\n }\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n setDragging(true)\n }\n\n const handleDragLeave = (e: React.DragEvent) => {\n e.preventDefault()\n setDragging(false)\n }\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n setDragging(false)\n onChange?.(e.dataTransfer.files)\n }\n\n return (\n <div className={`DBui-uploadDragger ${className ?? \"\"}`}>\n <div\n className=\"DBui-uploadDraggerDropzone\"\n data-dragging={dragging}\n onClick={handleClick}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <span className=\"DBui-uploadDraggerIcon\">\n <InboxSvg width=\"100%\" height=\"100%\" />\n </span>\n <div className=\"DBui-uploadDraggerText\">\n <Subtitle as=\"p\" className=\"DBui-uploadDraggerTitle\">\n {title}\n </Subtitle>\n <LabelMd as=\"p\" weight=\"medium\" className=\"DBui-uploadDraggerDescription\">\n {description}\n </LabelMd>\n </div>\n </div>\n\n {files && files.length > 0 && (\n <div className=\"DBui-uploadDraggerFiles\">\n {files.map((file, index) => (\n <UploadListItem\n key={index}\n type=\"file\"\n name={file.name}\n error={file.error}\n onRemove={onRemove ? () => onRemove(index) : undefined}\n />\n ))}\n </div>\n )}\n\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"DBui-uploadDraggerInput\"\n onChange={handleChange}\n />\n </div>\n )\n}\n\nexport default UploadDragger\n","import React from \"react\"\n\nconst EmptyBasicSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"121\" height=\"100\" viewBox=\"0 0 121 100\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M60.6033 99.4921C85.237 99.4921 105.207 95.7607 105.207 91.1579C105.207 86.555 85.237 82.8237 60.6033 82.8237C35.9696 82.8237 16 86.555 16 91.1579C16 95.7607 35.9696 99.4921 60.6033 99.4921Z\"\n fill=\"#F5F5F7\"\n fill-opacity=\"0.8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M96.2855 66.6737L80.5454 47.3019C79.7901 46.3901 78.6862 45.8381 77.5237 45.8381H43.6816C42.5197 45.8381 41.4158 46.3901 40.6605 47.3019L24.9211 66.6737V76.7941H96.2862V66.6737H96.2855Z\"\n fill=\"#AEB8C2\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M38.2566 20.8355H82.9493C83.6473 20.8355 84.3166 21.1128 84.8102 21.6063C85.3037 22.0998 85.5809 22.7692 85.5809 23.4671V84.8776C85.5809 85.5755 85.3037 86.2449 84.8102 86.7384C84.3166 87.2319 83.6473 87.5092 82.9493 87.5092H38.2566C37.5586 87.5092 36.8893 87.2319 36.3958 86.7384C35.9023 86.2449 35.625 85.5755 35.625 84.8776V23.4671C35.625 22.7692 35.9023 22.0998 36.3958 21.6063C36.8893 21.1128 37.5586 20.8355 38.2566 20.8355V20.8355Z\"\n fill=\"#F5F5F7\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M44.0776 27.3835H77.1283C77.4772 27.3835 77.8119 27.5222 78.0587 27.7689C78.3054 28.0157 78.4441 28.3504 78.4441 28.6993V45.1184C78.4441 45.4674 78.3054 45.8021 78.0587 46.0488C77.8119 46.2956 77.4772 46.4342 77.1283 46.4342H44.0776C43.7286 46.4342 43.394 46.2956 43.1472 46.0488C42.9005 45.8021 42.7618 45.4674 42.7618 45.1184V28.6993C42.7618 28.3504 42.9005 28.0157 43.1472 27.7689C43.394 27.5222 43.7286 27.3835 44.0776 27.3835ZM44.25 53.577H76.9559C77.3506 53.577 77.7291 53.7338 78.0082 54.0128C78.2873 54.2919 78.4441 54.6704 78.4441 55.0651C78.4441 55.4598 78.2873 55.8383 78.0082 56.1174C77.7291 56.3965 77.3506 56.5533 76.9559 56.5533H44.25C43.8553 56.5533 43.4768 56.3965 43.1977 56.1174C42.9186 55.8383 42.7618 55.4598 42.7618 55.0651C42.7618 54.6704 42.9186 54.2919 43.1977 54.0128C43.4768 53.7338 43.8553 53.577 44.25 53.577ZM44.25 61.3158H76.9559C77.3507 61.3158 77.7293 61.4726 78.0084 61.7518C78.2876 62.0309 78.4444 62.4095 78.4444 62.8043C78.4444 63.199 78.2876 63.5776 78.0084 63.8568C77.7293 64.1359 77.3507 64.2928 76.9559 64.2928H44.25C43.8552 64.2928 43.4766 64.1359 43.1975 63.8568C42.9183 63.5776 42.7615 63.199 42.7615 62.8043C42.7615 62.4095 42.9183 62.0309 43.1975 61.7518C43.4766 61.4726 43.8552 61.3158 44.25 61.3158ZM96.1401 89.9355C95.6303 91.9559 93.8395 93.4618 91.7092 93.4618H29.4967C27.3664 93.4618 25.5756 91.9553 25.0664 89.9355C24.9693 89.5505 24.9203 89.1549 24.9204 88.7579V66.6743H42.2349C44.1474 66.6743 45.6888 68.2849 45.6888 70.2401V70.2664C45.6888 72.221 47.248 73.7993 49.1605 73.7993H72.0454C73.9579 73.7993 75.5171 72.2066 75.5171 70.2513V70.2434C75.5171 68.2881 77.0585 66.6737 78.971 66.6737H96.2855V88.7585C96.2855 89.1645 96.2349 89.5585 96.1401 89.9355Z\"\n fill=\"#DCE0E6\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M98.3165 21.9026L93.823 23.6461C93.7076 23.6909 93.5818 23.7023 93.4602 23.6789C93.3386 23.6555 93.2261 23.5982 93.1356 23.5137C93.045 23.4292 92.9802 23.3208 92.9486 23.2011C92.9169 23.0813 92.9197 22.9551 92.9566 22.8368L94.2309 18.7533C92.5276 16.8164 91.5276 14.4546 91.5276 11.9059C91.5276 5.33026 98.1842 0 106.396 0C114.606 0 121.263 5.33026 121.263 11.9059C121.263 18.4816 114.607 23.8118 106.395 23.8118C103.416 23.8118 100.643 23.1105 98.3165 21.9026Z\"\n fill=\"#DCE0E6\"\n />\n <path\n d=\"M112.253 14.0559C113.288 14.0559 114.127 13.2268 114.127 12.204C114.127 11.1811 113.288 10.352 112.253 10.352C111.217 10.352 110.378 11.1811 110.378 12.204C110.378 13.2268 111.217 14.0559 112.253 14.0559Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M102.413 13.8244H98.6645L100.571 10.5836L102.413 13.8244ZM104.756 10.5836H108.036V13.8244H104.756V10.5836Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nexport default EmptyBasicSvg\n","import React from \"react\"\n\nconst EmptySimpleSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"64\" height=\"40\" viewBox=\"0 0 64 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_169_457978)\">\n <path\n d=\"M32 39.7031C49.6731 39.7031 64 36.5923 64 32.755C64 28.9177 49.6731 25.807 32 25.807C14.3269 25.807 0 28.9177 0 32.755C0 36.5923 14.3269 39.7031 32 39.7031Z\"\n fill=\"#F5F5F5\"\n />\n <path\n d=\"M55 13.6653L44.854 2.24866C44.367 1.47048 43.656 1 42.907 1H21.093C20.344 1 19.633 1.47048 19.146 2.24767L9 13.6663V22.8367H55V13.6653Z\"\n stroke=\"#D1D9E0\"\n />\n <path\n d=\"M41.613 16.8127C41.613 15.2197 42.607 13.9045 43.84 13.9035H55V31.9059C55 34.0131 53.68 35.7402 52.05 35.7402H11.95C10.32 35.7402 9 34.0121 9 31.9059V13.9035H20.16C21.393 13.9035 22.387 15.2167 22.387 16.8098V16.8316C22.387 18.4247 23.392 19.7111 24.624 19.7111H39.376C40.608 19.7111 41.613 18.4128 41.613 16.8197V16.8127Z\"\n fill=\"#FAFAFA\"\n stroke=\"#D1D9E0\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_169_457978\">\n <rect width=\"64\" height=\"40\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default EmptySimpleSvg\n","import React from \"react\"\n\nimport EmptyBasicSvg from \"../assets/empty-basic\"\nimport EmptySimpleSvg from \"../assets/empty-simple\"\nimport { Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsEmpty } from \"./index.type\"\n\nconst Empty: React.FC<PropsEmpty> = ({\n type = \"basic\",\n description = \"No Data\",\n image,\n action,\n className,\n}) => {\n const defaultImage = type === \"simple\" ? <EmptySimpleSvg /> : <EmptyBasicSvg />\n\n return (\n <div className={`DBui-empty ${className ?? \"\"}`} data-type={type}>\n <div className=\"DBui-emptyImage\">{image ?? defaultImage}</div>\n <Subtitle as=\"p\" weight=\"medium\" className=\"DBui-emptyDescription\">\n {description}\n </Subtitle>\n {action}\n </div>\n )\n}\n\nexport default Empty\n","import React from \"react\"\n\nimport CounterLabel from \"../counter-label\"\nimport { LabelMd } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsTabs } from \"./index.type\"\n\nconst Tabs: React.FC<PropsTabs> = ({ items, activeKey, onChange, className }) => {\n return (\n <div className={`DBui-tabs ${className ?? \"\"}`}>\n {items.map((item) => {\n const isActive = item.key === activeKey\n\n return (\n <button\n key={item.key}\n className=\"DBui-tabsItem\"\n data-state={isActive ? \"active\" : \"default\"}\n onClick={() => onChange?.(item.key)}\n >\n <span className=\"DBui-tabsItemContent\">\n {item.icon && <span className=\"DBui-tabsItemIcon\">{item.icon}</span>}\n <LabelMd as=\"span\" weight=\"semibold\">\n {item.label}\n </LabelMd>\n {item.count != null && (\n <CounterLabel\n size=\"md\"\n type={isActive ? \"brand-secondary\" : \"default\"}\n >\n {item.count}\n </CounterLabel>\n )}\n </span>\n </button>\n )\n })}\n </div>\n )\n}\n\nexport default Tabs\n","import React from \"react\"\n\nimport { LabelMd } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsTag } from \"./index.type\"\n\nconst Tag: React.FC<PropsTag> = ({ children, color = \"secondary\", variant = \"default\", icon, className }) => {\n return (\n <span className={`DBui-tag ${className ?? \"\"}`} data-color={color} data-variant={variant}>\n {icon && <span className=\"DBui-tagIcon\">{icon}</span>}\n <LabelMd as=\"span\" weight=\"semibold\">\n {children}\n </LabelMd>\n </span>\n )\n}\n\nexport default Tag\n","import React from \"react\"\n\nconst HeartFillSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.5167 17.3417C10.2334 17.4417 9.76672 17.4417 9.48338 17.3417C7.06672 16.5167 1.66672 13.075 1.66672 7.24167C1.66672 4.66667 3.74172 2.58334 6.30005 2.58334C7.81672 2.58334 9.15838 3.31667 10 4.45001C10.8417 3.31667 12.1917 2.58334 13.7 2.58334C16.2584 2.58334 18.3334 4.66667 18.3334 7.24167C18.3334 13.075 12.9334 16.5167 10.5167 17.3417Z\"\n fill=\"currentColor\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default HeartFillSvg\n","import React from \"react\"\n\nconst HeartOutlineSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.5167 17.3417C10.2334 17.4417 9.76672 17.4417 9.48338 17.3417C7.06672 16.5167 1.66672 13.075 1.66672 7.24167C1.66672 4.66667 3.74172 2.58334 6.30005 2.58334C7.81672 2.58334 9.15838 3.31667 10 4.45001C10.8417 3.31667 12.1917 2.58334 13.7 2.58334C16.2584 2.58334 18.3334 4.66667 18.3334 7.24167C18.3334 13.075 12.9334 16.5167 10.5167 17.3417Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default HeartOutlineSvg\n","import React from \"react\"\n\nimport HeartFillSvg from \"../assets/heart-fill\"\nimport HeartOutlineSvg from \"../assets/heart-outline\"\n\nimport \"./index.scss\"\nimport type { PropsFavorite } from \"./index.type\"\n\nconst Favorite: React.FC<PropsFavorite> = ({\n liked = false,\n variant = \"ghost\",\n onClick,\n className,\n}) => {\n return (\n <button\n className={`DBui-favorite ${className ?? \"\"}`}\n data-variant={variant}\n data-liked={liked}\n onClick={onClick}\n >\n <span className=\"DBui-favoriteIcon\">\n {liked ? <HeartFillSvg width=\"100%\" height=\"100%\" /> : <HeartOutlineSvg width=\"100%\" height=\"100%\" />}\n </span>\n </button>\n )\n}\n\nexport default Favorite\n","import React, { useCallback, useRef } from \"react\"\n\nimport { Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsRangeSlider, PropsSlider } from \"./index.type\"\n\nconst clamp = (val: number, min: number, max: number) => Math.min(max, Math.max(min, val))\n\nconst getPercent = (val: number, min: number, max: number) => ((val - min) / (max - min)) * 100\n\nconst useSliderDrag = (\n trackRef: React.RefObject<HTMLDivElement | null>,\n min: number,\n max: number,\n onUpdate: (value: number) => void,\n) => {\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n e.preventDefault()\n const el = trackRef.current\n if (!el) return\n\n const update = (clientX: number) => {\n const rect = el.getBoundingClientRect()\n const ratio = clamp((clientX - rect.left) / rect.width, 0, 1)\n onUpdate(Math.round(min + ratio * (max - min)))\n }\n\n update(e.clientX)\n\n const onMove = (ev: PointerEvent) => update(ev.clientX)\n const onUp = () => {\n window.removeEventListener(\"pointermove\", onMove)\n window.removeEventListener(\"pointerup\", onUp)\n }\n window.addEventListener(\"pointermove\", onMove)\n window.addEventListener(\"pointerup\", onUp)\n },\n [trackRef, min, max, onUpdate],\n )\n\n return handlePointerDown\n}\n\nconst Slider: React.FC<PropsSlider> = ({ value, min = 0, max = 100, onChange, className }) => {\n const trackRef = useRef<HTMLDivElement>(null)\n const percent = getPercent(clamp(value, min, max), min, max)\n\n const handleDrag = useSliderDrag(trackRef, min, max, (v) => onChange?.(v))\n\n return (\n <div className={`DBui-slider ${className ?? \"\"}`}>\n <div className=\"DBui-sliderTrack\" ref={trackRef} />\n <div className=\"DBui-sliderFill\" style={{ left: 10, width: `calc(${percent / 100} * (100% - 20px))` }} />\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-sliderLabel\" style={{ left: `calc(${percent}% * (100% - 20px) / 100% + 10px)` }}>\n {value}\n </Subtitle>\n <div\n className=\"DBui-sliderThumb\"\n style={{ left: `calc(${percent}% * (100% - 20px) / 100% + 10px)` }}\n onPointerDown={handleDrag}\n />\n </div>\n )\n}\n\nexport const RangeSlider: React.FC<PropsRangeSlider> = ({ value, min = 0, max = 100, onChange, className }) => {\n const trackRef = useRef<HTMLDivElement>(null)\n const [low, high] = [clamp(value[0], min, max), clamp(value[1], min, max)]\n const lowPercent = getPercent(low, min, max)\n const highPercent = getPercent(high, min, max)\n\n const handleLowDrag = useSliderDrag(trackRef, min, max, (v) => {\n onChange?.([Math.min(v, high), high])\n })\n\n const handleHighDrag = useSliderDrag(trackRef, min, max, (v) => {\n onChange?.([low, Math.max(v, low)])\n })\n\n return (\n <div className={`DBui-slider ${className ?? \"\"}`}>\n <div className=\"DBui-sliderTrack\" ref={trackRef} />\n <div\n className=\"DBui-sliderFill\"\n style={{\n left: `calc(${lowPercent / 100} * (100% - 20px) + 10px)`,\n width: `calc(${(highPercent - lowPercent) / 100} * (100% - 20px))`,\n }}\n />\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-sliderLabel\" style={{ left: `calc(${lowPercent}% * (100% - 20px) / 100% + 10px)` }}>\n {low}\n </Subtitle>\n <Subtitle as=\"span\" weight=\"medium\" className=\"DBui-sliderLabel\" style={{ left: `calc(${highPercent}% * (100% - 20px) / 100% + 10px)` }}>\n {high}\n </Subtitle>\n <div\n className=\"DBui-sliderThumb\"\n style={{ left: `calc(${lowPercent}% * (100% - 20px) / 100% + 10px)` }}\n onPointerDown={handleLowDrag}\n />\n <div\n className=\"DBui-sliderThumb\"\n style={{ left: `calc(${highPercent}% * (100% - 20px) / 100% + 10px)` }}\n onPointerDown={handleHighDrag}\n />\n </div>\n )\n}\n\nexport default Slider\n","import { Controller, type FieldValues } from \"react-hook-form\"\n\nimport Slider from \"../../slider\"\n\nimport type { PropsSliderInput } from \"./index.type\"\n\nconst SliderInput = <T extends FieldValues = FieldValues>({ control, name, min = 0, max = 100, disabled = false, className }: PropsSliderInput<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => (\n <Slider\n value={field.value ?? min}\n min={min}\n max={max}\n onChange={disabled ? undefined : field.onChange}\n className={className}\n />\n )}\n />\n )\n}\n\nexport default SliderInput\n","import { Controller, type FieldValues } from \"react-hook-form\"\n\nimport { RangeSlider } from \"../../slider\"\n\nimport type { PropsRangeSliderInput } from \"./index.type\"\n\nconst RangeSliderInput = <T extends FieldValues = FieldValues>({ control, name, min = 0, max = 100, disabled = false, className }: PropsRangeSliderInput<T>) => {\n return (\n <Controller\n name={name}\n control={control}\n render={({ field }) => (\n <RangeSlider\n value={field.value ?? [min, max]}\n min={min}\n max={max}\n onChange={disabled ? undefined : field.onChange}\n className={className}\n />\n )}\n />\n )\n}\n\nexport default RangeSliderInput\n","import React from \"react\"\n\nconst ImagesSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.93921 7.875C4.66408 7.875 5.25171 7.28737 5.25171 6.5625C5.25171 5.83763 4.66408 5.25 3.93921 5.25C3.21434 5.25 2.62671 5.83763 2.62671 6.5625C2.62671 7.28737 3.21434 7.875 3.93921 7.875Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.2517 11.375C12.2517 12.3415 11.4682 13.125 10.5017 13.125H1.75171C0.785211 13.125 0.00170898 12.3415 0.00170898 11.375V4.375C0.00170898 3.40895 0.784482 2.62573 1.75036 2.625C1.75036 1.6585 2.53386 0.875 3.50036 0.875H12.2504C13.2169 0.875 14.0004 1.6585 14.0004 2.625V9.625C14.0004 10.591 13.2176 11.3743 12.2517 11.375ZM12.2504 1.75H3.50036C3.01711 1.75 2.62536 2.14175 2.62536 2.625L10.5017 2.625C11.4682 2.625 12.2517 3.4085 12.2517 4.375V10.5C12.7343 10.4993 13.1254 10.1078 13.1254 9.625V2.625C13.1254 2.14175 12.7336 1.75 12.2504 1.75ZM1.75171 3.5C1.26846 3.5 0.876709 3.89175 0.876709 4.375V11.375L3.19235 9.31565C3.33982 9.16819 3.57087 9.14531 3.74439 9.26099L6.07096 10.812L9.31735 7.56565C9.45051 7.4325 9.65393 7.39948 9.82236 7.4837L11.3767 9.18751V4.375C11.3767 3.89175 10.985 3.5 10.5017 3.5H1.75171Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default ImagesSvg\n","import React from \"react\"\n\nimport EyeSvg from \"../assets/eye\"\nimport ImagesSvg from \"../assets/images\"\nimport { H1, Subtitle } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsUserProfile } from \"./index.type\"\n\nconst UserProfile: React.FC<PropsUserProfile> = ({\n src,\n name,\n subtitle,\n onChangePhoto,\n onViewPhoto,\n className,\n}) => {\n const initial = typeof name === \"string\" ? name.charAt(0) : \"\"\n\n return (\n <div className={`DBui-userProfile ${className ?? \"\"}`}>\n <div className=\"DBui-userProfileAvatar\">\n {src ? (\n <img className=\"DBui-userProfileImage\" src={src} alt=\"\" />\n ) : (\n <div className=\"DBui-userProfileInitial\">\n <H1 as=\"span\" weight=\"medium\">\n {initial}\n </H1>\n </div>\n )}\n {(onChangePhoto || onViewPhoto) && (\n <div className=\"DBui-userProfileActions\">\n {onChangePhoto && (\n <button className=\"DBui-userProfileAction\" onClick={onChangePhoto}>\n <span className=\"DBui-userProfileActionIcon\">\n <ImagesSvg width=\"100%\" height=\"100%\" />\n </span>\n </button>\n )}\n {onViewPhoto && (\n <button className=\"DBui-userProfileAction\" onClick={onViewPhoto}>\n <span className=\"DBui-userProfileActionIcon\">\n <EyeSvg width=\"100%\" height=\"100%\" />\n </span>\n </button>\n )}\n </div>\n )}\n </div>\n {(name || subtitle) && (\n <div className=\"DBui-userProfileInfo\">\n {name && (\n <Subtitle as=\"p\" weight=\"medium\" className=\"DBui-userProfileName\">\n {name}\n </Subtitle>\n )}\n {subtitle && <p className=\"DBui-userProfileSubtitle\">{subtitle}</p>}\n </div>\n )}\n </div>\n )\n}\n\nexport default UserProfile\n","import React from \"react\"\n\nconst DotsSixVerticalSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M6.5 3.75C6.5 3.89834 6.45601 4.04334 6.3736 4.16668C6.29119 4.29001 6.17406 4.38614 6.03701 4.44291C5.89997 4.49968 5.74917 4.51453 5.60368 4.48559C5.4582 4.45665 5.32456 4.38522 5.21967 4.28033C5.11478 4.17544 5.04335 4.0418 5.01441 3.89632C4.98547 3.75083 5.00032 3.60003 5.05709 3.46299C5.11386 3.32594 5.20999 3.20881 5.33332 3.1264C5.45666 3.04399 5.60166 3 5.75 3C5.94891 3 6.13968 3.07902 6.28033 3.21967C6.42098 3.36032 6.5 3.55109 6.5 3.75ZM10.25 4.5C10.3983 4.5 10.5433 4.45601 10.6667 4.3736C10.79 4.29119 10.8861 4.17406 10.9429 4.03701C10.9997 3.89997 11.0145 3.74917 10.9856 3.60368C10.9567 3.4582 10.8852 3.32456 10.7803 3.21967C10.6754 3.11478 10.5418 3.04335 10.3963 3.01441C10.2508 2.98547 10.1 3.00032 9.96299 3.05709C9.82594 3.11386 9.70881 3.20999 9.6264 3.33332C9.54399 3.45666 9.5 3.60166 9.5 3.75C9.5 3.94891 9.57902 4.13968 9.71967 4.28033C9.86032 4.42098 10.0511 4.5 10.25 4.5ZM5.75 7.25C5.60166 7.25 5.45666 7.29399 5.33332 7.3764C5.20999 7.45881 5.11386 7.57594 5.05709 7.71299C5.00032 7.85003 4.98547 8.00083 5.01441 8.14632C5.04335 8.2918 5.11478 8.42544 5.21967 8.53033C5.32456 8.63522 5.4582 8.70665 5.60368 8.73559C5.74917 8.76453 5.89997 8.74968 6.03701 8.69291C6.17406 8.63614 6.29119 8.54001 6.3736 8.41668C6.45601 8.29334 6.5 8.14834 6.5 8C6.5 7.80109 6.42098 7.61032 6.28033 7.46967C6.13968 7.32902 5.94891 7.25 5.75 7.25ZM10.25 7.25C10.1017 7.25 9.95666 7.29399 9.83332 7.3764C9.70999 7.45881 9.61386 7.57594 9.55709 7.71299C9.50033 7.85003 9.48547 8.00083 9.51441 8.14632C9.54335 8.2918 9.61478 8.42544 9.71967 8.53033C9.82456 8.63522 9.9582 8.70665 10.1037 8.73559C10.2492 8.76453 10.4 8.74968 10.537 8.69291C10.6741 8.63614 10.7912 8.54001 10.8736 8.41668C10.956 8.29334 11 8.14834 11 8C11 7.80109 10.921 7.61032 10.7803 7.46967C10.6397 7.32902 10.4489 7.25 10.25 7.25ZM5.75 11.5C5.60166 11.5 5.45666 11.544 5.33332 11.6264C5.20999 11.7088 5.11386 11.8259 5.05709 11.963C5.00032 12.1 4.98547 12.2508 5.01441 12.3963C5.04335 12.5418 5.11478 12.6754 5.21967 12.7803C5.32456 12.8852 5.4582 12.9566 5.60368 12.9856C5.74917 13.0145 5.89997 12.9997 6.03701 12.9429C6.17406 12.8861 6.29119 12.79 6.3736 12.6667C6.45601 12.5433 6.5 12.3983 6.5 12.25C6.5 12.0511 6.42098 11.8603 6.28033 11.7197C6.13968 11.579 5.94891 11.5 5.75 11.5ZM10.25 11.5C10.1017 11.5 9.95666 11.544 9.83332 11.6264C9.70999 11.7088 9.61386 11.8259 9.55709 11.963C9.50033 12.1 9.48547 12.2508 9.51441 12.3963C9.54335 12.5418 9.61478 12.6754 9.71967 12.7803C9.82456 12.8852 9.9582 12.9566 10.1037 12.9856C10.2492 13.0145 10.4 12.9997 10.537 12.9429C10.6741 12.8861 10.7912 12.79 10.8736 12.6667C10.956 12.5433 11 12.3983 11 12.25C11 12.0511 10.921 11.8603 10.7803 11.7197C10.6397 11.579 10.4489 11.5 10.25 11.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport default DotsSixVerticalSvg\n","import React from \"react\"\n\nconst FolderClosedSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_231_4273)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M1.53125 0.875C1.12514 0.875 0.735658 1.03632 0.448493 1.32349C0.161327 1.61066 0 2.00014 0 2.40625V11.5938C0 12.439 0.686 13.125 1.53125 13.125H12.4688C12.8748 13.125 13.2643 12.9636 13.5515 12.6765C13.8386 12.3893 14 11.9998 14 11.5938V4.15625C14 3.75014 13.8386 3.36066 13.5515 3.07349C13.2643 2.78632 12.8748 2.625 12.4688 2.625H6.78125C6.74729 2.625 6.7138 2.61709 6.68342 2.60191C6.65304 2.58672 6.62663 2.56467 6.60625 2.5375L5.81875 1.4875C5.53 1.1025 5.075 0.875 4.59375 0.875H1.53125Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_231_4273\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default FolderClosedSvg\n","import React from \"react\"\n\nconst FolderOpenSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clip-path=\"url(#clip0_231_4284)\">\n <path\n d=\"M0.448493 1.32349C0.735658 1.03632 1.12514 0.875 1.53125 0.875H4.59375C5.075 0.875 5.53 1.1025 5.81875 1.4875L6.60625 2.5375C6.62663 2.56467 6.65304 2.58672 6.68342 2.60191C6.7138 2.61709 6.74729 2.625 6.78125 2.625H11.375C11.8582 2.625 12.25 3.01675 12.25 3.5V3.9375H2.40625C2.04381 3.9375 1.75 4.23131 1.75 4.59375C1.75 4.95619 2.04381 5.25 2.40625 5.25H12.8873C13.4111 5.25 13.8176 5.70705 13.7564 6.22724L13.125 11.5938C13.125 11.9998 12.9637 12.3893 12.6765 12.6765C12.3893 12.9637 11.9998 13.125 11.5938 13.125H1.53125C0.686 13.125 0 12.439 0 11.5938V2.40625C0 2.00014 0.161327 1.61066 0.448493 1.32349Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_231_4284\">\n <rect width=\"14\" height=\"14\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default FolderOpenSvg\n","import React from \"react\"\n\nimport ChevronDownSvg from \"../assets/chevron-down\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport DotsSixVerticalSvg from \"../assets/dots-six-vertical\"\nimport FolderClosedSvg from \"../assets/folder-closed\"\nimport FolderOpenSvg from \"../assets/folder-open\"\nimport CounterLabel from \"../counter-label\"\n\nimport \"./index.scss\"\nimport type { PropsTreeFolderRight } from \"./index.type\"\n\nconst TreeFolderRight: React.FC<PropsTreeFolderRight> = ({\n label,\n count,\n badge,\n open = false,\n showDrag = true,\n showTree = true,\n iconRight,\n onIconRightClick,\n onClick,\n className,\n}) => {\n return (\n <div className={`DBui-treeFolderRight ${className ?? \"\"}`} data-active={open} onClick={onClick}>\n <div className=\"DBui-treeFolderRightContent\">\n <div className=\"DBui-treeFolderRightLeft\">\n {showDrag && (\n <span className=\"DBui-treeFolderRightDrag\">\n <DotsSixVerticalSvg width=\"100%\" height=\"100%\" />\n </span>\n )}\n <span className=\"DBui-treeFolderRightIcon\">\n {open ? <FolderOpenSvg width=\"100%\" height=\"100%\" /> : <FolderClosedSvg width=\"100%\" height=\"100%\" />}\n </span>\n <span className=\"DBui-treeFolderRightLabelGroup\">\n <span className=\"DBui-treeFolderRightLabel\">{label}</span>\n {count != null && <span className=\"DBui-treeFolderRightLabel\">({count})</span>}\n {badge != null && (\n <CounterLabel size=\"sm\" type=\"red\">\n {badge}\n </CounterLabel>\n )}\n </span>\n </div>\n <div className=\"DBui-treeFolderRightRight\">\n {iconRight && (\n <span\n className=\"DBui-treeFolderRightIconRight\"\n onClick={\n onIconRightClick\n ? (e) => {\n e.stopPropagation()\n onIconRightClick()\n }\n : undefined\n }\n >\n {iconRight}\n </span>\n )}\n {showTree && (\n <span className=\"DBui-treeFolderRightArrow\">\n {open ? <ChevronDownSvg width=\"100%\" height=\"100%\" /> : <ChevronRightSvg width=\"100%\" height=\"100%\" />}\n </span>\n )}\n </div>\n </div>\n </div>\n )\n}\n\nexport default TreeFolderRight\n","import React from \"react\"\n\nimport ChevronDownSvg from \"../assets/chevron-down\"\nimport ChevronRightSvg from \"../assets/chevron-right\"\nimport FolderClosedSvg from \"../assets/folder-closed\"\nimport FolderOpenSvg from \"../assets/folder-open\"\nimport CounterLabel from \"../counter-label\"\n\nimport \"./index.scss\"\nimport type { PropsTreeFolderLeft } from \"./index.type\"\n\nconst TreeFolderLeft: React.FC<PropsTreeFolderLeft> = ({\n label,\n count,\n badge,\n open = false,\n showTree = true,\n iconRight,\n onIconRightClick,\n onClick,\n className,\n}) => {\n return (\n <div className={`DBui-treeFolderLeft ${className ?? \"\"}`} data-active={open} onClick={onClick}>\n <div className=\"DBui-treeFolderLeftContent\">\n <div className=\"DBui-treeFolderLeftLeft\">\n {showTree && (\n <span className=\"DBui-treeFolderLeftArrow\">\n {open ? <ChevronDownSvg width=\"100%\" height=\"100%\" /> : <ChevronRightSvg width=\"100%\" height=\"100%\" />}\n </span>\n )}\n <span className=\"DBui-treeFolderLeftIcon\">\n {open ? <FolderOpenSvg width=\"100%\" height=\"100%\" /> : <FolderClosedSvg width=\"100%\" height=\"100%\" />}\n </span>\n <span className=\"DBui-treeFolderLeftLabelGroup\">\n <span className=\"DBui-treeFolderLeftLabel\">{label}</span>\n {count != null && <span className=\"DBui-treeFolderLeftLabel\">({count})</span>}\n {badge != null && (\n <CounterLabel size=\"sm\" type=\"red\">\n {badge}\n </CounterLabel>\n )}\n </span>\n </div>\n {iconRight && (\n <div className=\"DBui-treeFolderLeftRight\">\n <span\n className=\"DBui-treeFolderLeftIconRight\"\n onClick={\n onIconRightClick\n ? (e) => {\n e.stopPropagation()\n onIconRightClick()\n }\n : undefined\n }\n >\n {iconRight}\n </span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport default TreeFolderLeft\n","import React, { useRef, useState } from \"react\"\n\nimport TreeFolderLeft from \"../tree-folder-left\"\nimport TreeFolderRight from \"../tree-folder-right\"\n\nimport \"./index.scss\"\nimport type { PropsTreeFolder, TreeNode } from \"./index.type\"\n\ntype DropPosition = \"before\" | \"after\" | \"inside\"\n\nconst cloneTree = (nodes: TreeNode[]): TreeNode[] =>\n nodes.map((n) => ({ ...n, children: n.children ? cloneTree(n.children) : undefined }))\n\nconst removeNode = (nodes: TreeNode[], key: string): { tree: TreeNode[]; removed: TreeNode | null } => {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].key === key) {\n const removed = nodes[i]\n nodes.splice(i, 1)\n return { tree: nodes, removed }\n }\n if (nodes[i].children) {\n const result = removeNode(nodes[i].children!, key)\n if (result.removed) return { tree: nodes, removed: result.removed }\n }\n }\n return { tree: nodes, removed: null }\n}\n\nconst insertNode = (nodes: TreeNode[], targetKey: string, node: TreeNode, position: DropPosition): boolean => {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].key === targetKey) {\n if (position === \"before\") {\n nodes.splice(i, 0, node)\n } else if (position === \"after\") {\n nodes.splice(i + 1, 0, node)\n } else {\n if (!nodes[i].children) nodes[i].children = []\n nodes[i].children!.push(node)\n }\n return true\n }\n if (nodes[i].children) {\n if (insertNode(nodes[i].children!, targetKey, node, position)) return true\n }\n }\n return false\n}\n\nconst isDescendant = (nodes: TreeNode[], ancestorKey: string, targetKey: string): boolean => {\n const find = (children: TreeNode[]): boolean =>\n children.some((n) => n.key === targetKey || (n.children ? find(n.children) : false))\n const ancestor = findNode(nodes, ancestorKey)\n return ancestor?.children ? find(ancestor.children) : false\n}\n\nconst findNode = (nodes: TreeNode[], key: string): TreeNode | null => {\n for (const n of nodes) {\n if (n.key === key) return n\n if (n.children) {\n const found = findNode(n.children, key)\n if (found) return found\n }\n }\n return null\n}\n\nconst TreeItem: React.FC<{\n node: TreeNode\n depth: number\n variant: \"left\" | \"right\"\n isDraggable: boolean\n activeKey?: string\n expandedKeys: Set<string>\n draggedKey: string | null\n dropTarget: { key: string; position: DropPosition } | null\n onToggle: (key: string) => void\n onSelect?: (key: string) => void\n onDragStart: (key: string) => void\n onDragOver: (e: React.DragEvent, key: string) => void\n onDragEnd: () => void\n onDrop: (e: React.DragEvent, key: string) => void\n}> = ({\n node,\n depth,\n variant,\n isDraggable,\n activeKey,\n expandedKeys,\n draggedKey,\n dropTarget,\n onToggle,\n onSelect,\n onDragStart,\n onDragOver,\n onDragEnd,\n onDrop,\n}) => {\n const hasChildren = node.children && node.children.length > 0\n const isExpanded = expandedKeys.has(node.key)\n const isDragging = draggedKey === node.key\n\n const handleClick = () => {\n if (hasChildren) onToggle(node.key)\n onSelect?.(node.key)\n }\n\n const dropClass = dropTarget?.key === node.key ? `DBui-treeFolderDrop-${dropTarget.position}` : \"\"\n\n return (\n <>\n <div\n className={`DBui-treeFolderRow ${dropClass}`}\n data-dragging={isDragging}\n draggable={isDraggable}\n onDragStart={(e) => {\n e.dataTransfer.effectAllowed = \"move\"\n onDragStart(node.key)\n }}\n onDragOver={(e) => onDragOver(e, node.key)}\n onDragLeave={(e) => {\n e.preventDefault()\n }}\n onDrop={(e) => onDrop(e, node.key)}\n onDragEnd={onDragEnd}\n >\n {Array.from({ length: depth }).map((_, i) => (\n <div key={i} className=\"DBui-treeFolderIndent\" />\n ))}\n {variant === \"left\" ? (\n <TreeFolderLeft\n label={node.label}\n count={node.count}\n badge={node.badge}\n iconRight={node.iconRight}\n onIconRightClick={node.onIconRightClick}\n open={isExpanded}\n showTree={hasChildren}\n onClick={handleClick}\n />\n ) : (\n <TreeFolderRight\n label={node.label}\n count={node.count}\n badge={node.badge}\n iconRight={node.iconRight}\n onIconRightClick={node.onIconRightClick}\n open={isExpanded}\n showDrag={isDraggable}\n showTree={hasChildren}\n onClick={handleClick}\n />\n )}\n </div>\n {isExpanded &&\n node.children?.map((child) => (\n <TreeItem\n key={child.key}\n node={child}\n depth={depth + 1}\n variant={variant}\n isDraggable={isDraggable}\n activeKey={activeKey}\n expandedKeys={expandedKeys}\n draggedKey={draggedKey}\n dropTarget={dropTarget}\n onToggle={onToggle}\n onSelect={onSelect}\n onDragStart={onDragStart}\n onDragOver={onDragOver}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n />\n ))}\n </>\n )\n}\n\nconst TreeFolder: React.FC<PropsTreeFolder> = ({\n data,\n variant = \"left\",\n draggable = false,\n activeKey,\n defaultExpandedKeys = [],\n onSelect,\n onToggle,\n onReorder,\n className,\n}) => {\n const [expandedKeys, setExpandedKeys] = useState<Set<string>>(new Set(defaultExpandedKeys))\n const [draggedKey, setDraggedKey] = useState<string | null>(null)\n const [dropTarget, setDropTarget] = useState<{ key: string; position: DropPosition } | null>(null)\n const dataRef = useRef(data)\n dataRef.current = data\n\n const handleToggle = (key: string) => {\n setExpandedKeys((prev) => {\n const next = new Set(prev)\n const expanded = !next.has(key)\n if (expanded) next.add(key)\n else next.delete(key)\n onToggle?.(key, expanded)\n return next\n })\n }\n\n const handleDragStart = (key: string) => {\n setDraggedKey(key)\n }\n\n const handleDragOver = (e: React.DragEvent, key: string) => {\n e.preventDefault()\n if (!draggedKey || draggedKey === key) {\n setDropTarget(null)\n return\n }\n\n const rect = e.currentTarget.getBoundingClientRect()\n const y = e.clientY - rect.top\n const h = rect.height\n\n let position: DropPosition\n if (y < h * 0.25) {\n position = \"before\"\n } else if (y > h * 0.75) {\n position = \"after\"\n } else {\n position = \"inside\"\n }\n\n setDropTarget({ key, position })\n }\n\n const handleDragEnd = () => {\n setDraggedKey(null)\n setDropTarget(null)\n }\n\n const handleDrop = (e: React.DragEvent, targetKey: string) => {\n e.preventDefault()\n if (!draggedKey || !dropTarget || draggedKey === targetKey) {\n handleDragEnd()\n return\n }\n\n if (isDescendant(dataRef.current, draggedKey, targetKey)) {\n handleDragEnd()\n return\n }\n\n const tree = cloneTree(dataRef.current)\n const { removed } = removeNode(tree, draggedKey)\n if (!removed) {\n handleDragEnd()\n return\n }\n\n insertNode(tree, targetKey, removed, dropTarget.position)\n\n if (dropTarget.position === \"inside\") {\n setExpandedKeys((prev) => new Set([...prev, targetKey]))\n }\n\n onReorder?.(tree)\n handleDragEnd()\n }\n\n return (\n <div className={`DBui-treeFolder ${className ?? \"\"}`}>\n {data.map((node) => (\n <TreeItem\n key={node.key}\n node={node}\n depth={0}\n variant={variant}\n isDraggable={draggable}\n activeKey={activeKey}\n expandedKeys={expandedKeys}\n draggedKey={draggedKey}\n dropTarget={dropTarget}\n onToggle={handleToggle}\n onSelect={onSelect}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n onDrop={handleDrop}\n />\n ))}\n </div>\n )\n}\n\nexport default TreeFolder\n","import React, { useId } from \"react\"\n\nimport \"./index.scss\"\nimport type { PropsBattery } from \"./index.type\"\n\n// Battery body frame (nonzero winding: outer boundary + inner cutout)\nconst BODY =\n \"M22.9091 9.8182V7.6364C22.9091 6.43143 21.9323 5.45461 20.7273 5.45461H2.1818C0.976828 5.45456 0 6.43139 0 7.63635V16.3636C0 17.5686 0.976828 18.5454 2.1818 18.5454H20.7272C21.9322 18.5454 22.909 17.5686 22.909 16.3636V14.1818C23.5115 14.1818 24 13.6934 24 13.0909V10.9091C24 10.3066 23.5116 9.8182 22.9091 9.8182ZM21.8182 10.9091V16.3636C21.8182 16.9661 21.3298 17.4546 20.7273 17.4546H2.1818C1.57931 17.4546 1.09087 16.9661 1.09087 16.3636V7.63635C1.09087 7.03387 1.57931 6.54543 2.1818 6.54543H20.7272C21.3297 6.54543 21.8182 7.03387 21.8182 7.63635L21.8182 10.9091Z\"\n\n// Inner boundary (clipPath for warning state only)\nconst INNER_CLIP =\n \"M2.1818 6.54542H20.7273C21.3298 6.54542 21.8182 7.03386 21.8182 7.63634V16.3636C21.8182 16.9661 21.3298 17.4545 20.7273 17.4545H2.1818C1.57931 17.4545 1.09087 16.9661 1.09087 16.3636V7.63634C1.09087 7.03386 1.57931 6.54542 2.1818 6.54542Z\"\n\n// Warning triangle + exclamation\nconst WARNING =\n \"M10.6571 6.1469L4.83488 16.2305C4.72971 16.4126 4.67434 16.6192 4.67432 16.8294C4.6743 17.0397 4.72964 17.2463 4.83477 17.4284C4.93991 17.6105 5.09113 17.7618 5.27325 17.8669C5.45536 17.972 5.66194 18.0274 5.87223 18.0274H17.5157C17.7259 18.0274 17.9325 17.972 18.1146 17.8669C18.2968 17.7618 18.448 17.6105 18.5531 17.4284C18.6583 17.2463 18.7136 17.0397 18.7136 16.8294C18.7136 16.6192 18.6582 16.4126 18.553 16.2305L12.7314 6.1469C12.6263 5.96484 12.4751 5.81366 12.2931 5.70854C12.111 5.60343 11.9045 5.5481 11.6943 5.5481C11.484 5.5481 11.2775 5.60343 11.0954 5.70854C10.9134 5.81366 10.7622 5.96484 10.6571 6.1469Z\"\nconst EXCL_LINE =\n \"M11.7702 9.2569H11.6183C11.2444 9.2569 10.9413 9.56002 10.9413 9.93393V13.17C10.9413 13.5439 11.2444 13.8471 11.6183 13.8471H11.7702C12.1441 13.8471 12.4472 13.5439 12.4472 13.17V9.93393C12.4472 9.56002 12.1441 9.2569 11.7702 9.2569Z\"\nconst EXCL_DOT =\n \"M11.6943 16.4136C12.1101 16.4136 12.4472 16.0765 12.4472 15.6607C12.4472 15.2448 12.1101 14.9077 11.6943 14.9077C11.2784 14.9077 10.9413 15.2448 10.9413 15.6607C10.9413 16.0765 11.2784 16.4136 11.6943 16.4136Z\"\n\n// Indicator bar (0% state)\nconst INDICATOR_BAR =\n \"M3.34179 15.7836V8.21635C3.34179 7.89603 3.08212 7.63635 2.76179 7.63635C2.44147 7.63635 2.18179 7.89603 2.18179 8.21635V15.7836C2.18179 16.104 2.44147 16.3636 2.76179 16.3636C3.08212 16.3636 3.34179 16.104 3.34179 15.7836Z\"\n\n// Fill bar dimensions (inset from inner body edge by ~1.09)\nconst FILL_X = 2.18179\nconst FILL_Y = 7.63635\nconst FILL_HEIGHT = 8.72725\nconst FILL_MAX_WIDTH = 18.5455\n\nfunction getLevel(value: number): string {\n if (value === 0) return \"empty\"\n if (value < 20) return \"critical\"\n if (value < 75) return \"medium\"\n return \"high\"\n}\n\nconst Battery: React.FC<PropsBattery> = ({ value, variant = \"bw\", className }) => {\n const clipId = useId()\n const clampedValue = Math.min(100, Math.max(0, value))\n const level = getLevel(clampedValue)\n const fillWidth = (clampedValue / 100) * FILL_MAX_WIDTH\n\n return (\n <svg\n className={`DBui-battery ${className ?? \"\"}`}\n data-variant={variant}\n data-level={level}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className=\"DBui-batteryBody\" d={BODY} />\n {level === \"empty\" ? (\n <>\n <defs>\n <clipPath id={clipId}>\n <path d={INNER_CLIP} />\n </clipPath>\n </defs>\n <g clipPath={`url(#${clipId})`}>\n <path className=\"DBui-batteryIndicator\" d={INDICATOR_BAR} />\n <path className=\"DBui-batteryWarning\" d={WARNING} />\n <path className=\"DBui-batteryExclamation\" d={EXCL_LINE} />\n <path className=\"DBui-batteryExclamation\" d={EXCL_DOT} />\n </g>\n </>\n ) : (\n <rect className=\"DBui-batteryFill\" x={FILL_X} y={FILL_Y} width={fillWidth} height={FILL_HEIGHT} rx=\"1\" />\n )}\n </svg>\n )\n}\n\nexport default Battery\n","import React from \"react\"\n\nconst ArrowLeftSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10 6H2M2 6L5.5 2.5M2 6L5.5 9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ArrowLeftSvg\n","import React from \"react\"\n\nconst ArrowRightSvg: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M2 6H10M10 6L6.5 2.5M10 6L6.5 9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport default ArrowRightSvg\n","import React from \"react\"\n\nimport ArrowLeftSvg from \"../assets/arrow-left\"\nimport ArrowRightSvg from \"../assets/arrow-right\"\nimport ChevronDownSvg from \"../assets/chevron-down\"\nimport { MenuButton, MenuItem } from \"../menu\"\nimport { LabelLg, LabelMd } from \"../typography\"\n\nimport \"./index.scss\"\nimport type { PropsPagination } from \"./index.type\"\n\nfunction getPageRange(current: number, total: number): (number | \"gap\")[] {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1)\n }\n\n const pages = new Set<number>()\n pages.add(1)\n pages.add(total)\n\n for (let i = Math.max(1, current - 1); i <= Math.min(total, current + 1); i++) {\n pages.add(i)\n }\n\n if (current <= 3) {\n for (let i = 1; i <= Math.min(3, total); i++) pages.add(i)\n }\n if (current >= total - 2) {\n for (let i = Math.max(1, total - 2); i <= total; i++) pages.add(i)\n }\n\n pages.add(total - 1)\n\n const sorted = Array.from(pages).sort((a, b) => a - b)\n const result: (number | \"gap\")[] = []\n\n for (let i = 0; i < sorted.length; i++) {\n if (i > 0 && sorted[i] - sorted[i - 1] > 1) {\n result.push(\"gap\")\n }\n result.push(sorted[i])\n }\n\n return result\n}\n\nconst Pagination: React.FC<PropsPagination> = ({\n currentPage,\n totalPages,\n onPageChange,\n pageSize = 10,\n pageSizeOptions,\n onPageSizeChange,\n className,\n}) => {\n const pages = getPageRange(currentPage, totalPages)\n const isFirst = currentPage === 1\n const isLast = currentPage === totalPages\n\n return (\n <div className={`DBui-pagination ${className ?? \"\"}`}>\n <div className=\"DBui-paginationRow\">\n <button className=\"DBui-paginationPrev\" disabled={isFirst} onClick={() => onPageChange?.(currentPage - 1)}>\n <ArrowLeftSvg width=\"12\" height=\"12\" />\n <LabelMd weight=\"medium\">Previous</LabelMd>\n </button>\n\n <div className=\"DBui-paginationPages\">\n {pages.map((item, i) =>\n item === \"gap\" ? (\n <span key={`gap-${i}`} className=\"DBui-paginationGap\">\n <LabelLg weight=\"medium\">...</LabelLg>\n </span>\n ) : (\n <button\n key={item}\n className=\"DBui-paginationPage\"\n data-current={item === currentPage}\n onClick={() => onPageChange?.(item)}\n >\n <LabelLg weight=\"medium\">{item}</LabelLg>\n </button>\n ),\n )}\n </div>\n\n <button className=\"DBui-paginationNext\" disabled={isLast} onClick={() => onPageChange?.(currentPage + 1)}>\n <LabelMd weight=\"medium\">Next</LabelMd>\n <ArrowRightSvg width=\"12\" height=\"12\" />\n </button>\n </div>\n\n {pageSizeOptions && (\n <MenuButton\n trigger={\n <div className=\"DBui-paginationSize\">\n <LabelLg weight=\"medium\">{pageSize} / page</LabelLg>\n <ChevronDownSvg width=\"14\" height=\"14\" />\n </div>\n }\n size=\"md\"\n align=\"right\"\n >\n {pageSizeOptions.map((size) => (\n <MenuItem key={size} active={size === pageSize} onClick={() => onPageSizeChange?.(size)}>\n {size} / page\n </MenuItem>\n ))}\n </MenuButton>\n )}\n </div>\n )\n}\n\nexport default Pagination\n","// Lib\nimport React from \"react\"\n\n// Components\nimport { LabelMd, LabelLg, Paragraph } from \"../typography\"\nimport Pagination from \"../pagination\"\nimport IonCheckmarkSvg from \"../assets/icon-checkmark\"\nimport BarSvg from \"../assets/bar\"\n\n// Include in project\nimport type { PropsTableSort, PropsTableHead, PropsTableCell, PropsTable } from \"./index.type\"\nimport \"./index.scss\"\n\n// --- TableSort ---\nexport const TableSort: React.FC<PropsTableSort> = ({ size = \"lg\", className }) => {\n return (\n <span className={`DBui-tableSort ${className ?? \"\"}`} data-size={size}>\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 1L8.59808 4.75H3.40192L6 1Z\" fill=\"currentColor\" />\n <path d=\"M6 11L3.40192 7.25L8.59808 7.25L6 11Z\" fill=\"currentColor\" />\n </svg>\n </span>\n )\n}\n\n// --- TableHead ---\nexport const TableHead: React.FC<PropsTableHead> = ({\n children,\n description,\n showCheckbox = false,\n checked = false,\n indeterminate = false,\n onCheck,\n showSort = true,\n onSort,\n className,\n}) => {\n return (\n <div className={`DBui-tableHead ${className ?? \"\"}`}>\n {showCheckbox && (\n <label className=\"DBui-tableCheckbox\">\n <input\n type=\"checkbox\"\n className=\"DBui-tableCheckboxNative\"\n checked={checked}\n ref={(el) => {\n if (el) el.indeterminate = indeterminate\n }}\n onChange={(e) => onCheck?.(e.target.checked)}\n />\n <span className=\"DBui-tableCheckboxBox\" data-checked={checked} data-indeterminate={indeterminate}>\n {checked && (\n <span className=\"DBui-tableCheckboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n {indeterminate && !checked && (\n <span className=\"DBui-tableCheckboxIcon\">\n <BarSvg />\n </span>\n )}\n </span>\n </label>\n )}\n <div className=\"DBui-tableHeadContent\">\n <div className=\"DBui-tableHeadText\">\n {children && (\n <LabelMd as=\"span\" weight=\"semibold\">\n {children}\n </LabelMd>\n )}\n {description && (\n <Paragraph as=\"span\" weight=\"medium\">\n {description}\n </Paragraph>\n )}\n </div>\n {showSort && (\n <span className=\"DBui-tableHeadSort\" onClick={onSort}>\n <TableSort size=\"md\" />\n </span>\n )}\n </div>\n </div>\n )\n}\n\n// --- TableCell ---\nexport const TableCell: React.FC<PropsTableCell> = ({\n children,\n showCheckbox = false,\n checked = false,\n onCheck,\n className,\n}) => {\n return (\n <div className={`DBui-tableCell ${className ?? \"\"}`}>\n {showCheckbox && (\n <label className=\"DBui-tableCheckbox\">\n <input\n type=\"checkbox\"\n className=\"DBui-tableCheckboxNative\"\n checked={checked}\n onChange={(e) => onCheck?.(e.target.checked)}\n />\n <span className=\"DBui-tableCheckboxBox\" data-checked={checked}>\n {checked && (\n <span className=\"DBui-tableCheckboxIcon\">\n <IonCheckmarkSvg />\n </span>\n )}\n </span>\n </label>\n )}\n {children}\n </div>\n )\n}\n\n// --- Table ---\nfunction Table<T>({\n columns,\n data,\n rowKey,\n showCheckbox = false,\n checkedKeys = [],\n onCheck,\n loading = false,\n skeletonRows = 4,\n totalItems,\n currentPage,\n totalPages,\n onPageChange,\n pageSize,\n pageSizeOptions,\n onPageSizeChange,\n className,\n}: PropsTable<T>) {\n const getKey = (row: T, index: number): string | number => (rowKey ? rowKey(row, index) : index)\n\n const allKeys = data.map((row, i) => getKey(row, i))\n const allChecked = allKeys.length > 0 && allKeys.every((k) => checkedKeys.includes(k))\n const someChecked = allKeys.some((k) => checkedKeys.includes(k))\n\n const handleCheckAll = (checked: boolean) => {\n onCheck?.(checked ? allKeys : [])\n }\n\n const handleCheckRow = (key: string | number, checked: boolean) => {\n if (checked) {\n onCheck?.([...checkedKeys, key])\n } else {\n onCheck?.(checkedKeys.filter((k) => k !== key))\n }\n }\n\n const showPagination = totalPages !== undefined && currentPage !== undefined\n\n const gridTemplateColumns = columns\n .map((col) => {\n if (!col.width) return \"1fr\"\n return typeof col.width === \"number\" ? `${col.width}px` : col.width\n })\n .join(\" \")\n\n return (\n <div className={`DBui-table ${className ?? \"\"}`}>\n <div className=\"DBui-tableGrid\" style={{ gridTemplateColumns }}>\n {loading\n ? columns.map((col) => (\n <div key={col.key} className=\"DBui-tableSkeletonHead\">\n <div className=\"DBui-tableSkeletonBar\" style={{ width: 88 }} />\n </div>\n ))\n : columns.map((col, colIndex) => (\n <TableHead\n key={col.key}\n showCheckbox={showCheckbox && colIndex === 0}\n checked={allChecked}\n indeterminate={someChecked && !allChecked}\n onCheck={handleCheckAll}\n showSort={col.showSort}\n onSort={col.onSort}\n description={col.headerDescription}\n >\n {col.header}\n </TableHead>\n ))}\n {loading\n ? Array.from({ length: skeletonRows }, (_, rowIndex) =>\n columns.map((col, colIndex) => (\n <div key={`sk-${rowIndex}-${colIndex}`} className=\"DBui-tableSkeletonCell\">\n <div className=\"DBui-tableSkeletonBar\" style={{ width: 64 }} />\n </div>\n )),\n )\n : data.map((row, rowIndex) => {\n const key = getKey(row, rowIndex)\n return columns.map((col, colIndex) => (\n <TableCell\n key={`${key}-${col.key}`}\n showCheckbox={showCheckbox && colIndex === 0}\n checked={checkedKeys.includes(key)}\n onCheck={(checked) => handleCheckRow(key, checked)}\n >\n {col.render(row, rowIndex)}\n </TableCell>\n ))\n })}\n </div>\n {showPagination && (\n <div className=\"DBui-tableFooter\">\n {totalItems !== undefined && <LabelLg weight=\"medium\">Total {totalItems} items</LabelLg>}\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n onPageChange={onPageChange}\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n onPageSizeChange={onPageSizeChange}\n />\n </div>\n )}\n </div>\n )\n}\n\nexport default Table\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","owner","debugStack","debugTask","refProp","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","isValidElement","object","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","weightValue","createTypography","defaultTag","className","baselinePrefix","defaultWeight","as","extraClass","style","weight","Tag","w","fontStyle","classes","Display1","Display2","Display3","Display4","H1","H2","H3","H4","H5","H6","Title","Subtitle","LabelLg","LabelMd","LabelSm","Paragraph","CaptionLg","CaptionMd","CaptionSm","CaptionXs","initialBySize","Avatars","size","src","initial","InitialText","jsxs","jsx","AvatarGroup","items","max","visible","overflow","item","index","TypoBySize","CounterLabel","shape","Typo","LabelBySize","CounterSizeByButtonSize","Button","variant","color","disabled","onClick","StartIcon","EndIcon","isLoading","count","isDisabled","Label","Fragment","ButtonIcon","Icon","isCheckBoxInput","element","isDateObject","isNullOrUndefined","isObjectType","isObject","getEventValue","event","getNodeParentName","isNameInFieldArray","names","isPlainObject","tempObject","prototypeCopy","isWeb","cloneObject","data","isFileListInstance","isArray","copy","isKey","isUndefined","val","compact","stringToPath","input","get","path","defaultValue","result","isBoolean","isFunction","set","tempPath","length","lastIndex","newValue","objValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormControlContext","useFormControlContext","getProxyFormState","formState","control","localProxyFormState","isRoot","_key","useIsomorphicLayoutEffect","useFormState","formControl","exact","updateFormState","_localProxyFormState","isString","generateWatchOutput","_names","formValues","isGlobal","fieldName","isPrimitive","deepEqual","object1","object2","_internal_visited","keys1","keys2","val1","val2","useWatch","compute","_defaultValue","_compute","_computeFormValues","_prevControl","_prevName","updateValue","getCurrentOutput","values","refreshValue","computedFormValues","controlChanged","prevName","computedOutput","nameChanged","useController","shouldUnregister","isArrayField","defaultValueMemo","_props","_previousNameRef","_registerProps","fieldState","onChange","onBlur","ref","elm","field","message","_shouldUnregisterField","previousName","updateMounted","Controller","HookFormContext","appendErrors","validateAllFieldCriteria","errors","convertToArrayPayload","createSubject","_observers","observer","o","extractFormValues","fieldsState","fieldValue","nestedFieldsState","isEmptyObject","isFileInput","isHTMLElement","isMultipleSelect","isRadioInput","isRadioOrCheckbox","live","baseGet","updatePath","isEmptyArray","obj","unset","paths","childObject","objectHasFunction","isTraversable","markFieldsDirty","fields","getDirtyFields","dirtyFieldsFromValues","formValue","defaultResult","validResult","getCheckboxValue","options","option","getFieldValueAs","valueAsNumber","valueAsDate","setValueAs","defaultReturn","getRadioValue","previous","getFieldValue","_f","getResolverOptions","fieldsNames","_fields","criteriaMode","shouldUseNativeValidation","isRegex","getRuleValue","rule","getValidationModes","mode","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","isWatched","isBlurEvent","watchName","iterateFieldsByAction","action","abortEarly","currentField","schemaErrorLookup","error","foundError","shouldRenderFormState","formStateData","_proxyFormState","shouldSubscribeByName","signalName","currentName","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","updateFieldArrayRootError","fieldArrayErrors","getValidateError","getValueAndMessage","validationData","validateField","disabledFieldNames","isFieldArray","refs","required","maxLength","minLength","min","pattern","validate","mount","inputValue","inputRef","setCustomValidity","isRadio","isCheckBox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","time","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","defaultOptions","createFormControl","_options","_formState","_defaultValues","_formValues","_state","delayErrorCallback","timer","defaultProxyFormState","_proxySubscribeFormState","_subjects","shouldDisplayAllAssociatedErrors","debounce","callback","wait","_setValid","shouldUpdateValid","isValid","_runSchema","_updateIsValidating","executeBuiltInValidation","isValidating","_setFieldArray","method","args","shouldSetValues","shouldUpdateFieldsAndState","fieldValues","touchedFields","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","context","isFieldArrayRoot","isPromiseFunction","fieldError","_removeUnmounted","unregister","getValues","_getWatch","_getFieldArray","optionRef","checkboxRef","radioRef","trigger","setValues","fieldKey","setValue","cloneValue","target","isFieldValueUpdated","_updateIsFieldValueUpdated","validationModeBeforeSubmit","validationModeAfterSubmit","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","getFieldState","clearErrors","inputName","setError","currentError","currentRef","restOfErrorTree","watch","payload","_subscribe","_setFormState","subscribe","_setDisabledField","disabledStateChanged","register","disabledIsDefined","fieldRef","radioOrCheckbox","_focusError","_disableForm","handleSubmit","onValid","onInvalid","e","onValidError","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","fieldsToCheck","isDirty","existingValue","form","reset","setFocus","methods","useForm","_formControl","_values","rest","sub","_a","state","CaptionBySize","HintBySize","InputBase","label","caption","require","fullWidth","isInvalid","isSuccess","hint","errorMessage","styleDiv","hintText","CaptionText","Hint","IconTextCaptionBySize","TextInput","placeholder","readOnly","icon","iconText","invalid","IconCaption","formatNumber","parseNumber","raw","stripped","num","NumberField","displayValue","setDisplayValue","useState","isFocused","setIsFocused","handleChange","useCallback","handleFocus","handleBlur","formatted","NumberInput","FlagThSvg","formatPhone","digits","PhoneInput","EyeSvg","EyeOffSvg","PasswordInput","isShow","setIsShow","s","Textarea","rows","cols","MENU_GAP","applyMenuPosition","triggerEl","menuEl","align","matchWidth","rect","spaceBelow","spaceAbove","viewportMax","goUp","maxHeight","top","useMenuDropdown","positionOptions","ignorePortalClicks","open","setOpen","triggerRef","useRef","menuRef","close","toggle","prev","useEffect","reposition","handleClickOutside","handleEscape","ChevronRightSvg","CounterSizeByMenuSize","ShortcutBySize","DescriptionBySize","HeaderBySize","applySizeToChildren","nodes","child","Menu","MenuItem","description","shortcut","counter","counterType","hasSubmenu","active","Shortcut","Description","MenuHeader","Header","MenuDivider","MenuButton","useMemo","wrapMenuItems","originalOnClick","menuContent","createPortal","triggerContent","VIEWBOX_SIZE","RADIUS","STROKE_WIDTH","Loading","progress","thickness","circumference","clampedProgress","offset","ChevronDownSvg","MATCH_WIDTH_OPTIONS","MenuSizeByInputSize","Select","loading","selectedOption","menuSize","handleSelect","optionValue","handleTriggerClick","handleTriggerBlur","ChevronLeftSvg","MONTHS","WEEKDAYS","MONTH_OPTIONS","m","i","getDaysInMonth","year","month","getFirstDayOfWeek","isSameDay","a","b","Calendar","rangeStart","rangeEnd","today","viewMonth","viewYear","daysInMonth","firstDay","prevMonthDays","goToPrevMonth","goToNextMonth","handleSelectDate","day","date","yearOptions","base","opts","y","cells","d","remaining","wd","_","rowIndex","cell","colIndex","cellDate","isSelected","isRangeStart","isRangeEnd","isInRange","isToday","CalendarSvg","parseDate","str","datePart","formatDate","formatDisplayDate","formatDisplayDateTime","getTimePart","DateInput","DateTimeInput","currentTime","handleTimeChange","DateRangeInput","startPlaceholder","endPlaceholder","picking","setPicking","dateStr","handleOpen","SearchSvg","XCircleFillSvg","SearchBar","showIcon","onClear","hasValue","handleClear","IonCheckmarkSvg","BarSvg","DescBySize","Checkbox","isVertical","Desc","toggleValue","checkedValue","v","isChecked","isIndeterminate","el","RadioButton","IconTextBySize","EmptyLabelBySize","AutoComplete","emptyText","query","setQuery","filteredOptions","EmptyLabel","openDropdown","selected","handleInputChange","text","showDropdown","XIcon","OnRemove","Chip","onRemove","hasRemove","isWhiteIcon","ChipSizeByInputSize","MultiSelect","chipSize","toggleOption","selectedOptions","OptionLabel","Toggle","useOverlay","onClose","removing","setRemoving","handleClose","Modal","title","footer","onBack","onNext","onDelete","backText","nextText","deleteText","hasBuiltInFooter","hasDelete","DialogBox","onConfirm","onCancel","confirmText","cancelText","confirmColor","showCancel","handleCancel","handleConfirm","InfoCircleFillSvg","CheckCircleFillSvg","WarningFillSvg","toasts","listeners","emit","l","toastStore","listener","body","id","t","IconByType","getAnimDir","position","ToastCard","animDir","Toaster","maxToasts","useSyncExternalStore","createToast","toast","StarFillSvg","getStarState","Rate","hoverValue","setHoverValue","handleMouseMove","isLeftHalf","handleClick","Tooltip","placement","anchorName","useId","hoverRef","timeoutRef","updateOpen","PlusSvg","MinusSvg","TrashSvg","Quantity","numValue","isAtMin","isAtMax","showTrash","Breadcrumbs","isCurrent","ProgressBar","clampedValue","UploadSimpleSvg","FileUploader","preview","accept","status","file","InboxSvg","FileEarmarkSvg","ImageBrokenSvg","UploadListItem","UploadDragger","files","multiple","dragging","setDragging","handleDragOver","handleDragLeave","handleDrop","EmptyBasicSvg","EmptySimpleSvg","Empty","image","defaultImage","Tabs","activeKey","isActive","HeartFillSvg","HeartOutlineSvg","Favorite","liked","clamp","getPercent","useSliderDrag","trackRef","onUpdate","update","clientX","ratio","onMove","ev","onUp","Slider","percent","handleDrag","RangeSlider","low","high","lowPercent","highPercent","handleLowDrag","handleHighDrag","SliderInput","RangeSliderInput","ImagesSvg","UserProfile","subtitle","onChangePhoto","onViewPhoto","DotsSixVerticalSvg","FolderClosedSvg","FolderOpenSvg","TreeFolderRight","badge","showDrag","showTree","iconRight","onIconRightClick","TreeFolderLeft","cloneTree","n","removeNode","removed","insertNode","targetKey","isDescendant","ancestorKey","find","ancestor","findNode","found","TreeItem","depth","isDraggable","expandedKeys","draggedKey","dropTarget","onToggle","onSelect","onDragStart","onDragOver","onDragEnd","onDrop","hasChildren","isExpanded","isDragging","dropClass","TreeFolder","draggable","defaultExpandedKeys","onReorder","setExpandedKeys","setDraggedKey","setDropTarget","dataRef","handleToggle","next","expanded","handleDragStart","h","handleDragEnd","tree","BODY","INNER_CLIP","WARNING","EXCL_LINE","EXCL_DOT","INDICATOR_BAR","FILL_X","FILL_Y","FILL_HEIGHT","FILL_MAX_WIDTH","getLevel","Battery","clipId","level","fillWidth","ArrowLeftSvg","ArrowRightSvg","getPageRange","current","total","pages","sorted","Pagination","currentPage","totalPages","onPageChange","pageSize","pageSizeOptions","onPageSizeChange","isFirst","isLast","TableSort","TableHead","showCheckbox","checked","indeterminate","onCheck","showSort","onSort","TableCell","Table","columns","rowKey","checkedKeys","skeletonRows","totalItems","getKey","row","allKeys","allChecked","someChecked","handleCheckAll","handleCheckRow","showPagination","gridTemplateColumns","col"],"mappings":"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","x_google_ignoreList":[0,1,2,9]}