ics-ui-kit 0.1.19 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/README.md +36 -36
  2. package/dist/AlertContext-CxjW1LVL.js.map +1 -1
  3. package/dist/AlertIcon-BphnEYvV.js.map +1 -1
  4. package/dist/{Button-BZ3ON1Tj.js → Button-_qdP4hSf.js} +2 -2
  5. package/dist/Button-_qdP4hSf.js.map +1 -0
  6. package/dist/{ButtonBase-jgu7EolU.js → ButtonBase-CbWrYcx-.js} +2 -2
  7. package/dist/ButtonBase-CbWrYcx-.js.map +1 -0
  8. package/dist/{CheckboxField-limFbMk2.js → CheckboxField-xDqHgXHh.js} +32 -32
  9. package/dist/CheckboxField-xDqHgXHh.js.map +1 -0
  10. package/dist/Combination-DeIugdgY.js.map +1 -1
  11. package/dist/{Command-B7ZRyW8w.js → Command-WsAKNQrY.js} +8 -8
  12. package/dist/Command-WsAKNQrY.js.map +1 -0
  13. package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
  14. package/dist/Description-BTPMlTT-.js.map +1 -1
  15. package/dist/{Dialog-CdnsGyJD.js → Dialog-i_Y-phdM.js} +42 -43
  16. package/dist/Dialog-i_Y-phdM.js.map +1 -0
  17. package/dist/Divider-DPW5ZhZ8.js.map +1 -1
  18. package/dist/EmptyState-DRKjscH-.js.map +1 -1
  19. package/dist/ErrorState-B26k67-z.js.map +1 -1
  20. package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
  21. package/dist/{Field-CP_-li9L.js → Field-BcwUtgGr.js} +2 -2
  22. package/dist/Field-BcwUtgGr.js.map +1 -0
  23. package/dist/{FieldLabel-eyKmeWRn.js → FieldLabel-DYu1AcGH.js} +2 -2
  24. package/dist/FieldLabel-DYu1AcGH.js.map +1 -0
  25. package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
  26. package/dist/{FormFooterTemplate-DdNnLu2-.js → FormFooterTemplate-CHlas_Pp.js} +5 -5
  27. package/dist/FormFooterTemplate-CHlas_Pp.js.map +1 -0
  28. package/dist/{FormHeader--F6b2aRk.js → FormHeader-PE63OqG9.js} +3 -3
  29. package/dist/FormHeader-PE63OqG9.js.map +1 -0
  30. package/dist/FormStack-DfoaOry7.js +1205 -0
  31. package/dist/FormStack-DfoaOry7.js.map +1 -0
  32. package/dist/HintState-BxrCAWqq.js.map +1 -1
  33. package/dist/Icon-DH3ev9GK.js.map +1 -1
  34. package/dist/{IconButton-uGJ3cQtk.js → IconButton-DAg1oMwz.js} +2 -2
  35. package/dist/IconButton-DAg1oMwz.js.map +1 -0
  36. package/dist/{IconTooltip-RSxvnBgH.js → IconTooltip-R6_6_f40.js} +2 -2
  37. package/dist/IconTooltip-R6_6_f40.js.map +1 -0
  38. package/dist/Indicator-AqxHWPA9.js.map +1 -1
  39. package/dist/{InputGroup-AVAtosX_.js → InputGroup-CW55G5nE.js} +5 -5
  40. package/dist/InputGroup-CW55G5nE.js.map +1 -0
  41. package/dist/{InputOTP-B2e1nfSO.js → InputOTP-DkVh6bBz.js} +2 -2
  42. package/dist/InputOTP-DkVh6bBz.js.map +1 -0
  43. package/dist/Loader-BpHiL6W-.js.map +1 -1
  44. package/dist/{MenuItem-d19Ty84F.js → MenuItem-C51uFz3V.js} +11 -11
  45. package/dist/MenuItem-C51uFz3V.js.map +1 -0
  46. package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
  47. package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
  48. package/dist/{Overlay-CVt011mY.js → Overlay-E0UvxzIc.js} +2 -2
  49. package/dist/Overlay-E0UvxzIc.js.map +1 -0
  50. package/dist/{Popover-KjZXxxl3.js → Popover-XrJa7lyb.js} +51 -52
  51. package/dist/Popover-XrJa7lyb.js.map +1 -0
  52. package/dist/{RichButton-B1wjK7Bk.js → RichButton-Bt0yUShU.js} +2 -2
  53. package/dist/RichButton-Bt0yUShU.js.map +1 -0
  54. package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
  55. package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
  56. package/dist/{SearchSelectTag-CA7Ie3Nx.js → SearchSelectTag-Dp5_OvZp.js} +16 -16
  57. package/dist/SearchSelectTag-Dp5_OvZp.js.map +1 -0
  58. package/dist/{Select-D9juHX8o.js → Select-DO02vXt3.js} +189 -190
  59. package/dist/Select-DO02vXt3.js.map +1 -0
  60. package/dist/{Sheet-qTIXsqm0.js → Sheet-C2UoHLL0.js} +40 -41
  61. package/dist/Sheet-C2UoHLL0.js.map +1 -0
  62. package/dist/Shortcut-D8L15_ed.js.map +1 -1
  63. package/dist/Skeleton-y6I-i9q5.js.map +1 -1
  64. package/dist/{TableFillHandle-C_yvCTSl.js → TableFillHandle-CHHoUi6s.js} +7 -7
  65. package/dist/TableFillHandle-CHHoUi6s.js.map +1 -0
  66. package/dist/{Tag-DdHXTyKF.js → Tag-Cf6HftP-.js} +4 -4
  67. package/dist/Tag-Cf6HftP-.js.map +1 -0
  68. package/dist/Text-DeBE8AKl.js.map +1 -1
  69. package/dist/{TextInput-5BuZtWV6.js → TextInput-CoL8nOyt.js} +3 -3
  70. package/dist/TextInput-CoL8nOyt.js.map +1 -0
  71. package/dist/{TextOverflowTooltip-B1I5qwAT.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
  72. package/dist/{TextOverflowTooltip-B1I5qwAT.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
  73. package/dist/{Toggle-v_HT3Gm2.js → Toggle-CmalMf4O.js} +2 -2
  74. package/dist/Toggle-CmalMf4O.js.map +1 -0
  75. package/dist/{Tooltip-7Duaau0S.js → Tooltip-D2XvRS0c.js} +64 -65
  76. package/dist/Tooltip-D2XvRS0c.js.map +1 -0
  77. package/dist/{TriggerButton-Bakr8Boi.js → TriggerButton-CoAgB4lx.js} +2 -2
  78. package/dist/TriggerButton-CoAgB4lx.js.map +1 -0
  79. package/dist/blocks/auth/otp-form.js +3240 -204
  80. package/dist/blocks/auth/otp-form.js.map +1 -1
  81. package/dist/cn-dsXlqdJg.js.map +1 -1
  82. package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
  83. package/dist/components/alert-dialog.js +71 -72
  84. package/dist/components/alert-dialog.js.map +1 -1
  85. package/dist/components/alert.js +1 -1
  86. package/dist/components/alert.js.map +1 -1
  87. package/dist/components/avatar.js.map +1 -1
  88. package/dist/components/background-pattern.js.map +1 -1
  89. package/dist/components/badge.js.map +1 -1
  90. package/dist/components/banner.js.map +1 -1
  91. package/dist/components/breadcrumb.js.map +1 -1
  92. package/dist/components/button.js +5 -5
  93. package/dist/components/button.js.map +1 -1
  94. package/dist/components/calendar.js +2889 -71
  95. package/dist/components/calendar.js.map +1 -1
  96. package/dist/components/card.js +2 -2
  97. package/dist/components/card.js.map +1 -1
  98. package/dist/components/carousel.js +1 -1
  99. package/dist/components/carousel.js.map +1 -1
  100. package/dist/components/checkbox.js +1 -1
  101. package/dist/components/collapsible.js.map +1 -1
  102. package/dist/components/color-tile.js.map +1 -1
  103. package/dist/components/command.js +1 -1
  104. package/dist/components/container.js.map +1 -1
  105. package/dist/components/context-menu.js +6 -6
  106. package/dist/components/context-menu.js.map +1 -1
  107. package/dist/components/counter.js +1 -1
  108. package/dist/components/counter.js.map +1 -1
  109. package/dist/components/dialog/Dialog.d.ts +2 -4
  110. package/dist/components/dialog.js +3 -3
  111. package/dist/components/dialog.js.map +1 -1
  112. package/dist/components/divider.js.map +1 -1
  113. package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
  114. package/dist/components/drawer.js +98 -99
  115. package/dist/components/drawer.js.map +1 -1
  116. package/dist/components/dropdown/Dropdown.d.ts +2 -4
  117. package/dist/components/dropdown.js +258 -259
  118. package/dist/components/dropdown.js.map +1 -1
  119. package/dist/components/error-state.js +1 -1
  120. package/dist/components/error-state.js.map +1 -1
  121. package/dist/components/field.js +1 -1
  122. package/dist/components/file-upload.js +3 -3
  123. package/dist/components/file-upload.js.map +1 -1
  124. package/dist/components/form/Form.d.ts +14 -0
  125. package/dist/components/form/components/form-field/FormField.d.ts +4 -0
  126. package/dist/components/form.js +5 -5
  127. package/dist/components/form.js.map +1 -1
  128. package/dist/components/glass-toolbar.js +6 -6
  129. package/dist/components/glass-toolbar.js.map +1 -1
  130. package/dist/components/icon-tooltip.js +1 -1
  131. package/dist/components/image-placeholder.js.map +1 -1
  132. package/dist/components/image-preview.js +2 -2
  133. package/dist/components/image-preview.js.map +1 -1
  134. package/dist/components/image-uploader.js +1 -1
  135. package/dist/components/image-uploader.js.map +1 -1
  136. package/dist/components/input-otp.js +1 -1
  137. package/dist/components/input.js +5 -5
  138. package/dist/components/input.js.map +1 -1
  139. package/dist/components/label.js +1 -1
  140. package/dist/components/menu-item.js +6 -6
  141. package/dist/components/menu-item.js.map +1 -1
  142. package/dist/components/overflow-tooltip.js +1 -1
  143. package/dist/components/overlay.js +1 -1
  144. package/dist/components/page-state.js +7 -7
  145. package/dist/components/page-state.js.map +1 -1
  146. package/dist/components/popover/Popover.d.ts +1 -2
  147. package/dist/components/popover.js +1 -1
  148. package/dist/components/progress-circle.js +1 -1
  149. package/dist/components/progress-circle.js.map +1 -1
  150. package/dist/components/progress.js +3 -3
  151. package/dist/components/progress.js.map +1 -1
  152. package/dist/components/prose.js.map +1 -1
  153. package/dist/components/radio-group.js +1 -1
  154. package/dist/components/radio-group.js.map +1 -1
  155. package/dist/components/resizable/Resizable.d.ts +1 -1
  156. package/dist/components/resizable.js +1 -1
  157. package/dist/components/resizable.js.map +1 -1
  158. package/dist/components/scheduler.js +1 -1
  159. package/dist/components/scheduler.js.map +1 -1
  160. package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
  161. package/dist/components/search-select.js +4 -4
  162. package/dist/components/search-select.js.map +1 -1
  163. package/dist/components/select/Select.d.ts +1 -2
  164. package/dist/components/select.js +1 -1
  165. package/dist/components/sheet/Sheet.d.ts +1 -2
  166. package/dist/components/sheet.js +1 -1
  167. package/dist/components/sidebar.js +90 -90
  168. package/dist/components/sidebar.js.map +1 -1
  169. package/dist/components/slider.js +1 -1
  170. package/dist/components/slider.js.map +1 -1
  171. package/dist/components/stepper.js +1 -1
  172. package/dist/components/stepper.js.map +1 -1
  173. package/dist/components/switch.js +2 -2
  174. package/dist/components/switch.js.map +1 -1
  175. package/dist/components/system-state.js +1 -1
  176. package/dist/components/system-state.js.map +1 -1
  177. package/dist/components/table/editable/editableCell.d.ts +2 -2
  178. package/dist/components/table/editable.js +1 -1
  179. package/dist/components/table/tree.js +1 -1
  180. package/dist/components/table.js +2 -2
  181. package/dist/components/tabs.js +2 -2
  182. package/dist/components/tabs.js.map +1 -1
  183. package/dist/components/tag-input.js +5 -5
  184. package/dist/components/tag-input.js.map +1 -1
  185. package/dist/components/tag.js +1 -1
  186. package/dist/components/textarea.js +1 -1
  187. package/dist/components/textarea.js.map +1 -1
  188. package/dist/components/timer.js.map +1 -1
  189. package/dist/components/toast.js +6 -6
  190. package/dist/components/toast.js.map +1 -1
  191. package/dist/components/toggle-group.js +1 -1
  192. package/dist/components/toggle-group.js.map +1 -1
  193. package/dist/components/toggle.js +1 -1
  194. package/dist/components/toolbar.js +1 -1
  195. package/dist/components/toolbar.js.map +1 -1
  196. package/dist/components/tooltip/Tooltip.d.ts +2 -4
  197. package/dist/components/tooltip.js +1 -1
  198. package/dist/design-tokens.source.json +1 -0
  199. package/dist/docs/tailwind-utilities/ScrollFade.stories.d.ts +28 -0
  200. package/dist/docs/tailwind-utilities/Shimmer.stories.d.ts +32 -0
  201. package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -1
  202. package/dist/font-smoothing.css +4 -0
  203. package/dist/formatBytes-C4QXq5lC.js.map +1 -1
  204. package/dist/index-0ioNhtNM.js.map +1 -1
  205. package/dist/index-1SnkxfPR.js.map +1 -1
  206. package/dist/index-437EL2iq.js.map +1 -1
  207. package/dist/index-BDrapWDv.js.map +1 -1
  208. package/dist/index-BGQepRFJ.js.map +1 -1
  209. package/dist/index-BVqs-uqP.js.map +1 -1
  210. package/dist/index-BZPx6jYI.js.map +1 -1
  211. package/dist/index-Bb23HztA.js.map +1 -1
  212. package/dist/index-BjtNfqNq.js.map +1 -1
  213. package/dist/index-BpWB3aFK.js.map +1 -1
  214. package/dist/index-ByaXH_ih.js.map +1 -1
  215. package/dist/index-CCKe-Mpx.js.map +1 -1
  216. package/dist/index-CFaU3UXv.js.map +1 -1
  217. package/dist/index-CLuiUUQ8.js.map +1 -1
  218. package/dist/index-CMxHunQ4.js.map +1 -1
  219. package/dist/index-CmBeyp2d.js.map +1 -1
  220. package/dist/index-DFZozV_h.js.map +1 -1
  221. package/dist/index-DHsfW5Rj.js.map +1 -1
  222. package/dist/index-DHyZ_0Ut.js.map +1 -1
  223. package/dist/index-DLcqcWxM.js.map +1 -1
  224. package/dist/index-DnnQs07z.js.map +1 -1
  225. package/dist/index-Uiy0Xwy2.js.map +1 -1
  226. package/dist/index-_ITz1IyW.js.map +1 -1
  227. package/dist/index.js.map +1 -1
  228. package/dist/{inputBaseStyles-BfZIWuQ6.js → inputBaseStyles-CZwQWSub.js} +7 -7
  229. package/dist/inputBaseStyles-CZwQWSub.js.map +1 -0
  230. package/dist/lib/utils.js.map +1 -1
  231. package/dist/opaqueCell-D95h1mFM.js.map +1 -1
  232. package/dist/tailwind.css +408 -0
  233. package/dist/theme.css +360 -360
  234. package/dist/{treeModel-BlJWP4sc.js → treeModel-CUO1A5s7.js} +11 -11
  235. package/dist/treeModel-CUO1A5s7.js.map +1 -0
  236. package/dist/types/css.d.ts +4 -4
  237. package/dist/useBreakpoints-DHvp74UL.js.map +1 -1
  238. package/dist/useDebounce-BRah78CF.js.map +1 -1
  239. package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
  240. package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
  241. package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
  242. package/package.json +28 -28
  243. package/dist/Button-BZ3ON1Tj.js.map +0 -1
  244. package/dist/ButtonBase-jgu7EolU.js.map +0 -1
  245. package/dist/CheckboxField-limFbMk2.js.map +0 -1
  246. package/dist/Command-B7ZRyW8w.js.map +0 -1
  247. package/dist/DayPicker-4hE1QEvO.js +0 -2452
  248. package/dist/DayPicker-4hE1QEvO.js.map +0 -1
  249. package/dist/Dialog-CdnsGyJD.js.map +0 -1
  250. package/dist/Field-CP_-li9L.js.map +0 -1
  251. package/dist/FieldLabel-eyKmeWRn.js.map +0 -1
  252. package/dist/FormFooterTemplate-DdNnLu2-.js.map +0 -1
  253. package/dist/FormHeader--F6b2aRk.js.map +0 -1
  254. package/dist/FormStack-Cc_ELdWL.js +0 -127
  255. package/dist/FormStack-Cc_ELdWL.js.map +0 -1
  256. package/dist/IconButton-uGJ3cQtk.js.map +0 -1
  257. package/dist/IconTooltip-RSxvnBgH.js.map +0 -1
  258. package/dist/InputGroup-AVAtosX_.js.map +0 -1
  259. package/dist/InputOTP-B2e1nfSO.js.map +0 -1
  260. package/dist/MenuItem-d19Ty84F.js.map +0 -1
  261. package/dist/Overlay-CVt011mY.js.map +0 -1
  262. package/dist/Popover-KjZXxxl3.js.map +0 -1
  263. package/dist/RichButton-B1wjK7Bk.js.map +0 -1
  264. package/dist/SearchSelectTag-CA7Ie3Nx.js.map +0 -1
  265. package/dist/Select-D9juHX8o.js.map +0 -1
  266. package/dist/Sheet-qTIXsqm0.js.map +0 -1
  267. package/dist/TableFillHandle-C_yvCTSl.js.map +0 -1
  268. package/dist/Tag-DdHXTyKF.js.map +0 -1
  269. package/dist/TextInput-5BuZtWV6.js.map +0 -1
  270. package/dist/Toggle-v_HT3Gm2.js.map +0 -1
  271. package/dist/Tooltip-7Duaau0S.js.map +0 -1
  272. package/dist/TriggerButton-Bakr8Boi.js.map +0 -1
  273. package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
  274. package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
  275. package/dist/components/portal-container/PortalContainer.d.ts +0 -10
  276. package/dist/components/portal-container/index.d.ts +0 -2
  277. package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
  278. package/dist/components/portal-container/usePortalContainer.d.ts +0 -10
  279. package/dist/components/portal-container.d.ts +0 -2
  280. package/dist/components/portal-container.js +0 -14
  281. package/dist/components/portal-container.js.map +0 -1
  282. package/dist/index.esm-CXA6i4d7.js +0 -1282
  283. package/dist/index.esm-CXA6i4d7.js.map +0 -1
  284. package/dist/inputBaseStyles-BfZIWuQ6.js.map +0 -1
  285. package/dist/lib/utils/styles.d.ts +0 -10
  286. package/dist/normalizeDates-9A3c9WYM.js +0 -32
  287. package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
  288. package/dist/styles-scoped.css +0 -6605
  289. package/dist/styles-scoped.d.ts +0 -1
  290. package/dist/styles.css +0 -6594
  291. package/dist/styles.d.ts +0 -1
  292. package/dist/treeModel-BlJWP4sc.js.map +0 -1
  293. package/dist/usePortalContainer-BAIp0kSF.js +0 -44
  294. package/dist/usePortalContainer-BAIp0kSF.js.map +0 -1
  295. package/dist/vendors/date-fns/index.d.ts +0 -12
  296. package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
  297. package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
  298. package/dist/vendors/date-fns/locale/en-US.js +0 -372
  299. package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
  300. package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
  301. package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
  302. package/dist/vendors/date-fns/locale/ru.js +0 -569
  303. package/dist/vendors/date-fns/locale/ru.js.map +0 -1
  304. package/dist/vendors/date-fns.d.ts +0 -2
  305. package/dist/vendors/date-fns.js +0 -2
  306. package/dist/vendors/date-fns.js.map +0 -1
  307. package/dist/vendors/react-day-picker/index.d.ts +0 -13
  308. package/dist/vendors/react-day-picker.d.ts +0 -2
  309. package/dist/vendors/react-day-picker.js +0 -87
  310. package/dist/vendors/react-day-picker.js.map +0 -1
  311. package/dist/vendors/react-hook-form/index.d.ts +0 -14
  312. package/dist/vendors/react-hook-form.d.ts +0 -2
  313. package/dist/vendors/react-hook-form.js +0 -19
  314. package/dist/vendors/react-hook-form.js.map +0 -1
  315. package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
  316. package/dist/vendors/tanstack/react-table.d.ts +0 -2
  317. package/dist/vendors/tanstack/react-table.js +0 -2090
  318. package/dist/vendors/tanstack/react-table.js.map +0 -1
  319. package/dist/vendors/zod/index.d.ts +0 -13
  320. package/dist/vendors/zod.d.ts +0 -2
  321. package/dist/vendors/zod.js +0 -3080
  322. package/dist/vendors/zod.js.map +0 -1
  323. package/dist/zod-BMNoK3aM.js +0 -75
  324. package/dist/zod-BMNoK3aM.js.map +0 -1
  325. package/tailwind.preset.js +0 -452
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dialog-CdnsGyJD.js","sources":["../src/components/dialog/Dialog.tsx"],"sourcesContent":["import * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormBody } from \"../form/components/form-body/FormBody\";\nimport { FormFooter } from \"../form/components/form-footer/FormFooter\";\nimport { formDescriptionStyles, FormHeader, formTitleStyles } from \"../form/components/form-header/FormHeader\";\nimport { Icon } from \"../icon\";\nimport { overlayStyles, OverlayVariants } from \"../overlay/Overlay\";\nimport { usePortalContainer } from \"../portal-container\";\n\nconst Dialog = DialogPrimitive.Root;\nDialog.displayName = \"Dialog\";\n\nconst DialogTrigger = DialogPrimitive.Trigger;\nDialogTrigger.displayName = \"DialogTrigger\";\n\nconst DialogPortal = DialogPrimitive.Portal;\nDialogPortal.displayName = \"DialogPortal\";\n\nconst DialogTitle = React.forwardRef<\n\tReact.ElementRef<typeof DialogPrimitive.Title>,\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => {\n\tconst styles = formTitleStyles({ class: className });\n\treturn <DialogPrimitive.Title ref={ref} className={styles} {...props} />;\n});\nDialogTitle.displayName = \"DialogTitle\";\n\nconst DialogDescription = React.forwardRef<\n\tReact.ElementRef<typeof DialogPrimitive.Description>,\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => {\n\tconst styles = formDescriptionStyles({ class: className });\n\treturn <DialogPrimitive.Description ref={ref} className={styles} {...props} />;\n});\nDialogDescription.displayName = \"DialogDescription\";\n\nconst DialogHeader = FormHeader;\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogBody = FormBody;\nDialogBody.displayName = \"DialogBody\";\n\nconst DialogFooter = FormFooter;\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogClose = DialogPrimitive.Close;\nDialogClose.displayName = \"DialogClose\";\n\nconst dialogOverlayStyles = tv({ extend: overlayStyles });\n\ninterface DialogOverlayProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>, OverlayVariants {}\n\nconst DialogOverlay = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Overlay>, DialogOverlayProps>(\n\t({ className, blur, type, ...props }, ref) => (\n\t\t<DialogPrimitive.Overlay\n\t\t\tref={ref}\n\t\t\tclassName={dialogOverlayStyles({ class: className, blur, type })}\n\t\t\t{...props}\n\t\t/>\n\t)\n);\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst dialogContentStyles = tv({\n\tbase: [\n\t\t\"fixed left-[50%] top-[45%] z-50 max-h-[min(90vh,calc(100vh-44px))] w-full max-w-[min(480px,calc(100vw-32px))] translate-x-[-50%] translate-y-[-45%] lg:top-[35%] lg:max-h-[min(90vh,830px)] lg:max-w-[min(544px,calc(100vw-32px))] lg:translate-y-[-35%]\",\n\t\t\"flex flex-col gap-0 overflow-hidden rounded-xl border border-secondary-border bg-secondary-bg p-0 shadow-soft-lg\",\n\t\t\"duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\"\n\t],\n\tslots: {\n\t\tcloseButton: \"absolute right-0 top-0 z-50 h-11 w-11 p-3.5 text-muted\",\n\t\tcloseIcon: \"h-4 w-4\"\n\t}\n});\n\ntype BackgroundProps = OverlayVariants;\n\nconst DialogContent = React.forwardRef<\n\tReact.ElementRef<typeof DialogPrimitive.Content>,\n\tReact.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n\t\toverlayBlur?: BackgroundProps[\"blur\"];\n\t\toverlayType?: BackgroundProps[\"type\"];\n\t\tshowCloseButton?: boolean;\n\t\t/**\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\n\t\t * для поиска PortalContainer\n\t\t */\n\t\tportalContainer?: HTMLElement;\n\t}\n>((props, ref) => {\n\tconst {\n\t\tclassName,\n\t\tchildren,\n\t\toverlayBlur,\n\t\toverlayType,\n\t\tshowCloseButton = true,\n\t\tportalContainer,\n\t\t...restProps\n\t} = props;\n\tconst styles = dialogContentStyles();\n\tconst container = usePortalContainer(portalContainer);\n\treturn (\n\t\t<DialogPrimitive.Portal container={container}>\n\t\t\t<DialogOverlay blur={overlayBlur} type={overlayType} />\n\t\t\t<DialogPrimitive.Content ref={ref} className={styles.base({ className })} {...restProps}>\n\t\t\t\t{children}\n\t\t\t\t{showCloseButton && (\n\t\t\t\t\t<DialogPrimitive.Close className={styles.closeButton()}>\n\t\t\t\t\t\t<Icon className={styles.closeIcon()} size=\"lg\" icon={X}></Icon>\n\t\t\t\t\t</DialogPrimitive.Close>\n\t\t\t\t)}\n\t\t\t</DialogPrimitive.Content>\n\t\t</DialogPrimitive.Portal>\n\t);\n});\nDialogContent.displayName = \"DialogContent\";\n\nexport {\n\tDialog,\n\tDialogBody,\n\tDialogClose,\n\tDialogContent,\n\tDialogDescription,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogOverlay,\n\tDialogPortal,\n\tDialogTitle,\n\tDialogTrigger\n};\n\n/** @deprecated Используйте Dialog вместо Modal */\nexport const Modal = Dialog;\n/** @deprecated Используйте DialogBody вместо ModalBody */\nexport const ModalBody = DialogBody;\n/** @deprecated Используйте DialogClose вместо ModalClose */\nexport const ModalClose = DialogClose;\n/** @deprecated Используйте DialogContent вместо ModalContent */\nexport const ModalContent = DialogContent;\n/** @deprecated Используйте DialogDescription вместо ModalDescription */\nexport const ModalDescription = DialogDescription;\n/** @deprecated Используйте DialogFooter вместо ModalFooter */\nexport const ModalFooter = DialogFooter;\n/** @deprecated Используйте DialogHeader вместо ModalHeader */\nexport const ModalHeader = DialogHeader;\n/** @deprecated Используйте DialogOverlay вместо ModalOverlay */\nexport const ModalOverlay = DialogOverlay;\n/** @deprecated Используйте DialogPortal вместо ModalPortal */\nexport const ModalPortal = DialogPortal;\n/** @deprecated Используйте DialogTitle вместо ModalTitle */\nexport const ModalTitle = DialogTitle;\n/** @deprecated Используйте DialogTrigger вместо ModalTrigger */\nexport const ModalTrigger = DialogTrigger;\n"],"names":["Dialog","DialogPrimitive.Root","DialogTrigger","DialogPrimitive.Trigger","DialogPortal","DialogPrimitive.Portal","DialogTitle","React","className","props","ref","styles","formTitleStyles","jsx","DialogPrimitive.Title","DialogDescription","formDescriptionStyles","DialogPrimitive.Description","DialogHeader","FormHeader","DialogBody","FormBody","DialogFooter","FormFooter","DialogClose","DialogPrimitive.Close","dialogOverlayStyles","tv","overlayStyles","DialogOverlay","blur","type","DialogPrimitive.Overlay","dialogContentStyles","DialogContent","children","overlayBlur","overlayType","showCloseButton","portalContainer","restProps","container","usePortalContainer","jsxs","DialogPrimitive.Content","Icon","X","Modal","ModalBody","ModalClose","ModalContent","ModalDescription","ModalFooter","ModalHeader","ModalOverlay","ModalPortal","ModalTitle","ModalTrigger"],"mappings":";;;;;;;;;AAWA,MAAMA,IAASC;AACfD,EAAO,cAAc;AAErB,MAAME,IAAgBC;AACtBD,EAAc,cAAc;AAE5B,MAAME,IAAeC;AACrBD,EAAa,cAAc;AAErB,MAAAE,IAAcC,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACnC,QAAMC,IAASC,EAAgB,EAAE,OAAOJ,GAAW;AAC5C,SAAA,gBAAAK,EAACC,GAAA,EAAsB,KAAAJ,GAAU,WAAWC,GAAS,GAAGF,GAAO;AACvE,CAAC;AACDH,EAAY,cAAc;AAEpB,MAAAS,IAAoBR,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACnC,QAAMC,IAASK,EAAsB,EAAE,OAAOR,GAAW;AAClD,SAAA,gBAAAK,EAACI,GAAA,EAA4B,KAAAP,GAAU,WAAWC,GAAS,GAAGF,GAAO;AAC7E,CAAC;AACDM,EAAkB,cAAc;AAEhC,MAAMG,IAAeC;AACrBD,EAAa,cAAc;AAE3B,MAAME,IAAaC;AACnBD,EAAW,cAAc;AAEzB,MAAME,IAAeC;AACrBD,EAAa,cAAc;AAE3B,MAAME,IAAcC;AACpBD,EAAY,cAAc;AAE1B,MAAME,IAAsBC,EAAG,EAAE,QAAQC,GAAe,GAIlDC,IAAgBtB,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAC,GAAW,MAAAsB,GAAM,MAAAC,GAAM,GAAGtB,EAAA,GAASC,MACrC,gBAAAG;AAAA,IAACmB;AAAAA,IAAA;AAAA,MACA,KAAAtB;AAAA,MACA,WAAWgB,EAAoB,EAAE,OAAOlB,GAAW,MAAAsB,GAAM,MAAAC,GAAM;AAAA,MAC9D,GAAGtB;AAAA,IAAA;AAAA,EAAA;AAGP;AACAoB,EAAc,cAAcG,EAAwB;AAEpD,MAAMC,IAAsBN,EAAG;AAAA,EAC9B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA,IACb,WAAW;AAAA,EAAA;AAEb,CAAC,GAIKO,IAAgB3B,EAAM,WAY1B,CAACE,GAAOC,MAAQ;AACX,QAAA;AAAA,IACL,WAAAF;AAAA,IACA,UAAA2B;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,iBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACA/B,GACEE,IAASsB,EAAoB,GAC7BQ,IAAYC,EAAmBH,CAAe;AACpD,SACE,gBAAAI,EAAAtC,GAAA,EAAuB,WAAAoC,GACvB,UAAA;AAAA,IAAA,gBAAA5B,EAACgB,GAAc,EAAA,MAAMO,GAAa,MAAMC,GAAa;AAAA,IACpD,gBAAAM,EAAAC,GAAA,EAAwB,KAAAlC,GAAU,WAAWC,EAAO,KAAK,EAAE,WAAAH,EAAW,CAAA,GAAI,GAAGgC,GAC5E,UAAA;AAAA,MAAAL;AAAA,MACAG,KACC,gBAAAzB,EAAAY,GAAA,EAAsB,WAAWd,EAAO,YAAY,GACpD,4BAACkC,GAAK,EAAA,WAAWlC,EAAO,UAAU,GAAG,MAAK,MAAK,MAAMmC,GAAG,EACzD,CAAA;AAAA,IAAA,EAEF,CAAA;AAAA,EAAA,GACD;AAEF,CAAC;AACDZ,EAAc,cAAc;AAiBrB,MAAMa,IAAQ/C,GAERgD,KAAY5B,GAEZ6B,KAAazB,GAEb0B,KAAehB,GAEfiB,KAAmBpC,GAEnBqC,KAAc9B,GAEd+B,KAAcnC,GAEdoC,KAAezB,GAEf0B,KAAcnD,GAEdoD,KAAalD,GAEbmD,KAAevD;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Field-CP_-li9L.js","sources":["../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/circle-help.js","../src/components/field/Field.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleHelp = createLucideIcon(\"CircleHelp\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n]);\n\nexport { CircleHelp as default };\n//# sourceMappingURL=circle-help.js.map\n","import * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { CircleHelp } from \"lucide-react\";\nimport { FieldLabel } from \"@/components/label\";\nimport { Description } from \"@/components/description\";\nimport { useId } from \"react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport type FieldLayout = \"horizontal\" | \"vertical\" | \"responsive\";\n\nexport interface FieldVariants {\n\t/** Вариант расположения элементов поля */\n\tlayout?: FieldLayout;\n\tshowGap?: boolean;\n}\n\nconst fieldStyles = tv({\n\tslots: {\n\t\twrapper: \"flex w-full space-y-0\",\n\t\tlabelWrapper: \"flex items-center justify-between gap-3\",\n\t\tcontrolWrapper: \"flex w-full min-w-0 flex-1 flex-col\",\n\t\terror: \"text-status-error\"\n\t},\n\tvariants: {\n\t\tlayout: {\n\t\t\thorizontal: {\n\t\t\t\twrapper: \"flex-row gap-4\",\n\t\t\t\tlabelWrapper: \"h-10 flex-col items-start gap-0.5 pb-px pt-px lg:h-9\"\n\t\t\t},\n\t\t\tvertical: {\n\t\t\t\twrapper: \"flex-col gap-2\",\n\t\t\t\tlabelWrapper: \"h-4\"\n\t\t\t},\n\t\t\tresponsive: {\n\t\t\t\twrapper: \"flex-col gap-2 lg:flex-row lg:gap-4\",\n\t\t\t\tlabelWrapper: \"h-4 lg:h-9 lg:flex-col lg:items-start lg:gap-0.5 lg:pb-px lg:pt-px\"\n\t\t\t}\n\t\t},\n\t\tshowGap: {\n\t\t\ttrue: { controlWrapper: \"gap-y-2\" }\n\t\t}\n\t} satisfies VariantsConfig<FieldVariants>,\n\tdefaultVariants: {\n\t\tlayout: \"horizontal\"\n\t}\n});\n\ntype DescriptionPlacement = \"text\" | \"icon\";\n\ntype ControlProps = {\n\t/** Режим только для чтения */\n\treadonly?: boolean;\n\t/** Идентификатор элемента. Используется для связи лейбла с элементом управления */\n\tid?: string;\n\t/** Текст сообщения об ошибке. При наличии делает поле невалидным */\n\terror?: string;\n};\n\nexport type FieldProps = Omit<FieldVariants, \"showGap\"> & {\n\t/** Заголовок поля */\n\ttitle: string;\n\t/** Описание поля */\n\tdescription?: React.ReactNode;\n\t/** Режим только для чтения */\n\treadonly?: boolean;\n\t/** Расположение описания */\n\tdescriptionPlacement?: DescriptionPlacement;\n\t/** Функция рендеринга контрола */\n\tcontrol: (props: ControlProps) => React.ReactNode;\n\t/** Обязательное поле */\n\trequired?: boolean;\n\t/** Текст ошибки */\n\terror?: string;\n\t/** Дополнительные классы для контейнера */\n\tclassName?: string;\n\t/** Дополнительные классы для лейбла */\n\tlabelClassName?: string;\n\t/** Дополнительный контент в строке лейбла, выравнивается по правому краю */\n\tlabelSlot?: React.ReactNode;\n};\n\nexport const Field = React.forwardRef<HTMLDivElement, FieldProps>(\n\t(\n\t\t{\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\tdescriptionPlacement = \"text\",\n\t\t\tcontrol,\n\t\t\trequired,\n\t\t\terror,\n\t\t\tclassName,\n\t\t\tlabelClassName,\n\t\t\tlabelSlot,\n\t\t\tlayout,\n\t\t\treadonly\n\t\t},\n\t\tref\n\t) => {\n\t\tconst generatedId = useId();\n\t\tconst showTextDescription = description && descriptionPlacement !== \"icon\";\n\t\tconst showIconDescription = description && descriptionPlacement === \"icon\";\n\n\t\tconst styles = fieldStyles({ layout, showGap: !!(showTextDescription || error) });\n\n\t\treturn (\n\t\t\t<div ref={ref} className={styles.wrapper({ className })}>\n\t\t\t\t<div className={styles.labelWrapper({ className: labelClassName })}>\n\t\t\t\t\t<FieldLabel\n\t\t\t\t\t\ttooltip={description}\n\t\t\t\t\t\ticon={showIconDescription ? CircleHelp : void 0}\n\t\t\t\t\t\trequired={!readonly && required}\n\t\t\t\t\t\thtmlFor={generatedId}\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</FieldLabel>\n\t\t\t\t\t{labelSlot}\n\t\t\t\t</div>\n\n\t\t\t\t<div className={styles.controlWrapper()}>\n\t\t\t\t\t{control({ readonly, id: generatedId, error })}\n\t\t\t\t\t<div className=\"flex flex-col gap-0.5\">\n\t\t\t\t\t\t{showTextDescription && <Description size=\"xs\">{description}</Description>}\n\t\t\t\t\t\t{error && (\n\t\t\t\t\t\t\t<Description size=\"xs\" className={styles.error()}>\n\t\t\t\t\t\t\t\t{error}\n\t\t\t\t\t\t\t</Description>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nField.displayName = \"Field\";\n"],"names":["CircleHelp","createLucideIcon","fieldStyles","tv","Field","React","title","description","descriptionPlacement","control","required","error","className","labelClassName","labelSlot","layout","readonly","ref","generatedId","useId","showTextDescription","showIconDescription","styles","jsxs","jsx","FieldLabel","Description"],"mappings":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,MAAMA,IAAaC,EAAiB,cAAc;AAAA,EAChD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,UAAU;AAAA,EACzD,CAAC,QAAQ,EAAE,GAAG,wCAAwC,KAAK,SAAQ,CAAE;AAAA,EACrE,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAU,CAAA;AAC7C,CAAC,GCGKC,IAAcC,EAAG;AAAA,EACtB,OAAO;AAAA,IACN,SAAS;AAAA,IACT,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,OAAO;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACT,QAAQ;AAAA,MACP,YAAY;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,MACf;AAAA,MACA,UAAU;AAAA,QACT,SAAS;AAAA,QACT,cAAc;AAAA,MACf;AAAA,MACA,YAAY;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,MAAA;AAAA,IAEhB;AAAA,IACA,SAAS;AAAA,MACR,MAAM,EAAE,gBAAgB,UAAU;AAAA,IAAA;AAAA,EAEpC;AAAA,EACA,iBAAiB;AAAA,IAChB,QAAQ;AAAA,EAAA;AAEV,CAAC,GAoCYC,IAAQC,EAAM;AAAA,EAC1B,CACC;AAAA,IACC,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,sBAAAC,IAAuB;AAAA,IACvB,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,KAEDC,MACI;AACJ,UAAMC,IAAcC,EAAM,GACpBC,IAAsBb,KAAeC,MAAyB,QAC9Da,IAAsBd,KAAeC,MAAyB,QAE9Dc,IAASpB,EAAY,EAAE,QAAAa,GAAQ,SAAS,CAAC,EAAEK,KAAuBT,IAAQ;AAG/E,WAAA,gBAAAY,EAAC,SAAI,KAAAN,GAAU,WAAWK,EAAO,QAAQ,EAAE,WAAAV,GAAW,GACrD,UAAA;AAAA,MAAC,gBAAAW,EAAA,OAAA,EAAI,WAAWD,EAAO,aAAa,EAAE,WAAWT,GAAgB,GAChE,UAAA;AAAA,QAAA,gBAAAW;AAAA,UAACC;AAAA,UAAA;AAAA,YACA,SAASlB;AAAA,YACT,MAAMc,IAAsBrB,IAAa;AAAA,YACzC,UAAU,CAACgB,KAAYN;AAAA,YACvB,SAASQ;AAAA,YAER,UAAAZ;AAAA,UAAA;AAAA,QACF;AAAA,QACCQ;AAAA,MAAA,GACF;AAAA,MAEC,gBAAAS,EAAA,OAAA,EAAI,WAAWD,EAAO,eACrB,GAAA,UAAA;AAAA,QAAAb,EAAQ,EAAE,UAAAO,GAAU,IAAIE,GAAa,OAAAP,GAAO;AAAA,QAC7C,gBAAAY,EAAC,OAAI,EAAA,WAAU,yBACb,UAAA;AAAA,UAAAH,KAAwB,gBAAAI,EAAAE,GAAA,EAAY,MAAK,MAAM,UAAYnB,GAAA;AAAA,UAC3DI,uBACCe,GAAY,EAAA,MAAK,MAAK,WAAWJ,EAAO,SACvC,UACFX,EAAA,CAAA;AAAA,QAAA,EAEF,CAAA;AAAA,MAAA,EACD,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAGH;AAEAP,EAAM,cAAc;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FieldLabel-eyKmeWRn.js","sources":["../node_modules/.pnpm/@radix-ui+react-label@2.1.8_@types+react-dom@18.3.6_@types+react@18.3.20__@types+react@_06ea743dca7d9215da8e661312ca1eb5/node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/label/Label.tsx","../src/components/label/field-label/components/RequiredIcon.tsx","../src/components/label/field-label/FieldLabel.tsx"],"sourcesContent":["\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as LabelPrimitive from \"@radix-ui/react-label\";\nimport * as React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst labelStyles = tv({\n\tbase: \"text-sm font-medium leading-none text-primary-fg peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n});\n\nconst Label = React.forwardRef<\n\tReact.ElementRef<typeof LabelPrimitive.Root>,\n\tReact.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n\t<LabelPrimitive.Root ref={ref} className={labelStyles({ className })} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import { tv } from \"tailwind-variants\";\n\nconst requiredIconStyles = tv({\n\tbase: \"stroke-status-error\"\n});\n\ninterface RequiredIconProps {\n\tclassName?: string;\n}\n\nexport function RequiredIcon({ className }: RequiredIconProps) {\n\treturn (\n\t\t<svg\n\t\t\tclassName={requiredIconStyles({ className })}\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\twidth=\"24\"\n\t\t\theight=\"24\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\tfill=\"none\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M12.0001 3V21M20 7.5L4 16.5M4 7.5L20 16.5\"\n\t\t\t\tstrokeWidth=\"3\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n","import React from \"react\";\nimport { Label } from \"../Label\";\nimport { tv } from \"tailwind-variants\";\nimport { Icon } from \"@/components/icon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { IconTooltip } from \"@/components/icon-tooltip/IconTooltip\";\nimport { RequiredIcon } from \"./components/RequiredIcon\";\n\nconst fieldLabelVariants = tv({\n\tslots: {\n\t\tbase: \"flex h-4 min-w-0 items-center gap-x-0.5 text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n\t\trequiredMark: \"h-2 w-2 self-start\",\n\t\ticon: \"ml-1 text-muted\"\n\t}\n});\n\ninterface FieldLabelProps extends React.ComponentPropsWithoutRef<typeof Label> {\n\tclassName?: string;\n\trequired?: boolean;\n\ticon?: LucideIcon;\n\ttooltip?: React.ReactNode;\n}\n\nexport const FieldLabel = React.forwardRef<React.ElementRef<typeof Label>, FieldLabelProps>(\n\t({ className, children, htmlFor, icon, tooltip, required, ...props }, ref) => {\n\t\tconst { base, requiredMark, icon: iconStyles } = fieldLabelVariants();\n\n\t\treturn (\n\t\t\t<Label ref={ref} className={base({ className })} htmlFor={htmlFor} {...props}>\n\t\t\t\t{children}\n\t\t\t\t{required && <RequiredIcon className={requiredMark()} />}\n\t\t\t\t{icon &&\n\t\t\t\t\t(tooltip ? (\n\t\t\t\t\t\t<IconTooltip content={tooltip} iconSize=\"sm\" icon={icon} iconClassName={iconStyles()} />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Icon size=\"sm\" icon={icon} className={iconStyles()} />\n\t\t\t\t\t))}\n\t\t\t</Label>\n\t\t);\n\t}\n);\n\nFieldLabel.displayName = \"FieldLabel\";\n"],"names":["NAME","Label","React","props","forwardedRef","jsx","Primitive","event","Root","labelStyles","tv","className","ref","LabelPrimitive.Root","requiredIconStyles","RequiredIcon","fieldLabelVariants","FieldLabel","children","htmlFor","icon","tooltip","required","base","requiredMark","iconStyles","jsxs","IconTooltip","Icon"],"mappings":";;;;;;;AAMA,IAAIA,IAAO,SACPC,IAAQC,EAAM,WAAW,CAACC,GAAOC,MACZ,gBAAAC;AAAA,EACrBC,EAAU;AAAA,EACV;AAAA,IACE,GAAGH;AAAA,IACH,KAAKC;AAAA,IACL,aAAa,CAACG,MAAU;AAEtB,MADeA,EAAM,OACV,QAAQ,iCAAiC,MACpDJ,EAAM,cAAcI,CAAK,GACrB,CAACA,EAAM,oBAAoBA,EAAM,SAAS,KAAGA,EAAM,eAAgB;AAAA,IAC/E;AAAA,EACA;AACG,CACF;AACDN,EAAM,cAAcD;AACpB,IAAIQ,IAAOP;ACnBX,MAAMQ,IAAcC,EAAG;AAAA,EACtB,MAAM;AACP,CAAC,GAEKT,IAAQC,EAAM,WAGlB,CAAC,EAAE,WAAAS,GAAW,GAAGR,EAAM,GAAGS,MAC3B,gBAAAP,EAACQ,GAAA,EAAoB,KAAAD,GAAU,WAAWH,EAAY,EAAE,WAAAE,GAAW,GAAI,GAAGR,GAAO,CACjF;AACDF,EAAM,cAAcY,EAAoB;ACZxC,MAAMC,IAAqBJ,EAAG;AAAA,EAC7B,MAAM;AACP,CAAC;AAMe,SAAAK,EAAa,EAAE,WAAAJ,KAAgC;AAE7D,SAAA,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWS,EAAmB,EAAE,WAAAH,GAAW;AAAA,MAC3C,OAAM;AAAA,MACN,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MAEL,UAAA,gBAAAN;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,GAAE;AAAA,UACF,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EACD;AAEF;ACpBA,MAAMW,IAAqBN,EAAG;AAAA,EAC7B,OAAO;AAAA,IACN,MAAM;AAAA,IACN,cAAc;AAAA,IACd,MAAM;AAAA,EAAA;AAER,CAAC,GASYO,IAAaf,EAAM;AAAA,EAC/B,CAAC,EAAE,WAAAS,GAAW,UAAAO,GAAU,SAAAC,GAAS,MAAAC,GAAM,SAAAC,GAAS,UAAAC,GAAU,GAAGnB,EAAM,GAAGS,MAAQ;AAC7E,UAAM,EAAE,MAAAW,GAAM,cAAAC,GAAc,MAAMC,EAAA,IAAeT,EAAmB;AAGnE,WAAA,gBAAAU,EAACzB,GAAM,EAAA,KAAAW,GAAU,WAAWW,EAAK,EAAE,WAAAZ,EAAW,CAAA,GAAG,SAAAQ,GAAmB,GAAGhB,GACrE,UAAA;AAAA,MAAAe;AAAA,MACAI,KAAY,gBAAAjB,EAACU,GAAa,EAAA,WAAWS,EAAgB,EAAA,CAAA;AAAA,MACrDJ,MACCC,IACC,gBAAAhB,EAAAsB,GAAA,EAAY,SAASN,GAAS,UAAS,MAAK,MAAAD,GAAY,eAAeK,KAAc,sBAErFG,GAAK,EAAA,MAAK,MAAK,MAAAR,GAAY,WAAWK,KAAc;AAAA,IAAA,GAExD;AAAA,EAAA;AAGH;AAEAR,EAAW,cAAc;","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormFooterTemplate-DdNnLu2-.js","sources":["../src/components/form/templates/header-template/FormHeaderTemplate.tsx","../src/components/form/templates/footer-template/FormFooterTemplate.tsx"],"sourcesContent":["import { FeatureIcon } from \"@/components/icon/feature-icon/FeatureIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport React, { HTMLAttributes, PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormDescription, FormHeader, FormTitle } from \"../../components/form-header/FormHeader\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface FormHeaderTemplateVariants {\n\talignment?: \"compact\" | \"left\" | \"center\";\n}\n\nconst formHeaderTemplateStyles = tv({\n\tslots: {\n\t\theader: \"flex items-start gap-4\",\n\t\tcontentWrapper: \"flex flex-col gap-px lg:gap-1.5\",\n\t\ticon: \"flex-shrink-0 rounded-lg ring-0\"\n\t},\n\tvariants: {\n\t\talignment: {\n\t\t\tcompact: {\n\t\t\t\theader: \"flex-row pr-9\"\n\t\t\t},\n\t\t\tleft: {\n\t\t\t\theader: \"flex-col gap-2 lg:gap-4\",\n\t\t\t\tcontentWrapper: \"gap-0.5 lg:gap-1\"\n\t\t\t},\n\t\t\tcenter: {\n\t\t\t\theader: \"flex-col items-center gap-2 text-center lg:gap-4\",\n\t\t\t\tcontentWrapper: \"gap-0.5 lg:gap-1\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<FormHeaderTemplateVariants>,\n\tdefaultVariants: {\n\t\talignment: \"compact\"\n\t}\n});\n\nexport type BaseHeaderTemplateProps = Omit<HTMLAttributes<HTMLDivElement>, \"title\"> &\n\tFormHeaderTemplateVariants & {\n\t\t/** Заголовок формы */\n\t\ttitle: React.ReactNode;\n\t\t/** Описание формы */\n\t\tdescription?: React.ReactNode;\n\t\t/** Иконка заголовка */\n\t\ticon?: LucideIcon;\n\t\t/** Кастомная иконка заголовка */\n\t\tcustomIcon?: React.ReactNode;\n\t};\n\nexport const BaseHeaderTemplate = React.forwardRef<HTMLDivElement, PropsWithChildren<BaseHeaderTemplateProps>>(\n\t({ className, icon: Icon, title, alignment, description, customIcon, ...props }, ref) => {\n\t\tconst { header, contentWrapper, icon } = formHeaderTemplateStyles({ alignment });\n\n\t\treturn (\n\t\t\t<FormHeader ref={ref} className={header({ class: className })} {...props}>\n\t\t\t\t{Icon && <FeatureIcon size=\"xl\" icon={Icon} className={icon()} />}\n\t\t\t\t{customIcon && customIcon}\n\t\t\t\t<div className={contentWrapper()}>\n\t\t\t\t\t{title}\n\t\t\t\t\t{description}\n\t\t\t\t</div>\n\t\t\t</FormHeader>\n\t\t);\n\t}\n);\n\n/**\n * Темплейт заголовка формы. Содержит иконку, заголовок и описание.\n * Имеет различные варианты расположения элементов\n */\nexport const FormHeaderTemplate = React.forwardRef<HTMLDivElement, PropsWithChildren<BaseHeaderTemplateProps>>(\n\t({ title, description, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseHeaderTemplate\n\t\t\t\ttitle={<FormTitle>{title}</FormTitle>}\n\t\t\t\tdescription={<FormDescription>{description}</FormDescription>}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nFormHeaderTemplate.displayName = \"FormHeaderTemplate\";\n","import { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { CheckboxField, CheckboxFieldProps } from \"@/components/checkbox/checkbox-field/CheckboxField\";\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormFooter } from \"../../components/form-footer/FormFooter\";\n\nconst formFooterTemplateStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex w-full flex-col gap-3 lg:flex-row\",\n\t\tstartBlock: \"flex items-center py-1 lg:py-2.5\",\n\t\tendBlock: \"ml-auto flex w-full flex-col gap-3 lg:w-auto lg:flex-row\"\n\t}\n});\n\nexport interface FormFooterTemplateProps {\n\t/** Дополнительные классы */\n\tclassName?: string;\n\t/** Текст для чекбокса */\n\tcheckboxLabel?: string;\n\t/** Пропсы для чекбокса */\n\tcheckboxProps?: CheckboxFieldProps;\n\t/** Основная кнопка */\n\tprimaryButton?: React.ReactNode;\n\t/** Пропсы для основной кнопки */\n\tprimaryButtonProps?: ButtonProps;\n\t/** Вторичная кнопка */\n\tsecondaryButton?: React.ReactNode;\n\t/** Пропсы для вторичной кнопки */\n\tsecondaryButtonProps?: ButtonProps;\n}\n\n/**\n * Темплейт футера формы. Содержит чекбокс и 2 кнопки, которыми можно управлять.\n * Адаптивен к размерам устройств\n */\nexport const FormFooterTemplate = React.forwardRef<HTMLDivElement, FormFooterTemplateProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tprimaryButton,\n\t\t\tsecondaryButton,\n\t\t\tcheckboxLabel,\n\t\t\tcheckboxProps,\n\t\t\tprimaryButtonProps,\n\t\t\tsecondaryButtonProps\n\t\t},\n\t\tref\n\t) => {\n\t\tconst isMobile = useIsMobile();\n\t\tconst { container, startBlock, endBlock } = formFooterTemplateStyles();\n\n\t\tif (isMobile) {\n\t\t\tprimaryButtonProps = { ...primaryButtonProps, size: \"xl\" };\n\t\t\tsecondaryButtonProps = { ...secondaryButtonProps, size: \"xl\" };\n\t\t}\n\t\tconst primaryButtonElement = primaryButton && (\n\t\t\t<Button key=\"primary-button\" variant=\"primary\" {...primaryButtonProps}>\n\t\t\t\t{primaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\tconst secondaryButtonElement = secondaryButton && (\n\t\t\t<Button key=\"secondary-button\" variant=\"outline\" {...secondaryButtonProps}>\n\t\t\t\t{secondaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn (\n\t\t\t<FormFooter className={className} ref={ref}>\n\t\t\t\t<div className={container()}>\n\t\t\t\t\t{checkboxLabel && (\n\t\t\t\t\t\t<div className={startBlock()}>\n\t\t\t\t\t\t\t<CheckboxField label={checkboxLabel} {...checkboxProps} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className={endBlock()}>\n\t\t\t\t\t\t{isMobile\n\t\t\t\t\t\t\t? [primaryButtonElement, secondaryButtonElement]\n\t\t\t\t\t\t\t: [secondaryButtonElement, primaryButtonElement]}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</FormFooter>\n\t\t);\n\t}\n);\n\nFormFooterTemplate.displayName = \"FormFooterTemplate\";\n"],"names":["formHeaderTemplateStyles","tv","BaseHeaderTemplate","React","className","Icon","title","alignment","description","customIcon","props","ref","header","contentWrapper","icon","jsxs","FormHeader","jsx","FeatureIcon","FormHeaderTemplate","FormTitle","FormDescription","formFooterTemplateStyles","FormFooterTemplate","primaryButton","secondaryButton","checkboxLabel","checkboxProps","primaryButtonProps","secondaryButtonProps","isMobile","useIsMobile","container","startBlock","endBlock","primaryButtonElement","Button","secondaryButtonElement","FormFooter","CheckboxField"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormHeader--F6b2aRk.js","sources":["../src/components/form/components/form-body/FormBody.tsx","../src/components/form/components/form-footer/FormFooter.tsx","../src/components/form/components/form-header/FormHeader.tsx"],"sourcesContent":["import { ScrollShadowContainer } from \"@/components/scroll-shadow-container\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst formBodyStyles = tv({\n\tslots: {\n\t\tcontent: \"px-4 py-5 lg:p-6\"\n\t}\n});\n\n/**\n * Тело формы\n */\nexport const FormBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = formBodyStyles();\n\n\t\treturn (\n\t\t\t<ScrollShadowContainer className={styles.content({ className })} {...props} ref={ref}>\n\t\t\t\t{children}\n\t\t\t</ScrollShadowContainer>\n\t\t);\n\t}\n);\n\nFormBody.displayName = \"FormBody\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst formFooterStyles = tv({\n\tbase: \"flex-shrink-0 gap-2 border-t border-secondary-border px-4 pb-4 pt-4 lg:px-6 lg:pb-6 lg:pt-5\"\n});\n\n/**\n * Футер формы\n */\nexport const FormFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={formFooterStyles({ class: className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nFormFooter.displayName = \"FormFooter\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst formHeaderStyles = tv({\n\tbase: \"relative flex-shrink-0 border-b border-secondary-border px-4 pb-4 pt-4 lg:px-6 lg:pb-5 lg:pt-6\"\n});\n\n/**\n * Заголовок формы\n */\nexport const FormHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div ref={ref} className={formHeaderStyles({ class: className })} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nFormHeader.displayName = \"FormHeader\";\n\nexport const formTitleStyles = tv({\n\tbase: \"font-sans text-base font-semibold leading-none tracking-tight text-primary-fg lg:text-lg lg:leading-none\"\n});\n\n/**\n * Заголовок поля\n */\nexport const FormTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n\t({ className, ...props }, ref) => {\n\t\treturn <h2 ref={ref} className={formTitleStyles({ class: className })} {...props} />;\n\t}\n);\n\nFormTitle.displayName = \"FormTitle\";\n\nexport const formDescriptionStyles = tv({\n\tbase: \"font-sans text-sm font-normal tracking-tight text-muted\"\n});\n\n/**\n * Описание поля\n */\nexport const FormDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, ...props }, ref) => {\n\t\treturn <div ref={ref} className={formDescriptionStyles({ class: className })} {...props} />;\n\t}\n);\n\nFormDescription.displayName = \"FormDescription\";\n"],"names":["formBodyStyles","tv","FormBody","React","className","children","props","ref","styles","jsx","ScrollShadowContainer","formFooterStyles","FormFooter","formHeaderStyles","FormHeader","Fragment","formTitleStyles","FormTitle","formDescriptionStyles","FormDescription"],"mappings":";;;;AAIA,MAAMA,IAAiBC,EAAG;AAAA,EACzB,OAAO;AAAA,IACN,SAAS;AAAA,EAAA;AAEX,CAAC,GAKYC,IAAWC,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC3C,UAAMC,IAASR,EAAe;AAE9B,WACE,gBAAAS,EAAAC,GAAA,EAAsB,WAAWF,EAAO,QAAQ,EAAE,WAAAJ,EAAU,CAAC,GAAI,GAAGE,GAAO,KAAAC,GAC1E,UAAAF,EACF,CAAA;AAAA,EAAA;AAGH;AAEAH,EAAS,cAAc;ACtBvB,MAAMS,IAAmBV,EAAG;AAAA,EAC3B,MAAM;AACP,CAAC,GAKYW,IAAaT,EAAM;AAAA,EAC/B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAEjC,gBAAAE,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWI,EAAiB,EAAE,OAAOP,EAAA,CAAW,GAAI,GAAGE,GACpE,UAAAD,EACF,CAAA;AAGH;AAEAO,EAAW,cAAc;ACjBzB,MAAMC,IAAmBZ,EAAG;AAAA,EAC3B,MAAM;AACP,CAAC,GAKYa,IAAaX,EAAM;AAAA,EAC/B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAGjC,gBAAAE,EAAAM,GAAA,EAAA,UAAA,gBAAAN,EAAC,OAAI,EAAA,KAAAF,GAAU,WAAWM,EAAiB,EAAE,OAAOT,EAAW,CAAA,GAAI,GAAGE,GACpE,UAAAD,EACF,CAAA,GACD;AAGH;AAEAS,EAAW,cAAc;AAElB,MAAME,IAAkBf,EAAG;AAAA,EACjC,MAAM;AACP,CAAC,GAKYgB,IAAYd,EAAM;AAAA,EAC9B,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAA,GAASC,MAClB,gBAAAE,EAAC,MAAG,EAAA,KAAAF,GAAU,WAAWS,EAAgB,EAAE,OAAOZ,EAAU,CAAC,GAAI,GAAGE,EAAO,CAAA;AAEpF;AAEAW,EAAU,cAAc;AAEjB,MAAMC,IAAwBjB,EAAG;AAAA,EACvC,MAAM;AACP,CAAC,GAKYkB,IAAkBhB,EAAM;AAAA,EACpC,CAAC,EAAE,WAAAC,GAAW,GAAGE,EAAA,GAASC,MAClB,gBAAAE,EAAC,OAAI,EAAA,KAAAF,GAAU,WAAWW,EAAsB,EAAE,OAAOd,EAAU,CAAC,GAAI,GAAGE,EAAO,CAAA;AAE3F;AAEAa,EAAgB,cAAc;"}
@@ -1,127 +0,0 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { f, a as w, C as R } from "./index.esm-CXA6i4d7.js";
3
- import * as n from "react";
4
- import $ from "react";
5
- import { S as F } from "./index-BtQfgaSF.js";
6
- import { T as d } from "./index-BVqs-uqP.js";
7
- import { F as M } from "./FieldLabel-eyKmeWRn.js";
8
- import { F as k } from "./Field-CP_-li9L.js";
9
- const L = d({
10
- base: "rounded-md border border-secondary-border bg-secondary-bg"
11
- }), Q = ({
12
- className: e,
13
- asChild: o,
14
- ...r
15
- }) => /* @__PURE__ */ s(o ? F : "div", { className: L({ className: e }), children: /* @__PURE__ */ s(w, { ...r }) }), u = n.createContext({}), P = ({
16
- ...e
17
- }) => /* @__PURE__ */ s(u.Provider, { value: { name: e.name }, children: /* @__PURE__ */ s(R, { ...e }) }), l = () => {
18
- const e = n.useContext(u), o = n.useContext(p), { getFieldState: r, formState: t } = f(), a = r(e.name, t);
19
- if (!e)
20
- throw new Error("useFormField should be used within <FormField>");
21
- const { id: m } = o;
22
- return {
23
- id: m,
24
- name: e.name,
25
- formItemId: `${m}-form-item`,
26
- formDescriptionId: `${m}-form-item-description`,
27
- formMessageId: `${m}-form-item-message`,
28
- ...a
29
- };
30
- }, p = n.createContext({}), D = d({
31
- base: "space-y-2"
32
- }), b = n.forwardRef(
33
- ({ className: e, ...o }, r) => {
34
- const t = n.useId();
35
- return /* @__PURE__ */ s(p.Provider, { value: { id: t }, children: /* @__PURE__ */ s("div", { ref: r, className: D({ className: e }), ...o }) });
36
- }
37
- );
38
- b.displayName = "FormItem";
39
- const _ = n.forwardRef(
40
- ({ className: e, required: o, ...r }, t) => {
41
- const { formItemId: a } = l();
42
- return /* @__PURE__ */ s(M, { required: o, ref: t, className: e, htmlFor: a, ...r });
43
- }
44
- );
45
- _.displayName = "FormLabel";
46
- const y = n.forwardRef(
47
- ({ ...e }, o) => {
48
- const { error: r, formItemId: t, formDescriptionId: a, formMessageId: m } = l();
49
- return /* @__PURE__ */ s(
50
- F,
51
- {
52
- ref: o,
53
- id: t,
54
- "aria-describedby": r ? `${a} ${m}` : `${a}`,
55
- "aria-invalid": !!r,
56
- ...e
57
- }
58
- );
59
- }
60
- );
61
- y.displayName = "FormControl";
62
- const j = d({
63
- base: "text-[0.8rem] font-medium text-destructive"
64
- }), E = n.forwardRef(
65
- ({ className: e, children: o, ...r }, t) => {
66
- const { error: a, formMessageId: m } = l(), i = a ? String(a?.message ?? "") : o;
67
- return i ? /* @__PURE__ */ s("p", { ref: t, id: m, className: j({ className: e }), ...r, children: i }) : null;
68
- }
69
- );
70
- E.displayName = "FormMessage";
71
- const T = d({
72
- slots: {
73
- label: "w-44"
74
- }
75
- });
76
- function U({
77
- name: e,
78
- title: o,
79
- description: r,
80
- control: t,
81
- required: a,
82
- className: m,
83
- labelClassName: i,
84
- readonly: C,
85
- layout: I = "responsive"
86
- }) {
87
- const g = f(), x = T();
88
- return /* @__PURE__ */ s(
89
- P,
90
- {
91
- control: g.control,
92
- name: e,
93
- render: ({ field: S, fieldState: c, formState: v }) => /* @__PURE__ */ s(b, { children: /* @__PURE__ */ s(
94
- k,
95
- {
96
- title: o,
97
- description: r,
98
- required: a,
99
- error: c.error?.message,
100
- labelClassName: x.label({ className: i }),
101
- className: m,
102
- readonly: C,
103
- layout: I,
104
- control: ({ id: N, readonly: h }) => /* @__PURE__ */ s(y, { id: N, children: t({ field: S, fieldState: c, formState: v, readonly: h }) })
105
- }
106
- ) })
107
- }
108
- );
109
- }
110
- const q = d({
111
- base: "space-y-5 lg:space-y-4"
112
- }), z = $.forwardRef(
113
- ({ className: e, children: o, ...r }, t) => /* @__PURE__ */ s("div", { ref: t, className: q({ className: e }), ...r, children: o })
114
- );
115
- z.displayName = "FormStack";
116
- export {
117
- z as F,
118
- Q as a,
119
- b,
120
- _ as c,
121
- y as d,
122
- E as e,
123
- P as f,
124
- U as g,
125
- l as u
126
- };
127
- //# sourceMappingURL=FormStack-Cc_ELdWL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormStack-Cc_ELdWL.js","sources":["../src/components/form/Form.tsx","../src/components/form/components/form-field/FormField.tsx","../src/components/form/components/form-stack/FormStack.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n\tController,\n\tFormProvider,\n\tuseFormContext,\n\ttype ControllerProps,\n\ttype FieldPath,\n\ttype FieldValues\n} from \"react-hook-form\";\nimport { tv } from \"tailwind-variants\";\nimport { FieldLabel } from \"../label/field-label/FieldLabel\";\n\nconst formStyle = tv({\n\tbase: \"rounded-md border border-secondary-border bg-secondary-bg\"\n});\n\n/**\n * Основной контейнер формы\n */\nconst Form = <T extends FieldValues>({\n\tclassName,\n\tasChild,\n\t...props\n}: React.ComponentProps<typeof FormProvider<T>> & {\n\t/** Дополнительные классы */\n\tclassName?: string;\n\t/** Использовать ли дочерний элемент как корневой */\n\tasChild?: boolean;\n}) => {\n\tconst Comp = asChild ? Slot : \"div\";\n\treturn (\n\t\t<Comp className={formStyle({ className })}>\n\t\t\t<FormProvider {...props} />\n\t\t</Comp>\n\t);\n};\n\ntype FormFieldContextValue<\n\tTFieldValues extends FieldValues = FieldValues,\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n\tname: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\n/**\n * Поле формы с валидацией\n */\n\nconst FormField = <\n\tTFieldValues extends FieldValues = FieldValues,\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n\t...props\n}: ControllerProps<TFieldValues, TName>) => {\n\treturn (\n\t\t<FormFieldContext.Provider value={{ name: props.name }}>\n\t\t\t<Controller {...props} />\n\t\t</FormFieldContext.Provider>\n\t);\n};\n\nconst useFormField = () => {\n\tconst fieldContext = React.useContext(FormFieldContext);\n\tconst itemContext = React.useContext(FormItemContext);\n\tconst { getFieldState, formState } = useFormContext();\n\n\tconst fieldState = getFieldState(fieldContext.name, formState);\n\n\tif (!fieldContext) {\n\t\tthrow new Error(\"useFormField should be used within <FormField>\");\n\t}\n\n\tconst { id } = itemContext;\n\n\treturn {\n\t\tid,\n\t\tname: fieldContext.name,\n\t\tformItemId: `${id}-form-item`,\n\t\tformDescriptionId: `${id}-form-item-description`,\n\t\tformMessageId: `${id}-form-item-message`,\n\t\t...fieldState\n\t};\n};\n\ntype FormItemContextValue = {\n\tid: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst formItemStyle = tv({\n\tbase: \"space-y-2\"\n});\n\n/**\n * Контейнер для элементов формы\n */\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, ...props }, ref) => {\n\t\tconst id = React.useId();\n\n\t\treturn (\n\t\t\t<FormItemContext.Provider value={{ id }}>\n\t\t\t\t<div ref={ref} className={formItemStyle({ className })} {...props} />\n\t\t\t</FormItemContext.Provider>\n\t\t);\n\t}\n);\nFormItem.displayName = \"FormItem\";\n\ninterface FormLabelProps extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> {\n\t/** Обязательное ли поле */\n\trequired?: boolean;\n}\n\n/**\n * Лейбл для поля формы\n */\nconst FormLabel = React.forwardRef<React.ElementRef<typeof LabelPrimitive.Root>, FormLabelProps>(\n\t({ className, required, ...props }, ref) => {\n\t\tconst { formItemId } = useFormField();\n\n\t\treturn <FieldLabel required={required} ref={ref} className={className} htmlFor={formItemId} {...props} />;\n\t}\n);\nFormLabel.displayName = \"FormLabel\";\n\n/**\n * Контрол для поля формы\n */\nconst FormControl = React.forwardRef<React.ElementRef<typeof Slot>, React.ComponentPropsWithoutRef<typeof Slot>>(\n\t({ ...props }, ref) => {\n\t\tconst { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n\t\treturn (\n\t\t\t<Slot\n\t\t\t\tref={ref}\n\t\t\t\tid={formItemId}\n\t\t\t\taria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n\t\t\t\taria-invalid={!!error}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\nFormControl.displayName = \"FormControl\";\n\nconst formMessageStyle = tv({\n\tbase: \"text-[0.8rem] font-medium text-destructive\"\n});\n\n/**\n * Сообщение об ошибке\n */\nconst FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst { error, formMessageId } = useFormField();\n\t\tconst body = error ? String(error?.message ?? \"\") : children;\n\n\t\tif (!body) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<p ref={ref} id={formMessageId} className={formMessageStyle({ className })} {...props}>\n\t\t\t\t{body}\n\t\t\t</p>\n\t\t);\n\t}\n);\nFormMessage.displayName = \"FormMessage\";\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormMessage, FormField as FormFieldControl };\n","import * as React from \"react\";\nimport {\n\tuseFormContext,\n\ttype FieldPath,\n\ttype FieldValues,\n\ttype ControllerRenderProps,\n\ttype UseFormStateReturn,\n\ttype ControllerFieldState,\n\tPath\n} from \"react-hook-form\";\nimport { FormFieldControl, FormItem, FormControl } from \"../../Form\";\nimport { Field, FieldLayout } from \"@/components/field/Field\";\nimport { tv } from \"tailwind-variants\";\n\nconst formFieldStyles = tv({\n\tslots: {\n\t\tlabel: \"w-44\"\n\t}\n});\n\nexport type FormFieldControlRenderer<TFieldValues extends FieldValues = FieldValues> = (props: {\n\tfield: ControllerRenderProps<TFieldValues, Path<TFieldValues>>;\n\tfieldState: ControllerFieldState;\n\tformState: UseFormStateReturn<TFieldValues>;\n\treadonly?: boolean;\n}) => React.ReactNode;\n\nexport interface FormFieldProps<\n\tTFieldValues extends FieldValues = FieldValues,\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> {\n\t/** Имя поля формы */\n\tname: TName;\n\t/** Заголовок поля (лейбл) */\n\ttitle: string;\n\t/** Описание поля */\n\tdescription?: string;\n\t/** Функция рендеринга контрола */\n\tcontrol: FormFieldControlRenderer<TFieldValues>;\n\t/** Является ли поле обязательным */\n\trequired?: boolean;\n\t/** Дополнительные классы */\n\tclassName?: string;\n\t/** Классы для лейбла */\n\tlabelClassName?: string;\n\t/** Поле только для чтения */\n\treadonly?: boolean;\n\t/** Вариант расположения элементов поля */\n\tlayout?: FieldLayout;\n}\n\n/**\n * Компонент FormField объединяет несколько компонентов формы в один блок\n * для упрощения создания консистентных форм.\n *\n * ### Варианты раскладки (layout):\n *\n * - **responsive** (по умолчанию): адаптивная раскладка с mobile-first подходом.\n * На мобильных устройствах - вертикальный лейаут, на десктопе (от lg breakpoint) - горизонтальный.\n *\n * - **horizontal**: принудительно горизонтальная раскладка на всех экранах.\n * Лейбл располагается слева от поля ввода.\n *\n * - **vertical**: принудительно вертикальная раскладка на всех экранах.\n * Лейбл располагается над полем ввода.\n *\n * Компонент обеспечивает согласованное расположение элементов формы,\n * включая лейбл, поле ввода, подсказку и сообщение об ошибке.\n *\n * @example\n * <FormField\n * name=\"username\"\n * title=\"Имя пользователя\"\n * description=\"Ваше публичное имя пользователя\"\n * required\n * control={({ field }) => (\n * <TextInput\n * placeholder=\"Введите имя пользователя\"\n * startIcon={<Icon icon={User} />}\n * {...field}\n * />\n * )}\n * />\n */\n\nexport function FormField<\n\tTFieldValues extends FieldValues = FieldValues,\n\tTName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n\tname,\n\ttitle,\n\tdescription,\n\tcontrol,\n\trequired,\n\tclassName,\n\tlabelClassName,\n\treadonly,\n\tlayout = \"responsive\"\n}: FormFieldProps<TFieldValues, TName>) {\n\tconst form = useFormContext<TFieldValues>();\n\tconst styles = formFieldStyles();\n\n\treturn (\n\t\t<FormFieldControl\n\t\t\tcontrol={form.control}\n\t\t\tname={name}\n\t\t\trender={({ field, fieldState, formState }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t<Field\n\t\t\t\t\t\t\ttitle={title}\n\t\t\t\t\t\t\tdescription={description}\n\t\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\t\terror={fieldState.error?.message}\n\t\t\t\t\t\t\tlabelClassName={styles.label({ className: labelClassName })}\n\t\t\t\t\t\t\tclassName={className}\n\t\t\t\t\t\t\treadonly={readonly}\n\t\t\t\t\t\t\tlayout={layout}\n\t\t\t\t\t\t\tcontrol={({ id, readonly }) => (\n\t\t\t\t\t\t\t\t<FormControl id={id}>{control({ field, fieldState, formState, readonly })}</FormControl>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FormItem>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst formStackStyles = tv({\n\tbase: \"space-y-5 lg:space-y-4\"\n});\n\n/** Оболочка для группы полей формы с внутренними отступами */\nexport const FormStack = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={formStackStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nFormStack.displayName = \"FormStack\";\n"],"names":["formStyle","tv","Form","className","asChild","props","jsx","Slot","FormProvider","FormFieldContext","React","FormField","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","id","formItemStyle","FormItem","ref","FormLabel","required","formItemId","FieldLabel","FormControl","error","formDescriptionId","formMessageId","formMessageStyle","FormMessage","children","body","formFieldStyles","name","title","description","control","labelClassName","readonly","layout","form","styles","FormFieldControl","field","Field","formStackStyles","FormStack"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconButton-uGJ3cQtk.js","sources":["../src/components/button/icon-button/IconButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\nimport { Icon } from \"@/components/icon/Icon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype IconButtonVariants = Pick<ButtonBaseVariants, \"size\">;\n\nconst iconButtonVariants = tv({\n\tslots: {\n\t\tcontainer: \"aspect-square\",\n\t\ticon: \"h-4 w-4\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: { container: \"p-1.5\", icon: \"h-3 w-3\" },\n\t\t\tsm: { container: \"p-2\", icon: \"h-3.5 w-3.5\" },\n\t\t\tmd: { container: \"p-2.5\" },\n\t\t\tlg: { container: \"p-3\" },\n\t\t\txl: { container: \"p-3\", icon: \"h-5 w-5\" }\n\t\t}\n\t} satisfies VariantsConfig<IconButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type IconButtonProps = ButtonBaseProps &\n\tIconButtonVariants & {\n\t\ticon: LucideIcon;\n\t\ticonClassName?: string;\n\t};\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<IconButtonProps>>(\n\t({ icon, size, className, iconClassName, ...props }, ref) => {\n\t\tconst { container, icon: iconClass } = iconButtonVariants({ size });\n\n\t\treturn (\n\t\t\t<ButtonBase className={container({ class: className })} size={size} ref={ref} {...props}>\n\t\t\t\t<Icon className={iconClass({ size, className: iconClassName })} icon={icon} />\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nIconButton.displayName = \"IconButton\";\n"],"names":["iconButtonVariants","tv","IconButton","React","icon","size","className","iconClassName","props","ref","container","iconClass","jsx","ButtonBase","Icon"],"mappings":";;;;;AASA,MAAMA,IAAqBC,EAAG;AAAA,EAC7B,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,WAAW,SAAS,MAAM,UAAU;AAAA,MAC1C,IAAI,EAAE,WAAW,OAAO,MAAM,cAAc;AAAA,MAC5C,IAAI,EAAE,WAAW,QAAQ;AAAA,MACzB,IAAI,EAAE,WAAW,MAAM;AAAA,MACvB,IAAI,EAAE,WAAW,OAAO,MAAM,UAAU;AAAA,IAAA;AAAA,EAE1C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAQYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,WAAAC,GAAW,eAAAC,GAAe,GAAGC,EAAM,GAAGC,MAAQ;AACtD,UAAA,EAAE,WAAAC,GAAW,MAAMC,MAAcX,EAAmB,EAAE,MAAAK,GAAM;AAGjE,WAAA,gBAAAO,EAACC,GAAW,EAAA,WAAWH,EAAU,EAAE,OAAOJ,GAAW,GAAG,MAAAD,GAAY,KAAAI,GAAW,GAAGD,GACjF,UAAC,gBAAAI,EAAAE,GAAA,EAAK,WAAWH,EAAU,EAAE,MAAAN,GAAM,WAAWE,EAAe,CAAA,GAAG,MAAAH,EAAA,CAAY,EAC7E,CAAA;AAAA,EAAA;AAGH;AAEAF,EAAW,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IconTooltip-RSxvnBgH.js","sources":["../src/components/icon-tooltip/IconTooltip.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Icon } from \"@/components/icon/Icon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip/Tooltip\";\n\nexport interface IconTooltipProps {\n\tcontent: React.ReactNode;\n\ticon: LucideIcon;\n\ticonSize?: \"sm\" | \"md\" | \"lg\";\n\ticonClassName?: string;\n\tcontentClassName?: string;\n}\n\nexport const IconTooltip = ({ content, icon, iconClassName, iconSize = \"sm\", contentClassName }: IconTooltipProps) => {\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger type=\"button\">\n\t\t\t\t\t<Icon size={iconSize} className={iconClassName} icon={icon} />\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent className={contentClassName}>{content}</TooltipContent>\n\t\t\t</Tooltip>\n\t\t</TooltipProvider>\n\t);\n};\n"],"names":["IconTooltip","content","icon","iconClassName","iconSize","contentClassName","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Icon","TooltipContent"],"mappings":";;;AAaa,MAAAA,IAAc,CAAC,EAAE,SAAAC,GAAS,MAAAC,GAAM,eAAAC,GAAe,UAAAC,IAAW,MAAM,kBAAAC,QAE3E,gBAAAC,EAACC,GACA,EAAA,UAAA,gBAAAC,EAACC,GACA,EAAA,UAAA;AAAA,EAAC,gBAAAH,EAAAI,GAAA,EAAe,MAAK,UACpB,UAAC,gBAAAJ,EAAAK,GAAA,EAAK,MAAMP,GAAU,WAAWD,GAAe,MAAAD,EAAA,CAAY,EAC7D,CAAA;AAAA,EACC,gBAAAI,EAAAM,GAAA,EAAe,WAAWP,GAAmB,UAAQJ,EAAA,CAAA;AAAA,EAAA,CACvD,EACD,CAAA;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputGroup-AVAtosX_.js","sources":["../src/components/input/input-group/InputGroup.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { inputBaseElementStyles } from \"../styles/inputBaseStyles\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { useCustomValidity } from \"@/hooks/useCustomValidity\";\nimport { IconButton } from \"@/components/button\";\nimport { LucideIcon } from \"lucide-react\";\nimport { ButtonBaseProps } from \"@/components/button/button-base/ButtonBase\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst inputGroupStyles = tv({\n\textend: inputBaseElementStyles,\n\tbase: [\n\t\t\"group/input-group flex h-10 px-0 py-0 lg:h-9 lg:py-0\",\n\t\t\"has-[input:focus]:border-secondary-border has-[input:focus]:bg-secondary-bg has-[input:focus]:shadow-focus\",\n\t\t\"has-[div[data-input-group-element='contenteditable']:focus]:border-secondary-border has-[div[data-input-group-element='contenteditable']:focus]:bg-secondary-bg has-[div[data-input-group-element='contenteditable']:focus]:shadow-focus\",\n\n\t\t// Стили для обычных read-only input'ов (исключая file)\n\t\t\"has-[input:read-only:not([type='file'])]:border-primary-border\",\n\t\t\"has-[input:read-only:not([type='file'])]:bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:shadow-none\",\n\t\t\"has-[input:read-only:not([type='file'])]:hover:bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:has-[input:focus]:!bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:has-[input:focus]:shadow-focus\",\n\n\t\t\"has-[input:disabled]:border-primary-border\",\n\t\t\"has-[input:disabled]:bg-secondary-bg-hover\",\n\t\t\"has-[input:disabled]:shadow-soft-sm\",\n\t\t\"has-[input:invalid]:border-status-error-secondary-border\",\n\t\t\"has-[input:invalid]:shadow-soft-base\",\n\t\t\"has-[input:invalid]:hover:border-status-error-primary-border\",\n\t\t\"has-[input:invalid]:has-[input:focus]:border-status-error-secondary-border\",\n\t\t\"has-[input:invalid]:has-[input:focus]:shadow-focus-error\",\n\t\t\"has-[input[aria-invalid=true]]:border-status-error-secondary-border\",\n\t\t\"has-[input[aria-invalid=true]]:shadow-soft-base\",\n\t\t\"has-[input[aria-invalid=true]]:hover:border-status-error-primary-border\",\n\t\t\"has-[input[aria-invalid=true]]:has-[input:focus]:border-status-error-secondary-border\",\n\t\t\"has-[input[aria-invalid=true]]:has-[input:focus]:shadow-focus-error\",\n\n\t\t// Стили для автозаполнения - применяем фон ко всей группе\n\t\t\"has-[input:-webkit-autofill]:bg-[hsl(var(--autofill-bg))]\",\n\t\t\"has-[input:-webkit-autofill]:has-[input:focus]:bg-[hsl(var(--autofill-bg))]\"\n\t]\n});\n\n/**\n * Контейнер для группировки инпутов с дополнительными элементами (текст, кнопки).\n * Позволяет создавать композиции из инпутов, текстовых блоков и кнопок.\n */\nconst InputGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = inputGroupStyles({ className });\n\n\t\treturn (\n\t\t\t<div ref={ref} className={styles} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nInputGroup.displayName = \"InputGroup\";\n\nconst inputGroupInputStyles = tv({\n\tbase: [\n\t\t\"min-w-5 flex-1 rounded-lg bg-transparent py-2.5 pl-3 lg:py-2\",\n\t\t\"outline-none placeholder:text-muted focus:outline-none\",\n\t\t// Градиентная маска для плавного обрезания текста слева\n\t\t\"[mask-image:linear-gradient(to_left,rgba(255,255,255,0),#fff_15%)]\",\n\t\t// Стили для автозаполнения - убираем фон у самого input'а\n\t\t\"[-webkit-autofill]:bg-transparent\",\n\t\t\"[-webkit-autofill]:shadow-none\"\n\t]\n});\n\nexport interface InputGroupInputProps extends React.ComponentProps<\"input\"> {\n\terror?: string;\n}\n\n/**\n * Инпут для использования в группе.\n */\nconst InputGroupInput = React.forwardRef<HTMLInputElement, InputGroupInputProps>(\n\t({ className, error, ...props }, ref) => {\n\t\tconst styles = inputGroupInputStyles({ className });\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst mergedRef = useMergeRefs(inputRef, ref);\n\n\t\tuseCustomValidity(inputRef, error);\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\tref={mergedRef}\n\t\t\t\tclassName={styles}\n\t\t\t\taria-invalid={!!error}\n\t\t\t\tdata-input-group-element=\"input\"\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupInput.displayName = \"InputGroup.Input\";\n\ntype InputGroupTextVariants = {\n\ttype?: \"primary\";\n};\n\nconst inputGroupTextStyles = tv({\n\tbase: [\n\t\t\"flex h-full items-center border-l border-secondary-border px-3 text-secondary-fg first:border-l-0\",\n\t\t// Правая граница, если следующий элемент НЕ InputGroupText\n\t\t\"[&[data-input-group-element='text']:has(+_:not([data-input-group-element='text']))]:border-r\"\n\t],\n\tvariants: {\n\t\ttype: {\n\t\t\tprimary: \"rounded-l-lg bg-secondary-bg-hover\"\n\t\t}\n\t} satisfies VariantsConfig<InputGroupTextVariants>\n});\n\ntype InputGroupTextProps = React.ComponentProps<\"div\"> & InputGroupTextVariants;\n\n/**\n * Текстовый элемент для отображения префикса или суффикса в группе инпутов.\n */\nconst InputGroupText = React.forwardRef<HTMLDivElement, InputGroupTextProps>(({ className, type, ...props }, ref) => {\n\tconst styles = inputGroupTextStyles({ className, type });\n\treturn <div ref={ref} className={styles} data-input-group-element=\"text\" {...props} />;\n});\n\nInputGroupText.displayName = \"InputGroup.Text\";\n\nconst inputGroupContentEditableStyles = tv({\n\tbase: [\"bg-transparent py-2.5 pl-3 lg:py-2\", \"outline-none focus:outline-none\"]\n});\n\nexport interface InputGroupContentEditableProps extends React.ComponentProps<\"div\"> {\n\terror?: string;\n}\n\n/**\n * Contenteditable элемент для использования в группе.\n */\nconst InputGroupContentEditable = React.forwardRef<HTMLDivElement, InputGroupContentEditableProps>(\n\t({ className, error, ...props }, ref) => {\n\t\tconst styles = inputGroupContentEditableStyles({ className });\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles}\n\t\t\t\tcontentEditable\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-invalid={!!error}\n\t\t\t\tdata-input-group-element=\"contenteditable\"\n\t\t\t\tsuppressContentEditableWarning={true}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupContentEditable.displayName = \"InputGroup.ContentEditable\";\n\nconst inputGroupButtonStyles = tv({\n\tbase: [\"aspect-auto h-full px-1.5 py-2.5 first:pl-2.5 last:pr-2.5 lg:py-2\"]\n});\n\ntype InputGroupButtonProps = ButtonBaseProps & {\n\ticon: LucideIcon;\n\ticonClassName?: string;\n};\n\nconst InputGroupButton = React.forwardRef<HTMLButtonElement, InputGroupButtonProps>(\n\t({ icon, className, ...props }, ref) => {\n\t\tconst styles = inputGroupButtonStyles({ className });\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\tref={ref}\n\t\t\t\ticon={icon}\n\t\t\t\tclassName={styles}\n\t\t\t\tvariant=\"text\"\n\t\t\t\tsize=\"md\"\n\t\t\t\tdata-input-group-element=\"button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupButton.displayName = \"InputGroup.Button\";\n\nexport { InputGroupText, InputGroupInput, InputGroup, InputGroupButton, InputGroupContentEditable };\n"],"names":["inputGroupStyles","tv","inputBaseElementStyles","InputGroup","React","className","children","props","ref","styles","inputGroupInputStyles","InputGroupInput","error","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","inputGroupTextStyles","InputGroupText","type","inputGroupContentEditableStyles","InputGroupContentEditable","inputGroupButtonStyles","InputGroupButton","icon","IconButton"],"mappings":";;;;;;AAUA,MAAMA,IAAmBC,EAAG;AAAA,EAC3B,QAAQC;AAAA,EACR,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAMKC,IAAaC,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC3C,UAAMC,IAAST,EAAiB,EAAE,WAAAK,GAAW;AAE7C,6BACE,OAAI,EAAA,KAAAG,GAAU,WAAWC,GAAS,GAAGF,GACpC,UAAAD,GACF;AAAA,EAAA;AAGH;AAEAH,EAAW,cAAc;AAEzB,MAAMO,IAAwBT,EAAG;AAAA,EAChC,MAAM;AAAA,IACL;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GASKU,IAAkBP,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAC,GAAW,OAAAO,GAAO,GAAGL,EAAA,GAASC,MAAQ;AACxC,UAAMC,IAASC,EAAsB,EAAE,WAAAL,GAAW,GAC5CQ,IAAWC,EAAyB,IAAI,GACxCC,IAAYC,EAAaH,GAAUL,CAAG;AAE5C,WAAAS,EAAkBJ,GAAUD,CAAK,GAGhC,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAKH;AAAA,QACL,WAAWN;AAAA,QACX,gBAAc,CAAC,CAACG;AAAA,QAChB,4BAAyB;AAAA,QACxB,GAAGL;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAI,EAAgB,cAAc;AAM9B,MAAMQ,IAAuBlB,EAAG;AAAA,EAC/B,MAAM;AAAA,IACL;AAAA;AAAA,IAEA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,SAAS;AAAA,IAAA;AAAA,EACV;AAEF,CAAC,GAOKmB,IAAiBhB,EAAM,WAAgD,CAAC,EAAE,WAAAC,GAAW,MAAAgB,GAAM,GAAGd,EAAM,GAAGC,MAAQ;AACpH,QAAMC,IAASU,EAAqB,EAAE,WAAAd,GAAW,MAAAgB,GAAM;AAChD,SAAA,gBAAAH,EAAC,SAAI,KAAAV,GAAU,WAAWC,GAAQ,4BAAyB,QAAQ,GAAGF,GAAO;AACrF,CAAC;AAEDa,EAAe,cAAc;AAE7B,MAAME,IAAkCrB,EAAG;AAAA,EAC1C,MAAM,CAAC,sCAAsC,iCAAiC;AAC/E,CAAC,GASKsB,IAA4BnB,EAAM;AAAA,EACvC,CAAC,EAAE,WAAAC,GAAW,OAAAO,GAAO,GAAGL,EAAA,GAASC,MAAQ;AACxC,UAAMC,IAASa,EAAgC,EAAE,WAAAjB,GAAW;AAG3D,WAAA,gBAAAa;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAAV;AAAA,QACA,WAAWC;AAAA,QACX,iBAAe;AAAA,QACf,MAAK;AAAA,QACL,gBAAc,CAAC,CAACG;AAAA,QAChB,4BAAyB;AAAA,QACzB,gCAAgC;AAAA,QAC/B,GAAGL;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAgB,EAA0B,cAAc;AAExC,MAAMC,IAAyBvB,EAAG;AAAA,EACjC,MAAM,CAAC,mEAAmE;AAC3E,CAAC,GAOKwB,IAAmBrB,EAAM;AAAA,EAC9B,CAAC,EAAE,MAAAsB,GAAM,WAAArB,GAAW,GAAGE,EAAA,GAASC,MAAQ;AACvC,UAAMC,IAASe,EAAuB,EAAE,WAAAnB,GAAW;AAElD,WAAA,gBAAAa;AAAA,MAACS;AAAA,MAAA;AAAA,QACA,KAAAnB;AAAA,QACA,MAAAkB;AAAA,QACA,WAAWjB;AAAA,QACX,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,4BAAyB;AAAA,QACzB,MAAK;AAAA,QACJ,GAAGF;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAkB,EAAiB,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputOTP-B2e1nfSO.js","sources":["../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/dot.js","../node_modules/.pnpm/input-otp@1.4.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/input-otp/dist/index.mjs","../src/components/input-otp/components/input-otp-slot/InputOTPSlot.tsx","../src/components/input-otp/components/input-otp-separator/InputOTPSeparator.tsx","../src/components/input-otp/components/input-otp-group/InputOTPGroup.tsx","../src/components/input-otp/InputOTP.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Dot = createLucideIcon(\"Dot\", [\n [\"circle\", { cx: \"12.1\", cy: \"12.1\", r: \"1\", key: \"18d7e5\" }]\n]);\n\nexport { Dot as default };\n//# sourceMappingURL=dot.js.map\n","var Bt=Object.defineProperty,At=Object.defineProperties;var kt=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var gt=Object.prototype.hasOwnProperty,Et=Object.prototype.propertyIsEnumerable;var vt=(r,s,e)=>s in r?Bt(r,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[s]=e,St=(r,s)=>{for(var e in s||(s={}))gt.call(s,e)&&vt(r,e,s[e]);if(Y)for(var e of Y(s))Et.call(s,e)&&vt(r,e,s[e]);return r},bt=(r,s)=>At(r,kt(s));var Pt=(r,s)=>{var e={};for(var u in r)gt.call(r,u)&&s.indexOf(u)<0&&(e[u]=r[u]);if(r!=null&&Y)for(var u of Y(r))s.indexOf(u)<0&&Et.call(r,u)&&(e[u]=r[u]);return e};import*as n from\"react\";function ht(r){let s=setTimeout(r,0),e=setTimeout(r,10),u=setTimeout(r,50);return[s,e,u]}import*as U from\"react\";function _t(r){let s=U.useRef();return U.useEffect(()=>{s.current=r}),s.current}import*as S from\"react\";var Ot=18,wt=40,Gt=`${wt}px`,xt=[\"[data-lastpass-icon-root]\",\"com-1password-button\",\"[data-dashlanecreated]\",'[style$=\"2147483647 !important;\"]'].join(\",\");function Tt({containerRef:r,inputRef:s,pushPasswordManagerStrategy:e,isFocused:u}){let[P,D]=S.useState(!1),[G,H]=S.useState(!1),[F,W]=S.useState(!1),Z=S.useMemo(()=>e===\"none\"?!1:(e===\"increase-width\"||e===\"experimental-no-flickering\")&&P&&G,[P,G,e]),T=S.useCallback(()=>{let f=r.current,h=s.current;if(!f||!h||F||e===\"none\")return;let a=f,B=a.getBoundingClientRect().left+a.offsetWidth,A=a.getBoundingClientRect().top+a.offsetHeight/2,z=B-Ot,q=A;document.querySelectorAll(xt).length===0&&document.elementFromPoint(z,q)===f||(D(!0),W(!0))},[r,s,F,e]);return S.useEffect(()=>{let f=r.current;if(!f||e===\"none\")return;function h(){let A=window.innerWidth-f.getBoundingClientRect().right;H(A>=wt)}h();let a=setInterval(h,1e3);return()=>{clearInterval(a)}},[r,e]),S.useEffect(()=>{let f=u||document.activeElement===s.current;if(e===\"none\"||!f)return;let h=setTimeout(T,0),a=setTimeout(T,2e3),B=setTimeout(T,5e3),A=setTimeout(()=>{W(!0)},6e3);return()=>{clearTimeout(h),clearTimeout(a),clearTimeout(B),clearTimeout(A)}},[s,u,e,T]),{hasPWMBadge:P,willPushPWMBadge:Z,PWM_BADGE_SPACE_WIDTH:Gt}}var jt=n.createContext({}),Lt=n.forwardRef((A,B)=>{var z=A,{value:r,onChange:s,maxLength:e,textAlign:u=\"left\",pattern:P,placeholder:D,inputMode:G=\"numeric\",onComplete:H,pushPasswordManagerStrategy:F=\"increase-width\",pasteTransformer:W,containerClassName:Z,noScriptCSSFallback:T=Nt,render:f,children:h}=z,a=Pt(z,[\"value\",\"onChange\",\"maxLength\",\"textAlign\",\"pattern\",\"placeholder\",\"inputMode\",\"onComplete\",\"pushPasswordManagerStrategy\",\"pasteTransformer\",\"containerClassName\",\"noScriptCSSFallback\",\"render\",\"children\"]);var X,lt,ut,dt,ft;let[q,nt]=n.useState(typeof a.defaultValue==\"string\"?a.defaultValue:\"\"),i=r!=null?r:q,I=_t(i),x=n.useCallback(t=>{s==null||s(t),nt(t)},[s]),m=n.useMemo(()=>P?typeof P==\"string\"?new RegExp(P):P:null,[P]),l=n.useRef(null),K=n.useRef(null),J=n.useRef({value:i,onChange:x,isIOS:typeof window!=\"undefined\"&&((lt=(X=window==null?void 0:window.CSS)==null?void 0:X.supports)==null?void 0:lt.call(X,\"-webkit-touch-callout\",\"none\"))}),V=n.useRef({prev:[(ut=l.current)==null?void 0:ut.selectionStart,(dt=l.current)==null?void 0:dt.selectionEnd,(ft=l.current)==null?void 0:ft.selectionDirection]});n.useImperativeHandle(B,()=>l.current,[]),n.useEffect(()=>{let t=l.current,o=K.current;if(!t||!o)return;J.current.value!==t.value&&J.current.onChange(t.value),V.current.prev=[t.selectionStart,t.selectionEnd,t.selectionDirection];function d(){if(document.activeElement!==t){L(null),N(null);return}let c=t.selectionStart,b=t.selectionEnd,mt=t.selectionDirection,v=t.maxLength,C=t.value,_=V.current.prev,g=-1,E=-1,w;if(C.length!==0&&c!==null&&b!==null){let Dt=c===b,Ht=c===C.length&&C.length<v;if(Dt&&!Ht){let y=c;if(y===0)g=0,E=1,w=\"forward\";else if(y===v)g=y-1,E=y,w=\"backward\";else if(v>1&&C.length>1){let et=0;if(_[0]!==null&&_[1]!==null){w=y<_[1]?\"backward\":\"forward\";let Wt=_[0]===_[1]&&_[0]<v;w===\"backward\"&&!Wt&&(et=-1)}g=et+y,E=et+y+1}}g!==-1&&E!==-1&&g!==E&&l.current.setSelectionRange(g,E,w)}let pt=g!==-1?g:c,Rt=E!==-1?E:b,yt=w!=null?w:mt;L(pt),N(Rt),V.current.prev=[pt,Rt,yt]}if(document.addEventListener(\"selectionchange\",d,{capture:!0}),d(),document.activeElement===t&&Q(!0),!document.getElementById(\"input-otp-style\")){let c=document.createElement(\"style\");if(c.id=\"input-otp-style\",document.head.appendChild(c),c.sheet){let b=\"background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;\";$(c.sheet,\"[data-input-otp]::selection { background: transparent !important; color: transparent !important; }\"),$(c.sheet,`[data-input-otp]:autofill { ${b} }`),$(c.sheet,`[data-input-otp]:-webkit-autofill { ${b} }`),$(c.sheet,\"@supports (-webkit-touch-callout: none) { [data-input-otp] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }\"),$(c.sheet,\"[data-input-otp] + * { pointer-events: all !important; }\")}}let R=()=>{o&&o.style.setProperty(\"--root-height\",`${t.clientHeight}px`)};R();let p=new ResizeObserver(R);return p.observe(t),()=>{document.removeEventListener(\"selectionchange\",d,{capture:!0}),p.disconnect()}},[]);let[ot,rt]=n.useState(!1),[j,Q]=n.useState(!1),[M,L]=n.useState(null),[k,N]=n.useState(null);n.useEffect(()=>{ht(()=>{var R,p,c,b;(R=l.current)==null||R.dispatchEvent(new Event(\"input\"));let t=(p=l.current)==null?void 0:p.selectionStart,o=(c=l.current)==null?void 0:c.selectionEnd,d=(b=l.current)==null?void 0:b.selectionDirection;t!==null&&o!==null&&(L(t),N(o),V.current.prev=[t,o,d])})},[i,j]),n.useEffect(()=>{I!==void 0&&i!==I&&I.length<e&&i.length===e&&(H==null||H(i))},[e,H,I,i]);let O=Tt({containerRef:K,inputRef:l,pushPasswordManagerStrategy:F,isFocused:j}),st=n.useCallback(t=>{let o=t.currentTarget.value.slice(0,e);if(o.length>0&&m&&!m.test(o)){t.preventDefault();return}typeof I==\"string\"&&o.length<I.length&&document.dispatchEvent(new Event(\"selectionchange\")),x(o)},[e,x,I,m]),at=n.useCallback(()=>{var t;if(l.current){let o=Math.min(l.current.value.length,e-1),d=l.current.value.length;(t=l.current)==null||t.setSelectionRange(o,d),L(o),N(d)}Q(!0)},[e]),ct=n.useCallback(t=>{var g,E;let o=l.current;if(!W&&(!J.current.isIOS||!t.clipboardData||!o))return;let d=t.clipboardData.getData(\"text/plain\"),R=W?W(d):d;t.preventDefault();let p=(g=l.current)==null?void 0:g.selectionStart,c=(E=l.current)==null?void 0:E.selectionEnd,v=(p!==c?i.slice(0,p)+R+i.slice(c):i.slice(0,p)+R+i.slice(p)).slice(0,e);if(v.length>0&&m&&!m.test(v))return;o.value=v,x(v);let C=Math.min(v.length,e-1),_=v.length;o.setSelectionRange(C,_),L(C),N(_)},[e,x,m,i]),It=n.useMemo(()=>({position:\"relative\",cursor:a.disabled?\"default\":\"text\",userSelect:\"none\",WebkitUserSelect:\"none\",pointerEvents:\"none\"}),[a.disabled]),it=n.useMemo(()=>({position:\"absolute\",inset:0,width:O.willPushPWMBadge?`calc(100% + ${O.PWM_BADGE_SPACE_WIDTH})`:\"100%\",clipPath:O.willPushPWMBadge?`inset(0 ${O.PWM_BADGE_SPACE_WIDTH} 0 0)`:void 0,height:\"100%\",display:\"flex\",textAlign:u,opacity:\"1\",color:\"transparent\",pointerEvents:\"all\",background:\"transparent\",caretColor:\"transparent\",border:\"0 solid transparent\",outline:\"0 solid transparent\",boxShadow:\"none\",lineHeight:\"1\",letterSpacing:\"-.5em\",fontSize:\"var(--root-height)\",fontFamily:\"monospace\",fontVariantNumeric:\"tabular-nums\"}),[O.PWM_BADGE_SPACE_WIDTH,O.willPushPWMBadge,u]),Mt=n.useMemo(()=>n.createElement(\"input\",bt(St({autoComplete:a.autoComplete||\"one-time-code\"},a),{\"data-input-otp\":!0,\"data-input-otp-placeholder-shown\":i.length===0||void 0,\"data-input-otp-mss\":M,\"data-input-otp-mse\":k,inputMode:G,pattern:m==null?void 0:m.source,\"aria-placeholder\":D,style:it,maxLength:e,value:i,ref:l,onPaste:t=>{var o;ct(t),(o=a.onPaste)==null||o.call(a,t)},onChange:st,onMouseOver:t=>{var o;rt(!0),(o=a.onMouseOver)==null||o.call(a,t)},onMouseLeave:t=>{var o;rt(!1),(o=a.onMouseLeave)==null||o.call(a,t)},onFocus:t=>{var o;at(),(o=a.onFocus)==null||o.call(a,t)},onBlur:t=>{var o;Q(!1),(o=a.onBlur)==null||o.call(a,t)}})),[st,at,ct,G,it,e,k,M,a,m==null?void 0:m.source,i]),tt=n.useMemo(()=>({slots:Array.from({length:e}).map((t,o)=>{var c;let d=j&&M!==null&&k!==null&&(M===k&&o===M||o>=M&&o<k),R=i[o]!==void 0?i[o]:null,p=i[0]!==void 0?null:(c=D==null?void 0:D[o])!=null?c:null;return{char:R,placeholderChar:p,isActive:d,hasFakeCaret:d&&R===null}}),isFocused:j,isHovering:!a.disabled&&ot}),[j,ot,e,k,M,a.disabled,i]),Ct=n.useMemo(()=>f?f(tt):n.createElement(jt.Provider,{value:tt},h),[h,tt,f]);return n.createElement(n.Fragment,null,T!==null&&n.createElement(\"noscript\",null,n.createElement(\"style\",null,T)),n.createElement(\"div\",{ref:K,\"data-input-otp-container\":!0,style:It,className:Z},Ct,n.createElement(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\"}},Mt)))});Lt.displayName=\"Input\";function $(r,s){try{r.insertRule(s)}catch(e){console.error(\"input-otp could not insert CSS rule:\",s)}}var Nt=`\n[data-input-otp] {\n --nojs-bg: white !important;\n --nojs-fg: black !important;\n\n background-color: var(--nojs-bg) !important;\n color: var(--nojs-fg) !important;\n caret-color: var(--nojs-fg) !important;\n letter-spacing: .25em !important;\n text-align: center !important;\n border: 1px solid var(--nojs-fg) !important;\n border-radius: 4px !important;\n width: 100% !important;\n}\n@media (prefers-color-scheme: dark) {\n [data-input-otp] {\n --nojs-bg: black !important;\n --nojs-fg: white !important;\n }\n}`;var Kt=\"^\\\\d+$\",Jt=\"^[a-zA-Z]+$\",Qt=\"^[a-zA-Z0-9]+$\";export{Lt as OTPInput,jt as OTPInputContext,Jt as REGEXP_ONLY_CHARS,Kt as REGEXP_ONLY_DIGITS,Qt as REGEXP_ONLY_DIGITS_AND_CHARS};\n//# sourceMappingURL=index.mjs.map","import { OTPInputContext } from \"input-otp\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst inputOTPSlotStyles = tv({\n\tslots: {\n\t\tcontainer:\n\t\t\t\"relative flex h-10 w-10 items-center justify-center border-y border-r border-secondary-border bg-secondary-bg text-sm shadow-soft-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md\",\n\t\tcaretWrapper: \"pointer-events-none absolute inset-0 flex items-center justify-center\",\n\t\tcaret: \"animate-caret-blink h-4 w-px bg-foreground duration-1000\"\n\t},\n\tvariants: {\n\t\tisActive: {\n\t\t\ttrue: {\n\t\t\t\tcontainer: \"z-10 !shadow-focus\"\n\t\t\t}\n\t\t}\n\t}\n});\n\nexport const InputOTPSlot = React.forwardRef<\n\tReact.ElementRef<\"div\">,\n\tReact.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n\tconst inputOTPContext = React.useContext(OTPInputContext);\n\tconst { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\tconst styles = inputOTPSlotStyles();\n\n\treturn (\n\t\t<div ref={ref} className={styles.container({ isActive, className })} {...props}>\n\t\t\t{char}\n\t\t\t{hasFakeCaret && (\n\t\t\t\t<div className={styles.caretWrapper()}>\n\t\t\t\t\t<div className={styles.caret()} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n","import { Dot } from \"lucide-react\";\nimport React from \"react\";\n\nexport const InputOTPSeparator = React.forwardRef<React.ElementRef<\"div\">, React.ComponentPropsWithoutRef<\"div\">>(\n\t({ ...props }, ref) => (\n\t\t<div ref={ref} role=\"separator\" {...props}>\n\t\t\t<Dot />\n\t\t</div>\n\t)\n);\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst inputOTPGroupStyles = tv({\n\tbase: \"flex items-center\"\n});\n\nexport const InputOTPGroup = React.forwardRef<React.ElementRef<\"div\">, React.ComponentPropsWithoutRef<\"div\">>(\n\t({ className, ...props }, ref) => <div ref={ref} className={inputOTPGroupStyles({ className })} {...props} />\n);\n\nInputOTPGroup.displayName = \"InputOTPGroup\";\n","import * as React from \"react\";\nimport { OTPInput } from \"input-otp\";\nimport { tv } from \"tailwind-variants\";\n\nconst inputOTPStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n\t\tinput: \"disabled:cursor-not-allowed\"\n\t}\n});\n\nexport const InputOTP = React.forwardRef<\n\tReact.ElementRef<typeof OTPInput>,\n\tReact.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => {\n\tconst styles = inputOTPStyles();\n\n\treturn (\n\t\t<OTPInput\n\t\t\tref={ref}\n\t\t\tcontainerClassName={styles.container({ className: containerClassName })}\n\t\t\tclassName={styles.input({ className })}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nInputOTP.displayName = \"InputOTP\";\n"],"names":["Dot","createLucideIcon","Bt","At","kt","Y","gt","Et","vt","r","s","e","St","bt","Pt","u","ht","_t","U","Ot","wt","Gt","xt","Tt","P","D","S","G","H","F","W","Z","T","f","h","a","B","z","q","A","jt","n","Lt","Nt","X","lt","ut","dt","ft","nt","i","I","x","t","m","l","K","J","V","o","L","N","c","b","mt","v","C","_","g","E","w","Dt","Ht","y","et","Wt","pt","Rt","yt","Q","$","R","p","ot","rt","j","M","k","d","O","st","at","ct","It","it","Mt","tt","Ct","inputOTPSlotStyles","tv","InputOTPSlot","React","index","className","props","ref","inputOTPContext","OTPInputContext","char","hasFakeCaret","isActive","styles","jsxs","jsx","InputOTPSeparator","inputOTPGroupStyles","InputOTPGroup","inputOTPStyles","InputOTP","containerClassName","OTPInput"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuItem-d19Ty84F.js","sources":["../src/components/menu-item/MenuItem.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface MenuItemVariants {\n\tdisabled?: boolean;\n}\n\n/**\n * Бесцветная анатомия пункта меню: раскладка, состояния, типографика — без единого\n * класса поверхности (фон/бордер/радиус/тень/цвет текста). Используется как общая\n * основа для самостоятельных поверхностей (например, стеклянной), чтобы темам нечего\n * было перебивать друг у друга.\n */\nexport const MENU_ITEM_ANATOMY = [\n\t\"group/menu-item relative flex cursor-pointer select-none items-center gap-2 p-2 py-1.5 text-sm\",\n\t\"transition-colors focus:outline-none\",\n\t\"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\"\n];\n\nconst baseMenuItemBase = [\n\t\"group/menu-item relative flex cursor-pointer select-none items-center gap-2 rounded-sm bg-secondary-bg p-2 py-1.5 text-sm text-primary-fg\",\n\t// Если есть дочерний элемент с data-menu-item-action, то при наведении на него, пункт меню не нужно подсвечивать\n\t\"[&:has([data-menu-item-action]:hover)]:bg-secondary-bg\",\n\t\"transition-colors hover:bg-secondary-bg-hover focus:bg-secondary-bg-hover focus:outline-none\",\n\t\"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\"\n];\n\nconst baseMenuItemVariants = {\n\tdisabled: {\n\t\ttrue: \"pointer-events-none opacity-50\"\n\t}\n} satisfies VariantsConfig<MenuItemVariants>;\n\nexport const menuItemStyles = tv({\n\tbase: baseMenuItemBase,\n\tvariants: {\n\t\t...baseMenuItemVariants,\n\t\ttheme: {\n\t\t\tinverse:\n\t\t\t\t\"bg-inverse-primary-bg text-inverse-primary-fg hover:bg-inverse-hover focus:bg-inverse-hover data-[selected=true]:bg-inverse-hover data-[selected=true]:text-inverse-primary-fg [&:has([data-menu-item-action]:hover)]:bg-inverse-primary-bg\"\n\t\t}\n\t} satisfies VariantsConfig<MenuItemVariants> & { theme: { inverse: string } }\n});\n\nexport type MenuItemProps = React.HTMLAttributes<HTMLDivElement> & MenuItemVariants;\n\nexport const MenuItem = React.forwardRef<HTMLDivElement, PropsWithChildren<MenuItemProps>>(\n\t({ className, children, disabled, ...props }, ref) => {\n\t\tconst { variant } = useComponentVariant();\n\t\tconst theme = narrowVariant(variant, [\"inverse\"]);\n\n\t\treturn (\n\t\t\t<div ref={ref} className={menuItemStyles({ className, disabled, theme })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nMenuItem.displayName = \"MenuItem\";\n"],"names":["MENU_ITEM_ANATOMY","baseMenuItemBase","baseMenuItemVariants","menuItemStyles","tv","MenuItem","React","className","children","disabled","props","ref","variant","useComponentVariant","theme","narrowVariant","jsx"],"mappings":";;;;AAeO,MAAMA,IAAoB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AACD,GAEMC,IAAmB;AAAA,EACxB;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AACD,GAEMC,IAAuB;AAAA,EAC5B,UAAU;AAAA,IACT,MAAM;AAAA,EAAA;AAER,GAEaC,IAAiBC,EAAG;AAAA,EAChC,MAAMH;AAAA,EACN,UAAU;AAAA,IACT,GAAGC;AAAA,IACH,OAAO;AAAA,MACN,SACC;AAAA,IAAA;AAAA,EACF;AAEF,CAAC,GAIYG,IAAWC,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,UAAAC,GAAU,GAAGC,KAASC,MAAQ;AAC/C,UAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAoB,GAClCC,IAAQC,EAAcH,GAAS,CAAC,SAAS,CAAC;AAEhD,WACE,gBAAAI,EAAA,OAAA,EAAI,KAAAL,GAAU,WAAWR,EAAe,EAAE,WAAAI,GAAW,UAAAE,GAAU,OAAAK,EAAO,CAAA,GAAI,GAAGJ,GAC5E,UAAAF,EACF,CAAA;AAAA,EAAA;AAGH;AAEAH,EAAS,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Overlay-CVt011mY.js","sources":["../src/components/overlay/Overlay.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface OverlayVariants {\n\tblur?: boolean;\n\ttype?: \"default\" | \"gradient\" | \"dimmed\" | \"transparent\";\n}\n\nexport const overlayStyles = tv({\n\tbase: \"fixed inset-0 z-50 h-full w-full data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n\tvariants: {\n\t\tblur: {\n\t\t\ttrue: \"backdrop-blur-sm\"\n\t\t},\n\t\ttype: {\n\t\t\tdefault: \"bg-alpha-high-20 dark:bg-alpha-20\",\n\t\t\tgradient: \"bg-gradient-to-b from-alpha-high-50 to-alpha-high-20 dark:from-alpha-50 dark:to-alpha-20\",\n\t\t\tdimmed: \"bg-alpha-high-80 dark:bg-alpha-80\",\n\t\t\ttransparent: \"bg-transparent\"\n\t\t}\n\t} satisfies VariantsConfig<OverlayVariants>,\n\tdefaultVariants: {\n\t\ttype: \"default\"\n\t}\n});\n\nexport type OverlayProps = OverlayVariants & {\n\tclassName?: string;\n};\n\nexport const Overlay = React.forwardRef<HTMLDivElement, PropsWithChildren<OverlayProps>>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={overlayStyles({ className, ...props })}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nOverlay.displayName = \"Overlay\";\n"],"names":["overlayStyles","tv","Overlay","React","className","children","props","ref","jsx"],"mappings":";;;AASO,MAAMA,IAAgBC,EAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,aAAa;AAAA,IAAA;AAAA,EAEf;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAMYC,IAAUC,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAElC,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWP,EAAc,EAAE,WAAAI,GAAW,GAAGE,GAAO,GAC7D,UAAAD,EACF,CAAA;AAGH;AAEAH,EAAQ,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Popover-KjZXxxl3.js","sources":["../node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@18.3.6_@types+react@18.3.20__@types+rea_3205396e68ca917639ebdf7a5c8fe165/node_modules/@radix-ui/react-popover/dist/index.mjs","../src/components/popover/Popover.tsx"],"sourcesContent":["\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { tv } from \"tailwind-variants\";\nimport { useComponentVariant } from \"@/providers/component-variant-context\";\nimport { usePortalContainer } from \"../portal-container\";\nimport { TriggerButton } from \"../button\";\nimport type { TriggerButtonProps } from \"../button/trigger-button/TriggerButton\";\n\nconst POPOVER_ANATOMY = [\n\t\"z-50 w-72 outline-none\",\n\t\"origin-[--radix-popover-content-transform-origin]\",\n\t\"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n\t\"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n\t\"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n\t\"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n];\n\nconst popoverStyles = tv({\n\tbase: [\n\t\t...POPOVER_ANATOMY,\n\t\t\"rounded-lg border border-secondary-border bg-secondary-bg p-4 text-popover-foreground shadow-soft-md\"\n\t]\n});\n\nconst glassPopoverStyles = tv({\n\tbase: [\n\t\t...POPOVER_ANATOMY,\n\t\t\"backdrop-glass-regular rounded-2xl bg-alpha-40 p-2 text-popover-foreground shadow-glass-md\"\n\t]\n});\n\ntype PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n\t/**\n\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\n\t * для поиска PortalContainer\n\t */\n\tportalContainer?: HTMLElement;\n};\n\n/**\n * Корневой компонент Popover, который оборачивает всю функциональность всплывающего окна.\n * Построен на основе Radix UI Popover primitive.\n */\nconst Popover = PopoverPrimitive.Root;\n\n/**\n * Элемент-триггер, который открывает всплывающее окно при клике.\n */\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\n/**\n * Элемент-якорь, относительно которого позиционируется всплывающее окно.\n */\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\n/**\n * Компонент содержимого всплывающего окна.\n */\nconst PopoverContent = React.forwardRef<React.ElementRef<typeof PopoverPrimitive.Content>, PopoverContentProps>(\n\t({ className, align = \"center\", sideOffset = 4, portalContainer, ...props }, ref) => {\n\t\tconst { variant } = useComponentVariant();\n\t\tconst container = usePortalContainer(portalContainer);\n\t\tconst contentClassName = variant === \"glass\" ? glassPopoverStyles({ className }) : popoverStyles({ className });\n\t\treturn (\n\t\t\t<PopoverPrimitive.Portal container={container}>\n\t\t\t\t<PopoverPrimitive.Content\n\t\t\t\t\t// Фикс скроллинга внутри Popover когда он находится в Dialog\n\t\t\t\t\t// RemoveScroll в Dialog блокирует прокрутку body, но может блокировать и вложенные элементы\n\t\t\t\t\t// stopPropagation предотвращает всплытие событий скроллинга к заблокированному body\n\t\t\t\t\t// https://github.com/radix-ui/primitives/issues/1159\n\t\t\t\t\tonWheel={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}}\n\t\t\t\t\tonTouchMove={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}}\n\t\t\t\t\tref={ref}\n\t\t\t\t\talign={align}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t\tclassName={contentClassName}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</PopoverPrimitive.Portal>\n\t\t);\n\t}\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\n/**\n * Компонент-обертка для использования TriggerButton в качестве триггера поповера\n */\nconst PopoverTriggerButton = React.forwardRef<\n\tReact.ElementRef<typeof PopoverTrigger>,\n\tReact.ComponentPropsWithoutRef<typeof PopoverTrigger> & Omit<TriggerButtonProps, \"dataState\">\n>(({ children, ...props }, ref) => {\n\treturn (\n\t\t<PopoverTrigger asChild ref={ref}>\n\t\t\t<TriggerButton {...props}>{children}</TriggerButton>\n\t\t</PopoverTrigger>\n\t);\n});\n\nPopoverTriggerButton.displayName = \"PopoverTriggerButton\";\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverTriggerButton };\n"],"names":["POPOVER_NAME","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","hasCustomAnchor","setHasCustomAnchor","open","setOpen","useControllableState","jsx","PopperPrimitive.Root","useId","prevOpen","ANCHOR_NAME","PopoverAnchor","forwardedRef","anchorProps","context","onCustomAnchorAdd","onCustomAnchorRemove","PopperPrimitive.Anchor","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","getState","composeEventHandlers","PORTAL_NAME","PortalProvider","usePortalContext","PopoverPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","PopoverContent","portalContext","contentProps","PopoverContentModal","PopoverContentNonModal","Slot","createSlot","contentRef","composedRefs","isRightClickOutsideRef","content","hideOthers","RemoveScroll","PopoverContentImpl","event","originalEvent","ctrlLeftClick","isRightClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","target","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","useFocusGuards","FocusScope","DismissableLayer","PopperPrimitive.Content","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","PopperPrimitive.Arrow","Root2","Anchor2","Trigger","Portal","Content2","POPOVER_ANATOMY","popoverStyles","tv","glassPopoverStyles","PopoverPrimitive.Root","PopoverPrimitive.Trigger","PopoverPrimitive.Anchor","className","align","sideOffset","portalContainer","ref","variant","useComponentVariant","usePortalContainer","contentClassName","PopoverPrimitive.Portal","PopoverPrimitive.Content","e","PopoverTriggerButton","TriggerButton"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RichButton-B1wjK7Bk.js","sources":["../src/components/button/rich-button/RichButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { ButtonBase, ButtonBaseProps } from \"../button-base/ButtonBase\";\nimport { tv } from \"tailwind-variants\";\nimport { LucideIcon } from \"lucide-react\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { Description } from \"@/components/description\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface RichButtonVariants {\n\tsize?: \"sm\" | \"lg\";\n}\n\nexport const richButtonStyles = tv({\n\tslots: {\n\t\tbase: \"w-full justify-start\",\n\t\twrapper: \"flex flex-col items-start\",\n\t\tdescription: \"\",\n\t\ttext: \"font-semibold\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tbase: \"h-12 gap-2 rounded-xl px-2 py-1.5\",\n\t\t\t\tdescription: \"text-xs\",\n\t\t\t\ttext: \"text-sm\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\tbase: \"h-[4.5rem] gap-3 rounded-2xl p-3\",\n\t\t\t\twrapper: \"gap-1\",\n\t\t\t\tdescription: \"text-sm\",\n\t\t\t\ttext: \"text-base\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<RichButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"sm\"\n\t}\n});\n\nexport type RichButtonProps = ButtonBaseProps &\n\tRichButtonVariants & {\n\t\ttitle: React.ReactNode;\n\t\tdescription: React.ReactNode;\n\t\ticon: LucideIcon;\n\t};\n\nexport const RichButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<RichButtonProps>>(\n\t({ icon, size, title, description, className, ...props }, ref) => {\n\t\tconst styles = richButtonStyles({ size });\n\t\tconst iconSize = size === \"lg\" ? \"2xl\" : \"md\";\n\n\t\treturn (\n\t\t\t<ButtonBase variant=\"outline\" className={styles.base({ class: className })} ref={ref} {...props}>\n\t\t\t\t<FeatureIcon size={iconSize} icon={icon} className=\"bg-status-neutral-fg\" />\n\n\t\t\t\t<div className={styles.wrapper()}>\n\t\t\t\t\t<span className={styles.text()}>{title}</span>\n\t\t\t\t\t<Description className={styles.description()}>{description}</Description>\n\t\t\t\t</div>\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nRichButton.displayName = \"RichButton\";\n"],"names":["richButtonStyles","tv","RichButton","React","icon","size","title","description","className","props","ref","styles","iconSize","jsxs","ButtonBase","jsx","FeatureIcon","Description"],"mappings":";;;;;;AAYO,MAAMA,IAAmBC,EAAG;AAAA,EAClC,OAAO;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,QACH,MAAM;AAAA,QACN,aAAa;AAAA,QACb,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,EAEF;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GASYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,OAAAC,GAAO,aAAAC,GAAa,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACjE,UAAMC,IAASX,EAAiB,EAAE,MAAAK,GAAM,GAClCO,IAAWP,MAAS,OAAO,QAAQ;AAEzC,WACE,gBAAAQ,EAAAC,GAAA,EAAW,SAAQ,WAAU,WAAWH,EAAO,KAAK,EAAE,OAAOH,EAAW,CAAA,GAAG,KAAAE,GAAW,GAAGD,GACzF,UAAA;AAAA,MAAA,gBAAAM,EAACC,GAAY,EAAA,MAAMJ,GAAU,MAAAR,GAAY,WAAU,wBAAuB;AAAA,MAEzE,gBAAAS,EAAA,OAAA,EAAI,WAAWF,EAAO,QACtB,GAAA,UAAA;AAAA,QAAA,gBAAAI,EAAC,QAAK,EAAA,WAAWJ,EAAO,QAAS,UAAML,GAAA;AAAA,0BACtCW,GAAY,EAAA,WAAWN,EAAO,eAAgB,UAAYJ,EAAA,CAAA;AAAA,MAAA,EAC5D,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAGH;AAEAL,EAAW,cAAc;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchSelectTag-CA7Ie3Nx.js","sources":["../src/hooks/useControllableState.ts","../src/components/search-select/components/SearchSelectTag.tsx"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\ntype UseControllableStateParams<T> = {\n\t/** Controlled значение */\n\tvalue?: T;\n\t/** Значение по умолчанию для uncontrolled режима */\n\tdefaultValue?: T;\n\t/** Callback при изменении значения */\n\tonChange?: (value: T) => void;\n};\n\n/**\n * Универсальный хук для управления controlled/uncontrolled состоянием.\n */\nexport function useControllableState<T>({ value, defaultValue, onChange }: UseControllableStateParams<T>) {\n\tconst [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n\n\tconst isControlled = value !== undefined;\n\tconst actualValue = isControlled ? value : uncontrolledValue;\n\n\tconst setValue = useCallback(\n\t\t(nextValue: T | ((prevValue: T) => T)) => {\n\t\t\tconst resolvedValue =\n\t\t\t\ttypeof nextValue === \"function\" ? (nextValue as (prevValue: T) => T)(actualValue as T) : nextValue;\n\n\t\t\tif (!isControlled) {\n\t\t\t\tsetUncontrolledValue(resolvedValue);\n\t\t\t}\n\n\t\t\tonChange?.(resolvedValue);\n\t\t},\n\t\t[actualValue, isControlled, onChange]\n\t);\n\n\treturn [actualValue, setValue] as const;\n}\n","import { TagButton, TagClose, TagDivider, TagWrapper } from \"@/components/tag/Tag\";\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport { PropsWithChildren, useMemo } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst searchSelectTagStyles = tv({\n\tbase: \"rounded-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\n\tvariants: {\n\t\tselected: {\n\t\t\ttrue: \"group-focus-within/search-select-trigger:shadow-focus\"\n\t\t}\n\t}\n});\n\nexport interface SearchSelectTagProps {\n\tonLabelClick: (e: React.MouseEvent<HTMLElement>) => void;\n\tonClose: (e: React.MouseEvent<HTMLElement>) => void;\n\tonKeyDown?: (e: React.KeyboardEvent<HTMLDivElement>) => void;\n\treadonly?: boolean;\n\tisFocused?: boolean;\n\ttabIndex?: number;\n}\n\nexport const SearchSelectTag = (props: PropsWithChildren<SearchSelectTagProps>) => {\n\tconst {\n\t\tchildren,\n\t\tonLabelClick,\n\t\tonClose,\n\t\tonKeyDown,\n\t\treadonly = false,\n\t\tisFocused: selected = false,\n\t\ttabIndex\n\t} = props;\n\tconst hasClose = Boolean(onClose);\n\tconst isMobile = useIsMobile();\n\tconst size = useMemo(() => (isMobile ? \"lg\" : \"md\"), [isMobile]);\n\tconst styles = searchSelectTagStyles({ selected });\n\n\treturn (\n\t\t<TagWrapper size={size} className={styles} tabIndex={tabIndex} onKeyDown={onKeyDown}>\n\t\t\t<TagButton\n\t\t\t\tclassName=\"!shadow-none\"\n\t\t\t\tposition={hasClose && !readonly ? \"left\" : undefined}\n\t\t\t\tsize={size}\n\t\t\t\tonClick={onLabelClick}\n\t\t\t\tasChild\n\t\t\t>\n\t\t\t\t<span>{children}</span>\n\t\t\t</TagButton>\n\n\t\t\t{!readonly && (\n\t\t\t\t<>\n\t\t\t\t\t<TagDivider />\n\t\t\t\t\t<TagClose className=\"!shadow-none\" size={size} onClick={onClose} tag=\"span\" />\n\t\t\t\t</>\n\t\t\t)}\n\t\t</TagWrapper>\n\t);\n};\n\nSearchSelectTag.displayName = \"SearchSelectTag\";\n"],"names":["useControllableState","value","defaultValue","onChange","uncontrolledValue","setUncontrolledValue","useState","isControlled","actualValue","setValue","useCallback","nextValue","resolvedValue","searchSelectTagStyles","tv","SearchSelectTag","props","children","onLabelClick","onClose","onKeyDown","readonly","selected","tabIndex","hasClose","isMobile","useIsMobile","size","useMemo","styles","TagWrapper","jsx","TagButton","jsxs","Fragment","TagDivider","TagClose"],"mappings":";;;;;AAcO,SAASA,EAAwB,EAAE,OAAAC,GAAO,cAAAC,GAAc,UAAAC,KAA2C;AACzG,QAAM,CAACC,GAAmBC,CAAoB,IAAIC,EAASJ,CAAY,GAEjEK,IAAeN,MAAU,QACzBO,IAAcD,IAAeN,IAAQG,GAErCK,IAAWC;AAAA,IAChB,CAACC,MAAyC;AACzC,YAAMC,IACL,OAAOD,KAAc,aAAcA,EAAkCH,CAAgB,IAAIG;AAE1F,MAAKJ,KACJF,EAAqBO,CAAa,GAGnCT,IAAWS,CAAa;AAAA,IACzB;AAAA,IACA,CAACJ,GAAaD,GAAcJ,CAAQ;AAAA,EACrC;AAEO,SAAA,CAACK,GAAaC,CAAQ;AAC9B;AC9BA,MAAMI,IAAwBC,EAAG;AAAA,EAChC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,UAAU;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAWYC,IAAkB,CAACC,MAAmD;AAC5E,QAAA;AAAA,IACL,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAWC,IAAW;AAAA,IACtB,UAAAC;AAAA,EAAA,IACGP,GACEQ,IAAW,EAAQL,GACnBM,IAAWC,EAAY,GACvBC,IAAOC,EAAQ,MAAOH,IAAW,OAAO,MAAO,CAACA,CAAQ,CAAC,GACzDI,IAAShB,EAAsB,EAAE,UAAAS,GAAU;AAEjD,2BACEQ,GAAW,EAAA,MAAAH,GAAY,WAAWE,GAAQ,UAAAN,GAAoB,WAAAH,GAC9D,UAAA;AAAA,IAAA,gBAAAW;AAAA,MAACC;AAAA,MAAA;AAAA,QACA,WAAU;AAAA,QACV,UAAUR,KAAY,CAACH,IAAW,SAAS;AAAA,QAC3C,MAAAM;AAAA,QACA,SAAST;AAAA,QACT,SAAO;AAAA,QAEP,UAAA,gBAAAa,EAAC,UAAM,UAAAd,EAAS,CAAA;AAAA,MAAA;AAAA,IACjB;AAAA,IAEC,CAACI,KAEA,gBAAAY,EAAAC,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAW,EAAA;AAAA,MACZ,gBAAAJ,EAACK,KAAS,WAAU,gBAAe,MAAAT,GAAY,SAASR,GAAS,KAAI,OAAO,CAAA;AAAA,IAAA,EAC7E,CAAA;AAAA,EAAA,GAEF;AAEF;AAEAJ,EAAgB,cAAc;"}