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.
- package/README.md +36 -36
- package/dist/AlertContext-CxjW1LVL.js.map +1 -1
- package/dist/AlertIcon-BphnEYvV.js.map +1 -1
- package/dist/{Button-BZ3ON1Tj.js → Button-_qdP4hSf.js} +2 -2
- package/dist/Button-_qdP4hSf.js.map +1 -0
- package/dist/{ButtonBase-jgu7EolU.js → ButtonBase-CbWrYcx-.js} +2 -2
- package/dist/ButtonBase-CbWrYcx-.js.map +1 -0
- package/dist/{CheckboxField-limFbMk2.js → CheckboxField-xDqHgXHh.js} +32 -32
- package/dist/CheckboxField-xDqHgXHh.js.map +1 -0
- package/dist/Combination-DeIugdgY.js.map +1 -1
- package/dist/{Command-B7ZRyW8w.js → Command-WsAKNQrY.js} +8 -8
- package/dist/Command-WsAKNQrY.js.map +1 -0
- package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
- package/dist/Description-BTPMlTT-.js.map +1 -1
- package/dist/{Dialog-CdnsGyJD.js → Dialog-i_Y-phdM.js} +42 -43
- package/dist/Dialog-i_Y-phdM.js.map +1 -0
- package/dist/Divider-DPW5ZhZ8.js.map +1 -1
- package/dist/EmptyState-DRKjscH-.js.map +1 -1
- package/dist/ErrorState-B26k67-z.js.map +1 -1
- package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
- package/dist/{Field-CP_-li9L.js → Field-BcwUtgGr.js} +2 -2
- package/dist/Field-BcwUtgGr.js.map +1 -0
- package/dist/{FieldLabel-eyKmeWRn.js → FieldLabel-DYu1AcGH.js} +2 -2
- package/dist/FieldLabel-DYu1AcGH.js.map +1 -0
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/{FormFooterTemplate-DdNnLu2-.js → FormFooterTemplate-CHlas_Pp.js} +5 -5
- package/dist/FormFooterTemplate-CHlas_Pp.js.map +1 -0
- package/dist/{FormHeader--F6b2aRk.js → FormHeader-PE63OqG9.js} +3 -3
- package/dist/FormHeader-PE63OqG9.js.map +1 -0
- package/dist/FormStack-DfoaOry7.js +1205 -0
- package/dist/FormStack-DfoaOry7.js.map +1 -0
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/{IconButton-uGJ3cQtk.js → IconButton-DAg1oMwz.js} +2 -2
- package/dist/IconButton-DAg1oMwz.js.map +1 -0
- package/dist/{IconTooltip-RSxvnBgH.js → IconTooltip-R6_6_f40.js} +2 -2
- package/dist/IconTooltip-R6_6_f40.js.map +1 -0
- package/dist/Indicator-AqxHWPA9.js.map +1 -1
- package/dist/{InputGroup-AVAtosX_.js → InputGroup-CW55G5nE.js} +5 -5
- package/dist/InputGroup-CW55G5nE.js.map +1 -0
- package/dist/{InputOTP-B2e1nfSO.js → InputOTP-DkVh6bBz.js} +2 -2
- package/dist/InputOTP-DkVh6bBz.js.map +1 -0
- package/dist/Loader-BpHiL6W-.js.map +1 -1
- package/dist/{MenuItem-d19Ty84F.js → MenuItem-C51uFz3V.js} +11 -11
- package/dist/MenuItem-C51uFz3V.js.map +1 -0
- package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
- package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
- package/dist/{Overlay-CVt011mY.js → Overlay-E0UvxzIc.js} +2 -2
- package/dist/Overlay-E0UvxzIc.js.map +1 -0
- package/dist/{Popover-KjZXxxl3.js → Popover-XrJa7lyb.js} +51 -52
- package/dist/Popover-XrJa7lyb.js.map +1 -0
- package/dist/{RichButton-B1wjK7Bk.js → RichButton-Bt0yUShU.js} +2 -2
- package/dist/RichButton-Bt0yUShU.js.map +1 -0
- package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
- package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
- package/dist/{SearchSelectTag-CA7Ie3Nx.js → SearchSelectTag-Dp5_OvZp.js} +16 -16
- package/dist/SearchSelectTag-Dp5_OvZp.js.map +1 -0
- package/dist/{Select-D9juHX8o.js → Select-DO02vXt3.js} +189 -190
- package/dist/Select-DO02vXt3.js.map +1 -0
- package/dist/{Sheet-qTIXsqm0.js → Sheet-C2UoHLL0.js} +40 -41
- package/dist/Sheet-C2UoHLL0.js.map +1 -0
- package/dist/Shortcut-D8L15_ed.js.map +1 -1
- package/dist/Skeleton-y6I-i9q5.js.map +1 -1
- package/dist/{TableFillHandle-C_yvCTSl.js → TableFillHandle-CHHoUi6s.js} +7 -7
- package/dist/TableFillHandle-CHHoUi6s.js.map +1 -0
- package/dist/{Tag-DdHXTyKF.js → Tag-Cf6HftP-.js} +4 -4
- package/dist/Tag-Cf6HftP-.js.map +1 -0
- package/dist/Text-DeBE8AKl.js.map +1 -1
- package/dist/{TextInput-5BuZtWV6.js → TextInput-CoL8nOyt.js} +3 -3
- package/dist/TextInput-CoL8nOyt.js.map +1 -0
- package/dist/{TextOverflowTooltip-B1I5qwAT.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
- package/dist/{TextOverflowTooltip-B1I5qwAT.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
- package/dist/{Toggle-v_HT3Gm2.js → Toggle-CmalMf4O.js} +2 -2
- package/dist/Toggle-CmalMf4O.js.map +1 -0
- package/dist/{Tooltip-7Duaau0S.js → Tooltip-D2XvRS0c.js} +64 -65
- package/dist/Tooltip-D2XvRS0c.js.map +1 -0
- package/dist/{TriggerButton-Bakr8Boi.js → TriggerButton-CoAgB4lx.js} +2 -2
- package/dist/TriggerButton-CoAgB4lx.js.map +1 -0
- package/dist/blocks/auth/otp-form.js +3240 -204
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/cn-dsXlqdJg.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
- package/dist/components/alert-dialog.js +71 -72
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/background-pattern.js.map +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/banner.js.map +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js +5 -5
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js +2889 -71
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js +2 -2
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.js +1 -1
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/color-tile.js.map +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/context-menu.js +6 -6
- package/dist/components/context-menu.js.map +1 -1
- package/dist/components/counter.js +1 -1
- package/dist/components/counter.js.map +1 -1
- package/dist/components/dialog/Dialog.d.ts +2 -4
- package/dist/components/dialog.js +3 -3
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/divider.js.map +1 -1
- package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
- package/dist/components/drawer.js +98 -99
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +2 -4
- package/dist/components/dropdown.js +258 -259
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/error-state.js +1 -1
- package/dist/components/error-state.js.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/file-upload.js +3 -3
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/form/Form.d.ts +14 -0
- package/dist/components/form/components/form-field/FormField.d.ts +4 -0
- package/dist/components/form.js +5 -5
- package/dist/components/form.js.map +1 -1
- package/dist/components/glass-toolbar.js +6 -6
- package/dist/components/glass-toolbar.js.map +1 -1
- package/dist/components/icon-tooltip.js +1 -1
- package/dist/components/image-placeholder.js.map +1 -1
- package/dist/components/image-preview.js +2 -2
- package/dist/components/image-preview.js.map +1 -1
- package/dist/components/image-uploader.js +1 -1
- package/dist/components/image-uploader.js.map +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.js +5 -5
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/menu-item.js +6 -6
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/overflow-tooltip.js +1 -1
- package/dist/components/overlay.js +1 -1
- package/dist/components/page-state.js +7 -7
- package/dist/components/page-state.js.map +1 -1
- package/dist/components/popover/Popover.d.ts +1 -2
- package/dist/components/popover.js +1 -1
- package/dist/components/progress-circle.js +1 -1
- package/dist/components/progress-circle.js.map +1 -1
- package/dist/components/progress.js +3 -3
- package/dist/components/progress.js.map +1 -1
- package/dist/components/prose.js.map +1 -1
- package/dist/components/radio-group.js +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable/Resizable.d.ts +1 -1
- package/dist/components/resizable.js +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scheduler.js +1 -1
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
- package/dist/components/search-select.js +4 -4
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/select/Select.d.ts +1 -2
- package/dist/components/select.js +1 -1
- package/dist/components/sheet/Sheet.d.ts +1 -2
- package/dist/components/sheet.js +1 -1
- package/dist/components/sidebar.js +90 -90
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js +2 -2
- package/dist/components/switch.js.map +1 -1
- package/dist/components/system-state.js +1 -1
- package/dist/components/system-state.js.map +1 -1
- package/dist/components/table/editable/editableCell.d.ts +2 -2
- package/dist/components/table/editable.js +1 -1
- package/dist/components/table/tree.js +1 -1
- package/dist/components/table.js +2 -2
- package/dist/components/tabs.js +2 -2
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-input.js +5 -5
- package/dist/components/tag-input.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/timer.js.map +1 -1
- package/dist/components/toast.js +6 -6
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/toolbar.js.map +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +2 -4
- package/dist/components/tooltip.js +1 -1
- package/dist/design-tokens.source.json +1 -0
- package/dist/docs/tailwind-utilities/ScrollFade.stories.d.ts +28 -0
- package/dist/docs/tailwind-utilities/Shimmer.stories.d.ts +32 -0
- package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -1
- package/dist/font-smoothing.css +4 -0
- package/dist/formatBytes-C4QXq5lC.js.map +1 -1
- package/dist/index-0ioNhtNM.js.map +1 -1
- package/dist/index-1SnkxfPR.js.map +1 -1
- package/dist/index-437EL2iq.js.map +1 -1
- package/dist/index-BDrapWDv.js.map +1 -1
- package/dist/index-BGQepRFJ.js.map +1 -1
- package/dist/index-BVqs-uqP.js.map +1 -1
- package/dist/index-BZPx6jYI.js.map +1 -1
- package/dist/index-Bb23HztA.js.map +1 -1
- package/dist/index-BjtNfqNq.js.map +1 -1
- package/dist/index-BpWB3aFK.js.map +1 -1
- package/dist/index-ByaXH_ih.js.map +1 -1
- package/dist/index-CCKe-Mpx.js.map +1 -1
- package/dist/index-CFaU3UXv.js.map +1 -1
- package/dist/index-CLuiUUQ8.js.map +1 -1
- package/dist/index-CMxHunQ4.js.map +1 -1
- package/dist/index-CmBeyp2d.js.map +1 -1
- package/dist/index-DFZozV_h.js.map +1 -1
- package/dist/index-DHsfW5Rj.js.map +1 -1
- package/dist/index-DHyZ_0Ut.js.map +1 -1
- package/dist/index-DLcqcWxM.js.map +1 -1
- package/dist/index-DnnQs07z.js.map +1 -1
- package/dist/index-Uiy0Xwy2.js.map +1 -1
- package/dist/index-_ITz1IyW.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{inputBaseStyles-BfZIWuQ6.js → inputBaseStyles-CZwQWSub.js} +7 -7
- package/dist/inputBaseStyles-CZwQWSub.js.map +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/opaqueCell-D95h1mFM.js.map +1 -1
- package/dist/tailwind.css +408 -0
- package/dist/theme.css +360 -360
- package/dist/{treeModel-BlJWP4sc.js → treeModel-CUO1A5s7.js} +11 -11
- package/dist/treeModel-CUO1A5s7.js.map +1 -0
- package/dist/types/css.d.ts +4 -4
- package/dist/useBreakpoints-DHvp74UL.js.map +1 -1
- package/dist/useDebounce-BRah78CF.js.map +1 -1
- package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
- package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
- package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
- package/package.json +28 -28
- package/dist/Button-BZ3ON1Tj.js.map +0 -1
- package/dist/ButtonBase-jgu7EolU.js.map +0 -1
- package/dist/CheckboxField-limFbMk2.js.map +0 -1
- package/dist/Command-B7ZRyW8w.js.map +0 -1
- package/dist/DayPicker-4hE1QEvO.js +0 -2452
- package/dist/DayPicker-4hE1QEvO.js.map +0 -1
- package/dist/Dialog-CdnsGyJD.js.map +0 -1
- package/dist/Field-CP_-li9L.js.map +0 -1
- package/dist/FieldLabel-eyKmeWRn.js.map +0 -1
- package/dist/FormFooterTemplate-DdNnLu2-.js.map +0 -1
- package/dist/FormHeader--F6b2aRk.js.map +0 -1
- package/dist/FormStack-Cc_ELdWL.js +0 -127
- package/dist/FormStack-Cc_ELdWL.js.map +0 -1
- package/dist/IconButton-uGJ3cQtk.js.map +0 -1
- package/dist/IconTooltip-RSxvnBgH.js.map +0 -1
- package/dist/InputGroup-AVAtosX_.js.map +0 -1
- package/dist/InputOTP-B2e1nfSO.js.map +0 -1
- package/dist/MenuItem-d19Ty84F.js.map +0 -1
- package/dist/Overlay-CVt011mY.js.map +0 -1
- package/dist/Popover-KjZXxxl3.js.map +0 -1
- package/dist/RichButton-B1wjK7Bk.js.map +0 -1
- package/dist/SearchSelectTag-CA7Ie3Nx.js.map +0 -1
- package/dist/Select-D9juHX8o.js.map +0 -1
- package/dist/Sheet-qTIXsqm0.js.map +0 -1
- package/dist/TableFillHandle-C_yvCTSl.js.map +0 -1
- package/dist/Tag-DdHXTyKF.js.map +0 -1
- package/dist/TextInput-5BuZtWV6.js.map +0 -1
- package/dist/Toggle-v_HT3Gm2.js.map +0 -1
- package/dist/Tooltip-7Duaau0S.js.map +0 -1
- package/dist/TriggerButton-Bakr8Boi.js.map +0 -1
- package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
- package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
- package/dist/components/portal-container/PortalContainer.d.ts +0 -10
- package/dist/components/portal-container/index.d.ts +0 -2
- package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
- package/dist/components/portal-container/usePortalContainer.d.ts +0 -10
- package/dist/components/portal-container.d.ts +0 -2
- package/dist/components/portal-container.js +0 -14
- package/dist/components/portal-container.js.map +0 -1
- package/dist/index.esm-CXA6i4d7.js +0 -1282
- package/dist/index.esm-CXA6i4d7.js.map +0 -1
- package/dist/inputBaseStyles-BfZIWuQ6.js.map +0 -1
- package/dist/lib/utils/styles.d.ts +0 -10
- package/dist/normalizeDates-9A3c9WYM.js +0 -32
- package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
- package/dist/styles-scoped.css +0 -6605
- package/dist/styles-scoped.d.ts +0 -1
- package/dist/styles.css +0 -6594
- package/dist/styles.d.ts +0 -1
- package/dist/treeModel-BlJWP4sc.js.map +0 -1
- package/dist/usePortalContainer-BAIp0kSF.js +0 -44
- package/dist/usePortalContainer-BAIp0kSF.js.map +0 -1
- package/dist/vendors/date-fns/index.d.ts +0 -12
- package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
- package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
- package/dist/vendors/date-fns/locale/en-US.js +0 -372
- package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
- package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
- package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
- package/dist/vendors/date-fns/locale/ru.js +0 -569
- package/dist/vendors/date-fns/locale/ru.js.map +0 -1
- package/dist/vendors/date-fns.d.ts +0 -2
- package/dist/vendors/date-fns.js +0 -2
- package/dist/vendors/date-fns.js.map +0 -1
- package/dist/vendors/react-day-picker/index.d.ts +0 -13
- package/dist/vendors/react-day-picker.d.ts +0 -2
- package/dist/vendors/react-day-picker.js +0 -87
- package/dist/vendors/react-day-picker.js.map +0 -1
- package/dist/vendors/react-hook-form/index.d.ts +0 -14
- package/dist/vendors/react-hook-form.d.ts +0 -2
- package/dist/vendors/react-hook-form.js +0 -19
- package/dist/vendors/react-hook-form.js.map +0 -1
- package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
- package/dist/vendors/tanstack/react-table.d.ts +0 -2
- package/dist/vendors/tanstack/react-table.js +0 -2090
- package/dist/vendors/tanstack/react-table.js.map +0 -1
- package/dist/vendors/zod/index.d.ts +0 -13
- package/dist/vendors/zod.d.ts +0 -2
- package/dist/vendors/zod.js +0 -3080
- package/dist/vendors/zod.js.map +0 -1
- package/dist/zod-BMNoK3aM.js +0 -75
- package/dist/zod-BMNoK3aM.js.map +0 -1
- 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":"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"}
|
|
@@ -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;"}
|