brd-ui-kit 0.1.78 → 0.1.80

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 (72) hide show
  1. package/dist/brd-ui-kit.css +1 -1
  2. package/dist/components/card-info/card-info.d.ts +13 -0
  3. package/dist/components/card-info/card-info.styles.d.ts +10 -0
  4. package/dist/components/card-info/index.d.ts +1 -0
  5. package/dist/components/card-info.d.ts +2 -0
  6. package/dist/components/input-field/input-field.d.ts +2 -0
  7. package/dist/components/transfer-list/index.d.ts +1 -0
  8. package/dist/components/transfer-list/transfer-list-card.d.ts +22 -0
  9. package/dist/components/transfer-list/transfer-list.d.ts +12 -0
  10. package/dist/components/transfer-list.d.ts +2 -0
  11. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +3 -3
  12. package/dist/components-avatar-uploader-avatar-uploader.cjs +1 -1
  13. package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
  14. package/dist/components-avatar-uploader-avatar-uploader.js +3 -2
  15. package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -1
  16. package/dist/components-basic-avatar-basic-avatar.cjs +2 -2
  17. package/dist/components-basic-avatar-basic-avatar.cjs.map +1 -1
  18. package/dist/components-basic-avatar-basic-avatar.js +36 -32
  19. package/dist/components-basic-avatar-basic-avatar.js.map +1 -1
  20. package/dist/components-card-info-card-info.cjs +2 -0
  21. package/dist/components-card-info-card-info.cjs.map +1 -0
  22. package/dist/components-card-info-card-info.js +43 -0
  23. package/dist/components-card-info-card-info.js.map +1 -0
  24. package/dist/components-card-info-card-info.styles.cjs +3 -0
  25. package/dist/components-card-info-card-info.styles.cjs.map +1 -0
  26. package/dist/components-card-info-card-info.styles.js +52 -0
  27. package/dist/components-card-info-card-info.styles.js.map +1 -0
  28. package/dist/components-card-info.cjs +2 -0
  29. package/dist/components-card-info.cjs.map +1 -0
  30. package/dist/components-card-info.js +5 -0
  31. package/dist/components-card-info.js.map +1 -0
  32. package/dist/components-checkbox-group-checkbox-group.cjs +1 -1
  33. package/dist/components-checkbox-group-checkbox-group.cjs.map +1 -1
  34. package/dist/components-checkbox-group-checkbox-group.js +3 -2
  35. package/dist/components-checkbox-group-checkbox-group.js.map +1 -1
  36. package/dist/components-files-uploader-files-uploader.cjs +6 -6
  37. package/dist/components-files-uploader-files-uploader.cjs.map +1 -1
  38. package/dist/components-files-uploader-files-uploader.js +73 -67
  39. package/dist/components-files-uploader-files-uploader.js.map +1 -1
  40. package/dist/components-input-contact-input-contact.cjs +1 -1
  41. package/dist/components-input-contact-input-contact.cjs.map +1 -1
  42. package/dist/components-input-contact-input-contact.js +3 -2
  43. package/dist/components-input-contact-input-contact.js.map +1 -1
  44. package/dist/components-input-field-input-field.cjs +1 -1
  45. package/dist/components-input-field-input-field.cjs.map +1 -1
  46. package/dist/components-input-field-input-field.js +44 -36
  47. package/dist/components-input-field-input-field.js.map +1 -1
  48. package/dist/components-transfer-list-transfer-list-card.cjs +2 -0
  49. package/dist/components-transfer-list-transfer-list-card.cjs.map +1 -0
  50. package/dist/components-transfer-list-transfer-list-card.js +8 -0
  51. package/dist/components-transfer-list-transfer-list-card.js.map +1 -0
  52. package/dist/components-transfer-list-transfer-list.cjs +2 -0
  53. package/dist/components-transfer-list-transfer-list.cjs.map +1 -0
  54. package/dist/components-transfer-list-transfer-list.js +121 -0
  55. package/dist/components-transfer-list-transfer-list.js.map +1 -0
  56. package/dist/components-transfer-list.cjs +2 -0
  57. package/dist/components-transfer-list.cjs.map +1 -0
  58. package/dist/components-transfer-list.js +5 -0
  59. package/dist/components-transfer-list.js.map +1 -0
  60. package/dist/components-ui-avatar-avatar.cjs.map +1 -1
  61. package/dist/components-ui-avatar-avatar.js.map +1 -1
  62. package/dist/components-ui-dropdown-menu-dropdown-menu.cjs.map +1 -1
  63. package/dist/components-ui-dropdown-menu-dropdown-menu.js.map +1 -1
  64. package/dist/index.cjs +1 -1
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.js +132 -128
  67. package/dist/index.js.map +1 -1
  68. package/dist/transfer-list-card-3JPB-sdd.js +525 -0
  69. package/dist/transfer-list-card-3JPB-sdd.js.map +1 -0
  70. package/dist/transfer-list-card-D2oGp-Rw.cjs +28 -0
  71. package/dist/transfer-list-card-D2oGp-Rw.cjs.map +1 -0
  72. package/package.json +19 -1
@@ -1 +1 @@
1
- {"version":3,"file":"components-input-contact-input-contact.cjs","sources":["../src/constants/contact-input.ts","../src/components/input-contact/input-contact.tsx"],"sourcesContent":["import type { TOption } from \"@/components/input-contact/input-contact\";\n\nexport const OPTIONS: TOption[] = [\n {\n label: \"Мобильный\",\n icon: \"phone\",\n },\n {\n label: \"Telegram\",\n icon: \"telegram-logo\",\n },\n {\n label: \"WhatsApp\",\n icon: \"whats-app-logo-filled\",\n },\n {\n label: \"Max\",\n icon: \"max-logo\",\n },\n {\n label: \"E-mail\",\n icon: \"envelope-simple\",\n },\n];\n","import { OPTIONS } from \"@/constants/contact-input\";\nimport { CaretDown } from \"@/components/icons/CaretDown\";\nimport { CaretUp } from \"@/components/icons/CaretUp\";\nimport { EnvelopeSimple } from \"@/components/icons/EnvelopeSimple\";\nimport { MaxLogo } from \"@/components/icons/MaxLogo\";\nimport { Phone } from \"@/components/icons/Phone\";\nimport { StrokeIcon, type StrokeIconComponent } from \"@/components/icons/stroke-icon\";\nimport { TelegramLogo } from \"@/components/icons/TelegramLogo\";\nimport { WhatsAppLogoFilled } from \"@/components/icons/WhatsAppLogoFilled\";\nimport {\n Button,\n InputField,\n InputPhone,\n cn,\n usePopupControls,\n type InputPhoneProps,\n} from \"@/index\";\nimport { useEffect, useRef, useState } from \"react\";\n\nexport type TOption = {\n label: string;\n icon: TypesChange;\n};\n\ntype TypesChange =\n | \"phone\"\n | \"telegram-logo\"\n | \"whats-app-logo-filled\"\n | \"max-logo\"\n | \"envelope-simple\";\n\nconst contactIcons: Record<TypesChange, StrokeIconComponent> = {\n phone: Phone,\n \"telegram-logo\": TelegramLogo,\n \"whats-app-logo-filled\": WhatsAppLogoFilled,\n \"max-logo\": MaxLogo,\n \"envelope-simple\": EnvelopeSimple,\n};\n\ntype Props = {\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n container?: string;\n };\n value?: string;\n name?: string;\n onTypeChange?: (type: TypesChange) => void;\n inputProps: React.ComponentPropsWithRef<\"input\">;\n inputPhoneProps: InputPhoneProps;\n};\n\n// TODO: заменить цвета\nconst iconStyles = (icon: TypesChange) => {\n switch (icon) {\n case \"max-logo\":\n return {\n bgColor: \"bg-[linear-gradient(135deg,#9933DD_0%,#2831B9_50%,#44CCFF_100%)]\",\n };\n\n case \"telegram-logo\":\n return {\n bgColor: \"bg-[#289AD2]\",\n };\n\n case \"whats-app-logo-filled\":\n return {\n bgColor: \"bg-[#00C202]\",\n textColor: \"text-[#00C202]\",\n };\n\n default:\n return {};\n }\n};\n\nconst getContactIconClasses = (icon: TypesChange) => ({\n wrapper: cn(\n `flex h-5.5 w-5.5 shrink-0 items-center justify-center rounded-sm\n ${iconStyles(icon).bgColor ?? \"bg-primary-inverse-hover-bg\"}\n ${iconStyles(icon).textColor ?? \"text-primary-inverse-text\"}`,\n ),\n icon: \"size-5 shrink-0\",\n});\n\nexport const InputContact = (props: Props) => {\n const { inputProps, inputPhoneProps, onTypeChange, ...rest } = props;\n\n const [type, setType] = useState<TypesChange>(\"phone\");\n const { isOpened, openPopup, closePopup } = usePopupControls();\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n closePopup();\n }\n };\n\n if (isOpened) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpened, closePopup]);\n\n const getPlaceholder = (type: TypesChange): string => {\n switch (type) {\n case \"phone\":\n return \"+7 (999) 999-99-99\";\n case \"telegram-logo\":\n return \"@username\";\n case \"whats-app-logo-filled\":\n return \"+7 (999) 999-99-99\";\n case \"max-logo\":\n return \"ID пользователя Max\";\n case \"envelope-simple\":\n return \"example@mail.com\";\n default:\n return \"Введите значение\";\n }\n };\n\n const handleTypeChange = (type: TypesChange) => {\n return () => {\n setType(type);\n onTypeChange?.(type);\n closePopup();\n };\n };\n\n const SelectedIcon = contactIcons[type];\n const ToggleIcon = isOpened ? CaretUp : CaretDown;\n\n return (\n <div className={cn(\"relative\", props.classes?.container)}>\n {[\"telegram-logo\", \"max-logo\", \"envelope-simple\"].includes(type) ? (\n <InputField\n {...inputProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n ) : (\n <InputPhone\n {...inputPhoneProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n )}\n\n {isOpened && (\n <div\n className=\"border-inp-hover-border bg-primary-bg absolute my-2 flex w-full\n flex-col rounded-xl border\"\n ref={wrapperRef}\n >\n {OPTIONS.map(({ label, icon }) => {\n const OptionIcon = contactIcons[icon];\n\n return (\n <Button\n key={label}\n variant=\"ghost\"\n className=\"flex w-full justify-start\"\n type=\"button\"\n onClick={handleTypeChange(icon)}\n >\n <StrokeIcon\n icon={OptionIcon}\n size=\"medium\"\n className=\"text-primary-inverse-text\"\n classes={getContactIconClasses(icon)}\n />\n\n {label}\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport type { Props as InputContactProps, TypesChange };\n"],"names":["OPTIONS","contactIcons","Phone","TelegramLogo","WhatsAppLogoFilled","MaxLogo","EnvelopeSimple","iconStyles","icon","getContactIconClasses","cn","InputContact","props","inputProps","inputPhoneProps","onTypeChange","rest","type","setType","useState","isOpened","openPopup","closePopup","usePopupControls","wrapperRef","useRef","useEffect","handleClickOutside","event","getPlaceholder","handleTypeChange","SelectedIcon","ToggleIcon","CaretUp","CaretDown","jsxs","jsx","InputField","StrokeIcon","InputPhone","label","OptionIcon","Button"],"mappings":"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"}
1
+ {"version":3,"file":"components-input-contact-input-contact.cjs","sources":["../src/constants/contact-input.ts","../src/components/input-contact/input-contact.tsx"],"sourcesContent":["import type { TOption } from \"@/components/input-contact/input-contact\";\n\nexport const OPTIONS: TOption[] = [\n {\n label: \"Мобильный\",\n icon: \"phone\",\n },\n {\n label: \"Telegram\",\n icon: \"telegram-logo\",\n },\n {\n label: \"WhatsApp\",\n icon: \"whats-app-logo-filled\",\n },\n {\n label: \"Max\",\n icon: \"max-logo\",\n },\n {\n label: \"E-mail\",\n icon: \"envelope-simple\",\n },\n];\n","import { OPTIONS } from \"@/constants/contact-input\";\nimport { CaretDown } from \"@/components/icons/CaretDown\";\nimport { CaretUp } from \"@/components/icons/CaretUp\";\nimport { EnvelopeSimple } from \"@/components/icons/EnvelopeSimple\";\nimport { MaxLogo } from \"@/components/icons/MaxLogo\";\nimport { Phone } from \"@/components/icons/Phone\";\nimport { StrokeIcon, type StrokeIconComponent } from \"@/components/icons/stroke-icon\";\nimport { TelegramLogo } from \"@/components/icons/TelegramLogo\";\nimport { WhatsAppLogoFilled } from \"@/components/icons/WhatsAppLogoFilled\";\nimport {\n Button,\n InputField,\n InputPhone,\n cn,\n usePopupControls,\n type InputPhoneProps,\n} from \"@/index\";\nimport { useEffect, useRef, useState } from \"react\";\n\nexport type TOption = {\n label: string;\n icon: TypesChange;\n};\n\ntype TypesChange =\n | \"phone\"\n | \"telegram-logo\"\n | \"whats-app-logo-filled\"\n | \"max-logo\"\n | \"envelope-simple\";\n\nconst contactIcons: Record<TypesChange, StrokeIconComponent> = {\n phone: Phone,\n \"telegram-logo\": TelegramLogo,\n \"whats-app-logo-filled\": WhatsAppLogoFilled,\n \"max-logo\": MaxLogo,\n \"envelope-simple\": EnvelopeSimple,\n};\n\ntype Props = {\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n container?: string;\n };\n value?: string;\n name?: string;\n onTypeChange?: (type: TypesChange) => void;\n inputProps: React.ComponentPropsWithRef<\"input\">;\n inputPhoneProps: InputPhoneProps;\n};\n\n// TODO: заменить цвета\nconst iconStyles = (icon: TypesChange) => {\n switch (icon) {\n case \"max-logo\":\n return {\n bgColor: \"bg-[linear-gradient(135deg,#9933DD_0%,#2831B9_50%,#44CCFF_100%)]\",\n };\n\n case \"telegram-logo\":\n return {\n bgColor: \"bg-[#289AD2]\",\n };\n\n case \"whats-app-logo-filled\":\n return {\n bgColor: \"bg-[#00C202]\",\n textColor: \"text-[#00C202]\",\n };\n\n default:\n return {};\n }\n};\n\nconst getContactIconClasses = (icon: TypesChange) => ({\n wrapper: cn(\n `flex h-5.5 w-5.5 shrink-0 items-center justify-center rounded-sm\n ${iconStyles(icon).bgColor ?? \"bg-primary-inverse-hover-bg\"}\n ${iconStyles(icon).textColor ?? \"text-primary-inverse-text\"}`,\n ),\n icon: \"size-5 shrink-0\",\n});\n\nexport const InputContact = (props: Props) => {\n const { inputProps, inputPhoneProps, onTypeChange, ...rest } = props;\n\n const [type, setType] = useState<TypesChange>(\"phone\");\n const { isOpened, openPopup, closePopup } = usePopupControls();\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n closePopup();\n }\n };\n\n if (isOpened) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpened, closePopup]);\n\n const getPlaceholder = (type: TypesChange): string => {\n switch (type) {\n case \"phone\":\n return \"+7 (999) 999-99-99\";\n case \"telegram-logo\":\n return \"@username\";\n case \"whats-app-logo-filled\":\n return \"+7 (999) 999-99-99\";\n case \"max-logo\":\n return \"ID пользователя Max\";\n case \"envelope-simple\":\n return \"example@mail.com\";\n default:\n return \"Введите значение\";\n }\n };\n\n const handleTypeChange = (type: TypesChange) => {\n return () => {\n setType(type);\n onTypeChange?.(type);\n closePopup();\n };\n };\n\n const SelectedIcon = contactIcons[type];\n const ToggleIcon = isOpened ? CaretUp : CaretDown;\n\n return (\n <div className={cn(\"relative\", props.classes?.container)}>\n {[\"telegram-logo\", \"max-logo\", \"envelope-simple\"].includes(type) ? (\n <InputField\n {...inputProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n ) : (\n <InputPhone\n {...inputPhoneProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n )}\n\n {isOpened && (\n <div\n className=\"border-inp-hover-border bg-primary-bg absolute my-2 flex w-full\n flex-col rounded-xl border\"\n ref={wrapperRef}\n >\n {OPTIONS.map(({ label, icon }) => {\n const OptionIcon = contactIcons[icon];\n\n return (\n <Button\n key={label}\n variant=\"ghost\"\n className=\"flex w-full justify-start\"\n type=\"button\"\n onClick={handleTypeChange(icon)}\n >\n <StrokeIcon\n icon={OptionIcon}\n size=\"medium\"\n className=\"text-primary-inverse-text\"\n classes={getContactIconClasses(icon)}\n />\n\n {label}\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport type { Props as InputContactProps, TypesChange };\n"],"names":["OPTIONS","contactIcons","Phone","TelegramLogo","WhatsAppLogoFilled","MaxLogo","EnvelopeSimple","iconStyles","icon","getContactIconClasses","cn","InputContact","props","inputProps","inputPhoneProps","onTypeChange","rest","type","setType","useState","isOpened","openPopup","closePopup","usePopupControls","wrapperRef","useRef","useEffect","handleClickOutside","event","getPlaceholder","handleTypeChange","SelectedIcon","ToggleIcon","CaretUp","CaretDown","jsxs","jsx","InputField","StrokeIcon","InputPhone","label","OptionIcon","Button"],"mappings":"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"}
@@ -62,6 +62,7 @@ import "./index-C4iHL8Gs.js";
62
62
  import "./index-C6N9aMq_.js";
63
63
  import "phosphor-strokes-icons/icons/Plus";
64
64
  import { InputPhone as _ } from "./components-input-phone-input-phone.js";
65
+ import "./components-card-info-card-info.styles.js";
65
66
  const B = [
66
67
  {
67
68
  label: "Мобильный",
@@ -114,7 +115,7 @@ const B = [
114
115
  ${x(t).textColor ?? "text-primary-inverse-text"}`
115
116
  ),
116
117
  icon: "size-5 shrink-0"
117
- }), Xo = (t) => {
118
+ }), Yo = (t) => {
118
119
  const { inputProps: b, inputPhoneProps: v, onTypeChange: w, ...a } = t, [r, y] = j("phone"), { isOpened: m, openPopup: c, closePopup: p } = O(), l = F(null);
119
120
  A(() => {
120
121
  const o = (i) => {
@@ -248,6 +249,6 @@ const B = [
248
249
  ] });
249
250
  };
250
251
  export {
251
- Xo as InputContact
252
+ Yo as InputContact
252
253
  };
253
254
  //# sourceMappingURL=components-input-contact-input-contact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components-input-contact-input-contact.js","sources":["../src/constants/contact-input.ts","../src/components/input-contact/input-contact.tsx"],"sourcesContent":["import type { TOption } from \"@/components/input-contact/input-contact\";\n\nexport const OPTIONS: TOption[] = [\n {\n label: \"Мобильный\",\n icon: \"phone\",\n },\n {\n label: \"Telegram\",\n icon: \"telegram-logo\",\n },\n {\n label: \"WhatsApp\",\n icon: \"whats-app-logo-filled\",\n },\n {\n label: \"Max\",\n icon: \"max-logo\",\n },\n {\n label: \"E-mail\",\n icon: \"envelope-simple\",\n },\n];\n","import { OPTIONS } from \"@/constants/contact-input\";\nimport { CaretDown } from \"@/components/icons/CaretDown\";\nimport { CaretUp } from \"@/components/icons/CaretUp\";\nimport { EnvelopeSimple } from \"@/components/icons/EnvelopeSimple\";\nimport { MaxLogo } from \"@/components/icons/MaxLogo\";\nimport { Phone } from \"@/components/icons/Phone\";\nimport { StrokeIcon, type StrokeIconComponent } from \"@/components/icons/stroke-icon\";\nimport { TelegramLogo } from \"@/components/icons/TelegramLogo\";\nimport { WhatsAppLogoFilled } from \"@/components/icons/WhatsAppLogoFilled\";\nimport {\n Button,\n InputField,\n InputPhone,\n cn,\n usePopupControls,\n type InputPhoneProps,\n} from \"@/index\";\nimport { useEffect, useRef, useState } from \"react\";\n\nexport type TOption = {\n label: string;\n icon: TypesChange;\n};\n\ntype TypesChange =\n | \"phone\"\n | \"telegram-logo\"\n | \"whats-app-logo-filled\"\n | \"max-logo\"\n | \"envelope-simple\";\n\nconst contactIcons: Record<TypesChange, StrokeIconComponent> = {\n phone: Phone,\n \"telegram-logo\": TelegramLogo,\n \"whats-app-logo-filled\": WhatsAppLogoFilled,\n \"max-logo\": MaxLogo,\n \"envelope-simple\": EnvelopeSimple,\n};\n\ntype Props = {\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n container?: string;\n };\n value?: string;\n name?: string;\n onTypeChange?: (type: TypesChange) => void;\n inputProps: React.ComponentPropsWithRef<\"input\">;\n inputPhoneProps: InputPhoneProps;\n};\n\n// TODO: заменить цвета\nconst iconStyles = (icon: TypesChange) => {\n switch (icon) {\n case \"max-logo\":\n return {\n bgColor: \"bg-[linear-gradient(135deg,#9933DD_0%,#2831B9_50%,#44CCFF_100%)]\",\n };\n\n case \"telegram-logo\":\n return {\n bgColor: \"bg-[#289AD2]\",\n };\n\n case \"whats-app-logo-filled\":\n return {\n bgColor: \"bg-[#00C202]\",\n textColor: \"text-[#00C202]\",\n };\n\n default:\n return {};\n }\n};\n\nconst getContactIconClasses = (icon: TypesChange) => ({\n wrapper: cn(\n `flex h-5.5 w-5.5 shrink-0 items-center justify-center rounded-sm\n ${iconStyles(icon).bgColor ?? \"bg-primary-inverse-hover-bg\"}\n ${iconStyles(icon).textColor ?? \"text-primary-inverse-text\"}`,\n ),\n icon: \"size-5 shrink-0\",\n});\n\nexport const InputContact = (props: Props) => {\n const { inputProps, inputPhoneProps, onTypeChange, ...rest } = props;\n\n const [type, setType] = useState<TypesChange>(\"phone\");\n const { isOpened, openPopup, closePopup } = usePopupControls();\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n closePopup();\n }\n };\n\n if (isOpened) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpened, closePopup]);\n\n const getPlaceholder = (type: TypesChange): string => {\n switch (type) {\n case \"phone\":\n return \"+7 (999) 999-99-99\";\n case \"telegram-logo\":\n return \"@username\";\n case \"whats-app-logo-filled\":\n return \"+7 (999) 999-99-99\";\n case \"max-logo\":\n return \"ID пользователя Max\";\n case \"envelope-simple\":\n return \"example@mail.com\";\n default:\n return \"Введите значение\";\n }\n };\n\n const handleTypeChange = (type: TypesChange) => {\n return () => {\n setType(type);\n onTypeChange?.(type);\n closePopup();\n };\n };\n\n const SelectedIcon = contactIcons[type];\n const ToggleIcon = isOpened ? CaretUp : CaretDown;\n\n return (\n <div className={cn(\"relative\", props.classes?.container)}>\n {[\"telegram-logo\", \"max-logo\", \"envelope-simple\"].includes(type) ? (\n <InputField\n {...inputProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n ) : (\n <InputPhone\n {...inputPhoneProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n )}\n\n {isOpened && (\n <div\n className=\"border-inp-hover-border bg-primary-bg absolute my-2 flex w-full\n flex-col rounded-xl border\"\n ref={wrapperRef}\n >\n {OPTIONS.map(({ label, icon }) => {\n const OptionIcon = contactIcons[icon];\n\n return (\n <Button\n key={label}\n variant=\"ghost\"\n className=\"flex w-full justify-start\"\n type=\"button\"\n onClick={handleTypeChange(icon)}\n >\n <StrokeIcon\n icon={OptionIcon}\n size=\"medium\"\n className=\"text-primary-inverse-text\"\n classes={getContactIconClasses(icon)}\n />\n\n {label}\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport type { Props as InputContactProps, TypesChange };\n"],"names":["OPTIONS","contactIcons","Phone","TelegramLogo","WhatsAppLogoFilled","MaxLogo","EnvelopeSimple","iconStyles","icon","getContactIconClasses","cn","InputContact","props","inputProps","inputPhoneProps","onTypeChange","rest","type","setType","useState","isOpened","openPopup","closePopup","usePopupControls","wrapperRef","useRef","useEffect","handleClickOutside","event","getPlaceholder","handleTypeChange","SelectedIcon","ToggleIcon","CaretUp","CaretDown","jsxs","jsx","InputField","StrokeIcon","InputPhone","label","OptionIcon","Button"],"mappings":"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"}
1
+ {"version":3,"file":"components-input-contact-input-contact.js","sources":["../src/constants/contact-input.ts","../src/components/input-contact/input-contact.tsx"],"sourcesContent":["import type { TOption } from \"@/components/input-contact/input-contact\";\n\nexport const OPTIONS: TOption[] = [\n {\n label: \"Мобильный\",\n icon: \"phone\",\n },\n {\n label: \"Telegram\",\n icon: \"telegram-logo\",\n },\n {\n label: \"WhatsApp\",\n icon: \"whats-app-logo-filled\",\n },\n {\n label: \"Max\",\n icon: \"max-logo\",\n },\n {\n label: \"E-mail\",\n icon: \"envelope-simple\",\n },\n];\n","import { OPTIONS } from \"@/constants/contact-input\";\nimport { CaretDown } from \"@/components/icons/CaretDown\";\nimport { CaretUp } from \"@/components/icons/CaretUp\";\nimport { EnvelopeSimple } from \"@/components/icons/EnvelopeSimple\";\nimport { MaxLogo } from \"@/components/icons/MaxLogo\";\nimport { Phone } from \"@/components/icons/Phone\";\nimport { StrokeIcon, type StrokeIconComponent } from \"@/components/icons/stroke-icon\";\nimport { TelegramLogo } from \"@/components/icons/TelegramLogo\";\nimport { WhatsAppLogoFilled } from \"@/components/icons/WhatsAppLogoFilled\";\nimport {\n Button,\n InputField,\n InputPhone,\n cn,\n usePopupControls,\n type InputPhoneProps,\n} from \"@/index\";\nimport { useEffect, useRef, useState } from \"react\";\n\nexport type TOption = {\n label: string;\n icon: TypesChange;\n};\n\ntype TypesChange =\n | \"phone\"\n | \"telegram-logo\"\n | \"whats-app-logo-filled\"\n | \"max-logo\"\n | \"envelope-simple\";\n\nconst contactIcons: Record<TypesChange, StrokeIconComponent> = {\n phone: Phone,\n \"telegram-logo\": TelegramLogo,\n \"whats-app-logo-filled\": WhatsAppLogoFilled,\n \"max-logo\": MaxLogo,\n \"envelope-simple\": EnvelopeSimple,\n};\n\ntype Props = {\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n container?: string;\n };\n value?: string;\n name?: string;\n onTypeChange?: (type: TypesChange) => void;\n inputProps: React.ComponentPropsWithRef<\"input\">;\n inputPhoneProps: InputPhoneProps;\n};\n\n// TODO: заменить цвета\nconst iconStyles = (icon: TypesChange) => {\n switch (icon) {\n case \"max-logo\":\n return {\n bgColor: \"bg-[linear-gradient(135deg,#9933DD_0%,#2831B9_50%,#44CCFF_100%)]\",\n };\n\n case \"telegram-logo\":\n return {\n bgColor: \"bg-[#289AD2]\",\n };\n\n case \"whats-app-logo-filled\":\n return {\n bgColor: \"bg-[#00C202]\",\n textColor: \"text-[#00C202]\",\n };\n\n default:\n return {};\n }\n};\n\nconst getContactIconClasses = (icon: TypesChange) => ({\n wrapper: cn(\n `flex h-5.5 w-5.5 shrink-0 items-center justify-center rounded-sm\n ${iconStyles(icon).bgColor ?? \"bg-primary-inverse-hover-bg\"}\n ${iconStyles(icon).textColor ?? \"text-primary-inverse-text\"}`,\n ),\n icon: \"size-5 shrink-0\",\n});\n\nexport const InputContact = (props: Props) => {\n const { inputProps, inputPhoneProps, onTypeChange, ...rest } = props;\n\n const [type, setType] = useState<TypesChange>(\"phone\");\n const { isOpened, openPopup, closePopup } = usePopupControls();\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {\n closePopup();\n }\n };\n\n if (isOpened) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [isOpened, closePopup]);\n\n const getPlaceholder = (type: TypesChange): string => {\n switch (type) {\n case \"phone\":\n return \"+7 (999) 999-99-99\";\n case \"telegram-logo\":\n return \"@username\";\n case \"whats-app-logo-filled\":\n return \"+7 (999) 999-99-99\";\n case \"max-logo\":\n return \"ID пользователя Max\";\n case \"envelope-simple\":\n return \"example@mail.com\";\n default:\n return \"Введите значение\";\n }\n };\n\n const handleTypeChange = (type: TypesChange) => {\n return () => {\n setType(type);\n onTypeChange?.(type);\n closePopup();\n };\n };\n\n const SelectedIcon = contactIcons[type];\n const ToggleIcon = isOpened ? CaretUp : CaretDown;\n\n return (\n <div className={cn(\"relative\", props.classes?.container)}>\n {[\"telegram-logo\", \"max-logo\", \"envelope-simple\"].includes(type) ? (\n <InputField\n {...inputProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n ) : (\n <InputPhone\n {...inputPhoneProps}\n {...rest}\n date={[\n {\n id: \"0\",\n position: \"inline-start\",\n component: (\n <StrokeIcon\n icon={SelectedIcon}\n size=\"medium\"\n classes={getContactIconClasses(type)}\n />\n ),\n },\n {\n id: \"1\",\n position: \"inline-end\",\n component: (\n <StrokeIcon\n icon={ToggleIcon}\n size=\"medium\"\n className=\"cursor-pointer\"\n onClick={openPopup}\n />\n ),\n },\n ]}\n placeholder={getPlaceholder(type)}\n />\n )}\n\n {isOpened && (\n <div\n className=\"border-inp-hover-border bg-primary-bg absolute my-2 flex w-full\n flex-col rounded-xl border\"\n ref={wrapperRef}\n >\n {OPTIONS.map(({ label, icon }) => {\n const OptionIcon = contactIcons[icon];\n\n return (\n <Button\n key={label}\n variant=\"ghost\"\n className=\"flex w-full justify-start\"\n type=\"button\"\n onClick={handleTypeChange(icon)}\n >\n <StrokeIcon\n icon={OptionIcon}\n size=\"medium\"\n className=\"text-primary-inverse-text\"\n classes={getContactIconClasses(icon)}\n />\n\n {label}\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport type { Props as InputContactProps, TypesChange };\n"],"names":["OPTIONS","contactIcons","Phone","TelegramLogo","WhatsAppLogoFilled","MaxLogo","EnvelopeSimple","iconStyles","icon","getContactIconClasses","cn","InputContact","props","inputProps","inputPhoneProps","onTypeChange","rest","type","setType","useState","isOpened","openPopup","closePopup","usePopupControls","wrapperRef","useRef","useEffect","handleClickOutside","event","getPlaceholder","handleTypeChange","SelectedIcon","ToggleIcon","CaretUp","CaretDown","jsxs","jsx","InputField","StrokeIcon","InputPhone","label","OptionIcon","Button"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("./components-ui-field-field.cjs"),j=require("./components-ui-input-input.cjs"),o=require("./components-ui-input-group-input-group.cjs"),m=({date:p=[],isValid:l,disabled:e=!1,label:s,description:c,classes:u,ref:d,...a})=>{const t={...l===!0&&!e&&{"aria-valid":!0},...l===!1&&!e&&{"aria-invalid":!0},disabled:e};return n.jsx(i.FieldSet,{className:u?.fieldset,children:n.jsx(i.FieldGroup,{className:u?.fieldgroup,children:n.jsxs(i.Field,{className:u?.field,children:[s&&n.jsx(i.FieldLabel,{...t,children:s}),p.length>0?n.jsxs(o.InputGroup,{"data-slot":!0,children:[n.jsx(o.InputGroupInput,{ref:d,...a,...t,disabled:e}),p.map(r=>n.jsx(o.InputGroupAddon,{align:r.position,children:r.component},r.id))]}):n.jsx(j.Input,{ref:d,...a,...t,disabled:e}),c&&n.jsx(i.FieldDescription,{...t,children:c})]})})})};exports.InputField=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),t=require("./components-ui-field-field.cjs"),m=require("./components-ui-input-input.cjs"),o=require("./components-ui-input-group-input-group.cjs"),j=({date:p=[],isValid:l,disabled:e=!1,label:s,description:c,classes:i,ref:d,...a})=>{const u={...l===!0&&!e&&{"aria-valid":!0},...l===!1&&!e&&{"aria-invalid":!0},disabled:e};return n.jsx(t.FieldSet,{className:i?.fieldset,children:n.jsx(t.FieldGroup,{className:i?.fieldgroup,children:n.jsxs(t.Field,{className:i?.field,children:[s&&n.jsx(t.FieldLabel,{...u,children:s}),p.length>0?n.jsxs(o.InputGroup,{"data-slot":!0,className:i?.inputgroup,children:[n.jsx(o.InputGroupInput,{ref:d,...a,...u,disabled:e}),p.map(r=>n.jsx(o.InputGroupAddon,{align:r.position,className:i?.inputaddon,children:r.component},r.id))]}):n.jsx(m.Input,{ref:d,...a,...u,disabled:e}),c&&n.jsx(t.FieldDescription,{...u,children:c})]})})})};exports.InputField=j;
2
2
  //# sourceMappingURL=components-input-field-input-field.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"components-input-field-input-field.cjs","sources":["../src/components/input-field/input-field.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from \"react\";\nimport { Field, FieldDescription, FieldGroup, FieldLabel, FieldSet } from \"../ui/field\";\nimport { Input } from \"../ui/input\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"../ui/input-group\";\n\nexport type DateAddon = {\n id: string | number;\n position?: \"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\" | null;\n component: ReactNode;\n};\n\ntype BaseProps = {\n date?: DateAddon[];\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n };\n};\n\ntype InputFieldProps = BaseProps & ComponentPropsWithRef<\"input\">;\n\nexport const InputField = ({\n date = [],\n isValid,\n disabled = false,\n label,\n description,\n classes,\n ref,\n ...rest\n}: InputFieldProps) => {\n const validationProps = {\n ...(isValid === true && !disabled && { \"aria-valid\": true }),\n ...(isValid === false && !disabled && { \"aria-invalid\": true }),\n disabled,\n };\n\n return (\n <FieldSet className={classes?.fieldset}>\n <FieldGroup className={classes?.fieldgroup}>\n <Field className={classes?.field}>\n {label && <FieldLabel {...validationProps}>{label}</FieldLabel>}\n {date.length > 0 ? (\n <InputGroup data-slot>\n <InputGroupInput\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n {date.map((e) => (\n <InputGroupAddon\n key={e.id}\n align={e.position}\n >\n {e.component}\n </InputGroupAddon>\n ))}\n </InputGroup>\n ) : (\n <Input\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n )}\n {description && (\n <FieldDescription {...validationProps}>{description}</FieldDescription>\n )}\n </Field>\n </FieldGroup>\n </FieldSet>\n );\n};\n\ntype InputProps = InputFieldProps;\n\nexport type { InputFieldProps, InputProps };\n"],"names":["InputField","date","isValid","disabled","label","description","classes","ref","rest","validationProps","jsx","FieldSet","FieldGroup","jsxs","Field","FieldLabel","InputGroup","InputGroupInput","e","InputGroupAddon","Input","FieldDescription"],"mappings":"wQAyBaA,EAAa,CAAC,CACzB,KAAAC,EAAO,CAAA,EACP,QAAAC,EACA,SAAAC,EAAW,GACX,MAAAC,EACA,YAAAC,EACA,QAAAC,EACA,IAAAC,EACA,GAAGC,CACL,IAAuB,CACrB,MAAMC,EAAkB,CACtB,GAAIP,IAAY,IAAQ,CAACC,GAAY,CAAE,aAAc,EAAA,EACrD,GAAID,IAAY,IAAS,CAACC,GAAY,CAAE,eAAgB,EAAA,EACxD,SAAAA,CAAA,EAGF,OACEO,EAAAA,IAACC,EAAAA,SAAA,CAAS,UAAWL,GAAS,SAC5B,SAAAI,EAAAA,IAACE,aAAA,CAAW,UAAWN,GAAS,WAC9B,SAAAO,OAACC,EAAAA,MAAA,CAAM,UAAWR,GAAS,MACxB,SAAA,CAAAF,GAASM,EAAAA,IAACK,aAAA,CAAY,GAAGN,EAAkB,SAAAL,EAAM,EACjDH,EAAK,OAAS,EACbY,EAAAA,KAACG,EAAAA,WAAA,CAAW,YAAS,GACnB,SAAA,CAAAN,EAAAA,IAACO,EAAAA,gBAAA,CACC,IAAAV,EACC,GAAGC,EACH,GAAGC,EACJ,SAAAN,CAAA,CAAA,EAEDF,EAAK,IAAKiB,GACTR,EAAAA,IAACS,EAAAA,gBAAA,CAEC,MAAOD,EAAE,SAER,SAAAA,EAAE,SAAA,EAHEA,EAAE,EAAA,CAKV,CAAA,CAAA,CACH,EAEAR,EAAAA,IAACU,EAAAA,MAAA,CACC,IAAAb,EACC,GAAGC,EACH,GAAGC,EACJ,SAAAN,CAAA,CAAA,EAGHE,GACCK,EAAAA,IAACW,EAAAA,iBAAA,CAAkB,GAAGZ,EAAkB,SAAAJ,CAAA,CAAY,CAAA,CAAA,CAExD,EACF,EACF,CAEJ"}
1
+ {"version":3,"file":"components-input-field-input-field.cjs","sources":["../src/components/input-field/input-field.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from \"react\";\nimport { Field, FieldDescription, FieldGroup, FieldLabel, FieldSet } from \"../ui/field\";\nimport { Input } from \"../ui/input\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"../ui/input-group\";\n\nexport type DateAddon = {\n id: string | number;\n position?: \"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\" | null;\n component: ReactNode;\n};\n\ntype BaseProps = {\n date?: DateAddon[];\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n inputgroup?: string;\n inputaddon?: string;\n };\n};\n\ntype InputFieldProps = BaseProps & ComponentPropsWithRef<\"input\">;\n\nexport const InputField = ({\n date = [],\n isValid,\n disabled = false,\n label,\n description,\n classes,\n ref,\n ...rest\n}: InputFieldProps) => {\n const validationProps = {\n ...(isValid === true && !disabled && { \"aria-valid\": true }),\n ...(isValid === false && !disabled && { \"aria-invalid\": true }),\n disabled,\n };\n\n return (\n <FieldSet className={classes?.fieldset}>\n <FieldGroup className={classes?.fieldgroup}>\n <Field className={classes?.field}>\n {label && <FieldLabel {...validationProps}>{label}</FieldLabel>}\n {date.length > 0 ? (\n <InputGroup\n data-slot\n className={classes?.inputgroup}\n >\n <InputGroupInput\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n {date.map((e) => (\n <InputGroupAddon\n key={e.id}\n align={e.position}\n className={classes?.inputaddon}\n >\n {e.component}\n </InputGroupAddon>\n ))}\n </InputGroup>\n ) : (\n <Input\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n )}\n {description && (\n <FieldDescription {...validationProps}>{description}</FieldDescription>\n )}\n </Field>\n </FieldGroup>\n </FieldSet>\n );\n};\n\ntype InputProps = InputFieldProps;\n\nexport type { InputFieldProps, InputProps };\n"],"names":["InputField","date","isValid","disabled","label","description","classes","ref","rest","validationProps","jsx","FieldSet","FieldGroup","jsxs","Field","FieldLabel","InputGroup","InputGroupInput","e","InputGroupAddon","Input","FieldDescription"],"mappings":"wQA2BaA,EAAa,CAAC,CACzB,KAAAC,EAAO,CAAA,EACP,QAAAC,EACA,SAAAC,EAAW,GACX,MAAAC,EACA,YAAAC,EACA,QAAAC,EACA,IAAAC,EACA,GAAGC,CACL,IAAuB,CACrB,MAAMC,EAAkB,CACtB,GAAIP,IAAY,IAAQ,CAACC,GAAY,CAAE,aAAc,EAAA,EACrD,GAAID,IAAY,IAAS,CAACC,GAAY,CAAE,eAAgB,EAAA,EACxD,SAAAA,CAAA,EAGF,OACEO,EAAAA,IAACC,EAAAA,SAAA,CAAS,UAAWL,GAAS,SAC5B,SAAAI,EAAAA,IAACE,aAAA,CAAW,UAAWN,GAAS,WAC9B,SAAAO,OAACC,EAAAA,MAAA,CAAM,UAAWR,GAAS,MACxB,SAAA,CAAAF,GAASM,EAAAA,IAACK,aAAA,CAAY,GAAGN,EAAkB,SAAAL,EAAM,EACjDH,EAAK,OAAS,EACbY,EAAAA,KAACG,EAAAA,WAAA,CACC,YAAS,GACT,UAAWV,GAAS,WAEpB,SAAA,CAAAI,EAAAA,IAACO,EAAAA,gBAAA,CACC,IAAAV,EACC,GAAGC,EACH,GAAGC,EACJ,SAAAN,CAAA,CAAA,EAEDF,EAAK,IAAKiB,GACTR,EAAAA,IAACS,EAAAA,gBAAA,CAEC,MAAOD,EAAE,SACT,UAAWZ,GAAS,WAEnB,SAAAY,EAAE,SAAA,EAJEA,EAAE,EAAA,CAMV,CAAA,CAAA,CAAA,EAGHR,EAAAA,IAACU,EAAAA,MAAA,CACC,IAAAb,EACC,GAAGC,EACH,GAAGC,EACJ,SAAAN,CAAA,CAAA,EAGHE,GACCK,EAAAA,IAACW,EAAAA,iBAAA,CAAkB,GAAGZ,EAAkB,SAAAJ,CAAA,CAAY,CAAA,CAAA,CAExD,EACF,EACF,CAEJ"}
@@ -1,52 +1,60 @@
1
1
  import { jsx as r, jsxs as d } from "react/jsx-runtime";
2
2
  import { FieldSet as c, FieldGroup as f, Field as h, FieldLabel as F, FieldDescription as I } from "./components-ui-field-field.js";
3
- import { Input as s } from "./components-ui-input-input.js";
4
- import { InputGroup as G, InputGroupInput as g, InputGroupAddon as v } from "./components-ui-input-group-input-group.js";
3
+ import { Input as N } from "./components-ui-input-input.js";
4
+ import { InputGroup as g, InputGroupInput as G, InputGroupAddon as s } from "./components-ui-input-group-input-group.js";
5
5
  const D = ({
6
- date: e = [],
7
- isValid: p,
6
+ date: p = [],
7
+ isValid: e,
8
8
  disabled: i = !1,
9
9
  label: l,
10
10
  description: u,
11
- classes: o,
12
- ref: m,
13
- ...a
11
+ classes: n,
12
+ ref: a,
13
+ ...m
14
14
  }) => {
15
- const n = {
16
- ...p === !0 && !i && { "aria-valid": !0 },
17
- ...p === !1 && !i && { "aria-invalid": !0 },
15
+ const o = {
16
+ ...e === !0 && !i && { "aria-valid": !0 },
17
+ ...e === !1 && !i && { "aria-invalid": !0 },
18
18
  disabled: i
19
19
  };
20
- return /* @__PURE__ */ r(c, { className: o?.fieldset, children: /* @__PURE__ */ r(f, { className: o?.fieldgroup, children: /* @__PURE__ */ d(h, { className: o?.field, children: [
21
- l && /* @__PURE__ */ r(F, { ...n, children: l }),
22
- e.length > 0 ? /* @__PURE__ */ d(G, { "data-slot": !0, children: [
23
- /* @__PURE__ */ r(
24
- g,
25
- {
26
- ref: m,
27
- ...a,
28
- ...n,
29
- disabled: i
30
- }
31
- ),
32
- e.map((t) => /* @__PURE__ */ r(
33
- v,
34
- {
35
- align: t.position,
36
- children: t.component
37
- },
38
- t.id
39
- ))
40
- ] }) : /* @__PURE__ */ r(
41
- s,
20
+ return /* @__PURE__ */ r(c, { className: n?.fieldset, children: /* @__PURE__ */ r(f, { className: n?.fieldgroup, children: /* @__PURE__ */ d(h, { className: n?.field, children: [
21
+ l && /* @__PURE__ */ r(F, { ...o, children: l }),
22
+ p.length > 0 ? /* @__PURE__ */ d(
23
+ g,
42
24
  {
43
- ref: m,
44
- ...a,
45
- ...n,
25
+ "data-slot": !0,
26
+ className: n?.inputgroup,
27
+ children: [
28
+ /* @__PURE__ */ r(
29
+ G,
30
+ {
31
+ ref: a,
32
+ ...m,
33
+ ...o,
34
+ disabled: i
35
+ }
36
+ ),
37
+ p.map((t) => /* @__PURE__ */ r(
38
+ s,
39
+ {
40
+ align: t.position,
41
+ className: n?.inputaddon,
42
+ children: t.component
43
+ },
44
+ t.id
45
+ ))
46
+ ]
47
+ }
48
+ ) : /* @__PURE__ */ r(
49
+ N,
50
+ {
51
+ ref: a,
52
+ ...m,
53
+ ...o,
46
54
  disabled: i
47
55
  }
48
56
  ),
49
- u && /* @__PURE__ */ r(I, { ...n, children: u })
57
+ u && /* @__PURE__ */ r(I, { ...o, children: u })
50
58
  ] }) }) });
51
59
  };
52
60
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"components-input-field-input-field.js","sources":["../src/components/input-field/input-field.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from \"react\";\nimport { Field, FieldDescription, FieldGroup, FieldLabel, FieldSet } from \"../ui/field\";\nimport { Input } from \"../ui/input\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"../ui/input-group\";\n\nexport type DateAddon = {\n id: string | number;\n position?: \"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\" | null;\n component: ReactNode;\n};\n\ntype BaseProps = {\n date?: DateAddon[];\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n };\n};\n\ntype InputFieldProps = BaseProps & ComponentPropsWithRef<\"input\">;\n\nexport const InputField = ({\n date = [],\n isValid,\n disabled = false,\n label,\n description,\n classes,\n ref,\n ...rest\n}: InputFieldProps) => {\n const validationProps = {\n ...(isValid === true && !disabled && { \"aria-valid\": true }),\n ...(isValid === false && !disabled && { \"aria-invalid\": true }),\n disabled,\n };\n\n return (\n <FieldSet className={classes?.fieldset}>\n <FieldGroup className={classes?.fieldgroup}>\n <Field className={classes?.field}>\n {label && <FieldLabel {...validationProps}>{label}</FieldLabel>}\n {date.length > 0 ? (\n <InputGroup data-slot>\n <InputGroupInput\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n {date.map((e) => (\n <InputGroupAddon\n key={e.id}\n align={e.position}\n >\n {e.component}\n </InputGroupAddon>\n ))}\n </InputGroup>\n ) : (\n <Input\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n )}\n {description && (\n <FieldDescription {...validationProps}>{description}</FieldDescription>\n )}\n </Field>\n </FieldGroup>\n </FieldSet>\n );\n};\n\ntype InputProps = InputFieldProps;\n\nexport type { InputFieldProps, InputProps };\n"],"names":["InputField","date","isValid","disabled","label","description","classes","ref","rest","validationProps","jsx","FieldSet","FieldGroup","jsxs","Field","FieldLabel","InputGroup","InputGroupInput","e","InputGroupAddon","Input","FieldDescription"],"mappings":";;;;AAyBO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC,IAAO,CAAA;AAAA,EACP,SAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAuB;AACrB,QAAMC,IAAkB;AAAA,IACtB,GAAIP,MAAY,MAAQ,CAACC,KAAY,EAAE,cAAc,GAAA;AAAA,IACrD,GAAID,MAAY,MAAS,CAACC,KAAY,EAAE,gBAAgB,GAAA;AAAA,IACxD,UAAAA;AAAA,EAAA;AAGF,SACE,gBAAAO,EAACC,GAAA,EAAS,WAAWL,GAAS,UAC5B,UAAA,gBAAAI,EAACE,GAAA,EAAW,WAAWN,GAAS,YAC9B,UAAA,gBAAAO,EAACC,GAAA,EAAM,WAAWR,GAAS,OACxB,UAAA;AAAA,IAAAF,KAAS,gBAAAM,EAACK,GAAA,EAAY,GAAGN,GAAkB,UAAAL,GAAM;AAAA,IACjDH,EAAK,SAAS,IACb,gBAAAY,EAACG,GAAA,EAAW,aAAS,IACnB,UAAA;AAAA,MAAA,gBAAAN;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,KAAAV;AAAA,UACC,GAAGC;AAAA,UACH,GAAGC;AAAA,UACJ,UAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,MAEDF,EAAK,IAAI,CAACiB,MACT,gBAAAR;AAAA,QAACS;AAAA,QAAA;AAAA,UAEC,OAAOD,EAAE;AAAA,UAER,UAAAA,EAAE;AAAA,QAAA;AAAA,QAHEA,EAAE;AAAA,MAAA,CAKV;AAAA,IAAA,EAAA,CACH,IAEA,gBAAAR;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACC,GAAGC;AAAA,QACH,GAAGC;AAAA,QACJ,UAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHE,KACC,gBAAAK,EAACW,GAAA,EAAkB,GAAGZ,GAAkB,UAAAJ,EAAA,CAAY;AAAA,EAAA,EAAA,CAExD,GACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"components-input-field-input-field.js","sources":["../src/components/input-field/input-field.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from \"react\";\nimport { Field, FieldDescription, FieldGroup, FieldLabel, FieldSet } from \"../ui/field\";\nimport { Input } from \"../ui/input\";\nimport { InputGroup, InputGroupAddon, InputGroupInput } from \"../ui/input-group\";\n\nexport type DateAddon = {\n id: string | number;\n position?: \"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\" | null;\n component: ReactNode;\n};\n\ntype BaseProps = {\n date?: DateAddon[];\n isValid?: boolean;\n label?: string;\n description?: string;\n classes?: {\n fieldset?: string;\n fieldgroup?: string;\n field?: string;\n inputgroup?: string;\n inputaddon?: string;\n };\n};\n\ntype InputFieldProps = BaseProps & ComponentPropsWithRef<\"input\">;\n\nexport const InputField = ({\n date = [],\n isValid,\n disabled = false,\n label,\n description,\n classes,\n ref,\n ...rest\n}: InputFieldProps) => {\n const validationProps = {\n ...(isValid === true && !disabled && { \"aria-valid\": true }),\n ...(isValid === false && !disabled && { \"aria-invalid\": true }),\n disabled,\n };\n\n return (\n <FieldSet className={classes?.fieldset}>\n <FieldGroup className={classes?.fieldgroup}>\n <Field className={classes?.field}>\n {label && <FieldLabel {...validationProps}>{label}</FieldLabel>}\n {date.length > 0 ? (\n <InputGroup\n data-slot\n className={classes?.inputgroup}\n >\n <InputGroupInput\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n {date.map((e) => (\n <InputGroupAddon\n key={e.id}\n align={e.position}\n className={classes?.inputaddon}\n >\n {e.component}\n </InputGroupAddon>\n ))}\n </InputGroup>\n ) : (\n <Input\n ref={ref}\n {...rest}\n {...validationProps}\n disabled={disabled}\n />\n )}\n {description && (\n <FieldDescription {...validationProps}>{description}</FieldDescription>\n )}\n </Field>\n </FieldGroup>\n </FieldSet>\n );\n};\n\ntype InputProps = InputFieldProps;\n\nexport type { InputFieldProps, InputProps };\n"],"names":["InputField","date","isValid","disabled","label","description","classes","ref","rest","validationProps","jsx","FieldSet","FieldGroup","jsxs","Field","FieldLabel","InputGroup","InputGroupInput","e","InputGroupAddon","Input","FieldDescription"],"mappings":";;;;AA2BO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC,IAAO,CAAA;AAAA,EACP,SAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,KAAAC;AAAA,EACA,GAAGC;AACL,MAAuB;AACrB,QAAMC,IAAkB;AAAA,IACtB,GAAIP,MAAY,MAAQ,CAACC,KAAY,EAAE,cAAc,GAAA;AAAA,IACrD,GAAID,MAAY,MAAS,CAACC,KAAY,EAAE,gBAAgB,GAAA;AAAA,IACxD,UAAAA;AAAA,EAAA;AAGF,SACE,gBAAAO,EAACC,GAAA,EAAS,WAAWL,GAAS,UAC5B,UAAA,gBAAAI,EAACE,GAAA,EAAW,WAAWN,GAAS,YAC9B,UAAA,gBAAAO,EAACC,GAAA,EAAM,WAAWR,GAAS,OACxB,UAAA;AAAA,IAAAF,KAAS,gBAAAM,EAACK,GAAA,EAAY,GAAGN,GAAkB,UAAAL,GAAM;AAAA,IACjDH,EAAK,SAAS,IACb,gBAAAY;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,aAAS;AAAA,QACT,WAAWV,GAAS;AAAA,QAEpB,UAAA;AAAA,UAAA,gBAAAI;AAAA,YAACO;AAAA,YAAA;AAAA,cACC,KAAAV;AAAA,cACC,GAAGC;AAAA,cACH,GAAGC;AAAA,cACJ,UAAAN;AAAA,YAAA;AAAA,UAAA;AAAA,UAEDF,EAAK,IAAI,CAACiB,MACT,gBAAAR;AAAA,YAACS;AAAA,YAAA;AAAA,cAEC,OAAOD,EAAE;AAAA,cACT,WAAWZ,GAAS;AAAA,cAEnB,UAAAY,EAAE;AAAA,YAAA;AAAA,YAJEA,EAAE;AAAA,UAAA,CAMV;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAGH,gBAAAR;AAAA,MAACU;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACC,GAAGC;AAAA,QACH,GAAGC;AAAA,QACJ,UAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,IAGHE,KACC,gBAAAK,EAACW,GAAA,EAAkB,GAAGZ,GAAkB,UAAAJ,EAAA,CAAY;AAAA,EAAA,EAAA,CAExD,GACF,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");const r=require("./transfer-list-card-D2oGp-Rw.cjs");require("phosphor-strokes-icons/icons");require("@radix-ui/react-dropdown-menu");exports.TransferListCard=r.TransferListCard;
2
+ //# sourceMappingURL=components-transfer-list-transfer-list-card.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-transfer-list-transfer-list-card.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import "react/jsx-runtime";
2
+ import { T as p } from "./transfer-list-card-3JPB-sdd.js";
3
+ import "phosphor-strokes-icons/icons";
4
+ import "@radix-ui/react-dropdown-menu";
5
+ export {
6
+ p as TransferListCard
7
+ };
8
+ //# sourceMappingURL=components-transfer-list-transfer-list-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-transfer-list-transfer-list-card.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),l=require("./transfer-list-card-D2oGp-Rw.cjs");require("phosphor-strokes-icons/icons");require("@radix-ui/react-dropdown-menu");const t=require("react"),f=!1,h=!0,w=({list:r,onChange:m})=>{const a=t.useMemo(()=>r.filter(e=>!e.inTarget),[r]),i=t.useMemo(()=>r.filter(e=>e.inTarget),[r]),[n,g]=t.useState([]),T=t.useMemo(()=>new Set(n),[n]),x=t.useMemo(()=>new Set(a.map(e=>e.id)),[a]),I=t.useMemo(()=>new Set(i.map(e=>e.id)),[i]),C=t.useMemo(()=>n.filter(e=>x.has(e)).length,[n,x]),b=t.useMemo(()=>n.filter(e=>I.has(e)).length,[n,I]),S=t.useCallback(e=>{g(s=>s.includes(e)?s.filter(d=>d!==e):[...s,e])},[]),o=t.useCallback((e,s)=>{const d=s??n;if(d.length===0)return;const k=new Set(d),v=r.map(u=>!k.has(u.id)||u.inTarget===e?u:{...u,inTarget:e});m(v),g([])},[r,m,n]),M=t.useCallback(e=>{o(e,r.filter(s=>s.inTarget!==e).map(s=>s.id))},[r,o]),j=t.useCallback(e=>{o(h,[e])},[o]),p=t.useCallback(e=>{o(f,[e])},[o]);return c.jsxs("div",{className:"ml-100 flex h-full min-h-0 w-fit gap-6",children:[c.jsx(l.TransferListCard,{items:a,selectedSet:T,onSelectItem:S,onMoveItem:j,direction:"right",showHeaderTooltip:!0,headerButton:{icon:"caret-right",onClick:()=>M(h),disabled:a.length===0},showFooterIcons:!1}),c.jsxs("div",{className:"flex h-full flex-col justify-center gap-8",children:[c.jsx(l.f,{variant:"circle",onClick:()=>o(h),disabled:C===0,children:c.jsx(l.y,{type:"caret-right",className:"text-placeholder-text"})}),c.jsx(l.f,{variant:"circle",onClick:()=>o(f),disabled:b===0,children:c.jsx(l.y,{type:"caret-left",className:"text-placeholder-text"})})]}),c.jsx(l.TransferListCard,{items:i,selectedSet:T,onSelectItem:S,onMoveItem:p,direction:"left",headerButton:{icon:"caret-left",onClick:()=>M(f),disabled:i.length===0},showFooterIcons:!0})]})};exports.TransferList=w;
2
+ //# sourceMappingURL=components-transfer-list-transfer-list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-transfer-list-transfer-list.cjs","sources":["../src/components/transfer-list/transfer-list.tsx"],"sourcesContent":["import { Button, Icon } from \"brd-ui-kit\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { TransferListCard } from \"./transfer-list-card\";\n\nexport type TransferListItem = {\n id: string;\n label: string;\n disabled?: boolean;\n inTarget: boolean;\n};\n\ntype Props = {\n list: TransferListItem[];\n onChange: (item: TransferListItem[]) => void;\n};\n\nconst MOVE_TO_LEFT = false;\nconst MOVE_TO_RIGHT = true;\n\nexport const TransferList = ({ list, onChange }: Props) => {\n const leftItems = useMemo(() => list.filter((i) => !i.inTarget), [list]);\n const rightItems = useMemo(() => list.filter((i) => i.inTarget), [list]);\n\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n\n const selectedSet = useMemo(() => new Set(selectedIds), [selectedIds]);\n const leftIdSet = useMemo(() => new Set(leftItems.map((item) => item.id)), [leftItems]);\n const rightIdSet = useMemo(\n () => new Set(rightItems.map((item) => item.id)),\n [rightItems],\n );\n\n const selectedLeftCount = useMemo(\n () => selectedIds.filter((id) => leftIdSet.has(id)).length,\n [selectedIds, leftIdSet],\n );\n const selectedRightCount = useMemo(\n () => selectedIds.filter((id) => rightIdSet.has(id)).length,\n [selectedIds, rightIdSet],\n );\n\n const onSelectItem = useCallback((id: string) => {\n setSelectedIds((prev) =>\n prev.includes(id) ? prev.filter((itemId) => itemId !== id) : [...prev, id],\n );\n }, []);\n\n const moveSelectedItems = useCallback(\n (move: boolean, ids?: string[]) => {\n const resolvedIds = ids ?? selectedIds;\n if (resolvedIds.length === 0) return;\n\n const idsToMoveSet = new Set(resolvedIds);\n\n const newData = list.map((item) => {\n if (!idsToMoveSet.has(item.id) || item.inTarget === move) {\n return item;\n }\n\n return {\n ...item,\n inTarget: move,\n };\n });\n\n onChange(newData);\n setSelectedIds([]);\n },\n [list, onChange, selectedIds],\n );\n\n const allMoveSelectedItems = useCallback(\n (move: boolean) => {\n moveSelectedItems(\n move,\n list.filter((item) => item.inTarget !== move).map((item) => item.id),\n );\n },\n [list, moveSelectedItems],\n );\n\n const moveToRight = useCallback(\n (itemId: string) => {\n moveSelectedItems(MOVE_TO_RIGHT, [itemId]);\n },\n [moveSelectedItems],\n );\n\n const moveToLeft = useCallback(\n (itemId: string) => {\n moveSelectedItems(MOVE_TO_LEFT, [itemId]);\n },\n [moveSelectedItems],\n );\n\n return (\n <div className=\"ml-100 flex h-full min-h-0 w-fit gap-6\">\n <TransferListCard\n items={leftItems}\n selectedSet={selectedSet}\n onSelectItem={onSelectItem}\n onMoveItem={moveToRight}\n direction=\"right\"\n showHeaderTooltip={true}\n headerButton={{\n icon: \"caret-right\",\n onClick: () => allMoveSelectedItems(MOVE_TO_RIGHT),\n disabled: leftItems.length === 0,\n }}\n showFooterIcons={false}\n />\n\n <div className=\"flex h-full flex-col justify-center gap-8\">\n <Button\n variant=\"circle\"\n onClick={() => moveSelectedItems(MOVE_TO_RIGHT)}\n disabled={selectedLeftCount === 0}\n >\n <Icon\n type=\"caret-right\"\n className=\"text-placeholder-text\"\n />\n </Button>\n\n <Button\n variant=\"circle\"\n onClick={() => moveSelectedItems(MOVE_TO_LEFT)}\n disabled={selectedRightCount === 0}\n >\n <Icon\n type=\"caret-left\"\n className=\"text-placeholder-text\"\n />\n </Button>\n </div>\n\n <TransferListCard\n items={rightItems}\n selectedSet={selectedSet}\n onSelectItem={onSelectItem}\n onMoveItem={moveToLeft}\n direction=\"left\"\n headerButton={{\n icon: \"caret-left\",\n onClick: () => allMoveSelectedItems(MOVE_TO_LEFT),\n disabled: rightItems.length === 0,\n }}\n showFooterIcons\n />\n </div>\n );\n};\n"],"names":["MOVE_TO_LEFT","MOVE_TO_RIGHT","TransferList","list","onChange","leftItems","useMemo","i","rightItems","selectedIds","setSelectedIds","useState","selectedSet","leftIdSet","item","rightIdSet","selectedLeftCount","id","selectedRightCount","onSelectItem","useCallback","prev","itemId","moveSelectedItems","move","ids","resolvedIds","idsToMoveSet","newData","allMoveSelectedItems","moveToRight","moveToLeft","jsxs","jsx","TransferListCard","Button","Icon"],"mappings":"8QAgBMA,EAAe,GACfC,EAAgB,GAETC,EAAe,CAAC,CAAE,KAAAC,EAAM,SAAAC,KAAsB,CACzD,MAAMC,EAAYC,EAAAA,QAAQ,IAAMH,EAAK,OAAQI,GAAM,CAACA,EAAE,QAAQ,EAAG,CAACJ,CAAI,CAAC,EACjEK,EAAaF,EAAAA,QAAQ,IAAMH,EAAK,OAAQI,GAAMA,EAAE,QAAQ,EAAG,CAACJ,CAAI,CAAC,EAEjE,CAACM,EAAaC,CAAc,EAAIC,EAAAA,SAAmB,CAAA,CAAE,EAErDC,EAAcN,EAAAA,QAAQ,IAAM,IAAI,IAAIG,CAAW,EAAG,CAACA,CAAW,CAAC,EAC/DI,EAAYP,EAAAA,QAAQ,IAAM,IAAI,IAAID,EAAU,IAAKS,GAASA,EAAK,EAAE,CAAC,EAAG,CAACT,CAAS,CAAC,EAChFU,EAAaT,EAAAA,QACjB,IAAM,IAAI,IAAIE,EAAW,IAAKM,GAASA,EAAK,EAAE,CAAC,EAC/C,CAACN,CAAU,CAAA,EAGPQ,EAAoBV,EAAAA,QACxB,IAAMG,EAAY,OAAQQ,GAAOJ,EAAU,IAAII,CAAE,CAAC,EAAE,OACpD,CAACR,EAAaI,CAAS,CAAA,EAEnBK,EAAqBZ,EAAAA,QACzB,IAAMG,EAAY,OAAQQ,GAAOF,EAAW,IAAIE,CAAE,CAAC,EAAE,OACrD,CAACR,EAAaM,CAAU,CAAA,EAGpBI,EAAeC,cAAaH,GAAe,CAC/CP,EAAgBW,GACdA,EAAK,SAASJ,CAAE,EAAII,EAAK,OAAQC,GAAWA,IAAWL,CAAE,EAAI,CAAC,GAAGI,EAAMJ,CAAE,CAAA,CAE7E,EAAG,CAAA,CAAE,EAECM,EAAoBH,EAAAA,YACxB,CAACI,EAAeC,IAAmB,CACjC,MAAMC,EAAcD,GAAOhB,EAC3B,GAAIiB,EAAY,SAAW,EAAG,OAE9B,MAAMC,EAAe,IAAI,IAAID,CAAW,EAElCE,EAAUzB,EAAK,IAAKW,GACpB,CAACa,EAAa,IAAIb,EAAK,EAAE,GAAKA,EAAK,WAAaU,EAC3CV,EAGF,CACL,GAAGA,EACH,SAAUU,CAAA,CAEb,EAEDpB,EAASwB,CAAO,EAChBlB,EAAe,CAAA,CAAE,CACnB,EACA,CAACP,EAAMC,EAAUK,CAAW,CAAA,EAGxBoB,EAAuBT,EAAAA,YAC1BI,GAAkB,CACjBD,EACEC,EACArB,EAAK,OAAQW,GAASA,EAAK,WAAaU,CAAI,EAAE,IAAKV,GAASA,EAAK,EAAE,CAAA,CAEvE,EACA,CAACX,EAAMoB,CAAiB,CAAA,EAGpBO,EAAcV,EAAAA,YACjBE,GAAmB,CAClBC,EAAkBtB,EAAe,CAACqB,CAAM,CAAC,CAC3C,EACA,CAACC,CAAiB,CAAA,EAGdQ,EAAaX,EAAAA,YAChBE,GAAmB,CAClBC,EAAkBvB,EAAc,CAACsB,CAAM,CAAC,CAC1C,EACA,CAACC,CAAiB,CAAA,EAGpB,OACES,EAAAA,KAAC,MAAA,CAAI,UAAU,yCACb,SAAA,CAAAC,EAAAA,IAACC,EAAAA,iBAAA,CACC,MAAO7B,EACP,YAAAO,EACA,aAAAO,EACA,WAAYW,EACZ,UAAU,QACV,kBAAmB,GACnB,aAAc,CACZ,KAAM,cACN,QAAS,IAAMD,EAAqB5B,CAAa,EACjD,SAAUI,EAAU,SAAW,CAAA,EAEjC,gBAAiB,EAAA,CAAA,EAGnB2B,EAAAA,KAAC,MAAA,CAAI,UAAU,4CACb,SAAA,CAAAC,EAAAA,IAACE,EAAAA,EAAA,CACC,QAAQ,SACR,QAAS,IAAMZ,EAAkBtB,CAAa,EAC9C,SAAUe,IAAsB,EAEhC,SAAAiB,EAAAA,IAACG,EAAAA,EAAA,CACC,KAAK,cACL,UAAU,uBAAA,CAAA,CACZ,CAAA,EAGFH,EAAAA,IAACE,EAAAA,EAAA,CACC,QAAQ,SACR,QAAS,IAAMZ,EAAkBvB,CAAY,EAC7C,SAAUkB,IAAuB,EAEjC,SAAAe,EAAAA,IAACG,EAAAA,EAAA,CACC,KAAK,aACL,UAAU,uBAAA,CAAA,CACZ,CAAA,CACF,EACF,EAEAH,EAAAA,IAACC,EAAAA,iBAAA,CACC,MAAO1B,EACP,YAAAI,EACA,aAAAO,EACA,WAAYY,EACZ,UAAU,OACV,aAAc,CACZ,KAAM,aACN,QAAS,IAAMF,EAAqB7B,CAAY,EAChD,SAAUQ,EAAW,SAAW,CAAA,EAElC,gBAAe,EAAA,CAAA,CACjB,EACF,CAEJ"}
@@ -0,0 +1,121 @@
1
+ import { jsxs as w, jsx as c } from "react/jsx-runtime";
2
+ import { T as v, f as C, y as M } from "./transfer-list-card-3JPB-sdd.js";
3
+ import "phosphor-strokes-icons/icons";
4
+ import "@radix-ui/react-dropdown-menu";
5
+ import { useMemo as r, useState as _, useCallback as l } from "react";
6
+ const h = !1, m = !0, H = ({ list: o, onChange: g }) => {
7
+ const i = r(() => o.filter((e) => !e.inTarget), [o]), a = r(() => o.filter((e) => e.inTarget), [o]), [n, u] = _([]), T = r(() => new Set(n), [n]), p = r(() => new Set(i.map((e) => e.id)), [i]), I = r(
8
+ () => new Set(a.map((e) => e.id)),
9
+ [a]
10
+ ), b = r(
11
+ () => n.filter((e) => p.has(e)).length,
12
+ [n, p]
13
+ ), k = r(
14
+ () => n.filter((e) => I.has(e)).length,
15
+ [n, I]
16
+ ), S = l((e) => {
17
+ u(
18
+ (t) => t.includes(e) ? t.filter((d) => d !== e) : [...t, e]
19
+ );
20
+ }, []), s = l(
21
+ (e, t) => {
22
+ const d = t ?? n;
23
+ if (d.length === 0) return;
24
+ const N = new Set(d), O = o.map((f) => !N.has(f.id) || f.inTarget === e ? f : {
25
+ ...f,
26
+ inTarget: e
27
+ });
28
+ g(O), u([]);
29
+ },
30
+ [o, g, n]
31
+ ), x = l(
32
+ (e) => {
33
+ s(
34
+ e,
35
+ o.filter((t) => t.inTarget !== e).map((t) => t.id)
36
+ );
37
+ },
38
+ [o, s]
39
+ ), L = l(
40
+ (e) => {
41
+ s(m, [e]);
42
+ },
43
+ [s]
44
+ ), y = l(
45
+ (e) => {
46
+ s(h, [e]);
47
+ },
48
+ [s]
49
+ );
50
+ return /* @__PURE__ */ w("div", { className: "ml-100 flex h-full min-h-0 w-fit gap-6", children: [
51
+ /* @__PURE__ */ c(
52
+ v,
53
+ {
54
+ items: i,
55
+ selectedSet: T,
56
+ onSelectItem: S,
57
+ onMoveItem: L,
58
+ direction: "right",
59
+ showHeaderTooltip: !0,
60
+ headerButton: {
61
+ icon: "caret-right",
62
+ onClick: () => x(m),
63
+ disabled: i.length === 0
64
+ },
65
+ showFooterIcons: !1
66
+ }
67
+ ),
68
+ /* @__PURE__ */ w("div", { className: "flex h-full flex-col justify-center gap-8", children: [
69
+ /* @__PURE__ */ c(
70
+ C,
71
+ {
72
+ variant: "circle",
73
+ onClick: () => s(m),
74
+ disabled: b === 0,
75
+ children: /* @__PURE__ */ c(
76
+ M,
77
+ {
78
+ type: "caret-right",
79
+ className: "text-placeholder-text"
80
+ }
81
+ )
82
+ }
83
+ ),
84
+ /* @__PURE__ */ c(
85
+ C,
86
+ {
87
+ variant: "circle",
88
+ onClick: () => s(h),
89
+ disabled: k === 0,
90
+ children: /* @__PURE__ */ c(
91
+ M,
92
+ {
93
+ type: "caret-left",
94
+ className: "text-placeholder-text"
95
+ }
96
+ )
97
+ }
98
+ )
99
+ ] }),
100
+ /* @__PURE__ */ c(
101
+ v,
102
+ {
103
+ items: a,
104
+ selectedSet: T,
105
+ onSelectItem: S,
106
+ onMoveItem: y,
107
+ direction: "left",
108
+ headerButton: {
109
+ icon: "caret-left",
110
+ onClick: () => x(h),
111
+ disabled: a.length === 0
112
+ },
113
+ showFooterIcons: !0
114
+ }
115
+ )
116
+ ] });
117
+ };
118
+ export {
119
+ H as TransferList
120
+ };
121
+ //# sourceMappingURL=components-transfer-list-transfer-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-transfer-list-transfer-list.js","sources":["../src/components/transfer-list/transfer-list.tsx"],"sourcesContent":["import { Button, Icon } from \"brd-ui-kit\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { TransferListCard } from \"./transfer-list-card\";\n\nexport type TransferListItem = {\n id: string;\n label: string;\n disabled?: boolean;\n inTarget: boolean;\n};\n\ntype Props = {\n list: TransferListItem[];\n onChange: (item: TransferListItem[]) => void;\n};\n\nconst MOVE_TO_LEFT = false;\nconst MOVE_TO_RIGHT = true;\n\nexport const TransferList = ({ list, onChange }: Props) => {\n const leftItems = useMemo(() => list.filter((i) => !i.inTarget), [list]);\n const rightItems = useMemo(() => list.filter((i) => i.inTarget), [list]);\n\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n\n const selectedSet = useMemo(() => new Set(selectedIds), [selectedIds]);\n const leftIdSet = useMemo(() => new Set(leftItems.map((item) => item.id)), [leftItems]);\n const rightIdSet = useMemo(\n () => new Set(rightItems.map((item) => item.id)),\n [rightItems],\n );\n\n const selectedLeftCount = useMemo(\n () => selectedIds.filter((id) => leftIdSet.has(id)).length,\n [selectedIds, leftIdSet],\n );\n const selectedRightCount = useMemo(\n () => selectedIds.filter((id) => rightIdSet.has(id)).length,\n [selectedIds, rightIdSet],\n );\n\n const onSelectItem = useCallback((id: string) => {\n setSelectedIds((prev) =>\n prev.includes(id) ? prev.filter((itemId) => itemId !== id) : [...prev, id],\n );\n }, []);\n\n const moveSelectedItems = useCallback(\n (move: boolean, ids?: string[]) => {\n const resolvedIds = ids ?? selectedIds;\n if (resolvedIds.length === 0) return;\n\n const idsToMoveSet = new Set(resolvedIds);\n\n const newData = list.map((item) => {\n if (!idsToMoveSet.has(item.id) || item.inTarget === move) {\n return item;\n }\n\n return {\n ...item,\n inTarget: move,\n };\n });\n\n onChange(newData);\n setSelectedIds([]);\n },\n [list, onChange, selectedIds],\n );\n\n const allMoveSelectedItems = useCallback(\n (move: boolean) => {\n moveSelectedItems(\n move,\n list.filter((item) => item.inTarget !== move).map((item) => item.id),\n );\n },\n [list, moveSelectedItems],\n );\n\n const moveToRight = useCallback(\n (itemId: string) => {\n moveSelectedItems(MOVE_TO_RIGHT, [itemId]);\n },\n [moveSelectedItems],\n );\n\n const moveToLeft = useCallback(\n (itemId: string) => {\n moveSelectedItems(MOVE_TO_LEFT, [itemId]);\n },\n [moveSelectedItems],\n );\n\n return (\n <div className=\"ml-100 flex h-full min-h-0 w-fit gap-6\">\n <TransferListCard\n items={leftItems}\n selectedSet={selectedSet}\n onSelectItem={onSelectItem}\n onMoveItem={moveToRight}\n direction=\"right\"\n showHeaderTooltip={true}\n headerButton={{\n icon: \"caret-right\",\n onClick: () => allMoveSelectedItems(MOVE_TO_RIGHT),\n disabled: leftItems.length === 0,\n }}\n showFooterIcons={false}\n />\n\n <div className=\"flex h-full flex-col justify-center gap-8\">\n <Button\n variant=\"circle\"\n onClick={() => moveSelectedItems(MOVE_TO_RIGHT)}\n disabled={selectedLeftCount === 0}\n >\n <Icon\n type=\"caret-right\"\n className=\"text-placeholder-text\"\n />\n </Button>\n\n <Button\n variant=\"circle\"\n onClick={() => moveSelectedItems(MOVE_TO_LEFT)}\n disabled={selectedRightCount === 0}\n >\n <Icon\n type=\"caret-left\"\n className=\"text-placeholder-text\"\n />\n </Button>\n </div>\n\n <TransferListCard\n items={rightItems}\n selectedSet={selectedSet}\n onSelectItem={onSelectItem}\n onMoveItem={moveToLeft}\n direction=\"left\"\n headerButton={{\n icon: \"caret-left\",\n onClick: () => allMoveSelectedItems(MOVE_TO_LEFT),\n disabled: rightItems.length === 0,\n }}\n showFooterIcons\n />\n </div>\n );\n};\n"],"names":["MOVE_TO_LEFT","MOVE_TO_RIGHT","TransferList","list","onChange","leftItems","useMemo","i","rightItems","selectedIds","setSelectedIds","useState","selectedSet","leftIdSet","item","rightIdSet","selectedLeftCount","id","selectedRightCount","onSelectItem","useCallback","prev","itemId","moveSelectedItems","move","ids","resolvedIds","idsToMoveSet","newData","allMoveSelectedItems","moveToRight","moveToLeft","jsxs","jsx","TransferListCard","Button","Icon"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./components-transfer-list-transfer-list.cjs");exports.TransferList=e.TransferList;
2
+ //# sourceMappingURL=components-transfer-list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-transfer-list.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { TransferList as f } from "./components-transfer-list-transfer-list.js";
2
+ export {
3
+ f as TransferList
4
+ };
5
+ //# sourceMappingURL=components-transfer-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-transfer-list.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +1 @@
1
- {"version":3,"file":"components-ui-avatar-avatar.cjs","sources":["../src/components/ui/avatar/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport type { ComponentProps } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n// TODO: вынести стили в отдельный файл\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\";\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n `group/avatar relative flex size-8 shrink-0 rounded-full select-none\n after:absolute after:inset-0 after:rounded-full after:mix-blend-darken\n data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full rounded-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n `bg-muted text-muted-foreground flex size-full items-center justify-center\n rounded-full text-sm group-data-[size=sm]/avatar:text-xs`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n `bg-primary text-primary-foreground absolute right-0 bottom-0 z-10 inline-flex\n items-center justify-center rounded-full bg-blend-color ring-2 ring-transparent\n select-none`,\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n `group-data-[size=default]/avatar:size-2.5\n group-data-[size=default]/avatar:[&>svg]:size-2`,\n `translate-x-1/4 translate-y-1/4 group-data-[size=lg]/avatar:size-3\n group-data-[size=lg]/avatar:[&>svg]:size-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n `group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2\n *:data-[slot=avatar]:ring-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n `bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0\n items-center justify-center rounded-full text-sm ring-2\n group-has-data-[size=lg]/avatar-group:size-10\n group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4\n group-has-data-[size=lg]/avatar-group:[&>svg]:size-5\n group-has-data-[size=sm]/avatar-group:[&>svg]:size-3`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Avatar,\n AvatarBadge,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarImage,\n};\n"],"names":["Avatar","className","size","props","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback","AvatarBadge","AvatarGroup","AvatarGroupCount"],"mappings":"stDAMA,SAASA,EAAO,CACd,UAAAC,EACA,KAAAC,EAAO,UACP,GAAGC,CACL,EAEG,CACD,OACEC,EAAAA,IAACC,EAAgB,KAAhB,CACC,YAAU,SACV,YAAWH,EACX,UAAWI,EAAAA,GACT;AAAA;AAAA,mFAGAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASI,EAAY,CACnB,UAAAN,EACA,GAAGE,CACL,EAAiD,CAC/C,OACEC,EAAAA,IAACC,EAAgB,MAAhB,CACC,YAAU,eACV,UAAWC,EAAAA,GAAG,oDAAqDL,CAAS,EAC3E,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASK,EAAe,CACtB,UAAAP,EACA,GAAGE,CACL,EAAoD,CAClD,OACEC,EAAAA,IAACC,EAAgB,SAAhB,CACC,YAAU,kBACV,UAAWC,EAAAA,GACT;AAAA,kEAEAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASM,EAAY,CAAE,UAAAR,EAAW,GAAGE,GAAiC,CACpE,OACEC,EAAAA,IAAC,OAAA,CACC,YAAU,eACV,UAAWE,EAAAA,GACT;AAAA;AAAA,qBAGA,gFACA;AAAA,yDAEA;AAAA,oDAEAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASO,EAAY,CAAE,UAAAT,EAAW,GAAGE,GAAgC,CACnE,OACEC,EAAAA,IAAC,MAAA,CACC,YAAU,eACV,UAAWE,EAAAA,GACT;AAAA,qCAEAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASQ,EAAiB,CAAE,UAAAV,EAAW,GAAGE,GAAgC,CACxE,OACEC,EAAAA,IAAC,MAAA,CACC,YAAU,qBACV,UAAWE,EAAAA,GACT;AAAA;AAAA;AAAA;AAAA;AAAA,8DAMAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
1
+ {"version":3,"file":"components-ui-avatar-avatar.cjs","sources":["../src/components/ui/avatar/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport type { ComponentProps } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\";\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n `group/avatar relative flex size-8 shrink-0 rounded-full select-none\n after:absolute after:inset-0 after:rounded-full after:mix-blend-darken\n data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full rounded-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n `bg-muted text-muted-foreground flex size-full items-center justify-center\n rounded-full text-sm group-data-[size=sm]/avatar:text-xs`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n `bg-primary text-primary-foreground absolute right-0 bottom-0 z-10 inline-flex\n items-center justify-center rounded-full bg-blend-color ring-2 ring-transparent\n select-none`,\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n `group-data-[size=default]/avatar:size-2.5\n group-data-[size=default]/avatar:[&>svg]:size-2`,\n `translate-x-1/4 translate-y-1/4 group-data-[size=lg]/avatar:size-3\n group-data-[size=lg]/avatar:[&>svg]:size-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n `group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2\n *:data-[slot=avatar]:ring-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n `bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0\n items-center justify-center rounded-full text-sm ring-2\n group-has-data-[size=lg]/avatar-group:size-10\n group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4\n group-has-data-[size=lg]/avatar-group:[&>svg]:size-5\n group-has-data-[size=sm]/avatar-group:[&>svg]:size-3`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Avatar,\n AvatarBadge,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarImage,\n};\n"],"names":["Avatar","className","size","props","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback","AvatarBadge","AvatarGroup","AvatarGroupCount"],"mappings":"stDAKA,SAASA,EAAO,CACd,UAAAC,EACA,KAAAC,EAAO,UACP,GAAGC,CACL,EAEG,CACD,OACEC,EAAAA,IAACC,EAAgB,KAAhB,CACC,YAAU,SACV,YAAWH,EACX,UAAWI,EAAAA,GACT;AAAA;AAAA,mFAGAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASI,EAAY,CACnB,UAAAN,EACA,GAAGE,CACL,EAAiD,CAC/C,OACEC,EAAAA,IAACC,EAAgB,MAAhB,CACC,YAAU,eACV,UAAWC,EAAAA,GAAG,oDAAqDL,CAAS,EAC3E,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASK,EAAe,CACtB,UAAAP,EACA,GAAGE,CACL,EAAoD,CAClD,OACEC,EAAAA,IAACC,EAAgB,SAAhB,CACC,YAAU,kBACV,UAAWC,EAAAA,GACT;AAAA,kEAEAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASM,EAAY,CAAE,UAAAR,EAAW,GAAGE,GAAiC,CACpE,OACEC,EAAAA,IAAC,OAAA,CACC,YAAU,eACV,UAAWE,EAAAA,GACT;AAAA;AAAA,qBAGA,gFACA;AAAA,yDAEA;AAAA,oDAEAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASO,EAAY,CAAE,UAAAT,EAAW,GAAGE,GAAgC,CACnE,OACEC,EAAAA,IAAC,MAAA,CACC,YAAU,eACV,UAAWE,EAAAA,GACT;AAAA,qCAEAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV,CAEA,SAASQ,EAAiB,CAAE,UAAAV,EAAW,GAAGE,GAAgC,CACxE,OACEC,EAAAA,IAAC,MAAA,CACC,YAAU,qBACV,UAAWE,EAAAA,GACT;AAAA;AAAA;AAAA;AAAA;AAAA,8DAMAL,CAAA,EAED,GAAGE,CAAA,CAAA,CAGV"}
@@ -1 +1 @@
1
- {"version":3,"file":"components-ui-avatar-avatar.js","sources":["../src/components/ui/avatar/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport type { ComponentProps } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n// TODO: вынести стили в отдельный файл\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\";\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n `group/avatar relative flex size-8 shrink-0 rounded-full select-none\n after:absolute after:inset-0 after:rounded-full after:mix-blend-darken\n data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full rounded-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n `bg-muted text-muted-foreground flex size-full items-center justify-center\n rounded-full text-sm group-data-[size=sm]/avatar:text-xs`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n `bg-primary text-primary-foreground absolute right-0 bottom-0 z-10 inline-flex\n items-center justify-center rounded-full bg-blend-color ring-2 ring-transparent\n select-none`,\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n `group-data-[size=default]/avatar:size-2.5\n group-data-[size=default]/avatar:[&>svg]:size-2`,\n `translate-x-1/4 translate-y-1/4 group-data-[size=lg]/avatar:size-3\n group-data-[size=lg]/avatar:[&>svg]:size-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n `group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2\n *:data-[slot=avatar]:ring-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n `bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0\n items-center justify-center rounded-full text-sm ring-2\n group-has-data-[size=lg]/avatar-group:size-10\n group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4\n group-has-data-[size=lg]/avatar-group:[&>svg]:size-5\n group-has-data-[size=sm]/avatar-group:[&>svg]:size-3`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Avatar,\n AvatarBadge,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarImage,\n};\n"],"names":["Avatar","className","size","props","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback","AvatarBadge","AvatarGroup","AvatarGroupCount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,SAASA,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAWH;AAAA,MACX,WAAWI;AAAA,QACT;AAAA;AAAA;AAAA,QAGAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAY;AAAA,EACnB,WAAAN;AAAA,EACA,GAAGE;AACL,GAAiD;AAC/C,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,qDAAqDL,CAAS;AAAA,MAC3E,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAe;AAAA,EACtB,WAAAP;AAAA,EACA,GAAGE;AACL,GAAoD;AAClD,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA;AAAA,QAEAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASM,EAAY,EAAE,WAAAR,GAAW,GAAGE,KAAiC;AACpE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASO,EAAY,EAAE,WAAAT,GAAW,GAAGE,KAAgC;AACnE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA;AAAA,QAEAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASQ,EAAiB,EAAE,WAAAV,GAAW,GAAGE,KAAgC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"components-ui-avatar-avatar.js","sources":["../src/components/ui/avatar/avatar.tsx"],"sourcesContent":["import { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport type { ComponentProps } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\";\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n `group/avatar relative flex size-8 shrink-0 rounded-full select-none\n after:absolute after:inset-0 after:rounded-full after:mix-blend-darken\n data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full rounded-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n `bg-muted text-muted-foreground flex size-full items-center justify-center\n rounded-full text-sm group-data-[size=sm]/avatar:text-xs`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n `bg-primary text-primary-foreground absolute right-0 bottom-0 z-10 inline-flex\n items-center justify-center rounded-full bg-blend-color ring-2 ring-transparent\n select-none`,\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n `group-data-[size=default]/avatar:size-2.5\n group-data-[size=default]/avatar:[&>svg]:size-2`,\n `translate-x-1/4 translate-y-1/4 group-data-[size=lg]/avatar:size-3\n group-data-[size=lg]/avatar:[&>svg]:size-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n `group/avatar-group *:data-[slot=avatar]:ring-background flex -space-x-2\n *:data-[slot=avatar]:ring-2`,\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n `bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0\n items-center justify-center rounded-full text-sm ring-2\n group-has-data-[size=lg]/avatar-group:size-10\n group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4\n group-has-data-[size=lg]/avatar-group:[&>svg]:size-5\n group-has-data-[size=sm]/avatar-group:[&>svg]:size-3`,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Avatar,\n AvatarBadge,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarImage,\n};\n"],"names":["Avatar","className","size","props","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback","AvatarBadge","AvatarGroup","AvatarGroupCount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAASA,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAWH;AAAA,MACX,WAAWI;AAAA,QACT;AAAA;AAAA;AAAA,QAGAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAY;AAAA,EACnB,WAAAN;AAAA,EACA,GAAGE;AACL,GAAiD;AAC/C,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,qDAAqDL,CAAS;AAAA,MAC3E,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASK,EAAe;AAAA,EACtB,WAAAP;AAAA,EACA,GAAGE;AACL,GAAoD;AAClD,SACE,gBAAAC;AAAA,IAACC,EAAgB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA;AAAA,QAEAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASM,EAAY,EAAE,WAAAR,GAAW,GAAGE,KAAiC;AACpE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA;AAAA,QAEAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASO,EAAY,EAAE,WAAAT,GAAW,GAAGE,KAAgC;AACnE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA;AAAA,QAEAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASQ,EAAiB,EAAE,WAAAV,GAAW,GAAGE,KAAgC;AACxE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWE;AAAA,QACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;"}