lizaui 13.0.0 → 13.0.2

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.
@@ -1,5 +1,5 @@
1
1
  import { t as cn } from "../chunks/utils-C_uf36nf.js";
2
- import { g as Input } from "../chunks/scroll-area-CB6KTpi4.js";
2
+ import { g as Input } from "../chunks/scroll-area-BQsrpwTg.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { createRef, forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as cn } from "./utils-C_uf36nf.js";
2
- import { i as useOverlayLayer, r as useOverlayHost } from "./use-overlay-Bzjg7RmH.js";
2
+ import { i as useOverlayLayer, r as useOverlayHost } from "./use-overlay-jGDwEZKn.js";
3
3
  import { t as Button } from "./button-BH-rDMjv.js";
4
4
  import { c } from "react/compiler-runtime";
5
5
  import { createContext, forwardRef, useContext, useId } from "react";
@@ -600,4 +600,4 @@ var ModalFooter = (t0) => {
600
600
  //#endregion
601
601
  export { ModalHeader as i, ModalBody as n, ModalFooter as r, Modal as t };
602
602
 
603
- //# sourceMappingURL=modal-BAPR6qV0.js.map
603
+ //# sourceMappingURL=modal-DxcmrFYt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-BAPR6qV0.js","names":["{\n\t\t\tmodalId: propModalId,\n\t\t\tisShow,\n\t\t\tisVisible,\n\t\t\tchildren,\n\t\t\tstyle,\n\t\t\tclassNameOverlay = \"\",\n\t\t\tstyleContainer,\n\t\t\tonClickOutside,\n\t\t\tclassNameModalContent = \"\",\n\t\t\tclassNameDialog = \"modal-custom-dialog\",\n\t\t\tclassNameContent = \"\",\n\t\t\tbackdrop = \"opaque\",\n\t\t\tsize = \"md\",\n\t\t\tisKeyboardDismissDisabled = false,\n\t\t\tshouldBlockScroll = true,\n\t\t\tshadow = \"md\",\n\t\t\tradius = \"xl\",\n\t\t\tplacement = \"center\",\n\t\t}: ModalType","classNameOverlay = \"\"","classNameModalContent = \"\"","classNameDialog = \"modal-custom-dialog\"","classNameContent = \"\"","backdrop = \"opaque\"","size = \"md\"","isKeyboardDismissDisabled = false","shouldBlockScroll = true","shadow = \"md\"","radius = \"xl\"","placement = \"center\"","{\n\t\t\t\theaderId: `${modalId}-header`,\n\t\t\t\tbodyId: `${modalId}-body`,\n\t\t\t}","`${modalId}-header`","`${modalId}-body`","useMemo(\n\t\t\t() => ({\n\t\t\t\theaderId: `${modalId}-header`,\n\t\t\t\tbodyId: `${modalId}-body`,\n\t\t\t}),\n\t\t\t[modalId],\n\t\t)","() => {\n\t\t\t\tif (!isKeyboardDismissDisabled) onClickOutside?.();\n\t\t\t}","{\n\t\t\tisActive: isShow && isVisible,\n\t\t\thost,\n\t\t\tshouldBlockScroll,\n\t\t\tbodyClassName: \"modal-open\",\n\t\t\tonEscape: () => {\n\t\t\t\tif (!isKeyboardDismissDisabled) onClickOutside?.();\n\t\t\t},\n\t\t}","isShow && isVisible","ReactDOM.createPortal(\n\t\t\t<AnimatePresence onExitComplete={release}>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>,\n\t\t\thost,\n\t\t)","isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)","m.div","ModalContext.Provider","<AnimatePresence onExitComplete={release}>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>","showCloseButton = true","disabled = false","{\n\ttitle,\n\tshowCloseButton = true,\n\tdisabled = false,\n\tonClick,\n\tclassName,\n\tstyle,\n\tchildren,\n\tid,\n\t...props\n}: ModalHeaderType","cn(\"modal-custom-header-container w-full relative\")","cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)","children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>","<div id={id || context?.headerId} className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>","id || context?.headerId","showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-9 h-9 min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)","<div className={cn(\"modal-custom-header-container w-full relative\")} style={style}>\n\t\t\t<div id={id || context?.headerId} className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>\n\n\t\t\t{showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-9 h-9 min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>","{ children, className = \"\", style, height, id }: ModalBodyType","className = \"\"","cn(\"modal-custom-body relative flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)","{ ...style, height: height ? `${height}px` : \"auto\" }","height ? `${height}px` : \"auto\"","<div\n\t\t\tid={id || context?.bodyId}\n\t\t\tclassName={cn(\"modal-custom-body relative flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)}\n\t\t\tref={ref}\n\t\t\tstyle={{ ...style, height: height ? `${height}px` : \"auto\" }}\n\t\t>\n\t\t\t{children}\n\t\t</div>","id || context?.bodyId","{ children, className, style }: ModalFooterType","cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)","<div className={cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)} style={style}>\n\t\t\t{children}\n\t\t</div>","_c","_Fragment"],"sources":["../../src/components/transition/transition-utils.ts","../../src/components/modal/modal.tsx"],"sourcesContent":["import type { Target, TargetAndTransition, Transition } from \"motion/react\";\n\ntype WithMotionState<P> = Partial<Record<\"enter\" | \"exit\", P>>;\n\nexport type TransitionConfig = WithMotionState<Transition>;\n\nexport type TransitionEndConfig = WithMotionState<Target>;\n\nexport type TransitionProperties = {\n\t/**\n\t * Custom `transition` definition for `enter` and `exit`\n\t */\n\ttransition?: TransitionConfig;\n\t/**\n\t * Custom `transitionEnd` definition for `enter` and `exit`\n\t */\n\ttransitionEnd?: TransitionEndConfig;\n};\n\ntype TargetResolver<P = {}> = (props: P & TransitionProperties) => TargetAndTransition;\n\ntype Variant<P = {}> = TargetAndTransition | TargetResolver<P>;\n\nexport type Variants<P = {}> = Record<\n\tstring,\n\t{\n\t\tenter: Variant<P>;\n\t\texit: Variant<P>;\n\t\tinitial?: Variant<P>;\n\t}\n>;\n\nexport const TRANSITION_EASINGS = {\n\tease: [0.36, 0.66, 0.4, 1],\n\teaseIn: [0.4, 0, 1, 1],\n\teaseOut: [0, 0, 0.2, 1],\n\teaseInOut: [0.4, 0, 0.2, 1],\n\tspring: [0.155, 1.105, 0.295, 1.12],\n\tspringOut: [0.57, -0.15, 0.62, 0.07],\n\tsoftSpring: [0.16, 1.11, 0.3, 1.02],\n} as const;\n\nexport const TRANSITION_DEFAULTS = {\n\tenter: {\n\t\tduration: 0.2,\n\t\tease: TRANSITION_EASINGS.easeOut,\n\t},\n\texit: {\n\t\tduration: 0.1,\n\t\tease: TRANSITION_EASINGS.easeIn,\n\t},\n} as const;\n\nexport const TRANSITION_VARIANTS: Variants = {\n\tscaleSpring: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.2,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.85)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscaleSpringOpacity: {\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.8)\",\n\t\t},\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransform: \"scale(1)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.96)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscale: {\n\t\tenter: { scale: 1 },\n\t\texit: { scale: 0.95 },\n\t},\n\tscaleFadeIn: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.25,\n\t\t\t\tease: TRANSITION_EASINGS.easeIn,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.95)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.2,\n\t\t\t\tease: TRANSITION_EASINGS.easeOut,\n\t\t\t},\n\t\t},\n\t},\n\tscaleInOut: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(1.03)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tfade: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tmodal: {\n\t\tenter: {\n\t\t\tscale: 1,\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tstiffness: 400,\n\t\t\t\tdamping: 40,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\tscale: 0.96,\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.2,\n\t\t\t\tease: TRANSITION_EASINGS.easeOut,\n\t\t\t},\n\t\t},\n\t},\n\tcollapse: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\theight: \"auto\",\n\t\t\ttransition: {\n\t\t\t\theight: {\n\t\t\t\t\ttype: \"spring\",\n\t\t\t\t\tbounce: 0,\n\t\t\t\t\tduration: 0.3,\n\t\t\t\t},\n\t\t\t\topacity: {\n\t\t\t\t\tease: \"ease\" as any,\n\t\t\t\t\tduration: 0.4,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\theight: 0,\n\t\t\ttransition: {\n\t\t\t\tease: \"ease\" as any,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t},\n};\n","\"use client\";\n\nimport { useOverlayHost, useOverlayLayer } from \"@/lib/overlay/use-overlay\";\nimport { cn } from \"@/lib/utils\";\nimport { cva } from \"class-variance-authority\";\nimport { AnimatePresence, domAnimation, LazyMotion, m } from \"motion/react\";\nimport { createContext, forwardRef, useContext, useId, useMemo, type Ref } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Button } from \"../button\";\nimport { TRANSITION_VARIANTS } from \"../transition/transition-utils\";\nimport type { ModalBodyType, ModalFooterType, ModalHeaderType, ModalType } from \"./modal.type\";\n\nconst ModalContext = createContext<{ headerId: string; bodyId: string } | null>(null);\n\nconst backdropVariants = cva(\"\", {\n\tvariants: {\n\t\tbackdrop: {\n\t\t\ttransparent: \"bg-transparent\",\n\t\t\topaque: \"bg-black/50\",\n\t\t\tblur: \"backdrop-blur-md backdrop-saturate-150 bg-overlay/30\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tbackdrop: \"opaque\",\n\t},\n});\n\nconst sizeVariants = cva(\"\", {\n\tvariants: {\n\t\tsize: {\n\t\t\t\"xs\": \"max-w-xs\",\n\t\t\t\"sm\": \"max-w-sm\",\n\t\t\t\"md\": \"max-w-md\",\n\t\t\t\"lg\": \"max-w-lg\",\n\t\t\t\"xl\": \"max-w-xl\",\n\t\t\t\"2xl\": \"max-w-2xl\",\n\t\t\t\"3xl\": \"max-w-3xl\",\n\t\t\t\"4xl\": \"max-w-4xl\",\n\t\t\t\"5xl\": \"max-w-5xl\",\n\t\t\t\"full\": \"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst radiusVariants = cva(\"\", {\n\tvariants: {\n\t\tradius: {\n\t\t\t\"none\": \"rounded-none\",\n\t\t\t\"sm\": \"rounded-sm\",\n\t\t\t\"md\": \"rounded-md\",\n\t\t\t\"lg\": \"rounded-lg\",\n\t\t\t\"xl\": \"rounded-xl\",\n\t\t\t\"2xl\": \"rounded-2xl\",\n\t\t\t\"3xl\": \"rounded-3xl\",\n\t\t\t\"full\": \"rounded-full\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tradius: \"xl\",\n\t},\n});\n\nconst placementVariants = cva(\"\", {\n\tvariants: {\n\t\tplacement: {\n\t\t\tcenter: \"fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]\",\n\t\t\ttop: \"fixed top-0 left-[50%] translate-x-[-50%] sm:mt-8\",\n\t\t\tbottom: \"fixed bottom-0 left-[50%] translate-x-[-50%] sm:mb-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tplacement: \"center\",\n\t},\n});\n\nconst shadowVariants = cva(\"\", {\n\tvariants: {\n\t\tshadow: {\n\t\t\tnone: \"shadow-none\",\n\t\t\tsm: \"shadow-sm\",\n\t\t\tmd: \"shadow-md\",\n\t\t\tlg: \"shadow-lg\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tshadow: \"md\",\n\t},\n});\n\nexport const Modal = forwardRef(\n\t(\n\t\t{\n\t\t\tmodalId: propModalId,\n\t\t\tisShow,\n\t\t\tisVisible,\n\t\t\tchildren,\n\t\t\tstyle,\n\t\t\tclassNameOverlay = \"\",\n\t\t\tstyleContainer,\n\t\t\tonClickOutside,\n\t\t\tclassNameModalContent = \"\",\n\t\t\tclassNameDialog = \"modal-custom-dialog\",\n\t\t\tclassNameContent = \"\",\n\t\t\tbackdrop = \"opaque\",\n\t\t\tsize = \"md\",\n\t\t\tisKeyboardDismissDisabled = false,\n\t\t\tshouldBlockScroll = true,\n\t\t\tshadow = \"md\",\n\t\t\tradius = \"xl\",\n\t\t\tplacement = \"center\",\n\t\t}: ModalType,\n\t\tref: Ref<HTMLDivElement>,\n\t) => {\n\t\tconst uniqueId = useId();\n\t\tconst modalId = propModalId || uniqueId;\n\n\t\tconst { headerId, bodyId } = useMemo(\n\t\t\t() => ({\n\t\t\t\theaderId: `${modalId}-header`,\n\t\t\t\tbodyId: `${modalId}-body`,\n\t\t\t}),\n\t\t\t[modalId],\n\t\t);\n\n\t\t// Nodo propio al final del body: el último overlay abierto (Modal o Drawer) queda encima del resto.\n\t\tconst { host, release } = useOverlayHost(isShow);\n\n\t\t// Pila compartida: Escape solo cierra el overlay de arriba, el scroll se bloquea con contador y el fondo queda inert.\n\t\tuseOverlayLayer({\n\t\t\tisActive: isShow && isVisible,\n\t\t\thost,\n\t\t\tshouldBlockScroll,\n\t\t\tbodyClassName: \"modal-open\",\n\t\t\tonEscape: () => {\n\t\t\t\tif (!isKeyboardDismissDisabled) onClickOutside?.();\n\t\t\t},\n\t\t});\n\n\t\tif (!host) return null;\n\n\t\t// Features síncronos: cargados en diferido, cerrar antes de que llegaran dejaba el modal montado.\n\t\treturn ReactDOM.createPortal(\n\t\t\t<AnimatePresence onExitComplete={release}>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>,\n\t\t\thost,\n\t\t);\n\t},\n);\nModal.displayName = \"ModalPortalComponent\";\n\nexport const ModalHeader = ({\n\ttitle,\n\tshowCloseButton = true,\n\tdisabled = false,\n\tonClick,\n\tclassName,\n\tstyle,\n\tchildren,\n\tid,\n\t...props\n}: ModalHeaderType) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div className={cn(\"modal-custom-header-container w-full relative\")} style={style}>\n\t\t\t<div id={id || context?.headerId} className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>\n\n\t\t\t{showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-9 h-9 min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const ModalBody = forwardRef(({ children, className = \"\", style, height, id }: ModalBodyType, ref: Ref<HTMLDivElement>) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div\n\t\t\tid={id || context?.bodyId}\n\t\t\tclassName={cn(\"modal-custom-body relative flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)}\n\t\t\tref={ref}\n\t\t\tstyle={{ ...style, height: height ? `${height}px` : \"auto\" }}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n});\nModalBody.displayName = \"ModalBodyPortalComponent\";\n\nexport const ModalFooter = ({ children, className, style }: ModalFooterType) => {\n\treturn (\n\t\t<div className={cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"modal-DxcmrFYt.js","names":["{\n\t\t\tmodalId: propModalId,\n\t\t\tisShow,\n\t\t\tisVisible,\n\t\t\tchildren,\n\t\t\tstyle,\n\t\t\tclassNameOverlay = \"\",\n\t\t\tstyleContainer,\n\t\t\tonClickOutside,\n\t\t\tclassNameModalContent = \"\",\n\t\t\tclassNameDialog = \"modal-custom-dialog\",\n\t\t\tclassNameContent = \"\",\n\t\t\tbackdrop = \"opaque\",\n\t\t\tsize = \"md\",\n\t\t\tisKeyboardDismissDisabled = false,\n\t\t\tshouldBlockScroll = true,\n\t\t\tshadow = \"md\",\n\t\t\tradius = \"xl\",\n\t\t\tplacement = \"center\",\n\t\t}: ModalType","classNameOverlay = \"\"","classNameModalContent = \"\"","classNameDialog = \"modal-custom-dialog\"","classNameContent = \"\"","backdrop = \"opaque\"","size = \"md\"","isKeyboardDismissDisabled = false","shouldBlockScroll = true","shadow = \"md\"","radius = \"xl\"","placement = \"center\"","{\n\t\t\t\theaderId: `${modalId}-header`,\n\t\t\t\tbodyId: `${modalId}-body`,\n\t\t\t}","`${modalId}-header`","`${modalId}-body`","useMemo(\n\t\t\t() => ({\n\t\t\t\theaderId: `${modalId}-header`,\n\t\t\t\tbodyId: `${modalId}-body`,\n\t\t\t}),\n\t\t\t[modalId],\n\t\t)","() => {\n\t\t\t\tif (!isKeyboardDismissDisabled) onClickOutside?.();\n\t\t\t}","{\n\t\t\tisActive: isShow && isVisible,\n\t\t\thost,\n\t\t\tshouldBlockScroll,\n\t\t\tbodyClassName: \"modal-open\",\n\t\t\tonEscape: () => {\n\t\t\t\tif (!isKeyboardDismissDisabled) onClickOutside?.();\n\t\t\t},\n\t\t}","isShow && isVisible","ReactDOM.createPortal(\n\t\t\t<AnimatePresence onExitComplete={release}>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>,\n\t\t\thost,\n\t\t)","isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)","m.div","ModalContext.Provider","<AnimatePresence onExitComplete={release}>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>","showCloseButton = true","disabled = false","{\n\ttitle,\n\tshowCloseButton = true,\n\tdisabled = false,\n\tonClick,\n\tclassName,\n\tstyle,\n\tchildren,\n\tid,\n\t...props\n}: ModalHeaderType","cn(\"modal-custom-header-container w-full relative\")","cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)","children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>","<div id={id || context?.headerId} className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>","id || context?.headerId","showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-9 h-9 min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)","<div className={cn(\"modal-custom-header-container w-full relative\")} style={style}>\n\t\t\t<div id={id || context?.headerId} className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>\n\n\t\t\t{showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-9 h-9 min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>","{ children, className = \"\", style, height, id }: ModalBodyType","className = \"\"","cn(\"modal-custom-body relative flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)","{ ...style, height: height ? `${height}px` : \"auto\" }","height ? `${height}px` : \"auto\"","<div\n\t\t\tid={id || context?.bodyId}\n\t\t\tclassName={cn(\"modal-custom-body relative flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)}\n\t\t\tref={ref}\n\t\t\tstyle={{ ...style, height: height ? `${height}px` : \"auto\" }}\n\t\t>\n\t\t\t{children}\n\t\t</div>","id || context?.bodyId","{ children, className, style }: ModalFooterType","cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)","<div className={cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)} style={style}>\n\t\t\t{children}\n\t\t</div>","_c","_Fragment"],"sources":["../../src/components/transition/transition-utils.ts","../../src/components/modal/modal.tsx"],"sourcesContent":["import type { Target, TargetAndTransition, Transition } from \"motion/react\";\n\ntype WithMotionState<P> = Partial<Record<\"enter\" | \"exit\", P>>;\n\nexport type TransitionConfig = WithMotionState<Transition>;\n\nexport type TransitionEndConfig = WithMotionState<Target>;\n\nexport type TransitionProperties = {\n\t/**\n\t * Custom `transition` definition for `enter` and `exit`\n\t */\n\ttransition?: TransitionConfig;\n\t/**\n\t * Custom `transitionEnd` definition for `enter` and `exit`\n\t */\n\ttransitionEnd?: TransitionEndConfig;\n};\n\ntype TargetResolver<P = {}> = (props: P & TransitionProperties) => TargetAndTransition;\n\ntype Variant<P = {}> = TargetAndTransition | TargetResolver<P>;\n\nexport type Variants<P = {}> = Record<\n\tstring,\n\t{\n\t\tenter: Variant<P>;\n\t\texit: Variant<P>;\n\t\tinitial?: Variant<P>;\n\t}\n>;\n\nexport const TRANSITION_EASINGS = {\n\tease: [0.36, 0.66, 0.4, 1],\n\teaseIn: [0.4, 0, 1, 1],\n\teaseOut: [0, 0, 0.2, 1],\n\teaseInOut: [0.4, 0, 0.2, 1],\n\tspring: [0.155, 1.105, 0.295, 1.12],\n\tspringOut: [0.57, -0.15, 0.62, 0.07],\n\tsoftSpring: [0.16, 1.11, 0.3, 1.02],\n} as const;\n\nexport const TRANSITION_DEFAULTS = {\n\tenter: {\n\t\tduration: 0.2,\n\t\tease: TRANSITION_EASINGS.easeOut,\n\t},\n\texit: {\n\t\tduration: 0.1,\n\t\tease: TRANSITION_EASINGS.easeIn,\n\t},\n} as const;\n\nexport const TRANSITION_VARIANTS: Variants = {\n\tscaleSpring: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.2,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.85)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscaleSpringOpacity: {\n\t\tinitial: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.8)\",\n\t\t},\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransform: \"scale(1)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransform: \"scale(0.96)\",\n\t\t\ttransition: {\n\t\t\t\ttype: \"easeOut\" as any,\n\t\t\t\tbounce: 0,\n\t\t\t\tduration: 0.15,\n\t\t\t},\n\t\t},\n\t},\n\tscale: {\n\t\tenter: { scale: 1 },\n\t\texit: { scale: 0.95 },\n\t},\n\tscaleFadeIn: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.25,\n\t\t\t\tease: TRANSITION_EASINGS.easeIn,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(0.95)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.2,\n\t\t\t\tease: TRANSITION_EASINGS.easeOut,\n\t\t\t},\n\t\t},\n\t},\n\tscaleInOut: {\n\t\tenter: {\n\t\t\ttransform: \"scale(1)\",\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\ttransform: \"scale(1.03)\",\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tfade: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.4,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.3,\n\t\t\t\tease: TRANSITION_EASINGS.ease,\n\t\t\t},\n\t\t},\n\t},\n\tmodal: {\n\t\tenter: {\n\t\t\tscale: 1,\n\t\t\topacity: 1,\n\t\t\ttransition: {\n\t\t\t\ttype: \"spring\",\n\t\t\t\tstiffness: 400,\n\t\t\t\tdamping: 40,\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\tscale: 0.96,\n\t\t\topacity: 0,\n\t\t\ttransition: {\n\t\t\t\tduration: 0.2,\n\t\t\t\tease: TRANSITION_EASINGS.easeOut,\n\t\t\t},\n\t\t},\n\t},\n\tcollapse: {\n\t\tenter: {\n\t\t\topacity: 1,\n\t\t\theight: \"auto\",\n\t\t\ttransition: {\n\t\t\t\theight: {\n\t\t\t\t\ttype: \"spring\",\n\t\t\t\t\tbounce: 0,\n\t\t\t\t\tduration: 0.3,\n\t\t\t\t},\n\t\t\t\topacity: {\n\t\t\t\t\tease: \"ease\" as any,\n\t\t\t\t\tduration: 0.4,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\texit: {\n\t\t\topacity: 0,\n\t\t\theight: 0,\n\t\t\ttransition: {\n\t\t\t\tease: \"ease\" as any,\n\t\t\t\tduration: 0.3,\n\t\t\t},\n\t\t},\n\t},\n};\n","\"use client\";\n\nimport { useOverlayHost, useOverlayLayer } from \"@/lib/overlay/use-overlay\";\nimport { cn } from \"@/lib/utils\";\nimport { cva } from \"class-variance-authority\";\nimport { AnimatePresence, domAnimation, LazyMotion, m } from \"motion/react\";\nimport { createContext, forwardRef, useContext, useId, useMemo, type Ref } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Button } from \"../button\";\nimport { TRANSITION_VARIANTS } from \"../transition/transition-utils\";\nimport type { ModalBodyType, ModalFooterType, ModalHeaderType, ModalType } from \"./modal.type\";\n\nconst ModalContext = createContext<{ headerId: string; bodyId: string } | null>(null);\n\nconst backdropVariants = cva(\"\", {\n\tvariants: {\n\t\tbackdrop: {\n\t\t\ttransparent: \"bg-transparent\",\n\t\t\topaque: \"bg-black/50\",\n\t\t\tblur: \"backdrop-blur-md backdrop-saturate-150 bg-overlay/30\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tbackdrop: \"opaque\",\n\t},\n});\n\nconst sizeVariants = cva(\"\", {\n\tvariants: {\n\t\tsize: {\n\t\t\t\"xs\": \"max-w-xs\",\n\t\t\t\"sm\": \"max-w-sm\",\n\t\t\t\"md\": \"max-w-md\",\n\t\t\t\"lg\": \"max-w-lg\",\n\t\t\t\"xl\": \"max-w-xl\",\n\t\t\t\"2xl\": \"max-w-2xl\",\n\t\t\t\"3xl\": \"max-w-3xl\",\n\t\t\t\"4xl\": \"max-w-4xl\",\n\t\t\t\"5xl\": \"max-w-5xl\",\n\t\t\t\"full\": \"my-0 mx-0 sm:mx-0 sm:my-0 max-w-full h-[100dvh] min-h-[100dvh] !rounded-none\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: \"md\",\n\t},\n});\n\nconst radiusVariants = cva(\"\", {\n\tvariants: {\n\t\tradius: {\n\t\t\t\"none\": \"rounded-none\",\n\t\t\t\"sm\": \"rounded-sm\",\n\t\t\t\"md\": \"rounded-md\",\n\t\t\t\"lg\": \"rounded-lg\",\n\t\t\t\"xl\": \"rounded-xl\",\n\t\t\t\"2xl\": \"rounded-2xl\",\n\t\t\t\"3xl\": \"rounded-3xl\",\n\t\t\t\"full\": \"rounded-full\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tradius: \"xl\",\n\t},\n});\n\nconst placementVariants = cva(\"\", {\n\tvariants: {\n\t\tplacement: {\n\t\t\tcenter: \"fixed top-[50%] left-[50%] translate-x-[-50%] translate-y-[-50%]\",\n\t\t\ttop: \"fixed top-0 left-[50%] translate-x-[-50%] sm:mt-8\",\n\t\t\tbottom: \"fixed bottom-0 left-[50%] translate-x-[-50%] sm:mb-8\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tplacement: \"center\",\n\t},\n});\n\nconst shadowVariants = cva(\"\", {\n\tvariants: {\n\t\tshadow: {\n\t\t\tnone: \"shadow-none\",\n\t\t\tsm: \"shadow-sm\",\n\t\t\tmd: \"shadow-md\",\n\t\t\tlg: \"shadow-lg\",\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tshadow: \"md\",\n\t},\n});\n\nexport const Modal = forwardRef(\n\t(\n\t\t{\n\t\t\tmodalId: propModalId,\n\t\t\tisShow,\n\t\t\tisVisible,\n\t\t\tchildren,\n\t\t\tstyle,\n\t\t\tclassNameOverlay = \"\",\n\t\t\tstyleContainer,\n\t\t\tonClickOutside,\n\t\t\tclassNameModalContent = \"\",\n\t\t\tclassNameDialog = \"modal-custom-dialog\",\n\t\t\tclassNameContent = \"\",\n\t\t\tbackdrop = \"opaque\",\n\t\t\tsize = \"md\",\n\t\t\tisKeyboardDismissDisabled = false,\n\t\t\tshouldBlockScroll = true,\n\t\t\tshadow = \"md\",\n\t\t\tradius = \"xl\",\n\t\t\tplacement = \"center\",\n\t\t}: ModalType,\n\t\tref: Ref<HTMLDivElement>,\n\t) => {\n\t\tconst uniqueId = useId();\n\t\tconst modalId = propModalId || uniqueId;\n\n\t\tconst { headerId, bodyId } = useMemo(\n\t\t\t() => ({\n\t\t\t\theaderId: `${modalId}-header`,\n\t\t\t\tbodyId: `${modalId}-body`,\n\t\t\t}),\n\t\t\t[modalId],\n\t\t);\n\n\t\t// Nodo propio al final del body: el último overlay abierto (Modal o Drawer) queda encima del resto.\n\t\tconst { host, release } = useOverlayHost(isShow);\n\n\t\t// Pila compartida: Escape solo cierra el overlay de arriba, el scroll se bloquea con contador y el fondo queda inert.\n\t\tuseOverlayLayer({\n\t\t\tisActive: isShow && isVisible,\n\t\t\thost,\n\t\t\tshouldBlockScroll,\n\t\t\tbodyClassName: \"modal-open\",\n\t\t\tonEscape: () => {\n\t\t\t\tif (!isKeyboardDismissDisabled) onClickOutside?.();\n\t\t\t},\n\t\t});\n\n\t\tif (!host) return null;\n\n\t\t// Features síncronos: cargados en diferido, cerrar antes de que llegaran dejaba el modal montado.\n\t\treturn ReactDOM.createPortal(\n\t\t\t<AnimatePresence onExitComplete={release}>\n\t\t\t\t{isShow && (\n\t\t\t\t\t<LazyMotion features={domAnimation}>\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-overlay\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.fade}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\"fixed inset-0 z-50\",\n\t\t\t\t\t\t\t\t\tbackdropVariants({ backdrop }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t\tclassNameOverlay,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\tonClick={onClickOutside}\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<m.div\n\t\t\t\t\t\t\t\tkey=\"modal-content\"\n\t\t\t\t\t\t\t\tinitial=\"exit\"\n\t\t\t\t\t\t\t\tanimate=\"enter\"\n\t\t\t\t\t\t\t\texit=\"exit\"\n\t\t\t\t\t\t\t\tvariants={TRANSITION_VARIANTS.modal}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t// w-full: un `fixed` con left-[50%] sin ancho se encoge al contenido (tope 50vw) y anula los max-w de size.\n\t\t\t\t\t\t\t\t\t// pointer-events-none: este contenedor ocupa todo el ancho a la altura del diálogo y tapa el overlay; sin\n\t\t\t\t\t\t\t\t\t// esto, un clic a los costados del diálogo no llega al overlay y onClickOutside no se dispara.\n\t\t\t\t\t\t\t\t\t\"pointer-events-none z-50 flex w-full items-center justify-center\",\n\t\t\t\t\t\t\t\t\tsize === \"full\" ? \"px-0\" : \"px-0\",\n\t\t\t\t\t\t\t\t\tclassNameModalContent,\n\t\t\t\t\t\t\t\t\tplacementVariants({ placement }),\n\t\t\t\t\t\t\t\t\tisVisible ? \"visible\" : \"invisible\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\t\t\tid={modalId}\n\t\t\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\t\t\taria-labelledby={headerId}\n\t\t\t\t\t\t\t\t\taria-describedby={bodyId}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t// El diálogo vuelve a recibir clics (el contenedor de arriba los deja pasar al overlay).\n\t\t\t\t\t\t\t\t\t\t\"pointer-events-auto w-full rounded-xl shadow-lg bg-content1\",\n\t\t\t\t\t\t\t\t\t\tsizeVariants({ size }),\n\t\t\t\t\t\t\t\t\t\tradiusVariants({ radius }),\n\t\t\t\t\t\t\t\t\t\tshadowVariants({ shadow }),\n\t\t\t\t\t\t\t\t\t\tclassNameDialog,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ModalContext.Provider value={{ headerId, bodyId }}>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"modal-custom-content w-full flex flex-col max-h-[calc(100vh-4rem)]\", classNameContent)}\n\t\t\t\t\t\t\t\t\t\t\tstyle={styleContainer}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</ModalContext.Provider>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</m.div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t</LazyMotion>\n\t\t\t\t)}\n\t\t\t</AnimatePresence>,\n\t\t\thost,\n\t\t);\n\t},\n);\nModal.displayName = \"ModalPortalComponent\";\n\nexport const ModalHeader = ({\n\ttitle,\n\tshowCloseButton = true,\n\tdisabled = false,\n\tonClick,\n\tclassName,\n\tstyle,\n\tchildren,\n\tid,\n\t...props\n}: ModalHeaderType) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div className={cn(\"modal-custom-header-container w-full relative\")} style={style}>\n\t\t\t<div id={id || context?.headerId} className={cn(\"w-full flex py-4 px-6 flex-initial text-large font-semibold\", className)} {...props}>\n\t\t\t\t{children || <header className=\"modal-custom-title text-lg leading-none font-semibold\">{title}</header>}\n\t\t\t</div>\n\n\t\t\t{showCloseButton && (\n\t\t\t\t<div className=\"absolute top-2.5 right-2.5 disabled:pointer-events-none z-10\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tisIconOnly\n\t\t\t\t\t\tvariant=\"light\"\n\t\t\t\t\t\tradius=\"full\"\n\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tclassName=\"p-0 w-9 h-9 min-w-auto bg-default-100 hover:bg-default-200 text-default-500 hover:text-default-600 dark:bg-default-100 dark:hover:bg-default-200 dark:text-default-500 dark:hover:text-default-600 disabled:opacity-50 disabled:pointer-events-none\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg width=\"20\" height=\"20\" fill=\"currentColor\" role=\"img\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path fill=\"none\" d=\"M0 0h21v21H0z\"></path>\n\t\t\t\t\t\t\t<path d=\"m12.12 10 4.07-4.06a1.5 1.5 0 1 0-2.11-2.12L10 7.88 5.94 3.81a1.5 1.5 0 1 0-2.12 2.12L7.88 10l-4.07 4.06a1.5 1.5 0 0 0 0 2.12 1.51 1.51 0 0 0 2.13 0L10 12.12l4.06 4.07a1.45 1.45 0 0 0 1.06.44 1.5 1.5 0 0 0 1.06-2.56Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport const ModalBody = forwardRef(({ children, className = \"\", style, height, id }: ModalBodyType, ref: Ref<HTMLDivElement>) => {\n\tconst context = useContext(ModalContext);\n\treturn (\n\t\t<div\n\t\t\tid={id || context?.bodyId}\n\t\t\tclassName={cn(\"modal-custom-body relative flex flex-1 flex-col gap-3 px-6 overflow-y-auto\", className)}\n\t\t\tref={ref}\n\t\t\tstyle={{ ...style, height: height ? `${height}px` : \"auto\" }}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n});\nModalBody.displayName = \"ModalBodyPortalComponent\";\n\nexport const ModalFooter = ({ children, className, style }: ModalFooterType) => {\n\treturn (\n\t\t<div className={cn(\"modal-custom-footer flex flex-col-reverse px-6 py-3 gap-2 sm:flex-row sm:justify-end mt-auto\", className)} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { n as validatePatternInput } from "./pattern-CIrj7hku.js";
2
2
  import { t as cn } from "./utils-C_uf36nf.js";
3
3
  import { t as LabelError } from "./label-error-Cst90HIF.js";
4
- import { i as ModalHeader, t as Modal } from "./modal-BAPR6qV0.js";
4
+ import { i as ModalHeader, t as Modal } from "./modal-DxcmrFYt.js";
5
5
  import { c } from "react/compiler-runtime";
6
6
  import * as React$1 from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -932,4 +932,4 @@ function ScrollBar(t0) {
932
932
  //#endregion
933
933
  export { CommandEmpty as a, CommandItem as c, CommandShortcut as d, Popover as f, Input as g, PopoverTrigger as h, CommandDialog as i, CommandList as l, PopoverContent as m, ScrollBar as n, CommandGroup as o, PopoverAnchor as p, Command$1 as r, CommandInput as s, ScrollArea as t, CommandSeparator as u };
934
934
 
935
- //# sourceMappingURL=scroll-area-CB6KTpi4.js.map
935
+ //# sourceMappingURL=scroll-area-BQsrpwTg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area-CB6KTpi4.js","names":["type = \"text\"","isErrorText = true","required = false","isClearable = false","label && (\n\t\t\t\t<label htmlFor={resolvedId} className={labelClass}>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)","\"w-full relative\"","startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>","<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>","isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null","endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>","twMerge(\"w-full relative flex flex-col\", classNameContainer)","cn(inputStyles({ size, radius }), paddingClass, className)","cn(\"form-control-label block font-normal text-sm text-foreground dark:text-default-600 mb-1\", {\n\t\t\"text-danger\": isInvalid,\n\t})","(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst val = e.target.value;\n\t\tif (pattern && !validatePatternInput(pattern, val)) return;\n\t\tonChange?.(e);\n\t}","(e: React.MouseEvent<HTMLDivElement>) => {\n\t\te.preventDefault();\n\t\tonClear?.();\n\t}","(e: React.MouseEvent<HTMLInputElement>) => {\n\t\te.preventDefault();\n\t\tif (!readOnly) return onClickInput && onClickInput({ e });\n\t}","!disabled ? { \"aria-invalid\": isInvalid } : {}","isControlled ? { value } : { defaultValue }","<div className=\"w-full relative\">\n\t\t\t\t{startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>}\n\t\t\t\t<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>}\n\t\t\t</div>","!disabled && error && touched && isErrorText && <LabelError text={error} />","<div className={twMerge(\"w-full relative flex flex-col\", classNameContainer)}>\n\t\t\t{label && (\n\t\t\t\t<label htmlFor={resolvedId} className={labelClass}>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t<div className=\"w-full relative\">\n\t\t\t\t{startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>}\n\t\t\t\t<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>}\n\t\t\t</div>\n\t\t\t{!disabled && error && touched && isErrorText && <LabelError text={error} />}\n\t\t</div>","React","_c","clsx","{ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>","<PopoverPrimitive.Root data-slot=\"popover\" {...props} />","PopoverPrimitive.Root","{ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>","<PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />","PopoverPrimitive.Trigger","align = \"center\"","sideOffset = 4","{ className, align = \"center\", sideOffset = 4, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>","cn(\n\t\t\t\t\t\"bg-content1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl shadow-medium outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)","<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\talign={align}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-content1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl shadow-medium outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>","PopoverPrimitive.Portal","PopoverPrimitive.Content","{ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>","<PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />","PopoverPrimitive.Anchor","_c","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive>","cn(\"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\", className)","<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn(\"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\", className)}\n\t\t\t{...props}\n\t\t/>","{\n\topen = false,\n\tonOpenChange,\n\ttitle = \"Command Palette\",\n\tdescription = \"Search for a command to run...\",\n\tchildren,\n\tclassName,\n\tshowCloseButton = true,\n}: CommandDialogProps","open = false","title = \"Command Palette\"","description = \"Search for a command to run...\"","showCloseButton = true","() => onOpenChange?.(false)","cn(\"overflow-hidden\", className)","<h2>{title}</h2>","<p>{description}</p>","<ModalHeader className=\"sr-only\" showCloseButton={showCloseButton} onClick={handleClose}>\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t</ModalHeader>","<Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n\t\t\t\t{children}\n\t\t\t</Command>","<Modal classNameDialog={cn(\"overflow-hidden\", className)} isShow={open} isVisible={open} size=\"lg\" onClickOutside={handleClose}>\n\t\t\t<ModalHeader className=\"sr-only\" showCloseButton={showCloseButton} onClick={handleClose}>\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t</ModalHeader>\n\t\t\t<Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n\t\t\t\t{children}\n\t\t\t</Command>\n\t\t</Modal>","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>","<SearchIcon className=\"size-4 shrink-0 opacity-50\" />","cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)","<div data-slot=\"command-input-wrapper\" className=\"flex h-9 items-center gap-2 border-b border-border px-3\">\n\t\t\t<SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n\t\t\t<CommandPrimitive.Input\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>","CommandPrimitive.Input","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>","cn(\"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\", className)","<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn(\"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\", className)}\n\t\t\t{...props}\n\t\t/>","CommandPrimitive.List","{ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>","<CommandPrimitive.Empty data-slot=\"command-empty\" className=\"py-6 text-center text-sm\" {...props} />","CommandPrimitive.Empty","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>","cn(\n\t\t\t\t\"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n\t\t\t\tclassName,\n\t\t\t)","<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>","CommandPrimitive.Group","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>","cn(\"bg-border -mx-1 h-px\", className)","<CommandPrimitive.Separator data-slot=\"command-separator\" className={cn(\"bg-border -mx-1 h-px\", className)} {...props} />","CommandPrimitive.Separator","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>","cn(\n\t\t\t\t\"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)","<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>","CommandPrimitive.Item","{ className, ...props }: React.ComponentProps<\"span\">","cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)","<span data-slot=\"command-shortcut\" className={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)} {...props} />","Command","_c","CommandPrimitive","{ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>","cn(\"relative\", className)","<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>","ScrollAreaPrimitive.Viewport","<ScrollBar />","<ScrollAreaPrimitive.Corner />","ScrollAreaPrimitive.Corner","<ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn(\"relative\", className)} {...props}>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>","ScrollAreaPrimitive.Root","orientation = \"vertical\"","{ className, orientation = \"vertical\", ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>","cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)","orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\"","orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\"","<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />","ScrollAreaPrimitive.ScrollAreaThumb","<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>","ScrollAreaPrimitive.ScrollAreaScrollbar","_c"],"sources":["../../src/components/ui/input.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/command.tsx","../../src/components/ui/scroll-area.tsx"],"sourcesContent":["import { validatePatternInput, type PatternInputType } from \"@/functions\";\nimport { cn } from \"@/lib/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport clsx from \"clsx\";\nimport * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { LabelError } from \"./label-error\";\n\nconst inputStyles = cva(\n\t[\n\t\t\"bg-white\",\n\t\t\"transition duration-250 ease appearance-none file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex w-full min-w-0 border px-3 py-1 text-base transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-primary focus-visible:ring-primary/20 focus-visible:ring-[3px] aria-invalid:ring-danger/20 dark:aria-invalid:ring-danger/40 font-normal aria-invalid:border-danger dark:text-foreground\",\n\t],\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-9 text-sm\",\n\t\t\t\tmd: \"h-input-default text-sm\",\n\t\t\t\tlg: \"h-10 text-base\",\n\t\t\t},\n\t\t\tradius: {\n\t\t\t\tnone: \"rounded-none\",\n\t\t\t\tsm: \"rounded-sm\",\n\t\t\t\tmd: \"rounded-md\",\n\t\t\t\tlg: \"rounded-lg\",\n\t\t\t\tinput: \"rounded-input\",\n\t\t\t\tfull: \"rounded-full\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t\tradius: \"input\",\n\t\t},\n\t},\n);\n\nexport type InputProps = {\n\tid?: string;\n\ttype?: \"text\" | \"date\" | \"number\" | \"email\" | \"password\" | \"url\" | \"tel\";\n\terror?: string;\n\ttouched?: boolean;\n\tisErrorText?: boolean;\n\tclassNameContainer?: string;\n\tstartContent?: React.ReactNode;\n\tendContent?: React.ReactNode;\n\tpattern?: PatternInputType;\n\tonClear?: () => void;\n\tlabel?: string;\n\trequired?: boolean;\n\tisClearable?: boolean;\n\tstartClassName?: string;\n\tendClassName?: string;\n\tonClickInput?: ({ e }: { e: React.MouseEvent<HTMLInputElement> }) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> &\n\tVariantProps<typeof inputStyles>;\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n\tconst {\n\t\tid,\n\t\ttype = \"text\",\n\t\tvalue,\n\t\tdefaultValue,\n\t\tclassName,\n\t\tclassNameContainer,\n\t\tstartClassName,\n\t\tendClassName,\n\t\tsize,\n\t\tradius,\n\t\tstartContent,\n\t\tendContent,\n\t\tdisabled,\n\t\terror,\n\t\ttouched,\n\t\tpattern,\n\t\tisErrorText = true,\n\t\tlabel,\n\t\trequired = false,\n\t\tisClearable = false,\n\t\treadOnly,\n\t\tonChange,\n\t\tonClear,\n\t\tonClickInput,\n\t\t...rest\n\t} = props;\n\n\tconst inputId = React.useId();\n\tconst resolvedId = id || inputId;\n\tconst isControlled = value !== undefined;\n\n\tconst isInvalid = !disabled && !!error && touched;\n\n\tconst iconClass = clsx(\"absolute top-0 h-full flex items-center cursor-pointer px-1.5\", {\n\t\t\"text-red-700\": isInvalid,\n\t\t\"text-default-400\": disabled,\n\t\t\"text-green-700\": !error && touched,\n\t\t\"text-default-500\": !isInvalid,\n\t\t\"disabled-content-icon-input\": disabled,\n\t\t\"invalid-content-icon-input\": isInvalid,\n\t\t\"valid-content-icon-input\": !error && touched,\n\t});\n\n\tconst paddingClass = clsx(startContent && \"pl-8\", !startContent && \"pl-2.5\", endContent && \"pr-8\", !endContent && \"pr-2.5\");\n\n\tconst inputClass = cn(inputStyles({ size, radius }), paddingClass, className);\n\n\tconst labelClass = cn(\"form-control-label block font-normal text-sm text-foreground dark:text-default-600 mb-1\", {\n\t\t\"text-danger\": isInvalid,\n\t});\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst val = e.target.value;\n\t\tif (pattern && !validatePatternInput(pattern, val)) return;\n\t\tonChange?.(e);\n\t};\n\n\tconst handleClear = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\te.preventDefault();\n\t\tonClear?.();\n\t};\n\n\tconst handleClickInput = (e: React.MouseEvent<HTMLInputElement>) => {\n\t\te.preventDefault();\n\t\tif (!readOnly) return onClickInput && onClickInput({ e });\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"w-full relative flex flex-col\", classNameContainer)}>\n\t\t\t{label && (\n\t\t\t\t<label htmlFor={resolvedId} className={labelClass}>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t<div className=\"w-full relative\">\n\t\t\t\t{startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>}\n\t\t\t\t<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>}\n\t\t\t</div>\n\t\t\t{!disabled && error && touched && isErrorText && <LabelError text={error} />}\n\t\t</div>\n\t);\n});\n\nInput.displayName = \"Input\";\n","import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n\treturn <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n\treturn <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({ className, align = \"center\", sideOffset = 4, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n\treturn (\n\t\t<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\talign={align}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-content1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl shadow-medium outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>\n\t);\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n\treturn <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n","import { Command as CommandPrimitive } from \"cmdk\";\nimport { SearchIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Modal, ModalHeader } from \"@/components/modal\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n\treturn (\n\t\t<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn(\"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport interface CommandDialogProps {\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\ttitle?: string;\n\tdescription?: string;\n\tclassName?: string;\n\tshowCloseButton?: boolean;\n\tchildren?: React.ReactNode;\n}\n\nfunction CommandDialog({\n\topen = false,\n\tonOpenChange,\n\ttitle = \"Command Palette\",\n\tdescription = \"Search for a command to run...\",\n\tchildren,\n\tclassName,\n\tshowCloseButton = true,\n}: CommandDialogProps) {\n\tconst handleClose = () => onOpenChange?.(false);\n\n\treturn (\n\t\t<Modal classNameDialog={cn(\"overflow-hidden\", className)} isShow={open} isVisible={open} size=\"lg\" onClickOutside={handleClose}>\n\t\t\t<ModalHeader className=\"sr-only\" showCloseButton={showCloseButton} onClick={handleClose}>\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t</ModalHeader>\n\t\t\t<Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n\t\t\t\t{children}\n\t\t\t</Command>\n\t\t</Modal>\n\t);\n}\n\nfunction CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n\treturn (\n\t\t<div data-slot=\"command-input-wrapper\" className=\"flex h-9 items-center gap-2 border-b border-border px-3\">\n\t\t\t<SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n\t\t\t<CommandPrimitive.Input\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n\treturn (\n\t\t<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn(\"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n\treturn <CommandPrimitive.Empty data-slot=\"command-empty\" className=\"py-6 text-center text-sm\" {...props} />;\n}\n\nfunction CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n\treturn (\n\t\t<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n\treturn <CommandPrimitive.Separator data-slot=\"command-separator\" className={cn(\"bg-border -mx-1 h-px\", className)} {...props} />;\n}\n\nfunction CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n\treturn (\n\t\t<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n\treturn <span data-slot=\"command-shortcut\" className={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)} {...props} />;\n}\n\nexport { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };\n","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn(\"relative\", className)} {...props}>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({ className, orientation = \"vertical\", ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":"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"}
1
+ {"version":3,"file":"scroll-area-BQsrpwTg.js","names":["type = \"text\"","isErrorText = true","required = false","isClearable = false","label && (\n\t\t\t\t<label htmlFor={resolvedId} className={labelClass}>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)","\"w-full relative\"","startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>","<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>","isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null","endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>","twMerge(\"w-full relative flex flex-col\", classNameContainer)","cn(inputStyles({ size, radius }), paddingClass, className)","cn(\"form-control-label block font-normal text-sm text-foreground dark:text-default-600 mb-1\", {\n\t\t\"text-danger\": isInvalid,\n\t})","(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst val = e.target.value;\n\t\tif (pattern && !validatePatternInput(pattern, val)) return;\n\t\tonChange?.(e);\n\t}","(e: React.MouseEvent<HTMLDivElement>) => {\n\t\te.preventDefault();\n\t\tonClear?.();\n\t}","(e: React.MouseEvent<HTMLInputElement>) => {\n\t\te.preventDefault();\n\t\tif (!readOnly) return onClickInput && onClickInput({ e });\n\t}","!disabled ? { \"aria-invalid\": isInvalid } : {}","isControlled ? { value } : { defaultValue }","<div className=\"w-full relative\">\n\t\t\t\t{startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>}\n\t\t\t\t<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>}\n\t\t\t</div>","!disabled && error && touched && isErrorText && <LabelError text={error} />","<div className={twMerge(\"w-full relative flex flex-col\", classNameContainer)}>\n\t\t\t{label && (\n\t\t\t\t<label htmlFor={resolvedId} className={labelClass}>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t<div className=\"w-full relative\">\n\t\t\t\t{startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>}\n\t\t\t\t<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>}\n\t\t\t</div>\n\t\t\t{!disabled && error && touched && isErrorText && <LabelError text={error} />}\n\t\t</div>","React","_c","clsx","{ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>","<PopoverPrimitive.Root data-slot=\"popover\" {...props} />","PopoverPrimitive.Root","{ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>","<PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />","PopoverPrimitive.Trigger","align = \"center\"","sideOffset = 4","{ className, align = \"center\", sideOffset = 4, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>","cn(\n\t\t\t\t\t\"bg-content1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl shadow-medium outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)","<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\talign={align}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-content1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl shadow-medium outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>","PopoverPrimitive.Portal","PopoverPrimitive.Content","{ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>","<PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />","PopoverPrimitive.Anchor","_c","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive>","cn(\"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\", className)","<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn(\"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\", className)}\n\t\t\t{...props}\n\t\t/>","{\n\topen = false,\n\tonOpenChange,\n\ttitle = \"Command Palette\",\n\tdescription = \"Search for a command to run...\",\n\tchildren,\n\tclassName,\n\tshowCloseButton = true,\n}: CommandDialogProps","open = false","title = \"Command Palette\"","description = \"Search for a command to run...\"","showCloseButton = true","() => onOpenChange?.(false)","cn(\"overflow-hidden\", className)","<h2>{title}</h2>","<p>{description}</p>","<ModalHeader className=\"sr-only\" showCloseButton={showCloseButton} onClick={handleClose}>\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t</ModalHeader>","<Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n\t\t\t\t{children}\n\t\t\t</Command>","<Modal classNameDialog={cn(\"overflow-hidden\", className)} isShow={open} isVisible={open} size=\"lg\" onClickOutside={handleClose}>\n\t\t\t<ModalHeader className=\"sr-only\" showCloseButton={showCloseButton} onClick={handleClose}>\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t</ModalHeader>\n\t\t\t<Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n\t\t\t\t{children}\n\t\t\t</Command>\n\t\t</Modal>","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>","<SearchIcon className=\"size-4 shrink-0 opacity-50\" />","cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)","<div data-slot=\"command-input-wrapper\" className=\"flex h-9 items-center gap-2 border-b border-border px-3\">\n\t\t\t<SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n\t\t\t<CommandPrimitive.Input\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>","CommandPrimitive.Input","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>","cn(\"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\", className)","<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn(\"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\", className)}\n\t\t\t{...props}\n\t\t/>","CommandPrimitive.List","{ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>","<CommandPrimitive.Empty data-slot=\"command-empty\" className=\"py-6 text-center text-sm\" {...props} />","CommandPrimitive.Empty","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>","cn(\n\t\t\t\t\"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n\t\t\t\tclassName,\n\t\t\t)","<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>","CommandPrimitive.Group","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>","cn(\"bg-border -mx-1 h-px\", className)","<CommandPrimitive.Separator data-slot=\"command-separator\" className={cn(\"bg-border -mx-1 h-px\", className)} {...props} />","CommandPrimitive.Separator","{ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>","cn(\n\t\t\t\t\"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)","<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>","CommandPrimitive.Item","{ className, ...props }: React.ComponentProps<\"span\">","cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)","<span data-slot=\"command-shortcut\" className={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)} {...props} />","Command","_c","CommandPrimitive","{ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>","cn(\"relative\", className)","<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>","ScrollAreaPrimitive.Viewport","<ScrollBar />","<ScrollAreaPrimitive.Corner />","ScrollAreaPrimitive.Corner","<ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn(\"relative\", className)} {...props}>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>","ScrollAreaPrimitive.Root","orientation = \"vertical\"","{ className, orientation = \"vertical\", ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>","cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)","orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\"","orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\"","<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />","ScrollAreaPrimitive.ScrollAreaThumb","<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>","ScrollAreaPrimitive.ScrollAreaScrollbar","_c"],"sources":["../../src/components/ui/input.tsx","../../src/components/ui/popover.tsx","../../src/components/ui/command.tsx","../../src/components/ui/scroll-area.tsx"],"sourcesContent":["import { validatePatternInput, type PatternInputType } from \"@/functions\";\nimport { cn } from \"@/lib/utils\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport clsx from \"clsx\";\nimport * as React from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { LabelError } from \"./label-error\";\n\nconst inputStyles = cva(\n\t[\n\t\t\"bg-white\",\n\t\t\"transition duration-250 ease appearance-none file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex w-full min-w-0 border px-3 py-1 text-base transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm focus-visible:border-primary focus-visible:ring-primary/20 focus-visible:ring-[3px] aria-invalid:ring-danger/20 dark:aria-invalid:ring-danger/40 font-normal aria-invalid:border-danger dark:text-foreground\",\n\t],\n\t{\n\t\tvariants: {\n\t\t\tsize: {\n\t\t\t\tsm: \"h-9 text-sm\",\n\t\t\t\tmd: \"h-input-default text-sm\",\n\t\t\t\tlg: \"h-10 text-base\",\n\t\t\t},\n\t\t\tradius: {\n\t\t\t\tnone: \"rounded-none\",\n\t\t\t\tsm: \"rounded-sm\",\n\t\t\t\tmd: \"rounded-md\",\n\t\t\t\tlg: \"rounded-lg\",\n\t\t\t\tinput: \"rounded-input\",\n\t\t\t\tfull: \"rounded-full\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tsize: \"md\",\n\t\t\tradius: \"input\",\n\t\t},\n\t},\n);\n\nexport type InputProps = {\n\tid?: string;\n\ttype?: \"text\" | \"date\" | \"number\" | \"email\" | \"password\" | \"url\" | \"tel\";\n\terror?: string;\n\ttouched?: boolean;\n\tisErrorText?: boolean;\n\tclassNameContainer?: string;\n\tstartContent?: React.ReactNode;\n\tendContent?: React.ReactNode;\n\tpattern?: PatternInputType;\n\tonClear?: () => void;\n\tlabel?: string;\n\trequired?: boolean;\n\tisClearable?: boolean;\n\tstartClassName?: string;\n\tendClassName?: string;\n\tonClickInput?: ({ e }: { e: React.MouseEvent<HTMLInputElement> }) => void;\n} & Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> &\n\tVariantProps<typeof inputStyles>;\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {\n\tconst {\n\t\tid,\n\t\ttype = \"text\",\n\t\tvalue,\n\t\tdefaultValue,\n\t\tclassName,\n\t\tclassNameContainer,\n\t\tstartClassName,\n\t\tendClassName,\n\t\tsize,\n\t\tradius,\n\t\tstartContent,\n\t\tendContent,\n\t\tdisabled,\n\t\terror,\n\t\ttouched,\n\t\tpattern,\n\t\tisErrorText = true,\n\t\tlabel,\n\t\trequired = false,\n\t\tisClearable = false,\n\t\treadOnly,\n\t\tonChange,\n\t\tonClear,\n\t\tonClickInput,\n\t\t...rest\n\t} = props;\n\n\tconst inputId = React.useId();\n\tconst resolvedId = id || inputId;\n\tconst isControlled = value !== undefined;\n\n\tconst isInvalid = !disabled && !!error && touched;\n\n\tconst iconClass = clsx(\"absolute top-0 h-full flex items-center cursor-pointer px-1.5\", {\n\t\t\"text-red-700\": isInvalid,\n\t\t\"text-default-400\": disabled,\n\t\t\"text-green-700\": !error && touched,\n\t\t\"text-default-500\": !isInvalid,\n\t\t\"disabled-content-icon-input\": disabled,\n\t\t\"invalid-content-icon-input\": isInvalid,\n\t\t\"valid-content-icon-input\": !error && touched,\n\t});\n\n\tconst paddingClass = clsx(startContent && \"pl-8\", !startContent && \"pl-2.5\", endContent && \"pr-8\", !endContent && \"pr-2.5\");\n\n\tconst inputClass = cn(inputStyles({ size, radius }), paddingClass, className);\n\n\tconst labelClass = cn(\"form-control-label block font-normal text-sm text-foreground dark:text-default-600 mb-1\", {\n\t\t\"text-danger\": isInvalid,\n\t});\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst val = e.target.value;\n\t\tif (pattern && !validatePatternInput(pattern, val)) return;\n\t\tonChange?.(e);\n\t};\n\n\tconst handleClear = (e: React.MouseEvent<HTMLDivElement>) => {\n\t\te.preventDefault();\n\t\tonClear?.();\n\t};\n\n\tconst handleClickInput = (e: React.MouseEvent<HTMLInputElement>) => {\n\t\te.preventDefault();\n\t\tif (!readOnly) return onClickInput && onClickInput({ e });\n\t};\n\n\treturn (\n\t\t<div className={twMerge(\"w-full relative flex flex-col\", classNameContainer)}>\n\t\t\t{label && (\n\t\t\t\t<label htmlFor={resolvedId} className={labelClass}>\n\t\t\t\t\t{label} {required && <span className=\"text-danger\">*</span>}\n\t\t\t\t</label>\n\t\t\t)}\n\n\t\t\t<div className=\"w-full relative\">\n\t\t\t\t{startContent && <div className={twMerge(\"left-1 input-start-content\", iconClass, startClassName)}>{startContent}</div>}\n\t\t\t\t<input\n\t\t\t\t\tref={ref}\n\t\t\t\t\tid={resolvedId}\n\t\t\t\t\t{...(!disabled ? { \"aria-invalid\": isInvalid } : {})}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tautoCapitalize=\"off\"\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t\tclassName={inputClass}\n\t\t\t\t\tonClick={handleClickInput}\n\t\t\t\t\t{...(isControlled ? { value } : { defaultValue })}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t\t{isClearable && !disabled && value ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\t\"absolute top-0 h-full flex items-center px-1.5 z-[1] opacity-70 hover:opacity-100 cursor-pointer rounded-full\",\n\t\t\t\t\t\t\t\"right-1\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tonClick={handleClear}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg aria-hidden=\"true\" focusable=\"false\" height=\"18\" viewBox=\"0 0 24 24\" width=\"18\">\n\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\td=\"M12 2a10 10 0 1010 10A10.016 10.016 0 0012 2zm3.36 12.3a.754.754 0 010 1.06.748.748 0 01-1.06 0l-2.3-2.3-2.3 2.3a.748.748 0 01-1.06 0 .754.754 0 010-1.06l2.3-2.3-2.3-2.3A.75.75 0 019.7 8.64l2.3 2.3 2.3-2.3a.75.75 0 011.06 1.06l-2.3 2.3z\"\n\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t\t{endContent && <div className={twMerge(\"right-1 input-end-content\", iconClass, endClassName)}>{endContent}</div>}\n\t\t\t</div>\n\t\t\t{!disabled && error && touched && isErrorText && <LabelError text={error} />}\n\t\t</div>\n\t);\n});\n\nInput.displayName = \"Input\";\n","import * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n\treturn <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n\treturn <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({ className, align = \"center\", sideOffset = 4, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n\treturn (\n\t\t<PopoverPrimitive.Portal>\n\t\t\t<PopoverPrimitive.Content\n\t\t\t\tdata-slot=\"popover-content\"\n\t\t\t\talign={align}\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-content1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-xl shadow-medium outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</PopoverPrimitive.Portal>\n\t);\n}\n\nfunction PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n\treturn <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n","import { Command as CommandPrimitive } from \"cmdk\";\nimport { SearchIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Modal, ModalHeader } from \"@/components/modal\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n\treturn (\n\t\t<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn(\"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport interface CommandDialogProps {\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\ttitle?: string;\n\tdescription?: string;\n\tclassName?: string;\n\tshowCloseButton?: boolean;\n\tchildren?: React.ReactNode;\n}\n\nfunction CommandDialog({\n\topen = false,\n\tonOpenChange,\n\ttitle = \"Command Palette\",\n\tdescription = \"Search for a command to run...\",\n\tchildren,\n\tclassName,\n\tshowCloseButton = true,\n}: CommandDialogProps) {\n\tconst handleClose = () => onOpenChange?.(false);\n\n\treturn (\n\t\t<Modal classNameDialog={cn(\"overflow-hidden\", className)} isShow={open} isVisible={open} size=\"lg\" onClickOutside={handleClose}>\n\t\t\t<ModalHeader className=\"sr-only\" showCloseButton={showCloseButton} onClick={handleClose}>\n\t\t\t\t<h2>{title}</h2>\n\t\t\t\t<p>{description}</p>\n\t\t\t</ModalHeader>\n\t\t\t<Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n\t\t\t\t{children}\n\t\t\t</Command>\n\t\t</Modal>\n\t);\n}\n\nfunction CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n\treturn (\n\t\t<div data-slot=\"command-input-wrapper\" className=\"flex h-9 items-center gap-2 border-b border-border px-3\">\n\t\t\t<SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n\t\t\t<CommandPrimitive.Input\n\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n\treturn (\n\t\t<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn(\"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n\treturn <CommandPrimitive.Empty data-slot=\"command-empty\" className=\"py-6 text-center text-sm\" {...props} />;\n}\n\nfunction CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n\treturn (\n\t\t<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n\treturn <CommandPrimitive.Separator data-slot=\"command-separator\" className={cn(\"bg-border -mx-1 h-px\", className)} {...props} />;\n}\n\nfunction CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n\treturn (\n\t\t<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n\treturn <span data-slot=\"command-shortcut\" className={cn(\"text-muted-foreground ml-auto text-xs tracking-widest\", className)} {...props} />;\n}\n\nexport { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };\n","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.Root data-slot=\"scroll-area\" className={cn(\"relative\", className)} {...props}>\n\t\t\t<ScrollAreaPrimitive.Viewport\n\t\t\t\tdata-slot=\"scroll-area-viewport\"\n\t\t\t\tclassName=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</ScrollAreaPrimitive.Viewport>\n\t\t\t<ScrollBar />\n\t\t\t<ScrollAreaPrimitive.Corner />\n\t\t</ScrollAreaPrimitive.Root>\n\t);\n}\n\nfunction ScrollBar({ className, orientation = \"vertical\", ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n\treturn (\n\t\t<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\t\tdata-slot=\"scroll-area-scrollbar\"\n\t\t\torientation={orientation}\n\t\t\tclassName={cn(\n\t\t\t\t\"flex touch-none p-px transition-colors select-none\",\n\t\t\t\torientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent\",\n\t\t\t\torientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ScrollAreaPrimitive.ScrollAreaThumb data-slot=\"scroll-area-thumb\" className=\"bg-border relative flex-1 rounded-full\" />\n\t\t</ScrollAreaPrimitive.ScrollAreaScrollbar>\n\t);\n}\n\nexport { ScrollArea, ScrollBar };\n"],"mappings":"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"}
@@ -84,13 +84,23 @@ var SKIPPED_TAGS = /* @__PURE__ */ new Set([
84
84
  ]);
85
85
  var inertCounts = /* @__PURE__ */ new WeakMap();
86
86
  /**
87
+ * Overlays apilados encima de `target`: cada uno agrega su nodo al final al abrir, así que el orden en el DOM es el
88
+ * orden de apilado. Un overlay solo bloquea lo que queda debajo; si se abren dos en el mismo render, el de abajo ya
89
+ * no deja inert al de arriba (antes se bloqueaban mutuamente y no quedaba nada usable).
90
+ */
91
+ var overlaysAbove = (target) => Array.from(document.querySelectorAll("[data-overlay-host]")).filter((host) => host !== target && Boolean(target.compareDocumentPosition(host) & Node.DOCUMENT_POSITION_FOLLOWING));
92
+ /**
87
93
  * Vuelve `inert` todo lo que no sea `target` (ni lo que deba seguir interactivo). Baja por el árbol solo
88
94
  * en las ramas que contienen algo a conservar, así un toast dentro de `#root` sigue usable aunque el
89
95
  * resto de la app quede bloqueado. Los contadores permiten anidar overlays: cerrar el de arriba
90
96
  * devuelve la interacción solo a lo que ese overlay bloqueó.
91
97
  */
92
98
  function inertOthers(target) {
93
- const keep = [target, ...Array.from(document.querySelectorAll(KEEP_INTERACTIVE_SELECTOR))];
99
+ const keep = [
100
+ target,
101
+ ...overlaysAbove(target),
102
+ ...Array.from(document.querySelectorAll(KEEP_INTERACTIVE_SELECTOR))
103
+ ];
94
104
  const marked = [];
95
105
  const walk = (parent) => {
96
106
  for (const child of Array.from(parent.children)) {
@@ -317,4 +327,4 @@ function useOverlayLayer(t0) {
317
327
  //#endregion
318
328
  export { useOverlayLayer as i, useLatestRef as n, useOverlayHost as r, useIsomorphicLayoutEffect as t };
319
329
 
320
- //# sourceMappingURL=use-overlay-Bzjg7RmH.js.map
330
+ //# sourceMappingURL=use-overlay-jGDwEZKn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-overlay-jGDwEZKn.js","names":["() => {\n\t\tref.current = value;\n\t}","() => {\n\t\tisOpenRef.current = isOpen;\n\t\tif (!isOpen || hostRef.current) return;\n\n\t\tconst element = document.createElement(\"div\");\n\t\telement.setAttribute(\"data-overlay-host\", \"\");\n\t\t(container ?? document.body).appendChild(element);\n\t\thostRef.current = element;\n\t\tsetHost(element);\n\t}","[isOpen, container]","() => () => {\n\t\t\thostRef.current?.remove();\n\t\t\thostRef.current = null;\n\t\t}","[]","() => {\n\t\t// Una salida que termina tarde no puede quitar un overlay que se volvió a abrir mientras salía.\n\t\tif (isOpenRef.current || !hostRef.current) return;\n\t\thostRef.current.remove();\n\t\thostRef.current = null;\n\t\tsetHost(null);\n\t}","useCallback(() => {\n\t\t// Una salida que termina tarde no puede quitar un overlay que se volvió a abrir mientras salía.\n\t\tif (isOpenRef.current || !hostRef.current) return;\n\t\thostRef.current.remove();\n\t\thostRef.current = null;\n\t\tsetHost(null);\n\t}, [])","() => {\n\t\tif (!host || isOpen) return;\n\n\t\tconst ownsInert = !host.hasAttribute(\"inert\");\n\t\tif (ownsInert) host.setAttribute(\"inert\", \"\");\n\t\thost.setAttribute(\"data-overlay-closing\", \"\");\n\t\tconst fallback = window.setTimeout(release, OVERLAY_EXIT_FALLBACK_MS);\n\n\t\treturn () => {\n\t\t\twindow.clearTimeout(fallback);\n\t\t\thost.removeAttribute(\"data-overlay-closing\");\n\t\t\tif (ownsInert) host.removeAttribute(\"inert\");\n\t\t};\n\t}","[host, isOpen, release]","{ host, release }","{ isActive, host, shouldBlockScroll = true, bodyClassName, onEscape }: UseOverlayLayerOptions","shouldBlockScroll = true","() => {\n\t\tif (!isActive) return;\n\t\treturn pushOverlay({ onEscape: () => onEscapeRef.current() });\n\t}","[isActive, onEscapeRef]","() => {\n\t\tif (!isActive || !shouldBlockScroll) return;\n\t\treturn lockBodyScroll();\n\t}","[isActive, shouldBlockScroll]","() => {\n\t\tif (!isActive || !bodyClassName) return;\n\t\treturn retainBodyClass(bodyClassName);\n\t}","[isActive, bodyClassName]","() => {\n\t\tif (!isActive || !host) return;\n\t\treturn inertOthers(host);\n\t}","[isActive, host]","_c"],"sources":["../../src/lib/overlay/overlay-stack.ts","../../src/lib/overlay/use-overlay.ts"],"sourcesContent":["/**\n * Pila compartida de overlays (Drawer, Modal): decide quién responde a Escape, cuenta los bloqueos de\n * scroll y vuelve `inert` lo que queda detrás. Todo el estado es de módulo para que varios overlays\n * abiertos a la vez —de distintos componentes— se coordinen entre sí.\n */\n\ninterface OverlayEntry {\n\t/** Se invoca solo si este overlay es el de arriba. El overlay decide si cierra o ignora la tecla. */\n\tonEscape: () => void;\n}\n\nconst stack: OverlayEntry[] = [];\n\nconst handleDocumentKeyDown = (event: KeyboardEvent) => {\n\t// Popovers, selects y AlertDialog (Radix/react-select) consumen Escape con preventDefault antes de que\n\t// llegue aquí; en ese caso la tecla era para ellos y el overlay no debe cerrarse.\n\tif (event.key !== \"Escape\" || event.defaultPrevented || event.isComposing) return;\n\n\tconst top = stack[stack.length - 1];\n\tif (!top) return;\n\n\tevent.preventDefault();\n\ttop.onEscape();\n};\n\n/** Registra un overlay abierto. Devuelve la función que lo saca de la pila. */\nexport function pushOverlay(entry: OverlayEntry): () => void {\n\tif (stack.length === 0) document.addEventListener(\"keydown\", handleDocumentKeyDown);\n\tstack.push(entry);\n\n\treturn () => {\n\t\tconst index = stack.indexOf(entry);\n\t\tif (index !== -1) stack.splice(index, 1);\n\t\tif (stack.length === 0) document.removeEventListener(\"keydown\", handleDocumentKeyDown);\n\t};\n}\n\n// ─── Bloqueo de scroll con contador ────────────────────────────────────────────────────────────────\n\nlet scrollLocks = 0;\nlet savedBodyStyle: { overflow: string; paddingRight: string } | null = null;\n\n/**\n * Bloquea el scroll del body mientras haya al menos un overlay que lo pida. Solo el primero guarda los\n * estilos originales y solo el último los restaura, así cerrar uno no desbloquea el que queda debajo.\n */\nexport function lockBodyScroll(): () => void {\n\tconst { body, documentElement } = document;\n\n\tif (scrollLocks === 0) {\n\t\tconst scrollbarWidth = window.innerWidth - documentElement.clientWidth;\n\t\tsavedBodyStyle = { overflow: body.style.overflow, paddingRight: body.style.paddingRight };\n\t\tbody.style.overflow = \"hidden\";\n\t\t// Compensa la barra que desaparece para que el contenido no salte de lado.\n\t\tif (scrollbarWidth > 0) {\n\t\t\tconst currentPadding = Number.parseFloat(window.getComputedStyle(body).paddingRight) || 0;\n\t\t\tbody.style.paddingRight = `${currentPadding + scrollbarWidth}px`;\n\t\t}\n\t}\n\tscrollLocks++;\n\n\tlet released = false;\n\n\treturn () => {\n\t\tif (released) return;\n\t\treleased = true;\n\t\tscrollLocks--;\n\t\tif (scrollLocks === 0 && savedBodyStyle) {\n\t\t\tbody.style.overflow = savedBodyStyle.overflow;\n\t\t\tbody.style.paddingRight = savedBodyStyle.paddingRight;\n\t\t\tsavedBodyStyle = null;\n\t\t}\n\t};\n}\n\n// ─── Clases del body con contador ──────────────────────────────────────────────────────────────────\n\nconst bodyClassCounts = new Map<string, number>();\n\n/** Mantiene `className` en el body mientras al menos un llamador la retenga. */\nexport function retainBodyClass(className: string): () => void {\n\tconst count = bodyClassCounts.get(className) ?? 0;\n\tif (count === 0) document.body.classList.add(className);\n\tbodyClassCounts.set(className, count + 1);\n\n\tlet released = false;\n\n\treturn () => {\n\t\tif (released) return;\n\t\treleased = true;\n\t\tconst next = (bodyClassCounts.get(className) ?? 1) - 1;\n\t\tif (next <= 0) {\n\t\t\tbodyClassCounts.delete(className);\n\t\t\tdocument.body.classList.remove(className);\n\t\t} else {\n\t\t\tbodyClassCounts.set(className, next);\n\t\t}\n\t};\n}\n\n// ─── Fondo inert ───────────────────────────────────────────────────────────────────────────────────\n\n/**\n * Lo que nunca se vuelve inert aunque quede detrás: regiones vivas (toasts de sonner, anuncios) y\n * cualquier elemento marcado con `data-overlay-keep`.\n */\nconst KEEP_INTERACTIVE_SELECTOR = \"[data-overlay-keep], [data-sonner-toaster], [aria-live]\";\nconst SKIPPED_TAGS = new Set([\"SCRIPT\", \"STYLE\", \"LINK\", \"META\", \"TEMPLATE\", \"NOSCRIPT\"]);\n\nconst inertCounts = new WeakMap<Element, number>();\n\n/**\n * Overlays apilados encima de `target`: cada uno agrega su nodo al final al abrir, así que el orden en el DOM es el\n * orden de apilado. Un overlay solo bloquea lo que queda debajo; si se abren dos en el mismo render, el de abajo ya\n * no deja inert al de arriba (antes se bloqueaban mutuamente y no quedaba nada usable).\n */\nconst overlaysAbove = (target: Element) =>\n\tArray.from(document.querySelectorAll(\"[data-overlay-host]\")).filter(\n\t\t(host) => host !== target && Boolean(target.compareDocumentPosition(host) & Node.DOCUMENT_POSITION_FOLLOWING),\n\t);\n\n/**\n * Vuelve `inert` todo lo que no sea `target` (ni lo que deba seguir interactivo). Baja por el árbol solo\n * en las ramas que contienen algo a conservar, así un toast dentro de `#root` sigue usable aunque el\n * resto de la app quede bloqueado. Los contadores permiten anidar overlays: cerrar el de arriba\n * devuelve la interacción solo a lo que ese overlay bloqueó.\n */\nexport function inertOthers(target: Element): () => void {\n\tconst keep = [target, ...overlaysAbove(target), ...Array.from(document.querySelectorAll(KEEP_INTERACTIVE_SELECTOR))];\n\tconst marked: Element[] = [];\n\n\tconst walk = (parent: Element) => {\n\t\tfor (const child of Array.from(parent.children)) {\n\t\t\tif (SKIPPED_TAGS.has(child.tagName) || keep.includes(child)) continue;\n\n\t\t\tif (keep.some((element) => child.contains(element))) {\n\t\t\t\twalk(child);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst count = inertCounts.get(child) ?? 0;\n\t\t\t// Respeta un inert puesto por otro código: no es nuestro para quitarlo.\n\t\t\tif (count === 0 && child.hasAttribute(\"inert\")) continue;\n\t\t\tif (count === 0) child.setAttribute(\"inert\", \"\");\n\t\t\tinertCounts.set(child, count + 1);\n\t\t\tmarked.push(child);\n\t\t}\n\t};\n\n\twalk(document.body);\n\n\treturn () => {\n\t\tfor (const element of marked) {\n\t\t\tconst next = (inertCounts.get(element) ?? 1) - 1;\n\t\t\tif (next <= 0) {\n\t\t\t\tinertCounts.delete(element);\n\t\t\t\telement.removeAttribute(\"inert\");\n\t\t\t} else {\n\t\t\t\tinertCounts.set(element, next);\n\t\t\t}\n\t\t}\n\t};\n}\n","import { useCallback, useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { inertOthers, lockBodyScroll, pushOverlay, retainBodyClass } from \"./overlay-stack\";\n\nexport const useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n/** Ref que siempre apunta al último valor, para leer callbacks sin re-registrar listeners. */\nexport function useLatestRef<T>(value: T) {\n\tconst ref = useRef(value);\n\tuseIsomorphicLayoutEffect(() => {\n\t\tref.current = value;\n\t});\n\treturn ref;\n}\n\n/** Tiempo máximo que un overlay cerrado puede seguir en el DOM esperando el fin de su animación de salida. */\nexport const OVERLAY_EXIT_FALLBACK_MS = 1500;\n\n/**\n * Nodo propio del overlay, creado al abrir y agregado AL FINAL de `container` (body por defecto).\n *\n * Todos los overlays y capas flotantes comparten `z-50`; lo que decide quién queda encima es el orden en\n * el DOM. Con un nodo nuevo por apertura, el último overlay abierto —Drawer o Modal— y los popovers que se\n * abran desde él siempre quedan por encima de los anteriores, sin depender de `#modal-root`/`#drawer-root`.\n *\n * `release` quita el nodo; llámalo cuando termine la animación de salida.\n */\nexport function useOverlayHost(isOpen: boolean, container?: HTMLElement | null) {\n\tconst [host, setHost] = useState<HTMLElement | null>(null);\n\tconst hostRef = useRef<HTMLElement | null>(null);\n\tconst isOpenRef = useRef(isOpen);\n\n\tuseIsomorphicLayoutEffect(() => {\n\t\tisOpenRef.current = isOpen;\n\t\tif (!isOpen || hostRef.current) return;\n\n\t\tconst element = document.createElement(\"div\");\n\t\telement.setAttribute(\"data-overlay-host\", \"\");\n\t\t(container ?? document.body).appendChild(element);\n\t\thostRef.current = element;\n\t\tsetHost(element);\n\t}, [isOpen, container]);\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\thostRef.current?.remove();\n\t\t\thostRef.current = null;\n\t\t},\n\t\t[],\n\t);\n\n\tconst release = useCallback(() => {\n\t\t// Una salida que termina tarde no puede quitar un overlay que se volvió a abrir mientras salía.\n\t\tif (isOpenRef.current || !hostRef.current) return;\n\t\thostRef.current.remove();\n\t\thostRef.current = null;\n\t\tsetHost(null);\n\t}, []);\n\n\t// Mientras sale, el overlay ya está cerrado: la animación es solo visual. El nodo se vuelve inert al instante\n\t// (clics y foco pasan a la página aunque un hijo tenga `pointer-events-auto`) y, si la salida nunca avisa\n\t// —Motion puede perder `onExitComplete` cuando se cierra mientras carga sus features—, se libera igual.\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!host || isOpen) return;\n\n\t\tconst ownsInert = !host.hasAttribute(\"inert\");\n\t\tif (ownsInert) host.setAttribute(\"inert\", \"\");\n\t\thost.setAttribute(\"data-overlay-closing\", \"\");\n\t\tconst fallback = window.setTimeout(release, OVERLAY_EXIT_FALLBACK_MS);\n\n\t\treturn () => {\n\t\t\twindow.clearTimeout(fallback);\n\t\t\thost.removeAttribute(\"data-overlay-closing\");\n\t\t\tif (ownsInert) host.removeAttribute(\"inert\");\n\t\t};\n\t}, [host, isOpen, release]);\n\n\treturn { host, release };\n}\n\ninterface UseOverlayLayerOptions {\n\t/** El overlay está abierto y visible: participa de la pila. */\n\tisActive: boolean;\n\t/** Nodo raíz del overlay; lo que no esté dentro se vuelve inert. */\n\thost: HTMLElement | null;\n\tshouldBlockScroll?: boolean;\n\t/** Clase que se mantiene en el body mientras el overlay está activo (con contador). */\n\tbodyClassName?: string;\n\t/** Se llama con Escape solo si este overlay es el de arriba. */\n\tonEscape: () => void;\n}\n\n/** Registra el overlay en la pila compartida: Escape del de arriba, scroll bloqueado y fondo inert. */\nexport function useOverlayLayer({ isActive, host, shouldBlockScroll = true, bodyClassName, onEscape }: UseOverlayLayerOptions) {\n\tconst onEscapeRef = useLatestRef(onEscape);\n\n\tuseEffect(() => {\n\t\tif (!isActive) return;\n\t\treturn pushOverlay({ onEscape: () => onEscapeRef.current() });\n\t}, [isActive, onEscapeRef]);\n\n\tuseEffect(() => {\n\t\tif (!isActive || !shouldBlockScroll) return;\n\t\treturn lockBodyScroll();\n\t}, [isActive, shouldBlockScroll]);\n\n\tuseEffect(() => {\n\t\tif (!isActive || !bodyClassName) return;\n\t\treturn retainBodyClass(bodyClassName);\n\t}, [isActive, bodyClassName]);\n\n\tuseEffect(() => {\n\t\tif (!isActive || !host) return;\n\t\treturn inertOthers(host);\n\t}, [isActive, host]);\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { t as cn } from "../chunks/utils-C_uf36nf.js";
2
- import { i as useOverlayLayer, n as useLatestRef, r as useOverlayHost, t as useIsomorphicLayoutEffect } from "../chunks/use-overlay-Bzjg7RmH.js";
2
+ import { i as useOverlayLayer, n as useLatestRef, r as useOverlayHost, t as useIsomorphicLayoutEffect } from "../chunks/use-overlay-jGDwEZKn.js";
3
3
  import { t as Button } from "../chunks/button-BH-rDMjv.js";
4
4
  import { c } from "react/compiler-runtime";
5
5
  import { createContext, forwardRef, useContext, useId, useState } from "react";
@@ -1 +1 @@
1
- export { t as Modal, n as ModalBody, r as ModalFooter, i as ModalHeader } from "../chunks/modal-BAPR6qV0.js";
1
+ export { t as Modal, n as ModalBody, r as ModalFooter, i as ModalHeader } from "../chunks/modal-DxcmrFYt.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cn } from "../chunks/utils-C_uf36nf.js";
2
- import { a as CommandEmpty, c as CommandItem, f as Popover, g as Input, h as PopoverTrigger, l as CommandList, m as PopoverContent, o as CommandGroup, r as Command, s as CommandInput, t as ScrollArea } from "../chunks/scroll-area-CB6KTpi4.js";
2
+ import { a as CommandEmpty, c as CommandItem, f as Popover, g as Input, h as PopoverTrigger, l as CommandList, m as PopoverContent, o as CommandGroup, r as Command, s as CommandInput, t as ScrollArea } from "../chunks/scroll-area-BQsrpwTg.js";
3
3
  import { t as Button } from "../chunks/button-BH-rDMjv.js";
4
4
  import { c } from "react/compiler-runtime";
5
5
  import * as React$1 from "react";
@@ -1,5 +1,5 @@
1
1
  import { n as Ripple, t as useRipple } from "../chunks/use-ripple-DEEAvU5a.js";
2
- import { g as Input } from "../chunks/scroll-area-CB6KTpi4.js";
2
+ import { g as Input } from "../chunks/scroll-area-BQsrpwTg.js";
3
3
  import { t as Button } from "../chunks/button-BH-rDMjv.js";
4
4
  import { t as Popover } from "../chunks/tiny-popover-DIehTy38.js";
5
5
  import { c } from "react/compiler-runtime";
package/dist/ui/index.js CHANGED
@@ -2,7 +2,7 @@ import { t as tv } from "../chunks/tv-Ct889VYq.js";
2
2
  import { t as colorVariants } from "../chunks/variants-BY4FA-AX.js";
3
3
  import { t as cn } from "../chunks/utils-C_uf36nf.js";
4
4
  import { t as LabelError } from "../chunks/label-error-Cst90HIF.js";
5
- import { a as CommandEmpty, c as CommandItem, d as CommandShortcut, f as Popover, g as Input, h as PopoverTrigger, i as CommandDialog, l as CommandList, m as PopoverContent, n as ScrollBar, o as CommandGroup, p as PopoverAnchor, r as Command, s as CommandInput, t as ScrollArea, u as CommandSeparator } from "../chunks/scroll-area-CB6KTpi4.js";
5
+ import { a as CommandEmpty, c as CommandItem, d as CommandShortcut, f as Popover, g as Input, h as PopoverTrigger, i as CommandDialog, l as CommandList, m as PopoverContent, n as ScrollBar, o as CommandGroup, p as PopoverAnchor, r as Command, s as CommandInput, t as ScrollArea, u as CommandSeparator } from "../chunks/scroll-area-BQsrpwTg.js";
6
6
  import { n as button, t as Button } from "../chunks/button-BH-rDMjv.js";
7
7
  import { c } from "react/compiler-runtime";
8
8
  import * as React$1 from "react";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lizaui",
3
- "version": "13.0.0",
3
+ "version": "13.0.2",
4
4
  "description": "Componentes React de BusOne (Tailwind CSS 4, React Aria, Radix y Motion).",
5
5
  "license": "ISC",
6
6
  "type": "module",
@@ -161,10 +161,10 @@
161
161
  "prepublishOnly": "pnpm lint && pnpm test && pnpm build && pnpm check:package"
162
162
  },
163
163
  "peerDependencies": {
164
- "motion": "^14.0.0",
165
- "react": "^19.2.0",
166
- "react-dom": "^19.2.0",
167
- "tailwindcss": "^4.3.0"
164
+ "motion": "^14.1.0",
165
+ "react": "^19.3.0",
166
+ "react-dom": "^19.3.0",
167
+ "tailwindcss": "^4.3.3"
168
168
  },
169
169
  "dependencies": {
170
170
  "@floating-ui/react": "^0.27.20",
@@ -221,7 +221,7 @@
221
221
  "formik": "^2.4.9",
222
222
  "jsdom": "^30.1.2",
223
223
  "motion": "^14.1.0",
224
- "oxc-transform-react": "~0.152.0",
224
+ "oxc-transform-react": "~0.153.0",
225
225
  "oxlint": "^1.87.0",
226
226
  "oxlint-tsgolint": "^7.0.2004",
227
227
  "prettier": "^3.9.10",
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-overlay-Bzjg7RmH.js","names":["() => {\n\t\tref.current = value;\n\t}","() => {\n\t\tisOpenRef.current = isOpen;\n\t\tif (!isOpen || hostRef.current) return;\n\n\t\tconst element = document.createElement(\"div\");\n\t\telement.setAttribute(\"data-overlay-host\", \"\");\n\t\t(container ?? document.body).appendChild(element);\n\t\thostRef.current = element;\n\t\tsetHost(element);\n\t}","[isOpen, container]","() => () => {\n\t\t\thostRef.current?.remove();\n\t\t\thostRef.current = null;\n\t\t}","[]","() => {\n\t\t// Una salida que termina tarde no puede quitar un overlay que se volvió a abrir mientras salía.\n\t\tif (isOpenRef.current || !hostRef.current) return;\n\t\thostRef.current.remove();\n\t\thostRef.current = null;\n\t\tsetHost(null);\n\t}","useCallback(() => {\n\t\t// Una salida que termina tarde no puede quitar un overlay que se volvió a abrir mientras salía.\n\t\tif (isOpenRef.current || !hostRef.current) return;\n\t\thostRef.current.remove();\n\t\thostRef.current = null;\n\t\tsetHost(null);\n\t}, [])","() => {\n\t\tif (!host || isOpen) return;\n\n\t\tconst ownsInert = !host.hasAttribute(\"inert\");\n\t\tif (ownsInert) host.setAttribute(\"inert\", \"\");\n\t\thost.setAttribute(\"data-overlay-closing\", \"\");\n\t\tconst fallback = window.setTimeout(release, OVERLAY_EXIT_FALLBACK_MS);\n\n\t\treturn () => {\n\t\t\twindow.clearTimeout(fallback);\n\t\t\thost.removeAttribute(\"data-overlay-closing\");\n\t\t\tif (ownsInert) host.removeAttribute(\"inert\");\n\t\t};\n\t}","[host, isOpen, release]","{ host, release }","{ isActive, host, shouldBlockScroll = true, bodyClassName, onEscape }: UseOverlayLayerOptions","shouldBlockScroll = true","() => {\n\t\tif (!isActive) return;\n\t\treturn pushOverlay({ onEscape: () => onEscapeRef.current() });\n\t}","[isActive, onEscapeRef]","() => {\n\t\tif (!isActive || !shouldBlockScroll) return;\n\t\treturn lockBodyScroll();\n\t}","[isActive, shouldBlockScroll]","() => {\n\t\tif (!isActive || !bodyClassName) return;\n\t\treturn retainBodyClass(bodyClassName);\n\t}","[isActive, bodyClassName]","() => {\n\t\tif (!isActive || !host) return;\n\t\treturn inertOthers(host);\n\t}","[isActive, host]","_c"],"sources":["../../src/lib/overlay/overlay-stack.ts","../../src/lib/overlay/use-overlay.ts"],"sourcesContent":["/**\n * Pila compartida de overlays (Drawer, Modal): decide quién responde a Escape, cuenta los bloqueos de\n * scroll y vuelve `inert` lo que queda detrás. Todo el estado es de módulo para que varios overlays\n * abiertos a la vez —de distintos componentes— se coordinen entre sí.\n */\n\ninterface OverlayEntry {\n\t/** Se invoca solo si este overlay es el de arriba. El overlay decide si cierra o ignora la tecla. */\n\tonEscape: () => void;\n}\n\nconst stack: OverlayEntry[] = [];\n\nconst handleDocumentKeyDown = (event: KeyboardEvent) => {\n\t// Popovers, selects y AlertDialog (Radix/react-select) consumen Escape con preventDefault antes de que\n\t// llegue aquí; en ese caso la tecla era para ellos y el overlay no debe cerrarse.\n\tif (event.key !== \"Escape\" || event.defaultPrevented || event.isComposing) return;\n\n\tconst top = stack[stack.length - 1];\n\tif (!top) return;\n\n\tevent.preventDefault();\n\ttop.onEscape();\n};\n\n/** Registra un overlay abierto. Devuelve la función que lo saca de la pila. */\nexport function pushOverlay(entry: OverlayEntry): () => void {\n\tif (stack.length === 0) document.addEventListener(\"keydown\", handleDocumentKeyDown);\n\tstack.push(entry);\n\n\treturn () => {\n\t\tconst index = stack.indexOf(entry);\n\t\tif (index !== -1) stack.splice(index, 1);\n\t\tif (stack.length === 0) document.removeEventListener(\"keydown\", handleDocumentKeyDown);\n\t};\n}\n\n// ─── Bloqueo de scroll con contador ────────────────────────────────────────────────────────────────\n\nlet scrollLocks = 0;\nlet savedBodyStyle: { overflow: string; paddingRight: string } | null = null;\n\n/**\n * Bloquea el scroll del body mientras haya al menos un overlay que lo pida. Solo el primero guarda los\n * estilos originales y solo el último los restaura, así cerrar uno no desbloquea el que queda debajo.\n */\nexport function lockBodyScroll(): () => void {\n\tconst { body, documentElement } = document;\n\n\tif (scrollLocks === 0) {\n\t\tconst scrollbarWidth = window.innerWidth - documentElement.clientWidth;\n\t\tsavedBodyStyle = { overflow: body.style.overflow, paddingRight: body.style.paddingRight };\n\t\tbody.style.overflow = \"hidden\";\n\t\t// Compensa la barra que desaparece para que el contenido no salte de lado.\n\t\tif (scrollbarWidth > 0) {\n\t\t\tconst currentPadding = Number.parseFloat(window.getComputedStyle(body).paddingRight) || 0;\n\t\t\tbody.style.paddingRight = `${currentPadding + scrollbarWidth}px`;\n\t\t}\n\t}\n\tscrollLocks++;\n\n\tlet released = false;\n\n\treturn () => {\n\t\tif (released) return;\n\t\treleased = true;\n\t\tscrollLocks--;\n\t\tif (scrollLocks === 0 && savedBodyStyle) {\n\t\t\tbody.style.overflow = savedBodyStyle.overflow;\n\t\t\tbody.style.paddingRight = savedBodyStyle.paddingRight;\n\t\t\tsavedBodyStyle = null;\n\t\t}\n\t};\n}\n\n// ─── Clases del body con contador ──────────────────────────────────────────────────────────────────\n\nconst bodyClassCounts = new Map<string, number>();\n\n/** Mantiene `className` en el body mientras al menos un llamador la retenga. */\nexport function retainBodyClass(className: string): () => void {\n\tconst count = bodyClassCounts.get(className) ?? 0;\n\tif (count === 0) document.body.classList.add(className);\n\tbodyClassCounts.set(className, count + 1);\n\n\tlet released = false;\n\n\treturn () => {\n\t\tif (released) return;\n\t\treleased = true;\n\t\tconst next = (bodyClassCounts.get(className) ?? 1) - 1;\n\t\tif (next <= 0) {\n\t\t\tbodyClassCounts.delete(className);\n\t\t\tdocument.body.classList.remove(className);\n\t\t} else {\n\t\t\tbodyClassCounts.set(className, next);\n\t\t}\n\t};\n}\n\n// ─── Fondo inert ───────────────────────────────────────────────────────────────────────────────────\n\n/**\n * Lo que nunca se vuelve inert aunque quede detrás: regiones vivas (toasts de sonner, anuncios) y\n * cualquier elemento marcado con `data-overlay-keep`.\n */\nconst KEEP_INTERACTIVE_SELECTOR = \"[data-overlay-keep], [data-sonner-toaster], [aria-live]\";\nconst SKIPPED_TAGS = new Set([\"SCRIPT\", \"STYLE\", \"LINK\", \"META\", \"TEMPLATE\", \"NOSCRIPT\"]);\n\nconst inertCounts = new WeakMap<Element, number>();\n\n/**\n * Vuelve `inert` todo lo que no sea `target` (ni lo que deba seguir interactivo). Baja por el árbol solo\n * en las ramas que contienen algo a conservar, así un toast dentro de `#root` sigue usable aunque el\n * resto de la app quede bloqueado. Los contadores permiten anidar overlays: cerrar el de arriba\n * devuelve la interacción solo a lo que ese overlay bloqueó.\n */\nexport function inertOthers(target: Element): () => void {\n\tconst keep = [target, ...Array.from(document.querySelectorAll(KEEP_INTERACTIVE_SELECTOR))];\n\tconst marked: Element[] = [];\n\n\tconst walk = (parent: Element) => {\n\t\tfor (const child of Array.from(parent.children)) {\n\t\t\tif (SKIPPED_TAGS.has(child.tagName) || keep.includes(child)) continue;\n\n\t\t\tif (keep.some((element) => child.contains(element))) {\n\t\t\t\twalk(child);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst count = inertCounts.get(child) ?? 0;\n\t\t\t// Respeta un inert puesto por otro código: no es nuestro para quitarlo.\n\t\t\tif (count === 0 && child.hasAttribute(\"inert\")) continue;\n\t\t\tif (count === 0) child.setAttribute(\"inert\", \"\");\n\t\t\tinertCounts.set(child, count + 1);\n\t\t\tmarked.push(child);\n\t\t}\n\t};\n\n\twalk(document.body);\n\n\treturn () => {\n\t\tfor (const element of marked) {\n\t\t\tconst next = (inertCounts.get(element) ?? 1) - 1;\n\t\t\tif (next <= 0) {\n\t\t\t\tinertCounts.delete(element);\n\t\t\t\telement.removeAttribute(\"inert\");\n\t\t\t} else {\n\t\t\t\tinertCounts.set(element, next);\n\t\t\t}\n\t\t}\n\t};\n}\n","import { useCallback, useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { inertOthers, lockBodyScroll, pushOverlay, retainBodyClass } from \"./overlay-stack\";\n\nexport const useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\n/** Ref que siempre apunta al último valor, para leer callbacks sin re-registrar listeners. */\nexport function useLatestRef<T>(value: T) {\n\tconst ref = useRef(value);\n\tuseIsomorphicLayoutEffect(() => {\n\t\tref.current = value;\n\t});\n\treturn ref;\n}\n\n/** Tiempo máximo que un overlay cerrado puede seguir en el DOM esperando el fin de su animación de salida. */\nexport const OVERLAY_EXIT_FALLBACK_MS = 1500;\n\n/**\n * Nodo propio del overlay, creado al abrir y agregado AL FINAL de `container` (body por defecto).\n *\n * Todos los overlays y capas flotantes comparten `z-50`; lo que decide quién queda encima es el orden en\n * el DOM. Con un nodo nuevo por apertura, el último overlay abierto —Drawer o Modal— y los popovers que se\n * abran desde él siempre quedan por encima de los anteriores, sin depender de `#modal-root`/`#drawer-root`.\n *\n * `release` quita el nodo; llámalo cuando termine la animación de salida.\n */\nexport function useOverlayHost(isOpen: boolean, container?: HTMLElement | null) {\n\tconst [host, setHost] = useState<HTMLElement | null>(null);\n\tconst hostRef = useRef<HTMLElement | null>(null);\n\tconst isOpenRef = useRef(isOpen);\n\n\tuseIsomorphicLayoutEffect(() => {\n\t\tisOpenRef.current = isOpen;\n\t\tif (!isOpen || hostRef.current) return;\n\n\t\tconst element = document.createElement(\"div\");\n\t\telement.setAttribute(\"data-overlay-host\", \"\");\n\t\t(container ?? document.body).appendChild(element);\n\t\thostRef.current = element;\n\t\tsetHost(element);\n\t}, [isOpen, container]);\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\thostRef.current?.remove();\n\t\t\thostRef.current = null;\n\t\t},\n\t\t[],\n\t);\n\n\tconst release = useCallback(() => {\n\t\t// Una salida que termina tarde no puede quitar un overlay que se volvió a abrir mientras salía.\n\t\tif (isOpenRef.current || !hostRef.current) return;\n\t\thostRef.current.remove();\n\t\thostRef.current = null;\n\t\tsetHost(null);\n\t}, []);\n\n\t// Mientras sale, el overlay ya está cerrado: la animación es solo visual. El nodo se vuelve inert al instante\n\t// (clics y foco pasan a la página aunque un hijo tenga `pointer-events-auto`) y, si la salida nunca avisa\n\t// —Motion puede perder `onExitComplete` cuando se cierra mientras carga sus features—, se libera igual.\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!host || isOpen) return;\n\n\t\tconst ownsInert = !host.hasAttribute(\"inert\");\n\t\tif (ownsInert) host.setAttribute(\"inert\", \"\");\n\t\thost.setAttribute(\"data-overlay-closing\", \"\");\n\t\tconst fallback = window.setTimeout(release, OVERLAY_EXIT_FALLBACK_MS);\n\n\t\treturn () => {\n\t\t\twindow.clearTimeout(fallback);\n\t\t\thost.removeAttribute(\"data-overlay-closing\");\n\t\t\tif (ownsInert) host.removeAttribute(\"inert\");\n\t\t};\n\t}, [host, isOpen, release]);\n\n\treturn { host, release };\n}\n\ninterface UseOverlayLayerOptions {\n\t/** El overlay está abierto y visible: participa de la pila. */\n\tisActive: boolean;\n\t/** Nodo raíz del overlay; lo que no esté dentro se vuelve inert. */\n\thost: HTMLElement | null;\n\tshouldBlockScroll?: boolean;\n\t/** Clase que se mantiene en el body mientras el overlay está activo (con contador). */\n\tbodyClassName?: string;\n\t/** Se llama con Escape solo si este overlay es el de arriba. */\n\tonEscape: () => void;\n}\n\n/** Registra el overlay en la pila compartida: Escape del de arriba, scroll bloqueado y fondo inert. */\nexport function useOverlayLayer({ isActive, host, shouldBlockScroll = true, bodyClassName, onEscape }: UseOverlayLayerOptions) {\n\tconst onEscapeRef = useLatestRef(onEscape);\n\n\tuseEffect(() => {\n\t\tif (!isActive) return;\n\t\treturn pushOverlay({ onEscape: () => onEscapeRef.current() });\n\t}, [isActive, onEscapeRef]);\n\n\tuseEffect(() => {\n\t\tif (!isActive || !shouldBlockScroll) return;\n\t\treturn lockBodyScroll();\n\t}, [isActive, shouldBlockScroll]);\n\n\tuseEffect(() => {\n\t\tif (!isActive || !bodyClassName) return;\n\t\treturn retainBodyClass(bodyClassName);\n\t}, [isActive, bodyClassName]);\n\n\tuseEffect(() => {\n\t\tif (!isActive || !host) return;\n\t\treturn inertOthers(host);\n\t}, [isActive, host]);\n}\n"],"mappings":"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"}