ics-ui-kit 0.1.19 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -36
- package/dist/AlertContext-CxjW1LVL.js.map +1 -1
- package/dist/AlertIcon-BphnEYvV.js.map +1 -1
- package/dist/{Button-BZ3ON1Tj.js → Button-_qdP4hSf.js} +2 -2
- package/dist/Button-_qdP4hSf.js.map +1 -0
- package/dist/{ButtonBase-jgu7EolU.js → ButtonBase-CbWrYcx-.js} +2 -2
- package/dist/ButtonBase-CbWrYcx-.js.map +1 -0
- package/dist/{CheckboxField-limFbMk2.js → CheckboxField-xDqHgXHh.js} +32 -32
- package/dist/CheckboxField-xDqHgXHh.js.map +1 -0
- package/dist/Combination-DeIugdgY.js.map +1 -1
- package/dist/{Command-B7ZRyW8w.js → Command-WsAKNQrY.js} +8 -8
- package/dist/Command-WsAKNQrY.js.map +1 -0
- package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
- package/dist/Description-BTPMlTT-.js.map +1 -1
- package/dist/{Dialog-CdnsGyJD.js → Dialog-i_Y-phdM.js} +42 -43
- package/dist/Dialog-i_Y-phdM.js.map +1 -0
- package/dist/Divider-DPW5ZhZ8.js.map +1 -1
- package/dist/EmptyState-DRKjscH-.js.map +1 -1
- package/dist/ErrorState-B26k67-z.js.map +1 -1
- package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
- package/dist/{Field-CP_-li9L.js → Field-BcwUtgGr.js} +2 -2
- package/dist/Field-BcwUtgGr.js.map +1 -0
- package/dist/{FieldLabel-eyKmeWRn.js → FieldLabel-DYu1AcGH.js} +2 -2
- package/dist/FieldLabel-DYu1AcGH.js.map +1 -0
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/{FormFooterTemplate-DdNnLu2-.js → FormFooterTemplate-CHlas_Pp.js} +5 -5
- package/dist/FormFooterTemplate-CHlas_Pp.js.map +1 -0
- package/dist/{FormHeader--F6b2aRk.js → FormHeader-PE63OqG9.js} +3 -3
- package/dist/FormHeader-PE63OqG9.js.map +1 -0
- package/dist/FormStack-DfoaOry7.js +1205 -0
- package/dist/FormStack-DfoaOry7.js.map +1 -0
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/{IconButton-uGJ3cQtk.js → IconButton-DAg1oMwz.js} +2 -2
- package/dist/IconButton-DAg1oMwz.js.map +1 -0
- package/dist/{IconTooltip-RSxvnBgH.js → IconTooltip-R6_6_f40.js} +2 -2
- package/dist/IconTooltip-R6_6_f40.js.map +1 -0
- package/dist/Indicator-AqxHWPA9.js.map +1 -1
- package/dist/{InputGroup-AVAtosX_.js → InputGroup-CW55G5nE.js} +5 -5
- package/dist/InputGroup-CW55G5nE.js.map +1 -0
- package/dist/{InputOTP-B2e1nfSO.js → InputOTP-DkVh6bBz.js} +2 -2
- package/dist/InputOTP-DkVh6bBz.js.map +1 -0
- package/dist/Loader-BpHiL6W-.js.map +1 -1
- package/dist/{MenuItem-d19Ty84F.js → MenuItem-C51uFz3V.js} +11 -11
- package/dist/MenuItem-C51uFz3V.js.map +1 -0
- package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
- package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
- package/dist/{Overlay-CVt011mY.js → Overlay-E0UvxzIc.js} +2 -2
- package/dist/Overlay-E0UvxzIc.js.map +1 -0
- package/dist/{Popover-KjZXxxl3.js → Popover-XrJa7lyb.js} +51 -52
- package/dist/Popover-XrJa7lyb.js.map +1 -0
- package/dist/{RichButton-B1wjK7Bk.js → RichButton-Bt0yUShU.js} +2 -2
- package/dist/RichButton-Bt0yUShU.js.map +1 -0
- package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
- package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
- package/dist/{SearchSelectTag-CA7Ie3Nx.js → SearchSelectTag-Dp5_OvZp.js} +16 -16
- package/dist/SearchSelectTag-Dp5_OvZp.js.map +1 -0
- package/dist/{Select-D9juHX8o.js → Select-DO02vXt3.js} +189 -190
- package/dist/Select-DO02vXt3.js.map +1 -0
- package/dist/{Sheet-qTIXsqm0.js → Sheet-C2UoHLL0.js} +40 -41
- package/dist/Sheet-C2UoHLL0.js.map +1 -0
- package/dist/Shortcut-D8L15_ed.js.map +1 -1
- package/dist/Skeleton-y6I-i9q5.js.map +1 -1
- package/dist/{TableFillHandle-C_yvCTSl.js → TableFillHandle-CHHoUi6s.js} +7 -7
- package/dist/TableFillHandle-CHHoUi6s.js.map +1 -0
- package/dist/{Tag-DdHXTyKF.js → Tag-Cf6HftP-.js} +4 -4
- package/dist/Tag-Cf6HftP-.js.map +1 -0
- package/dist/Text-DeBE8AKl.js.map +1 -1
- package/dist/{TextInput-5BuZtWV6.js → TextInput-CoL8nOyt.js} +3 -3
- package/dist/TextInput-CoL8nOyt.js.map +1 -0
- package/dist/{TextOverflowTooltip-B1I5qwAT.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
- package/dist/{TextOverflowTooltip-B1I5qwAT.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
- package/dist/{Toggle-v_HT3Gm2.js → Toggle-CmalMf4O.js} +2 -2
- package/dist/Toggle-CmalMf4O.js.map +1 -0
- package/dist/{Tooltip-7Duaau0S.js → Tooltip-D2XvRS0c.js} +64 -65
- package/dist/Tooltip-D2XvRS0c.js.map +1 -0
- package/dist/{TriggerButton-Bakr8Boi.js → TriggerButton-CoAgB4lx.js} +2 -2
- package/dist/TriggerButton-CoAgB4lx.js.map +1 -0
- package/dist/blocks/auth/otp-form.js +3240 -204
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/cn-dsXlqdJg.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
- package/dist/components/alert-dialog.js +71 -72
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/background-pattern.js.map +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/banner.js.map +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js +5 -5
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js +2889 -71
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js +2 -2
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.js +1 -1
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/color-tile.js.map +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/context-menu.js +6 -6
- package/dist/components/context-menu.js.map +1 -1
- package/dist/components/counter.js +1 -1
- package/dist/components/counter.js.map +1 -1
- package/dist/components/dialog/Dialog.d.ts +2 -4
- package/dist/components/dialog.js +3 -3
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/divider.js.map +1 -1
- package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
- package/dist/components/drawer.js +98 -99
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +2 -4
- package/dist/components/dropdown.js +258 -259
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/error-state.js +1 -1
- package/dist/components/error-state.js.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/file-upload.js +3 -3
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/form/Form.d.ts +14 -0
- package/dist/components/form/components/form-field/FormField.d.ts +4 -0
- package/dist/components/form.js +5 -5
- package/dist/components/form.js.map +1 -1
- package/dist/components/glass-toolbar.js +6 -6
- package/dist/components/glass-toolbar.js.map +1 -1
- package/dist/components/icon-tooltip.js +1 -1
- package/dist/components/image-placeholder.js.map +1 -1
- package/dist/components/image-preview.js +2 -2
- package/dist/components/image-preview.js.map +1 -1
- package/dist/components/image-uploader.js +1 -1
- package/dist/components/image-uploader.js.map +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.js +5 -5
- package/dist/components/input.js.map +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/menu-item.js +6 -6
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/overflow-tooltip.js +1 -1
- package/dist/components/overlay.js +1 -1
- package/dist/components/page-state.js +7 -7
- package/dist/components/page-state.js.map +1 -1
- package/dist/components/popover/Popover.d.ts +1 -2
- package/dist/components/popover.js +1 -1
- package/dist/components/progress-circle.js +1 -1
- package/dist/components/progress-circle.js.map +1 -1
- package/dist/components/progress.js +3 -3
- package/dist/components/progress.js.map +1 -1
- package/dist/components/prose.js.map +1 -1
- package/dist/components/radio-group.js +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable/Resizable.d.ts +1 -1
- package/dist/components/resizable.js +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scheduler.js +1 -1
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
- package/dist/components/search-select.js +4 -4
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/select/Select.d.ts +1 -2
- package/dist/components/select.js +1 -1
- package/dist/components/sheet/Sheet.d.ts +1 -2
- package/dist/components/sheet.js +1 -1
- package/dist/components/sidebar.js +90 -90
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js +2 -2
- package/dist/components/switch.js.map +1 -1
- package/dist/components/system-state.js +1 -1
- package/dist/components/system-state.js.map +1 -1
- package/dist/components/table/editable/editableCell.d.ts +2 -2
- package/dist/components/table/editable.js +1 -1
- package/dist/components/table/tree.js +1 -1
- package/dist/components/table.js +2 -2
- package/dist/components/tabs.js +2 -2
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-input.js +5 -5
- package/dist/components/tag-input.js.map +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/timer.js.map +1 -1
- package/dist/components/toast.js +6 -6
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/toolbar.js +1 -1
- package/dist/components/toolbar.js.map +1 -1
- package/dist/components/tooltip/Tooltip.d.ts +2 -4
- package/dist/components/tooltip.js +1 -1
- package/dist/design-tokens.source.json +1 -0
- package/dist/docs/tailwind-utilities/ScrollFade.stories.d.ts +28 -0
- package/dist/docs/tailwind-utilities/Shimmer.stories.d.ts +32 -0
- package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -1
- package/dist/font-smoothing.css +4 -0
- package/dist/formatBytes-C4QXq5lC.js.map +1 -1
- package/dist/index-0ioNhtNM.js.map +1 -1
- package/dist/index-1SnkxfPR.js.map +1 -1
- package/dist/index-437EL2iq.js.map +1 -1
- package/dist/index-BDrapWDv.js.map +1 -1
- package/dist/index-BGQepRFJ.js.map +1 -1
- package/dist/index-BVqs-uqP.js.map +1 -1
- package/dist/index-BZPx6jYI.js.map +1 -1
- package/dist/index-Bb23HztA.js.map +1 -1
- package/dist/index-BjtNfqNq.js.map +1 -1
- package/dist/index-BpWB3aFK.js.map +1 -1
- package/dist/index-ByaXH_ih.js.map +1 -1
- package/dist/index-CCKe-Mpx.js.map +1 -1
- package/dist/index-CFaU3UXv.js.map +1 -1
- package/dist/index-CLuiUUQ8.js.map +1 -1
- package/dist/index-CMxHunQ4.js.map +1 -1
- package/dist/index-CmBeyp2d.js.map +1 -1
- package/dist/index-DFZozV_h.js.map +1 -1
- package/dist/index-DHsfW5Rj.js.map +1 -1
- package/dist/index-DHyZ_0Ut.js.map +1 -1
- package/dist/index-DLcqcWxM.js.map +1 -1
- package/dist/index-DnnQs07z.js.map +1 -1
- package/dist/index-Uiy0Xwy2.js.map +1 -1
- package/dist/index-_ITz1IyW.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{inputBaseStyles-BfZIWuQ6.js → inputBaseStyles-CZwQWSub.js} +7 -7
- package/dist/inputBaseStyles-CZwQWSub.js.map +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/opaqueCell-D95h1mFM.js.map +1 -1
- package/dist/tailwind.css +408 -0
- package/dist/theme.css +360 -360
- package/dist/{treeModel-BlJWP4sc.js → treeModel-CUO1A5s7.js} +11 -11
- package/dist/treeModel-CUO1A5s7.js.map +1 -0
- package/dist/types/css.d.ts +4 -4
- package/dist/useBreakpoints-DHvp74UL.js.map +1 -1
- package/dist/useDebounce-BRah78CF.js.map +1 -1
- package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
- package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
- package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
- package/package.json +28 -28
- package/dist/Button-BZ3ON1Tj.js.map +0 -1
- package/dist/ButtonBase-jgu7EolU.js.map +0 -1
- package/dist/CheckboxField-limFbMk2.js.map +0 -1
- package/dist/Command-B7ZRyW8w.js.map +0 -1
- package/dist/DayPicker-4hE1QEvO.js +0 -2452
- package/dist/DayPicker-4hE1QEvO.js.map +0 -1
- package/dist/Dialog-CdnsGyJD.js.map +0 -1
- package/dist/Field-CP_-li9L.js.map +0 -1
- package/dist/FieldLabel-eyKmeWRn.js.map +0 -1
- package/dist/FormFooterTemplate-DdNnLu2-.js.map +0 -1
- package/dist/FormHeader--F6b2aRk.js.map +0 -1
- package/dist/FormStack-Cc_ELdWL.js +0 -127
- package/dist/FormStack-Cc_ELdWL.js.map +0 -1
- package/dist/IconButton-uGJ3cQtk.js.map +0 -1
- package/dist/IconTooltip-RSxvnBgH.js.map +0 -1
- package/dist/InputGroup-AVAtosX_.js.map +0 -1
- package/dist/InputOTP-B2e1nfSO.js.map +0 -1
- package/dist/MenuItem-d19Ty84F.js.map +0 -1
- package/dist/Overlay-CVt011mY.js.map +0 -1
- package/dist/Popover-KjZXxxl3.js.map +0 -1
- package/dist/RichButton-B1wjK7Bk.js.map +0 -1
- package/dist/SearchSelectTag-CA7Ie3Nx.js.map +0 -1
- package/dist/Select-D9juHX8o.js.map +0 -1
- package/dist/Sheet-qTIXsqm0.js.map +0 -1
- package/dist/TableFillHandle-C_yvCTSl.js.map +0 -1
- package/dist/Tag-DdHXTyKF.js.map +0 -1
- package/dist/TextInput-5BuZtWV6.js.map +0 -1
- package/dist/Toggle-v_HT3Gm2.js.map +0 -1
- package/dist/Tooltip-7Duaau0S.js.map +0 -1
- package/dist/TriggerButton-Bakr8Boi.js.map +0 -1
- package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
- package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
- package/dist/components/portal-container/PortalContainer.d.ts +0 -10
- package/dist/components/portal-container/index.d.ts +0 -2
- package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
- package/dist/components/portal-container/usePortalContainer.d.ts +0 -10
- package/dist/components/portal-container.d.ts +0 -2
- package/dist/components/portal-container.js +0 -14
- package/dist/components/portal-container.js.map +0 -1
- package/dist/index.esm-CXA6i4d7.js +0 -1282
- package/dist/index.esm-CXA6i4d7.js.map +0 -1
- package/dist/inputBaseStyles-BfZIWuQ6.js.map +0 -1
- package/dist/lib/utils/styles.d.ts +0 -10
- package/dist/normalizeDates-9A3c9WYM.js +0 -32
- package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
- package/dist/styles-scoped.css +0 -6605
- package/dist/styles-scoped.d.ts +0 -1
- package/dist/styles.css +0 -6594
- package/dist/styles.d.ts +0 -1
- package/dist/treeModel-BlJWP4sc.js.map +0 -1
- package/dist/usePortalContainer-BAIp0kSF.js +0 -44
- package/dist/usePortalContainer-BAIp0kSF.js.map +0 -1
- package/dist/vendors/date-fns/index.d.ts +0 -12
- package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
- package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
- package/dist/vendors/date-fns/locale/en-US.js +0 -372
- package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
- package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
- package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
- package/dist/vendors/date-fns/locale/ru.js +0 -569
- package/dist/vendors/date-fns/locale/ru.js.map +0 -1
- package/dist/vendors/date-fns.d.ts +0 -2
- package/dist/vendors/date-fns.js +0 -2
- package/dist/vendors/date-fns.js.map +0 -1
- package/dist/vendors/react-day-picker/index.d.ts +0 -13
- package/dist/vendors/react-day-picker.d.ts +0 -2
- package/dist/vendors/react-day-picker.js +0 -87
- package/dist/vendors/react-day-picker.js.map +0 -1
- package/dist/vendors/react-hook-form/index.d.ts +0 -14
- package/dist/vendors/react-hook-form.d.ts +0 -2
- package/dist/vendors/react-hook-form.js +0 -19
- package/dist/vendors/react-hook-form.js.map +0 -1
- package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
- package/dist/vendors/tanstack/react-table.d.ts +0 -2
- package/dist/vendors/tanstack/react-table.js +0 -2090
- package/dist/vendors/tanstack/react-table.js.map +0 -1
- package/dist/vendors/zod/index.d.ts +0 -13
- package/dist/vendors/zod.d.ts +0 -2
- package/dist/vendors/zod.js +0 -3080
- package/dist/vendors/zod.js.map +0 -1
- package/dist/zod-BMNoK3aM.js +0 -75
- package/dist/zod-BMNoK3aM.js.map +0 -1
- package/tailwind.preset.js +0 -452
|
@@ -2,7 +2,7 @@ import { E as d } from "../ErrorState-B26k67-z.js";
|
|
|
2
2
|
import { jsx as a } from "react/jsx-runtime";
|
|
3
3
|
import m from "react";
|
|
4
4
|
import { T as s } from "../index-BVqs-uqP.js";
|
|
5
|
-
import { B as p } from "../Button-
|
|
5
|
+
import { B as p } from "../Button-_qdP4hSf.js";
|
|
6
6
|
const f = s({
|
|
7
7
|
base: "h-5 px-3 py-0"
|
|
8
8
|
}), i = m.forwardRef(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-state.js","sources":["../../src/components/error-state/Retry.tsx"],"sourcesContent":["import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Button, ButtonProps } from \"../button/button/Button\";\n\nconst retryStyles = tv({\n\tbase: \"h-5 px-3 py-0\"\n});\n\nexport type RetryProps = Omit<ButtonProps, \"size\">;\n\n/**\n * Компонент Retry - кнопка для повторного выполнения действия\n *\n * @example\n * <Retry onClick={handleRetry}>Повторить</Retry>\n */\nexport const Retry = React.forwardRef<HTMLButtonElement, RetryProps>(\n\t({ className, children = \"Повторить\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<Button ref={ref} variant=\"link\" className={retryStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</Button>\n\t\t);\n\t}\n);\n\nRetry.displayName = \"Retry\";\n"],"names":["retryStyles","tv","Retry","React","className","children","props","ref","jsx","Button"],"mappings":";;;;;AAIA,MAAMA,IAAcC,EAAG;AAAA,EACtB,MAAM;AACP,CAAC,GAUYC,IAAQC,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,UAAAC,IAAW,aAAa,GAAGC,KAASC,MAE/C,gBAAAC,EAAAC,GAAA,EAAO,KAAAF,GAAU,SAAQ,QAAO,WAAWP,EAAY,EAAE,WAAAI,EAAW,CAAA,GAAI,GAAGE,GAC1E,UAAAD,EACF,CAAA;AAGH;AAEAH,EAAM,cAAc;"}
|
|
1
|
+
{"version":3,"file":"error-state.js","sources":["../../src/components/error-state/Retry.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Button, ButtonProps } from \"../button/button/Button\";\r\n\r\nconst retryStyles = tv({\r\n\tbase: \"h-5 px-3 py-0\"\r\n});\r\n\r\nexport type RetryProps = Omit<ButtonProps, \"size\">;\r\n\r\n/**\r\n * Компонент Retry - кнопка для повторного выполнения действия\r\n *\r\n * @example\r\n * <Retry onClick={handleRetry}>Повторить</Retry>\r\n */\r\nexport const Retry = React.forwardRef<HTMLButtonElement, RetryProps>(\r\n\t({ className, children = \"Повторить\", ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<Button ref={ref} variant=\"link\" className={retryStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</Button>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nRetry.displayName = \"Retry\";\r\n"],"names":["retryStyles","tv","Retry","React","className","children","props","ref","jsx","Button"],"mappings":";;;;;AAIA,MAAMA,IAAcC,EAAG;AAAA,EACtB,MAAM;AACP,CAAC,GAUYC,IAAQC,EAAM;AAAA,EAC1B,CAAC,EAAE,WAAAC,GAAW,UAAAC,IAAW,aAAa,GAAGC,KAASC,MAE/C,gBAAAC,EAAAC,GAAA,EAAO,KAAAF,GAAU,SAAQ,QAAO,WAAWP,EAAY,EAAE,WAAAI,EAAW,CAAA,GAAI,GAAGE,GAC1E,UAAAD,EACF,CAAA;AAGH;AAEAH,EAAM,cAAc;"}
|
package/dist/components/field.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsx as a, jsxs as m, Fragment as Y } from "react/jsx-runtime";
|
|
2
|
-
import { I as C } from "../IconButton-
|
|
2
|
+
import { I as C } from "../IconButton-DAg1oMwz.js";
|
|
3
3
|
import { f as S } from "../formatBytes-C4QXq5lC.js";
|
|
4
4
|
import U, { useMemo as V, useCallback as R } from "react";
|
|
5
5
|
import { T as b } from "../index-BVqs-uqP.js";
|
|
6
6
|
import { F as q } from "../FeatureIcon-BGE0Orkc.js";
|
|
7
7
|
import { c as F } from "../createLucideIcon-DwBrHnj9.js";
|
|
8
8
|
import { I as ee } from "../image-BqL5JP90.js";
|
|
9
|
-
import { T as B } from "../TextOverflowTooltip-
|
|
9
|
+
import { T as B } from "../TextOverflowTooltip-XPDdO9Dz.js";
|
|
10
10
|
import { D as Z } from "../download-BHsj218e.js";
|
|
11
11
|
import { X as L } from "../x-tDTt7hTQ.js";
|
|
12
12
|
import { A as ae, b as te, a as re } from "../AlertIcon-BphnEYvV.js";
|
|
13
13
|
import { C as oe } from "../circle-alert-CVIokIC7.js";
|
|
14
|
-
import { B as ie } from "../Button-
|
|
14
|
+
import { B as ie } from "../Button-_qdP4hSf.js";
|
|
15
15
|
import { I as se } from "../Icon-DH3ev9GK.js";
|
|
16
16
|
import { u as E } from "../useFileUpload-Bnl3P8mP.js";
|
|
17
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-archive.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-text.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/headphones.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/upload.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/video.js","../../src/hooks/useFileType.ts","../../src/components/file-upload/components/file-upload-icon/FileUploadIcon.tsx","../../src/components/file-upload/components/file-upload-item/FileUploadItem.tsx","../../src/components/file-upload/components/file-upload-error/FileUploadError.tsx","../../src/components/file-upload/components/file-upload-drop-area-icon/FileUploadDropAreaIcon.tsx","../../src/components/file-upload/components/file-upload-drop-area/FileUploadDropArea.tsx","../../src/components/file-upload/components/file-upload-inline-drop-area/FileUploadInlineDropArea.tsx","../../src/components/file-upload/components/file-upload-clear-button/FileUploadClearButton.tsx","../../src/components/file-upload/components/file-upload-input-zone/FileUploadInputZone.tsx","../../src/components/file-upload/components/file-upload-compact-input-zone/FileUploadCompactInputZone.tsx","../../src/components/file-upload/components/file-upload-item-compact/FileUploadItemCompact.tsx","../../src/components/file-upload/FileUpload.tsx","../../src/components/file-upload/file-upload-compact/FileUploadCompact.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 FileArchive = createLucideIcon(\"FileArchive\", [\n [\"path\", { d: \"M10 12v-1\", key: \"v7bkov\" }],\n [\"path\", { d: \"M10 18v-2\", key: \"1cjy8d\" }],\n [\"path\", { d: \"M10 7V6\", key: \"dljcrl\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\n \"path\",\n { d: \"M15.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 .274 1.01\", key: \"gkbcor\" }\n ],\n [\"circle\", { cx: \"10\", cy: \"20\", r: \"2\", key: \"1xzdoj\" }]\n]);\n\nexport { FileArchive as default };\n//# sourceMappingURL=file-archive.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 FileSpreadsheet = createLucideIcon(\"FileSpreadsheet\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M8 13h2\", key: \"yr2amv\" }],\n [\"path\", { d: \"M14 13h2\", key: \"un5t4a\" }],\n [\"path\", { d: \"M8 17h2\", key: \"2yhykz\" }],\n [\"path\", { d: \"M14 17h2\", key: \"10kma7\" }]\n]);\n\nexport { FileSpreadsheet as default };\n//# sourceMappingURL=file-spreadsheet.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 FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.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 File = createLucideIcon(\"File\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }]\n]);\n\nexport { File as default };\n//# sourceMappingURL=file.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 Headphones = createLucideIcon(\"Headphones\", [\n [\n \"path\",\n {\n d: \"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3\",\n key: \"1xhozi\"\n }\n ]\n]);\n\nexport { Headphones as default };\n//# sourceMappingURL=headphones.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 Upload = createLucideIcon(\"Upload\", [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"17 8 12 3 7 8\", key: \"t8dd8p\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"3\", y2: \"15\", key: \"widbto\" }]\n]);\n\nexport { Upload as default };\n//# sourceMappingURL=upload.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 Video = createLucideIcon(\"Video\", [\n [\n \"path\",\n {\n d: \"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\",\n key: \"ftymec\"\n }\n ],\n [\"rect\", { x: \"2\", y: \"6\", width: \"14\", height: \"12\", rx: \"2\", key: \"158x01\" }]\n]);\n\nexport { Video as default };\n//# sourceMappingURL=video.js.map\n","import {\n\tFileArchiveIcon,\n\tFileIcon,\n\tFileSpreadsheetIcon,\n\tFileTextIcon,\n\tHeadphonesIcon,\n\tImageIcon,\n\tVideoIcon\n} from \"lucide-react\";\nimport { FileData } from \"./use-file-upload/useFileUpload\";\n\nexport const useFileType = (file: FileData) => {\n\tconst fileType = file.type;\n\tconst fileName = file.name;\n\n\t// Определяем тип файла и возвращаем соответствующую иконку\n\tif (\n\t\tfileType.includes(\"pdf\") ||\n\t\tfileName.endsWith(\".pdf\") ||\n\t\tfileType.includes(\"word\") ||\n\t\tfileName.endsWith(\".doc\") ||\n\t\tfileName.endsWith(\".docx\")\n\t) {\n\t\treturn FileTextIcon;\n\t} else if (\n\t\tfileType.includes(\"zip\") ||\n\t\tfileType.includes(\"archive\") ||\n\t\tfileName.endsWith(\".zip\") ||\n\t\tfileName.endsWith(\".rar\")\n\t) {\n\t\treturn FileArchiveIcon;\n\t} else if (fileType.includes(\"excel\") || fileName.endsWith(\".xls\") || fileName.endsWith(\".xlsx\")) {\n\t\treturn FileSpreadsheetIcon;\n\t} else if (fileType.includes(\"video/\")) {\n\t\treturn VideoIcon;\n\t} else if (fileType.includes(\"audio/\")) {\n\t\treturn HeadphonesIcon;\n\t} else if (fileType.startsWith(\"image/\")) {\n\t\treturn ImageIcon;\n\t}\n\n\treturn FileIcon;\n};\n","import { FeatureIcon } from \"@/components/icon\";\nimport { tv } from \"tailwind-variants\";\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\nimport { useFileType } from \"@/hooks/useFileType\";\n\nconst fileIconStyles = tv({\n\tbase: \"rounded-md text-muted ring-0\"\n});\n\nexport interface FileUploadIconProps {\n\tfile: FileData;\n}\n\nexport const FileUploadIcon = ({ file }: FileUploadIconProps) => {\n\tconst IconComponent = useFileType(file);\n\n\treturn <FeatureIcon icon={IconComponent} size=\"lg\" className={fileIconStyles()} />;\n};\n","import { IconButton } from \"@/components/button\";\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\nimport { formatBytes } from \"@/lib/utils/file/formatBytes\";\nimport { Download, XIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FileUploadIcon } from \"../file-upload-icon/FileUploadIcon\";\nimport { TextOverflowTooltip } from \"@/components/overflow-tooltip\";\n\nconst fileUploadItemStyles = tv({\n\tslots: {\n\t\twrapper:\n\t\t\t\"box-border flex h-16 justify-between gap-2 rounded-xl border border-secondary-border bg-background p-3 pe-3\",\n\t\tinfoWrapper: \"flex min-w-0 flex-1 items-center gap-2.5\",\n\t\ttextWrapper: \"flex min-w-0 flex-col gap-0.5\",\n\t\ttitle: \"truncate text-sm font-medium\",\n\t\tdescription: \"text-xs tabular-nums text-muted\",\n\t\tactionWrapper: \"-me-3 -mt-3 flex h-8 items-center -space-x-1.5\"\n\t}\n});\n\nexport type FileUploadItemProps = React.HTMLAttributes<HTMLDivElement> & {\n\tonClear: () => void;\n\tonDownload?: (file: FileData) => void;\n\tfile: FileData;\n\trenderDescription?: (file: FileData) => React.ReactNode;\n};\n\nexport const FileUploadItem = React.forwardRef<HTMLDivElement, FileUploadItemProps>(\n\t({ onClear, onDownload, file, className, renderDescription, ...props }, ref) => {\n\t\tconst styles = fileUploadItemStyles();\n\n\t\treturn (\n\t\t\t<div className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t<div className={styles.infoWrapper()}>\n\t\t\t\t\t<FileUploadIcon file={file} />\n\n\t\t\t\t\t<div className={styles.textWrapper()}>\n\t\t\t\t\t\t<TextOverflowTooltip className={styles.title()}>{file.name}</TextOverflowTooltip>\n\t\t\t\t\t\t<p className={styles.description()}>{renderDescription?.(file) ?? formatBytes(file.size)}</p>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<div className={styles.actionWrapper()}>\n\t\t\t\t\t{onDownload && (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\ticon={Download}\n\t\t\t\t\t\t\tonClick={() => onDownload(file)}\n\t\t\t\t\t\t\taria-label=\"Download file\"\n\t\t\t\t\t\t\ticonClassName=\"size-4\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\ticon={XIcon}\n\t\t\t\t\t\tonClick={onClear}\n\t\t\t\t\t\taria-label=\"Remove file\"\n\t\t\t\t\t\ticonClassName=\"size-4\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nFileUploadItem.displayName = \"FileUploadItem\";\n","import { Alert, AlertDescription, AlertIcon } from \"@/components/alert\";\nimport { AlertCircleIcon } from \"lucide-react\";\nimport React from \"react\";\n\nexport type FileUploadErrorProps = React.HTMLAttributes<HTMLDivElement> & {\n\terror: string | string[];\n};\n\nexport const FileUploadError = React.forwardRef<HTMLDivElement, FileUploadErrorProps>(({ error, ...props }, ref) => {\n\tconst errorText = Array.isArray(error) ? error.join(\"\\n\") : error;\n\treturn (\n\t\t<Alert status=\"error\" focus=\"medium\" {...props} ref={ref}>\n\t\t\t<AlertIcon icon={AlertCircleIcon} />\n\t\t\t<AlertDescription className=\"whitespace-pre-line\">{errorText}</AlertDescription>\n\t\t</Alert>\n\t);\n});\n\nFileUploadError.displayName = \"FileUploadError\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { FeatureIconProps } from \"@/components/icon/feature-icon/FeatureIcon\";\n\nconst fileUploadDropAreaIconStyles = tv({\n\tbase: \"shrink-0 bg-status-neutral-fg\"\n});\n\nexport const FileUploadDropAreaIcon: React.FC<FeatureIconProps> = ({ icon, className, ...props }) => {\n\treturn <FeatureIcon size=\"xl\" icon={icon} className={fileUploadDropAreaIconStyles({ className })} {...props} />;\n};\n\nFileUploadDropAreaIcon.displayName = \"FileUploadDropAreaIcon\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FileUploadDropAreaIcon } from \"../file-upload-drop-area-icon/FileUploadDropAreaIcon\";\nimport { LucideIcon, Upload } from \"lucide-react\";\n\nconst fileUploadDropAreaStyles = tv({\n\tslots: {\n\t\twrapper: [\n\t\t\t\"has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50\",\n\t\t\t\"relative flex min-h-[9.125rem] flex-col items-center justify-center rounded-xl border border-dashed border-primary-border bg-secondary-bg p-6 transition-colors\",\n\t\t\t\"hover:bg-secondary-bg-hover\",\n\t\t\t\"has-[input:focus]:shadow-focus\",\n\t\t\t\"data-[dragging=true]:bg-secondary-bg-hover\"\n\t\t],\n\t\ttitle: \"mb-1.5 text-sm font-medium text-primary-accent\",\n\t\ticon: \"mb-3 size-11\",\n\t\tdescription: \"flex flex-wrap justify-center gap-1 text-xs text-muted\"\n\t}\n});\n\nexport type FileUploadDropAreaProps = React.HTMLAttributes<HTMLDivElement> & {\n\ttitle?: React.ReactNode;\n\tdescription?: React.ReactNode;\n\ticon?: LucideIcon;\n};\n\nexport const FileUploadDropArea = React.forwardRef<HTMLDivElement, FileUploadDropAreaProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\ttitle = \"Click to upload or drop your files here \",\n\t\t\tdescription = \"All files\\n∙\\nInfinity files\\n∙\\nInfinity size\",\n\t\t\ticon,\n\t\t\tchildren,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst styles = fileUploadDropAreaStyles();\n\n\t\treturn (\n\t\t\t<div role=\"button\" className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t<FileUploadDropAreaIcon icon={icon || Upload} className={styles.icon()} />\n\t\t\t\t<p className={styles.title()}>{title}</p>\n\t\t\t\t{description && <p className={styles.description()}>{description}</p>}\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nFileUploadDropArea.displayName = \"FileUploadDropArea\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FileUploadDropAreaIcon } from \"../file-upload-drop-area-icon/FileUploadDropAreaIcon\";\nimport { LucideIcon, Upload } from \"lucide-react\";\n\nconst fileUploadInlineDropAreaStyles = tv({\n\tslots: {\n\t\twrapper: [\n\t\t\t\"has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50\",\n\t\t\t\"relative flex h-11 items-center rounded-lg border border-dashed border-primary-border bg-secondary-bg p-1.5 transition-colors\",\n\t\t\t\"hover:bg-secondary-bg-hover\",\n\t\t\t\"has-[input:focus]:shadow-focus\",\n\t\t\t\"data-[dragging=true]:bg-secondary-bg-hover\"\n\t\t],\n\t\ticon: \"mr-3\",\n\t\ttitle: \"text-sm font-medium text-primary-accent\",\n\t\tdescription: \"ml-1.5 flex flex-wrap justify-center gap-1.5 text-xs text-muted\"\n\t}\n});\n\nexport type FileUploadInlineDropAreaProps = React.HTMLAttributes<HTMLDivElement> & {\n\ttitle?: React.ReactNode;\n\tdescription?: React.ReactNode;\n\ticon?: LucideIcon;\n};\n\nexport const FileUploadInlineDropArea = React.forwardRef<HTMLDivElement, FileUploadInlineDropAreaProps>(\n\t(\n\t\t{ className, title = \"Upload files\", description = \"Drag & drop or click to browse\", icon, children, ...props },\n\t\tref\n\t) => {\n\t\tconst styles = fileUploadInlineDropAreaStyles();\n\n\t\treturn (\n\t\t\t<div role=\"button\" className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t<FileUploadDropAreaIcon icon={icon || Upload} className={styles.icon()} size=\"sm\" />\n\t\t\t\t<div className=\"flex items-baseline\">\n\t\t\t\t\t<p className={styles.title()}>{title}</p>\n\t\t\t\t\t{description && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"ml-1.5 text-muted\">∙</span>\n\t\t\t\t\t\t\t<p className={styles.description()}>{description}</p>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nFileUploadInlineDropArea.displayName = \"FileUploadInlineDropArea\";\n","import { Button, ButtonProps } from \"../../../button\";\n\n/**\n * Кнопка для удаления всех файлов в компоненте загрузки файлов\n */\nexport type FileUploadClearButtonProps = ButtonProps;\n\nexport const FileUploadClearButton = ({ children = \"Remove all files\", ...props }: FileUploadClearButtonProps) => {\n\treturn (\n\t\t<Button size=\"sm\" variant=\"outline\" type=\"button\" {...props}>\n\t\t\t{children}\n\t\t</Button>\n\t);\n};\n\nFileUploadClearButton.displayName = \"FileUploadClearButton\";\n","import { FileUploadActions } from \"@/hooks/use-file-upload/useFileUpload\";\nimport { FileUploadTexts } from \"../../FileUpload\";\nimport { FileUploadDropArea } from \"../file-upload-drop-area/FileUploadDropArea\";\n\nexport type FileUploadInputZoneProps = Omit<FileUploadTexts, \"removeBtnText\"> &\n\tPick<\n\t\tFileUploadActions,\n\t\t\"openFileDialog\" | \"handleDragEnter\" | \"handleDragLeave\" | \"handleDragOver\" | \"handleDrop\" | \"getInputProps\"\n\t> & {\n\t\tisDragging?: boolean;\n\t};\n\nexport const FileUploadInputZone = ({\n\tisDragging,\n\tgetInputProps,\n\topenFileDialog,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDragOver,\n\thandleDrop,\n\ttitle,\n\tdescription\n}: FileUploadInputZoneProps) => {\n\treturn (\n\t\t<FileUploadDropArea\n\t\t\tonClick={openFileDialog}\n\t\t\tonDragEnter={handleDragEnter}\n\t\t\tonDragLeave={handleDragLeave}\n\t\t\tonDragOver={handleDragOver}\n\t\t\tonDrop={handleDrop}\n\t\t\tdata-dragging={isDragging || undefined}\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t>\n\t\t\t<input className=\"sr-only\" aria-label=\"Upload files\" {...getInputProps()} />\n\t\t</FileUploadDropArea>\n\t);\n};\n\nFileUploadInputZone.displayName = \"FileUploadInputZone\";\n","import { FileUploadActions } from \"@/hooks/use-file-upload/useFileUpload\";\nimport { FileUploadTexts } from \"../../FileUpload\";\nimport { FileUploadInlineDropArea } from \"../file-upload-inline-drop-area/FileUploadInlineDropArea\";\n\nexport type FileUploadCompactInputZoneProps = Omit<FileUploadTexts, \"removeBtnText\" | \"helpText\"> &\n\tPick<\n\t\tFileUploadActions,\n\t\t\"openFileDialog\" | \"handleDragEnter\" | \"handleDragLeave\" | \"handleDragOver\" | \"handleDrop\" | \"getInputProps\"\n\t> & {\n\t\tisDragging?: boolean;\n\t};\n\nexport const FileUploadCompactInputZone = ({\n\tisDragging,\n\tgetInputProps,\n\topenFileDialog,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDragOver,\n\thandleDrop,\n\ttitle,\n\tdescription\n}: FileUploadCompactInputZoneProps) => {\n\treturn (\n\t\t<FileUploadInlineDropArea\n\t\t\tonClick={openFileDialog}\n\t\t\tonDragEnter={handleDragEnter}\n\t\t\tonDragLeave={handleDragLeave}\n\t\t\tonDragOver={handleDragOver}\n\t\t\tonDrop={handleDrop}\n\t\t\tdata-dragging={isDragging || undefined}\n\t\t\ttitle={title}\n\t\t\tdescription={description}\n\t\t>\n\t\t\t<input className=\"sr-only\" aria-label=\"Upload files\" {...getInputProps()} />\n\t\t</FileUploadInlineDropArea>\n\t);\n};\n\nFileUploadCompactInputZone.displayName = \"FileUploadCompactInputZone\";\n","import { IconButton } from \"@/components/button\";\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\nimport { formatBytes } from \"@/lib/utils/file/formatBytes\";\nimport { Download, XIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { useFileType } from \"@/hooks/useFileType\";\nimport { Icon } from \"@/components/icon\";\nimport { TextOverflowTooltip } from \"@/components/overflow-tooltip\";\n\nconst fileUploadItemCompactStyles = tv({\n\tslots: {\n\t\twrapper:\n\t\t\t\"box-border flex h-10 items-center gap-2 rounded-lg border border-secondary-border bg-background p-2.5 pr-1\",\n\t\ticon: \"text-muted\",\n\t\tinfoWrapper: \"flex w-full items-center overflow-hidden\",\n\t\ttextWrapper: \"flex w-full items-center justify-between\",\n\t\ttitle: \"truncate text-sm font-medium\",\n\t\tdescription: \"text-sm tabular-nums text-muted\",\n\t\tactionWrapper: \"ml-auto flex items-center -space-x-1.5\"\n\t}\n});\n\nexport type FileUploadItemCompactProps = React.HTMLAttributes<HTMLDivElement> & {\n\tonClear: () => void;\n\tfile: FileData;\n\trenderIcon?: React.ReactNode;\n\tonDownload?: (file: FileData) => void;\n\trenderDescription?: (file: FileData) => React.ReactNode;\n};\n\nexport const FileUploadItemCompact = React.forwardRef<HTMLDivElement, FileUploadItemCompactProps>(\n\t({ onClear, file, className, renderIcon, onDownload, renderDescription, ...props }, ref) => {\n\t\tconst styles = fileUploadItemCompactStyles();\n\t\tconst IconComponent = useFileType(file);\n\n\t\treturn (\n\t\t\t<div className=\"relative\">\n\t\t\t\t<div className={styles.wrapper({ className })} ref={ref} {...props}>\n\t\t\t\t\t{renderIcon ?? (\n\t\t\t\t\t\t<div className=\"size-5\">\n\t\t\t\t\t\t\t<Icon icon={IconComponent} size=\"lg\" className={styles.icon()} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<div className={styles.infoWrapper()}>\n\t\t\t\t\t\t<div className={styles.textWrapper()}>\n\t\t\t\t\t\t\t<TextOverflowTooltip className={styles.title()}>{file.name}</TextOverflowTooltip>\n\t\t\t\t\t\t\t<p className={styles.description()}>{renderDescription?.(file) ?? formatBytes(file.size)}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className={styles.actionWrapper()}>\n\t\t\t\t\t\t{onDownload && (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ticon={Download}\n\t\t\t\t\t\t\t\tonClick={() => onDownload(file)}\n\t\t\t\t\t\t\t\taria-label=\"Download file\"\n\t\t\t\t\t\t\t\ticonClassName=\"size-4\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tvariant=\"text\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\ticon={XIcon}\n\t\t\t\t\t\t\tonClick={onClear}\n\t\t\t\t\t\t\taria-label=\"Remove file\"\n\t\t\t\t\t\t\ticonClassName=\"size-4\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nFileUploadItemCompact.displayName = \"FileUploadItemCompact\";\n","import {\n\tFileData,\n\tFileMetadata,\n\tFileUploadConstraints,\n\tFileValue,\n\tuseFileUpload\n} from \"@/hooks/use-file-upload/useFileUpload\";\nimport { useCallback, useMemo } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FileUploadClearButton } from \"./components/file-upload-clear-button/FileUploadClearButton\";\nimport { FileUploadError } from \"./components/file-upload-error/FileUploadError\";\nimport { FileUploadInputZone } from \"./components/file-upload-input-zone/FileUploadInputZone\";\nimport { FileUploadItem } from \"./components/file-upload-item/FileUploadItem\";\nimport { FileUploadErrorMessages } from \"@/hooks/use-file-upload\";\n\nconst fileUploadStyles = tv({\n\tbase: \"flex flex-col gap-3\"\n});\n\nexport type FileUploadTexts = {\n\ttitle?: string;\n\tdescription?: string;\n\thelpText?: string;\n\tremoveBtnText?: string;\n};\n\nexport type FileUploadBaseProps = FileUploadConstraints & FileUploadTexts;\n\nexport type FileUploadProps = FileUploadBaseProps & {\n\tfiles?: FileValue[];\n\tonChange?: (files: FileValue[]) => void;\n\tonRemove?: (file: FileValue, index: number) => void;\n\tonAdd?: (files: FileValue[]) => void;\n\tonClear?: () => void;\n\tonDownload?: (file: FileData) => void;\n\n\tinitialFiles?: FileMetadata[];\n\tclassName?: string;\n\terrorMessages?: Partial<FileUploadErrorMessages>;\n\trenderItemDescription?: (file: FileValue) => React.ReactNode;\n};\n\nexport const FileUpload = (props: FileUploadProps) => {\n\tconst {\n\t\tfiles,\n\t\tonRemove,\n\t\tonAdd,\n\t\tonClear,\n\t\tonDownload,\n\t\tinitialFiles,\n\t\tonChange,\n\t\tclassName,\n\t\ttitle,\n\t\tdescription,\n\t\thelpText,\n\t\tremoveBtnText,\n\t\terrorMessages,\n\t\tmultiple = true,\n\t\trenderItemDescription,\n\t\t...constraints\n\t} = props;\n\tconst [{ files: stateFiles, isDragging, errors }, actions] = useFileUpload({\n\t\t...constraints,\n\t\tinitialFiles,\n\t\tmultiple,\n\t\terrorMessages,\n\t\tonFilesChange: (filesWithPreview) => {\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\n\t\t\tonChange?.(files);\n\t\t},\n\t\tonFilesAdded: (filesWithPreview) => {\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\n\t\t\tonAdd?.(files);\n\t\t}\n\t});\n\n\tconst actualFiles = useMemo(() => {\n\t\treturn files || stateFiles.map((file) => file.file);\n\t}, [files, stateFiles]);\n\n\tconst handleClearAll = useCallback(() => {\n\t\tactions.clearFiles();\n\t\tonClear?.();\n\t}, [actions, onClear]);\n\n\tconst handleRemoveFile = useCallback(\n\t\t(file: FileValue, index: number) => {\n\t\t\tconst fileId = stateFiles.find((f) => f.file.name === file.name && f.file.size === file.size)?.id;\n\t\t\tif (fileId) actions.removeFile(fileId);\n\t\t\tonRemove?.(file, index);\n\t\t},\n\t\t[stateFiles, actions, onRemove]\n\t);\n\n\treturn (\n\t\t<div className={fileUploadStyles({ className })}>\n\t\t\t<FileUploadInputZone\n\t\t\t\t{...actions}\n\t\t\t\tisDragging={isDragging}\n\t\t\t\ttitle={title}\n\t\t\t\tdescription={description}\n\t\t\t\thelpText={helpText}\n\t\t\t/>\n\n\t\t\t{errors.length > 0 && <FileUploadError error={errors} />}\n\n\t\t\t{actualFiles.length > 0 && (\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t{actualFiles.map((file, index) => (\n\t\t\t\t\t\t<FileUploadItem\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\tonClear={() => handleRemoveFile(file, index)}\n\t\t\t\t\t\t\tonDownload={onDownload}\n\t\t\t\t\t\t\trenderDescription={renderItemDescription}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t\t{actualFiles.length > 1 && (\n\t\t\t\t\t\t<FileUploadClearButton onClick={handleClearAll}>{removeBtnText}</FileUploadClearButton>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nFileUpload.displayName = \"FileUpload\";\n","import { FileMetadata, FileValue, useFileUpload, type FileUploadErrorMessages } from \"@/hooks/use-file-upload\";\nimport React, { useCallback, useMemo } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FileUploadBaseProps } from \"../FileUpload\";\nimport { FileUploadItemCompact } from \"../components/file-upload-item-compact/FileUploadItemCompact\";\nimport { FileUploadError } from \"../components/file-upload-error/FileUploadError\";\nimport { FileUploadCompactInputZone } from \"../components/file-upload-compact-input-zone/FileUploadCompactInputZone\";\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\n\nconst fileUploadStyles = tv({\n\tbase: \"box-border flex flex-col gap-2\"\n});\n\nexport type FileUploadCompactProps = Omit<FileUploadBaseProps, \"removeBtnText\" | \"helpText\"> & {\n\tfiles?: FileValue[];\n\tonChange?: (files: FileValue[]) => void;\n\tonRemove?: (file: FileValue, index: number) => void;\n\tonAdd?: (files: FileValue[]) => void;\n\tonDownload?: (file: FileData) => void;\n\tinitialFiles?: FileMetadata[];\n\tclassName?: string;\n\terrorMessages?: Partial<FileUploadErrorMessages>;\n\trenderFileIcon?: (file: FileValue) => React.ReactNode;\n\trenderItemDescription?: (file: FileValue) => React.ReactNode;\n};\n\nexport const FileUploadCompact = (props: FileUploadCompactProps) => {\n\tconst {\n\t\tfiles,\n\t\tonRemove,\n\t\tonDownload,\n\t\tonAdd,\n\t\tinitialFiles,\n\t\tonChange,\n\t\tclassName,\n\t\ttitle,\n\t\tdescription,\n\t\tmultiple = true,\n\t\terrorMessages,\n\t\trenderFileIcon,\n\t\trenderItemDescription,\n\t\t...constraints\n\t} = props;\n\tconst [{ files: stateFiles, isDragging, errors }, actions] = useFileUpload({\n\t\t...constraints,\n\t\tinitialFiles,\n\t\tmultiple,\n\t\terrorMessages,\n\t\tonFilesChange: (filesWithPreview) => {\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\n\t\t\tonChange?.(files);\n\t\t},\n\t\tonFilesAdded: (filesWithPreview) => {\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\n\t\t\tonAdd?.(files);\n\t\t}\n\t});\n\n\tconst actualFiles = useMemo(() => {\n\t\treturn files || stateFiles.map((file) => file.file);\n\t}, [files, stateFiles]);\n\n\tconst handleRemoveFile = useCallback(\n\t\t(file: FileValue, index: number) => {\n\t\t\tconst fileId = stateFiles.find((f) => f.file.name === file.name && f.file.size === file.size)?.id;\n\t\t\tif (fileId) actions.removeFile(fileId);\n\t\t\tonRemove?.(file, index);\n\t\t},\n\t\t[stateFiles, actions, onRemove]\n\t);\n\n\treturn (\n\t\t<div className={fileUploadStyles({ className })}>\n\t\t\t<FileUploadCompactInputZone {...actions} isDragging={isDragging} title={title} description={description} />\n\n\t\t\t{errors.length > 0 && <FileUploadError error={errors} />}\n\n\t\t\t{actualFiles.length > 0 && (\n\t\t\t\t<div>\n\t\t\t\t\t{actualFiles.map((file, index) => {\n\t\t\t\t\t\tconst isFirst = index === 0;\n\t\t\t\t\t\tconst isOnly = actualFiles.length === 1;\n\t\t\t\t\t\tconst isLast = index === actualFiles.length - 1;\n\n\t\t\t\t\t\tlet itemClassName = \"\";\n\t\t\t\t\t\tif (isOnly) {\n\t\t\t\t\t\t\titemClassName = \"\";\n\t\t\t\t\t\t} else if (isFirst) {\n\t\t\t\t\t\t\titemClassName = \"border-b-0 rounded-b-none\";\n\t\t\t\t\t\t} else if (isLast) {\n\t\t\t\t\t\t\titemClassName = \"rounded-t-none\";\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\titemClassName = \"border-b-0 rounded-none\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FileUploadItemCompact\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tonClear={() => handleRemoveFile(file, index)}\n\t\t\t\t\t\t\t\tclassName={itemClassName}\n\t\t\t\t\t\t\t\trenderIcon={renderFileIcon?.(file)}\n\t\t\t\t\t\t\t\trenderDescription={renderItemDescription}\n\t\t\t\t\t\t\t\tonDownload={onDownload}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nFileUploadCompact.displayName = \"FileUploadCompact\";\n"],"names":["FileArchive","createLucideIcon","FileSpreadsheet","FileText","File","Headphones","Upload","Video","useFileType","file","fileType","fileName","FileTextIcon","FileArchiveIcon","FileSpreadsheetIcon","VideoIcon","HeadphonesIcon","ImageIcon","FileIcon","fileIconStyles","tv","FileUploadIcon","IconComponent","jsx","FeatureIcon","fileUploadItemStyles","FileUploadItem","React","onClear","onDownload","className","renderDescription","props","ref","styles","jsxs","TextOverflowTooltip","formatBytes","IconButton","Download","XIcon","FileUploadError","error","errorText","Alert","AlertIcon","AlertCircleIcon","AlertDescription","fileUploadDropAreaIconStyles","FileUploadDropAreaIcon","icon","fileUploadDropAreaStyles","FileUploadDropArea","title","description","children","fileUploadInlineDropAreaStyles","FileUploadInlineDropArea","Fragment","FileUploadClearButton","Button","FileUploadInputZone","isDragging","getInputProps","openFileDialog","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","FileUploadCompactInputZone","fileUploadItemCompactStyles","FileUploadItemCompact","renderIcon","Icon","fileUploadStyles","FileUpload","files","onRemove","onAdd","initialFiles","onChange","helpText","removeBtnText","errorMessages","multiple","renderItemDescription","constraints","stateFiles","errors","actions","useFileUpload","filesWithPreview","actualFiles","useMemo","handleClearAll","useCallback","handleRemoveFile","index","fileId","f","FileUploadCompact","renderFileIcon","isFirst","isOnly","isLast","itemClassName"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
1
|
+
{"version":3,"file":"file-upload.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-archive.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-text.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/headphones.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/upload.js","../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/video.js","../../src/hooks/useFileType.ts","../../src/components/file-upload/components/file-upload-icon/FileUploadIcon.tsx","../../src/components/file-upload/components/file-upload-item/FileUploadItem.tsx","../../src/components/file-upload/components/file-upload-error/FileUploadError.tsx","../../src/components/file-upload/components/file-upload-drop-area-icon/FileUploadDropAreaIcon.tsx","../../src/components/file-upload/components/file-upload-drop-area/FileUploadDropArea.tsx","../../src/components/file-upload/components/file-upload-inline-drop-area/FileUploadInlineDropArea.tsx","../../src/components/file-upload/components/file-upload-clear-button/FileUploadClearButton.tsx","../../src/components/file-upload/components/file-upload-input-zone/FileUploadInputZone.tsx","../../src/components/file-upload/components/file-upload-compact-input-zone/FileUploadCompactInputZone.tsx","../../src/components/file-upload/components/file-upload-item-compact/FileUploadItemCompact.tsx","../../src/components/file-upload/FileUpload.tsx","../../src/components/file-upload/file-upload-compact/FileUploadCompact.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 FileArchive = createLucideIcon(\"FileArchive\", [\n [\"path\", { d: \"M10 12v-1\", key: \"v7bkov\" }],\n [\"path\", { d: \"M10 18v-2\", key: \"1cjy8d\" }],\n [\"path\", { d: \"M10 7V6\", key: \"dljcrl\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\n \"path\",\n { d: \"M15.5 22H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v16a2 2 0 0 0 .274 1.01\", key: \"gkbcor\" }\n ],\n [\"circle\", { cx: \"10\", cy: \"20\", r: \"2\", key: \"1xzdoj\" }]\n]);\n\nexport { FileArchive as default };\n//# sourceMappingURL=file-archive.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 FileSpreadsheet = createLucideIcon(\"FileSpreadsheet\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M8 13h2\", key: \"yr2amv\" }],\n [\"path\", { d: \"M14 13h2\", key: \"un5t4a\" }],\n [\"path\", { d: \"M8 17h2\", key: \"2yhykz\" }],\n [\"path\", { d: \"M14 17h2\", key: \"10kma7\" }]\n]);\n\nexport { FileSpreadsheet as default };\n//# sourceMappingURL=file-spreadsheet.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 FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.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 File = createLucideIcon(\"File\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }]\n]);\n\nexport { File as default };\n//# sourceMappingURL=file.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 Headphones = createLucideIcon(\"Headphones\", [\n [\n \"path\",\n {\n d: \"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3\",\n key: \"1xhozi\"\n }\n ]\n]);\n\nexport { Headphones as default };\n//# sourceMappingURL=headphones.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 Upload = createLucideIcon(\"Upload\", [\n [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n [\"polyline\", { points: \"17 8 12 3 7 8\", key: \"t8dd8p\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"3\", y2: \"15\", key: \"widbto\" }]\n]);\n\nexport { Upload as default };\n//# sourceMappingURL=upload.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 Video = createLucideIcon(\"Video\", [\n [\n \"path\",\n {\n d: \"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\",\n key: \"ftymec\"\n }\n ],\n [\"rect\", { x: \"2\", y: \"6\", width: \"14\", height: \"12\", rx: \"2\", key: \"158x01\" }]\n]);\n\nexport { Video as default };\n//# sourceMappingURL=video.js.map\n","import {\r\n\tFileArchiveIcon,\r\n\tFileIcon,\r\n\tFileSpreadsheetIcon,\r\n\tFileTextIcon,\r\n\tHeadphonesIcon,\r\n\tImageIcon,\r\n\tVideoIcon\r\n} from \"lucide-react\";\r\nimport { FileData } from \"./use-file-upload/useFileUpload\";\r\n\r\nexport const useFileType = (file: FileData) => {\r\n\tconst fileType = file.type;\r\n\tconst fileName = file.name;\r\n\r\n\t// Определяем тип файла и возвращаем соответствующую иконку\r\n\tif (\r\n\t\tfileType.includes(\"pdf\") ||\r\n\t\tfileName.endsWith(\".pdf\") ||\r\n\t\tfileType.includes(\"word\") ||\r\n\t\tfileName.endsWith(\".doc\") ||\r\n\t\tfileName.endsWith(\".docx\")\r\n\t) {\r\n\t\treturn FileTextIcon;\r\n\t} else if (\r\n\t\tfileType.includes(\"zip\") ||\r\n\t\tfileType.includes(\"archive\") ||\r\n\t\tfileName.endsWith(\".zip\") ||\r\n\t\tfileName.endsWith(\".rar\")\r\n\t) {\r\n\t\treturn FileArchiveIcon;\r\n\t} else if (fileType.includes(\"excel\") || fileName.endsWith(\".xls\") || fileName.endsWith(\".xlsx\")) {\r\n\t\treturn FileSpreadsheetIcon;\r\n\t} else if (fileType.includes(\"video/\")) {\r\n\t\treturn VideoIcon;\r\n\t} else if (fileType.includes(\"audio/\")) {\r\n\t\treturn HeadphonesIcon;\r\n\t} else if (fileType.startsWith(\"image/\")) {\r\n\t\treturn ImageIcon;\r\n\t}\r\n\r\n\treturn FileIcon;\r\n};\r\n","import { FeatureIcon } from \"@/components/icon\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\r\nimport { useFileType } from \"@/hooks/useFileType\";\r\n\r\nconst fileIconStyles = tv({\r\n\tbase: \"rounded-md text-muted ring-0\"\r\n});\r\n\r\nexport interface FileUploadIconProps {\r\n\tfile: FileData;\r\n}\r\n\r\nexport const FileUploadIcon = ({ file }: FileUploadIconProps) => {\r\n\tconst IconComponent = useFileType(file);\r\n\r\n\treturn <FeatureIcon icon={IconComponent} size=\"lg\" className={fileIconStyles()} />;\r\n};\r\n","import { IconButton } from \"@/components/button\";\r\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\r\nimport { formatBytes } from \"@/lib/utils/file/formatBytes\";\r\nimport { Download, XIcon } from \"lucide-react\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FileUploadIcon } from \"../file-upload-icon/FileUploadIcon\";\r\nimport { TextOverflowTooltip } from \"@/components/overflow-tooltip\";\r\n\r\nconst fileUploadItemStyles = tv({\r\n\tslots: {\r\n\t\twrapper:\r\n\t\t\t\"box-border flex h-16 justify-between gap-2 rounded-xl border border-secondary-border bg-background p-3 pe-3\",\r\n\t\tinfoWrapper: \"flex min-w-0 flex-1 items-center gap-2.5\",\r\n\t\ttextWrapper: \"flex min-w-0 flex-col gap-0.5\",\r\n\t\ttitle: \"truncate text-sm font-medium\",\r\n\t\tdescription: \"text-xs tabular-nums text-muted\",\r\n\t\tactionWrapper: \"-me-3 -mt-3 flex h-8 items-center -space-x-1.5\"\r\n\t}\r\n});\r\n\r\nexport type FileUploadItemProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\tonClear: () => void;\r\n\tonDownload?: (file: FileData) => void;\r\n\tfile: FileData;\r\n\trenderDescription?: (file: FileData) => React.ReactNode;\r\n};\r\n\r\nexport const FileUploadItem = React.forwardRef<HTMLDivElement, FileUploadItemProps>(\r\n\t({ onClear, onDownload, file, className, renderDescription, ...props }, ref) => {\r\n\t\tconst styles = fileUploadItemStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<div className={styles.wrapper({ className })} ref={ref} {...props}>\r\n\t\t\t\t<div className={styles.infoWrapper()}>\r\n\t\t\t\t\t<FileUploadIcon file={file} />\r\n\r\n\t\t\t\t\t<div className={styles.textWrapper()}>\r\n\t\t\t\t\t\t<TextOverflowTooltip className={styles.title()}>{file.name}</TextOverflowTooltip>\r\n\t\t\t\t\t\t<p className={styles.description()}>{renderDescription?.(file) ?? formatBytes(file.size)}</p>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className={styles.actionWrapper()}>\r\n\t\t\t\t\t{onDownload && (\r\n\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\tvariant=\"text\"\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\ticon={Download}\r\n\t\t\t\t\t\t\tonClick={() => onDownload(file)}\r\n\t\t\t\t\t\t\taria-label=\"Download file\"\r\n\t\t\t\t\t\t\ticonClassName=\"size-4\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\tvariant=\"text\"\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\ticon={XIcon}\r\n\t\t\t\t\t\tonClick={onClear}\r\n\t\t\t\t\t\taria-label=\"Remove file\"\r\n\t\t\t\t\t\ticonClassName=\"size-4\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFileUploadItem.displayName = \"FileUploadItem\";\r\n","import { Alert, AlertDescription, AlertIcon } from \"@/components/alert\";\r\nimport { AlertCircleIcon } from \"lucide-react\";\r\nimport React from \"react\";\r\n\r\nexport type FileUploadErrorProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\terror: string | string[];\r\n};\r\n\r\nexport const FileUploadError = React.forwardRef<HTMLDivElement, FileUploadErrorProps>(({ error, ...props }, ref) => {\r\n\tconst errorText = Array.isArray(error) ? error.join(\"\\n\") : error;\r\n\treturn (\r\n\t\t<Alert status=\"error\" focus=\"medium\" {...props} ref={ref}>\r\n\t\t\t<AlertIcon icon={AlertCircleIcon} />\r\n\t\t\t<AlertDescription className=\"whitespace-pre-line\">{errorText}</AlertDescription>\r\n\t\t</Alert>\r\n\t);\r\n});\r\n\r\nFileUploadError.displayName = \"FileUploadError\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FeatureIcon } from \"@/components/icon\";\r\nimport { FeatureIconProps } from \"@/components/icon/feature-icon/FeatureIcon\";\r\n\r\nconst fileUploadDropAreaIconStyles = tv({\r\n\tbase: \"shrink-0 bg-status-neutral-fg\"\r\n});\r\n\r\nexport const FileUploadDropAreaIcon: React.FC<FeatureIconProps> = ({ icon, className, ...props }) => {\r\n\treturn <FeatureIcon size=\"xl\" icon={icon} className={fileUploadDropAreaIconStyles({ className })} {...props} />;\r\n};\r\n\r\nFileUploadDropAreaIcon.displayName = \"FileUploadDropAreaIcon\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FileUploadDropAreaIcon } from \"../file-upload-drop-area-icon/FileUploadDropAreaIcon\";\r\nimport { LucideIcon, Upload } from \"lucide-react\";\r\n\r\nconst fileUploadDropAreaStyles = tv({\r\n\tslots: {\r\n\t\twrapper: [\r\n\t\t\t\"has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50\",\r\n\t\t\t\"relative flex min-h-[9.125rem] flex-col items-center justify-center rounded-xl border border-dashed border-primary-border bg-secondary-bg p-6 transition-colors\",\r\n\t\t\t\"hover:bg-secondary-bg-hover\",\r\n\t\t\t\"has-[input:focus]:shadow-focus\",\r\n\t\t\t\"data-[dragging=true]:bg-secondary-bg-hover\"\r\n\t\t],\r\n\t\ttitle: \"mb-1.5 text-sm font-medium text-primary-accent\",\r\n\t\ticon: \"mb-3 size-11\",\r\n\t\tdescription: \"flex flex-wrap justify-center gap-1 text-xs text-muted\"\r\n\t}\r\n});\r\n\r\nexport type FileUploadDropAreaProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\ttitle?: React.ReactNode;\r\n\tdescription?: React.ReactNode;\r\n\ticon?: LucideIcon;\r\n};\r\n\r\nexport const FileUploadDropArea = React.forwardRef<HTMLDivElement, FileUploadDropAreaProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tclassName,\r\n\t\t\ttitle = \"Click to upload or drop your files here \",\r\n\t\t\tdescription = \"All files\\n∙\\nInfinity files\\n∙\\nInfinity size\",\r\n\t\t\ticon,\r\n\t\t\tchildren,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = fileUploadDropAreaStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<div role=\"button\" className={styles.wrapper({ className })} ref={ref} {...props}>\r\n\t\t\t\t<FileUploadDropAreaIcon icon={icon || Upload} className={styles.icon()} />\r\n\t\t\t\t<p className={styles.title()}>{title}</p>\r\n\t\t\t\t{description && <p className={styles.description()}>{description}</p>}\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\nFileUploadDropArea.displayName = \"FileUploadDropArea\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FileUploadDropAreaIcon } from \"../file-upload-drop-area-icon/FileUploadDropAreaIcon\";\r\nimport { LucideIcon, Upload } from \"lucide-react\";\r\n\r\nconst fileUploadInlineDropAreaStyles = tv({\r\n\tslots: {\r\n\t\twrapper: [\r\n\t\t\t\"has-[:disabled]:pointer-events-none has-[:disabled]:opacity-50\",\r\n\t\t\t\"relative flex h-11 items-center rounded-lg border border-dashed border-primary-border bg-secondary-bg p-1.5 transition-colors\",\r\n\t\t\t\"hover:bg-secondary-bg-hover\",\r\n\t\t\t\"has-[input:focus]:shadow-focus\",\r\n\t\t\t\"data-[dragging=true]:bg-secondary-bg-hover\"\r\n\t\t],\r\n\t\ticon: \"mr-3\",\r\n\t\ttitle: \"text-sm font-medium text-primary-accent\",\r\n\t\tdescription: \"ml-1.5 flex flex-wrap justify-center gap-1.5 text-xs text-muted\"\r\n\t}\r\n});\r\n\r\nexport type FileUploadInlineDropAreaProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\ttitle?: React.ReactNode;\r\n\tdescription?: React.ReactNode;\r\n\ticon?: LucideIcon;\r\n};\r\n\r\nexport const FileUploadInlineDropArea = React.forwardRef<HTMLDivElement, FileUploadInlineDropAreaProps>(\r\n\t(\r\n\t\t{ className, title = \"Upload files\", description = \"Drag & drop or click to browse\", icon, children, ...props },\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = fileUploadInlineDropAreaStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<div role=\"button\" className={styles.wrapper({ className })} ref={ref} {...props}>\r\n\t\t\t\t<FileUploadDropAreaIcon icon={icon || Upload} className={styles.icon()} size=\"sm\" />\r\n\t\t\t\t<div className=\"flex items-baseline\">\r\n\t\t\t\t\t<p className={styles.title()}>{title}</p>\r\n\t\t\t\t\t{description && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<span className=\"ml-1.5 text-muted\">∙</span>\r\n\t\t\t\t\t\t\t<p className={styles.description()}>{description}</p>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{children}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFileUploadInlineDropArea.displayName = \"FileUploadInlineDropArea\";\r\n","import { Button, ButtonProps } from \"../../../button\";\r\n\r\n/**\r\n * Кнопка для удаления всех файлов в компоненте загрузки файлов\r\n */\r\nexport type FileUploadClearButtonProps = ButtonProps;\r\n\r\nexport const FileUploadClearButton = ({ children = \"Remove all files\", ...props }: FileUploadClearButtonProps) => {\r\n\treturn (\r\n\t\t<Button size=\"sm\" variant=\"outline\" type=\"button\" {...props}>\r\n\t\t\t{children}\r\n\t\t</Button>\r\n\t);\r\n};\r\n\r\nFileUploadClearButton.displayName = \"FileUploadClearButton\";\r\n","import { FileUploadActions } from \"@/hooks/use-file-upload/useFileUpload\";\r\nimport { FileUploadTexts } from \"../../FileUpload\";\r\nimport { FileUploadDropArea } from \"../file-upload-drop-area/FileUploadDropArea\";\r\n\r\nexport type FileUploadInputZoneProps = Omit<FileUploadTexts, \"removeBtnText\"> &\r\n\tPick<\r\n\t\tFileUploadActions,\r\n\t\t\"openFileDialog\" | \"handleDragEnter\" | \"handleDragLeave\" | \"handleDragOver\" | \"handleDrop\" | \"getInputProps\"\r\n\t> & {\r\n\t\tisDragging?: boolean;\r\n\t};\r\n\r\nexport const FileUploadInputZone = ({\r\n\tisDragging,\r\n\tgetInputProps,\r\n\topenFileDialog,\r\n\thandleDragEnter,\r\n\thandleDragLeave,\r\n\thandleDragOver,\r\n\thandleDrop,\r\n\ttitle,\r\n\tdescription\r\n}: FileUploadInputZoneProps) => {\r\n\treturn (\r\n\t\t<FileUploadDropArea\r\n\t\t\tonClick={openFileDialog}\r\n\t\t\tonDragEnter={handleDragEnter}\r\n\t\t\tonDragLeave={handleDragLeave}\r\n\t\t\tonDragOver={handleDragOver}\r\n\t\t\tonDrop={handleDrop}\r\n\t\t\tdata-dragging={isDragging || undefined}\r\n\t\t\ttitle={title}\r\n\t\t\tdescription={description}\r\n\t\t>\r\n\t\t\t<input className=\"sr-only\" aria-label=\"Upload files\" {...getInputProps()} />\r\n\t\t</FileUploadDropArea>\r\n\t);\r\n};\r\n\r\nFileUploadInputZone.displayName = \"FileUploadInputZone\";\r\n","import { FileUploadActions } from \"@/hooks/use-file-upload/useFileUpload\";\r\nimport { FileUploadTexts } from \"../../FileUpload\";\r\nimport { FileUploadInlineDropArea } from \"../file-upload-inline-drop-area/FileUploadInlineDropArea\";\r\n\r\nexport type FileUploadCompactInputZoneProps = Omit<FileUploadTexts, \"removeBtnText\" | \"helpText\"> &\r\n\tPick<\r\n\t\tFileUploadActions,\r\n\t\t\"openFileDialog\" | \"handleDragEnter\" | \"handleDragLeave\" | \"handleDragOver\" | \"handleDrop\" | \"getInputProps\"\r\n\t> & {\r\n\t\tisDragging?: boolean;\r\n\t};\r\n\r\nexport const FileUploadCompactInputZone = ({\r\n\tisDragging,\r\n\tgetInputProps,\r\n\topenFileDialog,\r\n\thandleDragEnter,\r\n\thandleDragLeave,\r\n\thandleDragOver,\r\n\thandleDrop,\r\n\ttitle,\r\n\tdescription\r\n}: FileUploadCompactInputZoneProps) => {\r\n\treturn (\r\n\t\t<FileUploadInlineDropArea\r\n\t\t\tonClick={openFileDialog}\r\n\t\t\tonDragEnter={handleDragEnter}\r\n\t\t\tonDragLeave={handleDragLeave}\r\n\t\t\tonDragOver={handleDragOver}\r\n\t\t\tonDrop={handleDrop}\r\n\t\t\tdata-dragging={isDragging || undefined}\r\n\t\t\ttitle={title}\r\n\t\t\tdescription={description}\r\n\t\t>\r\n\t\t\t<input className=\"sr-only\" aria-label=\"Upload files\" {...getInputProps()} />\r\n\t\t</FileUploadInlineDropArea>\r\n\t);\r\n};\r\n\r\nFileUploadCompactInputZone.displayName = \"FileUploadCompactInputZone\";\r\n","import { IconButton } from \"@/components/button\";\r\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\r\nimport { formatBytes } from \"@/lib/utils/file/formatBytes\";\r\nimport { Download, XIcon } from \"lucide-react\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { useFileType } from \"@/hooks/useFileType\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { TextOverflowTooltip } from \"@/components/overflow-tooltip\";\r\n\r\nconst fileUploadItemCompactStyles = tv({\r\n\tslots: {\r\n\t\twrapper:\r\n\t\t\t\"box-border flex h-10 items-center gap-2 rounded-lg border border-secondary-border bg-background p-2.5 pr-1\",\r\n\t\ticon: \"text-muted\",\r\n\t\tinfoWrapper: \"flex w-full items-center overflow-hidden\",\r\n\t\ttextWrapper: \"flex w-full items-center justify-between\",\r\n\t\ttitle: \"truncate text-sm font-medium\",\r\n\t\tdescription: \"text-sm tabular-nums text-muted\",\r\n\t\tactionWrapper: \"ml-auto flex items-center -space-x-1.5\"\r\n\t}\r\n});\r\n\r\nexport type FileUploadItemCompactProps = React.HTMLAttributes<HTMLDivElement> & {\r\n\tonClear: () => void;\r\n\tfile: FileData;\r\n\trenderIcon?: React.ReactNode;\r\n\tonDownload?: (file: FileData) => void;\r\n\trenderDescription?: (file: FileData) => React.ReactNode;\r\n};\r\n\r\nexport const FileUploadItemCompact = React.forwardRef<HTMLDivElement, FileUploadItemCompactProps>(\r\n\t({ onClear, file, className, renderIcon, onDownload, renderDescription, ...props }, ref) => {\r\n\t\tconst styles = fileUploadItemCompactStyles();\r\n\t\tconst IconComponent = useFileType(file);\r\n\r\n\t\treturn (\r\n\t\t\t<div className=\"relative\">\r\n\t\t\t\t<div className={styles.wrapper({ className })} ref={ref} {...props}>\r\n\t\t\t\t\t{renderIcon ?? (\r\n\t\t\t\t\t\t<div className=\"size-5\">\r\n\t\t\t\t\t\t\t<Icon icon={IconComponent} size=\"lg\" className={styles.icon()} />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<div className={styles.infoWrapper()}>\r\n\t\t\t\t\t\t<div className={styles.textWrapper()}>\r\n\t\t\t\t\t\t\t<TextOverflowTooltip className={styles.title()}>{file.name}</TextOverflowTooltip>\r\n\t\t\t\t\t\t\t<p className={styles.description()}>{renderDescription?.(file) ?? formatBytes(file.size)}</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className={styles.actionWrapper()}>\r\n\t\t\t\t\t\t{onDownload && (\r\n\t\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\t\tvariant=\"text\"\r\n\t\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\t\ticon={Download}\r\n\t\t\t\t\t\t\t\tonClick={() => onDownload(file)}\r\n\t\t\t\t\t\t\t\taria-label=\"Download file\"\r\n\t\t\t\t\t\t\t\ticonClassName=\"size-4\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t<IconButton\r\n\t\t\t\t\t\t\tvariant=\"text\"\r\n\t\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\t\ticon={XIcon}\r\n\t\t\t\t\t\t\tonClick={onClear}\r\n\t\t\t\t\t\t\taria-label=\"Remove file\"\r\n\t\t\t\t\t\t\ticonClassName=\"size-4\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFileUploadItemCompact.displayName = \"FileUploadItemCompact\";\r\n","import {\r\n\tFileData,\r\n\tFileMetadata,\r\n\tFileUploadConstraints,\r\n\tFileValue,\r\n\tuseFileUpload\r\n} from \"@/hooks/use-file-upload/useFileUpload\";\r\nimport { useCallback, useMemo } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FileUploadClearButton } from \"./components/file-upload-clear-button/FileUploadClearButton\";\r\nimport { FileUploadError } from \"./components/file-upload-error/FileUploadError\";\r\nimport { FileUploadInputZone } from \"./components/file-upload-input-zone/FileUploadInputZone\";\r\nimport { FileUploadItem } from \"./components/file-upload-item/FileUploadItem\";\r\nimport { FileUploadErrorMessages } from \"@/hooks/use-file-upload\";\r\n\r\nconst fileUploadStyles = tv({\r\n\tbase: \"flex flex-col gap-3\"\r\n});\r\n\r\nexport type FileUploadTexts = {\r\n\ttitle?: string;\r\n\tdescription?: string;\r\n\thelpText?: string;\r\n\tremoveBtnText?: string;\r\n};\r\n\r\nexport type FileUploadBaseProps = FileUploadConstraints & FileUploadTexts;\r\n\r\nexport type FileUploadProps = FileUploadBaseProps & {\r\n\tfiles?: FileValue[];\r\n\tonChange?: (files: FileValue[]) => void;\r\n\tonRemove?: (file: FileValue, index: number) => void;\r\n\tonAdd?: (files: FileValue[]) => void;\r\n\tonClear?: () => void;\r\n\tonDownload?: (file: FileData) => void;\r\n\r\n\tinitialFiles?: FileMetadata[];\r\n\tclassName?: string;\r\n\terrorMessages?: Partial<FileUploadErrorMessages>;\r\n\trenderItemDescription?: (file: FileValue) => React.ReactNode;\r\n};\r\n\r\nexport const FileUpload = (props: FileUploadProps) => {\r\n\tconst {\r\n\t\tfiles,\r\n\t\tonRemove,\r\n\t\tonAdd,\r\n\t\tonClear,\r\n\t\tonDownload,\r\n\t\tinitialFiles,\r\n\t\tonChange,\r\n\t\tclassName,\r\n\t\ttitle,\r\n\t\tdescription,\r\n\t\thelpText,\r\n\t\tremoveBtnText,\r\n\t\terrorMessages,\r\n\t\tmultiple = true,\r\n\t\trenderItemDescription,\r\n\t\t...constraints\r\n\t} = props;\r\n\tconst [{ files: stateFiles, isDragging, errors }, actions] = useFileUpload({\r\n\t\t...constraints,\r\n\t\tinitialFiles,\r\n\t\tmultiple,\r\n\t\terrorMessages,\r\n\t\tonFilesChange: (filesWithPreview) => {\r\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\r\n\t\t\tonChange?.(files);\r\n\t\t},\r\n\t\tonFilesAdded: (filesWithPreview) => {\r\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\r\n\t\t\tonAdd?.(files);\r\n\t\t}\r\n\t});\r\n\r\n\tconst actualFiles = useMemo(() => {\r\n\t\treturn files || stateFiles.map((file) => file.file);\r\n\t}, [files, stateFiles]);\r\n\r\n\tconst handleClearAll = useCallback(() => {\r\n\t\tactions.clearFiles();\r\n\t\tonClear?.();\r\n\t}, [actions, onClear]);\r\n\r\n\tconst handleRemoveFile = useCallback(\r\n\t\t(file: FileValue, index: number) => {\r\n\t\t\tconst fileId = stateFiles.find((f) => f.file.name === file.name && f.file.size === file.size)?.id;\r\n\t\t\tif (fileId) actions.removeFile(fileId);\r\n\t\t\tonRemove?.(file, index);\r\n\t\t},\r\n\t\t[stateFiles, actions, onRemove]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<div className={fileUploadStyles({ className })}>\r\n\t\t\t<FileUploadInputZone\r\n\t\t\t\t{...actions}\r\n\t\t\t\tisDragging={isDragging}\r\n\t\t\t\ttitle={title}\r\n\t\t\t\tdescription={description}\r\n\t\t\t\thelpText={helpText}\r\n\t\t\t/>\r\n\r\n\t\t\t{errors.length > 0 && <FileUploadError error={errors} />}\r\n\r\n\t\t\t{actualFiles.length > 0 && (\r\n\t\t\t\t<div className=\"space-y-2\">\r\n\t\t\t\t\t{actualFiles.map((file, index) => (\r\n\t\t\t\t\t\t<FileUploadItem\r\n\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\tfile={file}\r\n\t\t\t\t\t\t\tonClear={() => handleRemoveFile(file, index)}\r\n\t\t\t\t\t\t\tonDownload={onDownload}\r\n\t\t\t\t\t\t\trenderDescription={renderItemDescription}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t))}\r\n\t\t\t\t\t{actualFiles.length > 1 && (\r\n\t\t\t\t\t\t<FileUploadClearButton onClick={handleClearAll}>{removeBtnText}</FileUploadClearButton>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nFileUpload.displayName = \"FileUpload\";\r\n","import { FileMetadata, FileValue, useFileUpload, type FileUploadErrorMessages } from \"@/hooks/use-file-upload\";\r\nimport React, { useCallback, useMemo } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FileUploadBaseProps } from \"../FileUpload\";\r\nimport { FileUploadItemCompact } from \"../components/file-upload-item-compact/FileUploadItemCompact\";\r\nimport { FileUploadError } from \"../components/file-upload-error/FileUploadError\";\r\nimport { FileUploadCompactInputZone } from \"../components/file-upload-compact-input-zone/FileUploadCompactInputZone\";\r\nimport { FileData } from \"@/hooks/use-file-upload/useFileUpload\";\r\n\r\nconst fileUploadStyles = tv({\r\n\tbase: \"box-border flex flex-col gap-2\"\r\n});\r\n\r\nexport type FileUploadCompactProps = Omit<FileUploadBaseProps, \"removeBtnText\" | \"helpText\"> & {\r\n\tfiles?: FileValue[];\r\n\tonChange?: (files: FileValue[]) => void;\r\n\tonRemove?: (file: FileValue, index: number) => void;\r\n\tonAdd?: (files: FileValue[]) => void;\r\n\tonDownload?: (file: FileData) => void;\r\n\tinitialFiles?: FileMetadata[];\r\n\tclassName?: string;\r\n\terrorMessages?: Partial<FileUploadErrorMessages>;\r\n\trenderFileIcon?: (file: FileValue) => React.ReactNode;\r\n\trenderItemDescription?: (file: FileValue) => React.ReactNode;\r\n};\r\n\r\nexport const FileUploadCompact = (props: FileUploadCompactProps) => {\r\n\tconst {\r\n\t\tfiles,\r\n\t\tonRemove,\r\n\t\tonDownload,\r\n\t\tonAdd,\r\n\t\tinitialFiles,\r\n\t\tonChange,\r\n\t\tclassName,\r\n\t\ttitle,\r\n\t\tdescription,\r\n\t\tmultiple = true,\r\n\t\terrorMessages,\r\n\t\trenderFileIcon,\r\n\t\trenderItemDescription,\r\n\t\t...constraints\r\n\t} = props;\r\n\tconst [{ files: stateFiles, isDragging, errors }, actions] = useFileUpload({\r\n\t\t...constraints,\r\n\t\tinitialFiles,\r\n\t\tmultiple,\r\n\t\terrorMessages,\r\n\t\tonFilesChange: (filesWithPreview) => {\r\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\r\n\t\t\tonChange?.(files);\r\n\t\t},\r\n\t\tonFilesAdded: (filesWithPreview) => {\r\n\t\t\tconst files = filesWithPreview.map((file) => file.file);\r\n\t\t\tonAdd?.(files);\r\n\t\t}\r\n\t});\r\n\r\n\tconst actualFiles = useMemo(() => {\r\n\t\treturn files || stateFiles.map((file) => file.file);\r\n\t}, [files, stateFiles]);\r\n\r\n\tconst handleRemoveFile = useCallback(\r\n\t\t(file: FileValue, index: number) => {\r\n\t\t\tconst fileId = stateFiles.find((f) => f.file.name === file.name && f.file.size === file.size)?.id;\r\n\t\t\tif (fileId) actions.removeFile(fileId);\r\n\t\t\tonRemove?.(file, index);\r\n\t\t},\r\n\t\t[stateFiles, actions, onRemove]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<div className={fileUploadStyles({ className })}>\r\n\t\t\t<FileUploadCompactInputZone {...actions} isDragging={isDragging} title={title} description={description} />\r\n\r\n\t\t\t{errors.length > 0 && <FileUploadError error={errors} />}\r\n\r\n\t\t\t{actualFiles.length > 0 && (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t{actualFiles.map((file, index) => {\r\n\t\t\t\t\t\tconst isFirst = index === 0;\r\n\t\t\t\t\t\tconst isOnly = actualFiles.length === 1;\r\n\t\t\t\t\t\tconst isLast = index === actualFiles.length - 1;\r\n\r\n\t\t\t\t\t\tlet itemClassName = \"\";\r\n\t\t\t\t\t\tif (isOnly) {\r\n\t\t\t\t\t\t\titemClassName = \"\";\r\n\t\t\t\t\t\t} else if (isFirst) {\r\n\t\t\t\t\t\t\titemClassName = \"border-b-0 rounded-b-none\";\r\n\t\t\t\t\t\t} else if (isLast) {\r\n\t\t\t\t\t\t\titemClassName = \"rounded-t-none\";\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\titemClassName = \"border-b-0 rounded-none\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t<FileUploadItemCompact\r\n\t\t\t\t\t\t\t\tkey={index}\r\n\t\t\t\t\t\t\t\tfile={file}\r\n\t\t\t\t\t\t\t\tonClear={() => handleRemoveFile(file, index)}\r\n\t\t\t\t\t\t\t\tclassName={itemClassName}\r\n\t\t\t\t\t\t\t\trenderIcon={renderFileIcon?.(file)}\r\n\t\t\t\t\t\t\t\trenderDescription={renderItemDescription}\r\n\t\t\t\t\t\t\t\tonDownload={onDownload}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nFileUploadCompact.displayName = \"FileUploadCompact\";\r\n"],"names":["FileArchive","createLucideIcon","FileSpreadsheet","FileText","File","Headphones","Upload","Video","useFileType","file","fileType","fileName","FileTextIcon","FileArchiveIcon","FileSpreadsheetIcon","VideoIcon","HeadphonesIcon","ImageIcon","FileIcon","fileIconStyles","tv","FileUploadIcon","IconComponent","jsx","FeatureIcon","fileUploadItemStyles","FileUploadItem","React","onClear","onDownload","className","renderDescription","props","ref","styles","jsxs","TextOverflowTooltip","formatBytes","IconButton","Download","XIcon","FileUploadError","error","errorText","Alert","AlertIcon","AlertCircleIcon","AlertDescription","fileUploadDropAreaIconStyles","FileUploadDropAreaIcon","icon","fileUploadDropAreaStyles","FileUploadDropArea","title","description","children","fileUploadInlineDropAreaStyles","FileUploadInlineDropArea","Fragment","FileUploadClearButton","Button","FileUploadInputZone","isDragging","getInputProps","openFileDialog","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","FileUploadCompactInputZone","fileUploadItemCompactStyles","FileUploadItemCompact","renderIcon","Icon","fileUploadStyles","FileUpload","files","onRemove","onAdd","initialFiles","onChange","helpText","removeBtnText","errorMessages","multiple","renderItemDescription","constraints","stateFiles","errors","actions","useFileUpload","filesWithPreview","actualFiles","useMemo","handleClearAll","useCallback","handleRemoveFile","index","fileId","f","FileUploadCompact","renderFileIcon","isFirst","isOnly","isLast","itemClassName"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
|
|
@@ -47,4 +47,18 @@ declare const FormControl: React.ForwardRefExoticComponent<Omit< SlotProps & Rea
|
|
|
47
47
|
* Сообщение об ошибке
|
|
48
48
|
*/
|
|
49
49
|
declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated Будет удалён в версии 2.0.0 вместе с привязкой кита к `react-hook-form`.
|
|
52
|
+
*
|
|
53
|
+
* Почему: `Form`, `FormItem`, `FormLabel`, `FormControl`, `FormMessage`, `FormFieldControl` и `useFormField` — это связка с конкретной библиотекой состояния формы, то есть
|
|
54
|
+
* state management. По архитектуре кита (CLAUDE.md) состояние, валидация и бизнес-правила
|
|
55
|
+
* принадлежат потребителю, а кит поставляет только UI-примитивы. Кит не навязывает движок
|
|
56
|
+
* таблицы — не должен навязывать и движок формы.
|
|
57
|
+
*
|
|
58
|
+
* Чем заменить: соберите связку у себя, напрямую на `react-hook-form`. Компоненты раскладки
|
|
59
|
+
* формы (`FormBody`, `FormHeader`, `FormFooter`, `FormStack`, `FormFieldSet`, `FormDivider`,
|
|
60
|
+
* `FormSectionTitle` и шаблоны) остаются и от библиотеки не зависят.
|
|
61
|
+
*
|
|
62
|
+
* Подробности: UIK-304.
|
|
63
|
+
*/
|
|
50
64
|
export { useFormField, Form, FormItem, FormLabel, FormControl, FormMessage, FormField as FormFieldControl };
|
|
@@ -28,6 +28,10 @@ export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues,
|
|
|
28
28
|
layout?: FieldLayout;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
+
* @deprecated Будет удалён в версии 2.0.0 вместе с привязкой кита к `react-hook-form`:
|
|
32
|
+
* связка с библиотекой состояния формы принадлежит потребителю, а не киту.
|
|
33
|
+
* Компоненты раскладки формы остаются. Подробности: UIK-304.
|
|
34
|
+
*
|
|
31
35
|
* Компонент FormField объединяет несколько компонентов формы в один блок
|
|
32
36
|
* для упрощения создания консистентных форм.
|
|
33
37
|
*
|
package/dist/components/form.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { F as i } from "../FormStack-
|
|
2
|
-
import { a as R, d as w, g as C, f as h, b as _, c as j, e as k, u as I } from "../FormStack-
|
|
1
|
+
import { F as i } from "../FormStack-DfoaOry7.js";
|
|
2
|
+
import { a as R, d as w, g as C, f as h, b as _, c as j, e as k, u as I } from "../FormStack-DfoaOry7.js";
|
|
3
3
|
import { jsx as t } from "react/jsx-runtime";
|
|
4
4
|
import { T as a } from "../index-BVqs-uqP.js";
|
|
5
|
-
import { F as M, d as q, a as z, b as A, e as E } from "../FormHeader
|
|
5
|
+
import { F as M, d as q, a as z, b as A, e as E } from "../FormHeader-PE63OqG9.js";
|
|
6
6
|
import { D as l } from "../Divider-DPW5ZhZ8.js";
|
|
7
7
|
import s from "react";
|
|
8
|
-
import { B as d } from "../Button-
|
|
9
|
-
import { F as J, a as K } from "../FormFooterTemplate-
|
|
8
|
+
import { B as d } from "../Button-_qdP4hSf.js";
|
|
9
|
+
import { F as J, a as K } from "../FormFooterTemplate-CHlas_Pp.js";
|
|
10
10
|
const F = a({
|
|
11
11
|
base: "text-md font-semibold"
|
|
12
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","sources":["../../src/components/form/components/form-section-title/FormSectionTitle.tsx","../../src/components/form/components/form-divider/FormDivider.tsx","../../src/components/form/components/form-section-header-button/FormSectionHeaderButton.tsx","../../src/components/form/components/form-field-set/FormFieldSet.tsx"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nconst formSectionTitle = tv({\n\tbase: \"text-md font-semibold\"\n});\n\nexport interface FormSectionTitleProps {\n\t/** Дочерние элементы */\n\tchildren: React.ReactNode;\n\t/** Дополнительные классы */\n\tclassName?: string;\n\t/**\n\t * HTML тег для заголовка\n\t * @default \"h3\"\n\t */\n\tas?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\n/**\n * Заголовок секции формы\n */\nexport function FormSectionTitle({ children, className, as: Component = \"h3\" }: FormSectionTitleProps) {\n\treturn <Component className={formSectionTitle({ className })}>{children}</Component>;\n}\n","import { Divider } from \"@/components/divider\";\nimport { DividerProps } from \"@/components/divider/Divider\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst formDividerStyles = tv({\n\tbase: \"mb-4 mt-4 lg:mb-3.5 lg:mt-5\"\n});\n\n/**\n * Девайдер формы\n */\nexport const FormDivider = React.forwardRef<HTMLDivElement, DividerProps>(({ className, ...props }, ref) => {\n\treturn <Divider ref={ref} className={formDividerStyles({ className })} {...props} />;\n});\n\nFormDivider.displayName = \"FormDivider\";\n","import { Button, ButtonProps } from \"@/components/button\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst formSectionHeaderButtonStyles = tv({\n\tslots: {\n\t\tbutton: \"h-full rounded-none p-0\",\n\t\tcontainer: \"leading-none\"\n\t}\n});\n\ntype FormSectionHeaderButtonProps = ButtonProps;\n\n/**\n * Кнопка для отдельной секции\n */\nexport const FormSectionHeaderButton = React.forwardRef<HTMLButtonElement, FormSectionHeaderButtonProps>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = formSectionHeaderButtonStyles();\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tref={ref}\n\t\t\t\tcontainerClassName={styles.container()}\n\t\t\t\tclassName={styles.button({ class: className })}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Button>\n\t\t);\n\t}\n);\n\nFormSectionHeaderButton.displayName = \"FormSectionHeaderButton\";\n","import React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormStack } from \"../form-stack/FormStack\";\n\nconst formFieldSetStyles = tv({\n\tbase: \"rounded-xl border border-secondary-border p-4 lg:p-6\"\n});\n\n/** Оболочка для группы полей формы с рамкой и внутренними отступами */\nexport const FormFieldSet = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, children, ...props }, ref) => {\n\t\treturn (\n\t\t\t<FormStack ref={ref} className={formFieldSetStyles({ className })} {...props}>\n\t\t\t\t{children}\n\t\t\t</FormStack>\n\t\t);\n\t}\n);\n\nFormFieldSet.displayName = \"FormFieldSet\";\n"],"names":["formSectionTitle","tv","FormSectionTitle","children","className","Component","jsx","formDividerStyles","FormDivider","React","props","ref","Divider","formSectionHeaderButtonStyles","FormSectionHeaderButton","styles","Button","formFieldSetStyles","FormFieldSet","FormStack"],"mappings":";;;;;;;;;AAEA,MAAMA,IAAmBC,EAAG;AAAA,EAC3B,MAAM;AACP,CAAC;AAiBM,SAASC,EAAiB,EAAE,UAAAC,GAAU,WAAAC,GAAW,IAAIC,IAAY,QAA+B;AAC/F,SAAA,gBAAAC,EAACD,KAAU,WAAWL,EAAiB,EAAE,WAAAI,EAAU,CAAC,GAAI,UAAAD,GAAS;AACzE;AClBA,MAAMI,IAAoBN,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAKYO,IAAcC,EAAM,WAAyC,CAAC,EAAE,WAAAL,GAAW,GAAGM,EAAM,GAAGC,MAC5F,gBAAAL,EAACM,GAAQ,EAAA,KAAAD,GAAU,WAAWJ,EAAkB,EAAE,WAAAH,EAAW,CAAA,GAAI,GAAGM,GAAO,CAClF;AAEDF,EAAY,cAAc;ACZ1B,MAAMK,IAAgCZ,EAAG;AAAA,EACxC,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,EAAA;AAEb,CAAC,GAOYa,IAA0BL,EAAM;AAAA,EAC5C,CAAC,EAAE,WAAAL,GAAW,UAAAD,GAAU,GAAGO,EAAA,GAASC,MAAQ;AAC3C,UAAMI,IAASF,EAA8B;AAG5C,WAAA,gBAAAP;AAAA,MAACU;AAAA,MAAA;AAAA,QACA,KAAAL;AAAA,QACA,oBAAoBI,EAAO,UAAU;AAAA,QACrC,WAAWA,EAAO,OAAO,EAAE,OAAOX,GAAW;AAAA,QAC5C,GAAGM;AAAA,QAEH,UAAAP;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGH;AAEAW,EAAwB,cAAc;AC7BtC,MAAMG,IAAqBhB,EAAG;AAAA,EAC7B,MAAM;AACP,CAAC,GAGYiB,IAAeT,EAAM;AAAA,EACjC,CAAC,EAAE,WAAAL,GAAW,UAAAD,GAAU,GAAGO,EAAA,GAASC,MAElC,gBAAAL,EAACa,GAAU,EAAA,KAAAR,GAAU,WAAWM,EAAmB,EAAE,WAAAb,GAAW,GAAI,GAAGM,GACrE,UAAAP,EACF,CAAA;AAGH;AAEAe,EAAa,cAAc;"}
|
|
1
|
+
{"version":3,"file":"form.js","sources":["../../src/components/form/components/form-section-title/FormSectionTitle.tsx","../../src/components/form/components/form-divider/FormDivider.tsx","../../src/components/form/components/form-section-header-button/FormSectionHeaderButton.tsx","../../src/components/form/components/form-field-set/FormFieldSet.tsx"],"sourcesContent":["import { tv } from \"tailwind-variants\";\r\n\r\nconst formSectionTitle = tv({\r\n\tbase: \"text-md font-semibold\"\r\n});\r\n\r\nexport interface FormSectionTitleProps {\r\n\t/** Дочерние элементы */\r\n\tchildren: React.ReactNode;\r\n\t/** Дополнительные классы */\r\n\tclassName?: string;\r\n\t/**\r\n\t * HTML тег для заголовка\r\n\t * @default \"h3\"\r\n\t */\r\n\tas?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\r\n}\r\n\r\n/**\r\n * Заголовок секции формы\r\n */\r\nexport function FormSectionTitle({ children, className, as: Component = \"h3\" }: FormSectionTitleProps) {\r\n\treturn <Component className={formSectionTitle({ className })}>{children}</Component>;\r\n}\r\n","import { Divider } from \"@/components/divider\";\r\nimport { DividerProps } from \"@/components/divider/Divider\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst formDividerStyles = tv({\r\n\tbase: \"mb-4 mt-4 lg:mb-3.5 lg:mt-5\"\r\n});\r\n\r\n/**\r\n * Девайдер формы\r\n */\r\nexport const FormDivider = React.forwardRef<HTMLDivElement, DividerProps>(({ className, ...props }, ref) => {\r\n\treturn <Divider ref={ref} className={formDividerStyles({ className })} {...props} />;\r\n});\r\n\r\nFormDivider.displayName = \"FormDivider\";\r\n","import { Button, ButtonProps } from \"@/components/button\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst formSectionHeaderButtonStyles = tv({\r\n\tslots: {\r\n\t\tbutton: \"h-full rounded-none p-0\",\r\n\t\tcontainer: \"leading-none\"\r\n\t}\r\n});\r\n\r\ntype FormSectionHeaderButtonProps = ButtonProps;\r\n\r\n/**\r\n * Кнопка для отдельной секции\r\n */\r\nexport const FormSectionHeaderButton = React.forwardRef<HTMLButtonElement, FormSectionHeaderButtonProps>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\tconst styles = formSectionHeaderButtonStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tcontainerClassName={styles.container()}\r\n\t\t\t\tclassName={styles.button({ class: className })}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</Button>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFormSectionHeaderButton.displayName = \"FormSectionHeaderButton\";\r\n","import React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { FormStack } from \"../form-stack/FormStack\";\r\n\r\nconst formFieldSetStyles = tv({\r\n\tbase: \"rounded-xl border border-secondary-border p-4 lg:p-6\"\r\n});\r\n\r\n/** Оболочка для группы полей формы с рамкой и внутренними отступами */\r\nexport const FormFieldSet = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\r\n\t({ className, children, ...props }, ref) => {\r\n\t\treturn (\r\n\t\t\t<FormStack ref={ref} className={formFieldSetStyles({ className })} {...props}>\r\n\t\t\t\t{children}\r\n\t\t\t</FormStack>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nFormFieldSet.displayName = \"FormFieldSet\";\r\n"],"names":["formSectionTitle","tv","FormSectionTitle","children","className","Component","jsx","formDividerStyles","FormDivider","React","props","ref","Divider","formSectionHeaderButtonStyles","FormSectionHeaderButton","styles","Button","formFieldSetStyles","FormFieldSet","FormStack"],"mappings":";;;;;;;;;AAEA,MAAMA,IAAmBC,EAAG;AAAA,EAC3B,MAAM;AACP,CAAC;AAiBM,SAASC,EAAiB,EAAE,UAAAC,GAAU,WAAAC,GAAW,IAAIC,IAAY,QAA+B;AAC/F,SAAA,gBAAAC,EAACD,KAAU,WAAWL,EAAiB,EAAE,WAAAI,EAAU,CAAC,GAAI,UAAAD,GAAS;AACzE;AClBA,MAAMI,IAAoBN,EAAG;AAAA,EAC5B,MAAM;AACP,CAAC,GAKYO,IAAcC,EAAM,WAAyC,CAAC,EAAE,WAAAL,GAAW,GAAGM,EAAM,GAAGC,MAC5F,gBAAAL,EAACM,GAAQ,EAAA,KAAAD,GAAU,WAAWJ,EAAkB,EAAE,WAAAH,EAAW,CAAA,GAAI,GAAGM,GAAO,CAClF;AAEDF,EAAY,cAAc;ACZ1B,MAAMK,IAAgCZ,EAAG;AAAA,EACxC,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,EAAA;AAEb,CAAC,GAOYa,IAA0BL,EAAM;AAAA,EAC5C,CAAC,EAAE,WAAAL,GAAW,UAAAD,GAAU,GAAGO,EAAA,GAASC,MAAQ;AAC3C,UAAMI,IAASF,EAA8B;AAG5C,WAAA,gBAAAP;AAAA,MAACU;AAAA,MAAA;AAAA,QACA,KAAAL;AAAA,QACA,oBAAoBI,EAAO,UAAU;AAAA,QACrC,WAAWA,EAAO,OAAO,EAAE,OAAOX,GAAW;AAAA,QAC5C,GAAGM;AAAA,QAEH,UAAAP;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGH;AAEAW,EAAwB,cAAc;AC7BtC,MAAMG,IAAqBhB,EAAG;AAAA,EAC7B,MAAM;AACP,CAAC,GAGYiB,IAAeT,EAAM;AAAA,EACjC,CAAC,EAAE,WAAAL,GAAW,UAAAD,GAAU,GAAGO,EAAA,GAASC,MAElC,gBAAAL,EAACa,GAAU,EAAA,KAAAR,GAAU,WAAWM,EAAmB,EAAE,WAAAb,GAAW,GAAI,GAAGM,GACrE,UAAAP,EACF,CAAA;AAGH;AAEAe,EAAa,cAAc;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
1
|
+
import { jsx as e, jsxs as m } from "react/jsx-runtime";
|
|
2
2
|
import { R as f, T as u, a as g, b as y, c as h } from "../index-BDrapWDv.js";
|
|
3
3
|
import r from "react";
|
|
4
4
|
import { T as l } from "../index-BVqs-uqP.js";
|
|
@@ -12,7 +12,7 @@ const w = l({
|
|
|
12
12
|
);
|
|
13
13
|
x.displayName = "GlassToolbar";
|
|
14
14
|
const c = l({
|
|
15
|
-
base: "group inline-flex items-center justify-center gap-1.5 rounded-full p-2 text-primary-fg hover:bg-alpha-high-90 focus-visible:shadow-focus focus-visible:outline-
|
|
15
|
+
base: "group inline-flex items-center justify-center gap-1.5 rounded-full p-2 text-primary-fg hover:bg-alpha-high-90 focus-visible:shadow-focus focus-visible:outline-hidden"
|
|
16
16
|
}), p = r.forwardRef(({ className: a, ...s }, o) => /* @__PURE__ */ e(u, { ref: o, className: c({ className: a }), ...s }));
|
|
17
17
|
p.displayName = "GlassToolbarButton";
|
|
18
18
|
const S = l({
|
|
@@ -64,8 +64,8 @@ const _ = l({
|
|
|
64
64
|
q.displayName = "GlassToolbarSeparator";
|
|
65
65
|
const z = l({
|
|
66
66
|
base: "data-[state=open]:bg-alpha-high-80"
|
|
67
|
-
}),
|
|
68
|
-
|
|
67
|
+
}), d = r.forwardRef(({ className: a, children: s, ...o }, t) => /* @__PURE__ */ e(p, { ref: t, "data-stick-left": !0, className: z({ className: a }), ...o, children: s }));
|
|
68
|
+
d.displayName = "GlassToolbarTrigger";
|
|
69
69
|
const A = l({
|
|
70
70
|
slots: {
|
|
71
71
|
wrapper: "",
|
|
@@ -78,7 +78,7 @@ const A = l({
|
|
|
78
78
|
}
|
|
79
79
|
}), E = r.forwardRef(({ className: a, children: s, sub: o, ...t }, i) => {
|
|
80
80
|
const n = A();
|
|
81
|
-
return /* @__PURE__ */ d
|
|
81
|
+
return /* @__PURE__ */ m(d, { ref: i, "data-stick-left": !0, className: n.wrapper({ className: a, sub: o }), ...t, children: [
|
|
82
82
|
s,
|
|
83
83
|
/* @__PURE__ */ e(T, { className: n.subtrigger() })
|
|
84
84
|
] });
|
|
@@ -93,7 +93,7 @@ export {
|
|
|
93
93
|
I as GlassToolbarText,
|
|
94
94
|
B as GlassToolbarToggleGroup,
|
|
95
95
|
D as GlassToolbarToggleItem,
|
|
96
|
-
|
|
96
|
+
d as GlassToolbarTrigger,
|
|
97
97
|
E as GlassToolbarTriggerChevron
|
|
98
98
|
};
|
|
99
99
|
//# sourceMappingURL=glass-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glass-toolbar.js","sources":["../../src/components/glass-toolbar/GlassToolbar.tsx"],"sourcesContent":["import * as ToolbarPrimitive from \"@radix-ui/react-toolbar\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Divider } from \"../divider/Divider\";\nimport { Icon } from \"../icon\";\nimport { ChevronDown, LucideIcon } from \"lucide-react\";\n\nconst glassToolbarStyles = tv({\n\tbase: \"backdrop-glass-thin flex items-center gap-1 overflow-x-auto rounded-full bg-alpha-50 p-1.5 shadow-glass-sm [scrollbar-width:none]\"\n});\n\nexport type GlassToolbarProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Root>;\n\nexport const GlassToolbar = React.forwardRef<React.ElementRef<typeof ToolbarPrimitive.Root>, GlassToolbarProps>(\n\t({ className, ...props }, ref) => {\n\t\treturn <ToolbarPrimitive.Root ref={ref} className={glassToolbarStyles({ className })} {...props} />;\n\t}\n);\n\nGlassToolbar.displayName = \"GlassToolbar\";\n\nconst glassToolbarButtonStyles = tv({\n\tbase: \"group inline-flex items-center justify-center gap-1.5 rounded-full p-2 text-primary-fg hover:bg-alpha-high-90 focus-visible:shadow-focus focus-visible:outline-none\"\n});\n\nexport type GlassToolbarButtonProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarButton>;\n\nexport const GlassToolbarButton = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tGlassToolbarButtonProps\n>(({ className, ...props }, ref) => (\n\t<ToolbarPrimitive.ToolbarButton ref={ref} className={glassToolbarButtonStyles({ className })} {...props} />\n));\n\nGlassToolbarButton.displayName = \"GlassToolbarButton\";\n\nconst glassToolbarIconStyles = tv({\n\tbase: \"h-4 w-4 text-primary-fg\"\n});\n\nexport type GlassToolbarIconProps = React.ComponentPropsWithoutRef<typeof Icon>;\n\nexport const GlassToolbarIcon = React.forwardRef<React.ElementRef<typeof Icon>, GlassToolbarIconProps>(\n\t({ className, ...props }, ref) => <Icon ref={ref} className={glassToolbarIconStyles({ className })} {...props} />\n);\n\nGlassToolbarIcon.displayName = \"GlassToolbarIcon\";\n\nconst glassToolbarTextStyles = tv({\n\tbase: \"text-base leading-none text-primary-fg\"\n});\n\nexport type GlassToolbarTextProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const GlassToolbarText = React.forwardRef<HTMLDivElement, PropsWithChildren<GlassToolbarTextProps>>(\n\t({ className, ...props }, ref) => <div ref={ref} className={glassToolbarTextStyles({ className })} {...props} />\n);\n\nGlassToolbarText.displayName = \"GlassToolbarText\";\n\nconst glassToolbarSubTriggerStyles = tv({\n\tslots: {\n\t\tbase: \"text-primary-fg\",\n\t\ticon: \"h-2 w-2 stroke-[3px]\"\n\t}\n});\n\nexport type GlassToolbarSubTriggerProps = Omit<React.ComponentPropsWithoutRef<typeof Icon>, \"icon\"> & {\n\ticon?: LucideIcon;\n};\n\nexport const GlassToolbarSubTrigger = React.forwardRef<React.ElementRef<typeof Icon>, GlassToolbarSubTriggerProps>(\n\t({ className, icon, ...props }, ref) => {\n\t\tconst styles = glassToolbarSubTriggerStyles();\n\t\treturn (\n\t\t\t<span className={styles.base({ className })}>\n\t\t\t\t<Icon icon={icon || ChevronDown} ref={ref} className={styles.icon()} {...props} />\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nGlassToolbarSubTrigger.displayName = \"GlassToolbarSubTrigger\";\n\nconst glassToolbarToggleGroupStyles = tv({\n\tbase: \"flex items-center gap-0.5\"\n});\n\nexport type GlassToolbarToggleGroupProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToggleGroup>;\n\nexport const GlassToolbarToggleGroup = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToggleGroup>,\n\tGlassToolbarToggleGroupProps\n>(({ className, ...props }, ref) => (\n\t<ToolbarPrimitive.ToggleGroup ref={ref} className={glassToolbarToggleGroupStyles({ className })} {...props} />\n));\n\nGlassToolbarToggleGroup.displayName = ToolbarPrimitive.ToggleGroup.displayName;\n\nconst glassToolbarToggleStyles = tv({\n\textend: glassToolbarButtonStyles,\n\tbase: \"disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-alpha-high-80\"\n});\n\nexport type GlassToolbarToggleItemProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarToggleItem> & {\n\tchildren: React.ReactNode;\n};\n\nexport const GlassToolbarToggleItem = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarToggleItem>,\n\tGlassToolbarToggleItemProps\n>(({ className, children, ...props }, ref) => (\n\t<ToolbarPrimitive.ToolbarToggleItem ref={ref} className={glassToolbarToggleStyles({ className })} {...props}>\n\t\t{children}\n\t</ToolbarPrimitive.ToolbarToggleItem>\n));\n\nGlassToolbarToggleItem.displayName = \"GlassToolbarToggleItem\";\n\nconst glassToolbarSeparatorStyles = tv({\n\tbase: \"h-5 w-px bg-primary-border\"\n});\n\nexport type GlassToolbarSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const GlassToolbarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, GlassToolbarSeparatorProps>(\n\t({ className, ...props }, ref) => (\n\t\t<ToolbarPrimitive.ToolbarSeparator asChild data-orientation=\"vertical\">\n\t\t\t<Divider\n\t\t\t\tref={ref}\n\t\t\t\torientation=\"vertical\"\n\t\t\t\tclassName={glassToolbarSeparatorStyles({ className })}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</ToolbarPrimitive.ToolbarSeparator>\n\t)\n);\n\nGlassToolbarSeparator.displayName = \"GlassToolbarSeparator\";\n\nconst glassToolbarTriggerStyles = tv({\n\tbase: \"data-[state=open]:bg-alpha-high-80\"\n});\n\nexport type GlassToolbarTriggerProps = GlassToolbarButtonProps & {\n\t\"data-state\"?: \"open\" | \"closed\";\n};\n\nexport const GlassToolbarTrigger = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tGlassToolbarTriggerProps\n>(({ className, children, ...props }, ref) => (\n\t<GlassToolbarButton ref={ref} data-stick-left className={glassToolbarTriggerStyles({ className })} {...props}>\n\t\t{children}\n\t</GlassToolbarButton>\n));\n\nGlassToolbarTrigger.displayName = \"GlassToolbarTrigger\";\n\nconst glassToolbarTriggerChevronStyles = tv({\n\tslots: {\n\t\twrapper: \"\",\n\t\tsubtrigger: \"py-0.5\"\n\t},\n\tvariants: {\n\t\tsub: {\n\t\t\ttrue: { wrapper: \"-ml-0.5 px-0.5 py-2\" }\n\t\t}\n\t}\n});\n\nexport type GlassToolbarTriggerChevronProps = GlassToolbarTriggerProps & {\n\tsub?: boolean;\n};\n\nexport const GlassToolbarTriggerChevron = React.forwardRef<\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\n\tGlassToolbarTriggerChevronProps\n>(({ className, children, sub, ...props }, ref) => {\n\tconst styles = glassToolbarTriggerChevronStyles();\n\n\treturn (\n\t\t<GlassToolbarTrigger ref={ref} data-stick-left className={styles.wrapper({ className, sub })} {...props}>\n\t\t\t{children}\n\t\t\t<GlassToolbarSubTrigger className={styles.subtrigger()} />\n\t\t</GlassToolbarTrigger>\n\t);\n});\n\nGlassToolbarTriggerChevron.displayName = \"GlassToolbarTriggerChevron\";\n"],"names":["glassToolbarStyles","tv","GlassToolbar","React","className","props","ref","jsx","ToolbarPrimitive.Root","glassToolbarButtonStyles","GlassToolbarButton","ToolbarPrimitive.ToolbarButton","glassToolbarIconStyles","GlassToolbarIcon","Icon","glassToolbarTextStyles","GlassToolbarText","glassToolbarSubTriggerStyles","GlassToolbarSubTrigger","icon","styles","ChevronDown","glassToolbarToggleGroupStyles","GlassToolbarToggleGroup","ToolbarPrimitive.ToggleGroup","glassToolbarToggleStyles","GlassToolbarToggleItem","children","ToolbarPrimitive.ToolbarToggleItem","glassToolbarSeparatorStyles","GlassToolbarSeparator","ToolbarPrimitive.ToolbarSeparator","Divider","glassToolbarTriggerStyles","GlassToolbarTrigger","glassToolbarTriggerChevronStyles","GlassToolbarTriggerChevron","sub","jsxs"],"mappings":";;;;;;;AAOA,MAAMA,IAAqBC,EAAG;AAAA,EAC7B,MAAM;AACP,CAAC,GAIYC,IAAeC,EAAM;AAAA,EACjC,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACjB,gBAAAC,EAAAC,GAAA,EAAsB,KAAAF,GAAU,WAAWN,EAAmB,EAAE,WAAAI,EAAW,CAAA,GAAI,GAAGC,GAAO;AAEnG;AAEAH,EAAa,cAAc;AAE3B,MAAMO,IAA2BR,EAAG;AAAA,EACnC,MAAM;AACP,CAAC,GAIYS,IAAqBP,EAAM,WAGtC,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC3B,gBAAAC,EAACI,GAAA,EAA+B,KAAAL,GAAU,WAAWG,EAAyB,EAAE,WAAAL,GAAW,GAAI,GAAGC,GAAO,CACzG;AAEDK,EAAmB,cAAc;AAEjC,MAAME,IAAyBX,EAAG;AAAA,EACjC,MAAM;AACP,CAAC,GAIYY,IAAmBV,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MAAQ,gBAAAC,EAACO,GAAK,EAAA,KAAAR,GAAU,WAAWM,EAAuB,EAAE,WAAAR,GAAW,GAAI,GAAGC,EAAO,CAAA;AAChH;AAEAQ,EAAiB,cAAc;AAE/B,MAAME,IAAyBd,EAAG;AAAA,EACjC,MAAM;AACP,CAAC,GAIYe,IAAmBb,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,MAAQ,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWS,EAAuB,EAAE,WAAAX,GAAW,GAAI,GAAGC,EAAO,CAAA;AAC/G;AAEAW,EAAiB,cAAc;AAE/B,MAAMC,IAA+BhB,EAAG;AAAA,EACvC,OAAO;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAER,CAAC,GAMYiB,IAAyBf,EAAM;AAAA,EAC3C,CAAC,EAAE,WAAAC,GAAW,MAAAe,GAAM,GAAGd,EAAA,GAASC,MAAQ;AACvC,UAAMc,IAASH,EAA6B;AAE3C,WAAA,gBAAAV,EAAC,UAAK,WAAWa,EAAO,KAAK,EAAE,WAAAhB,EAAW,CAAA,GACzC,UAAA,gBAAAG,EAACO,KAAK,MAAMK,KAAQE,GAAa,KAAAf,GAAU,WAAWc,EAAO,QAAS,GAAGf,EAAO,CAAA,GACjF;AAAA,EAAA;AAGH;AAEAa,EAAuB,cAAc;AAErC,MAAMI,IAAgCrB,EAAG;AAAA,EACxC,MAAM;AACP,CAAC,GAIYsB,IAA0BpB,EAAM,WAG3C,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC3B,gBAAAC,EAACiB,GAAA,EAA6B,KAAAlB,GAAU,WAAWgB,EAA8B,EAAE,WAAAlB,GAAW,GAAI,GAAGC,GAAO,CAC5G;AAEDkB,EAAwB,cAAcC,EAA6B;AAEnE,MAAMC,IAA2BxB,EAAG;AAAA,EACnC,QAAQQ;AAAA,EACR,MAAM;AACP,CAAC,GAMYiB,IAAyBvB,EAAM,WAG1C,CAAC,EAAE,WAAAC,GAAW,UAAAuB,GAAU,GAAGtB,EAAM,GAAGC,MACrC,gBAAAC,EAACqB,GAAA,EAAmC,KAAAtB,GAAU,WAAWmB,EAAyB,EAAE,WAAArB,EAAU,CAAC,GAAI,GAAGC,GACpG,UAAAsB,GACF,CACA;AAEDD,EAAuB,cAAc;AAErC,MAAMG,IAA8B5B,EAAG;AAAA,EACtC,MAAM;AACP,CAAC,GAIY6B,IAAwB3B,EAAM;AAAA,EAC1C,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAS,GAAAC,MACxB,gBAAAC,EAAAwB,GAAA,EAAkC,SAAO,IAAC,oBAAiB,YAC3D,UAAA,gBAAAxB;AAAA,IAACyB;AAAA,IAAA;AAAA,MACA,KAAA1B;AAAA,MACA,aAAY;AAAA,MACZ,WAAWuB,EAA4B,EAAE,WAAAzB,GAAW;AAAA,MACnD,GAAGC;AAAA,IAAA;AAAA,EAAA,EAEN,CAAA;AAEF;AAEAyB,EAAsB,cAAc;AAEpC,MAAMG,IAA4BhC,EAAG;AAAA,EACpC,MAAM;AACP,CAAC,GAMYiC,IAAsB/B,EAAM,WAGvC,CAAC,EAAE,WAAAC,GAAW,UAAAuB,GAAU,GAAGtB,EAAM,GAAGC,MACrC,gBAAAC,EAACG,KAAmB,KAAAJ,GAAU,mBAAe,IAAC,WAAW2B,EAA0B,EAAE,WAAA7B,EAAU,CAAC,GAAI,GAAGC,GACrG,UAAAsB,GACF,CACA;AAEDO,EAAoB,cAAc;AAElC,MAAMC,IAAmClC,EAAG;AAAA,EAC3C,OAAO;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACT,KAAK;AAAA,MACJ,MAAM,EAAE,SAAS,sBAAsB;AAAA,IAAA;AAAA,EACxC;AAEF,CAAC,GAMYmC,IAA6BjC,EAAM,WAG9C,CAAC,EAAE,WAAAC,GAAW,UAAAuB,GAAU,KAAAU,GAAK,GAAGhC,EAAM,GAAGC,MAAQ;AAClD,QAAMc,IAASe,EAAiC;AAEhD,SACE,gBAAAG,EAAAJ,GAAA,EAAoB,KAAA5B,GAAU,mBAAe,IAAC,WAAWc,EAAO,QAAQ,EAAE,WAAAhB,GAAW,KAAAiC,EAAK,CAAA,GAAI,GAAGhC,GAChG,UAAA;AAAA,IAAAsB;AAAA,IACA,gBAAApB,EAAAW,GAAA,EAAuB,WAAWE,EAAO,aAAc,CAAA;AAAA,EAAA,GACzD;AAEF,CAAC;AAEDgB,EAA2B,cAAc;"}
|
|
1
|
+
{"version":3,"file":"glass-toolbar.js","sources":["../../src/components/glass-toolbar/GlassToolbar.tsx"],"sourcesContent":["import * as ToolbarPrimitive from \"@radix-ui/react-toolbar\";\r\nimport React, { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Divider } from \"../divider/Divider\";\r\nimport { Icon } from \"../icon\";\r\nimport { ChevronDown, LucideIcon } from \"lucide-react\";\r\n\r\nconst glassToolbarStyles = tv({\r\n\tbase: \"backdrop-glass-thin flex items-center gap-1 overflow-x-auto rounded-full bg-alpha-50 p-1.5 shadow-glass-sm [scrollbar-width:none]\"\r\n});\r\n\r\nexport type GlassToolbarProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.Root>;\r\n\r\nexport const GlassToolbar = React.forwardRef<React.ElementRef<typeof ToolbarPrimitive.Root>, GlassToolbarProps>(\r\n\t({ className, ...props }, ref) => {\r\n\t\treturn <ToolbarPrimitive.Root ref={ref} className={glassToolbarStyles({ className })} {...props} />;\r\n\t}\r\n);\r\n\r\nGlassToolbar.displayName = \"GlassToolbar\";\r\n\r\nconst glassToolbarButtonStyles = tv({\r\n\tbase: \"group inline-flex items-center justify-center gap-1.5 rounded-full p-2 text-primary-fg hover:bg-alpha-high-90 focus-visible:shadow-focus focus-visible:outline-hidden\"\r\n});\r\n\r\nexport type GlassToolbarButtonProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarButton>;\r\n\r\nexport const GlassToolbarButton = React.forwardRef<\r\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\r\n\tGlassToolbarButtonProps\r\n>(({ className, ...props }, ref) => (\r\n\t<ToolbarPrimitive.ToolbarButton ref={ref} className={glassToolbarButtonStyles({ className })} {...props} />\r\n));\r\n\r\nGlassToolbarButton.displayName = \"GlassToolbarButton\";\r\n\r\nconst glassToolbarIconStyles = tv({\r\n\tbase: \"h-4 w-4 text-primary-fg\"\r\n});\r\n\r\nexport type GlassToolbarIconProps = React.ComponentPropsWithoutRef<typeof Icon>;\r\n\r\nexport const GlassToolbarIcon = React.forwardRef<React.ElementRef<typeof Icon>, GlassToolbarIconProps>(\r\n\t({ className, ...props }, ref) => <Icon ref={ref} className={glassToolbarIconStyles({ className })} {...props} />\r\n);\r\n\r\nGlassToolbarIcon.displayName = \"GlassToolbarIcon\";\r\n\r\nconst glassToolbarTextStyles = tv({\r\n\tbase: \"text-base leading-none text-primary-fg\"\r\n});\r\n\r\nexport type GlassToolbarTextProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const GlassToolbarText = React.forwardRef<HTMLDivElement, PropsWithChildren<GlassToolbarTextProps>>(\r\n\t({ className, ...props }, ref) => <div ref={ref} className={glassToolbarTextStyles({ className })} {...props} />\r\n);\r\n\r\nGlassToolbarText.displayName = \"GlassToolbarText\";\r\n\r\nconst glassToolbarSubTriggerStyles = tv({\r\n\tslots: {\r\n\t\tbase: \"text-primary-fg\",\r\n\t\ticon: \"h-2 w-2 stroke-[3px]\"\r\n\t}\r\n});\r\n\r\nexport type GlassToolbarSubTriggerProps = Omit<React.ComponentPropsWithoutRef<typeof Icon>, \"icon\"> & {\r\n\ticon?: LucideIcon;\r\n};\r\n\r\nexport const GlassToolbarSubTrigger = React.forwardRef<React.ElementRef<typeof Icon>, GlassToolbarSubTriggerProps>(\r\n\t({ className, icon, ...props }, ref) => {\r\n\t\tconst styles = glassToolbarSubTriggerStyles();\r\n\t\treturn (\r\n\t\t\t<span className={styles.base({ className })}>\r\n\t\t\t\t<Icon icon={icon || ChevronDown} ref={ref} className={styles.icon()} {...props} />\r\n\t\t\t</span>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nGlassToolbarSubTrigger.displayName = \"GlassToolbarSubTrigger\";\r\n\r\nconst glassToolbarToggleGroupStyles = tv({\r\n\tbase: \"flex items-center gap-0.5\"\r\n});\r\n\r\nexport type GlassToolbarToggleGroupProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToggleGroup>;\r\n\r\nexport const GlassToolbarToggleGroup = React.forwardRef<\r\n\tReact.ElementRef<typeof ToolbarPrimitive.ToggleGroup>,\r\n\tGlassToolbarToggleGroupProps\r\n>(({ className, ...props }, ref) => (\r\n\t<ToolbarPrimitive.ToggleGroup ref={ref} className={glassToolbarToggleGroupStyles({ className })} {...props} />\r\n));\r\n\r\nGlassToolbarToggleGroup.displayName = ToolbarPrimitive.ToggleGroup.displayName;\r\n\r\nconst glassToolbarToggleStyles = tv({\r\n\textend: glassToolbarButtonStyles,\r\n\tbase: \"disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-alpha-high-80\"\r\n});\r\n\r\nexport type GlassToolbarToggleItemProps = React.ComponentPropsWithoutRef<typeof ToolbarPrimitive.ToolbarToggleItem> & {\r\n\tchildren: React.ReactNode;\r\n};\r\n\r\nexport const GlassToolbarToggleItem = React.forwardRef<\r\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarToggleItem>,\r\n\tGlassToolbarToggleItemProps\r\n>(({ className, children, ...props }, ref) => (\r\n\t<ToolbarPrimitive.ToolbarToggleItem ref={ref} className={glassToolbarToggleStyles({ className })} {...props}>\r\n\t\t{children}\r\n\t</ToolbarPrimitive.ToolbarToggleItem>\r\n));\r\n\r\nGlassToolbarToggleItem.displayName = \"GlassToolbarToggleItem\";\r\n\r\nconst glassToolbarSeparatorStyles = tv({\r\n\tbase: \"h-5 w-px bg-primary-border\"\r\n});\r\n\r\nexport type GlassToolbarSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport const GlassToolbarSeparator = React.forwardRef<React.ElementRef<typeof Divider>, GlassToolbarSeparatorProps>(\r\n\t({ className, ...props }, ref) => (\r\n\t\t<ToolbarPrimitive.ToolbarSeparator asChild data-orientation=\"vertical\">\r\n\t\t\t<Divider\r\n\t\t\t\tref={ref}\r\n\t\t\t\torientation=\"vertical\"\r\n\t\t\t\tclassName={glassToolbarSeparatorStyles({ className })}\r\n\t\t\t\t{...props}\r\n\t\t\t/>\r\n\t\t</ToolbarPrimitive.ToolbarSeparator>\r\n\t)\r\n);\r\n\r\nGlassToolbarSeparator.displayName = \"GlassToolbarSeparator\";\r\n\r\nconst glassToolbarTriggerStyles = tv({\r\n\tbase: \"data-[state=open]:bg-alpha-high-80\"\r\n});\r\n\r\nexport type GlassToolbarTriggerProps = GlassToolbarButtonProps & {\r\n\t\"data-state\"?: \"open\" | \"closed\";\r\n};\r\n\r\nexport const GlassToolbarTrigger = React.forwardRef<\r\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\r\n\tGlassToolbarTriggerProps\r\n>(({ className, children, ...props }, ref) => (\r\n\t<GlassToolbarButton ref={ref} data-stick-left className={glassToolbarTriggerStyles({ className })} {...props}>\r\n\t\t{children}\r\n\t</GlassToolbarButton>\r\n));\r\n\r\nGlassToolbarTrigger.displayName = \"GlassToolbarTrigger\";\r\n\r\nconst glassToolbarTriggerChevronStyles = tv({\r\n\tslots: {\r\n\t\twrapper: \"\",\r\n\t\tsubtrigger: \"py-0.5\"\r\n\t},\r\n\tvariants: {\r\n\t\tsub: {\r\n\t\t\ttrue: { wrapper: \"-ml-0.5 px-0.5 py-2\" }\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport type GlassToolbarTriggerChevronProps = GlassToolbarTriggerProps & {\r\n\tsub?: boolean;\r\n};\r\n\r\nexport const GlassToolbarTriggerChevron = React.forwardRef<\r\n\tReact.ElementRef<typeof ToolbarPrimitive.ToolbarButton>,\r\n\tGlassToolbarTriggerChevronProps\r\n>(({ className, children, sub, ...props }, ref) => {\r\n\tconst styles = glassToolbarTriggerChevronStyles();\r\n\r\n\treturn (\r\n\t\t<GlassToolbarTrigger ref={ref} data-stick-left className={styles.wrapper({ className, sub })} {...props}>\r\n\t\t\t{children}\r\n\t\t\t<GlassToolbarSubTrigger className={styles.subtrigger()} />\r\n\t\t</GlassToolbarTrigger>\r\n\t);\r\n});\r\n\r\nGlassToolbarTriggerChevron.displayName = \"GlassToolbarTriggerChevron\";\r\n"],"names":["glassToolbarStyles","tv","GlassToolbar","React","className","props","ref","jsx","ToolbarPrimitive.Root","glassToolbarButtonStyles","GlassToolbarButton","ToolbarPrimitive.ToolbarButton","glassToolbarIconStyles","GlassToolbarIcon","Icon","glassToolbarTextStyles","GlassToolbarText","glassToolbarSubTriggerStyles","GlassToolbarSubTrigger","icon","styles","ChevronDown","glassToolbarToggleGroupStyles","GlassToolbarToggleGroup","ToolbarPrimitive.ToggleGroup","glassToolbarToggleStyles","GlassToolbarToggleItem","children","ToolbarPrimitive.ToolbarToggleItem","glassToolbarSeparatorStyles","GlassToolbarSeparator","ToolbarPrimitive.ToolbarSeparator","Divider","glassToolbarTriggerStyles","GlassToolbarTrigger","glassToolbarTriggerChevronStyles","GlassToolbarTriggerChevron","sub","jsxs"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-placeholder.js","sources":["../../src/components/image-placeholder/ImagePlaceholder.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface ImagePlaceholderVariants {\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst imagePlaceholderStyles = tv({\n\tbase: \"aspect-square rounded-xl border border-dashed border-primary-border\",\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"h-[3.75rem] w-[3.75rem]\",\n\t\t\tsm: \"h-20 w-20\",\n\t\t\tmd: \"h-[7.5rem] w-[7.5rem]\",\n\t\t\tlg: \"h-[11.5rem] w-[11.5rem]\",\n\t\t\txl: \"h-96 w-96\"\n\t\t}\n\t} satisfies VariantsConfig<ImagePlaceholderVariants>\n});\n\nexport type ImagePlaceholderProps = React.HTMLAttributes<HTMLDivElement> & ImagePlaceholderVariants;\n\nexport const ImagePlaceholder = React.forwardRef<HTMLDivElement, ImagePlaceholderProps>(\n\t({ className, size, ...props }, ref) => {\n\t\treturn <div ref={ref} className={imagePlaceholderStyles({ className, size })} {...props} />;\n\t}\n);\n\nImagePlaceholder.displayName = \"ImagePlaceholder\";\n"],"names":["imagePlaceholderStyles","tv","ImagePlaceholder","React","className","size","props","ref","jsx"],"mappings":";;;AAQA,MAAMA,IAAyBC,EAAG;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACL;AAEF,CAAC,GAIYC,IAAmBC,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWP,EAAuB,EAAE,WAAAI,GAAW,MAAAC,EAAK,CAAC,GAAI,GAAGC,EAAO,CAAA;AAE3F;AAEAJ,EAAiB,cAAc;"}
|
|
1
|
+
{"version":3,"file":"image-placeholder.js","sources":["../../src/components/image-placeholder/ImagePlaceholder.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nexport interface ImagePlaceholderVariants {\r\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n}\r\n\r\nconst imagePlaceholderStyles = tv({\r\n\tbase: \"aspect-square rounded-xl border border-dashed border-primary-border\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\txs: \"h-[3.75rem] w-[3.75rem]\",\r\n\t\t\tsm: \"h-20 w-20\",\r\n\t\t\tmd: \"h-[7.5rem] w-[7.5rem]\",\r\n\t\t\tlg: \"h-[11.5rem] w-[11.5rem]\",\r\n\t\t\txl: \"h-96 w-96\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<ImagePlaceholderVariants>\r\n});\r\n\r\nexport type ImagePlaceholderProps = React.HTMLAttributes<HTMLDivElement> & ImagePlaceholderVariants;\r\n\r\nexport const ImagePlaceholder = React.forwardRef<HTMLDivElement, ImagePlaceholderProps>(\r\n\t({ className, size, ...props }, ref) => {\r\n\t\treturn <div ref={ref} className={imagePlaceholderStyles({ className, size })} {...props} />;\r\n\t}\r\n);\r\n\r\nImagePlaceholder.displayName = \"ImagePlaceholder\";\r\n"],"names":["imagePlaceholderStyles","tv","ImagePlaceholder","React","className","size","props","ref","jsx"],"mappings":";;;AAQA,MAAMA,IAAyBC,EAAG;AAAA,EACjC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACL;AAEF,CAAC,GAIYC,IAAmBC,EAAM;AAAA,EACrC,CAAC,EAAE,WAAAC,GAAW,MAAAC,GAAM,GAAGC,EAAA,GAASC,MACxB,gBAAAC,EAAC,OAAI,EAAA,KAAAD,GAAU,WAAWP,EAAuB,EAAE,WAAAI,GAAW,MAAAC,EAAK,CAAC,GAAI,GAAGC,EAAO,CAAA;AAE3F;AAEAJ,EAAiB,cAAc;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as r, jsxs as f } from "react/jsx-runtime";
|
|
2
2
|
import y, { useCallback as i } from "react";
|
|
3
3
|
import { T as h } from "../index-BVqs-uqP.js";
|
|
4
|
-
import { B as D } from "../Button-
|
|
4
|
+
import { B as D } from "../Button-_qdP4hSf.js";
|
|
5
5
|
import { I as b } from "../Icon-DH3ev9GK.js";
|
|
6
6
|
import { c as P } from "../createLucideIcon-DwBrHnj9.js";
|
|
7
7
|
import { D as j } from "../download-BHsj218e.js";
|
|
@@ -50,7 +50,7 @@ const q = P("ImageOff", [
|
|
|
50
50
|
c.displayName = "ImageUploaderButton";
|
|
51
51
|
const C = h({
|
|
52
52
|
slots: {
|
|
53
|
-
container: "group relative flex aspect-square cursor-pointer items-center justify-center rounded-xl outline-
|
|
53
|
+
container: "group relative flex aspect-square cursor-pointer items-center justify-center rounded-xl outline-hidden focus-visible:shadow-focus",
|
|
54
54
|
image: "aspect-square h-full rounded-xl",
|
|
55
55
|
buttonWrapper: "absolute right-1 top-1 flex gap-1",
|
|
56
56
|
icon: "h-8 w-8 stroke-[1.5px] text-muted",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-preview.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/image-off.js","../../src/components/image-uploader/components/ImageUploaderButton.tsx","../../src/components/image-preview/ImagePreview.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 ImageOff = createLucideIcon(\"ImageOff\", [\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }],\n [\"path\", { d: \"M10.41 10.41a2 2 0 1 1-2.83-2.83\", key: \"1bzlo9\" }],\n [\"line\", { x1: \"13.5\", x2: \"6\", y1: \"13.5\", y2: \"21\", key: \"1q0aeu\" }],\n [\"line\", { x1: \"18\", x2: \"21\", y1: \"12\", y2: \"15\", key: \"5mozeu\" }],\n [\n \"path\",\n {\n d: \"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59\",\n key: \"mmje98\"\n }\n ],\n [\"path\", { d: \"M21 15V5a2 2 0 0 0-2-2H9\", key: \"43el77\" }]\n]);\n\nexport { ImageOff as default };\n//# sourceMappingURL=image-off.js.map\n","import { Button } from \"@/components/button\";\nimport { Icon } from \"@/components/icon\";\nimport { LucideIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nconst imageUploaderButtonStyles = tv({\n\tslots: {\n\t\tcontainer: \"h-4 w-4 rounded-full border border-muted bg-primary-bg p-1\",\n\t\ticon: \"h-2 w-2 stroke-[3px] text-muted\"\n\t}\n});\n\nexport type ImageUploaderButtonProps = React.HTMLAttributes<HTMLButtonElement> & {\n\ticon: LucideIcon;\n};\n\nexport const ImageUploaderButton = React.forwardRef<HTMLButtonElement, ImageUploaderButtonProps>(\n\t({ className, onClick, icon, ...props }, ref) => {\n\t\tconst styles = imageUploaderButtonStyles();\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles.container({ className })}\n\t\t\t\tonClick={onClick}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<Icon className={styles.icon()} icon={icon} />\n\t\t\t</Button>\n\t\t);\n\t}\n);\n\nImageUploaderButton.displayName = \"ImageUploaderButton\";\n","import React, { useCallback, KeyboardEvent } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ImageUploaderButton } from \"../image-uploader/components/ImageUploaderButton\";\nimport { Download, ImageOff, RotateCw, X } from \"lucide-react\";\nimport { Icon } from \"../icon\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface ImagePreviewVariants {\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\terror?: boolean;\n}\n\nconst imagePreviewStyles = tv({\n\tslots: {\n\t\tcontainer:\n\t\t\t\"group relative flex aspect-square cursor-pointer items-center justify-center rounded-xl outline-
|
|
1
|
+
{"version":3,"file":"image-preview.js","sources":["../../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/image-off.js","../../src/components/image-uploader/components/ImageUploaderButton.tsx","../../src/components/image-preview/ImagePreview.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 ImageOff = createLucideIcon(\"ImageOff\", [\n [\"line\", { x1: \"2\", x2: \"22\", y1: \"2\", y2: \"22\", key: \"a6p6uj\" }],\n [\"path\", { d: \"M10.41 10.41a2 2 0 1 1-2.83-2.83\", key: \"1bzlo9\" }],\n [\"line\", { x1: \"13.5\", x2: \"6\", y1: \"13.5\", y2: \"21\", key: \"1q0aeu\" }],\n [\"line\", { x1: \"18\", x2: \"21\", y1: \"12\", y2: \"15\", key: \"5mozeu\" }],\n [\n \"path\",\n {\n d: \"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59\",\n key: \"mmje98\"\n }\n ],\n [\"path\", { d: \"M21 15V5a2 2 0 0 0-2-2H9\", key: \"43el77\" }]\n]);\n\nexport { ImageOff as default };\n//# sourceMappingURL=image-off.js.map\n","import { Button } from \"@/components/button\";\r\nimport { Icon } from \"@/components/icon\";\r\nimport { LucideIcon } from \"lucide-react\";\r\nimport React from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst imageUploaderButtonStyles = tv({\r\n\tslots: {\r\n\t\tcontainer: \"h-4 w-4 rounded-full border border-muted bg-primary-bg p-1\",\r\n\t\ticon: \"h-2 w-2 stroke-[3px] text-muted\"\r\n\t}\r\n});\r\n\r\nexport type ImageUploaderButtonProps = React.HTMLAttributes<HTMLButtonElement> & {\r\n\ticon: LucideIcon;\r\n};\r\n\r\nexport const ImageUploaderButton = React.forwardRef<HTMLButtonElement, ImageUploaderButtonProps>(\r\n\t({ className, onClick, icon, ...props }, ref) => {\r\n\t\tconst styles = imageUploaderButtonStyles();\r\n\r\n\t\treturn (\r\n\t\t\t<Button\r\n\t\t\t\tvariant=\"outline\"\r\n\t\t\t\tref={ref}\r\n\t\t\t\tclassName={styles.container({ className })}\r\n\t\t\t\tonClick={onClick}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<Icon className={styles.icon()} icon={icon} />\r\n\t\t\t</Button>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nImageUploaderButton.displayName = \"ImageUploaderButton\";\r\n","import React, { useCallback, KeyboardEvent } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { ImageUploaderButton } from \"../image-uploader/components/ImageUploaderButton\";\r\nimport { Download, ImageOff, RotateCw, X } from \"lucide-react\";\r\nimport { Icon } from \"../icon\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface ImagePreviewVariants {\r\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n\terror?: boolean;\r\n}\r\n\r\nconst imagePreviewStyles = tv({\r\n\tslots: {\r\n\t\tcontainer:\r\n\t\t\t\"group relative flex aspect-square cursor-pointer items-center justify-center rounded-xl outline-hidden focus-visible:shadow-focus\",\r\n\t\timage: \"aspect-square h-full rounded-xl\",\r\n\t\tbuttonWrapper: \"absolute right-1 top-1 flex gap-1\",\r\n\t\ticon: \"h-8 w-8 stroke-[1.5px] text-muted\",\r\n\t\toverlay: \"absolute inset-0 rounded-xl group-hover:bg-slate-900/20\"\r\n\t},\r\n\tvariants: {\r\n\t\terror: {\r\n\t\t\ttrue: {\r\n\t\t\t\tcontainer:\r\n\t\t\t\t\t\"border 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}\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<ImagePreviewVariants>\r\n});\r\n\r\nexport type ImagePreviewProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"onClick\"> &\r\n\tImagePreviewVariants & {\r\n\t\turl: string;\r\n\t\talt: string;\r\n\t\treadonly?: boolean;\r\n\t\tonImageClick?: (e: React.MouseEvent<HTMLDivElement> | KeyboardEvent<HTMLDivElement>) => void;\r\n\t\tonDownload?: (url: string) => void;\r\n\t\tonRetry?: () => void;\r\n\t\tonClear?: () => void;\r\n\t};\r\n\r\nexport const ImagePreview = React.forwardRef<HTMLDivElement, ImagePreviewProps>(\r\n\t({ className, error, readonly, onClear, onRetry, size, url, alt, onImageClick, onDownload, ...props }, ref) => {\r\n\t\tconst styles = imagePreviewStyles({ className, size, error });\r\n\r\n\t\tconst handleDownload = useCallback(\r\n\t\t\t(e: React.MouseEvent<HTMLButtonElement>) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tonDownload?.(url);\r\n\t\t\t},\r\n\t\t\t[onDownload, url]\r\n\t\t);\r\n\r\n\t\tconst handleClear = useCallback(\r\n\t\t\t(e: React.MouseEvent<HTMLButtonElement>) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tonClear?.();\r\n\t\t\t},\r\n\t\t\t[onClear]\r\n\t\t);\r\n\r\n\t\tconst handleRetry = useCallback(\r\n\t\t\t(e: React.MouseEvent<HTMLButtonElement>) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tonRetry?.();\r\n\t\t\t},\r\n\t\t\t[onRetry]\r\n\t\t);\r\n\r\n\t\tconst handleKeyDown = useCallback(\r\n\t\t\t(e: KeyboardEvent<HTMLDivElement>) => {\r\n\t\t\t\tif (e.key === \"Enter\" || e.key === \" \") {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tonImageClick?.(e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t[onImageClick]\r\n\t\t);\r\n\r\n\t\treturn (\r\n\t\t\t<div\r\n\t\t\t\tref={ref}\r\n\t\t\t\trole=\"button\"\r\n\t\t\t\ttabIndex={0}\r\n\t\t\t\tonClick={onImageClick}\r\n\t\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\t\tclassName={styles.container()}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t{!error && <img src={url} alt={alt} className={styles.image()} />}\r\n\t\t\t\t{!error && <div className={styles.overlay()} />}\r\n\r\n\t\t\t\t{error && <Icon icon={ImageOff} className={styles.icon()} />}\r\n\r\n\t\t\t\t<div className={styles.buttonWrapper()}>\r\n\t\t\t\t\t{!error && onDownload && <ImageUploaderButton icon={Download} onClick={handleDownload} />}\r\n\t\t\t\t\t{error && onRetry && <ImageUploaderButton icon={RotateCw} onClick={handleRetry} />}\r\n\t\t\t\t\t{!readonly && onClear && <ImageUploaderButton icon={X} onClick={handleClear} />}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nImagePreview.displayName = \"ImagePreview\";\r\n"],"names":["ImageOff","createLucideIcon","imageUploaderButtonStyles","tv","ImageUploaderButton","React","className","onClick","icon","props","ref","styles","jsx","Button","Icon","imagePreviewStyles","ImagePreview","error","readonly","onClear","onRetry","size","url","alt","onImageClick","onDownload","handleDownload","useCallback","handleClear","handleRetry","handleKeyDown","jsxs","Download","RotateCw","X"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as e, jsxs as C } from "react/jsx-runtime";
|
|
2
2
|
import l, { useRef as d } from "react";
|
|
3
3
|
import { T as p } from "../index-BVqs-uqP.js";
|
|
4
|
-
import { B as f } from "../Button-
|
|
4
|
+
import { B as f } from "../Button-_qdP4hSf.js";
|
|
5
5
|
import { I as h } from "../Icon-DH3ev9GK.js";
|
|
6
6
|
import { c as g } from "../cn-dsXlqdJg.js";
|
|
7
7
|
import { I as b } from "../image-BqL5JP90.js";
|