@scbt-ecom/ui 0.96.5 → 0.96.6

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,2 +1,2 @@
1
- import{jsxs as U,jsx as i}from"react/jsx-runtime";import{forwardRef as q,useRef as G}from"react";import{useFloating as J}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as K}from"./hooks/useCombobox.js";import{useClickOutside as Q}from"../../../../hooks/useClickOutside.js";import{cn as m}from"../../../../utils/cn.js";import{mergeRefs as T}from"../../../../utils/mergeRefs.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as V}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../dayPicker/DayPicker.js";import{InputBase as W}from"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as X}from"../../../dropdownList/DropdownList.js";import{AnimatePresence as Y}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as Z}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as _}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as $,offset as l}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const x=({options:y,multiple:u,value:d,onChange:v,defaultOpen:b,attachmentProps:I,searchable:r,invalid:R,displayValue:e,label:k,disabled:p,readOnly:c,className:A,externalHandlers:o,inputValue:B,filterDisabled:F,onInputChange:N,classes:t},O)=>{var w;const{floating:P,...a}=(t==null?void 0:t.list)??{},n=G(null),{refs:g,floatingStyles:j}=J({placement:"bottom-start",strategy:"absolute",middleware:[$({boundary:"clippingAncestors",crossAxis:!1}),l(4)],whileElementsMounted:_}),{open:f,setOpen:h,state:s,changeHandler:z,options:D,search:E,onInputChange:L}=K({multiple:u,value:d,onChange:v,searchable:r,defaultOpen:b,displayValue:e,initialOptions:y,filterDisabled:F,externalHandlers:o,externalInputValue:B,externalOnInputChange:N});return document&&(f?document.body.style.overflow="hidden":document.body.style.overflow="initial"),Q(n,()=>h(!1)),U("div",{ref:n,className:m("relative w-full",t==null?void 0:t.root,A),children:[i(W,{ref:T(O,g.setReference),label:k,invalid:R,readOnly:c||!r,value:E,onChange:L,disabled:p,onClick:M=>{var C;h(S=>!S),(C=o==null?void 0:o.clickHandler)==null||C.call(o,M)},onBlur:o==null?void 0:o.blurHandler,onFocus:o==null?void 0:o.focusHandler,classes:{input:m({"cursor-pointer":!r,"cursor-default":p,"pointer-events-none":p||c}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:i(V,{name:"arrows/arrowRight",className:m("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":f})}),...I}}),i(Y,{children:f&&i(Z.div,{ref:g.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:m("z-[1000]",P),style:{...j,width:(w=n.current)==null?void 0:w.getBoundingClientRect().width},children:i(X,{options:D,multiple:u,onPick:z,value:s,displayValue:e,classes:a})})})]})},Go=q(x);export{Go as Combobox};
1
+ import{jsxs as U,jsx as i}from"react/jsx-runtime";import{forwardRef as q,useRef as G}from"react";import{useFloating as J}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as K}from"./hooks/useCombobox.js";import{useClickOutside as Q}from"../../../../hooks/useClickOutside.js";import{cn as r}from"../../../../utils/cn.js";import{mergeRefs as T}from"../../../../utils/mergeRefs.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as V}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../dayPicker/DayPicker.js";import{InputBase as W}from"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as X}from"../../../dropdownList/DropdownList.js";import{AnimatePresence as Y}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as Z}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as _}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as $,offset as s}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const l=({options:R,multiple:c,value:v,onChange:y,defaultOpen:b,attachmentProps:k,searchable:m,invalid:A,displayValue:e,label:B,disabled:p,readOnly:g,className:F,externalHandlers:o,inputValue:N,filterDisabled:O,onInputChange:P,classes:t},j)=>{var w;const{floating:z,...a}=(t==null?void 0:t.list)??{},n=G(null),{refs:C,floatingStyles:d}=J({placement:"bottom-start",strategy:"absolute",middleware:[$({boundary:"clippingAncestors",crossAxis:!1}),s(4)],whileElementsMounted:_}),{open:h,setOpen:f,state:D,changeHandler:E,options:L,search:M,onInputChange:S}=K({multiple:c,value:v,onChange:y,searchable:m,defaultOpen:b,displayValue:e,initialOptions:R,filterDisabled:O,externalHandlers:o,externalInputValue:N,externalOnInputChange:P});return Q(n,()=>f(!1)),U("div",{ref:n,className:r("relative w-full",t==null?void 0:t.root,F),children:[i(W,{ref:T(j,C.setReference),label:B,invalid:A,readOnly:g||!m,value:M,onChange:S,disabled:p,onClick:u=>{var I;f(!0),(I=o==null?void 0:o.clickHandler)==null||I.call(o,u)},onBlur:o==null?void 0:o.blurHandler,onFocus:o==null?void 0:o.focusHandler,classes:{input:r({"cursor-pointer":!m,"cursor-default":p,"pointer-events-none":p||g}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:i(V,{name:"arrows/arrowRight",className:r("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":h})}),onClickIcon:()=>f(u=>!u),...k}}),i(Y,{children:h&&i(Z.div,{ref:C.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:r("z-[1000]",z),style:{...d,width:(w=n.current)==null?void 0:w.getBoundingClientRect().width},children:i(X,{options:L,multiple:c,onPick:E,value:D,displayValue:e,classes:a})})})]})},Go=q(l);export{Go as Combobox};
2
2
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n classes\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n if (document) {\n if (open) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'initial'\n }\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(ref, refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen((prev) => !prev)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","classes","ref","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","useCombobox","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","prev","_a","Icon","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"++DA+FA,MAAMA,EAAiB,CACrB,CACE,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,eAAAC,EACA,cAAeC,EACf,QAAAC,CACF,EACAC,IACG,OACH,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBH,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDI,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,CAAA,EAAkBC,EAAY,CAC1F,SAAAnC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAG,EACA,YAAAF,EACA,aAAAI,EACA,eAAAR,EACA,eAAAe,EACA,iBAAAF,EACA,mBAAoBC,EACpB,sBAAuBE,CAAA,CACxB,EAED,OAAI,WACEa,EACF,SAAS,KAAK,MAAM,SAAW,SAE/B,SAAS,KAAK,MAAM,SAAW,WAInCQ,EAAgBhB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDQ,EAAC,MAAA,CAAI,IAAKjB,EAAc,UAAWkB,EAAG,kBAAmBtB,GAAA,YAAAA,EAAS,KAAML,CAAS,EAC/E,SAAA,CAAA4B,EAACC,EAAA,CACC,IAAKC,EAAUxB,EAAKK,EAAK,YAAY,EACrC,MAAAd,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAO4B,EACP,SAAUC,EACV,SAAAzB,EACA,QAAUiC,GAAU,OAClBb,EAASc,GAAS,CAACA,CAAI,GACvBC,EAAAhC,GAAA,YAAAA,EAAkB,eAAlB,MAAAgC,EAAA,KAAAhC,EAAiC8B,EACnC,EACA,OAAQ9B,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAO0B,EAAG,CACR,iBAAkB,CAACjC,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGM,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACEuB,EAACM,EAAA,CACC,KAAK,oBACL,UAAWP,EAAG,yDAA0D,CACtE,aAAcV,CAAA,CACf,CAAA,CAAA,EAGL,GAAGxB,CAAA,CACL,CAAA,EAGFmC,EAACO,GACE,SAAAlB,GACCW,EAACQ,EAAO,IAAP,CACC,IAAKzB,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWgB,EAAG,WAAYpB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOqB,EAAAxB,EAAa,UAAb,YAAAwB,EAAsB,wBAAwB,KAAA,EAEjF,SAAAL,EAACS,EAAA,CACC,QAAAhB,EACA,SAAAhC,EACA,OAAQ+B,EACR,MAAOD,EACP,aAAAvB,EACA,QAASY,CAAA,CAAA,CACX,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ,EAEa8B,GAAWC,EAAWpD,CAAc"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n classes\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(ref, refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen(true)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","classes","ref","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","useCombobox","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","_a","Icon","prev","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"++DA+FA,MAAMA,EAAiB,CACrB,CACE,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,eAAAC,EACA,cAAeC,EACf,QAAAC,CACF,EACAC,IACG,OACH,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBH,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDI,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,CAAA,EAAkBC,EAAY,CAC1F,SAAAnC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAG,EACA,YAAAF,EACA,aAAAI,EACA,eAAAR,EACA,eAAAe,EACA,iBAAAF,EACA,mBAAoBC,EACpB,sBAAuBE,CAAA,CACxB,EAED,OAAAqB,EAAgBhB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDQ,EAAC,MAAA,CAAI,IAAKjB,EAAc,UAAWkB,EAAG,kBAAmBtB,GAAA,YAAAA,EAAS,KAAML,CAAS,EAC/E,SAAA,CAAA4B,EAACC,EAAA,CACC,IAAKC,EAAUxB,EAAKK,EAAK,YAAY,EACrC,MAAAd,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAO4B,EACP,SAAUC,EACV,SAAAzB,EACA,QAAUiC,GAAU,OAClBb,EAAQ,EAAI,GACZc,EAAA/B,GAAA,YAAAA,EAAkB,eAAlB,MAAA+B,EAAA,KAAA/B,EAAiC8B,EACnC,EACA,OAAQ9B,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAO0B,EAAG,CACR,iBAAkB,CAACjC,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGM,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACEuB,EAACK,EAAA,CACC,KAAK,oBACL,UAAWN,EAAG,yDAA0D,CACtE,aAAcV,CAAA,CACf,CAAA,CAAA,EAGL,YAAa,IAAMC,EAASgB,GAAS,CAACA,CAAI,EAC1C,GAAGzC,CAAA,CACL,CAAA,EAGFmC,EAACO,GACE,SAAAlB,GACCW,EAACQ,EAAO,IAAP,CACC,IAAKzB,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWgB,EAAG,WAAYpB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOoB,EAAAvB,EAAa,UAAb,YAAAuB,EAAsB,wBAAwB,KAAA,EAEjF,SAAAJ,EAACS,EAAA,CACC,QAAAhB,EACA,SAAAhC,EACA,OAAQ+B,EACR,MAAOD,EACP,aAAAvB,EACA,QAASY,CAAA,CAAA,CACX,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ,EAEa8B,GAAWC,EAAWpD,CAAc"}