ics-ui-kit 0.1.18 → 1.0.0-alpha.0
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-Dg89xRSi.js → Button-_qdP4hSf.js} +2 -2
- package/dist/Button-_qdP4hSf.js.map +1 -0
- package/dist/ButtonBase-CbWrYcx-.js +158 -0
- package/dist/ButtonBase-CbWrYcx-.js.map +1 -0
- package/dist/{CheckboxField-limFbMk2.js → CheckboxField-Ca48ZYoX.js} +32 -32
- package/dist/CheckboxField-Ca48ZYoX.js.map +1 -0
- package/dist/Combination-DeIugdgY.js.map +1 -1
- package/dist/{Command-B7ZRyW8w.js → Command-CsW4aK7M.js} +8 -8
- package/dist/Command-CsW4aK7M.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-BT_775Iz.js} +4 -4
- package/dist/Dialog-BT_775Iz.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-BRPdaQ8D.js} +2 -2
- package/dist/Field-BRPdaQ8D.js.map +1 -0
- package/dist/{FieldLabel-eyKmeWRn.js → FieldLabel-ic0eq9Un.js} +2 -2
- package/dist/FieldLabel-ic0eq9Un.js.map +1 -0
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/{FormFooterTemplate-BRrgrxAu.js → FormFooterTemplate-BIwnBQhL.js} +5 -5
- package/dist/FormFooterTemplate-BIwnBQhL.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-Cc_ELdWL.js → FormStack-CxiZhx1n.js} +3 -3
- package/dist/FormStack-CxiZhx1n.js.map +1 -0
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/{IconButton-DwkpNgn3.js → IconButton-DAg1oMwz.js} +2 -2
- package/dist/IconButton-DAg1oMwz.js.map +1 -0
- package/dist/{IconTooltip-RSxvnBgH.js → IconTooltip-CgbefRXG.js} +2 -2
- package/dist/IconTooltip-CgbefRXG.js.map +1 -0
- package/dist/Indicator-AqxHWPA9.js.map +1 -1
- package/dist/{InputGroup-BcRWP-zL.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-CRVD7AtB.js → Popover-Dz2eNsXh.js} +5 -5
- package/dist/Popover-Dz2eNsXh.js.map +1 -0
- package/dist/{RichButton-DuPTenmS.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-Bfbtj5zt.js} +7 -7
- package/dist/Select-Bfbtj5zt.js.map +1 -0
- package/dist/{Sheet-qTIXsqm0.js → Sheet-aLBPtE1k.js} +9 -9
- package/dist/Sheet-aLBPtE1k.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-Db0ylY91.js → TextInput-CoL8nOyt.js} +3 -3
- package/dist/TextInput-CoL8nOyt.js.map +1 -0
- package/dist/{TextOverflowTooltip-B1I5qwAT.js → TextOverflowTooltip-BaNPKqnO.js} +2 -2
- package/dist/{TextOverflowTooltip-B1I5qwAT.js.map → TextOverflowTooltip-BaNPKqnO.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-DOgKy50D.js} +3 -3
- package/dist/Tooltip-DOgKy50D.js.map +1 -0
- package/dist/{TriggerButton-CfDObWP9.js → TriggerButton-CoAgB4lx.js} +2 -2
- package/dist/TriggerButton-CoAgB4lx.js.map +1 -0
- package/dist/blocks/auth/otp-form.js +4 -4
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/cn-dsXlqdJg.js.map +1 -1
- package/dist/components/alert-dialog.js +3 -3
- 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 +2 -2
- 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.js +3 -3
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/divider.js.map +1 -1
- package/dist/components/drawer.js +4 -4
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown.js +9 -9
- 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.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.js +1 -1
- package/dist/components/portal-container/usePortalContainer.d.ts +2 -1
- package/dist/components/portal-container.js +2 -2
- package/dist/components/portal-container.js.map +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.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.js +4 -4
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/select.js +1 -1
- 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.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/styles.css +8929 -6508
- package/dist/tailwind.css +361 -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/dist/usePortalContainer-B1xla842.js +33 -0
- package/dist/usePortalContainer-B1xla842.js.map +1 -0
- package/dist/vendors/tanstack/react-table.js.map +1 -1
- package/dist/zod-BMNoK3aM.js.map +1 -1
- package/package.json +204 -207
- package/dist/Button-Dg89xRSi.js.map +0 -1
- package/dist/ButtonBase-e6qyv6mD.js +0 -158
- package/dist/ButtonBase-e6qyv6mD.js.map +0 -1
- package/dist/CheckboxField-limFbMk2.js.map +0 -1
- package/dist/Command-B7ZRyW8w.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-BRrgrxAu.js.map +0 -1
- package/dist/FormHeader--F6b2aRk.js.map +0 -1
- package/dist/FormStack-Cc_ELdWL.js.map +0 -1
- package/dist/IconButton-DwkpNgn3.js.map +0 -1
- package/dist/IconTooltip-RSxvnBgH.js.map +0 -1
- package/dist/InputGroup-BcRWP-zL.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-CRVD7AtB.js.map +0 -1
- package/dist/RichButton-DuPTenmS.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-Db0ylY91.js.map +0 -1
- package/dist/Toggle-v_HT3Gm2.js.map +0 -1
- package/dist/Tooltip-7Duaau0S.js.map +0 -1
- package/dist/TriggerButton-CfDObWP9.js.map +0 -1
- package/dist/inputBaseStyles-BfZIWuQ6.js.map +0 -1
- package/dist/lib/utils/styles.d.ts +0 -10
- package/dist/styles-scoped.css +0 -6654
- package/dist/styles-scoped.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/tailwind.preset.js +0 -452
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-uploader.js","sources":["../../src/components/image-uploader/components/ImageCameraAddSvg.tsx","../../src/components/image-uploader/ImageUploader.tsx"],"sourcesContent":["interface ImageCameraAddProps {\n\tclassName?: string;\n}\n\nexport const ImageCameraAddSvg = ({ className }: ImageCameraAddProps) => {\n\treturn (\n\t\t<svg\n\t\t\twidth=\"33\"\n\t\t\theight=\"29\"\n\t\t\tviewBox=\"0 0 33 29\"\n\t\t\tclassName={className}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M27.4463 16.9258C27.9982 16.926 28.4461 17.3739 28.4463 17.9258V21.5322H31.9746C32.5266 21.5325 32.9746 21.9801 32.9746 22.5322C32.9743 23.0841 32.5265 23.5319 31.9746 23.5322H28.4463V27.1377C28.4461 27.6896 27.9982 28.1374 27.4463 28.1377C26.8941 28.1377 26.4465 27.6898 26.4463 27.1377V23.5322H22.918C22.3659 23.5322 21.9182 23.0843 21.918 22.5322C21.918 21.9799 22.3657 21.5322 22.918 21.5322H26.4463V17.9258C26.4465 17.3737 26.8941 16.9258 27.4463 16.9258ZM17.6523 0.0449219C17.9098 0.0739444 18.1484 0.202586 18.3145 0.405273L21.3164 4.06934H24.8047L24.9863 4.07324C25.8909 4.11901 26.7469 4.50459 27.3857 5.1543C28.0666 5.8469 28.4463 6.78361 28.4463 7.75586V12.2402C28.4462 12.7923 27.9983 13.24 27.4463 13.2402C26.894 13.2402 26.4463 12.7925 26.4463 12.2402V7.75586C26.4463 7.30322 26.2686 6.87167 25.959 6.55664C25.6885 6.28172 25.3364 6.11468 24.9648 6.07715L24.8047 6.06934H20.8428C20.5434 6.06934 20.2593 5.93454 20.0693 5.70312L17.0664 2.03906H11.4102L8.4082 5.70312C8.21833 5.93464 7.93419 6.06925 7.63477 6.06934H3.67285C3.24307 6.06934 2.82676 6.24223 2.51758 6.55664C2.20786 6.87168 2.03125 7.30316 2.03125 7.75586V19.8447C2.03127 20.2974 2.20792 20.7289 2.51758 21.0439C2.82675 21.3583 3.2431 21.5322 3.67285 21.5322H17.6348L17.7373 21.5371C18.2412 21.5886 18.6348 22.0147 18.6348 22.5322C18.6345 23.0495 18.2411 23.4749 17.7373 23.5264L17.6348 23.5322H3.67285C2.70169 23.5322 1.77333 23.1393 1.0918 22.4463C0.410823 21.7537 0.03127 20.817 0.03125 19.8447V7.75586C0.03125 6.78353 0.410805 5.84692 1.0918 5.1543C1.77333 4.46129 2.70169 4.06934 3.67285 4.06934H7.16113L10.1631 0.405273L10.2393 0.323242C10.4248 0.142425 10.6745 0.0391387 10.9365 0.0390625H17.54L17.6523 0.0449219ZM14.2383 8.09863C16.9946 8.09879 19.2012 10.3671 19.2012 13.1289C19.201 15.8906 16.9945 18.158 14.2383 18.1582C11.4821 18.158 9.2765 15.8906 9.27637 13.1289C9.27637 10.3671 11.482 8.09885 14.2383 8.09863ZM14.2383 10.0986C12.6184 10.0988 11.2764 11.4397 11.2764 13.1289C11.2765 14.818 12.6184 16.158 14.2383 16.1582C15.8582 16.158 17.201 14.8181 17.2012 13.1289C17.2012 11.4396 15.8582 10.0988 14.2383 10.0986Z\"\n\t\t\t\tfill=\"currentColor\"\n\t\t\t/>\n\t\t</svg>\n\t);\n};\n","import React, { useRef } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ImageCameraAddSvg } from \"./components/ImageCameraAddSvg\";\nimport { Button } from \"../button\";\nimport { Image } from \"lucide-react\";\nimport { Icon } from \"../icon\";\nimport { cn } from \"@/lib/utils\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface ImageUploaderVariants {\n\treadonly?: boolean;\n\terror?: boolean;\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst imageUploaderStyles = tv({\n\tslots: {\n\t\tcontainer:\n\t\t\t\"group relative flex aspect-square items-center justify-center rounded-xl p-6 focus-visible:shadow-focus focus-visible:ring-0\",\n\t\ticon: \"h-8 w-8 stroke-[1.5px] text-muted group-hover:text-primary\",\n\t\tinput: \"hidden\",\n\t\t// Кастомная иконка для состояния загрузки с фиксированными размерами (35 и 33px) и небольшим смещением для визуального баланса\n\t\tcustomIcon: \"h-[2.1875rem] w-[2.0625rem] translate-x-0.5 translate-y-0.5\"\n\t},\n\tvariants: {\n\t\treadonly: {\n\t\t\ttrue: {\n\t\t\t\tcontainer:\n\t\t\t\t\t\"cursor-default bg-secondary-bg-hover hover:border-secondary-border focus-visible:bg-secondary-bg-hover\",\n\t\t\t\ticon: \"group-hover:text-muted\"\n\t\t\t}\n\t\t},\n\t\terror: {\n\t\t\ttrue: {\n\t\t\t\tcontainer:\n\t\t\t\t\t\"border-status-error-secondary-border hover:border-status-error-primary-border hover:bg-status-error-bg focus-visible:border-status-error-secondary-border focus-visible:shadow-focus-error\",\n\t\t\t\ticon: \"group-hover:text-muted\"\n\t\t\t}\n\t\t},\n\t\tsize: {\n\t\t\txs: { container: \"h-[3.75rem] w-[3.75rem]\" },\n\t\t\tsm: { container: \"h-20 w-20\" },\n\t\t\tmd: { container: \"h-[7.5rem] w-[7.5rem]\" },\n\t\t\tlg: { container: \"h-[11.5rem] w-[11.5rem]\" },\n\t\t\txl: { container: \"h-96 w-96\" }\n\t\t}\n\t} satisfies VariantsConfig<ImageUploaderVariants>\n});\n\nexport type ImageUploaderProps = Omit<React.ComponentPropsWithoutRef<typeof Button>, \"onChange\"> &\n\tImageUploaderVariants & {\n\t\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n\t\twhiteList?: string;\n\t};\n\nexport const ImageUploader = React.forwardRef<HTMLButtonElement, ImageUploaderProps>(\n\t({ className, error, readonly, size, onChange, whiteList = \"image/*\", ...props }, ref) => {\n\t\tconst fileInputRef = useRef<HTMLInputElement>(null);\n\t\tconst styles = imageUploaderStyles({ className, readonly, error, size });\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\ttype=\"button\"\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tclassName={styles.container()}\n\t\t\t\tonClick={() => !readonly && fileInputRef.current?.click()}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<input\n\t\t\t\t\tref={fileInputRef}\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\tclassName={styles.input()}\n\t\t\t\t\tonChange={onChange}\n\t\t\t\t\taccept={whiteList}\n\t\t\t\t/>\n\n\t\t\t\t{readonly && <Icon icon={Image} className={styles.icon()} />}\n\t\t\t\t{!readonly && <ImageCameraAddSvg className={cn(styles.icon(), styles.customIcon())} />}\n\t\t\t</Button>\n\t\t);\n\t}\n);\n\nImageUploader.displayName = \"ImageUploader\";\n"],"names":["ImageCameraAddSvg","className","jsx","imageUploaderStyles","tv","ImageUploader","React","error","readonly","size","onChange","whiteList","props","ref","fileInputRef","useRef","styles","jsxs","Button","Icon","Image","cn"],"mappings":";;;;;;;AAIO,MAAMA,IAAoB,CAAC,EAAE,WAAAC,QAElC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,WAAAD;AAAA,IACA,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACD,GCHIC,IAAsBC,EAAG;AAAA,EAC9B,OAAO;AAAA,IACN,WACC;AAAA,IACD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,IAEP,YAAY;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACT,UAAU;AAAA,MACT,MAAM;AAAA,QACL,WACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,IAER;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,QACL,WACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,IAER;AAAA,IACA,MAAM;AAAA,MACL,IAAI,EAAE,WAAW,0BAA0B;AAAA,MAC3C,IAAI,EAAE,WAAW,YAAY;AAAA,MAC7B,IAAI,EAAE,WAAW,wBAAwB;AAAA,MACzC,IAAI,EAAE,WAAW,0BAA0B;AAAA,MAC3C,IAAI,EAAE,WAAW,YAAY;AAAA,IAAA;AAAA,EAC9B;AAEF,CAAC,GAQYC,IAAgBC,EAAM;AAAA,EAClC,CAAC,EAAE,WAAAL,GAAW,OAAAM,GAAO,UAAAC,GAAU,MAAAC,GAAM,UAAAC,GAAU,WAAAC,IAAY,WAAW,GAAGC,EAAM,GAAGC,MAAQ;AACnF,UAAAC,IAAeC,EAAyB,IAAI,GAC5CC,IAASb,EAAoB,EAAE,WAAAF,GAAW,UAAAO,GAAU,OAAAD,GAAO,MAAAE,GAAM;AAGtE,WAAA,gBAAAQ;AAAA,MAACC;AAAA,MAAA;AAAA,QACA,KAAAL;AAAA,QACA,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,WAAWG,EAAO,UAAU;AAAA,QAC5B,SAAS,MAAM,CAACR,KAAYM,EAAa,SAAS,MAAM;AAAA,QACvD,GAAGF;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAV;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAKY;AAAA,cACL,MAAK;AAAA,cACL,WAAWE,EAAO,MAAM;AAAA,cACxB,UAAAN;AAAA,cACA,QAAQC;AAAA,YAAA;AAAA,UACT;AAAA,UAECH,uBAAaW,GAAK,EAAA,MAAMC,GAAO,WAAWJ,EAAO,QAAQ;AAAA,UACzD,CAACR,KAAa,gBAAAN,EAAAF,GAAA,EAAkB,WAAWqB,EAAGL,EAAO,KAAQ,GAAAA,EAAO,WAAY,CAAA,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACrF;AAAA,EAAA;AAGH;AAEAX,EAAc,cAAc;"}
|
|
1
|
+
{"version":3,"file":"image-uploader.js","sources":["../../src/components/image-uploader/components/ImageCameraAddSvg.tsx","../../src/components/image-uploader/ImageUploader.tsx"],"sourcesContent":["interface ImageCameraAddProps {\r\n\tclassName?: string;\r\n}\r\n\r\nexport const ImageCameraAddSvg = ({ className }: ImageCameraAddProps) => {\r\n\treturn (\r\n\t\t<svg\r\n\t\t\twidth=\"33\"\r\n\t\t\theight=\"29\"\r\n\t\t\tviewBox=\"0 0 33 29\"\r\n\t\t\tclassName={className}\r\n\t\t\tfill=\"none\"\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t>\r\n\t\t\t<path\r\n\t\t\t\td=\"M27.4463 16.9258C27.9982 16.926 28.4461 17.3739 28.4463 17.9258V21.5322H31.9746C32.5266 21.5325 32.9746 21.9801 32.9746 22.5322C32.9743 23.0841 32.5265 23.5319 31.9746 23.5322H28.4463V27.1377C28.4461 27.6896 27.9982 28.1374 27.4463 28.1377C26.8941 28.1377 26.4465 27.6898 26.4463 27.1377V23.5322H22.918C22.3659 23.5322 21.9182 23.0843 21.918 22.5322C21.918 21.9799 22.3657 21.5322 22.918 21.5322H26.4463V17.9258C26.4465 17.3737 26.8941 16.9258 27.4463 16.9258ZM17.6523 0.0449219C17.9098 0.0739444 18.1484 0.202586 18.3145 0.405273L21.3164 4.06934H24.8047L24.9863 4.07324C25.8909 4.11901 26.7469 4.50459 27.3857 5.1543C28.0666 5.8469 28.4463 6.78361 28.4463 7.75586V12.2402C28.4462 12.7923 27.9983 13.24 27.4463 13.2402C26.894 13.2402 26.4463 12.7925 26.4463 12.2402V7.75586C26.4463 7.30322 26.2686 6.87167 25.959 6.55664C25.6885 6.28172 25.3364 6.11468 24.9648 6.07715L24.8047 6.06934H20.8428C20.5434 6.06934 20.2593 5.93454 20.0693 5.70312L17.0664 2.03906H11.4102L8.4082 5.70312C8.21833 5.93464 7.93419 6.06925 7.63477 6.06934H3.67285C3.24307 6.06934 2.82676 6.24223 2.51758 6.55664C2.20786 6.87168 2.03125 7.30316 2.03125 7.75586V19.8447C2.03127 20.2974 2.20792 20.7289 2.51758 21.0439C2.82675 21.3583 3.2431 21.5322 3.67285 21.5322H17.6348L17.7373 21.5371C18.2412 21.5886 18.6348 22.0147 18.6348 22.5322C18.6345 23.0495 18.2411 23.4749 17.7373 23.5264L17.6348 23.5322H3.67285C2.70169 23.5322 1.77333 23.1393 1.0918 22.4463C0.410823 21.7537 0.03127 20.817 0.03125 19.8447V7.75586C0.03125 6.78353 0.410805 5.84692 1.0918 5.1543C1.77333 4.46129 2.70169 4.06934 3.67285 4.06934H7.16113L10.1631 0.405273L10.2393 0.323242C10.4248 0.142425 10.6745 0.0391387 10.9365 0.0390625H17.54L17.6523 0.0449219ZM14.2383 8.09863C16.9946 8.09879 19.2012 10.3671 19.2012 13.1289C19.201 15.8906 16.9945 18.158 14.2383 18.1582C11.4821 18.158 9.2765 15.8906 9.27637 13.1289C9.27637 10.3671 11.482 8.09885 14.2383 8.09863ZM14.2383 10.0986C12.6184 10.0988 11.2764 11.4397 11.2764 13.1289C11.2765 14.818 12.6184 16.158 14.2383 16.1582C15.8582 16.158 17.201 14.8181 17.2012 13.1289C17.2012 11.4396 15.8582 10.0988 14.2383 10.0986Z\"\r\n\t\t\t\tfill=\"currentColor\"\r\n\t\t\t/>\r\n\t\t</svg>\r\n\t);\r\n};\r\n","import React, { useRef } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ImageCameraAddSvg } from \"./components/ImageCameraAddSvg\";\r\nimport { Button } from \"../button\";\r\nimport { Image } from \"lucide-react\";\r\nimport { Icon } from \"../icon\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface ImageUploaderVariants {\r\n\treadonly?: boolean;\r\n\terror?: boolean;\r\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n}\r\n\r\nconst imageUploaderStyles = tv({\r\n\tslots: {\r\n\t\tcontainer:\r\n\t\t\t\"group relative flex aspect-square items-center justify-center rounded-xl p-6 focus-visible:shadow-focus focus-visible:ring-0\",\r\n\t\ticon: \"h-8 w-8 stroke-[1.5px] text-muted group-hover:text-primary\",\r\n\t\tinput: \"hidden\",\r\n\t\t// Кастомная иконка для состояния загрузки с фиксированными размерами (35 и 33px) и небольшим смещением для визуального баланса\r\n\t\tcustomIcon: \"h-[2.1875rem] w-[2.0625rem] translate-x-0.5 translate-y-0.5\"\r\n\t},\r\n\tvariants: {\r\n\t\treadonly: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer:\r\n\t\t\t\t\t\"cursor-default bg-secondary-bg-hover hover:border-secondary-border focus-visible:bg-secondary-bg-hover\",\r\n\t\t\t\ticon: \"group-hover:text-muted\"\r\n\t\t\t}\r\n\t\t},\r\n\t\terror: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer:\r\n\t\t\t\t\t\"border-status-error-secondary-border hover:border-status-error-primary-border hover:bg-status-error-bg focus-visible:border-status-error-secondary-border focus-visible:shadow-focus-error\",\r\n\t\t\t\ticon: \"group-hover:text-muted\"\r\n\t\t\t}\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\txs: { container: \"h-[3.75rem] w-[3.75rem]\" },\r\n\t\t\tsm: { container: \"h-20 w-20\" },\r\n\t\t\tmd: { container: \"h-[7.5rem] w-[7.5rem]\" },\r\n\t\t\tlg: { container: \"h-[11.5rem] w-[11.5rem]\" },\r\n\t\t\txl: { container: \"h-96 w-96\" }\r\n\t\t}\r\n\t} satisfies VariantsConfig<ImageUploaderVariants>\r\n});\r\n\r\nexport type ImageUploaderProps = Omit<React.ComponentPropsWithoutRef<typeof Button>, \"onChange\"> &\r\n\tImageUploaderVariants & {\r\n\t\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\r\n\t\twhiteList?: string;\r\n\t};\r\n\r\nexport const ImageUploader = React.forwardRef<HTMLButtonElement, ImageUploaderProps>(\r\n\t({ className, error, readonly, size, onChange, whiteList = \"image/*\", ...props }, ref) => {\r\n\t\tconst fileInputRef = useRef<HTMLInputElement>(null);\r\n\t\tconst styles = imageUploaderStyles({ className, readonly, error, size });\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tref={ref}\r\n\t\t\t\ttype=\"button\"\r\n\t\t\t\tvariant=\"outline\"\r\n\t\t\t\tclassName={styles.container()}\r\n\t\t\t\tonClick={() => !readonly && fileInputRef.current?.click()}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<input\r\n\t\t\t\t\tref={fileInputRef}\r\n\t\t\t\t\ttype=\"file\"\r\n\t\t\t\t\tclassName={styles.input()}\r\n\t\t\t\t\tonChange={onChange}\r\n\t\t\t\t\taccept={whiteList}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{readonly && <Icon icon={Image} className={styles.icon()} />}\r\n\t\t\t\t{!readonly && <ImageCameraAddSvg className={cn(styles.icon(), styles.customIcon())} />}\r\n\t\t\t</Button>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nImageUploader.displayName = \"ImageUploader\";\r\n"],"names":["ImageCameraAddSvg","className","jsx","imageUploaderStyles","tv","ImageUploader","React","error","readonly","size","onChange","whiteList","props","ref","fileInputRef","useRef","styles","jsxs","Button","Icon","Image","cn"],"mappings":";;;;;;;AAIO,MAAMA,IAAoB,CAAC,EAAE,WAAAC,QAElC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACA,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,WAAAD;AAAA,IACA,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,UAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACD,GCHIC,IAAsBC,EAAG;AAAA,EAC9B,OAAO;AAAA,IACN,WACC;AAAA,IACD,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,IAEP,YAAY;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACT,UAAU;AAAA,MACT,MAAM;AAAA,QACL,WACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,IAER;AAAA,IACA,OAAO;AAAA,MACN,MAAM;AAAA,QACL,WACC;AAAA,QACD,MAAM;AAAA,MAAA;AAAA,IAER;AAAA,IACA,MAAM;AAAA,MACL,IAAI,EAAE,WAAW,0BAA0B;AAAA,MAC3C,IAAI,EAAE,WAAW,YAAY;AAAA,MAC7B,IAAI,EAAE,WAAW,wBAAwB;AAAA,MACzC,IAAI,EAAE,WAAW,0BAA0B;AAAA,MAC3C,IAAI,EAAE,WAAW,YAAY;AAAA,IAAA;AAAA,EAC9B;AAEF,CAAC,GAQYC,IAAgBC,EAAM;AAAA,EAClC,CAAC,EAAE,WAAAL,GAAW,OAAAM,GAAO,UAAAC,GAAU,MAAAC,GAAM,UAAAC,GAAU,WAAAC,IAAY,WAAW,GAAGC,EAAM,GAAGC,MAAQ;AACnF,UAAAC,IAAeC,EAAyB,IAAI,GAC5CC,IAASb,EAAoB,EAAE,WAAAF,GAAW,UAAAO,GAAU,OAAAD,GAAO,MAAAE,GAAM;AAGtE,WAAA,gBAAAQ;AAAA,MAACC;AAAA,MAAA;AAAA,QACA,KAAAL;AAAA,QACA,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,WAAWG,EAAO,UAAU;AAAA,QAC5B,SAAS,MAAM,CAACR,KAAYM,EAAa,SAAS,MAAM;AAAA,QACvD,GAAGF;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAV;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAKY;AAAA,cACL,MAAK;AAAA,cACL,WAAWE,EAAO,MAAM;AAAA,cACxB,UAAAN;AAAA,cACA,QAAQC;AAAA,YAAA;AAAA,UACT;AAAA,UAECH,uBAAaW,GAAK,EAAA,MAAMC,GAAO,WAAWJ,EAAO,QAAQ;AAAA,UACzD,CAACR,KAAa,gBAAAN,EAAAF,GAAA,EAAkB,WAAWqB,EAAGL,EAAO,KAAQ,GAAAA,EAAO,WAAY,CAAA,EAAG,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACrF;AAAA,EAAA;AAGH;AAEAX,EAAc,cAAc;"}
|
package/dist/components/input.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as o, jsxs as N } from "react/jsx-runtime";
|
|
2
2
|
import k, { useRef as j, useState as G, useEffect as q, useCallback as b } from "react";
|
|
3
3
|
import { u as R } from "../useMergeRefs-qoKniYqT.js";
|
|
4
|
-
import { u as H, a as J } from "../inputBaseStyles-
|
|
4
|
+
import { u as H, a as J } from "../inputBaseStyles-CZwQWSub.js";
|
|
5
5
|
import { T as S } from "../index-BVqs-uqP.js";
|
|
6
|
-
import { a as F, c as L, b as M, d as f } from "../InputGroup-
|
|
7
|
-
import { I as we } from "../InputGroup-
|
|
8
|
-
import { u as v, C as U } from "../TextInput-
|
|
9
|
-
import { T as be } from "../TextInput-
|
|
6
|
+
import { a as F, c as L, b as M, d as f } from "../InputGroup-CW55G5nE.js";
|
|
7
|
+
import { I as we } from "../InputGroup-CW55G5nE.js";
|
|
8
|
+
import { u as v, C as U } from "../TextInput-CoL8nOyt.js";
|
|
9
|
+
import { T as be } from "../TextInput-CoL8nOyt.js";
|
|
10
10
|
import { C as E } from "../circle-x-u75Rx3Tj.js";
|
|
11
11
|
import { C as A } from "../check-CeyaOoZv.js";
|
|
12
12
|
import { D as K } from "../download-BHsj218e.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye.js","../../src/components/input/input/Input.tsx","../../src/components/input/web-input/WebInput.tsx","../../src/lib/utils/file/downloadFile.ts","../../src/components/input/file-input/FileInput.tsx","../../src/components/input/secret-input/SecretInput.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 EyeOff = createLucideIcon(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\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 Eye = createLucideIcon(\"Eye\", [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","import React, { useRef } from \"react\";\nimport { useMergeRefs } from \"../../../hooks/useMergeRefs\";\nimport { useCustomValidity } from \"../../../hooks/useCustomValidity\";\nimport { inputBaseControlStyles } from \"../styles/inputBaseStyles\";\nimport { tv } from \"tailwind-variants\";\n\nexport type InputProps = React.ComponentProps<\"input\"> & {\n\t/** Текст сообщения об ошибке. При наличии делает поле невалидным */\n\terror?: string;\n};\n\nconst inputStyles = tv({\n\textend: inputBaseControlStyles,\n\tbase: \"h-10 lg:h-9\"\n});\n\n/**\n * Стилизованный базовый компонент для создания инпутов.\n */\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n\t({ type = \"text\", className, error, ...other }, ref) => {\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\ttype={type}\n\t\t\t\tclassName={inputStyles({ className })}\n\t\t\t\tref={mergedRef}\n\t\t\t\taria-invalid={!!error}\n\t\t\t\t{...other}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInput.displayName = \"Input\";\n\nexport default Input;\n","import React from \"react\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { useInputWithActions } from \"@/hooks/useInputWithActions\";\nimport { InputGroup, InputGroupInput, InputGroupText, InputGroupButton } from \"../input-group/InputGroup\";\nimport { CircleX, Copy, Check } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\n\nconst webInputStyles = tv({\n\tbase: \"group\",\n\tslots: {\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\"\n\t}\n});\n\nexport interface WebInputProps extends Omit<React.ComponentProps<\"input\">, \"onChange\"> {\n\t/** Содержимое в начале поля (например, префикс URL) */\n\tstartContent?: React.ReactNode;\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Флаг для отображения кнопки копирования значения */\n\tshowCopyIcon?: boolean;\n\t/** Колбэк на изменение значения */\n\tonChange?: (value: string | null) => void;\n\t/** Текст сообщения об ошибке */\n\terror?: string;\n}\n\nexport const WebInput = React.forwardRef<HTMLInputElement, WebInputProps>(\n\t(\n\t\t{\n\t\t\tstartContent = \"https://\",\n\t\t\tshowClearIcon = true,\n\t\t\tshowCopyIcon = true,\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst styles = webInputStyles();\n\n\t\tconst inputActions = useInputWithActions({\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\tshowClearIcon,\n\t\t\tshowCopyIcon\n\t\t});\n\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\n\n\t\treturn (\n\t\t\t<InputGroup className={styles.base({ className })}>\n\t\t\t\t{startContent != null && <InputGroupText type=\"primary\">{startContent}</InputGroupText>}\n\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={inputActions.handleChange}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\terror={error}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\n\t\t\t\t{inputActions.shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={CircleX}\n\t\t\t\t\t\tonClick={inputActions.handleClear}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nWebInput.displayName = \"WebInput\";\n\nexport default WebInput;\n","import { FileValue } from \"@/components/input\";\n\nexport function downloadFile(value: FileValue) {\n\tif (!value) return;\n\n\tif (value instanceof File) {\n\t\t// Логика для браузерного File объекта\n\t\tconst url = URL.createObjectURL(value);\n\t\tconst link = document.createElement(\"a\");\n\t\tlink.href = url;\n\t\tlink.download = value.name;\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\t\t// Освобождаем память\n\t\tURL.revokeObjectURL(url);\n\t} else if (value.url) {\n\t\t// Логика для FileInfo с URL\n\t\tconst link = document.createElement(\"a\");\n\t\tlink.href = value.url;\n\t\tlink.download = value.name;\n\t\tlink.target = \"_blank\";\n\t\tdocument.body.appendChild(link);\n\t\tlink.click();\n\t\tdocument.body.removeChild(link);\n\t}\n}\n","import React, { useRef, useCallback, useState, useEffect } from \"react\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { InputGroup, InputGroupButton, InputGroupText } from \"../input-group/InputGroup\";\nimport { CircleX, Download } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\nimport { downloadFile } from \"@/lib/utils/file/downloadFile\";\n\nconst fileInputStyles = tv({\n\tbase: \"group relative cursor-pointer\",\n\tslots: {\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\",\n\t\tfileDisplay:\n\t\t\t\"flex min-w-0 flex-1 items-center truncate bg-transparent px-3 py-2.5 italic text-primary-fg lg:py-2\",\n\t\tplaceholder: \"text-muted\"\n\t}\n});\n\n/** Упрощенная информация о файле */\nexport interface FileInfo {\n\t/** id файла */\n\tid: number;\n\t/** Имя файла */\n\tname: string;\n\t/** URL для скачивания или просмотра файла */\n\turl: string;\n\t/** Размер файла в байтах (опционально) */\n\tsize?: number;\n\t/** MIME-тип файла (опционально) */\n\ttype?: string;\n}\n\n/** Тип файла - либо браузерный File, либо упрощенная FileInfo */\nexport type FileValue = File | FileInfo | null;\n\nexport interface FileInputProps\n\textends Omit<React.ComponentProps<\"input\">, \"type\" | \"onChange\" | \"value\" | \"defaultValue\"> {\n\t/** Текущий файл (для controlled режима) */\n\tvalue?: FileValue;\n\t/** Файл по умолчанию (для uncontrolled режима) */\n\tdefaultValue?: FileValue;\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Колбэк на изменение файла */\n\tonChange?: (file: FileValue) => void;\n\t/** Текст сообщения об ошибке */\n\terror?: string;\n\t/** Плейсхолдер для отображения когда файл не выбран */\n\tplaceholder?: string;\n\t/** Текст кнопки выбора файла */\n\tchooseButtonText?: string;\n}\n\nexport const FileInput = React.forwardRef<HTMLInputElement, FileInputProps>(\n\t(\n\t\t{\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tshowClearIcon = true,\n\t\t\tonChange,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tclassName,\n\t\t\tplaceholder = \"File not selected\",\n\t\t\tchooseButtonText = \"Choose file\",\n\t\t\taccept,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst styles = fileInputStyles();\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst [internalValue, setInternalValue] = useState<FileValue>(defaultValue || null);\n\n\t\tconst mergedRef = useMergeRefs(ref, inputRef);\n\n\t\t// Определяем, находимся ли мы в controlled режиме\n\t\tconst isControlled = value !== undefined;\n\t\tconst currentValue = isControlled ? value : internalValue;\n\n\t\t// Синхронизируем внутреннее состояние с defaultValue при изменении\n\t\tuseEffect(() => {\n\t\t\tif (!isControlled && defaultValue !== undefined) {\n\t\t\t\tsetInternalValue(defaultValue);\n\t\t\t}\n\t\t}, [defaultValue, isControlled]);\n\n\t\tconst handleFileChange = useCallback(\n\t\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\t\tconst file = event.target.files?.[0] || null;\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(file);\n\t\t\t\t}\n\n\t\t\t\tonChange?.(file);\n\t\t\t},\n\t\t\t[onChange, isControlled]\n\t\t);\n\n\t\tconst handleClear = useCallback(\n\t\t\t(e: React.MouseEvent) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\tif (inputRef.current) {\n\t\t\t\t\tinputRef.current.value = \"\";\n\t\t\t\t}\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(null);\n\t\t\t\t}\n\n\t\t\t\tonChange?.(null);\n\t\t\t},\n\t\t\t[onChange, isControlled]\n\t\t);\n\n\t\tconst handleChooseFile = useCallback(() => {\n\t\t\tif (!currentValue) {\n\t\t\t\tinputRef.current?.click();\n\t\t\t}\n\t\t}, [currentValue]);\n\n\t\tconst handleDownload = useCallback(() => downloadFile(currentValue), [currentValue]);\n\n\t\tconst shouldShowClearIcon = showClearIcon && currentValue && !disabled;\n\t\tconst shouldShowDownloadIcon =\n\t\t\tcurrentValue && (currentValue instanceof File || (!(currentValue instanceof File) && currentValue.url));\n\n\t\t// Получаем имя файла для отображения\n\t\tconst getFileName = (fileValue: FileValue): string | null => {\n\t\t\tif (!fileValue) return null;\n\t\t\tif (fileValue instanceof File) {\n\t\t\t\treturn fileValue.name;\n\t\t\t}\n\t\t\treturn fileValue.name;\n\t\t};\n\n\t\tconst fileName = getFileName(currentValue);\n\n\t\treturn (\n\t\t\t<InputGroup className={styles.base({ className })} onClick={handleChooseFile}>\n\t\t\t\t<InputGroupText type=\"primary\">{chooseButtonText}</InputGroupText>\n\n\t\t\t\t<div className={styles.fileDisplay()}>\n\t\t\t\t\t{fileName ? <span>{fileName}</span> : <span className={styles.placeholder()}>{placeholder}</span>}\n\t\t\t\t</div>\n\n\t\t\t\t{shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={handleClear} type=\"button\" className={styles.action()} />\n\t\t\t\t)}\n\n\t\t\t\t{shouldShowDownloadIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={Download}\n\t\t\t\t\t\tonClick={handleDownload}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<input\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\ttype=\"file\"\n\t\t\t\t\tonChange={handleFileChange}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\taccept={accept}\n\t\t\t\t\tclassName=\"sr-only\"\n\t\t\t\t\taria-invalid={!!error}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nFileInput.displayName = \"FileInput\";\n\nexport default FileInput;\n","import { useInputWithActions } from \"@/hooks/useInputWithActions\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { Check, CircleX, Copy, Eye, EyeOff } from \"lucide-react\";\nimport React, { HTMLAttributes, useCallback, useState } from \"react\";\nimport { InputGroup, InputGroupButton, InputGroupInput } from \"../input-group/InputGroup\";\nimport { InputProps } from \"../input/Input\";\n\nexport interface SecretInputProps\n\textends Omit<InputProps, \"onChange\" | \"type\">,\n\t\tOmit<HTMLAttributes<HTMLInputElement>, \"onChange\" | \"type\"> {\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Флаг для отображения кнопки копирования значения */\n\tshowCopyIcon?: boolean;\n\t/** Колбэк на изменение значения */\n\tonChange?: (value: string | null) => void;\n}\n\n/**\n * Компонент для ввода секретных данных с возможностью переключения видимости текста.\n */\nexport const SecretInput = React.forwardRef<HTMLInputElement, SecretInputProps>(\n\t(\n\t\t{ showClearIcon, showCopyIcon, value, defaultValue, onChange, readOnly, disabled, error, className, ...props },\n\t\tref\n\t) => {\n\t\tconst [type, setType] = useState<\"password\" | \"text\">(\"password\");\n\n\t\tconst handleShowValueToggle = useCallback(() => {\n\t\t\tsetType((prev) => (prev === \"password\" ? \"text\" : \"password\"));\n\t\t}, []);\n\n\t\tconst inputActions = useInputWithActions({\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\tshowClearIcon,\n\t\t\tshowCopyIcon\n\t\t});\n\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\n\n\t\treturn (\n\t\t\t<InputGroup className={className}>\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={inputActions.handleChange}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\terror={error}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\n\t\t\t\t{inputActions.shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={inputActions.handleClear} type=\"button\" />\n\t\t\t\t)}\n\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<InputGroupButton icon={type === \"password\" ? Eye : EyeOff} onClick={handleShowValueToggle} />\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nSecretInput.displayName = \"SecretInput\";\n"],"names":["EyeOff","createLucideIcon","Eye","inputStyles","tv","inputBaseControlStyles","Input","React","type","className","error","other","ref","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","webInputStyles","WebInput","startContent","showClearIcon","showCopyIcon","value","defaultValue","onChange","readOnly","disabled","props","styles","inputActions","useInputWithActions","jsxs","InputGroup","InputGroupText","InputGroupInput","InputGroupButton","CircleX","Check","Copy","downloadFile","url","link","fileInputStyles","FileInput","placeholder","chooseButtonText","accept","internalValue","setInternalValue","useState","isControlled","currentValue","useEffect","handleFileChange","useCallback","event","file","handleClear","e","handleChooseFile","handleDownload","shouldShowClearIcon","shouldShowDownloadIcon","fileName","fileValue","Download","SecretInput","setType","handleShowValueToggle","prev"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"input.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye-off.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/eye.js","../../src/components/input/input/Input.tsx","../../src/components/input/web-input/WebInput.tsx","../../src/lib/utils/file/downloadFile.ts","../../src/components/input/file-input/FileInput.tsx","../../src/components/input/secret-input/SecretInput.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 EyeOff = createLucideIcon(\"EyeOff\", [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n]);\n\nexport { EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\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 Eye = createLucideIcon(\"Eye\", [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n]);\n\nexport { Eye as default };\n//# sourceMappingURL=eye.js.map\n","import React, { useRef } from \"react\";\r\nimport { useMergeRefs } from \"../../../hooks/useMergeRefs\";\r\nimport { useCustomValidity } from \"../../../hooks/useCustomValidity\";\r\nimport { inputBaseControlStyles } from \"../styles/inputBaseStyles\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport type InputProps = React.ComponentProps<\"input\"> & {\r\n\t/** Текст сообщения об ошибке. При наличии делает поле невалидным */\r\n\terror?: string;\r\n};\r\n\r\nconst inputStyles = tv({\r\n\textend: inputBaseControlStyles,\r\n\tbase: \"h-10 lg:h-9\"\r\n});\r\n\r\n/**\r\n * Стилизованный базовый компонент для создания инпутов.\r\n */\r\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\r\n\t({ type = \"text\", className, error, ...other }, ref) => {\r\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\t\tconst mergedRef = useMergeRefs(inputRef, ref);\r\n\r\n\t\tuseCustomValidity(inputRef, error);\r\n\r\n\t\treturn (\r\n\t\t\t<input\r\n\t\t\t\ttype={type}\r\n\t\t\t\tclassName={inputStyles({ className })}\r\n\t\t\t\tref={mergedRef}\r\n\t\t\t\taria-invalid={!!error}\r\n\t\t\t\t{...other}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nInput.displayName = \"Input\";\r\n\r\nexport default Input;\r\n","import React from \"react\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { useInputWithActions } from \"@/hooks/useInputWithActions\";\r\nimport { InputGroup, InputGroupInput, InputGroupText, InputGroupButton } from \"../input-group/InputGroup\";\r\nimport { CircleX, Copy, Check } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst webInputStyles = tv({\r\n\tbase: \"group\",\r\n\tslots: {\r\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\"\r\n\t}\r\n});\r\n\r\nexport interface WebInputProps extends Omit<React.ComponentProps<\"input\">, \"onChange\"> {\r\n\t/** Содержимое в начале поля (например, префикс URL) */\r\n\tstartContent?: React.ReactNode;\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Флаг для отображения кнопки копирования значения */\r\n\tshowCopyIcon?: boolean;\r\n\t/** Колбэк на изменение значения */\r\n\tonChange?: (value: string | null) => void;\r\n\t/** Текст сообщения об ошибке */\r\n\terror?: string;\r\n}\r\n\r\nexport const WebInput = React.forwardRef<HTMLInputElement, WebInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tstartContent = \"https://\",\r\n\t\t\tshowClearIcon = true,\r\n\t\t\tshowCopyIcon = true,\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\terror,\r\n\t\t\tclassName,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = webInputStyles();\r\n\r\n\t\tconst inputActions = useInputWithActions({\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\tshowClearIcon,\r\n\t\t\tshowCopyIcon\r\n\t\t});\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={styles.base({ className })}>\r\n\t\t\t\t{startContent != null && <InputGroupText type=\"primary\">{startContent}</InputGroupText>}\r\n\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\tvalue={value}\r\n\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\tonChange={inputActions.handleChange}\r\n\t\t\t\t\treadOnly={readOnly}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\terror={error}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{inputActions.shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={CircleX}\r\n\t\t\t\t\t\tonClick={inputActions.handleClear}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\r\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nWebInput.displayName = \"WebInput\";\r\n\r\nexport default WebInput;\r\n","import { FileValue } from \"@/components/input\";\r\n\r\nexport function downloadFile(value: FileValue) {\r\n\tif (!value) return;\r\n\r\n\tif (value instanceof File) {\r\n\t\t// Логика для браузерного File объекта\r\n\t\tconst url = URL.createObjectURL(value);\r\n\t\tconst link = document.createElement(\"a\");\r\n\t\tlink.href = url;\r\n\t\tlink.download = value.name;\r\n\t\tdocument.body.appendChild(link);\r\n\t\tlink.click();\r\n\t\tdocument.body.removeChild(link);\r\n\t\t// Освобождаем память\r\n\t\tURL.revokeObjectURL(url);\r\n\t} else if (value.url) {\r\n\t\t// Логика для FileInfo с URL\r\n\t\tconst link = document.createElement(\"a\");\r\n\t\tlink.href = value.url;\r\n\t\tlink.download = value.name;\r\n\t\tlink.target = \"_blank\";\r\n\t\tdocument.body.appendChild(link);\r\n\t\tlink.click();\r\n\t\tdocument.body.removeChild(link);\r\n\t}\r\n}\r\n","import React, { useRef, useCallback, useState, useEffect } from \"react\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { InputGroup, InputGroupButton, InputGroupText } from \"../input-group/InputGroup\";\r\nimport { CircleX, Download } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { downloadFile } from \"@/lib/utils/file/downloadFile\";\r\n\r\nconst fileInputStyles = tv({\r\n\tbase: \"group relative cursor-pointer\",\r\n\tslots: {\r\n\t\taction: \"opacity-0 group-focus-within:opacity-100 group-hover:opacity-100\",\r\n\t\tfileDisplay:\r\n\t\t\t\"flex min-w-0 flex-1 items-center truncate bg-transparent px-3 py-2.5 italic text-primary-fg lg:py-2\",\r\n\t\tplaceholder: \"text-muted\"\r\n\t}\r\n});\r\n\r\n/** Упрощенная информация о файле */\r\nexport interface FileInfo {\r\n\t/** id файла */\r\n\tid: number;\r\n\t/** Имя файла */\r\n\tname: string;\r\n\t/** URL для скачивания или просмотра файла */\r\n\turl: string;\r\n\t/** Размер файла в байтах (опционально) */\r\n\tsize?: number;\r\n\t/** MIME-тип файла (опционально) */\r\n\ttype?: string;\r\n}\r\n\r\n/** Тип файла - либо браузерный File, либо упрощенная FileInfo */\r\nexport type FileValue = File | FileInfo | null;\r\n\r\nexport interface FileInputProps\r\n\textends Omit<React.ComponentProps<\"input\">, \"type\" | \"onChange\" | \"value\" | \"defaultValue\"> {\r\n\t/** Текущий файл (для controlled режима) */\r\n\tvalue?: FileValue;\r\n\t/** Файл по умолчанию (для uncontrolled режима) */\r\n\tdefaultValue?: FileValue;\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Колбэк на изменение файла */\r\n\tonChange?: (file: FileValue) => void;\r\n\t/** Текст сообщения об ошибке */\r\n\terror?: string;\r\n\t/** Плейсхолдер для отображения когда файл не выбран */\r\n\tplaceholder?: string;\r\n\t/** Текст кнопки выбора файла */\r\n\tchooseButtonText?: string;\r\n}\r\n\r\nexport const FileInput = React.forwardRef<HTMLInputElement, FileInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tshowClearIcon = true,\r\n\t\t\tonChange,\r\n\t\t\tdisabled,\r\n\t\t\terror,\r\n\t\t\tclassName,\r\n\t\t\tplaceholder = \"File not selected\",\r\n\t\t\tchooseButtonText = \"Choose file\",\r\n\t\t\taccept,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = fileInputStyles();\r\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\t\tconst [internalValue, setInternalValue] = useState<FileValue>(defaultValue || null);\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputRef);\r\n\r\n\t\t// Определяем, находимся ли мы в controlled режиме\r\n\t\tconst isControlled = value !== undefined;\r\n\t\tconst currentValue = isControlled ? value : internalValue;\r\n\r\n\t\t// Синхронизируем внутреннее состояние с defaultValue при изменении\r\n\t\tuseEffect(() => {\r\n\t\t\tif (!isControlled && defaultValue !== undefined) {\r\n\t\t\t\tsetInternalValue(defaultValue);\r\n\t\t\t}\r\n\t\t}, [defaultValue, isControlled]);\r\n\r\n\t\tconst handleFileChange = useCallback(\r\n\t\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\t\tconst file = event.target.files?.[0] || null;\r\n\r\n\t\t\t\tif (!isControlled) {\r\n\t\t\t\t\tsetInternalValue(file);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tonChange?.(file);\r\n\t\t\t},\r\n\t\t\t[onChange, isControlled]\r\n\t\t);\r\n\r\n\t\tconst handleClear = useCallback(\r\n\t\t\t(e: React.MouseEvent) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tif (inputRef.current) {\r\n\t\t\t\t\tinputRef.current.value = \"\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!isControlled) {\r\n\t\t\t\t\tsetInternalValue(null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tonChange?.(null);\r\n\t\t\t},\r\n\t\t\t[onChange, isControlled]\r\n\t\t);\r\n\r\n\t\tconst handleChooseFile = useCallback(() => {\r\n\t\t\tif (!currentValue) {\r\n\t\t\t\tinputRef.current?.click();\r\n\t\t\t}\r\n\t\t}, [currentValue]);\r\n\r\n\t\tconst handleDownload = useCallback(() => downloadFile(currentValue), [currentValue]);\r\n\r\n\t\tconst shouldShowClearIcon = showClearIcon && currentValue && !disabled;\r\n\t\tconst shouldShowDownloadIcon =\r\n\t\t\tcurrentValue && (currentValue instanceof File || (!(currentValue instanceof File) && currentValue.url));\r\n\r\n\t\t// Получаем имя файла для отображения\r\n\t\tconst getFileName = (fileValue: FileValue): string | null => {\r\n\t\t\tif (!fileValue) return null;\r\n\t\t\tif (fileValue instanceof File) {\r\n\t\t\t\treturn fileValue.name;\r\n\t\t\t}\r\n\t\t\treturn fileValue.name;\r\n\t\t};\r\n\r\n\t\tconst fileName = getFileName(currentValue);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={styles.base({ className })} onClick={handleChooseFile}>\r\n\t\t\t\t<InputGroupText type=\"primary\">{chooseButtonText}</InputGroupText>\r\n\r\n\t\t\t\t<div className={styles.fileDisplay()}>\r\n\t\t\t\t\t{fileName ? <span>{fileName}</span> : <span className={styles.placeholder()}>{placeholder}</span>}\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={handleClear} type=\"button\" className={styles.action()} />\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{shouldShowDownloadIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={Download}\r\n\t\t\t\t\t\tonClick={handleDownload}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<input\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\ttype=\"file\"\r\n\t\t\t\t\tonChange={handleFileChange}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\taccept={accept}\r\n\t\t\t\t\tclassName=\"sr-only\"\r\n\t\t\t\t\taria-invalid={!!error}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFileInput.displayName = \"FileInput\";\r\n\r\nexport default FileInput;\r\n","import { useInputWithActions } from \"@/hooks/useInputWithActions\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { Check, CircleX, Copy, Eye, EyeOff } from \"lucide-react\";\r\nimport React, { HTMLAttributes, useCallback, useState } from \"react\";\r\nimport { InputGroup, InputGroupButton, InputGroupInput } from \"../input-group/InputGroup\";\r\nimport { InputProps } from \"../input/Input\";\r\n\r\nexport interface SecretInputProps\r\n\textends Omit<InputProps, \"onChange\" | \"type\">,\r\n\t\tOmit<HTMLAttributes<HTMLInputElement>, \"onChange\" | \"type\"> {\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Флаг для отображения кнопки копирования значения */\r\n\tshowCopyIcon?: boolean;\r\n\t/** Колбэк на изменение значения */\r\n\tonChange?: (value: string | null) => void;\r\n}\r\n\r\n/**\r\n * Компонент для ввода секретных данных с возможностью переключения видимости текста.\r\n */\r\nexport const SecretInput = React.forwardRef<HTMLInputElement, SecretInputProps>(\r\n\t(\r\n\t\t{ showClearIcon, showCopyIcon, value, defaultValue, onChange, readOnly, disabled, error, className, ...props },\r\n\t\tref\r\n\t) => {\r\n\t\tconst [type, setType] = useState<\"password\" | \"text\">(\"password\");\r\n\r\n\t\tconst handleShowValueToggle = useCallback(() => {\r\n\t\t\tsetType((prev) => (prev === \"password\" ? \"text\" : \"password\"));\r\n\t\t}, []);\r\n\r\n\t\tconst inputActions = useInputWithActions({\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\tshowClearIcon,\r\n\t\t\tshowCopyIcon\r\n\t\t});\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={className}>\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\ttype={type}\r\n\t\t\t\t\tvalue={value}\r\n\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\tonChange={inputActions.handleChange}\r\n\t\t\t\t\treadOnly={readOnly}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\terror={error}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{inputActions.shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton icon={CircleX} onClick={inputActions.handleClear} type=\"button\" />\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\r\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<InputGroupButton icon={type === \"password\" ? Eye : EyeOff} onClick={handleShowValueToggle} />\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nSecretInput.displayName = \"SecretInput\";\r\n"],"names":["EyeOff","createLucideIcon","Eye","inputStyles","tv","inputBaseControlStyles","Input","React","type","className","error","other","ref","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","webInputStyles","WebInput","startContent","showClearIcon","showCopyIcon","value","defaultValue","onChange","readOnly","disabled","props","styles","inputActions","useInputWithActions","jsxs","InputGroup","InputGroupText","InputGroupInput","InputGroupButton","CircleX","Check","Copy","downloadFile","url","link","fileInputStyles","FileInput","placeholder","chooseButtonText","accept","internalValue","setInternalValue","useState","isControlled","currentValue","useEffect","handleFileChange","useCallback","event","file","handleClear","e","handleChooseFile","handleDownload","shouldShowClearIcon","shouldShowDownloadIcon","fileName","fileValue","Download","SecretInput","setType","handleShowValueToggle","prev"],"mappings":"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","x_google_ignoreList":[0,1]}
|
package/dist/components/label.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { a as b } from "../MenuItem-
|
|
2
|
-
import { M as ae, m as ie } from "../MenuItem-
|
|
1
|
+
import { a as b } from "../MenuItem-C51uFz3V.js";
|
|
2
|
+
import { M as ae, m as ie } from "../MenuItem-C51uFz3V.js";
|
|
3
3
|
import { jsx as t, jsxs as m, Fragment as h } from "react/jsx-runtime";
|
|
4
4
|
import { T as o } from "../index-BVqs-uqP.js";
|
|
5
5
|
import I from "react";
|
|
6
|
-
import { B as N } from "../Button-
|
|
6
|
+
import { B as N } from "../Button-_qdP4hSf.js";
|
|
7
7
|
import { u, n as p } from "../ComponentVariantProvider-brk0g-hm.js";
|
|
8
8
|
import { I as c } from "../Icon-DH3ev9GK.js";
|
|
9
|
-
import { I as M } from "../IconButton-
|
|
9
|
+
import { I as M } from "../IconButton-DAg1oMwz.js";
|
|
10
10
|
import { M as T } from "../MenuItemShortcut-D1faeIXp.js";
|
|
11
11
|
import { M as v } from "../MenuItemText-CRpaPbvg.js";
|
|
12
12
|
import { c as S } from "../cn-dsXlqdJg.js";
|
|
13
13
|
import { C as l } from "../check-CeyaOoZv.js";
|
|
14
14
|
import { F as w } from "../FeatureIcon-BGE0Orkc.js";
|
|
15
|
-
import { r as k } from "../RichButton-
|
|
15
|
+
import { r as k } from "../RichButton-Bt0yUShU.js";
|
|
16
16
|
const B = o({
|
|
17
|
-
base: "hover:cursor-pointer focus-visible:outline-
|
|
17
|
+
base: "hover:cursor-pointer focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-primary"
|
|
18
18
|
}), A = I.forwardRef(
|
|
19
19
|
({ className: n, children: r, ...e }, s) => /* @__PURE__ */ t(b, { ref: s, className: B({ className: n }), tabIndex: 0, ...e, children: r })
|
|
20
20
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-item.js","sources":["../../src/components/menu-item/MenuItemAction.tsx","../../src/components/menu-item/components/menu-item-button/MenuItemButton.tsx","../../src/components/menu-item/components/menu-item-icon/MenuItemIcon.tsx","../../src/components/menu-item/components/menu-item-icon-button/MenuItemIconButton.tsx","../../src/components/menu-item/components/menu-item-secondary-text/MenuItemSecondaryText.tsx","../../src/components/menu-item/templates/menu-item-action-template/MenuItemActionTemplate.tsx","../../src/components/menu-item/templates/menu-item-common-template/MenuItemCommonTemplate.tsx","../../src/components/menu-item/templates/menu-item-info-template/MenuItemInfoTemplate.tsx","../../src/components/menu-item/templates/menu-item-interactive-template/MenuItemInteractiveTemplate.tsx","../../src/components/menu-item/templates/menu-item-rich-template/MenuItemRichTemplate.tsx"],"sourcesContent":["import { tv } from \"tailwind-variants\";\nimport { MenuItem, MenuItemProps } from \"./MenuItem\";\nimport { PropsWithChildren } from \"react\";\nimport React from \"react\";\n\nconst menuItemActionStyles = tv({\n\tbase: \"hover:cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\"\n});\n\nexport type MenuActionItemProps = MenuItemProps;\n\nexport const MenuItemAction = React.forwardRef<HTMLDivElement, PropsWithChildren<MenuActionItemProps>>(\n\t({ className, children, ...props }, ref) => (\n\t\t<MenuItem ref={ref} className={menuItemActionStyles({ className })} tabIndex={0} {...props}>\n\t\t\t{children}\n\t\t</MenuItem>\n\t)\n);\n\nMenuItemAction.displayName = \"MenuItemAction\";\n","import { Button } from \"@/components/button\";\nimport { ButtonProps } from \"@/components/button/button/Button\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\ntype MenuItemButtonProps = Omit<ButtonProps, \"variant\" | \"status\"> & {\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\n};\n\nexport const menuItemButtonVariants = tv({\n\tvariants: {\n\t\ttheme: {\n\t\t\tinverse: \"text-inverse-primary-fg\"\n\t\t},\n\t\tvariant: {\n\t\t\toutline: \"\",\n\t\t\tghost: \"\",\n\t\t\ttext: \"\",\n\t\t\tlink: \"\"\n\t\t}\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"outline\",\n\t\t\tclass: \"border-inverse-border bg-inverse-primary-bg active:border-inverse-border active:bg-inverse-hover lg:hover:border-inverse-border lg:hover:bg-inverse-hover\"\n\t\t},\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"ghost\",\n\t\t\tclass: \"active:bg-inverse-hover lg:hover:bg-inverse-hover\"\n\t\t},\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"text\",\n\t\t\tclass: \"active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\n\t\t},\n\t\t{\n\t\t\ttheme: \"inverse\",\n\t\t\tvariant: \"link\",\n\t\t\tclass: \"text-inverse-muted underline active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\n\t\t}\n\t]\n});\n\nconst menuItemButtonStyles = tv({\n\textend: menuItemButtonVariants,\n\tbase: \"h-6 rounded-sm py-1\"\n});\n\nexport const MenuItemButton = React.forwardRef<HTMLButtonElement, MenuItemButtonProps>(\n\t({ className, variant = \"ghost\", ...props }, ref) => {\n\t\tconst { variant: componentVariant } = useComponentVariant();\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\tdata-menu-item-action\n\t\t\t\tsize=\"xs\"\n\t\t\t\tvariant={variant}\n\t\t\t\tclassName={menuItemButtonStyles({ className, theme, variant })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nMenuItemButton.displayName = \"MenuItemButton\";\n","import { Icon } from \"@/components/icon\";\nimport { IconProps } from \"@/components/icon/Icon\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport { tv } from \"tailwind-variants\";\n\nconst menuItemIconStyles = tv({\n\tbase: \"truncate text-sm text-primary-fg\",\n\tvariants: {\n\t\ttheme: {\n\t\t\tinverse: \"text-inverse-primary-fg\"\n\t\t}\n\t}\n});\n\ntype MenuItemIconProps = IconProps;\n\nexport const MenuItemIcon = ({ className, icon, ...props }: MenuItemIconProps) => {\n\tconst { variant } = useComponentVariant();\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\n\n\treturn <Icon icon={icon} className={menuItemIconStyles({ className, theme })} {...props} />;\n};\n\nMenuItemIcon.displayName = \"MenuItemIcon\";\n","import { IconButton } from \"@/components/button\";\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\nimport { tv } from \"tailwind-variants\";\nimport React from \"react\";\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport { menuItemButtonVariants } from \"../menu-item-button/MenuItemButton\";\n\ntype MenuItemIconProps = Omit<IconButtonProps, \"variant\" | \"status\"> & {\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\n};\n\nconst menuItemIconButtonStyles = tv({\n\textend: menuItemButtonVariants,\n\tbase: \"h-6 w-6 rounded-sm\"\n});\n\nexport const MenuItemIconButton = React.forwardRef<HTMLButtonElement, MenuItemIconProps>(\n\t({ className, icon, variant = \"ghost\", ...props }, ref) => {\n\t\tconst { variant: componentVariant } = useComponentVariant();\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\n\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\tref={ref}\n\t\t\t\ticon={icon}\n\t\t\t\tdata-menu-item-action\n\t\t\t\tsize=\"xs\"\n\t\t\t\tvariant={variant}\n\t\t\t\tstatus=\"default\"\n\t\t\t\tclassName={menuItemIconButtonStyles({ className, theme, variant })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nMenuItemIconButton.displayName = \"MenuItemIconButton\";\n","import { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport const menuItemSecondaryTextStyles = tv({\n\tbase: \"truncate text-xs text-muted\",\n\tvariants: {\n\t\ttheme: {\n\t\t\tinverse: \"text-inverse-muted\"\n\t\t}\n\t}\n});\n\ntype MenuItemTextProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const MenuItemSecondaryText = ({ className, children, ...props }: MenuItemTextProps) => {\n\tconst { variant } = useComponentVariant();\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\n\n\treturn (\n\t\t<span className={menuItemSecondaryTextStyles({ className, theme })} {...props}>\n\t\t\t{children}\n\t\t</span>\n\t);\n};\n\nMenuItemSecondaryText.displayName = \"MenuItemSecondaryText\";\n","import { PropsWithChildren } from \"react\";\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { MenuItemShortcut } from \"../../components/menu-item-shortcut/MenuItemShortcut\";\n\ntype MenuItemActionTemplateProps = {\n\ticon: LucideIcon;\n\ttext: string;\n\tshortcut?: string;\n};\n\nexport const MenuItemActionTemplate = ({ icon, text, shortcut }: PropsWithChildren<MenuItemActionTemplateProps>) => {\n\treturn (\n\t\t<>\n\t\t\t<MenuItemIcon icon={icon} />\n\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t{shortcut && <MenuItemShortcut>{shortcut}</MenuItemShortcut>}\n\t\t</>\n\t);\n};\n\nMenuItemActionTemplate.displayName = \"MenuItemActionTemplate\";\n","import { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { Icon } from \"@/components/icon\";\nimport { Check, LucideIcon } from \"lucide-react\";\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\nimport { cn } from \"@/lib/utils\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface MenuItemCommonTemplateVariants {\n\tisSelected?: boolean;\n}\n\nconst menuItemCommonTemplateStyles = tv({\n\tslots: {\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\n\t\tcheck: \"invisible\",\n\t\trightIcon: \"ml-auto\"\n\t},\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: {\n\t\t\t\tcheck: \"visible\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<MenuItemCommonTemplateVariants>\n});\n\ntype MenuItemCommonTemplateProps = MenuItemCommonTemplateVariants & {\n\ttext: string;\n\ticon: LucideIcon;\n\tshowStartCheck?: boolean;\n\tshowEndCheck?: boolean;\n};\n\nexport const MenuItemCommonTemplate = ({\n\ticon,\n\ttext,\n\tisSelected,\n\tshowStartCheck = false,\n\tshowEndCheck = false\n}: PropsWithChildren<MenuItemCommonTemplateProps>) => {\n\tconst styles = menuItemCommonTemplateStyles();\n\n\treturn (\n\t\t<div className={styles.wrapper()}>\n\t\t\t{showStartCheck && <Icon icon={Check} className={styles.check({ isSelected })} />}\n\t\t\t<div className={styles.contentWrapper()}>\n\t\t\t\t<MenuItemIcon icon={icon} />\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t</div>\n\t\t\t{showEndCheck && <Icon icon={Check} className={cn(styles.rightIcon(), styles.check({ isSelected }))} />}\n\t\t</div>\n\t);\n};\n\nMenuItemCommonTemplate.displayName = \"MenuItemCommonTemplate\";\n","import { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\nimport { Icon } from \"@/components/icon\";\nimport { Check } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface MenuItemInfoTemplateVariants {\n\tisSelected?: boolean;\n}\n\nconst menuItemInfoTemplateStyles = tv({\n\tslots: {\n\t\tcheck: \"invisible\"\n\t},\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: {\n\t\t\t\tcheck: \"visible\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<MenuItemInfoTemplateVariants>\n});\n\ntype MenuItemInfoTemplateProps = MenuItemInfoTemplateVariants & {\n\ttext: string;\n\tdescription?: string;\n};\n\nexport const MenuItemInfoTemplate = ({\n\tdescription,\n\ttext,\n\tisSelected\n}: PropsWithChildren<MenuItemInfoTemplateProps>) => {\n\tconst styles = menuItemInfoTemplateStyles();\n\n\treturn (\n\t\t<>\n\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\n\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t{description && <MenuItemSecondaryText>{description}</MenuItemSecondaryText>}\n\t\t</>\n\t);\n};\n\nMenuItemInfoTemplate.displayName = \"MenuItemInfoTemplate\";\n","import { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\nimport { Icon } from \"@/components/icon\";\nimport { Check, LucideIcon } from \"lucide-react\";\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\nimport { MenuItemIconButton } from \"../../components/menu-item-icon-button/MenuItemIconButton\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface MenuItemInteractiveTemplateVariants {\n\tisSelected?: boolean;\n}\n\nconst menuItemInteractiveTemplateStyles = tv({\n\tslots: {\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\n\t\tcheck: \"invisible\",\n\t\tbutton: \"ml-auto\"\n\t},\n\tvariants: {\n\t\tisSelected: {\n\t\t\ttrue: {\n\t\t\t\tcheck: \"visible\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<MenuItemInteractiveTemplateVariants>\n});\n\ntype MenuItemInteractiveTemplateProps = MenuItemInteractiveTemplateVariants & {\n\ttext: string;\n\ticon: LucideIcon;\n\tbuttonIcon: LucideIcon;\n\tbuttonOnClick?: (e: React.MouseEvent) => void;\n};\n\nexport const MenuItemInteractiveTemplate = ({\n\ttext,\n\ticon,\n\tbuttonIcon,\n\tbuttonOnClick,\n\tisSelected\n}: PropsWithChildren<MenuItemInteractiveTemplateProps>) => {\n\tconst styles = menuItemInteractiveTemplateStyles();\n\n\treturn (\n\t\t<div className={styles.wrapper()}>\n\t\t\t<div className={styles.contentWrapper()}>\n\t\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\n\t\t\t\t<MenuItemIcon icon={icon} />\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\n\t\t\t</div>\n\t\t\t<MenuItemIconButton icon={buttonIcon} onClick={buttonOnClick} className={styles.button()} />\n\t\t</div>\n\t);\n};\n\nMenuItemInteractiveTemplate.displayName = \"MenuItemInteractiveTemplate\";\n","import { LucideIcon } from \"lucide-react\";\nimport { PropsWithChildren } from \"react\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { richButtonStyles } from \"@/components/button/rich-button/RichButton\";\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\n\nexport type MenuItemRichTemplateProps = {\n\ttitle: string;\n\tdescription: string;\n\ticon: LucideIcon;\n};\n\nexport const MenuItemRichTemplate = ({ icon, description, title }: PropsWithChildren<MenuItemRichTemplateProps>) => {\n\tconst buttonStyles = richButtonStyles();\n\treturn (\n\t\t<>\n\t\t\t<FeatureIcon icon={icon} size=\"sm\" className=\"bg-status-neutral-fg\" />\n\n\t\t\t<div className={buttonStyles.wrapper()}>\n\t\t\t\t<span className={buttonStyles.text()}>{title}</span>\n\t\t\t\t<MenuItemSecondaryText className={buttonStyles.description()}>{description}</MenuItemSecondaryText>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nMenuItemRichTemplate.displayName = \"MenuItemRichTemplate\";\n"],"names":["menuItemActionStyles","tv","MenuItemAction","React","className","children","props","ref","jsx","MenuItem","menuItemButtonVariants","menuItemButtonStyles","MenuItemButton","variant","componentVariant","useComponentVariant","theme","narrowVariant","Button","menuItemIconStyles","MenuItemIcon","icon","Icon","menuItemIconButtonStyles","MenuItemIconButton","IconButton","menuItemSecondaryTextStyles","MenuItemSecondaryText","MenuItemActionTemplate","text","shortcut","jsxs","Fragment","MenuItemText","MenuItemShortcut","menuItemCommonTemplateStyles","MenuItemCommonTemplate","isSelected","showStartCheck","showEndCheck","styles","Check","cn","menuItemInfoTemplateStyles","MenuItemInfoTemplate","description","menuItemInteractiveTemplateStyles","MenuItemInteractiveTemplate","buttonIcon","buttonOnClick","MenuItemRichTemplate","title","buttonStyles","richButtonStyles","FeatureIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu-item.js","sources":["../../src/components/menu-item/MenuItemAction.tsx","../../src/components/menu-item/components/menu-item-button/MenuItemButton.tsx","../../src/components/menu-item/components/menu-item-icon/MenuItemIcon.tsx","../../src/components/menu-item/components/menu-item-icon-button/MenuItemIconButton.tsx","../../src/components/menu-item/components/menu-item-secondary-text/MenuItemSecondaryText.tsx","../../src/components/menu-item/templates/menu-item-action-template/MenuItemActionTemplate.tsx","../../src/components/menu-item/templates/menu-item-common-template/MenuItemCommonTemplate.tsx","../../src/components/menu-item/templates/menu-item-info-template/MenuItemInfoTemplate.tsx","../../src/components/menu-item/templates/menu-item-interactive-template/MenuItemInteractiveTemplate.tsx","../../src/components/menu-item/templates/menu-item-rich-template/MenuItemRichTemplate.tsx"],"sourcesContent":["import { tv } from \"tailwind-variants\";\r\nimport { MenuItem, MenuItemProps } from \"./MenuItem\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport React from \"react\";\r\n\r\nconst menuItemActionStyles = tv({\r\n\tbase: \"hover:cursor-pointer focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-primary\"\r\n});\r\n\r\nexport type MenuActionItemProps = MenuItemProps;\r\n\r\nexport const MenuItemAction = React.forwardRef<HTMLDivElement, PropsWithChildren<MenuActionItemProps>>(\r\n\t({ className, children, ...props }, ref) => (\r\n\t\t<MenuItem ref={ref} className={menuItemActionStyles({ className })} tabIndex={0} {...props}>\r\n\t\t\t{children}\r\n\t\t</MenuItem>\r\n\t)\r\n);\r\n\r\nMenuItemAction.displayName = \"MenuItemAction\";\r\n","import { Button } from \"@/components/button\";\r\nimport { ButtonProps } from \"@/components/button/button/Button\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\ntype MenuItemButtonProps = Omit<ButtonProps, \"variant\" | \"status\"> & {\r\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\r\n};\r\n\r\nexport const menuItemButtonVariants = tv({\r\n\tvariants: {\r\n\t\ttheme: {\r\n\t\t\tinverse: \"text-inverse-primary-fg\"\r\n\t\t},\r\n\t\tvariant: {\r\n\t\t\toutline: \"\",\r\n\t\t\tghost: \"\",\r\n\t\t\ttext: \"\",\r\n\t\t\tlink: \"\"\r\n\t\t}\r\n\t},\r\n\tcompoundVariants: [\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"outline\",\r\n\t\t\tclass: \"border-inverse-border bg-inverse-primary-bg active:border-inverse-border active:bg-inverse-hover lg:hover:border-inverse-border lg:hover:bg-inverse-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"ghost\",\r\n\t\t\tclass: \"active:bg-inverse-hover lg:hover:bg-inverse-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"text\",\r\n\t\t\tclass: \"active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\r\n\t\t},\r\n\t\t{\r\n\t\t\ttheme: \"inverse\",\r\n\t\t\tvariant: \"link\",\r\n\t\t\tclass: \"text-inverse-muted underline active:text-inverse-primary-fg lg:hover:text-inverse-primary-fg\"\r\n\t\t}\r\n\t]\r\n});\r\n\r\nconst menuItemButtonStyles = tv({\r\n\textend: menuItemButtonVariants,\r\n\tbase: \"h-6 rounded-sm py-1\"\r\n});\r\n\r\nexport const MenuItemButton = React.forwardRef<HTMLButtonElement, MenuItemButtonProps>(\r\n\t({ className, variant = \"ghost\", ...props }, ref) => {\r\n\t\tconst { variant: componentVariant } = useComponentVariant();\r\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tdata-menu-item-action\r\n\t\t\t\tsize=\"xs\"\r\n\t\t\t\tvariant={variant}\r\n\t\t\t\tclassName={menuItemButtonStyles({ className, theme, variant })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nMenuItemButton.displayName = \"MenuItemButton\";\r\n","import { Icon } from \"@/components/icon\";\r\nimport { IconProps } from \"@/components/icon/Icon\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst menuItemIconStyles = tv({\r\n\tbase: \"truncate text-sm text-primary-fg\",\r\n\tvariants: {\r\n\t\ttheme: {\r\n\t\t\tinverse: \"text-inverse-primary-fg\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\ntype MenuItemIconProps = IconProps;\r\n\r\nexport const MenuItemIcon = ({ className, icon, ...props }: MenuItemIconProps) => {\r\n\tconst { variant } = useComponentVariant();\r\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\r\n\r\n\treturn <Icon icon={icon} className={menuItemIconStyles({ className, theme })} {...props} />;\r\n};\r\n\r\nMenuItemIcon.displayName = \"MenuItemIcon\";\r\n","import { IconButton } from \"@/components/button\";\r\nimport { IconButtonProps } from \"@/components/button/icon-button/IconButton\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport React from \"react\";\r\nimport { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport { menuItemButtonVariants } from \"../menu-item-button/MenuItemButton\";\r\n\r\ntype MenuItemIconProps = Omit<IconButtonProps, \"variant\" | \"status\"> & {\r\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\r\n};\r\n\r\nconst menuItemIconButtonStyles = tv({\r\n\textend: menuItemButtonVariants,\r\n\tbase: \"h-6 w-6 rounded-sm\"\r\n});\r\n\r\nexport const MenuItemIconButton = React.forwardRef<HTMLButtonElement, MenuItemIconProps>(\r\n\t({ className, icon, variant = \"ghost\", ...props }, ref) => {\r\n\t\tconst { variant: componentVariant } = useComponentVariant();\r\n\t\tconst theme = narrowVariant(componentVariant, [\"inverse\"]);\r\n\r\n\t\treturn (\r\n\t\t\t<IconButton\r\n\t\t\t\tref={ref}\r\n\t\t\t\ticon={icon}\r\n\t\t\t\tdata-menu-item-action\r\n\t\t\t\tsize=\"xs\"\r\n\t\t\t\tvariant={variant}\r\n\t\t\t\tstatus=\"default\"\r\n\t\t\t\tclassName={menuItemIconButtonStyles({ className, theme, variant })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nMenuItemIconButton.displayName = \"MenuItemIconButton\";\r\n","import { narrowVariant, useComponentVariant } from \"@/providers/component-variant-context\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport const menuItemSecondaryTextStyles = tv({\r\n\tbase: \"truncate text-xs text-muted\",\r\n\tvariants: {\r\n\t\ttheme: {\r\n\t\t\tinverse: \"text-inverse-muted\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\ntype MenuItemTextProps = React.HTMLAttributes<HTMLSpanElement>;\r\n\r\nexport const MenuItemSecondaryText = ({ className, children, ...props }: MenuItemTextProps) => {\r\n\tconst { variant } = useComponentVariant();\r\n\tconst theme = narrowVariant(variant, [\"inverse\"]);\r\n\r\n\treturn (\r\n\t\t<span className={menuItemSecondaryTextStyles({ className, theme })} {...props}>\r\n\t\t\t{children}\r\n\t\t</span>\r\n\t);\r\n};\r\n\r\nMenuItemSecondaryText.displayName = \"MenuItemSecondaryText\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { MenuItemShortcut } from \"../../components/menu-item-shortcut/MenuItemShortcut\";\r\n\r\ntype MenuItemActionTemplateProps = {\r\n\ticon: LucideIcon;\r\n\ttext: string;\r\n\tshortcut?: string;\r\n};\r\n\r\nexport const MenuItemActionTemplate = ({ icon, text, shortcut }: PropsWithChildren<MenuItemActionTemplateProps>) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<MenuItemIcon icon={icon} />\r\n\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t{shortcut && <MenuItemShortcut>{shortcut}</MenuItemShortcut>}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nMenuItemActionTemplate.displayName = \"MenuItemActionTemplate\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { Check, LucideIcon } from \"lucide-react\";\r\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface MenuItemCommonTemplateVariants {\r\n\tisSelected?: boolean;\r\n}\r\n\r\nconst menuItemCommonTemplateStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\r\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\r\n\t\tcheck: \"invisible\",\r\n\t\trightIcon: \"ml-auto\"\r\n\t},\r\n\tvariants: {\r\n\t\tisSelected: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcheck: \"visible\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<MenuItemCommonTemplateVariants>\r\n});\r\n\r\ntype MenuItemCommonTemplateProps = MenuItemCommonTemplateVariants & {\r\n\ttext: string;\r\n\ticon: LucideIcon;\r\n\tshowStartCheck?: boolean;\r\n\tshowEndCheck?: boolean;\r\n};\r\n\r\nexport const MenuItemCommonTemplate = ({\r\n\ticon,\r\n\ttext,\r\n\tisSelected,\r\n\tshowStartCheck = false,\r\n\tshowEndCheck = false\r\n}: PropsWithChildren<MenuItemCommonTemplateProps>) => {\r\n\tconst styles = menuItemCommonTemplateStyles();\r\n\r\n\treturn (\r\n\t\t<div className={styles.wrapper()}>\r\n\t\t\t{showStartCheck && <Icon icon={Check} className={styles.check({ isSelected })} />}\r\n\t\t\t<div className={styles.contentWrapper()}>\r\n\t\t\t\t<MenuItemIcon icon={icon} />\r\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t</div>\r\n\t\t\t{showEndCheck && <Icon icon={Check} className={cn(styles.rightIcon(), styles.check({ isSelected }))} />}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nMenuItemCommonTemplate.displayName = \"MenuItemCommonTemplate\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { Check } from \"lucide-react\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface MenuItemInfoTemplateVariants {\r\n\tisSelected?: boolean;\r\n}\r\n\r\nconst menuItemInfoTemplateStyles = tv({\r\n\tslots: {\r\n\t\tcheck: \"invisible\"\r\n\t},\r\n\tvariants: {\r\n\t\tisSelected: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcheck: \"visible\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<MenuItemInfoTemplateVariants>\r\n});\r\n\r\ntype MenuItemInfoTemplateProps = MenuItemInfoTemplateVariants & {\r\n\ttext: string;\r\n\tdescription?: string;\r\n};\r\n\r\nexport const MenuItemInfoTemplate = ({\r\n\tdescription,\r\n\ttext,\r\n\tisSelected\r\n}: PropsWithChildren<MenuItemInfoTemplateProps>) => {\r\n\tconst styles = menuItemInfoTemplateStyles();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\r\n\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t{description && <MenuItemSecondaryText>{description}</MenuItemSecondaryText>}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nMenuItemInfoTemplate.displayName = \"MenuItemInfoTemplate\";\r\n","import { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { MenuItemText } from \"../../components/menu-item-text/MenuItemText\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { Check, LucideIcon } from \"lucide-react\";\r\nimport { MenuItemIcon } from \"../../components/menu-item-icon/MenuItemIcon\";\r\nimport { MenuItemIconButton } from \"../../components/menu-item-icon-button/MenuItemIconButton\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface MenuItemInteractiveTemplateVariants {\r\n\tisSelected?: boolean;\r\n}\r\n\r\nconst menuItemInteractiveTemplateStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"flex w-full flex-row items-center gap-2\",\r\n\t\tcontentWrapper: \"flex flex-row items-center gap-2\",\r\n\t\tcheck: \"invisible\",\r\n\t\tbutton: \"ml-auto\"\r\n\t},\r\n\tvariants: {\r\n\t\tisSelected: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcheck: \"visible\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<MenuItemInteractiveTemplateVariants>\r\n});\r\n\r\ntype MenuItemInteractiveTemplateProps = MenuItemInteractiveTemplateVariants & {\r\n\ttext: string;\r\n\ticon: LucideIcon;\r\n\tbuttonIcon: LucideIcon;\r\n\tbuttonOnClick?: (e: React.MouseEvent) => void;\r\n};\r\n\r\nexport const MenuItemInteractiveTemplate = ({\r\n\ttext,\r\n\ticon,\r\n\tbuttonIcon,\r\n\tbuttonOnClick,\r\n\tisSelected\r\n}: PropsWithChildren<MenuItemInteractiveTemplateProps>) => {\r\n\tconst styles = menuItemInteractiveTemplateStyles();\r\n\r\n\treturn (\r\n\t\t<div className={styles.wrapper()}>\r\n\t\t\t<div className={styles.contentWrapper()}>\r\n\t\t\t\t<Icon icon={Check} className={styles.check({ isSelected })} />\r\n\t\t\t\t<MenuItemIcon icon={icon} />\r\n\t\t\t\t<MenuItemText>{text}</MenuItemText>\r\n\t\t\t</div>\r\n\t\t\t<MenuItemIconButton icon={buttonIcon} onClick={buttonOnClick} className={styles.button()} />\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nMenuItemInteractiveTemplate.displayName = \"MenuItemInteractiveTemplate\";\r\n","import { LucideIcon } from \"lucide-react\";\r\nimport { PropsWithChildren } from \"react\";\r\nimport { FeatureIcon } from \"@/components/icon\";\r\nimport { richButtonStyles } from \"@/components/button/rich-button/RichButton\";\r\nimport { MenuItemSecondaryText } from \"../../components/menu-item-secondary-text/MenuItemSecondaryText\";\r\n\r\nexport type MenuItemRichTemplateProps = {\r\n\ttitle: string;\r\n\tdescription: string;\r\n\ticon: LucideIcon;\r\n};\r\n\r\nexport const MenuItemRichTemplate = ({ icon, description, title }: PropsWithChildren<MenuItemRichTemplateProps>) => {\r\n\tconst buttonStyles = richButtonStyles();\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<FeatureIcon icon={icon} size=\"sm\" className=\"bg-status-neutral-fg\" />\r\n\r\n\t\t\t<div className={buttonStyles.wrapper()}>\r\n\t\t\t\t<span className={buttonStyles.text()}>{title}</span>\r\n\t\t\t\t<MenuItemSecondaryText className={buttonStyles.description()}>{description}</MenuItemSecondaryText>\r\n\t\t\t</div>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nMenuItemRichTemplate.displayName = \"MenuItemRichTemplate\";\r\n"],"names":["menuItemActionStyles","tv","MenuItemAction","React","className","children","props","ref","jsx","MenuItem","menuItemButtonVariants","menuItemButtonStyles","MenuItemButton","variant","componentVariant","useComponentVariant","theme","narrowVariant","Button","menuItemIconStyles","MenuItemIcon","icon","Icon","menuItemIconButtonStyles","MenuItemIconButton","IconButton","menuItemSecondaryTextStyles","MenuItemSecondaryText","MenuItemActionTemplate","text","shortcut","jsxs","Fragment","MenuItemText","MenuItemShortcut","menuItemCommonTemplateStyles","MenuItemCommonTemplate","isSelected","showStartCheck","showEndCheck","styles","Check","cn","menuItemInfoTemplateStyles","MenuItemInfoTemplate","description","menuItemInteractiveTemplateStyles","MenuItemInteractiveTemplate","buttonIcon","buttonOnClick","MenuItemRichTemplate","title","buttonStyles","richButtonStyles","FeatureIcon"],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@ import { jsx as o, jsxs as p } from "react/jsx-runtime";
|
|
|
2
2
|
import n, { useContext as f, createContext as z } from "react";
|
|
3
3
|
import { T as i } from "../index-BVqs-uqP.js";
|
|
4
4
|
import { S } from "../index-BtQfgaSF.js";
|
|
5
|
-
import { B as u } from "../Button-
|
|
5
|
+
import { B as u } from "../Button-_qdP4hSf.js";
|
|
6
6
|
import { F as b } from "../FeatureIcon-BGE0Orkc.js";
|
|
7
7
|
import { B as P, F as h } from "../FolderSvg-cw0DxNVy.js";
|
|
8
|
-
const
|
|
9
|
-
const e = f(
|
|
8
|
+
const x = z(void 0), y = ({ size: e, children: t }) => /* @__PURE__ */ o(x.Provider, { value: { size: e }, children: t }), c = () => {
|
|
9
|
+
const e = f(x);
|
|
10
10
|
if (!e)
|
|
11
11
|
throw new Error("usePageStateContext must be used within a PageStateProvider");
|
|
12
12
|
return e;
|
|
@@ -48,7 +48,7 @@ const F = i({
|
|
|
48
48
|
}
|
|
49
49
|
);
|
|
50
50
|
R.displayName = "PageStateDescription";
|
|
51
|
-
const
|
|
51
|
+
const d = () => {
|
|
52
52
|
const { size: e } = c();
|
|
53
53
|
switch (e) {
|
|
54
54
|
case "sm":
|
|
@@ -59,17 +59,17 @@ const x = () => {
|
|
|
59
59
|
return "lg";
|
|
60
60
|
}
|
|
61
61
|
}, j = n.forwardRef(({ children: e, size: t, ...s }, a) => {
|
|
62
|
-
const r =
|
|
62
|
+
const r = d();
|
|
63
63
|
return /* @__PURE__ */ o(u, { ref: a, variant: "outline", size: t || r, ...s, children: e });
|
|
64
64
|
});
|
|
65
65
|
j.displayName = "PageStateCancel";
|
|
66
66
|
const I = n.forwardRef(({ children: e, size: t, ...s }, a) => {
|
|
67
|
-
const r =
|
|
67
|
+
const r = d();
|
|
68
68
|
return /* @__PURE__ */ o(u, { ref: a, variant: "primary", size: t || r, ...s, children: e });
|
|
69
69
|
});
|
|
70
70
|
I.displayName = "PageStateAction";
|
|
71
71
|
const T = i({
|
|
72
|
-
base: "rounded-full bg-alpha-high-80 p-3.5 text-secondary-bg backdrop-blur-
|
|
72
|
+
base: "rounded-full bg-alpha-high-80 p-3.5 text-secondary-bg backdrop-blur-xs",
|
|
73
73
|
variants: {
|
|
74
74
|
size: {
|
|
75
75
|
sm: "h-12 w-12",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-state.js","sources":["../../src/components/page-state/context/PageStateContext.tsx","../../src/components/page-state/PageState.tsx","../../src/components/page-state/components/PageStateTitle.tsx","../../src/components/page-state/components/PageStateDescription.tsx","../../src/components/page-state/hooks/usePageStateButtonSize.tsx","../../src/components/page-state/components/PageStateCancel.tsx","../../src/components/page-state/components/PageStateAction.tsx","../../src/components/page-state/components/PageStateFeatureIcon.tsx","../../src/components/page-state/components/PageStateBoxSvg.tsx","../../src/components/page-state/components/PageStateFolderSvg.tsx","../../src/components/page-state/components/PageStateButtonGroup.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport type PageStateSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface PageStateVariants {\n\tsize?: PageStateSize;\n}\n\nconst PageStateContext = createContext<PageStateVariants | undefined>(undefined);\n\ninterface PageStateProviderProps {\n\tsize: PageStateSize;\n\tchildren: React.ReactNode;\n}\n\nexport const PageStateProvider: React.FC<PageStateProviderProps> = ({ size, children }) => {\n\treturn <PageStateContext.Provider value={{ size }}>{children}</PageStateContext.Provider>;\n};\n\nexport const usePageStateContext = (): PageStateVariants => {\n\tconst context = useContext(PageStateContext);\n\tif (!context) {\n\t\tthrow new Error(\"usePageStateContext must be used within a PageStateProvider\");\n\t}\n\treturn context;\n};\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { PageStateProvider, PageStateSize } from \"./context/PageStateContext\";\n\nconst pageStateStyles = tv({\n\tbase: \"flex w-full flex-col items-center px-8\"\n});\n\nexport type PageStateProps = React.HTMLAttributes<HTMLDivElement> & {\n\tsize?: PageStateSize;\n};\n\nexport const PageState = React.forwardRef<HTMLDivElement, PageStateProps>(\n\t({ className, children, size = \"md\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<PageStateProvider size={size}>\n\t\t\t\t<div ref={ref} className={pageStateStyles({ className })} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</PageStateProvider>\n\t\t);\n\t}\n);\n\nPageState.displayName = \"PageState\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateTitleStyles = tv({\n\tbase: \"mt-5 font-semibold text-primary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-base\",\n\t\t\tmd: \"text-xl\",\n\t\t\tlg: \"text-2xl\"\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\nexport type PageStateTitleProps = React.HTMLAttributes<HTMLHeadingElement> &\n\tPageStateVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const PageStateTitle = React.forwardRef<HTMLHeadingElement, PageStateTitleProps>(\n\t({ className, size: propSize, asChild = false, ...props }, ref) => {\n\t\tconst { size: contextSize } = usePageStateContext();\n\t\tconst size = propSize || contextSize;\n\n\t\tconst Comp = asChild ? Slot : \"h2\";\n\t\treturn <Comp ref={ref} className={pageStateTitleStyles({ className, size })} {...props} />;\n\t}\n);\n\nPageStateTitle.displayName = \"PageStateTitle\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateDescriptionStyles = tv({\n\tbase: \"mt-2.5 text-center text-muted\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"text-xs\",\n\t\t\tmd: \"text-sm\",\n\t\t\tlg: \"text-base\"\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\nexport type PageStateDescriptionProps = React.HTMLAttributes<HTMLDivElement> &\n\tPageStateVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const PageStateDescription = React.forwardRef<HTMLDivElement, PageStateDescriptionProps>(\n\t({ className, size: propSize, asChild = false, children, ...props }, ref) => {\n\t\tconst { size: contextSize } = usePageStateContext();\n\t\tconst size = propSize || contextSize;\n\n\t\tconst Comp = asChild ? Slot : \"div\";\n\t\treturn (\n\t\t\t<Comp ref={ref} className={pageStateDescriptionStyles({ className, size })} {...props}>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t);\n\t}\n);\n\nPageStateDescription.displayName = \"PageStateDescription\";\n","import { usePageStateContext } from \"../context/PageStateContext\";\n\ntype ButtonSize = \"md\" | \"lg\" | \"xl\";\n\nexport const usePageStateButtonSize = (): ButtonSize => {\n\tconst { size } = usePageStateContext();\n\n\tswitch (size) {\n\t\tcase \"sm\":\n\t\t\treturn \"md\";\n\t\tcase \"lg\":\n\t\t\treturn \"xl\";\n\t\tdefault:\n\t\t\treturn \"lg\";\n\t}\n};\n","import React from \"react\";\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\n\nexport const PageStateCancel = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\n\tconst buttonSize = usePageStateButtonSize();\n\n\treturn (\n\t\t<Button ref={ref} variant=\"outline\" size={size || buttonSize} {...props}>\n\t\t\t{children}\n\t\t</Button>\n\t);\n});\n\nPageStateCancel.displayName = \"PageStateCancel\";\n","import React from \"react\";\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\n\nexport const PageStateAction = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\n\tconst buttonSize = usePageStateButtonSize();\n\n\treturn (\n\t\t<Button ref={ref} variant=\"primary\" size={size || buttonSize} {...props}>\n\t\t\t{children}\n\t\t</Button>\n\t);\n});\n\nPageStateAction.displayName = \"PageStateAction\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { PageStateSize, PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { FeatureIconProps } from \"@/components/icon/feature-icon/FeatureIcon\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateFeatureIconStyles = tv({\n\tbase: \"rounded-full bg-alpha-high-80 p-3.5 text-secondary-bg backdrop-blur-sm\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-12 w-12\",\n\t\t\tmd: \"h-14 w-14 [&>svg]:size-[1.625rem]\",\n\t\t\tlg: \"h-14 w-14 [&>svg]:size-[1.625rem]\"\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\nexport type PageStateFeatureIconProps = Omit<FeatureIconProps, \"size\"> & { size?: PageStateSize } & PageStateVariants;\n\nexport const PageStateFeatureIcon: React.FC<PageStateFeatureIconProps> = ({\n\tclassName,\n\tsize: sizeProp,\n\ticon,\n\t...props\n}) => {\n\tconst { size } = usePageStateContext();\n\n\treturn (\n\t\t<FeatureIcon\n\t\t\ticon={icon}\n\t\t\tclassName={pageStateFeatureIconStyles({ className, size: sizeProp || size })}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nPageStateFeatureIcon.displayName = \"PageStateFeatureIcon\";\n","import { tv } from \"tailwind-variants\";\nimport { usePageStateContext } from \"../context/PageStateContext\";\nimport { BoxSvg } from \"@/components/images/BoxSvg\";\nimport { LucideIcon } from \"lucide-react\";\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\n\nconst pageStateBoxSvgStyles = tv({\n\tbase: \"relative\",\n\tslots: {\n\t\ticon: \"absolute\",\n\t\tsvg: \"h-[168px] w-[220px]\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tsvg: \"h-[124px] w-[164px]\",\n\t\t\t\ticon: \"bottom-2 right-14\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tsvg: \"h-[140px] w-[168px]\",\n\t\t\t\ticon: \"bottom-2.5 right-[3.625rem]\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\ticon: \"bottom-4 right-20\"\n\t\t\t}\n\t\t}\n\t}\n});\n\ninterface PageStateBoxSvgProps {\n\ticon?: LucideIcon;\n}\n\nexport const PageStateBoxSvg: React.FC<PageStateBoxSvgProps> = ({ icon }) => {\n\tconst { size } = usePageStateContext();\n\tconst styles = pageStateBoxSvgStyles({ size });\n\n\treturn (\n\t\t<div className={styles.base()}>\n\t\t\t<BoxSvg className={styles.svg()} />\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\n\t\t</div>\n\t);\n};\n\nPageStateBoxSvg.displayName = \"PageStateBoxSvg\";\n","import { tv } from \"tailwind-variants\";\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\nimport { FolderSvg } from \"@/components/images/FolderSvg\";\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst pageStateFolderSvgStyles = tv({\n\tbase: \"relative flex items-center justify-center\",\n\tslots: {\n\t\ticon: \"absolute\",\n\t\tsvg: \"h-[160px] w-[220px]\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tsvg: \"h-[110px] w-[164px]\",\n\t\t\t\ticon: \"bottom-0 right-[3.625rem]\"\n\t\t\t},\n\t\t\tmd: {\n\t\t\t\tsvg: \"h-[128px] w-[168px]\",\n\t\t\t\ticon: \"bottom-2 right-[3.625rem]\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\ticon: \"bottom-4 right-[5.125rem]\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<PageStateVariants>\n});\n\ninterface PageStateFolderSvgProps extends PageStateVariants {\n\ticon?: LucideIcon;\n}\n\nexport const PageStateFolderSvg: React.FC<PageStateFolderSvgProps> = ({ icon, size: sizeProp }) => {\n\tconst { size } = usePageStateContext();\n\tconst styles = pageStateFolderSvgStyles({ size: sizeProp || size });\n\n\treturn (\n\t\t<div className={styles.base()}>\n\t\t\t<FolderSvg className={styles.svg()} />\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\n\t\t</div>\n\t);\n};\n\nPageStateFolderSvg.displayName = \"PageStateFolderSvg\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst pageStateButtonGroupStyles = tv({\n\tbase: \"mt-8 flex w-full flex-row items-center justify-center gap-3\"\n});\n\nexport type PageStateButtonGroupProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const PageStateButtonGroup = React.forwardRef<HTMLDivElement, PageStateButtonGroupProps>(\n\t({ children, className, ...props }, ref) => {\n\t\treturn (\n\t\t\t<div ref={ref} className={pageStateButtonGroupStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nPageStateButtonGroup.displayName = \"PageStateButtonGroup\";\n"],"names":["PageStateContext","createContext","PageStateProvider","size","children","jsx","usePageStateContext","context","useContext","pageStateStyles","tv","PageState","React","className","props","ref","pageStateTitleStyles","PageStateTitle","propSize","asChild","contextSize","Slot","pageStateDescriptionStyles","PageStateDescription","usePageStateButtonSize","PageStateCancel","buttonSize","Button","PageStateAction","pageStateFeatureIconStyles","PageStateFeatureIcon","sizeProp","icon","FeatureIcon","pageStateBoxSvgStyles","PageStateBoxSvg","styles","jsxs","BoxSvg","pageStateFolderSvgStyles","PageStateFolderSvg","FolderSvg","pageStateButtonGroupStyles","PageStateButtonGroup"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-state.js","sources":["../../src/components/page-state/context/PageStateContext.tsx","../../src/components/page-state/PageState.tsx","../../src/components/page-state/components/PageStateTitle.tsx","../../src/components/page-state/components/PageStateDescription.tsx","../../src/components/page-state/hooks/usePageStateButtonSize.tsx","../../src/components/page-state/components/PageStateCancel.tsx","../../src/components/page-state/components/PageStateAction.tsx","../../src/components/page-state/components/PageStateFeatureIcon.tsx","../../src/components/page-state/components/PageStateBoxSvg.tsx","../../src/components/page-state/components/PageStateFolderSvg.tsx","../../src/components/page-state/components/PageStateButtonGroup.tsx"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\r\n\r\nexport type PageStateSize = \"sm\" | \"md\" | \"lg\";\r\n\r\nexport interface PageStateVariants {\r\n\tsize?: PageStateSize;\r\n}\r\n\r\nconst PageStateContext = createContext<PageStateVariants | undefined>(undefined);\r\n\r\ninterface PageStateProviderProps {\r\n\tsize: PageStateSize;\r\n\tchildren: React.ReactNode;\r\n}\r\n\r\nexport const PageStateProvider: React.FC<PageStateProviderProps> = ({ size, children }) => {\r\n\treturn <PageStateContext.Provider value={{ size }}>{children}</PageStateContext.Provider>;\r\n};\r\n\r\nexport const usePageStateContext = (): PageStateVariants => {\r\n\tconst context = useContext(PageStateContext);\r\n\tif (!context) {\r\n\t\tthrow new Error(\"usePageStateContext must be used within a PageStateProvider\");\r\n\t}\r\n\treturn context;\r\n};\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { PageStateProvider, PageStateSize } from \"./context/PageStateContext\";\r\n\r\nconst pageStateStyles = tv({\r\n\tbase: \"flex w-full flex-col items-center px-8\"\r\n});\r\n\r\nexport type PageStateProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\tsize?: PageStateSize;\r\n};\r\n\r\nexport const PageState = React.forwardRef<HTMLDivElement, PageStateProps>(\r\n\t({ className, children, size = \"md\", ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<PageStateProvider size={size}>\r\n\t\t\t\t<div ref={ref} className={pageStateStyles({ className })} {...props}>\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</PageStateProvider>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPageState.displayName = \"PageState\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateTitleStyles = tv({\r\n\tbase: \"mt-5 font-semibold text-primary-fg\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-base\",\r\n\t\t\tmd: \"text-xl\",\r\n\t\t\tlg: \"text-2xl\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\nexport type PageStateTitleProps = React.HTMLAttributes<HTMLHeadingElement> &\r\n\tPageStateVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const PageStateTitle = React.forwardRef<HTMLHeadingElement, PageStateTitleProps>(\r\n\t({ className, size: propSize, asChild = false, ...props }, ref) => {\r\n\t\tconst { size: contextSize } = usePageStateContext();\r\n\t\tconst size = propSize || contextSize;\r\n\r\n\t\tconst Comp = asChild ? Slot : \"h2\";\r\n\t\treturn <Comp ref={ref} className={pageStateTitleStyles({ className, size })} {...props} />;\r\n\t}\r\n);\r\n\r\nPageStateTitle.displayName = \"PageStateTitle\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateDescriptionStyles = tv({\r\n\tbase: \"mt-2.5 text-center text-muted\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"text-xs\",\r\n\t\t\tmd: \"text-sm\",\r\n\t\t\tlg: \"text-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\nexport type PageStateDescriptionProps = React.HTMLAttributes<HTMLDivElement> &\r\n\tPageStateVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const PageStateDescription = React.forwardRef<HTMLDivElement, PageStateDescriptionProps>(\r\n\t({ className, size: propSize, asChild = false, children, ...props }, ref) => {\r\n\t\tconst { size: contextSize } = usePageStateContext();\r\n\t\tconst size = propSize || contextSize;\r\n\r\n\t\tconst Comp = asChild ? Slot : \"div\";\r\n\t\treturn (\r\n\t\t\t<Comp ref={ref} className={pageStateDescriptionStyles({ className, size })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</Comp>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPageStateDescription.displayName = \"PageStateDescription\";\r\n","import { usePageStateContext } from \"../context/PageStateContext\";\r\n\r\ntype ButtonSize = \"md\" | \"lg\" | \"xl\";\r\n\r\nexport const usePageStateButtonSize = (): ButtonSize => {\r\n\tconst { size } = usePageStateContext();\r\n\r\n\tswitch (size) {\r\n\t\tcase \"sm\":\r\n\t\t\treturn \"md\";\r\n\t\tcase \"lg\":\r\n\t\t\treturn \"xl\";\r\n\t\tdefault:\r\n\t\t\treturn \"lg\";\r\n\t}\r\n};\r\n","import React from \"react\";\r\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\r\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\r\n\r\nexport const PageStateCancel = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\r\n\tconst buttonSize = usePageStateButtonSize();\r\n\r\n\treturn (\r\n\t\t<Button ref={ref} variant=\"outline\" size={size || buttonSize} {...props}>\r\n\t\t\t{children}\r\n\t\t</Button>\r\n\t);\r\n});\r\n\r\nPageStateCancel.displayName = \"PageStateCancel\";\r\n","import React from \"react\";\r\nimport { Button, ButtonProps } from \"@/components/button/button/Button\";\r\nimport { usePageStateButtonSize } from \"../hooks/usePageStateButtonSize\";\r\n\r\nexport const PageStateAction = React.forwardRef<HTMLButtonElement, ButtonProps>(({ children, size, ...props }, ref) => {\r\n\tconst buttonSize = usePageStateButtonSize();\r\n\r\n\treturn (\r\n\t\t<Button ref={ref} variant=\"primary\" size={size || buttonSize} {...props}>\r\n\t\t\t{children}\r\n\t\t</Button>\r\n\t);\r\n});\r\n\r\nPageStateAction.displayName = \"PageStateAction\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { PageStateSize, PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { FeatureIcon } from \"@/components/icon\";\r\nimport { FeatureIconProps } from \"@/components/icon/feature-icon/FeatureIcon\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateFeatureIconStyles = tv({\r\n\tbase: \"rounded-full bg-alpha-high-80 p-3.5 text-secondary-bg backdrop-blur-xs\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-12 w-12\",\r\n\t\t\tmd: \"h-14 w-14 [&>svg]:size-[1.625rem]\",\r\n\t\t\tlg: \"h-14 w-14 [&>svg]:size-[1.625rem]\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\nexport type PageStateFeatureIconProps = Omit<FeatureIconProps, \"size\"> & { size?: PageStateSize } & PageStateVariants;\r\n\r\nexport const PageStateFeatureIcon: React.FC<PageStateFeatureIconProps> = ({\r\n\tclassName,\r\n\tsize: sizeProp,\r\n\ticon,\r\n\t...props\r\n}) => {\r\n\tconst { size } = usePageStateContext();\r\n\r\n\treturn (\r\n\t\t<FeatureIcon\r\n\t\t\ticon={icon}\r\n\t\t\tclassName={pageStateFeatureIconStyles({ className, size: sizeProp || size })}\r\n\t\t\t{...props}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nPageStateFeatureIcon.displayName = \"PageStateFeatureIcon\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { usePageStateContext } from \"../context/PageStateContext\";\r\nimport { BoxSvg } from \"@/components/images/BoxSvg\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\r\n\r\nconst pageStateBoxSvgStyles = tv({\r\n\tbase: \"relative\",\r\n\tslots: {\r\n\t\ticon: \"absolute\",\r\n\t\tsvg: \"h-[168px] w-[220px]\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\tsvg: \"h-[124px] w-[164px]\",\r\n\t\t\t\ticon: \"bottom-2 right-14\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\tsvg: \"h-[140px] w-[168px]\",\r\n\t\t\t\ticon: \"bottom-2.5 right-[3.625rem]\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\ticon: \"bottom-4 right-20\"\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ninterface PageStateBoxSvgProps {\r\n\ticon?: LucideIcon;\r\n}\r\n\r\nexport const PageStateBoxSvg: React.FC<PageStateBoxSvgProps> = ({ icon }) => {\r\n\tconst { size } = usePageStateContext();\r\n\tconst styles = pageStateBoxSvgStyles({ size });\r\n\r\n\treturn (\r\n\t\t<div className={styles.base()}>\r\n\t\t\t<BoxSvg className={styles.svg()} />\r\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nPageStateBoxSvg.displayName = \"PageStateBoxSvg\";\r\n","import { tv } from \"tailwind-variants\";\r\nimport { PageStateVariants, usePageStateContext } from \"../context/PageStateContext\";\r\nimport { FolderSvg } from \"@/components/images/FolderSvg\";\r\nimport { PageStateFeatureIcon } from \"./PageStateFeatureIcon\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nconst pageStateFolderSvgStyles = tv({\r\n\tbase: \"relative flex items-center justify-center\",\r\n\tslots: {\r\n\t\ticon: \"absolute\",\r\n\t\tsvg: \"h-[160px] w-[220px]\"\r\n\t},\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: {\r\n\t\t\t\tsvg: \"h-[110px] w-[164px]\",\r\n\t\t\t\ticon: \"bottom-0 right-[3.625rem]\"\r\n\t\t\t},\r\n\t\t\tmd: {\r\n\t\t\t\tsvg: \"h-[128px] w-[168px]\",\r\n\t\t\t\ticon: \"bottom-2 right-[3.625rem]\"\r\n\t\t\t},\r\n\t\t\tlg: {\r\n\t\t\t\ticon: \"bottom-4 right-[5.125rem]\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<PageStateVariants>\r\n});\r\n\r\ninterface PageStateFolderSvgProps extends PageStateVariants {\r\n\ticon?: LucideIcon;\r\n}\r\n\r\nexport const PageStateFolderSvg: React.FC<PageStateFolderSvgProps> = ({ icon, size: sizeProp }) => {\r\n\tconst { size } = usePageStateContext();\r\n\tconst styles = pageStateFolderSvgStyles({ size: sizeProp || size });\r\n\r\n\treturn (\r\n\t\t<div className={styles.base()}>\r\n\t\t\t<FolderSvg className={styles.svg()} />\r\n\t\t\t{icon && <PageStateFeatureIcon className={styles.icon()} icon={icon} />}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nPageStateFolderSvg.displayName = \"PageStateFolderSvg\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst pageStateButtonGroupStyles = tv({\r\n\tbase: \"mt-8 flex w-full flex-row items-center justify-center gap-3\"\r\n});\r\n\r\nexport type PageStateButtonGroupProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const PageStateButtonGroup = React.forwardRef<HTMLDivElement, PageStateButtonGroupProps>(\r\n\t({ children, className, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={pageStateButtonGroupStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPageStateButtonGroup.displayName = \"PageStateButtonGroup\";\r\n"],"names":["PageStateContext","createContext","PageStateProvider","size","children","jsx","usePageStateContext","context","useContext","pageStateStyles","tv","PageState","React","className","props","ref","pageStateTitleStyles","PageStateTitle","propSize","asChild","contextSize","Slot","pageStateDescriptionStyles","PageStateDescription","usePageStateButtonSize","PageStateCancel","buttonSize","Button","PageStateAction","pageStateFeatureIconStyles","PageStateFeatureIcon","sizeProp","icon","FeatureIcon","pageStateBoxSvgStyles","PageStateBoxSvg","styles","jsxs","BoxSvg","pageStateFolderSvgStyles","PageStateFolderSvg","FolderSvg","pageStateButtonGroupStyles","PageStateButtonGroup"],"mappings":";;;;;;;AAQA,MAAMA,IAAmBC,EAA6C,MAAS,GAOlEC,IAAsD,CAAC,EAAE,MAAAC,GAAM,UAAAC,QACpE,gBAAAC,EAACL,EAAiB,UAAjB,EAA0B,OAAO,EAAE,MAAAG,EAAA,GAAS,UAAAC,GAAS,GAGjDE,IAAsB,MAAyB;AACrD,QAAAC,IAAUC,EAAWR,CAAgB;AAC3C,MAAI,CAACO;AACE,UAAA,IAAI,MAAM,6DAA6D;AAEvE,SAAAA;AACR,GCrBME,IAAkBC,EAAG;AAAA,EAC1B,MAAM;AACP,CAAC,GAMYC,IAAYC,EAAM;AAAA,EAC9B,CAAC,EAAE,WAAAC,GAAW,UAAAT,GAAU,MAAAD,IAAO,MAAM,GAAGW,EAAM,GAAGC,MAE9C,gBAAAV,EAAAH,GAAA,EAAkB,MAAAC,GAClB,UAAA,gBAAAE,EAAC,SAAI,KAAAU,GAAU,WAAWN,EAAgB,EAAE,WAAAI,EAAW,CAAA,GAAI,GAAGC,GAC5D,UAAAV,EACF,CAAA,GACD;AAGH;AAEAO,EAAU,cAAc;AClBxB,MAAMK,IAAuBN,EAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACL;AAEF,CAAC,GAOYO,IAAiBL,EAAM;AAAA,EACnC,CAAC,EAAE,WAAAC,GAAW,MAAMK,GAAU,SAAAC,IAAU,IAAO,GAAGL,EAAM,GAAGC,MAAQ;AAClE,UAAM,EAAE,MAAMK,EAAY,IAAId,EAAoB;AAI3C,WAAA,gBAAAD,EADMc,IAAUE,IAAO,MACjB,EAAA,KAAAN,GAAU,WAAWC,EAAqB,EAAE,WAAAH,GAAW,MAHvDK,KAAYE,EAGgD,CAAC,GAAI,GAAGN,EAAO,CAAA;AAAA,EAAA;AAE1F;AAEAG,EAAe,cAAc;AC1B7B,MAAMK,IAA6BZ,EAAG;AAAA,EACrC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACL;AAEF,CAAC,GAOYa,IAAuBX,EAAM;AAAA,EACzC,CAAC,EAAE,WAAAC,GAAW,MAAMK,GAAU,SAAAC,IAAU,IAAO,UAAAf,GAAU,GAAGU,EAAM,GAAGC,MAAQ;AAC5E,UAAM,EAAE,MAAMK,EAAY,IAAId,EAAoB;AAIlD,WACE,gBAAAD,EAFWc,IAAUE,IAAO,OAE5B,EAAK,KAAAN,GAAU,WAAWO,EAA2B,EAAE,WAAAT,GAAW,MAJvDK,KAAYE,EAI2C,CAAM,GAAI,GAAGN,GAC9E,UAAAV,EACF,CAAA;AAAA,EAAA;AAGH;AAEAmB,EAAqB,cAAc;AChC5B,MAAMC,IAAyB,MAAkB;AACjD,QAAA,EAAE,MAAArB,EAAK,IAAIG,EAAoB;AAErC,UAAQH,GAAM;AAAA,IACb,KAAK;AACG,aAAA;AAAA,IACR,KAAK;AACG,aAAA;AAAA,IACR;AACQ,aAAA;AAAA,EAAA;AAEV,GCXasB,IAAkBb,EAAM,WAA2C,CAAC,EAAE,UAAAR,GAAU,MAAAD,GAAM,GAAGW,EAAM,GAAGC,MAAQ;AACtH,QAAMW,IAAaF,EAAuB;AAGzC,SAAA,gBAAAnB,EAACsB,GAAO,EAAA,KAAAZ,GAAU,SAAQ,WAAU,MAAMZ,KAAQuB,GAAa,GAAGZ,GAChE,UAAAV,EACF,CAAA;AAEF,CAAC;AAEDqB,EAAgB,cAAc;ACVjB,MAAAG,IAAkBhB,EAAM,WAA2C,CAAC,EAAE,UAAAR,GAAU,MAAAD,GAAM,GAAGW,EAAM,GAAGC,MAAQ;AACtH,QAAMW,IAAaF,EAAuB;AAGzC,SAAA,gBAAAnB,EAACsB,GAAO,EAAA,KAAAZ,GAAU,SAAQ,WAAU,MAAMZ,KAAQuB,GAAa,GAAGZ,GAChE,UAAAV,EACF,CAAA;AAEF,CAAC;AAEDwB,EAAgB,cAAc;ACP9B,MAAMC,IAA6BnB,EAAG;AAAA,EACrC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACL;AAEF,CAAC,GAIYoB,IAA4D,CAAC;AAAA,EACzE,WAAAjB;AAAA,EACA,MAAMkB;AAAA,EACN,MAAAC;AAAA,EACA,GAAGlB;AACJ,MAAM;AACC,QAAA,EAAE,MAAAX,EAAK,IAAIG,EAAoB;AAGpC,SAAA,gBAAAD;AAAA,IAAC4B;AAAA,IAAA;AAAA,MACA,MAAAD;AAAA,MACA,WAAWH,EAA2B,EAAE,WAAAhB,GAAW,MAAMkB,KAAY5B,GAAM;AAAA,MAC1E,GAAGW;AAAA,IAAA;AAAA,EACL;AAEF;AAEAgB,EAAqB,cAAc;AC/BnC,MAAMI,IAAwBxB,EAAG;AAAA,EAChC,MAAM;AAAA,EACN,OAAO;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,QACH,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,EACD;AAEF,CAAC,GAMYyB,IAAkD,CAAC,EAAE,MAAAH,QAAW;AACtE,QAAA,EAAE,MAAA7B,EAAK,IAAIG,EAAoB,GAC/B8B,IAASF,EAAsB,EAAE,MAAA/B,GAAM;AAE7C,SACE,gBAAAkC,EAAA,OAAA,EAAI,WAAWD,EAAO,KACtB,GAAA,UAAA;AAAA,IAAA,gBAAA/B,EAACiC,GAAO,EAAA,WAAWF,EAAO,IAAO,EAAA,CAAA;AAAA,IAChCJ,KAAS,gBAAA3B,EAAAyB,GAAA,EAAqB,WAAWM,EAAO,QAAQ,MAAAJ,EAAY,CAAA;AAAA,EAAA,GACtE;AAEF;AAEAG,EAAgB,cAAc;ACtC9B,MAAMI,IAA2B7B,EAAG;AAAA,EACnC,MAAM;AAAA,EACN,OAAO;AAAA,IACN,MAAM;AAAA,IACN,KAAK;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,QACH,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,KAAK;AAAA,QACL,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,EACD;AAEF,CAAC,GAMY8B,IAAwD,CAAC,EAAE,MAAAR,GAAM,MAAMD,QAAe;AAC5F,QAAA,EAAE,MAAA5B,EAAK,IAAIG,EAAoB,GAC/B8B,IAASG,EAAyB,EAAE,MAAMR,KAAY5B,GAAM;AAElE,SACE,gBAAAkC,EAAA,OAAA,EAAI,WAAWD,EAAO,KACtB,GAAA,UAAA;AAAA,IAAA,gBAAA/B,EAACoC,GAAU,EAAA,WAAWL,EAAO,IAAO,EAAA,CAAA;AAAA,IACnCJ,KAAS,gBAAA3B,EAAAyB,GAAA,EAAqB,WAAWM,EAAO,QAAQ,MAAAJ,EAAY,CAAA;AAAA,EAAA,GACtE;AAEF;AAEAQ,EAAmB,cAAc;AC3CjC,MAAME,IAA6BhC,EAAG;AAAA,EACrC,MAAM;AACP,CAAC,GAIYiC,IAAuB/B,EAAM;AAAA,EACzC,CAAC,EAAE,UAAAR,GAAU,WAAAS,GAAW,GAAGC,EAAA,GAASC,MAElC,gBAAAV,EAAC,OAAI,EAAA,KAAAU,GAAU,WAAW2B,EAA2B,EAAE,WAAA7B,GAAW,GAAI,GAAGC,GACvE,UAAAV,EACF,CAAA;AAGH;AAEAuC,EAAqB,cAAc;"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Хук для определения контейнера портала.
|
|
3
3
|
*
|
|
4
4
|
* Если передан customContainer, возвращает его.
|
|
5
|
-
* Иначе
|
|
5
|
+
* Иначе ищет элемент с атрибутом 'data-portal-container' — при условии,
|
|
6
|
+
* что PortalContainer действительно смонтирован.
|
|
6
7
|
*
|
|
7
8
|
* @param customContainer - Кастомный контейнер для портала
|
|
8
9
|
* @returns HTMLElement для портала или undefined
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import * as t from "react";
|
|
3
3
|
import { c as f } from "../cn-dsXlqdJg.js";
|
|
4
|
-
import { p as r } from "../usePortalContainer-
|
|
5
|
-
import { u as d } from "../usePortalContainer-
|
|
4
|
+
import { p as r } from "../usePortalContainer-B1xla842.js";
|
|
5
|
+
import { u as d } from "../usePortalContainer-B1xla842.js";
|
|
6
6
|
const s = t.forwardRef(
|
|
7
7
|
({ children: o, className: a, ...e }, n) => (t.useEffect(() => (r.notify(!0), () => r.notify(!1)), []), /* @__PURE__ */ i("div", { ref: n, className: f("ui-kit fixed left-0 top-0", a), "data-portal-container": !0, ...e, children: o }))
|
|
8
8
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-container.js","sources":["../../src/components/portal-container/PortalContainer.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { portalContainerEvents } from \"./portalContainerEvents\";\n\n/**\n * Компонент-контейнер для портала с поддержкой изолированных стилей.\n *\n * Предоставляет обёртку с классом 'ui-kit' и data-атрибутом для плавающего контента\n * (Dialog, Dropdown, Select, Popover, Drawer, Tooltip, Sheet, AlertDialog).\n *\n * Следует использовать только если применяются изолированные стили.\n */\nexport const PortalContainer = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<\"div\">>(\n\t({ children, className, ...props }, ref) => {\n\t\tReact.useEffect(() => {\n\t\t\tportalContainerEvents.notify(true);\n\t\t\treturn () => portalContainerEvents.notify(false);\n\t\t}, []);\n\n\t\treturn (\n\t\t\t<div ref={ref} className={cn(\"ui-kit fixed left-0 top-0\", className)} data-portal-container {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nPortalContainer.displayName = \"PortalContainer\";\n"],"names":["PortalContainer","React","children","className","props","ref","portalContainerEvents","jsx","cn"],"mappings":";;;;;AAYO,MAAMA,IAAkBC,EAAM;AAAA,EACpC,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAASC,OACnCJ,EAAM,UAAU,OACfK,EAAsB,OAAO,EAAI,GAC1B,MAAMA,EAAsB,OAAO,EAAK,IAC7C,EAAE,GAGH,gBAAAC,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWG,EAAG,6BAA6BL,CAAS,GAAG,yBAAqB,IAAE,GAAGC,GAC9F,UAAAF,EACF,CAAA;AAGH;AAEAF,EAAgB,cAAc;"}
|
|
1
|
+
{"version":3,"file":"portal-container.js","sources":["../../src/components/portal-container/PortalContainer.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport { portalContainerEvents } from \"./portalContainerEvents\";\r\n\r\n/**\r\n * Компонент-контейнер для портала с поддержкой изолированных стилей.\r\n *\r\n * Предоставляет обёртку с классом 'ui-kit' и data-атрибутом для плавающего контента\r\n * (Dialog, Dropdown, Select, Popover, Drawer, Tooltip, Sheet, AlertDialog).\r\n *\r\n * Следует использовать только если применяются изолированные стили.\r\n */\r\nexport const PortalContainer = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<\"div\">>(\r\n\t({ children, className, ...props }, ref) => {\r\n\t\tReact.useEffect(() => {\r\n\t\t\tportalContainerEvents.notify(true);\r\n\t\t\treturn () => portalContainerEvents.notify(false);\r\n\t\t}, []);\r\n\r\n\t\treturn (\r\n\t\t\t<div ref={ref} className={cn(\"ui-kit fixed left-0 top-0\", className)} data-portal-container {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nPortalContainer.displayName = \"PortalContainer\";\r\n"],"names":["PortalContainer","React","children","className","props","ref","portalContainerEvents","jsx","cn"],"mappings":";;;;;AAYO,MAAMA,IAAkBC,EAAM;AAAA,EACpC,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,GAAGC,EAAA,GAASC,OACnCJ,EAAM,UAAU,OACfK,EAAsB,OAAO,EAAI,GAC1B,MAAMA,EAAsB,OAAO,EAAK,IAC7C,EAAE,GAGH,gBAAAC,EAAA,OAAA,EAAI,KAAAF,GAAU,WAAWG,EAAG,6BAA6BL,CAAS,GAAG,yBAAqB,IAAE,GAAGC,GAC9F,UAAAF,EACF,CAAA;AAGH;AAEAF,EAAgB,cAAc;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as u, jsx as o } from "react/jsx-runtime";
|
|
2
2
|
import f, { useMemo as b } from "react";
|
|
3
3
|
import { T as l } from "../index-BVqs-uqP.js";
|
|
4
|
-
import { I as D } from "../IconButton-
|
|
4
|
+
import { I as D } from "../IconButton-DAg1oMwz.js";
|
|
5
5
|
import { R as P } from "../rotate-cw-tYRlcg0g.js";
|
|
6
6
|
const I = l({
|
|
7
7
|
slots: {
|