ics-ui-kit 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/README.md +36 -36
  2. package/dist/AlertContext-CxjW1LVL.js.map +1 -1
  3. package/dist/AlertIcon-5B6AgZpe.js.map +1 -1
  4. package/dist/Button-Dg89xRSi.js.map +1 -1
  5. package/dist/ButtonBase-e6qyv6mD.js.map +1 -1
  6. package/dist/CheckboxField-cX09-eBX.js.map +1 -1
  7. package/dist/Command-BhbfL5wm.js.map +1 -1
  8. package/dist/ComponentVariantProvider-B0SFUaXB.js.map +1 -1
  9. package/dist/Description-BTPMlTT-.js.map +1 -1
  10. package/dist/Dialog-ByiJIDhl.js.map +1 -1
  11. package/dist/Divider-DPW5ZhZ8.js.map +1 -1
  12. package/dist/EmptyState-DRKjscH-.js.map +1 -1
  13. package/dist/ErrorState-B26k67-z.js.map +1 -1
  14. package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
  15. package/dist/Field-CKl59qUB.js.map +1 -1
  16. package/dist/FieldLabel-QJ4rJFOi.js.map +1 -1
  17. package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
  18. package/dist/FormFooterTemplate-DPB6Dkxn.js.map +1 -1
  19. package/dist/FormHeader--F6b2aRk.js.map +1 -1
  20. package/dist/FormStack-B4QOuYgO.js.map +1 -1
  21. package/dist/HintState-BxrCAWqq.js.map +1 -1
  22. package/dist/Icon-DH3ev9GK.js.map +1 -1
  23. package/dist/IconButton-DwkpNgn3.js.map +1 -1
  24. package/dist/IconTooltip-CKJKGHbk.js.map +1 -1
  25. package/dist/Indicator-AqxHWPA9.js.map +1 -1
  26. package/dist/InputGroup-BvD9Igmt.js.map +1 -1
  27. package/dist/InputOTP-B2e1nfSO.js.map +1 -1
  28. package/dist/Loader-BpHiL6W-.js.map +1 -1
  29. package/dist/MenuItem-pvsONHlh.js.map +1 -1
  30. package/dist/MenuItemShortcut-DgPol9Nz.js.map +1 -1
  31. package/dist/MenuItemText-7uPl9P3z.js.map +1 -1
  32. package/dist/Overlay-2XMlxApi.js.map +1 -1
  33. package/dist/Popover-Dvr7y0YY.js.map +1 -1
  34. package/dist/RichButton-DuPTenmS.js.map +1 -1
  35. package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
  36. package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
  37. package/dist/SearchSelectTag-DFCX9zT1.js.map +1 -1
  38. package/dist/Select-DRwv6-eZ.js.map +1 -1
  39. package/dist/Sheet-rtwmzm2-.js.map +1 -1
  40. package/dist/Shortcut-D8L15_ed.js.map +1 -1
  41. package/dist/Skeleton-y6I-i9q5.js.map +1 -1
  42. package/dist/Tag-DdHXTyKF.js.map +1 -1
  43. package/dist/Text-DeBE8AKl.js.map +1 -1
  44. package/dist/TextInput-Cj50ImXi.js.map +1 -1
  45. package/dist/TextOverflowTooltip-DlUgic5y.js.map +1 -1
  46. package/dist/Toggle-v_HT3Gm2.js.map +1 -1
  47. package/dist/Tooltip-C4rVuWr4.js.map +1 -1
  48. package/dist/TriggerButton-CfDObWP9.js.map +1 -1
  49. package/dist/blocks/auth/otp-form.js.map +1 -1
  50. package/dist/cn-dsXlqdJg.js.map +1 -1
  51. package/dist/components/alert-dialog.js.map +1 -1
  52. package/dist/components/alert.js.map +1 -1
  53. package/dist/components/avatar.js.map +1 -1
  54. package/dist/components/badge.js.map +1 -1
  55. package/dist/components/banner.js.map +1 -1
  56. package/dist/components/breadcrumb.js.map +1 -1
  57. package/dist/components/button.js.map +1 -1
  58. package/dist/components/calendar.js.map +1 -1
  59. package/dist/components/card.js.map +1 -1
  60. package/dist/components/carousel.js.map +1 -1
  61. package/dist/components/collapsible.js.map +1 -1
  62. package/dist/components/color-tile.js.map +1 -1
  63. package/dist/components/container.js.map +1 -1
  64. package/dist/components/counter.js.map +1 -1
  65. package/dist/components/dialog.js.map +1 -1
  66. package/dist/components/divider.js.map +1 -1
  67. package/dist/components/drawer.js.map +1 -1
  68. package/dist/components/dropdown.js.map +1 -1
  69. package/dist/components/error-state.js.map +1 -1
  70. package/dist/components/file-upload.js.map +1 -1
  71. package/dist/components/form.js.map +1 -1
  72. package/dist/components/image-placeholder.js.map +1 -1
  73. package/dist/components/image-preview.js.map +1 -1
  74. package/dist/components/image-uploader.js.map +1 -1
  75. package/dist/components/input.js.map +1 -1
  76. package/dist/components/menu-item.js.map +1 -1
  77. package/dist/components/page-state.js.map +1 -1
  78. package/dist/components/portal-container.js.map +1 -1
  79. package/dist/components/progress-circle.js.map +1 -1
  80. package/dist/components/progress.js.map +1 -1
  81. package/dist/components/prose.js.map +1 -1
  82. package/dist/components/radio-group.js.map +1 -1
  83. package/dist/components/resizable.js.map +1 -1
  84. package/dist/components/scheduler.js.map +1 -1
  85. package/dist/components/search-select.js.map +1 -1
  86. package/dist/components/sidebar.js.map +1 -1
  87. package/dist/components/slider.js.map +1 -1
  88. package/dist/components/stepper.js.map +1 -1
  89. package/dist/components/switch.js.map +1 -1
  90. package/dist/components/system-state.js.map +1 -1
  91. package/dist/components/table.js.map +1 -1
  92. package/dist/components/tabs.js.map +1 -1
  93. package/dist/components/tag-input.js.map +1 -1
  94. package/dist/components/textarea.js.map +1 -1
  95. package/dist/components/timer.js.map +1 -1
  96. package/dist/components/toast.js.map +1 -1
  97. package/dist/components/toggle-group.js.map +1 -1
  98. package/dist/components/toolbar.js.map +1 -1
  99. package/dist/design-tokens.source.json +1 -0
  100. package/dist/index-0ioNhtNM.js.map +1 -1
  101. package/dist/index-437EL2iq.js.map +1 -1
  102. package/dist/index-BGQepRFJ.js.map +1 -1
  103. package/dist/index-BVqs-uqP.js.map +1 -1
  104. package/dist/index-BZPx6jYI.js.map +1 -1
  105. package/dist/index-Bb23HztA.js.map +1 -1
  106. package/dist/index-BpWB3aFK.js.map +1 -1
  107. package/dist/index-ByaXH_ih.js.map +1 -1
  108. package/dist/index-BzCriPiK.js.map +1 -1
  109. package/dist/index-CCKe-Mpx.js.map +1 -1
  110. package/dist/index-CFaU3UXv.js.map +1 -1
  111. package/dist/index-CLuiUUQ8.js.map +1 -1
  112. package/dist/index-CQD-Njgt.js.map +1 -1
  113. package/dist/index-CmBeyp2d.js.map +1 -1
  114. package/dist/index-DFZozV_h.js.map +1 -1
  115. package/dist/index-DHsfW5Rj.js.map +1 -1
  116. package/dist/index-DHyZ_0Ut.js.map +1 -1
  117. package/dist/index-DLcqcWxM.js.map +1 -1
  118. package/dist/index-DRo26PBK.js.map +1 -1
  119. package/dist/index-DnnQs07z.js.map +1 -1
  120. package/dist/index-Uiy0Xwy2.js.map +1 -1
  121. package/dist/index-_ITz1IyW.js.map +1 -1
  122. package/dist/index.js.map +1 -1
  123. package/dist/inputBaseStyles-DbzD_jvq.js.map +1 -1
  124. package/dist/lib/utils.js.map +1 -1
  125. package/dist/styles-scoped.css +6265 -6239
  126. package/dist/styles.css +6004 -5978
  127. package/dist/theme.css +329 -329
  128. package/dist/types/css.d.ts +4 -4
  129. package/dist/useBreakpoints-D8wKOvil.js.map +1 -1
  130. package/dist/useDebounce-BRah78CF.js.map +1 -1
  131. package/dist/useFileUpload-iDag0iqM.js.map +1 -1
  132. package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
  133. package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
  134. package/dist/usePortalContainer-ae6EzS08.js.map +1 -1
  135. package/dist/vendors/tanstack/react-table.js.map +1 -1
  136. package/dist/zod-BMNoK3aM.js.map +1 -1
  137. package/package.json +2 -2
  138. package/tailwind.preset.js +444 -441
@@ -1 +1 @@
1
- {"version":3,"file":"otp-form.js","sources":["../../../src/blocks/auth/otp-form/utils/OTPError.ts","../../../src/blocks/auth/otp-form/components/EmailForm.tsx","../../../src/blocks/auth/otp-form/components/OTPInputForm.tsx","../../../src/blocks/auth/otp-form/components/ResendButton.tsx","../../../src/blocks/auth/otp-form/OTPForm.tsx"],"sourcesContent":["type OTPErrorType = \"invalid_code\" | \"invalid_email\";\n\nexport class OTPError extends Error {\n\tpublic readonly type: OTPErrorType;\n\n\tconstructor(message: string, type: OTPErrorType = \"invalid_code\") {\n\t\tsuper(message);\n\t\tthis.type = type;\n\t\tthis.name = \"OTPError\";\n\n\t\t// Необходимо для правильного instanceof в TypeScript\n\t\tObject.setPrototypeOf(this, OTPError.prototype);\n\t}\n\n\t// Factory методы для удобства\n\tstatic invalidCode(message: string = \"Неверный код подтверждения\"): OTPError {\n\t\treturn new OTPError(message, \"invalid_code\");\n\t}\n\n\tstatic invalidEmail(message: string = \"Неверный email\"): OTPError {\n\t\treturn new OTPError(message, \"invalid_email\");\n\t}\n}\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { z } from \"zod\";\n\nimport { Button } from \"@/components/button/button/Button\";\nimport { Form, FormField, FormStack } from \"@/components/form\";\nimport { TextInput } from \"@/components/input/text-input/TextInput\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { tv } from \"tailwind-variants\";\nimport { OTPError } from \"../utils/OTPError\";\n\ntype EmailFormData = {\n\temail: string;\n};\n\nexport interface EmailFormProps {\n\t/** Предустановленный email */\n\tdefaultEmail?: string;\n\t/** Плейсхолдер для email поля */\n\temailPlaceholder?: string;\n\t/** Лейбл для email поля */\n\temailLabel?: string;\n\t/** Описание email поля */\n\temailDescription?: string;\n\t/** Текст кнопки отправки */\n\tsendButtonText?: string;\n\t/** Колбек отправки кода. Вызывается при нажатии на кнопку \"Отправить\", если email валидный. */\n\tonSendCode?: (email: string) => Promise<void> | void;\n\t/** Колбек изменения email */\n\tonEmailChange?: (email: string) => void;\n\t/** Показывать ли кнопку отправки */\n\tshowSendButton?: boolean;\n\t/** Классы для лейбла */\n\tlabelClassName?: string;\n\t/** Схема валидации для email поля */\n\temailValidation?: z.ZodString;\n}\n\nconst emailFormStyles = tv({\n\tslots: {\n\t\tbutton: \"w-full\",\n\t\ticonButton: \"animate-spin\"\n\t}\n});\n\nexport const EmailForm = React.forwardRef<HTMLFormElement, EmailFormProps>((props, ref) => {\n\tconst {\n\t\tdefaultEmail,\n\t\temailPlaceholder = \"you@company.com\",\n\t\temailLabel = \"Email\",\n\t\temailDescription,\n\t\tsendButtonText = \"Отправить\",\n\t\tonSendCode,\n\t\tonEmailChange,\n\t\tshowSendButton = true,\n\t\tlabelClassName,\n\t\temailValidation\n\t} = props;\n\n\tconst [isLoading, setIsLoading] = React.useState(false);\n\tconst styles = emailFormStyles();\n\n\tconst validationSchema = z.object({\n\t\temail: emailValidation || z.string().email(\"Введите корректный email\")\n\t});\n\n\tconst form = useForm<EmailFormData>({\n\t\tresolver: zodResolver(validationSchema),\n\t\tdefaultValues: {\n\t\t\temail: defaultEmail || \"\"\n\t\t}\n\t});\n\n\tconst onSubmit = async (data: EmailFormData) => {\n\t\tsetIsLoading(true);\n\t\ttry {\n\t\t\tawait onSendCode?.(data.email);\n\t\t} catch (error) {\n\t\t\tif (error instanceof OTPError && error.type === \"invalid_email\") {\n\t\t\t\tform.setError(\"email\", {\n\t\t\t\t\ttype: \"manual\",\n\t\t\t\t\tmessage: error.message\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Form asChild {...form}>\n\t\t\t<form ref={ref} onSubmit={form.handleSubmit(onSubmit)} noValidate>\n\t\t\t\t<FormStack>\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tname=\"email\"\n\t\t\t\t\t\ttitle={emailLabel}\n\t\t\t\t\t\tdescription={emailDescription}\n\t\t\t\t\t\tlabelClassName={labelClassName}\n\t\t\t\t\t\tcontrol={({ field }) => (\n\t\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\t\ttype={emailValidation ? \"text\" : \"email\"}\n\t\t\t\t\t\t\t\tplaceholder={emailPlaceholder}\n\t\t\t\t\t\t\t\tshowClearIcon={true}\n\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\tonChange={(value) => {\n\t\t\t\t\t\t\t\t\tfield.onChange(value);\n\t\t\t\t\t\t\t\t\tonEmailChange?.(value || \"\");\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{showSendButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tdisabled={!form.getValues(\"email\") || isLoading}\n\t\t\t\t\t\t\tstartIcon={isLoading ? LoaderCircle : undefined}\n\t\t\t\t\t\t\tclassName={styles.button()}\n\t\t\t\t\t\t\ticonClassName={cn(isLoading && styles.iconButton())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{sendButtonText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</FormStack>\n\t\t\t</form>\n\t\t</Form>\n\t);\n});\n\nEmailForm.displayName = \"EmailForm\";\n","import React, { useMemo } from \"react\";\nimport { ControllerRenderProps, FieldValues, useForm } from \"react-hook-form\";\n\nimport { Button } from \"@/components/button/button/Button\";\nimport { Form, FormField, FormStack } from \"@/components/form\";\nimport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from \"@/components/input-otp\";\nimport { cn } from \"@/lib/utils\";\nimport { LoaderCircle } from \"lucide-react\";\nimport { OTPError } from \"../utils/OTPError\";\nimport { tv } from \"tailwind-variants\";\n\nexport type OTPRenderFunction = (field: ControllerRenderProps<FieldValues, string>) => React.ReactNode;\n\nexport interface OTPInputFormProps {\n\t/**\n\t * Формат группировки OTP кода\n\t * Примеры: \"3-3\" (XXX-XXX), \"4-4\" (XXXX-XXXX), \"6\" (XXXXXX)\n\t */\n\totpFormat?: string;\n\t/** Функция для обработки вставленного текста */\n\tpasteTransformer?: (text: string) => string;\n\t/** Автоотправка при заполнении OTP */\n\tautoSubmit?: boolean;\n\t/** Лейбл для OTP поля */\n\totpLabel?: string;\n\t/** Описание OTP поля */\n\totpDescription?: string;\n\t/** Текст кнопки подтверждения */\n\tconfirmButtonText?: string;\n\t/** Колбек подтверждения OTP */\n\tonConfirmCode?: (otp: string) => Promise<void> | void;\n\t/** Показывать ли кнопку подтверждения */\n\tshowConfirmButton?: boolean;\n\t/** Классы для лейбла */\n\tlabelClassName?: string;\n}\n\nconst defaultProps: Required<Pick<OTPInputFormProps, \"otpLabel\" | \"confirmButtonText\" | \"showConfirmButton\">> = {\n\totpLabel: \"Код доступа\",\n\tconfirmButtonText: \"Подтвердить\",\n\tshowConfirmButton: true\n};\n\ntype OTPFormData = {\n\totp: string;\n};\n\nconst OTPInputFormStyles = tv({\n\tslots: {\n\t\tbutton: \"w-full\",\n\t\ticonButton: \"animate-spin\"\n\t}\n});\n\nexport const OTPInputForm = (props: OTPInputFormProps) => {\n\tconst {\n\t\totpFormat = \"3-3\",\n\t\tautoSubmit = true,\n\t\totpLabel = defaultProps.otpLabel,\n\t\totpDescription,\n\t\tconfirmButtonText = defaultProps.confirmButtonText,\n\t\tonConfirmCode,\n\t\tshowConfirmButton = defaultProps.showConfirmButton,\n\t\tlabelClassName\n\t} = props;\n\n\tconst otpGrouping = useMemo(() => parseOTPFormat(otpFormat), [otpFormat]);\n\tconst otpLength = useMemo(() => otpGrouping.reduce((acc, curr) => acc + curr, 0), [otpGrouping]);\n\tconst styles = OTPInputFormStyles();\n\n\tconst [isLoading, setIsLoading] = React.useState(false);\n\n\tconst form = useForm<OTPFormData>();\n\n\tconst onSubmit = async (data: OTPFormData) => {\n\t\tif (!onConfirmCode) return;\n\n\t\tsetIsLoading(true);\n\t\ttry {\n\t\t\tawait onConfirmCode(data.otp);\n\t\t} catch (error) {\n\t\t\t// Если это ошибка неправильного кода, показываем ошибку в поле\n\t\t\tif (error instanceof OTPError && error.type === \"invalid_code\") {\n\t\t\t\tform.setError(\"otp\", {\n\t\t\t\t\ttype: \"manual\",\n\t\t\t\t\tmessage: error.message\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst handleOTPChange = (value: string) => {\n\t\t// Очищаем ошибки при изменении поля\n\t\tform.clearErrors(\"otp\");\n\n\t\tform.setValue(\"otp\", value);\n\t\tif (value.length === otpLength && autoSubmit) {\n\t\t\tform.handleSubmit(onSubmit)();\n\t\t}\n\t};\n\n\treturn (\n\t\t<Form asChild {...form}>\n\t\t\t<form onSubmit={form.handleSubmit(onSubmit)} noValidate>\n\t\t\t\t<FormStack>\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tname=\"otp\"\n\t\t\t\t\t\ttitle={otpLabel}\n\t\t\t\t\t\tdescription={otpDescription}\n\t\t\t\t\t\tlabelClassName={labelClassName}\n\t\t\t\t\t\tcontrol={({ field }) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<InputOTP autoFocus={true} maxLength={otpLength} {...field} onChange={handleOTPChange}>\n\t\t\t\t\t\t\t\t\t{generateOTPSlots(otpGrouping)}\n\t\t\t\t\t\t\t\t</InputOTP>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{showConfirmButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tdisabled={isLoading || form.getValues(\"otp\")?.length !== otpLength}\n\t\t\t\t\t\t\tstartIcon={isLoading ? LoaderCircle : undefined}\n\t\t\t\t\t\t\tclassName={styles.button()}\n\t\t\t\t\t\t\ticonClassName={cn(isLoading && styles.iconButton())}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{confirmButtonText}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t</FormStack>\n\t\t\t</form>\n\t\t</Form>\n\t);\n};\n\nconst parseOTPFormat = (format: string, fallback: number[] = [3, 3], onError?: (error: string) => void): number[] => {\n\tif (!format.includes(\"-\")) {\n\t\t// Одна группа: \"6\" -> [6]\n\t\tconst length = parseInt(format, 10);\n\t\tif (isNaN(length) || length <= 0) {\n\t\t\tonError?.(`Неверный формат OTP: \"${format}\"`);\n\t\t\treturn fallback;\n\t\t}\n\t\treturn [length];\n\t}\n\n\t// Несколько групп: \"3-3\" -> [3, 3]\n\tconst groups = format.split(\"-\").map((group) => {\n\t\tconst size = parseInt(group, 10);\n\t\tif (isNaN(size) || size <= 0) {\n\t\t\tonError?.(`Неверный размер группы: \"${group}\" в формате \"${format}\"`);\n\t\t\treturn 1;\n\t\t}\n\t\treturn size;\n\t});\n\n\treturn groups;\n};\n\nconst generateOTPSlots = (grouping: number[]): React.ReactNode => {\n\tlet currentIndex = 0;\n\n\treturn grouping.map((groupSize, groupIndex) => {\n\t\tconst slots = Array.from({ length: groupSize }, () => (\n\t\t\t<InputOTPSlot key={currentIndex} index={currentIndex++} />\n\t\t));\n\n\t\tconst group = <InputOTPGroup key={`group-${groupIndex}`}>{slots}</InputOTPGroup>;\n\n\t\t// Добавляем разделитель между группами (кроме последней)\n\t\tif (groupIndex < grouping.length - 1) {\n\t\t\treturn (\n\t\t\t\t<React.Fragment key={`fragment-${groupIndex}`}>\n\t\t\t\t\t{group}\n\t\t\t\t\t<InputOTPSeparator />\n\t\t\t\t</React.Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn group;\n\t});\n};\n","import React from \"react\";\nimport { Button } from \"@/components/button/button/Button\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface ResendButtonProps {\n\t/** Время последней отправки кода (timestamp) */\n\tlastSentTime?: number | null;\n\t/** Время задержки для повторной отправки в секундах */\n\tresendDelay?: number;\n\t/** Текст кнопки повторной отправки */\n\tresendButtonText?: string;\n\t/** Шаблон текста обратного отсчета */\n\tresendCountdownText?: (seconds: number) => string;\n\t/** Колбек повторной отправки кода */\n\tonResend?: () => Promise<void> | void;\n}\n\nconst resendButtonStyles = tv({\n\tslots: {\n\t\tbutton: \"w-full\"\n\t}\n});\n\nexport const ResendButton = React.forwardRef<HTMLButtonElement, ResendButtonProps>((props, ref) => {\n\tconst {\n\t\tlastSentTime,\n\t\tresendDelay = 60,\n\t\tresendButtonText = \"Отправить код повторно\",\n\t\tresendCountdownText = (seconds) => `Отправить код повторно через ${seconds} сек.`,\n\t\tonResend\n\t} = props;\n\n\tconst [remainingSeconds, setRemainingSeconds] = React.useState(0);\n\tconst [isLoading, setIsLoading] = React.useState(false);\n\n\tconst styles = resendButtonStyles();\n\n\t// Таймер обратного отсчета\n\tReact.useEffect(() => {\n\t\tif (!lastSentTime) {\n\t\t\tsetRemainingSeconds(0);\n\t\t\treturn;\n\t\t}\n\n\t\tconst updateCountdown = () => {\n\t\t\tconst elapsedSeconds = Math.floor((Date.now() - lastSentTime) / 1000);\n\t\t\tconst remaining = Math.max(0, resendDelay - elapsedSeconds);\n\t\t\tsetRemainingSeconds(remaining);\n\t\t};\n\n\t\tupdateCountdown();\n\t\tconst timer = setInterval(updateCountdown, 1000);\n\t\treturn () => clearInterval(timer);\n\t}, [lastSentTime, resendDelay]);\n\n\tconst handleResend = async () => {\n\t\tif (remainingSeconds > 0) return;\n\t\tsetIsLoading(true);\n\t\ttry {\n\t\t\tawait onResend?.();\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Error resending code:\", error);\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t};\n\n\tconst isDisabled = remainingSeconds > 0 || isLoading;\n\tconst buttonText = remainingSeconds > 0 ? resendCountdownText(remainingSeconds) : resendButtonText;\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\tonClick={handleResend}\n\t\t\tdisabled={isDisabled}\n\t\t\tvariant=\"link\"\n\t\t\ttype=\"button\"\n\t\t\tclassName={styles.button()}\n\t\t>\n\t\t\t{buttonText}\n\t\t</Button>\n\t);\n});\n\nResendButton.displayName = \"ResendButton\";\n","import React, { useCallback, useState } from \"react\";\nimport { FormStack } from \"@/components/form\";\nimport { EmailForm } from \"./components/EmailForm\";\nimport { OTPInputForm } from \"./components/OTPInputForm\";\nimport { ResendButton } from \"./components/ResendButton\";\nimport { z } from \"zod\";\n\nexport interface OTPFormProps {\n\t/**\n\t * Формат группировки OTP кода\n\t * Примеры: \"3-3\" (XXX-XXX), \"4-4\" (XXXX-XXXX), \"6\" (XXXXXX)\n\t */\n\totpFormat?: string;\n\t/** Автоотправка при заполнении OTP */\n\tautoSubmit?: boolean;\n\t/** Функция для обработки вставленного текста */\n\tpasteTransformer?: (text: string) => string;\n\t/** Время задержки для повторной отправки в секундах */\n\tresendDelay?: number;\n\t/** Плейсхолдер для email поля */\n\temailPlaceholder?: string;\n\t/** Лейбл для email поля */\n\temailLabel?: string;\n\t/** Описание email поля */\n\temailDescription?: string;\n\t/** Лейбл для OTP поля */\n\totpLabel?: string;\n\t/** Описание OTP поля */\n\totpDescription?: string;\n\t/** Текст кнопки отправки */\n\tsendButtonText?: string;\n\t/** Текст кнопки подтверждения */\n\tconfirmButtonText?: string;\n\t/** Текст кнопки повторной отправки */\n\tresendButtonText?: string;\n\t/** Шаблон текста обратного отсчета */\n\tresendCountdownText?: (seconds: number) => string;\n\t/** Предустановленный email */\n\tdefaultEmail?: string;\n\t/** Колбек отправки/повторной отправки кода */\n\tonSendCode?: (email: string, isResend?: boolean) => Promise<void> | void;\n\t/** Колбек подтверждения OTP */\n\tonConfirmCode?: (data: { email: string; otp: string }) => Promise<void> | void;\n\t/** CSS классы для стилизации лейбла. Позволяет настроить внешний вид лейбла, например ограничить ширину: \"w-24\" */\n\tlabelClassName?: string;\n\t/** Схема валидации для email поля */\n\temailValidation?: z.ZodString;\n}\n\nexport const OTPForm: React.FC<OTPFormProps> = (props) => {\n\tconst { onSendCode, onConfirmCode } = props;\n\tconst { labelClassName = \"w-24\" } = props;\n\n\t// Email адрес, на который был отправлен OTP код\n\tconst [targetEmail, setTargetEmail] = useState<string | null>(null);\n\tconst [lastSentTime, setLastSentTime] = useState<number | null>(null);\n\n\tconst onEmailChange = useCallback(\n\t\t(email: string) => {\n\t\t\t// Если email изменился, то сбрасываем состояние форм\n\t\t\tif (targetEmail && email !== targetEmail) {\n\t\t\t\tsetTargetEmail(null);\n\t\t\t}\n\t\t},\n\t\t[targetEmail]\n\t);\n\n\t// Обработчик отправки кода из EmailForm\n\tconst handleSendCode = useCallback(\n\t\tasync (email: string, isResend = false) => {\n\t\t\ttry {\n\t\t\t\tawait onSendCode?.(email, isResend);\n\t\t\t\tsetLastSentTime(Date.now());\n\t\t\t\t// Сохраняем email как активный адрес для OTP операций\n\t\t\t\tsetTargetEmail(email);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Error sending code:\", error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\t[onSendCode]\n\t);\n\n\tconst handleResendCode = useCallback(async () => {\n\t\tif (targetEmail) {\n\t\t\tawait handleSendCode(targetEmail, true);\n\t\t}\n\t}, [handleSendCode, targetEmail]);\n\n\tconst handleOTPConfirm = useCallback(\n\t\tasync (otp: string) => {\n\t\t\tawait onConfirmCode?.({ email: targetEmail!, otp });\n\t\t},\n\t\t[onConfirmCode, targetEmail]\n\t);\n\n\treturn (\n\t\t<FormStack>\n\t\t\t<EmailForm\n\t\t\t\tdefaultEmail={props.defaultEmail}\n\t\t\t\temailPlaceholder={props.emailPlaceholder}\n\t\t\t\temailLabel={props.emailLabel}\n\t\t\t\temailDescription={props.emailDescription}\n\t\t\t\tonEmailChange={onEmailChange}\n\t\t\t\tsendButtonText={props.sendButtonText}\n\t\t\t\tonSendCode={handleSendCode}\n\t\t\t\tshowSendButton={!targetEmail}\n\t\t\t\tlabelClassName={labelClassName}\n\t\t\t\temailValidation={props.emailValidation}\n\t\t\t/>\n\n\t\t\t{targetEmail && (\n\t\t\t\t<OTPInputForm\n\t\t\t\t\t// key для пересоздания компонента, чтобы очистить поле и сфокусироваться на нём\n\t\t\t\t\tkey={lastSentTime}\n\t\t\t\t\totpFormat={props.otpFormat}\n\t\t\t\t\tautoSubmit={props.autoSubmit}\n\t\t\t\t\tpasteTransformer={props.pasteTransformer}\n\t\t\t\t\totpLabel={props.otpLabel}\n\t\t\t\t\totpDescription={props.otpDescription}\n\t\t\t\t\tconfirmButtonText={props.confirmButtonText}\n\t\t\t\t\tonConfirmCode={handleOTPConfirm}\n\t\t\t\t\tlabelClassName={labelClassName}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{targetEmail && (\n\t\t\t\t<ResendButton\n\t\t\t\t\tresendDelay={props.resendDelay}\n\t\t\t\t\tresendButtonText={props.resendButtonText}\n\t\t\t\t\tresendCountdownText={props.resendCountdownText}\n\t\t\t\t\tonResend={handleResendCode}\n\t\t\t\t\tlastSentTime={lastSentTime}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</FormStack>\n\t);\n};\n\nOTPForm.displayName = \"OTPForm\";\n"],"names":["OTPError","message","type","__publicField","emailFormStyles","tv","EmailForm","React","props","ref","defaultEmail","emailPlaceholder","emailLabel","emailDescription","sendButtonText","onSendCode","onEmailChange","showSendButton","labelClassName","emailValidation","isLoading","setIsLoading","styles","validationSchema","z","form","useForm","zodResolver","onSubmit","data","error","Form","jsx","FormStack","FormField","field","TextInput","value","Button","LoaderCircle","cn","defaultProps","OTPInputFormStyles","OTPInputForm","otpFormat","autoSubmit","otpLabel","otpDescription","confirmButtonText","onConfirmCode","showConfirmButton","otpGrouping","useMemo","parseOTPFormat","otpLength","acc","curr","handleOTPChange","InputOTP","generateOTPSlots","format","fallback","onError","length","group","size","grouping","currentIndex","groupSize","groupIndex","slots","InputOTPSlot","InputOTPGroup","jsxs","InputOTPSeparator","resendButtonStyles","ResendButton","lastSentTime","resendDelay","resendButtonText","resendCountdownText","seconds","onResend","remainingSeconds","setRemainingSeconds","updateCountdown","elapsedSeconds","remaining","timer","handleResend","isDisabled","buttonText","OTPForm","targetEmail","setTargetEmail","useState","setLastSentTime","useCallback","email","handleSendCode","isResend","handleResendCode","handleOTPConfirm","otp"],"mappings":"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"}
1
+ {"version":3,"file":"otp-form.js","sources":["../../../src/blocks/auth/otp-form/utils/OTPError.ts","../../../src/blocks/auth/otp-form/components/EmailForm.tsx","../../../src/blocks/auth/otp-form/components/OTPInputForm.tsx","../../../src/blocks/auth/otp-form/components/ResendButton.tsx","../../../src/blocks/auth/otp-form/OTPForm.tsx"],"sourcesContent":["type OTPErrorType = \"invalid_code\" | \"invalid_email\";\r\n\r\nexport class OTPError extends Error {\r\n\tpublic readonly type: OTPErrorType;\r\n\r\n\tconstructor(message: string, type: OTPErrorType = \"invalid_code\") {\r\n\t\tsuper(message);\r\n\t\tthis.type = type;\r\n\t\tthis.name = \"OTPError\";\r\n\r\n\t\t// Необходимо для правильного instanceof в TypeScript\r\n\t\tObject.setPrototypeOf(this, OTPError.prototype);\r\n\t}\r\n\r\n\t// Factory методы для удобства\r\n\tstatic invalidCode(message: string = \"Неверный код подтверждения\"): OTPError {\r\n\t\treturn new OTPError(message, \"invalid_code\");\r\n\t}\r\n\r\n\tstatic invalidEmail(message: string = \"Неверный email\"): OTPError {\r\n\t\treturn new OTPError(message, \"invalid_email\");\r\n\t}\r\n}\r\n","import { zodResolver } from \"@hookform/resolvers/zod\";\r\nimport React from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { z } from \"zod\";\r\n\r\nimport { Button } from \"@/components/button/button/Button\";\r\nimport { Form, FormField, FormStack } from \"@/components/form\";\r\nimport { TextInput } from \"@/components/input/text-input/TextInput\";\r\nimport { LoaderCircle } from \"lucide-react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { OTPError } from \"../utils/OTPError\";\r\n\r\ntype EmailFormData = {\r\n\temail: string;\r\n};\r\n\r\nexport interface EmailFormProps {\r\n\t/** Предустановленный email */\r\n\tdefaultEmail?: string;\r\n\t/** Плейсхолдер для email поля */\r\n\temailPlaceholder?: string;\r\n\t/** Лейбл для email поля */\r\n\temailLabel?: string;\r\n\t/** Описание email поля */\r\n\temailDescription?: string;\r\n\t/** Текст кнопки отправки */\r\n\tsendButtonText?: string;\r\n\t/** Колбек отправки кода. Вызывается при нажатии на кнопку \"Отправить\", если email валидный. */\r\n\tonSendCode?: (email: string) => Promise<void> | void;\r\n\t/** Колбек изменения email */\r\n\tonEmailChange?: (email: string) => void;\r\n\t/** Показывать ли кнопку отправки */\r\n\tshowSendButton?: boolean;\r\n\t/** Классы для лейбла */\r\n\tlabelClassName?: string;\r\n\t/** Схема валидации для email поля */\r\n\temailValidation?: z.ZodString;\r\n}\r\n\r\nconst emailFormStyles = tv({\r\n\tslots: {\r\n\t\tbutton: \"w-full\",\r\n\t\ticonButton: \"animate-spin\"\r\n\t}\r\n});\r\n\r\nexport const EmailForm = React.forwardRef<HTMLFormElement, EmailFormProps>((props, ref) => {\r\n\tconst {\r\n\t\tdefaultEmail,\r\n\t\temailPlaceholder = \"you@company.com\",\r\n\t\temailLabel = \"Email\",\r\n\t\temailDescription,\r\n\t\tsendButtonText = \"Отправить\",\r\n\t\tonSendCode,\r\n\t\tonEmailChange,\r\n\t\tshowSendButton = true,\r\n\t\tlabelClassName,\r\n\t\temailValidation\r\n\t} = props;\r\n\r\n\tconst [isLoading, setIsLoading] = React.useState(false);\r\n\tconst styles = emailFormStyles();\r\n\r\n\tconst validationSchema = z.object({\r\n\t\temail: emailValidation || z.string().email(\"Введите корректный email\")\r\n\t});\r\n\r\n\tconst form = useForm<EmailFormData>({\r\n\t\tresolver: zodResolver(validationSchema),\r\n\t\tdefaultValues: {\r\n\t\t\temail: defaultEmail || \"\"\r\n\t\t}\r\n\t});\r\n\r\n\tconst onSubmit = async (data: EmailFormData) => {\r\n\t\tsetIsLoading(true);\r\n\t\ttry {\r\n\t\t\tawait onSendCode?.(data.email);\r\n\t\t} catch (error) {\r\n\t\t\tif (error instanceof OTPError && error.type === \"invalid_email\") {\r\n\t\t\t\tform.setError(\"email\", {\r\n\t\t\t\t\ttype: \"manual\",\r\n\t\t\t\t\tmessage: error.message\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthrow error;\r\n\t\t} finally {\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Form asChild {...form}>\r\n\t\t\t<form ref={ref} onSubmit={form.handleSubmit(onSubmit)} noValidate>\r\n\t\t\t\t<FormStack>\r\n\t\t\t\t\t<FormField\r\n\t\t\t\t\t\tname=\"email\"\r\n\t\t\t\t\t\ttitle={emailLabel}\r\n\t\t\t\t\t\tdescription={emailDescription}\r\n\t\t\t\t\t\tlabelClassName={labelClassName}\r\n\t\t\t\t\t\tcontrol={({ field }) => (\r\n\t\t\t\t\t\t\t<TextInput\r\n\t\t\t\t\t\t\t\ttype={emailValidation ? \"text\" : \"email\"}\r\n\t\t\t\t\t\t\t\tplaceholder={emailPlaceholder}\r\n\t\t\t\t\t\t\t\tshowClearIcon={true}\r\n\t\t\t\t\t\t\t\t{...field}\r\n\t\t\t\t\t\t\t\tonChange={(value) => {\r\n\t\t\t\t\t\t\t\t\tfield.onChange(value);\r\n\t\t\t\t\t\t\t\t\tonEmailChange?.(value || \"\");\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t{showSendButton && (\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\ttype=\"submit\"\r\n\t\t\t\t\t\t\tdisabled={!form.getValues(\"email\") || isLoading}\r\n\t\t\t\t\t\t\tstartIcon={isLoading ? LoaderCircle : undefined}\r\n\t\t\t\t\t\t\tclassName={styles.button()}\r\n\t\t\t\t\t\t\ticonClassName={cn(isLoading && styles.iconButton())}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{sendButtonText}\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</FormStack>\r\n\t\t\t</form>\r\n\t\t</Form>\r\n\t);\r\n});\r\n\r\nEmailForm.displayName = \"EmailForm\";\r\n","import React, { useMemo } from \"react\";\r\nimport { ControllerRenderProps, FieldValues, useForm } from \"react-hook-form\";\r\n\r\nimport { Button } from \"@/components/button/button/Button\";\r\nimport { Form, FormField, FormStack } from \"@/components/form\";\r\nimport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot } from \"@/components/input-otp\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { LoaderCircle } from \"lucide-react\";\r\nimport { OTPError } from \"../utils/OTPError\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport type OTPRenderFunction = (field: ControllerRenderProps<FieldValues, string>) => React.ReactNode;\r\n\r\nexport interface OTPInputFormProps {\r\n\t/**\r\n\t * Формат группировки OTP кода\r\n\t * Примеры: \"3-3\" (XXX-XXX), \"4-4\" (XXXX-XXXX), \"6\" (XXXXXX)\r\n\t */\r\n\totpFormat?: string;\r\n\t/** Функция для обработки вставленного текста */\r\n\tpasteTransformer?: (text: string) => string;\r\n\t/** Автоотправка при заполнении OTP */\r\n\tautoSubmit?: boolean;\r\n\t/** Лейбл для OTP поля */\r\n\totpLabel?: string;\r\n\t/** Описание OTP поля */\r\n\totpDescription?: string;\r\n\t/** Текст кнопки подтверждения */\r\n\tconfirmButtonText?: string;\r\n\t/** Колбек подтверждения OTP */\r\n\tonConfirmCode?: (otp: string) => Promise<void> | void;\r\n\t/** Показывать ли кнопку подтверждения */\r\n\tshowConfirmButton?: boolean;\r\n\t/** Классы для лейбла */\r\n\tlabelClassName?: string;\r\n}\r\n\r\nconst defaultProps: Required<Pick<OTPInputFormProps, \"otpLabel\" | \"confirmButtonText\" | \"showConfirmButton\">> = {\r\n\totpLabel: \"Код доступа\",\r\n\tconfirmButtonText: \"Подтвердить\",\r\n\tshowConfirmButton: true\r\n};\r\n\r\ntype OTPFormData = {\r\n\totp: string;\r\n};\r\n\r\nconst OTPInputFormStyles = tv({\r\n\tslots: {\r\n\t\tbutton: \"w-full\",\r\n\t\ticonButton: \"animate-spin\"\r\n\t}\r\n});\r\n\r\nexport const OTPInputForm = (props: OTPInputFormProps) => {\r\n\tconst {\r\n\t\totpFormat = \"3-3\",\r\n\t\tautoSubmit = true,\r\n\t\totpLabel = defaultProps.otpLabel,\r\n\t\totpDescription,\r\n\t\tconfirmButtonText = defaultProps.confirmButtonText,\r\n\t\tonConfirmCode,\r\n\t\tshowConfirmButton = defaultProps.showConfirmButton,\r\n\t\tlabelClassName\r\n\t} = props;\r\n\r\n\tconst otpGrouping = useMemo(() => parseOTPFormat(otpFormat), [otpFormat]);\r\n\tconst otpLength = useMemo(() => otpGrouping.reduce((acc, curr) => acc + curr, 0), [otpGrouping]);\r\n\tconst styles = OTPInputFormStyles();\r\n\r\n\tconst [isLoading, setIsLoading] = React.useState(false);\r\n\r\n\tconst form = useForm<OTPFormData>();\r\n\r\n\tconst onSubmit = async (data: OTPFormData) => {\r\n\t\tif (!onConfirmCode) return;\r\n\r\n\t\tsetIsLoading(true);\r\n\t\ttry {\r\n\t\t\tawait onConfirmCode(data.otp);\r\n\t\t} catch (error) {\r\n\t\t\t// Если это ошибка неправильного кода, показываем ошибку в поле\r\n\t\t\tif (error instanceof OTPError && error.type === \"invalid_code\") {\r\n\t\t\t\tform.setError(\"otp\", {\r\n\t\t\t\t\ttype: \"manual\",\r\n\t\t\t\t\tmessage: error.message\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthrow error;\r\n\t\t} finally {\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst handleOTPChange = (value: string) => {\r\n\t\t// Очищаем ошибки при изменении поля\r\n\t\tform.clearErrors(\"otp\");\r\n\r\n\t\tform.setValue(\"otp\", value);\r\n\t\tif (value.length === otpLength && autoSubmit) {\r\n\t\t\tform.handleSubmit(onSubmit)();\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<Form asChild {...form}>\r\n\t\t\t<form onSubmit={form.handleSubmit(onSubmit)} noValidate>\r\n\t\t\t\t<FormStack>\r\n\t\t\t\t\t<FormField\r\n\t\t\t\t\t\tname=\"otp\"\r\n\t\t\t\t\t\ttitle={otpLabel}\r\n\t\t\t\t\t\tdescription={otpDescription}\r\n\t\t\t\t\t\tlabelClassName={labelClassName}\r\n\t\t\t\t\t\tcontrol={({ field }) => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<InputOTP autoFocus={true} maxLength={otpLength} {...field} onChange={handleOTPChange}>\r\n\t\t\t\t\t\t\t\t\t{generateOTPSlots(otpGrouping)}\r\n\t\t\t\t\t\t\t\t</InputOTP>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t{showConfirmButton && (\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\ttype=\"submit\"\r\n\t\t\t\t\t\t\tdisabled={isLoading || form.getValues(\"otp\")?.length !== otpLength}\r\n\t\t\t\t\t\t\tstartIcon={isLoading ? LoaderCircle : undefined}\r\n\t\t\t\t\t\t\tclassName={styles.button()}\r\n\t\t\t\t\t\t\ticonClassName={cn(isLoading && styles.iconButton())}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{confirmButtonText}\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</FormStack>\r\n\t\t\t</form>\r\n\t\t</Form>\r\n\t);\r\n};\r\n\r\nconst parseOTPFormat = (format: string, fallback: number[] = [3, 3], onError?: (error: string) => void): number[] => {\r\n\tif (!format.includes(\"-\")) {\r\n\t\t// Одна группа: \"6\" -> [6]\r\n\t\tconst length = parseInt(format, 10);\r\n\t\tif (isNaN(length) || length <= 0) {\r\n\t\t\tonError?.(`Неверный формат OTP: \"${format}\"`);\r\n\t\t\treturn fallback;\r\n\t\t}\r\n\t\treturn [length];\r\n\t}\r\n\r\n\t// Несколько групп: \"3-3\" -> [3, 3]\r\n\tconst groups = format.split(\"-\").map((group) => {\r\n\t\tconst size = parseInt(group, 10);\r\n\t\tif (isNaN(size) || size <= 0) {\r\n\t\t\tonError?.(`Неверный размер группы: \"${group}\" в формате \"${format}\"`);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn size;\r\n\t});\r\n\r\n\treturn groups;\r\n};\r\n\r\nconst generateOTPSlots = (grouping: number[]): React.ReactNode => {\r\n\tlet currentIndex = 0;\r\n\r\n\treturn grouping.map((groupSize, groupIndex) => {\r\n\t\tconst slots = Array.from({ length: groupSize }, () => (\r\n\t\t\t<InputOTPSlot key={currentIndex} index={currentIndex++} />\r\n\t\t));\r\n\r\n\t\tconst group = <InputOTPGroup key={`group-${groupIndex}`}>{slots}</InputOTPGroup>;\r\n\r\n\t\t// Добавляем разделитель между группами (кроме последней)\r\n\t\tif (groupIndex < grouping.length - 1) {\r\n\t\t\treturn (\r\n\t\t\t\t<React.Fragment key={`fragment-${groupIndex}`}>\r\n\t\t\t\t\t{group}\r\n\t\t\t\t\t<InputOTPSeparator />\r\n\t\t\t\t</React.Fragment>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn group;\r\n\t});\r\n};\r\n","import React from \"react\";\r\nimport { Button } from \"@/components/button/button/Button\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface ResendButtonProps {\r\n\t/** Время последней отправки кода (timestamp) */\r\n\tlastSentTime?: number | null;\r\n\t/** Время задержки для повторной отправки в секундах */\r\n\tresendDelay?: number;\r\n\t/** Текст кнопки повторной отправки */\r\n\tresendButtonText?: string;\r\n\t/** Шаблон текста обратного отсчета */\r\n\tresendCountdownText?: (seconds: number) => string;\r\n\t/** Колбек повторной отправки кода */\r\n\tonResend?: () => Promise<void> | void;\r\n}\r\n\r\nconst resendButtonStyles = tv({\r\n\tslots: {\r\n\t\tbutton: \"w-full\"\r\n\t}\r\n});\r\n\r\nexport const ResendButton = React.forwardRef<HTMLButtonElement, ResendButtonProps>((props, ref) => {\r\n\tconst {\r\n\t\tlastSentTime,\r\n\t\tresendDelay = 60,\r\n\t\tresendButtonText = \"Отправить код повторно\",\r\n\t\tresendCountdownText = (seconds) => `Отправить код повторно через ${seconds} сек.`,\r\n\t\tonResend\r\n\t} = props;\r\n\r\n\tconst [remainingSeconds, setRemainingSeconds] = React.useState(0);\r\n\tconst [isLoading, setIsLoading] = React.useState(false);\r\n\r\n\tconst styles = resendButtonStyles();\r\n\r\n\t// Таймер обратного отсчета\r\n\tReact.useEffect(() => {\r\n\t\tif (!lastSentTime) {\r\n\t\t\tsetRemainingSeconds(0);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst updateCountdown = () => {\r\n\t\t\tconst elapsedSeconds = Math.floor((Date.now() - lastSentTime) / 1000);\r\n\t\t\tconst remaining = Math.max(0, resendDelay - elapsedSeconds);\r\n\t\t\tsetRemainingSeconds(remaining);\r\n\t\t};\r\n\r\n\t\tupdateCountdown();\r\n\t\tconst timer = setInterval(updateCountdown, 1000);\r\n\t\treturn () => clearInterval(timer);\r\n\t}, [lastSentTime, resendDelay]);\r\n\r\n\tconst handleResend = async () => {\r\n\t\tif (remainingSeconds > 0) return;\r\n\t\tsetIsLoading(true);\r\n\t\ttry {\r\n\t\t\tawait onResend?.();\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error(\"Error resending code:\", error);\r\n\t\t} finally {\r\n\t\t\tsetIsLoading(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst isDisabled = remainingSeconds > 0 || isLoading;\r\n\tconst buttonText = remainingSeconds > 0 ? resendCountdownText(remainingSeconds) : resendButtonText;\r\n\r\n\treturn (\r\n\t\t<Button\r\n\t\t\tref={ref}\r\n\t\t\tonClick={handleResend}\r\n\t\t\tdisabled={isDisabled}\r\n\t\t\tvariant=\"link\"\r\n\t\t\ttype=\"button\"\r\n\t\t\tclassName={styles.button()}\r\n\t\t>\r\n\t\t\t{buttonText}\r\n\t\t</Button>\r\n\t);\r\n});\r\n\r\nResendButton.displayName = \"ResendButton\";\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { FormStack } from \"@/components/form\";\r\nimport { EmailForm } from \"./components/EmailForm\";\r\nimport { OTPInputForm } from \"./components/OTPInputForm\";\r\nimport { ResendButton } from \"./components/ResendButton\";\r\nimport { z } from \"zod\";\r\n\r\nexport interface OTPFormProps {\r\n\t/**\r\n\t * Формат группировки OTP кода\r\n\t * Примеры: \"3-3\" (XXX-XXX), \"4-4\" (XXXX-XXXX), \"6\" (XXXXXX)\r\n\t */\r\n\totpFormat?: string;\r\n\t/** Автоотправка при заполнении OTP */\r\n\tautoSubmit?: boolean;\r\n\t/** Функция для обработки вставленного текста */\r\n\tpasteTransformer?: (text: string) => string;\r\n\t/** Время задержки для повторной отправки в секундах */\r\n\tresendDelay?: number;\r\n\t/** Плейсхолдер для email поля */\r\n\temailPlaceholder?: string;\r\n\t/** Лейбл для email поля */\r\n\temailLabel?: string;\r\n\t/** Описание email поля */\r\n\temailDescription?: string;\r\n\t/** Лейбл для OTP поля */\r\n\totpLabel?: string;\r\n\t/** Описание OTP поля */\r\n\totpDescription?: string;\r\n\t/** Текст кнопки отправки */\r\n\tsendButtonText?: string;\r\n\t/** Текст кнопки подтверждения */\r\n\tconfirmButtonText?: string;\r\n\t/** Текст кнопки повторной отправки */\r\n\tresendButtonText?: string;\r\n\t/** Шаблон текста обратного отсчета */\r\n\tresendCountdownText?: (seconds: number) => string;\r\n\t/** Предустановленный email */\r\n\tdefaultEmail?: string;\r\n\t/** Колбек отправки/повторной отправки кода */\r\n\tonSendCode?: (email: string, isResend?: boolean) => Promise<void> | void;\r\n\t/** Колбек подтверждения OTP */\r\n\tonConfirmCode?: (data: { email: string; otp: string }) => Promise<void> | void;\r\n\t/** CSS классы для стилизации лейбла. Позволяет настроить внешний вид лейбла, например ограничить ширину: \"w-24\" */\r\n\tlabelClassName?: string;\r\n\t/** Схема валидации для email поля */\r\n\temailValidation?: z.ZodString;\r\n}\r\n\r\nexport const OTPForm: React.FC<OTPFormProps> = (props) => {\r\n\tconst { onSendCode, onConfirmCode } = props;\r\n\tconst { labelClassName = \"w-24\" } = props;\r\n\r\n\t// Email адрес, на который был отправлен OTP код\r\n\tconst [targetEmail, setTargetEmail] = useState<string | null>(null);\r\n\tconst [lastSentTime, setLastSentTime] = useState<number | null>(null);\r\n\r\n\tconst onEmailChange = useCallback(\r\n\t\t(email: string) => {\r\n\t\t\t// Если email изменился, то сбрасываем состояние форм\r\n\t\t\tif (targetEmail && email !== targetEmail) {\r\n\t\t\t\tsetTargetEmail(null);\r\n\t\t\t}\r\n\t\t},\r\n\t\t[targetEmail]\r\n\t);\r\n\r\n\t// Обработчик отправки кода из EmailForm\r\n\tconst handleSendCode = useCallback(\r\n\t\tasync (email: string, isResend = false) => {\r\n\t\t\ttry {\r\n\t\t\t\tawait onSendCode?.(email, isResend);\r\n\t\t\t\tsetLastSentTime(Date.now());\r\n\t\t\t\t// Сохраняем email как активный адрес для OTP операций\r\n\t\t\t\tsetTargetEmail(email);\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.error(\"Error sending code:\", error);\r\n\t\t\t\tthrow error;\r\n\t\t\t}\r\n\t\t},\r\n\t\t[onSendCode]\r\n\t);\r\n\r\n\tconst handleResendCode = useCallback(async () => {\r\n\t\tif (targetEmail) {\r\n\t\t\tawait handleSendCode(targetEmail, true);\r\n\t\t}\r\n\t}, [handleSendCode, targetEmail]);\r\n\r\n\tconst handleOTPConfirm = useCallback(\r\n\t\tasync (otp: string) => {\r\n\t\t\tawait onConfirmCode?.({ email: targetEmail!, otp });\r\n\t\t},\r\n\t\t[onConfirmCode, targetEmail]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<FormStack>\r\n\t\t\t<EmailForm\r\n\t\t\t\tdefaultEmail={props.defaultEmail}\r\n\t\t\t\temailPlaceholder={props.emailPlaceholder}\r\n\t\t\t\temailLabel={props.emailLabel}\r\n\t\t\t\temailDescription={props.emailDescription}\r\n\t\t\t\tonEmailChange={onEmailChange}\r\n\t\t\t\tsendButtonText={props.sendButtonText}\r\n\t\t\t\tonSendCode={handleSendCode}\r\n\t\t\t\tshowSendButton={!targetEmail}\r\n\t\t\t\tlabelClassName={labelClassName}\r\n\t\t\t\temailValidation={props.emailValidation}\r\n\t\t\t/>\r\n\r\n\t\t\t{targetEmail && (\r\n\t\t\t\t<OTPInputForm\r\n\t\t\t\t\t// key для пересоздания компонента, чтобы очистить поле и сфокусироваться на нём\r\n\t\t\t\t\tkey={lastSentTime}\r\n\t\t\t\t\totpFormat={props.otpFormat}\r\n\t\t\t\t\tautoSubmit={props.autoSubmit}\r\n\t\t\t\t\tpasteTransformer={props.pasteTransformer}\r\n\t\t\t\t\totpLabel={props.otpLabel}\r\n\t\t\t\t\totpDescription={props.otpDescription}\r\n\t\t\t\t\tconfirmButtonText={props.confirmButtonText}\r\n\t\t\t\t\tonConfirmCode={handleOTPConfirm}\r\n\t\t\t\t\tlabelClassName={labelClassName}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\r\n\t\t\t{targetEmail && (\r\n\t\t\t\t<ResendButton\r\n\t\t\t\t\tresendDelay={props.resendDelay}\r\n\t\t\t\t\tresendButtonText={props.resendButtonText}\r\n\t\t\t\t\tresendCountdownText={props.resendCountdownText}\r\n\t\t\t\t\tonResend={handleResendCode}\r\n\t\t\t\t\tlastSentTime={lastSentTime}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\t\t</FormStack>\r\n\t);\r\n};\r\n\r\nOTPForm.displayName = \"OTPForm\";\r\n"],"names":["OTPError","message","type","__publicField","emailFormStyles","tv","EmailForm","React","props","ref","defaultEmail","emailPlaceholder","emailLabel","emailDescription","sendButtonText","onSendCode","onEmailChange","showSendButton","labelClassName","emailValidation","isLoading","setIsLoading","styles","validationSchema","z","form","useForm","zodResolver","onSubmit","data","error","Form","jsx","FormStack","FormField","field","TextInput","value","Button","LoaderCircle","cn","defaultProps","OTPInputFormStyles","OTPInputForm","otpFormat","autoSubmit","otpLabel","otpDescription","confirmButtonText","onConfirmCode","showConfirmButton","otpGrouping","useMemo","parseOTPFormat","otpLength","acc","curr","handleOTPChange","InputOTP","generateOTPSlots","format","fallback","onError","length","group","size","grouping","currentIndex","groupSize","groupIndex","slots","InputOTPSlot","InputOTPGroup","jsxs","InputOTPSeparator","resendButtonStyles","ResendButton","lastSentTime","resendDelay","resendButtonText","resendCountdownText","seconds","onResend","remainingSeconds","setRemainingSeconds","updateCountdown","elapsedSeconds","remaining","timer","handleResend","isDisabled","buttonText","OTPForm","targetEmail","setTargetEmail","useState","setLastSentTime","useCallback","email","handleSendCode","isResend","handleResendCode","handleOTPConfirm","otp"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cn-dsXlqdJg.js","sources":["../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/lib/utils/cn.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n"],"names":["r","e","t","f","n","o","clsx","cn","inputs","twMerge"],"mappings":";AAAA,SAASA,EAAEC,GAAE;AAAC,MAAIC,GAAEC,GAAEC,IAAE;AAAG,MAAa,OAAOH,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAAG,KAAGH;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAII,IAAEJ,EAAE;AAAO,SAAIC,IAAE,GAAEA,IAAEG,GAAEH,IAAI,CAAAD,EAAEC,CAAC,MAAIC,IAAEH,EAAEC,EAAEC,CAAC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAA,EAAE,MAAM,MAAIA,KAAKF,EAAE,CAAAA,EAAEE,CAAC,MAAIC,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;AAAQ,SAASE,IAAM;AAAC,WAAQL,GAAEC,GAAEC,IAAE,GAAEC,IAAE,IAAGC,IAAE,UAAU,QAAOF,IAAEE,GAAEF,IAAI,EAACF,IAAE,UAAUE,CAAC,OAAKD,IAAEF,EAAEC,CAAC,OAAKG,MAAIA,KAAG,MAAKA,KAAGF;AAAG,SAAOE;AAAC;ACGxW,SAASG,KAAMC,GAAsB;AACpC,SAAAC,EAAQH,EAAKE,CAAM,CAAC;AAC5B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"cn-dsXlqdJg.js","sources":["../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/lib/utils/cn.ts"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n\treturn twMerge(clsx(inputs));\r\n}\r\n"],"names":["r","e","t","f","n","o","clsx","cn","inputs","twMerge"],"mappings":";AAAA,SAASA,EAAEC,GAAE;AAAC,MAAIC,GAAEC,GAAEC,IAAE;AAAG,MAAa,OAAOH,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAAG,KAAGH;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAII,IAAEJ,EAAE;AAAO,SAAIC,IAAE,GAAEA,IAAEG,GAAEH,IAAI,CAAAD,EAAEC,CAAC,MAAIC,IAAEH,EAAEC,EAAEC,CAAC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAA,EAAE,MAAM,MAAIA,KAAKF,EAAE,CAAAA,EAAEE,CAAC,MAAIC,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;AAAQ,SAASE,IAAM;AAAC,WAAQL,GAAEC,GAAEC,IAAE,GAAEC,IAAE,IAAGC,IAAE,UAAU,QAAOF,IAAEE,GAAEF,IAAI,EAACF,IAAE,UAAUE,CAAC,OAAKD,IAAEF,EAAEC,CAAC,OAAKG,MAAIA,KAAG,MAAKA,KAAGF;AAAG,SAAOE;AAAC;ACGxW,SAASG,KAAMC,GAAsB;AACpC,SAAAC,EAAQH,EAAKE,CAAM,CAAC;AAC5B;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog.js","sources":["../../node_modules/.pnpm/@radix-ui+react-alert-dialog@1.1.15_@types+react-dom@18.3.6_@types+react@18.3.20__@type_3c02522d3260e86745c28b4781980a86/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../src/components/alert-dialog/AlertDialog.tsx"],"sourcesContent":["\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\nimport { tv } from \"tailwind-variants\";\nimport { usePortalContainer } from \"../portal-container\";\nimport { overlayStyles, OverlayVariants } from \"../overlay/Overlay\";\nimport { Button, ButtonProps } from \"../button\";\nimport { AlertContext, useAlert } from \"../alert/AlertContext\";\nimport { Icon } from \"../icon\";\nimport { IconProps } from \"../icon/Icon\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { AlertVariants } from \"../alert/Alert\";\nimport { useIsMobile } from \"@/hooks\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst alertDialogOverlayStyles = tv({\n\textend: overlayStyles\n});\n\ninterface AlertDialogOverlayProps\n\textends React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>,\n\t\tOverlayVariants {}\n\nconst AlertDialogOverlay = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n\tAlertDialogOverlayProps\n>(({ className, blur, type, ...props }, ref) => (\n\t<AlertDialogPrimitive.Overlay\n\t\tclassName={alertDialogOverlayStyles({ className, blur, type })}\n\t\t{...props}\n\t\tref={ref}\n\t/>\n));\n\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst alertDialogContent = tv({\n\tbase: [\n\t\t\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-[min(360px,calc(100vw-32px))] translate-x-[-50%] translate-y-[-50%] gap-6 rounded-lg border border-secondary-border bg-status-neutral-bg p-4 pt-6 shadow-soft-lg duration-200 lg:max-w-[min(512px,calc(100vw-64px))] lg:p-6\",\n\t\t\"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\",\n\t\t\"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]\"\n\t],\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"border-status-success-secondary-border bg-status-success-bg\",\n\t\t\twarning: \"border-status-warning-secondary-border bg-status-warning-bg\",\n\t\t\terror: \"border-status-error-secondary-border bg-status-error-bg\",\n\t\t\tinfo: \"border-status-info-secondary-border bg-status-info-bg\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"border-secondary-border bg-secondary-bg\",\n\t\t\tmedium: \"bg-secondary-bg\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertVariants>,\n\tdefaultVariants: {\n\t\tfocus: \"low\"\n\t}\n});\n\ntype BackgroundProps = OverlayVariants;\n\nexport type AlertDialogContentProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content> &\n\tAlertVariants & {\n\t\toverlayBlur?: BackgroundProps[\"blur\"];\n\t\toverlayType?: BackgroundProps[\"type\"];\n\t\t/**\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\n\t\t * для поиска PortalContainer\n\t\t */\n\t\tportalContainer?: HTMLElement;\n\t};\n\nconst AlertDialogContent = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Content>,\n\tAlertDialogContentProps\n>(({ className, overlayBlur, overlayType, status, focus = \"low\", children, portalContainer, ...props }, ref) => {\n\tconst contextValue = React.useMemo(\n\t\t() => ({\n\t\t\tstatus,\n\t\t\tfocus\n\t\t}),\n\t\t[status, focus]\n\t);\n\n\tconst container = usePortalContainer(portalContainer);\n\n\treturn (\n\t\t<AlertContext.Provider value={contextValue}>\n\t\t\t<AlertDialogPortal container={container}>\n\t\t\t\t<AlertDialogOverlay blur={overlayBlur} type={overlayType} />\n\t\t\t\t<AlertDialogPrimitive.Content\n\t\t\t\t\tref={ref}\n\t\t\t\t\tclassName={alertDialogContent({ className, status, focus })}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</AlertDialogPrimitive.Content>\n\t\t\t</AlertDialogPortal>\n\t\t</AlertContext.Provider>\n\t);\n});\n\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst alertDialogHeaderStyles = tv({\n\tbase: \"flex flex-col items-center gap-y-2.5 lg:grid lg:grid-cols-[0_1fr] lg:items-start lg:gap-y-4 lg:has-[>svg]:grid-cols-[1.5rem_1fr] lg:has-[>svg]:gap-x-4\"\n});\n\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n\t<div className={alertDialogHeaderStyles({ className })} {...props} />\n);\n\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst alertDialogFooterStyles = tv({\n\tbase: \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-3\"\n});\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n\t<div className={alertDialogFooterStyles({ className })} {...props} />\n);\n\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst alertDialogTitleStyles = tv({\n\tbase: \"mb-1.5 text-base font-semibold text-primary-fg lg:col-start-2 lg:mb-0 lg:text-lg\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"text-status-success-fg\",\n\t\t\twarning: \"text-status-warning-fg\",\n\t\t\terror: \"text-status-error-fg\",\n\t\t\tinfo: \"text-status-info-fg\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg\",\n\t\t\tmedium: \"\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertVariants>,\n\tdefaultVariants: {\n\t\tfocus: \"low\"\n\t}\n});\n\nexport type AlertDialogTitleProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title> & AlertVariants;\n\nconst AlertDialogTitle = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Title>, AlertDialogTitleProps>(\n\t({ className, status: statusProp, focus: focusProp, ...props }, ref) => {\n\t\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\n\n\t\treturn (\n\t\t\t<AlertDialogPrimitive.Title\n\t\t\t\tref={ref}\n\t\t\t\tclassName={alertDialogTitleStyles({ className, status, focus })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst alertDialogIconStyles = tv({\n\tbase: \"text-primary-fg\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"text-status-success\",\n\t\t\twarning: \"text-status-warning\",\n\t\t\terror: \"text-status-error\",\n\t\t\tinfo: \"text-status-info\"\n\t\t}\n\t} satisfies VariantsConfig<AlertDialogIconVariants>\n});\n\ntype AlertDialogIconVariants = Omit<AlertVariants, \"focus\">;\n\nexport type AlertDialogIconProps = IconProps & AlertDialogIconVariants;\n\nconst AlertDialogIcon = React.forwardRef<SVGSVGElement, AlertDialogIconProps>(\n\t({ className, size, icon, status: statusProp, ...props }, ref) => {\n\t\tconst { status } = useAlert({ status: statusProp });\n\n\t\treturn (\n\t\t\t<Icon\n\t\t\t\tref={ref}\n\t\t\t\ticon={icon}\n\t\t\t\tsize={size ?? \"xl\"}\n\t\t\t\tclassName={alertDialogIconStyles({ className, status })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nAlertDialogIcon.displayName = \"AlertDialogIcon\";\n\nconst alertDialogDescriptionStyles = tv({\n\tbase: \"text-center text-sm text-muted lg:col-start-2 lg:text-left\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"text-status-success-fg\",\n\t\t\twarning: \"text-status-warning-fg\",\n\t\t\terror: \"text-status-error-fg\",\n\t\t\tinfo: \"text-status-info-fg\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"text-muted\",\n\t\t\tmedium: \"\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertDialogDescriptionVariants>,\n\tdefaultVariants: {\n\t\tfocus: \"low\"\n\t}\n});\n\ntype AlertDialogDescriptionVariants = AlertVariants;\n\nexport type AlertDialogDescriptionProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description> &\n\tAlertDialogDescriptionVariants;\n\nconst AlertDialogDescription = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Description>,\n\tAlertDialogDescriptionProps\n>(({ className, status: statusProp, focus: focusProp, ...props }, ref) => {\n\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\n\n\treturn (\n\t\t<AlertDialogPrimitive.Description\n\t\t\tref={ref}\n\t\t\tclassName={alertDialogDescriptionStyles({ className, status, focus })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Action>, ButtonProps>(\n\t({ children, status: statusProp, variant, ...props }, ref) => {\n\t\tconst { status } = useAlert({ status: statusProp as AlertVariants[\"status\"] });\n\t\tconst isMobile = useIsMobile();\n\t\tconst size = isMobile ? \"xl\" : \"md\";\n\n\t\treturn (\n\t\t\t<AlertDialogPrimitive.Action ref={ref} asChild>\n\t\t\t\t<Button size={size} status={status} variant={variant || \"primary\"} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</Button>\n\t\t\t</AlertDialogPrimitive.Action>\n\t\t);\n\t}\n);\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\ntype AlertDialogCancelVariants = Omit<AlertVariants, \"status\">;\n\nconst alertDialogCancelStyles = tv({\n\tbase: \"mt-2 sm:mt-0\",\n\tvariants: {\n\t\tfocus: {\n\t\t\tlow: \"\",\n\t\t\tmedium: \"\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertDialogCancelVariants>\n});\n\nconst AlertDialogCancel = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n\tOmit<ButtonProps, \"focus\"> & AlertDialogCancelVariants\n>(({ className, children, variant, ...props }, ref) => {\n\tconst { focus } = useAlert();\n\tconst isMobile = useIsMobile();\n\tconst size = isMobile ? \"xl\" : \"md\";\n\n\treturn (\n\t\t<AlertDialogPrimitive.Cancel ref={ref} asChild>\n\t\t\t<Button\n\t\t\t\tsize={size}\n\t\t\t\tvariant={variant || \"outline\"}\n\t\t\t\tclassName={alertDialogCancelStyles({ className, focus })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Button>\n\t\t</AlertDialogPrimitive.Cancel>\n\t);\n});\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nconst AlertDialogPrimitiveAction = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Action>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ ...props }, ref) => <AlertDialogPrimitive.Action ref={ref} {...props} />);\n\nAlertDialogPrimitiveAction.displayName = \"AlertDialogPrimitiveAction\";\n\nconst AlertDialogPrimitiveCancel = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ ...props }, ref) => <AlertDialogPrimitive.Cancel ref={ref} {...props} />);\n\nAlertDialogPrimitiveCancel.displayName = \"AlertDialogPrimitiveCancel\";\n\nexport {\n\tAlertDialog,\n\tAlertDialogPortal,\n\tAlertDialogOverlay,\n\tAlertDialogTrigger,\n\tAlertDialogContent,\n\tAlertDialogHeader,\n\tAlertDialogFooter,\n\tAlertDialogTitle,\n\tAlertDialogIcon,\n\tAlertDialogDescription,\n\tAlertDialogAction,\n\tAlertDialogCancel,\n\tAlertDialogPrimitiveAction,\n\tAlertDialogPrimitiveCancel\n};\n"],"names":["ROOT_NAME","createAlertDialogContext","createAlertDialogScope","createContextScope","createDialogScope","useDialogScope","AlertDialog","props","__scopeAlertDialog","alertDialogProps","dialogScope","jsx","DialogPrimitive.Root","TRIGGER_NAME","AlertDialogTrigger","React","forwardedRef","triggerProps","DialogPrimitive.Trigger","PORTAL_NAME","AlertDialogPortal","portalProps","DialogPrimitive.Portal","OVERLAY_NAME","AlertDialogOverlay","overlayProps","DialogPrimitive.Overlay","CONTENT_NAME","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","createSlottable","AlertDialogContent","children","contentProps","contentRef","composedRefs","useComposedRefs","cancelRef","DialogPrimitive.WarningProvider","TITLE_NAME","jsxs","DialogPrimitive.Content","composeEventHandlers","event","DescriptionWarning","AlertDialogTitle","titleProps","DialogPrimitive.Title","DESCRIPTION_NAME","AlertDialogDescription","descriptionProps","DialogPrimitive.Description","ACTION_NAME","AlertDialogAction","actionProps","DialogPrimitive.Close","CANCEL_NAME","AlertDialogCancel","cancelProps","ref","MESSAGE","Root2","Trigger2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","AlertDialogPrimitive.Root","AlertDialogPrimitive.Trigger","AlertDialogPrimitive.Portal","alertDialogOverlayStyles","tv","overlayStyles","className","blur","type","AlertDialogPrimitive.Overlay","alertDialogContent","overlayBlur","overlayType","status","focus","portalContainer","contextValue","container","usePortalContainer","AlertContext","AlertDialogPrimitive.Content","alertDialogHeaderStyles","AlertDialogHeader","alertDialogFooterStyles","AlertDialogFooter","alertDialogTitleStyles","statusProp","focusProp","useAlert","AlertDialogPrimitive.Title","alertDialogIconStyles","AlertDialogIcon","size","icon","Icon","alertDialogDescriptionStyles","AlertDialogPrimitive.Description","variant","useIsMobile","AlertDialogPrimitive.Action","Button","alertDialogCancelStyles","AlertDialogPrimitive.Cancel","AlertDialogPrimitiveAction","AlertDialogPrimitiveCancel"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"alert-dialog.js","sources":["../../node_modules/.pnpm/@radix-ui+react-alert-dialo_3c02522d3260e86745c28b4781980a86/node_modules/@radix-ui/react-alert-dialog/dist/index.mjs","../../src/components/alert-dialog/AlertDialog.tsx"],"sourcesContent":["\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { usePortalContainer } from \"../portal-container\";\r\nimport { overlayStyles, OverlayVariants } from \"../overlay/Overlay\";\r\nimport { Button, ButtonProps } from \"../button\";\r\nimport { AlertContext, useAlert } from \"../alert/AlertContext\";\r\nimport { Icon } from \"../icon\";\r\nimport { IconProps } from \"../icon/Icon\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { AlertVariants } from \"../alert/Alert\";\r\nimport { useIsMobile } from \"@/hooks\";\r\n\r\nconst AlertDialog = AlertDialogPrimitive.Root;\r\n\r\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\r\n\r\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\r\n\r\nconst alertDialogOverlayStyles = tv({\r\n\textend: overlayStyles\r\n});\r\n\r\ninterface AlertDialogOverlayProps\r\n\textends React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>,\r\n\t\tOverlayVariants {}\r\n\r\nconst AlertDialogOverlay = React.forwardRef<\r\n\tReact.ElementRef<typeof AlertDialogPrimitive.Overlay>,\r\n\tAlertDialogOverlayProps\r\n>(({ className, blur, type, ...props }, ref) => (\r\n\t<AlertDialogPrimitive.Overlay\r\n\t\tclassName={alertDialogOverlayStyles({ className, blur, type })}\r\n\t\t{...props}\r\n\t\tref={ref}\r\n\t/>\r\n));\r\n\r\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\r\n\r\nconst alertDialogContent = tv({\r\n\tbase: [\r\n\t\t\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-[min(360px,calc(100vw-32px))] translate-x-[-50%] translate-y-[-50%] gap-6 rounded-lg border border-secondary-border bg-status-neutral-bg p-4 pt-6 shadow-soft-lg duration-200 lg:max-w-[min(512px,calc(100vw-64px))] lg:p-6\",\r\n\t\t\"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\",\r\n\t\t\"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]\"\r\n\t],\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"border-status-success-secondary-border bg-status-success-bg\",\r\n\t\t\twarning: \"border-status-warning-secondary-border bg-status-warning-bg\",\r\n\t\t\terror: \"border-status-error-secondary-border bg-status-error-bg\",\r\n\t\t\tinfo: \"border-status-info-secondary-border bg-status-info-bg\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"border-secondary-border bg-secondary-bg\",\r\n\t\t\tmedium: \"bg-secondary-bg\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertVariants>,\r\n\tdefaultVariants: {\r\n\t\tfocus: \"low\"\r\n\t}\r\n});\r\n\r\ntype BackgroundProps = OverlayVariants;\r\n\r\nexport type AlertDialogContentProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content> &\r\n\tAlertVariants & {\r\n\t\toverlayBlur?: BackgroundProps[\"blur\"];\r\n\t\toverlayType?: BackgroundProps[\"type\"];\r\n\t\t/**\r\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\r\n\t\t * для поиска PortalContainer\r\n\t\t */\r\n\t\tportalContainer?: HTMLElement;\r\n\t};\r\n\r\nconst AlertDialogContent = React.forwardRef<\r\n\tReact.ElementRef<typeof AlertDialogPrimitive.Content>,\r\n\tAlertDialogContentProps\r\n>(({ className, overlayBlur, overlayType, status, focus = \"low\", children, portalContainer, ...props }, ref) => {\r\n\tconst contextValue = React.useMemo(\r\n\t\t() => ({\r\n\t\t\tstatus,\r\n\t\t\tfocus\r\n\t\t}),\r\n\t\t[status, focus]\r\n\t);\r\n\r\n\tconst container = usePortalContainer(portalContainer);\r\n\r\n\treturn (\r\n\t\t<AlertContext.Provider value={contextValue}>\r\n\t\t\t<AlertDialogPortal container={container}>\r\n\t\t\t\t<AlertDialogOverlay blur={overlayBlur} type={overlayType} />\r\n\t\t\t\t<AlertDialogPrimitive.Content\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\tclassName={alertDialogContent({ className, status, focus })}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</AlertDialogPrimitive.Content>\r\n\t\t\t</AlertDialogPortal>\r\n\t\t</AlertContext.Provider>\r\n\t);\r\n});\r\n\r\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\r\n\r\nconst alertDialogHeaderStyles = tv({\r\n\tbase: \"flex flex-col items-center gap-y-2.5 lg:grid lg:grid-cols-[0_1fr] lg:items-start lg:gap-y-4 lg:has-[>svg]:grid-cols-[1.5rem_1fr] lg:has-[>svg]:gap-x-4\"\r\n});\r\n\r\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={alertDialogHeaderStyles({ className })} {...props} />\r\n);\r\n\r\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\r\n\r\nconst alertDialogFooterStyles = tv({\r\n\tbase: \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-3\"\r\n});\r\n\r\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n\t<div className={alertDialogFooterStyles({ className })} {...props} />\r\n);\r\n\r\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\r\n\r\nconst alertDialogTitleStyles = tv({\r\n\tbase: \"mb-1.5 text-base font-semibold text-primary-fg lg:col-start-2 lg:mb-0 lg:text-lg\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"text-status-success-fg\",\r\n\t\t\twarning: \"text-status-warning-fg\",\r\n\t\t\terror: \"text-status-error-fg\",\r\n\t\t\tinfo: \"text-status-info-fg\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"text-primary-fg\",\r\n\t\t\tmedium: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertVariants>,\r\n\tdefaultVariants: {\r\n\t\tfocus: \"low\"\r\n\t}\r\n});\r\n\r\nexport type AlertDialogTitleProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title> & AlertVariants;\r\n\r\nconst AlertDialogTitle = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Title>, AlertDialogTitleProps>(\r\n\t({ className, status: statusProp, focus: focusProp, ...props }, ref) => {\r\n\t\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\r\n\r\n\t\treturn (\r\n\t\t\t<AlertDialogPrimitive.Title\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={alertDialogTitleStyles({ className, status, focus })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\r\n\r\nconst alertDialogIconStyles = tv({\r\n\tbase: \"text-primary-fg\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"text-status-success\",\r\n\t\t\twarning: \"text-status-warning\",\r\n\t\t\terror: \"text-status-error\",\r\n\t\t\tinfo: \"text-status-info\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertDialogIconVariants>\r\n});\r\n\r\ntype AlertDialogIconVariants = Omit<AlertVariants, \"focus\">;\r\n\r\nexport type AlertDialogIconProps = IconProps & AlertDialogIconVariants;\r\n\r\nconst AlertDialogIcon = React.forwardRef<SVGSVGElement, AlertDialogIconProps>(\r\n\t({ className, size, icon, status: statusProp, ...props }, ref) => {\r\n\t\tconst { status } = useAlert({ status: statusProp });\r\n\r\n\t\treturn (\r\n\t\t\t<Icon\r\n\t\t\t\tref={ref}\r\n\t\t\t\ticon={icon}\r\n\t\t\t\tsize={size ?? \"xl\"}\r\n\t\t\t\tclassName={alertDialogIconStyles({ className, status })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nAlertDialogIcon.displayName = \"AlertDialogIcon\";\r\n\r\nconst alertDialogDescriptionStyles = tv({\r\n\tbase: \"text-center text-sm text-muted lg:col-start-2 lg:text-left\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"text-status-success-fg\",\r\n\t\t\twarning: \"text-status-warning-fg\",\r\n\t\t\terror: \"text-status-error-fg\",\r\n\t\t\tinfo: \"text-status-info-fg\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"text-muted\",\r\n\t\t\tmedium: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertDialogDescriptionVariants>,\r\n\tdefaultVariants: {\r\n\t\tfocus: \"low\"\r\n\t}\r\n});\r\n\r\ntype AlertDialogDescriptionVariants = AlertVariants;\r\n\r\nexport type AlertDialogDescriptionProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description> &\r\n\tAlertDialogDescriptionVariants;\r\n\r\nconst AlertDialogDescription = React.forwardRef<\r\n\tReact.ElementRef<typeof AlertDialogPrimitive.Description>,\r\n\tAlertDialogDescriptionProps\r\n>(({ className, status: statusProp, focus: focusProp, ...props }, ref) => {\r\n\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\r\n\r\n\treturn (\r\n\t\t<AlertDialogPrimitive.Description\r\n\t\t\tref={ref}\r\n\t\t\tclassName={alertDialogDescriptionStyles({ className, status, focus })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n});\r\n\r\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;\r\n\r\nconst AlertDialogAction = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Action>, ButtonProps>(\r\n\t({ children, status: statusProp, variant, ...props }, ref) => {\r\n\t\tconst { status } = useAlert({ status: statusProp as AlertVariants[\"status\"] });\r\n\t\tconst isMobile = useIsMobile();\r\n\t\tconst size = isMobile ? \"xl\" : \"md\";\r\n\r\n\t\treturn (\r\n\t\t\t<AlertDialogPrimitive.Action ref={ref} asChild>\r\n\t\t\t\t<Button size={size} status={status} variant={variant || \"primary\"} {...props}>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</Button>\r\n\t\t\t</AlertDialogPrimitive.Action>\r\n\t\t);\r\n\t}\r\n);\r\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\r\n\r\ntype AlertDialogCancelVariants = Omit<AlertVariants, \"status\">;\r\n\r\nconst alertDialogCancelStyles = tv({\r\n\tbase: \"mt-2 sm:mt-0\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\tlow: \"\",\r\n\t\t\tmedium: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertDialogCancelVariants>\r\n});\r\n\r\nconst AlertDialogCancel = React.forwardRef<\r\n\tReact.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n\tOmit<ButtonProps, \"focus\"> & AlertDialogCancelVariants\r\n>(({ className, children, variant, ...props }, ref) => {\r\n\tconst { focus } = useAlert();\r\n\tconst isMobile = useIsMobile();\r\n\tconst size = isMobile ? \"xl\" : \"md\";\r\n\r\n\treturn (\r\n\t\t<AlertDialogPrimitive.Cancel ref={ref} asChild>\r\n\t\t\t<Button\r\n\t\t\t\tsize={size}\r\n\t\t\t\tvariant={variant || \"outline\"}\r\n\t\t\t\tclassName={alertDialogCancelStyles({ className, focus })}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</Button>\r\n\t\t</AlertDialogPrimitive.Cancel>\r\n\t);\r\n});\r\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\r\n\r\nconst AlertDialogPrimitiveAction = React.forwardRef<\r\n\tReact.ElementRef<typeof AlertDialogPrimitive.Action>,\r\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\r\n>(({ ...props }, ref) => <AlertDialogPrimitive.Action ref={ref} {...props} />);\r\n\r\nAlertDialogPrimitiveAction.displayName = \"AlertDialogPrimitiveAction\";\r\n\r\nconst AlertDialogPrimitiveCancel = React.forwardRef<\r\n\tReact.ElementRef<typeof AlertDialogPrimitive.Cancel>,\r\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\r\n>(({ ...props }, ref) => <AlertDialogPrimitive.Cancel ref={ref} {...props} />);\r\n\r\nAlertDialogPrimitiveCancel.displayName = \"AlertDialogPrimitiveCancel\";\r\n\r\nexport {\r\n\tAlertDialog,\r\n\tAlertDialogPortal,\r\n\tAlertDialogOverlay,\r\n\tAlertDialogTrigger,\r\n\tAlertDialogContent,\r\n\tAlertDialogHeader,\r\n\tAlertDialogFooter,\r\n\tAlertDialogTitle,\r\n\tAlertDialogIcon,\r\n\tAlertDialogDescription,\r\n\tAlertDialogAction,\r\n\tAlertDialogCancel,\r\n\tAlertDialogPrimitiveAction,\r\n\tAlertDialogPrimitiveCancel\r\n};\r\n"],"names":["ROOT_NAME","createAlertDialogContext","createAlertDialogScope","createContextScope","createDialogScope","useDialogScope","AlertDialog","props","__scopeAlertDialog","alertDialogProps","dialogScope","jsx","DialogPrimitive.Root","TRIGGER_NAME","AlertDialogTrigger","React","forwardedRef","triggerProps","DialogPrimitive.Trigger","PORTAL_NAME","AlertDialogPortal","portalProps","DialogPrimitive.Portal","OVERLAY_NAME","AlertDialogOverlay","overlayProps","DialogPrimitive.Overlay","CONTENT_NAME","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","createSlottable","AlertDialogContent","children","contentProps","contentRef","composedRefs","useComposedRefs","cancelRef","DialogPrimitive.WarningProvider","TITLE_NAME","jsxs","DialogPrimitive.Content","composeEventHandlers","event","DescriptionWarning","AlertDialogTitle","titleProps","DialogPrimitive.Title","DESCRIPTION_NAME","AlertDialogDescription","descriptionProps","DialogPrimitive.Description","ACTION_NAME","AlertDialogAction","actionProps","DialogPrimitive.Close","CANCEL_NAME","AlertDialogCancel","cancelProps","ref","MESSAGE","Root2","Trigger2","Portal2","Overlay2","Content2","Action","Cancel","Title2","Description2","AlertDialogPrimitive.Root","AlertDialogPrimitive.Trigger","AlertDialogPrimitive.Portal","alertDialogOverlayStyles","tv","overlayStyles","className","blur","type","AlertDialogPrimitive.Overlay","alertDialogContent","overlayBlur","overlayType","status","focus","portalContainer","contextValue","container","usePortalContainer","AlertContext","AlertDialogPrimitive.Content","alertDialogHeaderStyles","AlertDialogHeader","alertDialogFooterStyles","AlertDialogFooter","alertDialogTitleStyles","statusProp","focusProp","useAlert","AlertDialogPrimitive.Title","alertDialogIconStyles","AlertDialogIcon","size","icon","Icon","alertDialogDescriptionStyles","AlertDialogPrimitive.Description","variant","useIsMobile","AlertDialogPrimitive.Action","Button","alertDialogCancelStyles","AlertDialogPrimitive.Cancel","AlertDialogPrimitiveAction","AlertDialogPrimitiveCancel"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sources":["../../src/components/alert/components/AlertTitle.tsx","../../src/components/alert/components/AlertButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { useAlert } from \"../AlertContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { AlertVariants } from \"../Alert\";\n\nconst alertTitleStyles = tv({\n\tbase: \"col-start-2 line-clamp-1 min-h-4 text-sm font-medium tracking-tight text-primary-fg\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tsuccess: \"text-status-success-fg\",\n\t\t\twarning: \"text-status-warning-fg\",\n\t\t\terror: \"text-status-error-fg\",\n\t\t\tinfo: \"text-status-info-fg\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"text-primary-fg\",\n\t\t\tmedium: \"\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<AlertVariants>,\n\tdefaultVariants: {\n\t\tfocus: \"low\"\n\t}\n});\n\nexport type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement> &\n\tAlertVariants & {\n\t\tasChild?: boolean;\n\t};\n\n/**\n * Компонент AlertTitle для отображения заголовка алерта\n */\nexport const AlertTitle = React.forwardRef<HTMLHeadingElement, AlertTitleProps>(\n\t({ className, status: statusProp, focus: focusProp, asChild = false, ...props }, ref) => {\n\t\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\n\n\t\tconst Comp = asChild ? Slot : \"h5\";\n\t\treturn <Comp ref={ref} className={alertTitleStyles({ status, className, focus })} {...props} />;\n\t}\n);\n\nAlertTitle.displayName = \"AlertTitle\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { useAlert } from \"../AlertContext\";\nimport { Button, ButtonProps } from \"@/components/button\";\nimport { AlertVariants } from \"../Alert\";\n\nconst alertButtonStyles = tv({\n\tbase: \"col-start-3 ml-3 h-5 self-end rounded-none px-0 py-0.5 text-xs\"\n});\n\nexport type AlertButtonProps = Omit<ButtonProps, \"status\"> & Pick<AlertVariants, \"status\">;\n\n/**\n * Компонент AlertButton для отображения кнопки алерта\n */\nexport const AlertButton = React.forwardRef<HTMLButtonElement, AlertButtonProps>(\n\t({ className, status: statusProp, ...props }, ref) => {\n\t\tconst { status } = useAlert({ status: statusProp });\n\n\t\treturn (\n\t\t\t<Button ref={ref} status={status} variant=\"link\" className={alertButtonStyles({ className })} {...props} />\n\t\t);\n\t}\n);\n\nAlertButton.displayName = \"AlertButton\";\n"],"names":["alertTitleStyles","tv","AlertTitle","React","className","statusProp","focusProp","asChild","props","ref","status","focus","useAlert","jsx","Slot","alertButtonStyles","AlertButton","Button"],"mappings":";;;;;;;AAOA,MAAMA,IAAmBC,EAAG;AAAA,EAC3B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EAAA;AAET,CAAC,GAUYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,WAAAC,GAAW,QAAQC,GAAY,OAAOC,GAAW,SAAAC,IAAU,IAAO,GAAGC,EAAM,GAAGC,MAAQ;AAClF,UAAA,EAAE,QAAAC,GAAQ,OAAAC,EAAA,IAAUC,EAAS,EAAE,QAAQP,GAAY,OAAOC,GAAW;AAG3E,WAAQ,gBAAAO,EADKN,IAAUO,IAAO,MACtB,EAAK,KAAAL,GAAU,WAAWT,EAAiB,EAAE,QAAAU,GAAQ,WAAAN,GAAW,OAAAO,EAAM,CAAC,GAAI,GAAGH,EAAO,CAAA;AAAA,EAAA;AAE/F;AAEAN,EAAW,cAAc;ACtCzB,MAAMa,IAAoBd,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAOYe,IAAcb,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAC,GAAW,QAAQC,GAAY,GAAGG,KAASC,MAAQ;AACrD,UAAM,EAAE,QAAAC,EAAO,IAAIE,EAAS,EAAE,QAAQP,GAAY;AAElD,WACE,gBAAAQ,EAAAI,GAAA,EAAO,KAAAR,GAAU,QAAAC,GAAgB,SAAQ,QAAO,WAAWK,EAAkB,EAAE,WAAAX,EAAW,CAAA,GAAI,GAAGI,EAAO,CAAA;AAAA,EAAA;AAG5G;AAEAQ,EAAY,cAAc;"}
1
+ {"version":3,"file":"alert.js","sources":["../../src/components/alert/components/AlertTitle.tsx","../../src/components/alert/components/AlertButton.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { useAlert } from \"../AlertContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { AlertVariants } from \"../Alert\";\r\n\r\nconst alertTitleStyles = tv({\r\n\tbase: \"col-start-2 line-clamp-1 min-h-4 text-sm font-medium tracking-tight text-primary-fg\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tsuccess: \"text-status-success-fg\",\r\n\t\t\twarning: \"text-status-warning-fg\",\r\n\t\t\terror: \"text-status-error-fg\",\r\n\t\t\tinfo: \"text-status-info-fg\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"text-primary-fg\",\r\n\t\t\tmedium: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AlertVariants>,\r\n\tdefaultVariants: {\r\n\t\tfocus: \"low\"\r\n\t}\r\n});\r\n\r\nexport type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement> &\r\n\tAlertVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\n/**\r\n * Компонент AlertTitle для отображения заголовка алерта\r\n */\r\nexport const AlertTitle = React.forwardRef<HTMLHeadingElement, AlertTitleProps>(\r\n\t({ className, status: statusProp, focus: focusProp, asChild = false, ...props }, ref) => {\r\n\t\tconst { status, focus } = useAlert({ status: statusProp, focus: focusProp });\r\n\r\n\t\tconst Comp = asChild ? Slot : \"h5\";\r\n\t\treturn <Comp ref={ref} className={alertTitleStyles({ status, className, focus })} {...props} />;\r\n\t}\r\n);\r\n\r\nAlertTitle.displayName = \"AlertTitle\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { useAlert } from \"../AlertContext\";\r\nimport { Button, ButtonProps } from \"@/components/button\";\r\nimport { AlertVariants } from \"../Alert\";\r\n\r\nconst alertButtonStyles = tv({\r\n\tbase: \"col-start-3 ml-3 h-5 self-end rounded-none px-0 py-0.5 text-xs\"\r\n});\r\n\r\nexport type AlertButtonProps = Omit<ButtonProps, \"status\"> & Pick<AlertVariants, \"status\">;\r\n\r\n/**\r\n * Компонент AlertButton для отображения кнопки алерта\r\n */\r\nexport const AlertButton = React.forwardRef<HTMLButtonElement, AlertButtonProps>(\r\n\t({ className, status: statusProp, ...props }, ref) => {\r\n\t\tconst { status } = useAlert({ status: statusProp });\r\n\r\n\t\treturn (\r\n\t\t\t<Button ref={ref} status={status} variant=\"link\" className={alertButtonStyles({ className })} {...props} />\r\n\t\t);\r\n\t}\r\n);\r\n\r\nAlertButton.displayName = \"AlertButton\";\r\n"],"names":["alertTitleStyles","tv","AlertTitle","React","className","statusProp","focusProp","asChild","props","ref","status","focus","useAlert","jsx","Slot","alertButtonStyles","AlertButton","Button"],"mappings":";;;;;;;AAOA,MAAMA,IAAmBC,EAAG;AAAA,EAC3B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACP;AAAA,IACA,OAAO;AAAA,MACN,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,iBAAiB;AAAA,IAChB,OAAO;AAAA,EAAA;AAET,CAAC,GAUYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,WAAAC,GAAW,QAAQC,GAAY,OAAOC,GAAW,SAAAC,IAAU,IAAO,GAAGC,EAAM,GAAGC,MAAQ;AAClF,UAAA,EAAE,QAAAC,GAAQ,OAAAC,EAAA,IAAUC,EAAS,EAAE,QAAQP,GAAY,OAAOC,GAAW;AAG3E,WAAQ,gBAAAO,EADKN,IAAUO,IAAO,MACtB,EAAK,KAAAL,GAAU,WAAWT,EAAiB,EAAE,QAAAU,GAAQ,WAAAN,GAAW,OAAAO,EAAM,CAAC,GAAI,GAAGH,EAAO,CAAA;AAAA,EAAA;AAE/F;AAEAN,EAAW,cAAc;ACtCzB,MAAMa,IAAoBd,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAOYe,IAAcb,EAAM;AAAA,EAChC,CAAC,EAAE,WAAAC,GAAW,QAAQC,GAAY,GAAGG,KAASC,MAAQ;AACrD,UAAM,EAAE,QAAAC,EAAO,IAAIE,EAAS,EAAE,QAAQP,GAAY;AAElD,WACE,gBAAAQ,EAAAI,GAAA,EAAO,KAAAR,GAAU,QAAAC,GAAgB,SAAQ,QAAO,WAAWK,EAAkB,EAAE,WAAAX,EAAW,CAAA,GAAI,GAAGI,EAAO,CAAA;AAAA,EAAA;AAG5G;AAEAQ,EAAY,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.3.1/node_modules/use-sync-external-store/shim/index.js","../../node_modules/.pnpm/@radix-ui+react-use-is-hydrated@0.1.0_@types+react@18.3.20_react@18.3.1/node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","../../node_modules/.pnpm/@radix-ui+react-avatar@1.1.11_@types+react-dom@18.3.6_@types+react@18.3.20__@types+reac_83cc3097e6f4b1aa2ef2f3c1cb15c838/node_modules/@radix-ui/react-avatar/dist/index.mjs","../../src/components/avatar/Avatar.tsx","../../src/components/avatar/avatar-fallback/AvatarFallback.tsx","../../src/components/avatar/avatar-icon/AvatarIcon.tsx","../../src/components/avatar/avatar-image/AvatarImage.tsx","../../src/components/avatar/avatar-label/AvatarLabelContext.tsx","../../src/components/avatar/avatar-label/AvatarLabel.tsx","../../src/components/avatar/avatar-indicator/AvatarIndicator.tsx","../../src/components/avatar/avatar-label/components/avatar-label-avatar/AvatarLabelAvatar.tsx","../../src/components/avatar/avatar-label/components/avatar-label-indicator/AvatarLabelIndicator.tsx","../../src/components/avatar/avatar-label/components/avatar-label-title/AvatarLabelTitle.tsx","../../src/components/avatar/avatar-label/components/avatar-label-description/AvatarLabelDescription.tsx"],"sourcesContent":["/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function useSyncExternalStore$2(subscribe, getSnapshot) {\n didWarnOld18Alpha ||\n void 0 === React.startTransition ||\n ((didWarnOld18Alpha = !0),\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n ));\n var value = getSnapshot();\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n objectIs(value, cachedValue) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n cachedValue = useState({\n inst: { value: value, getSnapshot: getSnapshot }\n });\n var inst = cachedValue[0].inst,\n forceUpdate = cachedValue[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n }\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n }\n function useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue,\n didWarnOld18Alpha = !1,\n didWarnUncachedGetSnapshot = !1,\n shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\n exports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","// src/use-is-hydrated.tsx\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nfunction useIsHydrated() {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/avatar.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useIsHydrated } from \"@radix-ui/react-use-is-hydrated\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState(\"idle\");\n return /* @__PURE__ */ jsx(\n AvatarProvider,\n {\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ jsx(Primitive.span, { ...avatarProps, ref: forwardedRef })\n }\n );\n }\n);\nAvatar.displayName = AVATAR_NAME;\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {\n }, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps);\n const handleLoadingStatusChange = useCallbackRef((status) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n useLayoutEffect(() => {\n if (imageLoadingStatus !== \"idle\") {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ jsx(Primitive.img, { ...imageProps, ref: forwardedRef, src }) : null;\n }\n);\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === void 0);\n React.useEffect(() => {\n if (delayMs !== void 0) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ jsx(Primitive.span, { ...fallbackProps, ref: forwardedRef }) : null;\n }\n);\nAvatarFallback.displayName = FALLBACK_NAME;\nfunction resolveLoadingStatus(image, src) {\n if (!image) {\n return \"idle\";\n }\n if (!src) {\n return \"error\";\n }\n if (image.src !== src) {\n image.src = src;\n }\n return image.complete && image.naturalWidth > 0 ? \"loaded\" : \"loading\";\n}\nfunction useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {\n const isHydrated = useIsHydrated();\n const imageRef = React.useRef(null);\n const image = (() => {\n if (!isHydrated) return null;\n if (!imageRef.current) {\n imageRef.current = new window.Image();\n }\n return imageRef.current;\n })();\n const [loadingStatus, setLoadingStatus] = React.useState(\n () => resolveLoadingStatus(image, src)\n );\n useLayoutEffect(() => {\n setLoadingStatus(resolveLoadingStatus(image, src));\n }, [image, src]);\n useLayoutEffect(() => {\n const updateStatus = (status) => () => {\n setLoadingStatus(status);\n };\n if (!image) return;\n const handleLoad = updateStatus(\"loaded\");\n const handleError = updateStatus(\"error\");\n image.addEventListener(\"load\", handleLoad);\n image.addEventListener(\"error\", handleError);\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n if (typeof crossOrigin === \"string\") {\n image.crossOrigin = crossOrigin;\n }\n return () => {\n image.removeEventListener(\"load\", handleLoad);\n image.removeEventListener(\"error\", handleError);\n };\n }, [image, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}\nvar Root = Avatar;\nvar Image = AvatarImage;\nvar Fallback = AvatarFallback;\nexport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Fallback,\n Image,\n Root,\n createAvatarScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { tv } from \"tailwind-variants\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface AvatarVariants {\n\tsize?: \"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n\tindicator?: React.ReactNode;\n}\n\nconst avatarStyles = tv({\n\tbase: \"relative box-border flex shrink-0 rounded-full\",\n\tslots: {\n\t\twrapper: \"h-full w-full overflow-hidden rounded-full\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\t\"3xs\": \"h-4 w-4 text-2xs [&_svg]:h-2.5 [&_svg]:w-2.5\",\n\t\t\t\"2xs\": \"h-5 w-5 text-[0.625rem] [&_svg]:h-3 [&_svg]:w-3\",\n\t\t\txs: \"h-6 w-6 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5\",\n\t\t\tsm: \"h-7 w-7 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5\",\n\t\t\tmd: \"h-8 w-8 text-sm [&_svg]:h-4 [&_svg]:w-4\",\n\t\t\tlg: \"h-10 w-10 text-base [&_svg]:h-5 [&_svg]:w-5\",\n\t\t\txl: \"h-12 w-12 text-lg [&_svg]:h-6 [&_svg]:w-6\",\n\t\t\t\"2xl\": \"h-14 w-14 text-xl [&_svg]:h-7 [&_svg]:w-7\",\n\t\t\t\"3xl\": \"h-16 w-16 text-2xl [&_svg]:h-8 [&_svg]:w-8\"\n\t\t}\n\t} satisfies Omit<VariantsConfig<AvatarVariants>, \"indicator\">,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\ntype AvatarProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> & AvatarVariants;\n\nexport const Avatar = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Root>, AvatarProps>(\n\t({ className, size, indicator, children, ...props }, ref) => {\n\t\tconst styles = avatarStyles();\n\n\t\treturn (\n\t\t\t<AvatarPrimitive.Root ref={ref} className={styles.base({ className, size })} {...props}>\n\t\t\t\t<div className={styles.wrapper()}>{children}</div>\n\t\t\t\t{indicator}\n\t\t\t</AvatarPrimitive.Root>\n\t\t);\n\t}\n);\n\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport const avatarFallbackStyles = tv({\n\tbase: \"flex h-full w-full items-center justify-center rounded-full bg-secondary-bg-hover text-secondary-fg\"\n});\n\nexport type AvatarFallbackProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>;\n\nexport const AvatarFallback = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Fallback>, AvatarFallbackProps>(\n\t({ className, ...props }, ref) => (\n\t\t<AvatarPrimitive.Fallback ref={ref} className={avatarFallbackStyles({ className })} {...props} />\n\t)\n);\n\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport React from \"react\";\nimport { AvatarFallbackProps, avatarFallbackStyles } from \"../avatar-fallback/AvatarFallback\";\nimport { Icon } from \"@/components/icon\";\nimport { LucideIcon } from \"lucide-react\";\n\ntype AvatarIcon = Omit<AvatarFallbackProps, \"children\"> & {\n\ticon: LucideIcon;\n};\n\nexport const AvatarIcon = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Fallback>, AvatarIcon>(\n\t({ className, icon, ...props }, ref) => (\n\t\t<AvatarPrimitive.Fallback ref={ref} className={avatarFallbackStyles({ className })} {...props}>\n\t\t\t<Icon icon={icon} />\n\t\t</AvatarPrimitive.Fallback>\n\t)\n);\n\nAvatarIcon.displayName = \"AvatarIcon\";\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst avatarImageStyles = tv({\n\tbase: \"aspect-square h-full w-full rounded-full border border-secondary-border\"\n});\n\ntype AvatarImageProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>;\n\nexport const AvatarImage = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Image>, AvatarImageProps>(\n\t({ className, ...props }, ref) => (\n\t\t<AvatarPrimitive.Image ref={ref} className={avatarImageStyles({ className })} {...props} />\n\t)\n);\n\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n","import * as React from \"react\";\nimport { AvatarLabelVariants } from \"./AvatarLabel\";\n\nexport type AvatarLabelComponentType = \"avatar\" | \"indicator\" | \"title\" | \"description\";\n\n// Тип для дочернего компонента AvatarLabel\nexport type AvatarLabelChild<T = Record<string, unknown>> = (\n\t| React.ComponentType<T>\n\t| React.ForwardRefExoticComponent<T>\n) & {\n\tcomponentType: AvatarLabelComponentType;\n};\n\nexport type AvatarLabelContextValue = AvatarLabelVariants;\n\nexport const AvatarLabelContext = React.createContext<AvatarLabelContextValue | null>(null);\n\nexport const useAvatarLabelContext = () => {\n\tconst context = React.useContext(AvatarLabelContext);\n\tif (!context) {\n\t\tthrow new Error(\"useAvatarLabelContext must be used within AvatarLabelProvider\");\n\t}\n\treturn context;\n};\n","import * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { AvatarLabelContext, AvatarLabelChild } from \"./AvatarLabelContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface AvatarLabelVariants {\n\tsize?: \"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n}\n\nconst avatarLabelStyles = tv({\n\tslots: {\n\t\twrapper: \"flex flex-row items-center gap-2\",\n\t\tavatarWrapper: \"relative\",\n\t\ttextWrapper: \"flex flex-col\",\n\t\tindicator: \"absolute bottom-0 right-0 rounded-full border-2 border-secondary-bg\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\t\"3xs\": {\n\t\t\t\twrapper: \"gap-1.5\"\n\t\t\t},\n\t\t\t\"2xs\": {\n\t\t\t\twrapper: \"gap-1.5\"\n\t\t\t},\n\t\t\txs: {\n\t\t\t\twrapper: \"gap-1.5\"\n\t\t\t},\n\t\t\tsm: {},\n\t\t\tmd: {},\n\t\t\tlg: {},\n\t\t\txl: {\n\t\t\t\twrapper: \"gap-3\"\n\t\t\t},\n\t\t\t\"2xl\": {\n\t\t\t\twrapper: \"gap-4\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<AvatarLabelVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\ntype AvatarLabelProps = Omit<React.ComponentPropsWithoutRef<\"div\">, \"title\"> & AvatarLabelVariants;\n\nexport const AvatarLabel = React.forwardRef<HTMLDivElement, AvatarLabelProps>(\n\t({ className, children, size, ...props }, ref) => {\n\t\tconst contextValue = React.useMemo(() => ({ size }), [size]);\n\n\t\tconst sortedComponents = React.useMemo(() => {\n\t\t\tif (!children) return null;\n\n\t\t\tconst childrenArray = React.Children.toArray(children) as React.ReactElement[];\n\t\t\tlet avatar: React.ReactElement | null = null;\n\t\t\tlet indicator: React.ReactElement | null = null;\n\t\t\tlet title: React.ReactElement | null = null;\n\t\t\tlet description: React.ReactElement | null = null;\n\n\t\t\tchildrenArray.forEach((child) => {\n\t\t\t\tconst componentType = (child.type as AvatarLabelChild)?.componentType;\n\n\t\t\t\tif (componentType === \"avatar\") {\n\t\t\t\t\tavatar = child;\n\t\t\t\t} else if (componentType === \"indicator\") {\n\t\t\t\t\tindicator = child;\n\t\t\t\t} else if (componentType === \"title\") {\n\t\t\t\t\ttitle = child;\n\t\t\t\t} else if (componentType === \"description\") {\n\t\t\t\t\tdescription = child;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn { avatar, indicator, title, description };\n\t\t}, [children]);\n\n\t\tconst renderContent = () => {\n\t\t\tif (!children) return null;\n\t\t\tconst styles = avatarLabelStyles();\n\n\t\t\tif (!sortedComponents) {\n\t\t\t\treturn (\n\t\t\t\t\t<div ref={ref} className={styles.wrapper({ className, size })} {...props}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst { avatar, indicator, title, description } = sortedComponents;\n\n\t\t\treturn (\n\t\t\t\t<div ref={ref} className={styles.wrapper({ className, size })} {...props}>\n\t\t\t\t\t{avatar && (\n\t\t\t\t\t\t<div className={styles.avatarWrapper()}>\n\t\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t\t{indicator && <div className={styles.indicator()}>{indicator}</div>}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{(title || description) && (\n\t\t\t\t\t\t<div className={styles.textWrapper()}>\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t);\n\t\t};\n\n\t\treturn <AvatarLabelContext.Provider value={contextValue}>{renderContent()}</AvatarLabelContext.Provider>;\n\t}\n);\n\nAvatarLabel.displayName = \"AvatarLabel\";\n","import React from \"react\";\nimport { Indicator } from \"@/components/indicator\";\nimport { tv } from \"tailwind-variants\";\n\ntype AvatarIndicatorProps = Omit<React.ComponentPropsWithoutRef<typeof Indicator>, \"size\"> & {\n\tsize?: \"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\n};\n\nconst avatarIndicatorStyles = tv({\n\tbase: \"absolute -bottom-0.5 -right-0.5 rounded-full border-2 border-secondary-bg\",\n\tvariants: {\n\t\tsize: {\n\t\t\t\"3xs\": \"border\",\n\t\t\t\"2xs\": \"border\",\n\t\t\txs: \"bottom-[-3px] right-[-3px] border\",\n\t\t\tsm: \"bottom-[-3px] right-[-3px]\",\n\t\t\tmd: \"bottom-[-3px] right-[-3px]\",\n\t\t\tlg: \"\",\n\t\t\txl: \"\",\n\t\t\t\"2xl\": \"\",\n\t\t\t\"3xl\": \"\"\n\t\t}\n\t}\n});\n\nconst SIZE_MAP = {\n\t\"3xs\": \"3xs\",\n\t\"2xs\": \"2xs\",\n\txs: \"xs\",\n\tsm: \"sm\",\n\tmd: \"sm\",\n\tlg: \"md\",\n\txl: \"lg\",\n\t\"2xl\": \"xl\",\n\t\"3xl\": \"2xl\"\n} as const;\n\nexport const AvatarIndicator = React.forwardRef<React.ElementRef<typeof Indicator>, AvatarIndicatorProps>(\n\t({ children, size, ...props }, ref) => {\n\t\tconst indicatorSize = size ? SIZE_MAP[size] : size;\n\n\t\treturn (\n\t\t\t<div className={avatarIndicatorStyles({ size })}>\n\t\t\t\t<Indicator ref={ref} size={indicatorSize} rounded {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</Indicator>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nAvatarIndicator.displayName = \"AvatarIndicator\";\n","import React from \"react\";\nimport { Avatar } from \"../../../Avatar\";\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\n\ntype AvatarLabelAvatarProps = React.ComponentPropsWithoutRef<typeof Avatar>;\n\nexport const AvatarLabelAvatar = React.forwardRef<React.ElementRef<typeof Avatar>, AvatarLabelAvatarProps>(\n\t({ className, children, size, ...props }, ref) => {\n\t\tconst { size: labelSize } = useAvatarLabelContext();\n\n\t\treturn (\n\t\t\t<Avatar ref={ref} className={className} size={size || labelSize} {...props}>\n\t\t\t\t{children}\n\t\t\t</Avatar>\n\t\t);\n\t}\n) as AvatarLabelChild<AvatarLabelAvatarProps>;\n\nAvatarLabelAvatar.displayName = \"AvatarLabelAvatar\";\nAvatarLabelAvatar.componentType = \"avatar\";\n","import React from \"react\";\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\nimport { Indicator } from \"@/components/indicator\";\n\ntype AvatarLabelIndicatorProps = React.ComponentPropsWithoutRef<typeof Indicator>;\n\nexport const AvatarLabelIndicator = React.forwardRef<React.ElementRef<typeof Indicator>, AvatarLabelIndicatorProps>(\n\t({ children, ...props }, ref) => {\n\t\tconst { size: labelSize } = useAvatarLabelContext();\n\n\t\treturn (\n\t\t\t<Indicator ref={ref} size={labelSize} {...props} rounded>\n\t\t\t\t{children}\n\t\t\t</Indicator>\n\t\t);\n\t}\n) as AvatarLabelChild<AvatarLabelIndicatorProps>;\n\nAvatarLabelIndicator.displayName = \"AvatarLabelIndicator\";\nAvatarLabelIndicator.componentType = \"indicator\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\nimport { AvatarLabelVariants } from \"../../AvatarLabel\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst avatarLabelTitleStyles = tv({\n\tbase: \"font-semibold text-primary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\t\"3xs\": \"text-xs\",\n\t\t\t\"2xs\": \"text-xs\",\n\t\t\txs: \"text-sm\",\n\t\t\tsm: \"text-sm\",\n\t\t\tmd: \"text-sm\",\n\t\t\tlg: \"text-sm\",\n\t\t\txl: \"text-base\",\n\t\t\t\"2xl\": \"text-lg\"\n\t\t}\n\t} satisfies VariantsConfig<AvatarLabelVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\ntype AvatarLabelTitleProps = React.ComponentPropsWithoutRef<\"span\"> & AvatarLabelVariants;\n\nexport const AvatarLabelTitle = React.forwardRef<HTMLSpanElement, AvatarLabelTitleProps>(\n\t({ className, size, children, ...props }, ref) => {\n\t\tconst { size: labelSize } = useAvatarLabelContext();\n\n\t\treturn (\n\t\t\t<span ref={ref} className={avatarLabelTitleStyles({ className, size: size || labelSize })} {...props}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t);\n\t}\n) as AvatarLabelChild<AvatarLabelTitleProps>;\n\nAvatarLabelTitle.displayName = \"AvatarLabelTitle\";\nAvatarLabelTitle.componentType = \"title\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { AvatarLabelVariants } from \"../../AvatarLabel\";\n\nconst avatarLabelDescriptionStyles = tv({\n\tbase: \"text-muted\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs leading-none\",\n\t\t\tmd: \"text-xs\",\n\t\t\tlg: \"text-sm\",\n\t\t\txl: \"text-base\",\n\t\t\t\"2xl\": \"text-base\"\n\t\t}\n\t} satisfies VariantsConfig<AvatarLabelDescriptionVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\ntype AvatarLabelDescriptionSizeVariants = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\ntype AvatarLabelDescriptionVariants = Omit<AvatarLabelVariants, \"size\"> & { size?: AvatarLabelDescriptionSizeVariants };\n\nexport type AvatarLabelDescriptionProps = React.ComponentPropsWithoutRef<\"span\"> & AvatarLabelDescriptionVariants;\n\nexport const AvatarLabelDescription = React.forwardRef<HTMLSpanElement, AvatarLabelDescriptionProps>(\n\t({ className, size, children, ...props }, ref) => {\n\t\tconst { size: labelSize } = useAvatarLabelContext();\n\t\tconst descriptionSize = size || labelSize;\n\t\tif ([\"3xs\", \"2xs\", \"xs\"].includes(descriptionSize ?? \"\")) return null;\n\n\t\treturn (\n\t\t\t<span\n\t\t\t\tref={ref}\n\t\t\t\tclassName={avatarLabelDescriptionStyles({\n\t\t\t\t\tclassName,\n\t\t\t\t\tsize: descriptionSize as AvatarLabelDescriptionSizeVariants\n\t\t\t\t})}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t);\n\t}\n) as AvatarLabelChild<AvatarLabelDescriptionProps>;\n\nAvatarLabelDescription.displayName = \"AvatarLabelDescription\";\nAvatarLabelDescription.componentType = \"description\";\n"],"names":["React","require$$0","is","x","y","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","value","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","didWarnOld18Alpha","didWarnUncachedGetSnapshot","cachedValue","useSyncExternalStoreShim_development","shimModule","require$$1","useIsHydrated","useSyncExternalStore","AVATAR_NAME","createAvatarContext","createAvatarScope","createContextScope","AvatarProvider","useAvatarContext","Avatar","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","jsx","Primitive","IMAGE_NAME","AvatarImage","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","handleLoadingStatusChange","useCallbackRef","status","FALLBACK_NAME","AvatarFallback","delayMs","fallbackProps","canRender","setCanRender","timerId","resolveLoadingStatus","image","referrerPolicy","crossOrigin","isHydrated","imageRef","loadingStatus","setLoadingStatus","updateStatus","handleLoad","handleError","Root","Image","Fallback","avatarStyles","tv","className","size","indicator","children","ref","styles","jsxs","AvatarPrimitive.Root","avatarFallbackStyles","AvatarPrimitive.Fallback","AvatarIcon","icon","Icon","avatarImageStyles","AvatarPrimitive.Image","AvatarLabelContext","useAvatarLabelContext","avatarLabelStyles","AvatarLabel","contextValue","sortedComponents","childrenArray","avatar","title","description","child","componentType","renderContent","avatarIndicatorStyles","SIZE_MAP","AvatarIndicator","indicatorSize","Indicator","AvatarLabelAvatar","labelSize","AvatarLabelIndicator","avatarLabelTitleStyles","AvatarLabelTitle","avatarLabelDescriptionStyles","AvatarLabelDescription","descriptionSize"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"avatar.js","sources":["../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@18.3.1/node_modules/use-sync-external-store/shim/index.js","../../node_modules/.pnpm/@radix-ui+react-use-is-hydr_5e426d7053e7409b3ee28b935cfbc616/node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs","../../node_modules/.pnpm/@radix-ui+react-avatar@1.1._83cc3097e6f4b1aa2ef2f3c1cb15c838/node_modules/@radix-ui/react-avatar/dist/index.mjs","../../src/components/avatar/Avatar.tsx","../../src/components/avatar/avatar-fallback/AvatarFallback.tsx","../../src/components/avatar/avatar-icon/AvatarIcon.tsx","../../src/components/avatar/avatar-image/AvatarImage.tsx","../../src/components/avatar/avatar-label/AvatarLabelContext.tsx","../../src/components/avatar/avatar-label/AvatarLabel.tsx","../../src/components/avatar/avatar-indicator/AvatarIndicator.tsx","../../src/components/avatar/avatar-label/components/avatar-label-avatar/AvatarLabelAvatar.tsx","../../src/components/avatar/avatar-label/components/avatar-label-indicator/AvatarLabelIndicator.tsx","../../src/components/avatar/avatar-label/components/avatar-label-title/AvatarLabelTitle.tsx","../../src/components/avatar/avatar-label/components/avatar-label-description/AvatarLabelDescription.tsx"],"sourcesContent":["/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function useSyncExternalStore$2(subscribe, getSnapshot) {\n didWarnOld18Alpha ||\n void 0 === React.startTransition ||\n ((didWarnOld18Alpha = !0),\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n ));\n var value = getSnapshot();\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n objectIs(value, cachedValue) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n cachedValue = useState({\n inst: { value: value, getSnapshot: getSnapshot }\n });\n var inst = cachedValue[0].inst,\n forceUpdate = cachedValue[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n }\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n }\n function useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue,\n didWarnOld18Alpha = !1,\n didWarnUncachedGetSnapshot = !1,\n shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\n exports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","// src/use-is-hydrated.tsx\nimport { useSyncExternalStore } from \"use-sync-external-store/shim\";\nfunction useIsHydrated() {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n useIsHydrated\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/avatar.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useIsHydrated } from \"@radix-ui/react-use-is-hydrated\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar Avatar = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, ...avatarProps } = props;\n const [imageLoadingStatus, setImageLoadingStatus] = React.useState(\"idle\");\n return /* @__PURE__ */ jsx(\n AvatarProvider,\n {\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ jsx(Primitive.span, { ...avatarProps, ref: forwardedRef })\n }\n );\n }\n);\nAvatar.displayName = AVATAR_NAME;\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, src, onLoadingStatusChange = () => {\n }, ...imageProps } = props;\n const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n const imageLoadingStatus = useImageLoadingStatus(src, imageProps);\n const handleLoadingStatusChange = useCallbackRef((status) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n useLayoutEffect(() => {\n if (imageLoadingStatus !== \"idle\") {\n handleLoadingStatusChange(imageLoadingStatus);\n }\n }, [imageLoadingStatus, handleLoadingStatusChange]);\n return imageLoadingStatus === \"loaded\" ? /* @__PURE__ */ jsx(Primitive.img, { ...imageProps, ref: forwardedRef, src }) : null;\n }\n);\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallback = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n const [canRender, setCanRender] = React.useState(delayMs === void 0);\n React.useEffect(() => {\n if (delayMs !== void 0) {\n const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n return () => window.clearTimeout(timerId);\n }\n }, [delayMs]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ jsx(Primitive.span, { ...fallbackProps, ref: forwardedRef }) : null;\n }\n);\nAvatarFallback.displayName = FALLBACK_NAME;\nfunction resolveLoadingStatus(image, src) {\n if (!image) {\n return \"idle\";\n }\n if (!src) {\n return \"error\";\n }\n if (image.src !== src) {\n image.src = src;\n }\n return image.complete && image.naturalWidth > 0 ? \"loaded\" : \"loading\";\n}\nfunction useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {\n const isHydrated = useIsHydrated();\n const imageRef = React.useRef(null);\n const image = (() => {\n if (!isHydrated) return null;\n if (!imageRef.current) {\n imageRef.current = new window.Image();\n }\n return imageRef.current;\n })();\n const [loadingStatus, setLoadingStatus] = React.useState(\n () => resolveLoadingStatus(image, src)\n );\n useLayoutEffect(() => {\n setLoadingStatus(resolveLoadingStatus(image, src));\n }, [image, src]);\n useLayoutEffect(() => {\n const updateStatus = (status) => () => {\n setLoadingStatus(status);\n };\n if (!image) return;\n const handleLoad = updateStatus(\"loaded\");\n const handleError = updateStatus(\"error\");\n image.addEventListener(\"load\", handleLoad);\n image.addEventListener(\"error\", handleError);\n if (referrerPolicy) {\n image.referrerPolicy = referrerPolicy;\n }\n if (typeof crossOrigin === \"string\") {\n image.crossOrigin = crossOrigin;\n }\n return () => {\n image.removeEventListener(\"load\", handleLoad);\n image.removeEventListener(\"error\", handleError);\n };\n }, [image, crossOrigin, referrerPolicy]);\n return loadingStatus;\n}\nvar Root = Avatar;\nvar Image = AvatarImage;\nvar Fallback = AvatarFallback;\nexport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n Fallback,\n Image,\n Root,\n createAvatarScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface AvatarVariants {\r\n\tsize?: \"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\r\n\tindicator?: React.ReactNode;\r\n}\r\n\r\nconst avatarStyles = tv({\r\n\tbase: \"relative box-border flex shrink-0 rounded-full\",\r\n\tslots: {\r\n\t\twrapper: \"h-full w-full overflow-hidden rounded-full\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\t\"3xs\": \"h-4 w-4 text-2xs [&_svg]:h-2.5 [&_svg]:w-2.5\",\r\n\t\t\t\"2xs\": \"h-5 w-5 text-[0.625rem] [&_svg]:h-3 [&_svg]:w-3\",\r\n\t\t\txs: \"h-6 w-6 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5\",\r\n\t\t\tsm: \"h-7 w-7 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5\",\r\n\t\t\tmd: \"h-8 w-8 text-sm [&_svg]:h-4 [&_svg]:w-4\",\r\n\t\t\tlg: \"h-10 w-10 text-base [&_svg]:h-5 [&_svg]:w-5\",\r\n\t\t\txl: \"h-12 w-12 text-lg [&_svg]:h-6 [&_svg]:w-6\",\r\n\t\t\t\"2xl\": \"h-14 w-14 text-xl [&_svg]:h-7 [&_svg]:w-7\",\r\n\t\t\t\"3xl\": \"h-16 w-16 text-2xl [&_svg]:h-8 [&_svg]:w-8\"\r\n\t\t}\r\n\t} satisfies Omit<VariantsConfig<AvatarVariants>, \"indicator\">,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\ntype AvatarProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> & AvatarVariants;\r\n\r\nexport const Avatar = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Root>, AvatarProps>(\r\n\t({ className, size, indicator, children, ...props }, ref) => {\r\n\t\tconst styles = avatarStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<AvatarPrimitive.Root ref={ref} className={styles.base({ className, size })} {...props}>\r\n\t\t\t\t<div className={styles.wrapper()}>{children}</div>\r\n\t\t\t\t{indicator}\r\n\t\t\t</AvatarPrimitive.Root>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nAvatar.displayName = AvatarPrimitive.Root.displayName;\r\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport const avatarFallbackStyles = tv({\r\n\tbase: \"flex h-full w-full items-center justify-center rounded-full bg-secondary-bg-hover text-secondary-fg\"\r\n});\r\n\r\nexport type AvatarFallbackProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>;\r\n\r\nexport const AvatarFallback = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Fallback>, AvatarFallbackProps>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<AvatarPrimitive.Fallback ref={ref} className={avatarFallbackStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\r\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\";\r\nimport React from \"react\";\r\nimport { AvatarFallbackProps, avatarFallbackStyles } from \"../avatar-fallback/AvatarFallback\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { LucideIcon } from \"lucide-react\";\r\n\r\ntype AvatarIcon = Omit<AvatarFallbackProps, \"children\"> & {\r\n\ticon: LucideIcon;\r\n};\r\n\r\nexport const AvatarIcon = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Fallback>, AvatarIcon>(\r\n\t({ className, icon, ...props }, ref) => (\r\n\t\t<AvatarPrimitive.Fallback ref={ref} className={avatarFallbackStyles({ className })} {...props}>\r\n\t\t\t<Icon icon={icon} />\r\n\t\t</AvatarPrimitive.Fallback>\r\n\t)\r\n);\r\n\r\nAvatarIcon.displayName = \"AvatarIcon\";\r\n","import * as AvatarPrimitive from \"@radix-ui/react-avatar\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst avatarImageStyles = tv({\r\n\tbase: \"aspect-square h-full w-full rounded-full border border-secondary-border\"\r\n});\r\n\r\ntype AvatarImageProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>;\r\n\r\nexport const AvatarImage = React.forwardRef<React.ElementRef<typeof AvatarPrimitive.Image>, AvatarImageProps>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<AvatarPrimitive.Image ref={ref} className={avatarImageStyles({ className })} {...props} />\r\n\t)\r\n);\r\n\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\r\n","import * as React from \"react\";\r\nimport { AvatarLabelVariants } from \"./AvatarLabel\";\r\n\r\nexport type AvatarLabelComponentType = \"avatar\" | \"indicator\" | \"title\" | \"description\";\r\n\r\n// Тип для дочернего компонента AvatarLabel\r\nexport type AvatarLabelChild<T = Record<string, unknown>> = (\r\n\t| React.ComponentType<T>\r\n\t| React.ForwardRefExoticComponent<T>\r\n) & {\r\n\tcomponentType: AvatarLabelComponentType;\r\n};\r\n\r\nexport type AvatarLabelContextValue = AvatarLabelVariants;\r\n\r\nexport const AvatarLabelContext = React.createContext<AvatarLabelContextValue | null>(null);\r\n\r\nexport const useAvatarLabelContext = () => {\r\n\tconst context = React.useContext(AvatarLabelContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"useAvatarLabelContext must be used within AvatarLabelProvider\");\r\n\t}\r\n\treturn context;\r\n};\r\n","import * as React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { AvatarLabelContext, AvatarLabelChild } from \"./AvatarLabelContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface AvatarLabelVariants {\r\n\tsize?: \"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\r\n}\r\n\r\nconst avatarLabelStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex flex-row items-center gap-2\",\r\n\t\tavatarWrapper: \"relative\",\r\n\t\ttextWrapper: \"flex flex-col\",\r\n\t\tindicator: \"absolute bottom-0 right-0 rounded-full border-2 border-secondary-bg\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\t\"3xs\": {\r\n\t\t\t\twrapper: \"gap-1.5\"\r\n\t\t\t},\r\n\t\t\t\"2xs\": {\r\n\t\t\t\twrapper: \"gap-1.5\"\r\n\t\t\t},\r\n\t\t\txs: {\r\n\t\t\t\twrapper: \"gap-1.5\"\r\n\t\t\t},\r\n\t\t\tsm: {},\r\n\t\t\tmd: {},\r\n\t\t\tlg: {},\r\n\t\t\txl: {\r\n\t\t\t\twrapper: \"gap-3\"\r\n\t\t\t},\r\n\t\t\t\"2xl\": {\r\n\t\t\t\twrapper: \"gap-4\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<AvatarLabelVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\ntype AvatarLabelProps = Omit<React.ComponentPropsWithoutRef<\"div\">, \"title\"> & AvatarLabelVariants;\r\n\r\nexport const AvatarLabel = React.forwardRef<HTMLDivElement, AvatarLabelProps>(\r\n\t({ className, children, size, ...props }, ref) => {\r\n\t\tconst contextValue = React.useMemo(() => ({ size }), [size]);\r\n\r\n\t\tconst sortedComponents = React.useMemo(() => {\r\n\t\t\tif (!children) return null;\r\n\r\n\t\t\tconst childrenArray = React.Children.toArray(children) as React.ReactElement[];\r\n\t\t\tlet avatar: React.ReactElement | null = null;\r\n\t\t\tlet indicator: React.ReactElement | null = null;\r\n\t\t\tlet title: React.ReactElement | null = null;\r\n\t\t\tlet description: React.ReactElement | null = null;\r\n\r\n\t\t\tchildrenArray.forEach((child) => {\r\n\t\t\t\tconst componentType = (child.type as AvatarLabelChild)?.componentType;\r\n\r\n\t\t\t\tif (componentType === \"avatar\") {\r\n\t\t\t\t\tavatar = child;\r\n\t\t\t\t} else if (componentType === \"indicator\") {\r\n\t\t\t\t\tindicator = child;\r\n\t\t\t\t} else if (componentType === \"title\") {\r\n\t\t\t\t\ttitle = child;\r\n\t\t\t\t} else if (componentType === \"description\") {\r\n\t\t\t\t\tdescription = child;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn { avatar, indicator, title, description };\r\n\t\t}, [children]);\r\n\r\n\t\tconst renderContent = () => {\r\n\t\t\tif (!children) return null;\r\n\t\t\tconst styles = avatarLabelStyles();\r\n\r\n\t\t\tif (!sortedComponents) {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div ref={ref} className={styles.wrapper({ className, size })} {...props}>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tconst { avatar, indicator, title, description } = sortedComponents;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<div ref={ref} className={styles.wrapper({ className, size })} {...props}>\r\n\t\t\t\t\t{avatar && (\r\n\t\t\t\t\t\t<div className={styles.avatarWrapper()}>\r\n\t\t\t\t\t\t\t{avatar}\r\n\t\t\t\t\t\t\t{indicator && <div className={styles.indicator()}>{indicator}</div>}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{(title || description) && (\r\n\t\t\t\t\t\t<div className={styles.textWrapper()}>\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t{description}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\treturn <AvatarLabelContext.Provider value={contextValue}>{renderContent()}</AvatarLabelContext.Provider>;\r\n\t}\r\n);\r\n\r\nAvatarLabel.displayName = \"AvatarLabel\";\r\n","import React from \"react\";\r\nimport { Indicator } from \"@/components/indicator\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\ntype AvatarIndicatorProps = Omit<React.ComponentPropsWithoutRef<typeof Indicator>, \"size\"> & {\r\n\tsize?: \"3xs\" | \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\";\r\n};\r\n\r\nconst avatarIndicatorStyles = tv({\r\n\tbase: \"absolute -bottom-0.5 -right-0.5 rounded-full border-2 border-secondary-bg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\t\"3xs\": \"border\",\r\n\t\t\t\"2xs\": \"border\",\r\n\t\t\txs: \"bottom-[-3px] right-[-3px] border\",\r\n\t\t\tsm: \"bottom-[-3px] right-[-3px]\",\r\n\t\t\tmd: \"bottom-[-3px] right-[-3px]\",\r\n\t\t\tlg: \"\",\r\n\t\t\txl: \"\",\r\n\t\t\t\"2xl\": \"\",\r\n\t\t\t\"3xl\": \"\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nconst SIZE_MAP = {\r\n\t\"3xs\": \"3xs\",\r\n\t\"2xs\": \"2xs\",\r\n\txs: \"xs\",\r\n\tsm: \"sm\",\r\n\tmd: \"sm\",\r\n\tlg: \"md\",\r\n\txl: \"lg\",\r\n\t\"2xl\": \"xl\",\r\n\t\"3xl\": \"2xl\"\r\n} as const;\r\n\r\nexport const AvatarIndicator = React.forwardRef<React.ElementRef<typeof Indicator>, AvatarIndicatorProps>(\r\n\t({ children, size, ...props }, ref) => {\r\n\t\tconst indicatorSize = size ? SIZE_MAP[size] : size;\r\n\r\n\t\treturn (\r\n\t\t\t<div className={avatarIndicatorStyles({ size })}>\r\n\t\t\t\t<Indicator ref={ref} size={indicatorSize} rounded {...props}>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</Indicator>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nAvatarIndicator.displayName = \"AvatarIndicator\";\r\n","import React from \"react\";\r\nimport { Avatar } from \"../../../Avatar\";\r\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\r\n\r\ntype AvatarLabelAvatarProps = React.ComponentPropsWithoutRef<typeof Avatar>;\r\n\r\nexport const AvatarLabelAvatar = React.forwardRef<React.ElementRef<typeof Avatar>, AvatarLabelAvatarProps>(\r\n\t({ className, children, size, ...props }, ref) => {\r\n\t\tconst { size: labelSize } = useAvatarLabelContext();\r\n\r\n\t\treturn (\r\n\t\t\t<Avatar ref={ref} className={className} size={size || labelSize} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</Avatar>\r\n\t\t);\r\n\t}\r\n) as AvatarLabelChild<AvatarLabelAvatarProps>;\r\n\r\nAvatarLabelAvatar.displayName = \"AvatarLabelAvatar\";\r\nAvatarLabelAvatar.componentType = \"avatar\";\r\n","import React from \"react\";\r\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\r\nimport { Indicator } from \"@/components/indicator\";\r\n\r\ntype AvatarLabelIndicatorProps = React.ComponentPropsWithoutRef<typeof Indicator>;\r\n\r\nexport const AvatarLabelIndicator = React.forwardRef<React.ElementRef<typeof Indicator>, AvatarLabelIndicatorProps>(\r\n\t({ children, ...props }, ref) => {\r\n\t\tconst { size: labelSize } = useAvatarLabelContext();\r\n\r\n\t\treturn (\r\n\t\t\t<Indicator ref={ref} size={labelSize} {...props} rounded>\r\n\t\t\t\t{children}\r\n\t\t\t</Indicator>\r\n\t\t);\r\n\t}\r\n) as AvatarLabelChild<AvatarLabelIndicatorProps>;\r\n\r\nAvatarLabelIndicator.displayName = \"AvatarLabelIndicator\";\r\nAvatarLabelIndicator.componentType = \"indicator\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\r\nimport { AvatarLabelVariants } from \"../../AvatarLabel\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst avatarLabelTitleStyles = tv({\r\n\tbase: \"font-semibold text-primary-fg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\t\"3xs\": \"text-xs\",\r\n\t\t\t\"2xs\": \"text-xs\",\r\n\t\t\txs: \"text-sm\",\r\n\t\t\tsm: \"text-sm\",\r\n\t\t\tmd: \"text-sm\",\r\n\t\t\tlg: \"text-sm\",\r\n\t\t\txl: \"text-base\",\r\n\t\t\t\"2xl\": \"text-lg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AvatarLabelVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\ntype AvatarLabelTitleProps = React.ComponentPropsWithoutRef<\"span\"> & AvatarLabelVariants;\r\n\r\nexport const AvatarLabelTitle = React.forwardRef<HTMLSpanElement, AvatarLabelTitleProps>(\r\n\t({ className, size, children, ...props }, ref) => {\r\n\t\tconst { size: labelSize } = useAvatarLabelContext();\r\n\r\n\t\treturn (\r\n\t\t\t<span ref={ref} className={avatarLabelTitleStyles({ className, size: size || labelSize })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n) as AvatarLabelChild<AvatarLabelTitleProps>;\r\n\r\nAvatarLabelTitle.displayName = \"AvatarLabelTitle\";\r\nAvatarLabelTitle.componentType = \"title\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { useAvatarLabelContext, AvatarLabelChild } from \"../../AvatarLabelContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { AvatarLabelVariants } from \"../../AvatarLabel\";\r\n\r\nconst avatarLabelDescriptionStyles = tv({\r\n\tbase: \"text-muted\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-xs leading-none\",\r\n\t\t\tmd: \"text-xs\",\r\n\t\t\tlg: \"text-sm\",\r\n\t\t\txl: \"text-base\",\r\n\t\t\t\"2xl\": \"text-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<AvatarLabelDescriptionVariants>,\r\n\tdefaultVariants: {\r\n\t\tsize: \"md\"\r\n\t}\r\n});\r\n\r\ntype AvatarLabelDescriptionSizeVariants = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\r\ntype AvatarLabelDescriptionVariants = Omit<AvatarLabelVariants, \"size\"> & { size?: AvatarLabelDescriptionSizeVariants };\r\n\r\nexport type AvatarLabelDescriptionProps = React.ComponentPropsWithoutRef<\"span\"> & AvatarLabelDescriptionVariants;\r\n\r\nexport const AvatarLabelDescription = React.forwardRef<HTMLSpanElement, AvatarLabelDescriptionProps>(\r\n\t({ className, size, children, ...props }, ref) => {\r\n\t\tconst { size: labelSize } = useAvatarLabelContext();\r\n\t\tconst descriptionSize = size || labelSize;\r\n\t\tif ([\"3xs\", \"2xs\", \"xs\"].includes(descriptionSize ?? \"\")) return null;\r\n\r\n\t\treturn (\r\n\t\t\t<span\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={avatarLabelDescriptionStyles({\r\n\t\t\t\t\tclassName,\r\n\t\t\t\t\tsize: descriptionSize as AvatarLabelDescriptionSizeVariants\r\n\t\t\t\t})}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n) as AvatarLabelChild<AvatarLabelDescriptionProps>;\r\n\r\nAvatarLabelDescription.displayName = \"AvatarLabelDescription\";\r\nAvatarLabelDescription.componentType = \"description\";\r\n"],"names":["React","require$$0","is","x","y","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","value","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","didWarnOld18Alpha","didWarnUncachedGetSnapshot","cachedValue","useSyncExternalStoreShim_development","shimModule","require$$1","useIsHydrated","useSyncExternalStore","AVATAR_NAME","createAvatarContext","createAvatarScope","createContextScope","AvatarProvider","useAvatarContext","Avatar","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","jsx","Primitive","IMAGE_NAME","AvatarImage","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","handleLoadingStatusChange","useCallbackRef","status","FALLBACK_NAME","AvatarFallback","delayMs","fallbackProps","canRender","setCanRender","timerId","resolveLoadingStatus","image","referrerPolicy","crossOrigin","isHydrated","imageRef","loadingStatus","setLoadingStatus","updateStatus","handleLoad","handleError","Root","Image","Fallback","avatarStyles","tv","className","size","indicator","children","ref","styles","jsxs","AvatarPrimitive.Root","avatarFallbackStyles","AvatarPrimitive.Fallback","AvatarIcon","icon","Icon","avatarImageStyles","AvatarPrimitive.Image","AvatarLabelContext","useAvatarLabelContext","avatarLabelStyles","AvatarLabel","contextValue","sortedComponents","childrenArray","avatar","title","description","child","componentType","renderContent","avatarIndicatorStyles","SIZE_MAP","AvatarIndicator","indicatorSize","Indicator","AvatarLabelAvatar","labelSize","AvatarLabelIndicator","avatarLabelTitleStyles","AvatarLabelTitle","avatarLabelDescriptionStyles","AvatarLabelDescription","descriptionSize"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}