@scbt-ecom/ui 0.115.2 → 0.115.4

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 G,jsx as r}from"react/jsx-runtime";import{forwardRef as J}from"react";import{useFloating as Q}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as T}from"./hooks/useCombobox.js";import{useKeyboardNavigation as V}from"./hooks/useKeyboardNavigation.js";import{useClickOutside as W}from"../../../../hooks/useClickOutside.js";import{cn as e}from"../../../../utils/cn.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 X}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 Y}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"../inputCurrency/InputCurrency.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as Z}from"../../../dropdownList/DropdownList.js";import{Portal as _}from"../../../portal/Portal.js";import{AnimatePresence as $}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as x}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as l}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as H,offset as oo}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const to=({options:a,multiple:f,value:p,onChange:R,defaultOpen:k,attachmentProps:v,searchable:m,invalid:g,displayValue:C,label:N,disabled:c,readOnly:d,className:P,externalHandlers:o,inputValue:h,filterDisabled:A,onInputChange:B,empty:F,classes:t,portal:O=document?document.body:void 0},j)=>{var y;const{floating:z,...D}=(t==null?void 0:t.list)??{},{refs:i,floatingStyles:L}=Q({placement:"bottom-start",strategy:"absolute",middleware:[H({boundary:"clippingAncestors",crossAxis:!1}),oo(4)],whileElementsMounted:l}),{open:b,setOpen:n,state:s,changeHandler:E,options:K,search:M,onInputChange:S,comboboxDisplayValue:w}=T({multiple:f,value:p,onChange:R,searchable:m,defaultOpen:k,displayValue:C,initialOptions:a,filterDisabled:A,externalHandlers:o,externalInputValue:h,externalOnInputChange:B});V({ref:i.domReference,openChangeHandler:n});const U=()=>p?f&&m?w(p):m?M:w(p):"";W(i.floating,()=>n(!1));const q=O??i.domReference.current;return G("div",{ref:i.setReference,className:e("relative w-full",t==null?void 0:t.root,P),children:[r(Y,{ref:j,label:N,invalid:g,readOnly:d||!m,value:h||U(),onChange:S,disabled:c,onClick:u=>{var I;n(!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:e({"cursor-pointer":!m,"cursor-default":c,"pointer-events-none":c||d}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:r(X,{name:"arrows/arrowRight",className:e("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":b,"text-color-negative":g})}),onClickIcon:()=>n(u=>!u),...v},"data-test-id":"combobox-input"}),r(_,{root:q,children:r($,{children:b&&r(x.div,{ref:i.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:e("z-[1000]",z),style:{...L,width:(y=i.reference.current)==null?void 0:y.getBoundingClientRect().width},children:r(Z,{empty:F,options:K,multiple:f,onPick:E,value:s,displayValue:C,classes:D,target:i.domReference})})})})]})},Vo=J(to);export{Vo as Combobox};
1
+ import{jsxs as G,jsx as r}from"react/jsx-runtime";import{forwardRef as J}from"react";import{useFloating as Q}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as V}from"./hooks/useCombobox.js";import{useKeyboardNavigation as W}from"./hooks/useKeyboardNavigation.js";import{useClickOutside as X}from"../../../../hooks/useClickOutside.js";import{cn as e}from"../../../../utils/cn.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 Y}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 Z}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"../inputCurrency/InputCurrency.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as _}from"../../../dropdownList/DropdownList.js";import{Portal as $}from"../../../portal/Portal.js";import{AnimatePresence as l}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as x}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as H}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as oo,offset as to}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const io=({options:I,multiple:f,value:p,onChange:R,defaultOpen:k,attachmentProps:v,searchable:m,invalid:g,displayValue:C,label:N,disabled:c,readOnly:h,className:P,externalHandlers:o,inputValue:b,filterDisabled:s,onInputChange:A,empty:B,classes:t,portal:F=globalThis?(j=>(j=globalThis==null?void 0:globalThis.document)==null?void 0:j.body)():void 0},O)=>{var a;const{floating:z,...D}=(t==null?void 0:t.list)??{},{refs:i,floatingStyles:L}=Q({placement:"bottom-start",strategy:"absolute",middleware:[oo({boundary:"clippingAncestors",crossAxis:!1}),to(4)],whileElementsMounted:H}),{open:d,setOpen:n,state:T,changeHandler:E,options:K,search:M,onInputChange:S,comboboxDisplayValue:w}=V({multiple:f,value:p,onChange:R,searchable:m,defaultOpen:k,displayValue:C,initialOptions:I,filterDisabled:s,externalHandlers:o,externalInputValue:b,externalOnInputChange:A});W({ref:i.domReference,openChangeHandler:n});const U=()=>p?f&&m?w(p):m?M:w(p):"";X(i.floating,()=>n(!1));const q=F??i.domReference.current;return G("div",{ref:i.setReference,className:e("relative w-full",t==null?void 0:t.root,P),children:[r(Z,{ref:O,label:N,invalid:g,readOnly:h||!m,value:b||U(),onChange:S,disabled:c,onClick:u=>{var y;n(!0),(y=o==null?void 0:o.clickHandler)==null||y.call(o,u)},onBlur:o==null?void 0:o.blurHandler,onFocus:o==null?void 0:o.focusHandler,classes:{input:e({"cursor-pointer":!m,"cursor-default":c,"pointer-events-none":c||h}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:r(Y,{name:"arrows/arrowRight",className:e("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":d,"text-color-negative":g})}),onClickIcon:()=>n(u=>!u),...v},"data-test-id":"combobox-input"}),r($,{root:q,children:r(l,{children:d&&r(x.div,{ref:i.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:e("z-[1000]",z),style:{...L,width:(a=i.reference.current)==null?void 0:a.getBoundingClientRect().width},children:r(_,{empty:B,options:K,multiple:f,onPick:E,value:T,displayValue:C,classes:D,target:i.domReference})})})})]})},Wo=J(io);export{Wo 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 } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox, useKeyboardNavigation } 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 { DropdownList, Icon, Portal } from '$/shared/ui'\nimport { 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 } 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>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\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 * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\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 empty,\n classes,\n portal = document ? document.body : undefined\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const { refs, floatingStyles } = useFloating<HTMLDivElement>({\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, comboboxDisplayValue } = 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 useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutside(refs.floating, () => setOpen(false))\n\n const portalContainer = portal ?? refs.domReference.current!\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={ref}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\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 'text-color-negative': invalid\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n data-test-id='combobox-input'\n />\n\n <Portal root={portalContainer}>\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={{\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\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","empty","classes","portal","ref","floating","dropdownClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutside","portalContainer","jsxs","cn","jsx","InputBase","event","_a","Icon","prev","Portal","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox, useKeyboardNavigation } 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 { DropdownList, Icon, Portal } from '$/shared/ui'\nimport { 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 } 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>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\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 * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\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 empty,\n classes,\n portal = globalThis ? globalThis?.document?.body : undefined\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const { refs, floatingStyles } = useFloating<HTMLDivElement>({\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, comboboxDisplayValue } = 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 useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutside(refs.floating, () => setOpen(false))\n\n const portalContainer = portal ?? refs.domReference.current!\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={ref}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\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 'text-color-negative': invalid\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n data-test-id='combobox-input'\n />\n\n <Portal root={portalContainer}>\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={{\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\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","empty","classes","portal","_a","ref","floating","dropdownClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutside","portalContainer","jsxs","cn","jsx","InputBase","event","Icon","prev","Portal","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsx as i,jsxs as g}from"react/jsx-runtime";import{useState as v,useMemo as I}from"react";import{widgetIds as e}from"../model/helpers.js";import{Tabs as T}from"./ui/Tabs.js";import{RenderEntity as j}from"./ui/RenderEntity.js";import{ResponsiveContainer as y}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{cn as t}from"../../shared/utils/cn.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{Heading as C}from"../../shared/ui/heading/Heading.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const mo=({headline:d,tabs:r,classes:o,accordionsConfig:u})=>{var n,f;const[p,h]=v(0),x=I(()=>r==null?void 0:r.map(m=>m==null?void 0:m.tabName),[r])??[];return!r||(r==null?void 0:r.length)===0?null:i("section",{id:e.usefulInfo,"data-test-id":e.usefulInfo,className:t(o==null?void 0:o.root),children:g(y,{className:t(o==null?void 0:o.container),children:[i(C,{className:t(o==null?void 0:o.headline),as:"h2",children:d}),i("div",{className:t("mt-6 flex flex-col gap-2 desktop:mt-12",o==null?void 0:o.tabsWrapper),children:i(T,{tabsNames:x,activeTab:p,setActiveTab:h,classes:o==null?void 0:o.tabs})}),i("div",{className:t("mt-6 flex flex-col gap-12",o==null?void 0:o.contentWrapper),children:(f=(n=r==null?void 0:r[p])==null?void 0:n.contents)==null?void 0:f.map((m,N)=>i(j,{accordionsConfig:u,...m,classes:o==null?void 0:o.entityClasses},N))})]})})};export{mo as UsefulInfo,mo as default};
1
+ import{jsx as i,jsxs as g}from"react/jsx-runtime";import{useState as v,useMemo as I}from"react";import{widgetIds as e}from"../model/helpers.js";import{Tabs as T}from"./ui/Tabs.js";import{RenderEntity as j}from"./ui/RenderEntity.js";import{ResponsiveContainer as y}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{cn as t}from"../../shared/utils/cn.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{Heading as C}from"../../shared/ui/heading/Heading.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const mo=({headline:d,tabs:r,classes:o,accordionsConfig:u})=>{var n,f;const[p,h]=v(0),x=I(()=>r==null?void 0:r.map(m=>m==null?void 0:m.tabName),[r])??[];return!r||(r==null?void 0:r.length)===0?null:i("section",{id:e.usefulInfo,"data-test-id":e.usefulInfo,className:t(o==null?void 0:o.root),children:g(y,{className:t(o==null?void 0:o.container),children:[i(C,{className:t(o==null?void 0:o.headline),as:"h2",children:d}),i("div",{className:t("mt-6 flex flex-col gap-2 desktop:mt-12",o==null?void 0:o.tabsWrapper),children:i(T,{tabsNames:x,activeTab:p,setActiveTab:h,classes:o==null?void 0:o.tabs})}),i("div",{className:t("mt-6 flex flex-col gap-8",o==null?void 0:o.contentWrapper),children:(f=(n=r==null?void 0:r[p])==null?void 0:n.contents)==null?void 0:f.map((m,N)=>i(j,{accordionsConfig:u,...m,classes:o==null?void 0:o.entityClasses},N))})]})})};export{mo as UsefulInfo,mo as default};
2
2
  //# sourceMappingURL=UsefulInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UsefulInfo.js","sources":["../../../../lib/widgets/usefulInfo/UsefulInfo.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { widgetIds } from '../model'\nimport type { EntitiesAccordionsConfig, Tab } from './model'\nimport { type EntityClasses, RenderEntity, Tabs, type TabsClasses } from './ui'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type UsefulInfoClasses = {\n root?: string\n container?: string\n tabsWrapper?: string\n tabs?: TabsClasses\n headline?: string\n contentWrapper?: string\n entityClasses?: EntityClasses\n}\n\nexport type UsefulInfoProps = {\n headline: string\n tabs: Tab[]\n classes?: UsefulInfoClasses\n accordionsConfig?: EntitiesAccordionsConfig\n}\n\nexport const UsefulInfo = ({ headline, tabs, classes, accordionsConfig }: UsefulInfoProps) => {\n const [activeTab, setActiveTab] = useState(0)\n\n const tabsNames = useMemo(() => tabs?.map((tab) => tab?.tabName), [tabs]) ?? []\n\n if (!tabs || tabs?.length === 0) return null\n\n return (\n <section id={widgetIds.usefulInfo} data-test-id={widgetIds.usefulInfo} className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <Heading className={cn(classes?.headline)} as='h2'>\n {headline}\n </Heading>\n <div className={cn('mt-6 flex flex-col gap-2 desktop:mt-12', classes?.tabsWrapper)}>\n <Tabs tabsNames={tabsNames} activeTab={activeTab} setActiveTab={setActiveTab} classes={classes?.tabs} />\n </div>\n <div className={cn('mt-6 flex flex-col gap-12', classes?.contentWrapper)}>\n {tabs?.[activeTab]?.contents?.map((entity, index) => (\n <RenderEntity accordionsConfig={accordionsConfig} key={index} {...entity} classes={classes?.entityClasses} />\n ))}\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default UsefulInfo\n"],"names":["UsefulInfo","headline","tabs","classes","accordionsConfig","activeTab","setActiveTab","useState","tabsNames","useMemo","tab","widgetIds","cn","jsxs","ResponsiveContainer","jsx","Heading","Tabs","_b","_a","entity","index","RenderEntity"],"mappings":"8nEAwBO,MAAMA,GAAa,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,QAAAC,EAAS,iBAAAC,KAAwC,SAC5F,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAS,CAAC,EAEtCC,EAAYC,EAAQ,IAAMP,GAAA,YAAAA,EAAM,IAAKQ,GAAQA,GAAA,YAAAA,EAAK,SAAU,CAACR,CAAI,CAAC,GAAK,CAAA,EAE7E,MAAI,CAACA,IAAQA,GAAA,YAAAA,EAAM,UAAW,EAAU,OAGrC,UAAA,CAAQ,GAAIS,EAAU,WAAY,eAAcA,EAAU,WAAY,UAAWC,EAAGT,GAAA,YAAAA,EAAS,IAAI,EAChG,SAAAU,EAACC,EAAA,CAAoB,UAAWF,EAAGT,GAAA,YAAAA,EAAS,SAAS,EACnD,SAAA,CAAAY,EAACC,EAAA,CAAQ,UAAWJ,EAAGT,GAAA,YAAAA,EAAS,QAAQ,EAAG,GAAG,KAC3C,SAAAF,CAAA,CACH,IACC,MAAA,CAAI,UAAWW,EAAG,yCAA0CT,GAAA,YAAAA,EAAS,WAAW,EAC/E,SAAAY,EAACE,EAAA,CAAK,UAAAT,EAAsB,UAAAH,EAAsB,aAAAC,EAA4B,QAASH,GAAA,YAAAA,EAAS,KAAM,EACxG,EACAY,EAAC,MAAA,CAAI,UAAWH,EAAG,4BAA6BT,GAAA,YAAAA,EAAS,cAAc,EACpE,UAAAe,GAAAC,EAAAjB,GAAA,YAAAA,EAAOG,KAAP,YAAAc,EAAmB,WAAnB,YAAAD,EAA6B,IAAI,CAACE,EAAQC,IACzCN,EAACO,EAAA,CAAa,iBAAAlB,EAAiD,GAAGgB,EAAQ,QAASjB,GAAA,YAAAA,EAAS,eAArCkB,CAAoD,EAC5G,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"UsefulInfo.js","sources":["../../../../lib/widgets/usefulInfo/UsefulInfo.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { widgetIds } from '../model'\nimport type { EntitiesAccordionsConfig, Tab } from './model'\nimport { type EntityClasses, RenderEntity, Tabs, type TabsClasses } from './ui'\nimport { Heading, ResponsiveContainer } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type UsefulInfoClasses = {\n root?: string\n container?: string\n tabsWrapper?: string\n tabs?: TabsClasses\n headline?: string\n contentWrapper?: string\n entityClasses?: EntityClasses\n}\n\nexport type UsefulInfoProps = {\n headline: string\n tabs: Tab[]\n classes?: UsefulInfoClasses\n accordionsConfig?: EntitiesAccordionsConfig\n}\n\nexport const UsefulInfo = ({ headline, tabs, classes, accordionsConfig }: UsefulInfoProps) => {\n const [activeTab, setActiveTab] = useState(0)\n\n const tabsNames = useMemo(() => tabs?.map((tab) => tab?.tabName), [tabs]) ?? []\n\n if (!tabs || tabs?.length === 0) return null\n\n return (\n <section id={widgetIds.usefulInfo} data-test-id={widgetIds.usefulInfo} className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n <Heading className={cn(classes?.headline)} as='h2'>\n {headline}\n </Heading>\n <div className={cn('mt-6 flex flex-col gap-2 desktop:mt-12', classes?.tabsWrapper)}>\n <Tabs tabsNames={tabsNames} activeTab={activeTab} setActiveTab={setActiveTab} classes={classes?.tabs} />\n </div>\n <div className={cn('mt-6 flex flex-col gap-8', classes?.contentWrapper)}>\n {tabs?.[activeTab]?.contents?.map((entity, index) => (\n <RenderEntity accordionsConfig={accordionsConfig} key={index} {...entity} classes={classes?.entityClasses} />\n ))}\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default UsefulInfo\n"],"names":["UsefulInfo","headline","tabs","classes","accordionsConfig","activeTab","setActiveTab","useState","tabsNames","useMemo","tab","widgetIds","cn","jsxs","ResponsiveContainer","jsx","Heading","Tabs","_b","_a","entity","index","RenderEntity"],"mappings":"8nEAwBO,MAAMA,GAAa,CAAC,CAAE,SAAAC,EAAU,KAAAC,EAAM,QAAAC,EAAS,iBAAAC,KAAwC,SAC5F,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAS,CAAC,EAEtCC,EAAYC,EAAQ,IAAMP,GAAA,YAAAA,EAAM,IAAKQ,GAAQA,GAAA,YAAAA,EAAK,SAAU,CAACR,CAAI,CAAC,GAAK,CAAA,EAE7E,MAAI,CAACA,IAAQA,GAAA,YAAAA,EAAM,UAAW,EAAU,OAGrC,UAAA,CAAQ,GAAIS,EAAU,WAAY,eAAcA,EAAU,WAAY,UAAWC,EAAGT,GAAA,YAAAA,EAAS,IAAI,EAChG,SAAAU,EAACC,EAAA,CAAoB,UAAWF,EAAGT,GAAA,YAAAA,EAAS,SAAS,EACnD,SAAA,CAAAY,EAACC,EAAA,CAAQ,UAAWJ,EAAGT,GAAA,YAAAA,EAAS,QAAQ,EAAG,GAAG,KAC3C,SAAAF,CAAA,CACH,IACC,MAAA,CAAI,UAAWW,EAAG,yCAA0CT,GAAA,YAAAA,EAAS,WAAW,EAC/E,SAAAY,EAACE,EAAA,CAAK,UAAAT,EAAsB,UAAAH,EAAsB,aAAAC,EAA4B,QAASH,GAAA,YAAAA,EAAS,KAAM,EACxG,EACAY,EAAC,MAAA,CAAI,UAAWH,EAAG,2BAA4BT,GAAA,YAAAA,EAAS,cAAc,EACnE,UAAAe,GAAAC,EAAAjB,GAAA,YAAAA,EAAOG,KAAP,YAAAc,EAAmB,WAAnB,YAAAD,EAA6B,IAAI,CAACE,EAAQC,IACzCN,EAACO,EAAA,CAAa,iBAAAlB,EAAiD,GAAGgB,EAAQ,QAASjB,GAAA,YAAAA,EAAS,eAArCkB,CAAoD,EAC5G,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAEJ"}