@scbt-ecom/ui 0.94.0 → 0.95.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/lib/shared/style.css +1 -1
  2. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js +1 -1
  3. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js.map +1 -1
  4. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js +1 -1
  5. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js.map +1 -1
  6. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js +1 -1
  7. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js.map +1 -1
  8. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js +1 -1
  9. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js.map +1 -1
  10. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js.map +1 -1
  11. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
  12. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/types.js +2 -0
  13. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/types.js.map +1 -0
  14. package/dist/lib/shared/ui/formElements/uncontrolled/index.js.map +1 -1
  15. package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js +1 -1
  16. package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js.map +1 -1
  17. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js +1 -1
  18. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js.map +1 -1
  19. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js +1 -1
  20. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js.map +1 -1
  21. package/dist/stats.html +1 -1
  22. package/dist/types/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.d.ts +2 -2
  23. package/dist/types/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.d.ts +2 -2
  24. package/dist/types/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.d.ts +2 -2
  25. package/dist/types/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.d.ts +2 -2
  26. package/dist/types/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.d.ts +2 -2
  27. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.d.ts +3 -2
  28. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/index.d.ts +1 -0
  29. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/types.d.ts +4 -0
  30. package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +1 -1
  31. package/dist/types/lib/widgets/breadcrumbs/Breadcrumb.d.ts +3 -2
  32. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{jsx as i,Fragment as g,jsxs as f}from"react/jsx-runtime";import{useState as c,useRef as k,useMemo as C}from"react";import{Breadcrumb as w}from"./Breadcrumb.js";import{defaultBreadcrumbs as b}from"./hooks/constants.js";import{useClickOutside as B}from"../../shared/hooks/useClickOutside.js";import"@hookform/resolvers";import{cn as d}from"../../shared/utils/cn.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.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{Icon as O}from"../../shared/ui/icon/Icon.js";import"../../shared/ui/table/ui/primitives/Primitives.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/dropdownList/ui/dropdownItem/DropdownItem.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.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/select/Select.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/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";const h=(l,o,t,r)=>l.map((e,n)=>f("div",{className:"flex items-center gap-x-1",children:[i(w,{breadcrumb:e,className:d(t,{"pointer-events-none text-color-primary-disabled":n===r,"text-color-blue-grey-600":e.disabled})}),n!==l.length-1&&o]},e.label)),pt=({separator:l,ellipsis:o,classes:t,breadcrumbs:r=b})=>{const[e,n]=c(!1),u=k(null);B(u,()=>n(!1));const{first:N,middle:a,last:x}=C(()=>{let p=[],y=[],v=[];return o&&(p=r.slice(0,o),y=r.slice(o,r.length-o),v=r.slice(r.length-o)),{first:p,middle:y,last:v}},[r,o]),m=l??i(O,{name:"arrows/arrowRight",className:d("size-4",t==null?void 0:t.separator)});return i("div",{className:d("flex max-w-[840px] flex-wrap items-center","gap-x-2 gap-y-1 py-4 text-color-primary-default",t==null?void 0:t.root),children:o?i(g,{children:r.length>o*2+1?f(g,{children:[h(N,m,t==null?void 0:t.breadcrumb),m,a.length>0&&f(g,{children:[f("div",{className:"relative",children:[i("button",{onClick:()=>n(!0),children:"..."}),i("ul",{ref:u,className:d("invisible absolute max-h-[264px] overflow-y-auto","w-[280px] rounded-sm bg-color-white","customScrollbar-y p-1 opacity-0 shadow-sm",{"visible opacity-100":e}),children:a.map(p=>i("li",{children:i(w,{breadcrumb:p,className:d("desk-body-regular-l inline-block py-3","w-full rounded-sm bg-color-white px-2","text-color-dark hover:bg-color-primary-tr-hover",t==null?void 0:t.breadcrumb)})},p.label))})]}),m]}),h(x,m,t==null?void 0:t.breadcrumb,x.length-1)]}):h(r,m,t==null?void 0:t.breadcrumb,r.length-1)}):h(r,m,t==null?void 0:t.breadcrumb,r.length-1)})};export{pt as Breadcrumbs};
1
+ import{jsx as i,Fragment as g,jsxs as f}from"react/jsx-runtime";import{useState as k,useRef as C,useMemo as c}from"react";import{Breadcrumb as v}from"./Breadcrumb.js";import{defaultBreadcrumbs as B}from"./hooks/constants.js";import{useClickOutside as b}from"../../shared/hooks/useClickOutside.js";import"@hookform/resolvers";import{cn as d}from"../../shared/utils/cn.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.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{Icon as O}from"../../shared/ui/icon/Icon.js";import"../../shared/ui/table/ui/primitives/Primitives.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/dropdownList/ui/dropdownItem/DropdownItem.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.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/select/Select.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/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";const h=(l,o,t,r)=>l.map((e,p)=>f("div",{className:"flex items-center gap-x-1",children:[i(v,{isLast:p===r,breadcrumb:e,className:d(t,{"text-color-blue-grey-600":e.disabled})}),p!==l.length-1&&o]},e.label)),nt=({separator:l,ellipsis:o,classes:t,breadcrumbs:r=B})=>{const[e,p]=k(!1),u=C(null);b(u,()=>p(!1));const{first:N,middle:x,last:a}=c(()=>{let n=[],y=[],w=[];return o&&(n=r.slice(0,o),y=r.slice(o,r.length-o),w=r.slice(r.length-o)),{first:n,middle:y,last:w}},[r,o]),m=l??i(O,{name:"arrows/arrowRight",className:d("size-4",t==null?void 0:t.separator)});return i("div",{className:d("flex max-w-[840px] flex-wrap items-center","gap-x-2 gap-y-1 py-4 text-color-primary-default",t==null?void 0:t.root),children:o?i(g,{children:r.length>o*2+1?f(g,{children:[h(N,m,t==null?void 0:t.breadcrumb),m,x.length>0&&f(g,{children:[f("div",{className:"relative",children:[i("button",{onClick:()=>p(!0),children:"..."}),i("ul",{ref:u,className:d("invisible absolute max-h-[264px] overflow-y-auto","w-[280px] rounded-sm bg-color-white","customScrollbar-y p-1 opacity-0 shadow-sm",{"visible opacity-100":e}),children:x.map(n=>i("li",{children:i(v,{breadcrumb:n,className:d("desk-body-regular-l inline-block py-3","w-full rounded-sm bg-color-white px-2","text-color-dark hover:bg-color-primary-tr-hover",t==null?void 0:t.breadcrumb)})},n.label))})]}),m]}),h(a,m,t==null?void 0:t.breadcrumb,a.length-1)]}):h(r,m,t==null?void 0:t.breadcrumb,r.length-1)}):h(r,m,t==null?void 0:t.breadcrumb,r.length-1)})};export{nt as Breadcrumbs};
2
2
  //# sourceMappingURL=Breadcrumbs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sources":["../../../../lib/widgets/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react'\nimport { Breadcrumb } from './Breadcrumb'\nimport { type Breadcrumb as BreadcrumbType, defaultBreadcrumbs, type UseBreadcrumbsOptions } from './hooks'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype BreadcrumbsClasses = {\n root?: string\n separator?: string\n breadcrumb?: string\n}\n\ntype BreadcrumbsProps = UseBreadcrumbsOptions & {\n /**\n * произвольный сепаратор, разделяющий элементы\n */\n separator?: React.ReactElement | string\n /**\n * указывает, сколько элементов отображать перед/после сужения\n */\n ellipsis?: number\n /**\n * дополнительные стили компонента\n */\n classes?: BreadcrumbsClasses\n /**\n * Массив хлебных крошек\n */\n breadcrumbs: BreadcrumbType[]\n}\n\nconst renderBreadcrumbs = (\n breadcrumbs: BreadcrumbType[],\n separator: BreadcrumbsProps['separator'],\n classes?: BreadcrumbsClasses['breadcrumb'],\n lastIndex?: number\n) => {\n return breadcrumbs.map((breadcrumb, index) => {\n const isLast = index === lastIndex\n\n return (\n <div key={breadcrumb.label} className='flex items-center gap-x-1'>\n <Breadcrumb\n breadcrumb={breadcrumb}\n className={cn(classes, {\n 'pointer-events-none text-color-primary-disabled': isLast,\n 'text-color-blue-grey-600': breadcrumb.disabled\n })}\n />\n {index !== breadcrumbs.length - 1 && separator}\n </div>\n )\n })\n}\n\nexport const Breadcrumbs = ({ separator, ellipsis, classes, breadcrumbs = defaultBreadcrumbs }: BreadcrumbsProps) => {\n const [hiddenCrumbsOpen, setHiddenCrumbsOpen] = useState<boolean>(false)\n\n const hiddenCrumbsRef = useRef<HTMLUListElement>(null)\n\n useClickOutside(hiddenCrumbsRef, () => setHiddenCrumbsOpen(false))\n\n // separated crumbs while ellipsis provided\n const { first, middle, last } = useMemo(() => {\n let first: BreadcrumbType[] = []\n let middle: BreadcrumbType[] = []\n let last: BreadcrumbType[] = []\n\n if (ellipsis) {\n first = breadcrumbs.slice(0, ellipsis)\n middle = breadcrumbs.slice(ellipsis, breadcrumbs.length - ellipsis)\n last = breadcrumbs.slice(breadcrumbs.length - ellipsis)\n }\n\n return { first, middle, last }\n }, [breadcrumbs, ellipsis])\n\n const separatedElement = separator ?? <Icon name='arrows/arrowRight' className={cn('size-4', classes?.separator)} />\n\n return (\n <div\n className={cn(\n 'flex max-w-[840px] flex-wrap items-center',\n 'gap-x-2 gap-y-1 py-4 text-color-primary-default',\n classes?.root\n )}\n >\n {ellipsis ? (\n // if ellipsis provided, render hidden breadcrumbs\n <>\n {breadcrumbs.length > ellipsis * 2 + 1 ? (\n // if we have more than ellipsis (visible crumbs) + available hidden crumbs\n // render hidden breadcrumbs\n <>\n {renderBreadcrumbs(first, separatedElement, classes?.breadcrumb)}\n {separatedElement}\n {middle.length > 0 && (\n <>\n <div className='relative'>\n <button onClick={() => setHiddenCrumbsOpen(true)}>...</button>\n <ul\n ref={hiddenCrumbsRef}\n className={cn(\n 'invisible absolute max-h-[264px] overflow-y-auto',\n 'w-[280px] rounded-sm bg-color-white',\n 'customScrollbar-y p-1 opacity-0 shadow-sm',\n {\n 'visible opacity-100': hiddenCrumbsOpen\n }\n )}\n >\n {middle.map((breadcrumb) => (\n <li key={breadcrumb.label}>\n <Breadcrumb\n breadcrumb={breadcrumb}\n className={cn(\n 'desk-body-regular-l inline-block py-3',\n 'w-full rounded-sm bg-color-white px-2',\n 'text-color-dark hover:bg-color-primary-tr-hover',\n classes?.breadcrumb\n )}\n />\n </li>\n ))}\n </ul>\n </div>\n {separatedElement}\n </>\n )}\n {renderBreadcrumbs(last, separatedElement, classes?.breadcrumb, last.length - 1)}\n </>\n ) : (\n // otherwise render all breadcrumbs\n renderBreadcrumbs(breadcrumbs, separatedElement, classes?.breadcrumb, breadcrumbs.length - 1)\n )}\n </>\n ) : (\n // if ellipsis doesn't provided render all breadcrumbs\n renderBreadcrumbs(breadcrumbs, separatedElement, classes?.breadcrumb, breadcrumbs.length - 1)\n )}\n </div>\n )\n}\n"],"names":["renderBreadcrumbs","breadcrumbs","separator","classes","lastIndex","breadcrumb","index","jsxs","jsx","Breadcrumb","cn","Breadcrumbs","ellipsis","defaultBreadcrumbs","hiddenCrumbsOpen","setHiddenCrumbsOpen","useState","hiddenCrumbsRef","useRef","useClickOutside","first","middle","last","useMemo","separatedElement","Icon","Fragment"],"mappings":"4hEAgCA,MAAMA,EAAoB,CACxBC,EACAC,EACAC,EACAC,IAEOH,EAAY,IAAI,CAACI,EAAYC,IAIhCC,EAAC,MAAA,CAA2B,UAAU,4BACpC,SAAA,CAAAC,EAACC,EAAA,CACC,WAAAJ,EACA,UAAWK,EAAGP,EAAS,CACrB,kDAPOG,IAAUF,EAQjB,2BAA4BC,EAAW,QAAA,CACxC,CAAA,CAAA,EAEFC,IAAUL,EAAY,OAAS,GAAKC,CAAA,CAAA,EAR7BG,EAAW,KASrB,CAEH,EAGUM,GAAc,CAAC,CAAE,UAAAT,EAAW,SAAAU,EAAU,QAAAT,EAAS,YAAAF,EAAcY,KAA2C,CACnH,KAAM,CAACC,EAAkBC,CAAmB,EAAIC,EAAkB,EAAK,EAEjEC,EAAkBC,EAAyB,IAAI,EAErDC,EAAgBF,EAAiB,IAAMF,EAAoB,EAAK,CAAC,EAGjE,KAAM,CAAE,MAAAK,EAAO,OAAAC,EAAQ,KAAAC,CAAA,EAASC,EAAQ,IAAM,CAC5C,IAAIH,EAA0B,CAAA,EAC1BC,EAA2B,CAAA,EAC3BC,EAAyB,CAAA,EAE7B,OAAIV,IACFQ,EAAQnB,EAAY,MAAM,EAAGW,CAAQ,EACrCS,EAASpB,EAAY,MAAMW,EAAUX,EAAY,OAASW,CAAQ,EAClEU,EAAOrB,EAAY,MAAMA,EAAY,OAASW,CAAQ,GAGjD,CAAE,MAAAQ,EAAO,OAAAC,EAAQ,KAAAC,CAAAA,CAC1B,EAAG,CAACrB,EAAaW,CAAQ,CAAC,EAEpBY,EAAmBtB,GAAaM,EAACiB,EAAA,CAAK,KAAK,oBAAoB,UAAWf,EAAG,SAAUP,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,EAElH,OACEK,EAAC,MAAA,CACC,UAAWE,EACT,4CACA,kDACAP,GAAA,YAAAA,EAAS,IAAA,EAGV,SAAAS,EAECJ,EAAAkB,EAAA,CACG,SAAAzB,EAAY,OAASW,EAAW,EAAI,EAGnCL,EAAAmB,EAAA,CACG,SAAA,CAAA1B,EAAkBoB,EAAOI,EAAkBrB,GAAA,YAAAA,EAAS,UAAU,EAC9DqB,EACAH,EAAO,OAAS,GACfd,EAAAmB,EAAA,CACE,SAAA,CAAAnB,EAAC,MAAA,CAAI,UAAU,WACb,SAAA,CAAAC,EAAC,UAAO,QAAS,IAAMO,EAAoB,EAAI,EAAG,SAAA,MAAG,EACrDP,EAAC,KAAA,CACC,IAAKS,EACL,UAAWP,EACT,mDACA,sCACA,4CACA,CACE,sBAAuBI,CAAA,CACzB,EAGD,SAAAO,EAAO,IAAKhB,KACV,KAAA,CACC,SAAAG,EAACC,EAAA,CACC,WAAAJ,EACA,UAAWK,EACT,wCACA,wCACA,kDACAP,GAAA,YAAAA,EAAS,UAAA,CACX,CAAA,CACF,EATOE,EAAW,KAUpB,CACD,CAAA,CAAA,CACH,EACF,EACCmB,CAAA,EACH,EAEDxB,EAAkBsB,EAAME,EAAkBrB,GAAA,YAAAA,EAAS,WAAYmB,EAAK,OAAS,CAAC,CAAA,CAAA,CACjF,EAGAtB,EAAkBC,EAAauB,EAAkBrB,GAAA,YAAAA,EAAS,WAAYF,EAAY,OAAS,CAAC,CAAA,CAEhG,EAGAD,EAAkBC,EAAauB,EAAkBrB,GAAA,YAAAA,EAAS,WAAYF,EAAY,OAAS,CAAC,CAAA,CAAA,CAIpG"}
1
+ {"version":3,"file":"Breadcrumbs.js","sources":["../../../../lib/widgets/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { useMemo, useRef, useState } from 'react'\nimport { Breadcrumb } from './Breadcrumb'\nimport { type Breadcrumb as BreadcrumbType, defaultBreadcrumbs, type UseBreadcrumbsOptions } from './hooks'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype BreadcrumbsClasses = {\n root?: string\n separator?: string\n breadcrumb?: string\n}\n\ntype BreadcrumbsProps = UseBreadcrumbsOptions & {\n /**\n * произвольный сепаратор, разделяющий элементы\n */\n separator?: React.ReactElement | string\n /**\n * указывает, сколько элементов отображать перед/после сужения\n */\n ellipsis?: number\n /**\n * дополнительные стили компонента\n */\n classes?: BreadcrumbsClasses\n /**\n * Массив хлебных крошек\n */\n breadcrumbs: BreadcrumbType[]\n}\n\nconst renderBreadcrumbs = (\n breadcrumbs: BreadcrumbType[],\n separator: BreadcrumbsProps['separator'],\n classes?: BreadcrumbsClasses['breadcrumb'],\n lastIndex?: number\n) => {\n return breadcrumbs.map((breadcrumb, index) => {\n const isLast = index === lastIndex\n\n return (\n <div key={breadcrumb.label} className='flex items-center gap-x-1'>\n <Breadcrumb\n isLast={isLast}\n breadcrumb={breadcrumb}\n className={cn(classes, {\n 'text-color-blue-grey-600': breadcrumb.disabled\n })}\n />\n {index !== breadcrumbs.length - 1 && separator}\n </div>\n )\n })\n}\n\nexport const Breadcrumbs = ({ separator, ellipsis, classes, breadcrumbs = defaultBreadcrumbs }: BreadcrumbsProps) => {\n const [hiddenCrumbsOpen, setHiddenCrumbsOpen] = useState<boolean>(false)\n\n const hiddenCrumbsRef = useRef<HTMLUListElement>(null)\n\n useClickOutside(hiddenCrumbsRef, () => setHiddenCrumbsOpen(false))\n\n // separated crumbs while ellipsis provided\n const { first, middle, last } = useMemo(() => {\n let first: BreadcrumbType[] = []\n let middle: BreadcrumbType[] = []\n let last: BreadcrumbType[] = []\n\n if (ellipsis) {\n first = breadcrumbs.slice(0, ellipsis)\n middle = breadcrumbs.slice(ellipsis, breadcrumbs.length - ellipsis)\n last = breadcrumbs.slice(breadcrumbs.length - ellipsis)\n }\n\n return { first, middle, last }\n }, [breadcrumbs, ellipsis])\n\n const separatedElement = separator ?? <Icon name='arrows/arrowRight' className={cn('size-4', classes?.separator)} />\n\n return (\n <div\n className={cn(\n 'flex max-w-[840px] flex-wrap items-center',\n 'gap-x-2 gap-y-1 py-4 text-color-primary-default',\n classes?.root\n )}\n >\n {ellipsis ? (\n // if ellipsis provided, render hidden breadcrumbs\n <>\n {breadcrumbs.length > ellipsis * 2 + 1 ? (\n // if we have more than ellipsis (visible crumbs) + available hidden crumbs\n // render hidden breadcrumbs\n <>\n {renderBreadcrumbs(first, separatedElement, classes?.breadcrumb)}\n {separatedElement}\n {middle.length > 0 && (\n <>\n <div className='relative'>\n <button onClick={() => setHiddenCrumbsOpen(true)}>...</button>\n <ul\n ref={hiddenCrumbsRef}\n className={cn(\n 'invisible absolute max-h-[264px] overflow-y-auto',\n 'w-[280px] rounded-sm bg-color-white',\n 'customScrollbar-y p-1 opacity-0 shadow-sm',\n {\n 'visible opacity-100': hiddenCrumbsOpen\n }\n )}\n >\n {middle.map((breadcrumb) => (\n <li key={breadcrumb.label}>\n <Breadcrumb\n breadcrumb={breadcrumb}\n className={cn(\n 'desk-body-regular-l inline-block py-3',\n 'w-full rounded-sm bg-color-white px-2',\n 'text-color-dark hover:bg-color-primary-tr-hover',\n classes?.breadcrumb\n )}\n />\n </li>\n ))}\n </ul>\n </div>\n {separatedElement}\n </>\n )}\n {renderBreadcrumbs(last, separatedElement, classes?.breadcrumb, last.length - 1)}\n </>\n ) : (\n // otherwise render all breadcrumbs\n renderBreadcrumbs(breadcrumbs, separatedElement, classes?.breadcrumb, breadcrumbs.length - 1)\n )}\n </>\n ) : (\n // if ellipsis doesn't provided render all breadcrumbs\n renderBreadcrumbs(breadcrumbs, separatedElement, classes?.breadcrumb, breadcrumbs.length - 1)\n )}\n </div>\n )\n}\n"],"names":["renderBreadcrumbs","breadcrumbs","separator","classes","lastIndex","breadcrumb","index","jsxs","jsx","Breadcrumb","cn","Breadcrumbs","ellipsis","defaultBreadcrumbs","hiddenCrumbsOpen","setHiddenCrumbsOpen","useState","hiddenCrumbsRef","useRef","useClickOutside","first","middle","last","useMemo","separatedElement","Icon","Fragment"],"mappings":"4hEAgCA,MAAMA,EAAoB,CACxBC,EACAC,EACAC,EACAC,IAEOH,EAAY,IAAI,CAACI,EAAYC,IAIhCC,EAAC,MAAA,CAA2B,UAAU,4BACpC,SAAA,CAAAC,EAACC,EAAA,CACC,OALSH,IAAUF,EAMnB,WAAAC,EACA,UAAWK,EAAGP,EAAS,CACrB,2BAA4BE,EAAW,QAAA,CACxC,CAAA,CAAA,EAEFC,IAAUL,EAAY,OAAS,GAAKC,CAAA,CAAA,EAR7BG,EAAW,KASrB,CAEH,EAGUM,GAAc,CAAC,CAAE,UAAAT,EAAW,SAAAU,EAAU,QAAAT,EAAS,YAAAF,EAAcY,KAA2C,CACnH,KAAM,CAACC,EAAkBC,CAAmB,EAAIC,EAAkB,EAAK,EAEjEC,EAAkBC,EAAyB,IAAI,EAErDC,EAAgBF,EAAiB,IAAMF,EAAoB,EAAK,CAAC,EAGjE,KAAM,CAAE,MAAAK,EAAO,OAAAC,EAAQ,KAAAC,CAAA,EAASC,EAAQ,IAAM,CAC5C,IAAIH,EAA0B,CAAA,EAC1BC,EAA2B,CAAA,EAC3BC,EAAyB,CAAA,EAE7B,OAAIV,IACFQ,EAAQnB,EAAY,MAAM,EAAGW,CAAQ,EACrCS,EAASpB,EAAY,MAAMW,EAAUX,EAAY,OAASW,CAAQ,EAClEU,EAAOrB,EAAY,MAAMA,EAAY,OAASW,CAAQ,GAGjD,CAAE,MAAAQ,EAAO,OAAAC,EAAQ,KAAAC,CAAAA,CAC1B,EAAG,CAACrB,EAAaW,CAAQ,CAAC,EAEpBY,EAAmBtB,GAAaM,EAACiB,EAAA,CAAK,KAAK,oBAAoB,UAAWf,EAAG,SAAUP,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,EAElH,OACEK,EAAC,MAAA,CACC,UAAWE,EACT,4CACA,kDACAP,GAAA,YAAAA,EAAS,IAAA,EAGV,SAAAS,EAECJ,EAAAkB,EAAA,CACG,SAAAzB,EAAY,OAASW,EAAW,EAAI,EAGnCL,EAAAmB,EAAA,CACG,SAAA,CAAA1B,EAAkBoB,EAAOI,EAAkBrB,GAAA,YAAAA,EAAS,UAAU,EAC9DqB,EACAH,EAAO,OAAS,GACfd,EAAAmB,EAAA,CACE,SAAA,CAAAnB,EAAC,MAAA,CAAI,UAAU,WACb,SAAA,CAAAC,EAAC,UAAO,QAAS,IAAMO,EAAoB,EAAI,EAAG,SAAA,MAAG,EACrDP,EAAC,KAAA,CACC,IAAKS,EACL,UAAWP,EACT,mDACA,sCACA,4CACA,CACE,sBAAuBI,CAAA,CACzB,EAGD,SAAAO,EAAO,IAAKhB,KACV,KAAA,CACC,SAAAG,EAACC,EAAA,CACC,WAAAJ,EACA,UAAWK,EACT,wCACA,wCACA,kDACAP,GAAA,YAAAA,EAAS,UAAA,CACX,CAAA,CACF,EATOE,EAAW,KAUpB,CACD,CAAA,CAAA,CACH,EACF,EACCmB,CAAA,EACH,EAEDxB,EAAkBsB,EAAME,EAAkBrB,GAAA,YAAAA,EAAS,WAAYmB,EAAK,OAAS,CAAC,CAAA,CAAA,CACjF,EAGAtB,EAAkBC,EAAauB,EAAkBrB,GAAA,YAAAA,EAAS,WAAYF,EAAY,OAAS,CAAC,CAAA,CAEhG,EAGAD,EAAkBC,EAAauB,EAAkBrB,GAAA,YAAAA,EAAS,WAAYF,EAAY,OAAS,CAAC,CAAA,CAAA,CAIpG"}