react-public-components 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -20
- package/dist/ActivityLog/index.cjs +9 -0
- package/dist/ActivityLog/index.cjs.map +1 -0
- package/dist/ActivityLog/index.css +117 -0
- package/dist/ActivityLog/index.css.map +1 -0
- package/dist/ActivityLog/index.d.ts +32 -0
- package/dist/ActivityLog/index.js +3 -0
- package/dist/ActivityLog/index.js.map +1 -0
- package/dist/AnnouncementBar/index.cjs +9 -0
- package/dist/AnnouncementBar/index.cjs.map +1 -0
- package/dist/AnnouncementBar/index.css +37 -0
- package/dist/AnnouncementBar/index.css.map +1 -0
- package/dist/AnnouncementBar/index.d.ts +18 -0
- package/dist/AnnouncementBar/index.js +3 -0
- package/dist/AnnouncementBar/index.js.map +1 -0
- package/dist/AudioPlayer/index.cjs +10 -0
- package/dist/AudioPlayer/index.cjs.map +1 -0
- package/dist/AudioPlayer/index.css +105 -0
- package/dist/AudioPlayer/index.css.map +1 -0
- package/dist/AudioPlayer/index.d.ts +18 -0
- package/dist/AudioPlayer/index.js +4 -0
- package/dist/AudioPlayer/index.js.map +1 -0
- package/dist/BadgeRibbon/index.cjs +9 -0
- package/dist/BadgeRibbon/index.cjs.map +1 -0
- package/dist/BadgeRibbon/index.css +48 -0
- package/dist/BadgeRibbon/index.css.map +1 -0
- package/dist/BadgeRibbon/index.d.ts +19 -0
- package/dist/BadgeRibbon/index.js +3 -0
- package/dist/BadgeRibbon/index.js.map +1 -0
- package/dist/BorderBeam/index.cjs +9 -0
- package/dist/BorderBeam/index.cjs.map +1 -0
- package/dist/BorderBeam/index.css +40 -0
- package/dist/BorderBeam/index.css.map +1 -0
- package/dist/BorderBeam/index.d.ts +24 -0
- package/dist/BorderBeam/index.js +3 -0
- package/dist/BorderBeam/index.js.map +1 -0
- package/dist/CascadeDrawer/index.cjs +9 -0
- package/dist/CascadeDrawer/index.cjs.map +1 -0
- package/dist/CascadeDrawer/index.css +73 -0
- package/dist/CascadeDrawer/index.css.map +1 -0
- package/dist/CascadeDrawer/index.d.ts +23 -0
- package/dist/CascadeDrawer/index.js +3 -0
- package/dist/CascadeDrawer/index.js.map +1 -0
- package/dist/CodeSnippet/index.cjs +9 -0
- package/dist/CodeSnippet/index.cjs.map +1 -0
- package/dist/CodeSnippet/index.css +63 -0
- package/dist/CodeSnippet/index.css.map +1 -0
- package/dist/CodeSnippet/index.d.ts +14 -0
- package/dist/CodeSnippet/index.js +3 -0
- package/dist/CodeSnippet/index.js.map +1 -0
- package/dist/CollapseBox/index.cjs +10 -0
- package/dist/CollapseBox/index.cjs.map +1 -0
- package/dist/CollapseBox/index.css +106 -0
- package/dist/CollapseBox/index.css.map +1 -0
- package/dist/CollapseBox/index.d.ts +17 -0
- package/dist/CollapseBox/index.js +4 -0
- package/dist/CollapseBox/index.js.map +1 -0
- package/dist/ColorPicker/Color.d.ts +48 -0
- package/dist/ColorPicker/index.cjs +23 -0
- package/dist/ColorPicker/index.cjs.map +1 -0
- package/dist/ColorPicker/index.css +422 -0
- package/dist/ColorPicker/index.css.map +1 -0
- package/dist/ColorPicker/index.d.ts +48 -0
- package/dist/ColorPicker/index.js +4 -0
- package/dist/ColorPicker/index.js.map +1 -0
- package/dist/ContextMenu/index.cjs +10 -0
- package/dist/ContextMenu/index.cjs.map +1 -0
- package/dist/ContextMenu/index.css +107 -0
- package/dist/ContextMenu/index.css.map +1 -0
- package/dist/ContextMenu/index.d.ts +42 -0
- package/dist/ContextMenu/index.js +4 -0
- package/dist/ContextMenu/index.js.map +1 -0
- package/dist/CopyButton/index.cjs +10 -0
- package/dist/CopyButton/index.cjs.map +1 -0
- package/dist/CopyButton/index.css +122 -0
- package/dist/CopyButton/index.css.map +1 -0
- package/dist/CopyButton/index.d.ts +36 -0
- package/dist/CopyButton/index.js +4 -0
- package/dist/CopyButton/index.js.map +1 -0
- package/dist/CountUp/index.cjs +9 -0
- package/dist/CountUp/index.cjs.map +1 -0
- package/dist/CountUp/index.css +23 -0
- package/dist/CountUp/index.css.map +1 -0
- package/dist/CountUp/index.d.ts +40 -0
- package/dist/CountUp/index.js +3 -0
- package/dist/CountUp/index.js.map +1 -0
- package/dist/CronPicker/index.cjs +11 -0
- package/dist/CronPicker/index.cjs.map +1 -0
- package/dist/CronPicker/index.css +215 -0
- package/dist/CronPicker/index.css.map +1 -0
- package/dist/CronPicker/index.d.ts +17 -0
- package/dist/CronPicker/index.js +5 -0
- package/dist/CronPicker/index.js.map +1 -0
- package/dist/DebounceSelect/index.cjs +10 -0
- package/dist/DebounceSelect/index.cjs.map +1 -0
- package/dist/DebounceSelect/index.css +156 -0
- package/dist/DebounceSelect/index.css.map +1 -0
- package/dist/DebounceSelect/index.d.ts +39 -0
- package/dist/DebounceSelect/index.js +4 -0
- package/dist/DebounceSelect/index.js.map +1 -0
- package/dist/DiffViewer/index.cjs +9 -0
- package/dist/DiffViewer/index.cjs.map +1 -0
- package/dist/DiffViewer/index.css +90 -0
- package/dist/DiffViewer/index.css.map +1 -0
- package/dist/DiffViewer/index.d.ts +21 -0
- package/dist/DiffViewer/index.js +3 -0
- package/dist/DiffViewer/index.js.map +1 -0
- package/dist/DisabledBox/index.cjs +10 -0
- package/dist/DisabledBox/index.cjs.map +1 -0
- package/dist/DisabledBox/index.css +35 -0
- package/dist/DisabledBox/index.css.map +1 -0
- package/dist/DisabledBox/index.d.ts +10 -0
- package/dist/DisabledBox/index.js +4 -0
- package/dist/DisabledBox/index.js.map +1 -0
- package/dist/DragSortList/index.cjs +9 -0
- package/dist/DragSortList/index.cjs.map +1 -0
- package/dist/DragSortList/index.css +44 -0
- package/dist/DragSortList/index.css.map +1 -0
- package/dist/DragSortList/index.d.ts +18 -0
- package/dist/DragSortList/index.js +3 -0
- package/dist/DragSortList/index.js.map +1 -0
- package/dist/DualRangeSlider/index.cjs +9 -0
- package/dist/DualRangeSlider/index.cjs.map +1 -0
- package/dist/DualRangeSlider/index.css +41 -0
- package/dist/DualRangeSlider/index.css.map +1 -0
- package/dist/DualRangeSlider/index.d.ts +22 -0
- package/dist/DualRangeSlider/index.js +3 -0
- package/dist/DualRangeSlider/index.js.map +1 -0
- package/dist/EnvBadge/index.cjs +9 -0
- package/dist/EnvBadge/index.cjs.map +1 -0
- package/dist/EnvBadge/index.css +123 -0
- package/dist/EnvBadge/index.css.map +1 -0
- package/dist/EnvBadge/index.d.ts +36 -0
- package/dist/EnvBadge/index.js +3 -0
- package/dist/EnvBadge/index.js.map +1 -0
- package/dist/FileDropZone/index.cjs +9 -0
- package/dist/FileDropZone/index.cjs.map +1 -0
- package/dist/FileDropZone/index.css +39 -0
- package/dist/FileDropZone/index.css.map +1 -0
- package/dist/FileDropZone/index.d.ts +20 -0
- package/dist/FileDropZone/index.js +3 -0
- package/dist/FileDropZone/index.js.map +1 -0
- package/dist/FilePreviewer/index.cjs +19 -0
- package/dist/FilePreviewer/index.cjs.map +1 -0
- package/dist/FilePreviewer/index.css +155 -0
- package/dist/FilePreviewer/index.css.map +1 -0
- package/dist/FilePreviewer/index.d.ts +38 -0
- package/dist/FilePreviewer/index.js +4 -0
- package/dist/FilePreviewer/index.js.map +1 -0
- package/dist/FilterChips/index.cjs +9 -0
- package/dist/FilterChips/index.cjs.map +1 -0
- package/dist/FilterChips/index.css +52 -0
- package/dist/FilterChips/index.css.map +1 -0
- package/dist/FilterChips/index.d.ts +23 -0
- package/dist/FilterChips/index.js +3 -0
- package/dist/FilterChips/index.js.map +1 -0
- package/dist/FlipCard/index.cjs +9 -0
- package/dist/FlipCard/index.cjs.map +1 -0
- package/dist/FlipCard/index.css +46 -0
- package/dist/FlipCard/index.css.map +1 -0
- package/dist/FlipCard/index.d.ts +28 -0
- package/dist/FlipCard/index.js +3 -0
- package/dist/FlipCard/index.js.map +1 -0
- package/dist/Fullscreen/index.cjs +10 -0
- package/dist/Fullscreen/index.cjs.map +1 -0
- package/dist/Fullscreen/index.css +112 -0
- package/dist/Fullscreen/index.css.map +1 -0
- package/dist/Fullscreen/index.d.ts +49 -0
- package/dist/Fullscreen/index.js +4 -0
- package/dist/Fullscreen/index.js.map +1 -0
- package/dist/GradientText/index.cjs +9 -0
- package/dist/GradientText/index.cjs.map +1 -0
- package/dist/GradientText/index.css +22 -0
- package/dist/GradientText/index.css.map +1 -0
- package/dist/GradientText/index.d.ts +18 -0
- package/dist/GradientText/index.js +3 -0
- package/dist/GradientText/index.js.map +1 -0
- package/dist/GuidedTour/index.cjs +10 -0
- package/dist/GuidedTour/index.cjs.map +1 -0
- package/dist/GuidedTour/index.css +105 -0
- package/dist/GuidedTour/index.css.map +1 -0
- package/dist/GuidedTour/index.d.ts +35 -0
- package/dist/GuidedTour/index.js +4 -0
- package/dist/GuidedTour/index.js.map +1 -0
- package/dist/HoverCard/index.cjs +9 -0
- package/dist/HoverCard/index.cjs.map +1 -0
- package/dist/HoverCard/index.css +31 -0
- package/dist/HoverCard/index.css.map +1 -0
- package/dist/HoverCard/index.d.ts +18 -0
- package/dist/HoverCard/index.js +3 -0
- package/dist/HoverCard/index.js.map +1 -0
- package/dist/ImageCropper/index.cjs +10 -0
- package/dist/ImageCropper/index.cjs.map +1 -0
- package/dist/ImageCropper/index.css +181 -0
- package/dist/ImageCropper/index.css.map +1 -0
- package/dist/ImageCropper/index.d.ts +45 -0
- package/dist/ImageCropper/index.js +4 -0
- package/dist/ImageCropper/index.js.map +1 -0
- package/dist/InfiniteScrollList/index.cjs +10 -0
- package/dist/InfiniteScrollList/index.cjs.map +1 -0
- package/dist/InfiniteScrollList/index.css +35 -0
- package/dist/InfiniteScrollList/index.css.map +1 -0
- package/dist/InfiniteScrollList/index.d.ts +28 -0
- package/dist/InfiniteScrollList/index.js +4 -0
- package/dist/InfiniteScrollList/index.js.map +1 -0
- package/dist/JsonDiffViewer/index.cjs +9 -0
- package/dist/JsonDiffViewer/index.cjs.map +1 -0
- package/dist/JsonDiffViewer/index.css +48 -0
- package/dist/JsonDiffViewer/index.css.map +1 -0
- package/dist/JsonDiffViewer/index.d.ts +14 -0
- package/dist/JsonDiffViewer/index.js +3 -0
- package/dist/JsonDiffViewer/index.js.map +1 -0
- package/dist/JsonEditor/index.cjs +11 -0
- package/dist/JsonEditor/index.cjs.map +1 -0
- package/dist/JsonEditor/index.css +230 -0
- package/dist/JsonEditor/index.css.map +1 -0
- package/dist/JsonEditor/index.d.ts +26 -0
- package/dist/JsonEditor/index.js +5 -0
- package/dist/JsonEditor/index.js.map +1 -0
- package/dist/JsonTree/index.cjs +9 -0
- package/dist/JsonTree/index.cjs.map +1 -0
- package/dist/JsonTree/index.css +58 -0
- package/dist/JsonTree/index.css.map +1 -0
- package/dist/JsonTree/index.d.ts +14 -0
- package/dist/JsonTree/index.js +3 -0
- package/dist/JsonTree/index.js.map +1 -0
- package/dist/KanbanBoard/index.cjs +9 -0
- package/dist/KanbanBoard/index.cjs.map +1 -0
- package/dist/KanbanBoard/index.css +80 -0
- package/dist/KanbanBoard/index.css.map +1 -0
- package/dist/KanbanBoard/index.d.ts +24 -0
- package/dist/KanbanBoard/index.js +3 -0
- package/dist/KanbanBoard/index.js.map +1 -0
- package/dist/KeyValEditor/index.cjs +10 -0
- package/dist/KeyValEditor/index.cjs.map +1 -0
- package/dist/KeyValEditor/index.css +72 -0
- package/dist/KeyValEditor/index.css.map +1 -0
- package/dist/KeyValEditor/index.d.ts +28 -0
- package/dist/KeyValEditor/index.js +4 -0
- package/dist/KeyValEditor/index.js.map +1 -0
- package/dist/Marquee/index.cjs +9 -0
- package/dist/Marquee/index.cjs.map +1 -0
- package/dist/Marquee/index.css +99 -0
- package/dist/Marquee/index.css.map +1 -0
- package/dist/Marquee/index.d.ts +27 -0
- package/dist/Marquee/index.js +3 -0
- package/dist/Marquee/index.js.map +1 -0
- package/dist/Masonry/index.cjs +9 -0
- package/dist/Masonry/index.cjs.map +1 -0
- package/dist/Masonry/index.css +15 -0
- package/dist/Masonry/index.css.map +1 -0
- package/dist/Masonry/index.d.ts +58 -0
- package/dist/Masonry/index.js +3 -0
- package/dist/Masonry/index.js.map +1 -0
- package/dist/MetricCard/index.cjs +10 -0
- package/dist/MetricCard/index.cjs.map +1 -0
- package/dist/MetricCard/index.css +105 -0
- package/dist/MetricCard/index.css.map +1 -0
- package/dist/MetricCard/index.d.ts +32 -0
- package/dist/MetricCard/index.js +4 -0
- package/dist/MetricCard/index.js.map +1 -0
- package/dist/MiniSparkline/index.cjs +9 -0
- package/dist/MiniSparkline/index.cjs.map +1 -0
- package/dist/MiniSparkline/index.css +11 -0
- package/dist/MiniSparkline/index.css.map +1 -0
- package/dist/MiniSparkline/index.d.ts +20 -0
- package/dist/MiniSparkline/index.js +3 -0
- package/dist/MiniSparkline/index.js.map +1 -0
- package/dist/NumberStepper/index.cjs +9 -0
- package/dist/NumberStepper/index.cjs.map +1 -0
- package/dist/NumberStepper/index.css +45 -0
- package/dist/NumberStepper/index.css.map +1 -0
- package/dist/NumberStepper/index.d.ts +24 -0
- package/dist/NumberStepper/index.js +3 -0
- package/dist/NumberStepper/index.js.map +1 -0
- package/dist/NumericRangeInput/index.cjs +9 -0
- package/dist/NumericRangeInput/index.cjs.map +1 -0
- package/dist/NumericRangeInput/index.css +87 -0
- package/dist/NumericRangeInput/index.css.map +1 -0
- package/dist/NumericRangeInput/index.d.ts +39 -0
- package/dist/NumericRangeInput/index.js +3 -0
- package/dist/NumericRangeInput/index.js.map +1 -0
- package/dist/PasswordStrength/index.cjs +19 -0
- package/dist/PasswordStrength/index.cjs.map +1 -0
- package/dist/PasswordStrength/index.css +66 -0
- package/dist/PasswordStrength/index.css.map +1 -0
- package/dist/PasswordStrength/index.d.ts +31 -0
- package/dist/PasswordStrength/index.js +4 -0
- package/dist/PasswordStrength/index.js.map +1 -0
- package/dist/PdfViewer/index.cjs +10 -0
- package/dist/PdfViewer/index.cjs.map +1 -0
- package/dist/PdfViewer/index.css +65 -0
- package/dist/PdfViewer/index.css.map +1 -0
- package/dist/PdfViewer/index.d.ts +20 -0
- package/dist/PdfViewer/index.js +4 -0
- package/dist/PdfViewer/index.js.map +1 -0
- package/dist/PhotoViewer/index.cjs +9 -0
- package/dist/PhotoViewer/index.cjs.map +1 -0
- package/dist/PhotoViewer/index.css +129 -0
- package/dist/PhotoViewer/index.css.map +1 -0
- package/dist/PhotoViewer/index.d.ts +23 -0
- package/dist/PhotoViewer/index.js +3 -0
- package/dist/PhotoViewer/index.js.map +1 -0
- package/dist/QrCodeCard/index.cjs +10 -0
- package/dist/QrCodeCard/index.cjs.map +1 -0
- package/dist/QrCodeCard/index.css +109 -0
- package/dist/QrCodeCard/index.css.map +1 -0
- package/dist/QrCodeCard/index.d.ts +27 -0
- package/dist/QrCodeCard/index.js +4 -0
- package/dist/QrCodeCard/index.js.map +1 -0
- package/dist/QuickDateRange/index.cjs +9 -0
- package/dist/QuickDateRange/index.cjs.map +1 -0
- package/dist/QuickDateRange/index.css +30 -0
- package/dist/QuickDateRange/index.css.map +1 -0
- package/dist/QuickDateRange/index.d.ts +22 -0
- package/dist/QuickDateRange/index.js +3 -0
- package/dist/QuickDateRange/index.js.map +1 -0
- package/dist/ScrollTracker/index.cjs +22 -0
- package/dist/ScrollTracker/index.cjs.map +1 -0
- package/dist/ScrollTracker/index.css +48 -0
- package/dist/ScrollTracker/index.css.map +1 -0
- package/dist/ScrollTracker/index.d.ts +37 -0
- package/dist/ScrollTracker/index.js +3 -0
- package/dist/ScrollTracker/index.js.map +1 -0
- package/dist/SegmentedProgress/index.cjs +9 -0
- package/dist/SegmentedProgress/index.cjs.map +1 -0
- package/dist/SegmentedProgress/index.css +42 -0
- package/dist/SegmentedProgress/index.css.map +1 -0
- package/dist/SegmentedProgress/index.d.ts +24 -0
- package/dist/SegmentedProgress/index.js +3 -0
- package/dist/SegmentedProgress/index.js.map +1 -0
- package/dist/SensitiveMask/index.cjs +20 -0
- package/dist/SensitiveMask/index.cjs.map +1 -0
- package/dist/SensitiveMask/index.css +149 -0
- package/dist/SensitiveMask/index.css.map +1 -0
- package/dist/SensitiveMask/index.d.ts +30 -0
- package/dist/SensitiveMask/index.js +5 -0
- package/dist/SensitiveMask/index.js.map +1 -0
- package/dist/ShimmerSkeleton/index.cjs +9 -0
- package/dist/ShimmerSkeleton/index.cjs.map +1 -0
- package/dist/ShimmerSkeleton/index.css +55 -0
- package/dist/ShimmerSkeleton/index.css.map +1 -0
- package/dist/ShimmerSkeleton/index.d.ts +19 -0
- package/dist/ShimmerSkeleton/index.js +3 -0
- package/dist/ShimmerSkeleton/index.js.map +1 -0
- package/dist/Splitter/index.cjs +10 -0
- package/dist/Splitter/index.cjs.map +1 -0
- package/dist/Splitter/index.d.ts +94 -0
- package/dist/Splitter/index.js +4 -0
- package/dist/Splitter/index.js.map +1 -0
- package/dist/SpotlightCard/index.cjs +9 -0
- package/dist/SpotlightCard/index.cjs.map +1 -0
- package/dist/SpotlightCard/index.css +34 -0
- package/dist/SpotlightCard/index.css.map +1 -0
- package/dist/SpotlightCard/index.d.ts +18 -0
- package/dist/SpotlightCard/index.js +3 -0
- package/dist/SpotlightCard/index.js.map +1 -0
- package/dist/StatusTimeline/index.cjs +9 -0
- package/dist/StatusTimeline/index.cjs.map +1 -0
- package/dist/StatusTimeline/index.css +111 -0
- package/dist/StatusTimeline/index.css.map +1 -0
- package/dist/StatusTimeline/index.d.ts +25 -0
- package/dist/StatusTimeline/index.js +3 -0
- package/dist/StatusTimeline/index.js.map +1 -0
- package/dist/TagInput/index.cjs +10 -0
- package/dist/TagInput/index.cjs.map +1 -0
- package/dist/TagInput/index.css +108 -0
- package/dist/TagInput/index.css.map +1 -0
- package/dist/TagInput/index.d.ts +32 -0
- package/dist/TagInput/index.js +4 -0
- package/dist/TagInput/index.js.map +1 -0
- package/dist/TextEllipsis/index.cjs +11 -0
- package/dist/TextEllipsis/index.cjs.map +1 -0
- package/dist/TextEllipsis/index.css +217 -0
- package/dist/TextEllipsis/index.css.map +1 -0
- package/dist/TextEllipsis/index.d.ts +34 -0
- package/dist/TextEllipsis/index.js +5 -0
- package/dist/TextEllipsis/index.js.map +1 -0
- package/dist/TiltCard/index.cjs +9 -0
- package/dist/TiltCard/index.cjs.map +1 -0
- package/dist/TiltCard/index.css +32 -0
- package/dist/TiltCard/index.css.map +1 -0
- package/dist/TiltCard/index.d.ts +20 -0
- package/dist/TiltCard/index.js +3 -0
- package/dist/TiltCard/index.js.map +1 -0
- package/dist/TreeFilterPanel/index.cjs +9 -0
- package/dist/TreeFilterPanel/index.cjs.map +1 -0
- package/dist/TreeFilterPanel/index.css +67 -0
- package/dist/TreeFilterPanel/index.css.map +1 -0
- package/dist/TreeFilterPanel/index.d.ts +27 -0
- package/dist/TreeFilterPanel/index.js +3 -0
- package/dist/TreeFilterPanel/index.js.map +1 -0
- package/dist/TreeTransfer/index.cjs +10 -0
- package/dist/TreeTransfer/index.cjs.map +1 -0
- package/dist/TreeTransfer/index.css +67 -0
- package/dist/TreeTransfer/index.css.map +1 -0
- package/dist/TreeTransfer/index.d.ts +27 -0
- package/dist/TreeTransfer/index.js +4 -0
- package/dist/TreeTransfer/index.js.map +1 -0
- package/dist/TrendIndicator/index.cjs +9 -0
- package/dist/TrendIndicator/index.cjs.map +1 -0
- package/dist/TrendIndicator/index.css +42 -0
- package/dist/TrendIndicator/index.css.map +1 -0
- package/dist/TrendIndicator/index.d.ts +22 -0
- package/dist/TrendIndicator/index.js +3 -0
- package/dist/TrendIndicator/index.js.map +1 -0
- package/dist/VideoPlayer/index.cjs +10 -0
- package/dist/VideoPlayer/index.cjs.map +1 -0
- package/dist/VideoPlayer/index.css +122 -0
- package/dist/VideoPlayer/index.css.map +1 -0
- package/dist/VideoPlayer/index.d.ts +24 -0
- package/dist/VideoPlayer/index.js +4 -0
- package/dist/VideoPlayer/index.js.map +1 -0
- package/dist/VirtualList/index.cjs +9 -0
- package/dist/VirtualList/index.cjs.map +1 -0
- package/dist/VirtualList/index.css +26 -0
- package/dist/VirtualList/index.css.map +1 -0
- package/dist/VirtualList/index.d.ts +22 -0
- package/dist/VirtualList/index.js +3 -0
- package/dist/VirtualList/index.js.map +1 -0
- package/dist/Watermark/index.cjs +9 -0
- package/dist/Watermark/index.cjs.map +1 -0
- package/dist/Watermark/index.css +24 -0
- package/dist/Watermark/index.css.map +1 -0
- package/dist/Watermark/index.d.ts +28 -0
- package/dist/Watermark/index.js +3 -0
- package/dist/Watermark/index.js.map +1 -0
- package/dist/chunk-24ND5WB7.cjs +69 -0
- package/dist/chunk-24ND5WB7.cjs.map +1 -0
- package/dist/chunk-2ARM7X7A.js +44 -0
- package/dist/chunk-2ARM7X7A.js.map +1 -0
- package/dist/chunk-2ORGQ2IY.js +153 -0
- package/dist/chunk-2ORGQ2IY.js.map +1 -0
- package/dist/chunk-3JJP4D5L.js +92 -0
- package/dist/chunk-3JJP4D5L.js.map +1 -0
- package/dist/chunk-4DUMEO5E.cjs +107 -0
- package/dist/chunk-4DUMEO5E.cjs.map +1 -0
- package/dist/chunk-4GQ3X7MG.cjs +241 -0
- package/dist/chunk-4GQ3X7MG.cjs.map +1 -0
- package/dist/chunk-4IBF4R3H.cjs +66 -0
- package/dist/chunk-4IBF4R3H.cjs.map +1 -0
- package/dist/chunk-4MRZVLM6.cjs +103 -0
- package/dist/chunk-4MRZVLM6.cjs.map +1 -0
- package/dist/chunk-4VGH44DT.js +69 -0
- package/dist/chunk-4VGH44DT.js.map +1 -0
- package/dist/chunk-4YPT2HUD.cjs +61 -0
- package/dist/chunk-4YPT2HUD.cjs.map +1 -0
- package/dist/chunk-5G3XVLJF.js +71 -0
- package/dist/chunk-5G3XVLJF.js.map +1 -0
- package/dist/chunk-5GCEQDBM.cjs +99 -0
- package/dist/chunk-5GCEQDBM.cjs.map +1 -0
- package/dist/chunk-5GOF5EZU.cjs +87 -0
- package/dist/chunk-5GOF5EZU.cjs.map +1 -0
- package/dist/chunk-5LA2NPLG.cjs +81 -0
- package/dist/chunk-5LA2NPLG.cjs.map +1 -0
- package/dist/chunk-5MQCVYVD.js +33 -0
- package/dist/chunk-5MQCVYVD.js.map +1 -0
- package/dist/chunk-5NI6HK5V.js +159 -0
- package/dist/chunk-5NI6HK5V.js.map +1 -0
- package/dist/chunk-5WHBZH44.cjs +127 -0
- package/dist/chunk-5WHBZH44.cjs.map +1 -0
- package/dist/chunk-5YQVSOHK.js +44 -0
- package/dist/chunk-5YQVSOHK.js.map +1 -0
- package/dist/chunk-62NPVN7T.js +229 -0
- package/dist/chunk-62NPVN7T.js.map +1 -0
- package/dist/chunk-6OKTK3AQ.cjs +108 -0
- package/dist/chunk-6OKTK3AQ.cjs.map +1 -0
- package/dist/chunk-6TKNFV4B.js +53 -0
- package/dist/chunk-6TKNFV4B.js.map +1 -0
- package/dist/chunk-7AKHSOSZ.js +134 -0
- package/dist/chunk-7AKHSOSZ.js.map +1 -0
- package/dist/chunk-7JLQOQJZ.cjs +106 -0
- package/dist/chunk-7JLQOQJZ.cjs.map +1 -0
- package/dist/chunk-7JRGQL63.js +59 -0
- package/dist/chunk-7JRGQL63.js.map +1 -0
- package/dist/chunk-A4LXKZQ5.js +80 -0
- package/dist/chunk-A4LXKZQ5.js.map +1 -0
- package/dist/chunk-AIIXJB34.js +125 -0
- package/dist/chunk-AIIXJB34.js.map +1 -0
- package/dist/chunk-AJIIY2QT.cjs +161 -0
- package/dist/chunk-AJIIY2QT.cjs.map +1 -0
- package/dist/chunk-AVSFSS7S.cjs +924 -0
- package/dist/chunk-AVSFSS7S.cjs.map +1 -0
- package/dist/chunk-AXHJC7FV.js +106 -0
- package/dist/chunk-AXHJC7FV.js.map +1 -0
- package/dist/chunk-B3HZIYQQ.cjs +46 -0
- package/dist/chunk-B3HZIYQQ.cjs.map +1 -0
- package/dist/chunk-B4VXFHER.js +63 -0
- package/dist/chunk-B4VXFHER.js.map +1 -0
- package/dist/chunk-BXFP7EAW.cjs +176 -0
- package/dist/chunk-BXFP7EAW.cjs.map +1 -0
- package/dist/chunk-C5B5Y4S2.cjs +292 -0
- package/dist/chunk-C5B5Y4S2.cjs.map +1 -0
- package/dist/chunk-D7ZE4NMX.cjs +30 -0
- package/dist/chunk-D7ZE4NMX.cjs.map +1 -0
- package/dist/chunk-DATPWEQK.cjs +73 -0
- package/dist/chunk-DATPWEQK.cjs.map +1 -0
- package/dist/chunk-DFHFXKR5.cjs +113 -0
- package/dist/chunk-DFHFXKR5.cjs.map +1 -0
- package/dist/chunk-DKTB6PKI.js +44 -0
- package/dist/chunk-DKTB6PKI.js.map +1 -0
- package/dist/chunk-DNRZCHZG.js +110 -0
- package/dist/chunk-DNRZCHZG.js.map +1 -0
- package/dist/chunk-EIFN6XMU.cjs +117 -0
- package/dist/chunk-EIFN6XMU.cjs.map +1 -0
- package/dist/chunk-EJNMH7ND.js +122 -0
- package/dist/chunk-EJNMH7ND.js.map +1 -0
- package/dist/chunk-ELI3LL3K.cjs +76 -0
- package/dist/chunk-ELI3LL3K.cjs.map +1 -0
- package/dist/chunk-EQ7S5SYM.js +67 -0
- package/dist/chunk-EQ7S5SYM.js.map +1 -0
- package/dist/chunk-ES3KKDLM.js +245 -0
- package/dist/chunk-ES3KKDLM.js.map +1 -0
- package/dist/chunk-F36V2QTN.js +28 -0
- package/dist/chunk-F36V2QTN.js.map +1 -0
- package/dist/chunk-F42Z33L7.cjs +103 -0
- package/dist/chunk-F42Z33L7.cjs.map +1 -0
- package/dist/chunk-F5X3V6A3.cjs +55 -0
- package/dist/chunk-F5X3V6A3.cjs.map +1 -0
- package/dist/chunk-FBOTWA6O.cjs +97 -0
- package/dist/chunk-FBOTWA6O.cjs.map +1 -0
- package/dist/chunk-FRGH3Q75.cjs +159 -0
- package/dist/chunk-FRGH3Q75.cjs.map +1 -0
- package/dist/chunk-FWRVCH7T.js +37 -0
- package/dist/chunk-FWRVCH7T.js.map +1 -0
- package/dist/chunk-FYFL4PFD.cjs +69 -0
- package/dist/chunk-FYFL4PFD.cjs.map +1 -0
- package/dist/chunk-G564WB32.cjs +57 -0
- package/dist/chunk-G564WB32.cjs.map +1 -0
- package/dist/chunk-GCMI5JGQ.cjs +126 -0
- package/dist/chunk-GCMI5JGQ.cjs.map +1 -0
- package/dist/chunk-GZCNFM6C.js +234 -0
- package/dist/chunk-GZCNFM6C.js.map +1 -0
- package/dist/chunk-H3AASAXK.cjs +82 -0
- package/dist/chunk-H3AASAXK.cjs.map +1 -0
- package/dist/chunk-H5VPBP7U.js +115 -0
- package/dist/chunk-H5VPBP7U.js.map +1 -0
- package/dist/chunk-HQ65GEM7.js +127 -0
- package/dist/chunk-HQ65GEM7.js.map +1 -0
- package/dist/chunk-HSYTBMLN.cjs +44 -0
- package/dist/chunk-HSYTBMLN.cjs.map +1 -0
- package/dist/chunk-HTA5EG6X.cjs +625 -0
- package/dist/chunk-HTA5EG6X.cjs.map +1 -0
- package/dist/chunk-I3HBI52O.js +67 -0
- package/dist/chunk-I3HBI52O.js.map +1 -0
- package/dist/chunk-IECISUOZ.js +920 -0
- package/dist/chunk-IECISUOZ.js.map +1 -0
- package/dist/chunk-IRU5E252.cjs +65 -0
- package/dist/chunk-IRU5E252.cjs.map +1 -0
- package/dist/chunk-IUR7SPDA.js +322 -0
- package/dist/chunk-IUR7SPDA.js.map +1 -0
- package/dist/chunk-J3IKUWXD.js +102 -0
- package/dist/chunk-J3IKUWXD.js.map +1 -0
- package/dist/chunk-JD4TEUIV.js +47 -0
- package/dist/chunk-JD4TEUIV.js.map +1 -0
- package/dist/chunk-K3JC52JH.cjs +49 -0
- package/dist/chunk-K3JC52JH.cjs.map +1 -0
- package/dist/chunk-K5FWY6HB.cjs +129 -0
- package/dist/chunk-K5FWY6HB.cjs.map +1 -0
- package/dist/chunk-KBBLTGIU.js +73 -0
- package/dist/chunk-KBBLTGIU.js.map +1 -0
- package/dist/chunk-KCXXUUWC.js +47 -0
- package/dist/chunk-KCXXUUWC.js.map +1 -0
- package/dist/chunk-KUW2ZR2A.cjs +183 -0
- package/dist/chunk-KUW2ZR2A.cjs.map +1 -0
- package/dist/chunk-L7ULSFW6.cjs +35 -0
- package/dist/chunk-L7ULSFW6.cjs.map +1 -0
- package/dist/chunk-LBEGRYTP.js +219 -0
- package/dist/chunk-LBEGRYTP.js.map +1 -0
- package/dist/chunk-N7IQ6LYD.cjs +71 -0
- package/dist/chunk-N7IQ6LYD.cjs.map +1 -0
- package/dist/chunk-NCNDJTOK.js +101 -0
- package/dist/chunk-NCNDJTOK.js.map +1 -0
- package/dist/chunk-NFC2C2TD.js +181 -0
- package/dist/chunk-NFC2C2TD.js.map +1 -0
- package/dist/chunk-NMYXVZQP.cjs +121 -0
- package/dist/chunk-NMYXVZQP.cjs.map +1 -0
- package/dist/chunk-NNS4YN3C.js +42 -0
- package/dist/chunk-NNS4YN3C.js.map +1 -0
- package/dist/chunk-ODV3XF5W.cjs +71 -0
- package/dist/chunk-ODV3XF5W.cjs.map +1 -0
- package/dist/chunk-OJEZ3TKT.js +119 -0
- package/dist/chunk-OJEZ3TKT.js.map +1 -0
- package/dist/chunk-OYRX4AY6.js +159 -0
- package/dist/chunk-OYRX4AY6.js.map +1 -0
- package/dist/chunk-PBPGBVQQ.cjs +98 -0
- package/dist/chunk-PBPGBVQQ.cjs.map +1 -0
- package/dist/chunk-PIIJVF5D.cjs +108 -0
- package/dist/chunk-PIIJVF5D.cjs.map +1 -0
- package/dist/chunk-PMNTOEXC.js +97 -0
- package/dist/chunk-PMNTOEXC.js.map +1 -0
- package/dist/chunk-PVKBGP6Q.js +174 -0
- package/dist/chunk-PVKBGP6Q.js.map +1 -0
- package/dist/chunk-Q4QF6UYX.cjs +520 -0
- package/dist/chunk-Q4QF6UYX.cjs.map +1 -0
- package/dist/chunk-QI7XQDFZ.cjs +221 -0
- package/dist/chunk-QI7XQDFZ.cjs.map +1 -0
- package/dist/chunk-QKSCFVN2.js +96 -0
- package/dist/chunk-QKSCFVN2.js.map +1 -0
- package/dist/chunk-R77VVMV5.cjs +328 -0
- package/dist/chunk-R77VVMV5.cjs.map +1 -0
- package/dist/chunk-R7CRWOHG.js +101 -0
- package/dist/chunk-R7CRWOHG.js.map +1 -0
- package/dist/chunk-RIR43PO3.js +69 -0
- package/dist/chunk-RIR43PO3.js.map +1 -0
- package/dist/chunk-RTAQSOVE.cjs +161 -0
- package/dist/chunk-RTAQSOVE.cjs.map +1 -0
- package/dist/chunk-RWZSTG6Q.cjs +131 -0
- package/dist/chunk-RWZSTG6Q.cjs.map +1 -0
- package/dist/chunk-SMVAHIBN.cjs +46 -0
- package/dist/chunk-SMVAHIBN.cjs.map +1 -0
- package/dist/chunk-TGSKTHTV.js +494 -0
- package/dist/chunk-TGSKTHTV.js.map +1 -0
- package/dist/chunk-TNKJCJ3U.cjs +94 -0
- package/dist/chunk-TNKJCJ3U.cjs.map +1 -0
- package/dist/chunk-U2TTRBES.js +286 -0
- package/dist/chunk-U2TTRBES.js.map +1 -0
- package/dist/chunk-UT5UXO44.js +125 -0
- package/dist/chunk-UT5UXO44.js.map +1 -0
- package/dist/chunk-VIJ3PXCW.cjs +104 -0
- package/dist/chunk-VIJ3PXCW.cjs.map +1 -0
- package/dist/chunk-VJM2XBHZ.cjs +31 -0
- package/dist/chunk-VJM2XBHZ.cjs.map +1 -0
- package/dist/chunk-VPHHGQWP.js +104 -0
- package/dist/chunk-VPHHGQWP.js.map +1 -0
- package/dist/chunk-VQKPZ4YE.cjs +251 -0
- package/dist/chunk-VQKPZ4YE.cjs.map +1 -0
- package/dist/chunk-VTANPKPT.js +71 -0
- package/dist/chunk-VTANPKPT.js.map +1 -0
- package/dist/chunk-W6BUNUQM.cjs +46 -0
- package/dist/chunk-W6BUNUQM.cjs.map +1 -0
- package/dist/chunk-WBN5SAY5.js +53 -0
- package/dist/chunk-WBN5SAY5.js.map +1 -0
- package/dist/chunk-WWL4VEPH.js +51 -0
- package/dist/chunk-WWL4VEPH.js.map +1 -0
- package/dist/chunk-WZ2GV4HA.js +49 -0
- package/dist/chunk-WZ2GV4HA.js.map +1 -0
- package/dist/chunk-X2F2DVMB.js +85 -0
- package/dist/chunk-X2F2DVMB.js.map +1 -0
- package/dist/chunk-X4MEHYWV.js +105 -0
- package/dist/chunk-X4MEHYWV.js.map +1 -0
- package/dist/chunk-X7EE5DXL.js +64 -0
- package/dist/chunk-X7EE5DXL.js.map +1 -0
- package/dist/chunk-XB3BT6BU.js +619 -0
- package/dist/chunk-XB3BT6BU.js.map +1 -0
- package/dist/chunk-XMBTKO5I.cjs +136 -0
- package/dist/chunk-XMBTKO5I.cjs.map +1 -0
- package/dist/chunk-XO6PBAAM.cjs +73 -0
- package/dist/chunk-XO6PBAAM.cjs.map +1 -0
- package/dist/chunk-XWHITF5V.cjs +31 -0
- package/dist/chunk-XWHITF5V.cjs.map +1 -0
- package/dist/chunk-XYJMP23P.cjs +159 -0
- package/dist/chunk-XYJMP23P.cjs.map +1 -0
- package/dist/chunk-Y7A3WQQN.js +79 -0
- package/dist/chunk-Y7A3WQQN.js.map +1 -0
- package/dist/chunk-YJESCN4Y.cjs +39 -0
- package/dist/chunk-YJESCN4Y.cjs.map +1 -0
- package/dist/chunk-YPVRTMX6.js +91 -0
- package/dist/chunk-YPVRTMX6.js.map +1 -0
- package/dist/chunk-YXTLWTY4.js +29 -0
- package/dist/chunk-YXTLWTY4.js.map +1 -0
- package/dist/chunk-Z5LFRNNJ.js +157 -0
- package/dist/chunk-Z5LFRNNJ.js.map +1 -0
- package/dist/chunk-ZAHKA2V2.js +106 -0
- package/dist/chunk-ZAHKA2V2.js.map +1 -0
- package/dist/chunk-ZFBLVX7E.cjs +51 -0
- package/dist/chunk-ZFBLVX7E.cjs.map +1 -0
- package/dist/chunk-ZGWBLJ6U.cjs +55 -0
- package/dist/chunk-ZGWBLJ6U.cjs.map +1 -0
- package/dist/chunk-ZLHNRKOQ.js +29 -0
- package/dist/chunk-ZLHNRKOQ.js.map +1 -0
- package/dist/chunk-ZQBEQK2I.cjs +231 -0
- package/dist/chunk-ZQBEQK2I.cjs.map +1 -0
- package/dist/chunk-ZSK74QFN.cjs +49 -0
- package/dist/chunk-ZSK74QFN.cjs.map +1 -0
- package/dist/index.cjs +334 -8233
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +36 -187
- package/dist/index.css.map +1 -1
- package/dist/index.js +63 -8155
- package/dist/index.js.map +1 -1
- package/dist/src/icons.d.ts +70 -0
- package/dist/src/index.d.ts +124 -0
- package/dist/tsup.config.d.ts +2 -0
- package/dist/vite.config.d.ts +2 -0
- package/package.json +17 -3
- package/dist/index.d.cts +0 -1704
- package/dist/index.d.ts +0 -1704
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { useState, useRef, useEffect } from 'react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
// FileDropZone/index.tsx
|
|
5
|
+
var FileDropZone = ({
|
|
6
|
+
onDropFiles,
|
|
7
|
+
accept,
|
|
8
|
+
multiple = true,
|
|
9
|
+
title = "\u70B9\u51FB\u6216\u5C06\u6587\u4EF6\u62D6\u62FD\u81F3\u6B64\u5904\u4E0A\u4F20",
|
|
10
|
+
hint = "\u652F\u6301\u62D6\u62FD\u6587\u4EF6\u6216\u76F4\u63A5\u6309 Ctrl+V / Cmd+V \u7C98\u8D34\u622A\u56FE",
|
|
11
|
+
className = "",
|
|
12
|
+
style
|
|
13
|
+
}) => {
|
|
14
|
+
const [isDragOver, setIsDragOver] = useState(false);
|
|
15
|
+
const inputRef = useRef(null);
|
|
16
|
+
const containerRef = useRef(null);
|
|
17
|
+
const handleFiles = (fileList) => {
|
|
18
|
+
if (!fileList || fileList.length === 0) return;
|
|
19
|
+
const files = Array.from(fileList);
|
|
20
|
+
onDropFiles(files);
|
|
21
|
+
};
|
|
22
|
+
const handleDragOver = (e) => {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
setIsDragOver(true);
|
|
25
|
+
};
|
|
26
|
+
const handleDragLeave = () => {
|
|
27
|
+
setIsDragOver(false);
|
|
28
|
+
};
|
|
29
|
+
const handleDrop = (e) => {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
setIsDragOver(false);
|
|
32
|
+
handleFiles(e.dataTransfer.files);
|
|
33
|
+
};
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const handlePaste = (e) => {
|
|
36
|
+
if (e.clipboardData && e.clipboardData.files.length > 0) {
|
|
37
|
+
handleFiles(e.clipboardData.files);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
window.addEventListener("paste", handlePaste);
|
|
41
|
+
return () => window.removeEventListener("paste", handlePaste);
|
|
42
|
+
}, []);
|
|
43
|
+
return /* @__PURE__ */ jsxs(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
ref: containerRef,
|
|
47
|
+
className: `rpc_file_dropzone ${isDragOver ? "rpc_file_dropzone_active" : ""} ${className}`,
|
|
48
|
+
style,
|
|
49
|
+
onClick: () => {
|
|
50
|
+
var _a;
|
|
51
|
+
return (_a = inputRef.current) == null ? void 0 : _a.click();
|
|
52
|
+
},
|
|
53
|
+
onDragOver: handleDragOver,
|
|
54
|
+
onDragLeave: handleDragLeave,
|
|
55
|
+
onDrop: handleDrop,
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx(
|
|
58
|
+
"input",
|
|
59
|
+
{
|
|
60
|
+
ref: inputRef,
|
|
61
|
+
type: "file",
|
|
62
|
+
accept,
|
|
63
|
+
multiple,
|
|
64
|
+
style: { display: "none" },
|
|
65
|
+
onChange: (e) => handleFiles(e.target.files)
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
/* @__PURE__ */ jsx("div", { className: "rpc_file_dropzone_icon", children: "\u{1F4E5}" }),
|
|
69
|
+
/* @__PURE__ */ jsx("div", { className: "rpc_file_dropzone_title", children: title }),
|
|
70
|
+
/* @__PURE__ */ jsx("div", { className: "rpc_file_dropzone_hint", children: hint })
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
var FileDropZone_default = FileDropZone;
|
|
76
|
+
|
|
77
|
+
export { FileDropZone_default };
|
|
78
|
+
//# sourceMappingURL=chunk-Y7A3WQQN.js.map
|
|
79
|
+
//# sourceMappingURL=chunk-Y7A3WQQN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../FileDropZone/index.tsx"],"names":[],"mappings":";;;;AAoBA,IAAM,eAA4C,CAAC;AAAA,EAClD,WAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA,GAAW,IAAA;AAAA,EACX,KAAA,GAAQ,gFAAA;AAAA,EACR,IAAA,GAAO,sGAAA;AAAA,EACP,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAkB,KAAK,CAAA;AAC3D,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAC9C,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAEhD,EAAA,MAAM,WAAA,GAAc,CAAC,QAAA,KAA8B;AAClD,IAAA,IAAI,CAAC,QAAA,IAAY,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AACxC,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAA;AACjC,IAAA,WAAA,CAAY,KAAK,CAAA;AAAA,EAClB,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAuB;AAC9C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,aAAA,CAAc,IAAI,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,MAAM,kBAAkB,MAAM;AAC7B,IAAA,aAAA,CAAc,KAAK,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,CAAA,KAAuB;AAC1C,IAAA,CAAA,CAAE,cAAA,EAAe;AACjB,IAAA,aAAA,CAAc,KAAK,CAAA;AACnB,IAAA,WAAA,CAAY,CAAA,CAAE,aAAa,KAAK,CAAA;AAAA,EACjC,CAAA;AAGA,EAAA,SAAA,CAAU,MAAM;AACf,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAsB;AAC1C,MAAA,IAAI,EAAE,aAAA,IAAiB,CAAA,CAAE,aAAA,CAAc,KAAA,CAAM,SAAS,CAAA,EAAG;AACxD,QAAA,WAAA,CAAY,CAAA,CAAE,cAAc,KAAK,CAAA;AAAA,MAClC;AAAA,IACD,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,SAAS,WAAW,CAAA;AAC5C,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,OAAA,EAAS,WAAW,CAAA;AAAA,EAC7D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACC,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,GAAA,EAAK,YAAA;AAAA,MACL,WAAW,CAAA,kBAAA,EAAqB,UAAA,GAAa,0BAAA,GAA6B,EAAE,IAAI,SAAS,CAAA,CAAA;AAAA,MACzF,KAAA;AAAA,MACA,SAAS,MAAG;AAtEf,QAAA,IAAA,EAAA;AAsEkB,QAAA,OAAA,CAAA,EAAA,GAAA,QAAA,CAAS,YAAT,IAAA,GAAA,MAAA,GAAA,EAAA,CAAkB,KAAA,EAAA;AAAA,MAAA,CAAA;AAAA,MACjC,UAAA,EAAY,cAAA;AAAA,MACZ,WAAA,EAAa,eAAA;AAAA,MACb,MAAA,EAAQ,UAAA;AAAA,MAER,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACA,GAAA,EAAK,QAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,MAAA;AAAA,YACA,QAAA;AAAA,YACA,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAO;AAAA,YACzB,UAAU,CAAC,CAAA,KAAM,WAAA,CAAY,CAAA,CAAE,OAAO,KAAK;AAAA;AAAA,SAC5C;AAAA,wBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,WAAA,EAAE,CAAA;AAAA,wBAC1C,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAChD,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EAA0B,QAAA,EAAA,IAAA,EAAK;AAAA;AAAA;AAAA,GAC/C;AAEF,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"chunk-Y7A3WQQN.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport './index.less';\n\nexport interface FileDropZoneProps {\n\t/** 文件选择/拖拽/粘贴回调 */\n\tonDropFiles: (files: File[]) => void;\n\t/** 允许的文件类型,例如 'image/*' 或 '.pdf,.png' */\n\taccept?: string;\n\t/** 是否支持多选,默认为 true */\n\tmultiple?: boolean;\n\t/** 提示标题,默认为 '点击或将文件拖拽至此处上传' */\n\ttitle?: ReactNode;\n\t/** 提示副标题,默认为 '支持拖拽文件或直接按 Ctrl+V 粘贴截图' */\n\thint?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst FileDropZone: React.FC<FileDropZoneProps> = ({\n\tonDropFiles,\n\taccept,\n\tmultiple = true,\n\ttitle = '点击或将文件拖拽至此处上传',\n\thint = '支持拖拽文件或直接按 Ctrl+V / Cmd+V 粘贴截图',\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [isDragOver, setIsDragOver] = useState<boolean>(false);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\n\tconst handleFiles = (fileList: FileList | null) => {\n\t\tif (!fileList || fileList.length === 0) return;\n\t\tconst files = Array.from(fileList);\n\t\tonDropFiles(files);\n\t};\n\n\tconst handleDragOver = (e: React.DragEvent) => {\n\t\te.preventDefault();\n\t\tsetIsDragOver(true);\n\t};\n\n\tconst handleDragLeave = () => {\n\t\tsetIsDragOver(false);\n\t};\n\n\tconst handleDrop = (e: React.DragEvent) => {\n\t\te.preventDefault();\n\t\tsetIsDragOver(false);\n\t\thandleFiles(e.dataTransfer.files);\n\t};\n\n\t// 监听剪贴板粘贴事件\n\tuseEffect(() => {\n\t\tconst handlePaste = (e: ClipboardEvent) => {\n\t\t\tif (e.clipboardData && e.clipboardData.files.length > 0) {\n\t\t\t\thandleFiles(e.clipboardData.files);\n\t\t\t}\n\t\t};\n\t\twindow.addEventListener('paste', handlePaste);\n\t\treturn () => window.removeEventListener('paste', handlePaste);\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tclassName={`rpc_file_dropzone ${isDragOver ? 'rpc_file_dropzone_active' : ''} ${className}`}\n\t\t\tstyle={style}\n\t\t\tonClick={() => inputRef.current?.click()}\n\t\t\tonDragOver={handleDragOver}\n\t\t\tonDragLeave={handleDragLeave}\n\t\t\tonDrop={handleDrop}\n\t\t>\n\t\t\t<input\n\t\t\t\tref={inputRef}\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept={accept}\n\t\t\t\tmultiple={multiple}\n\t\t\t\tstyle={{ display: 'none' }}\n\t\t\t\tonChange={(e) => handleFiles(e.target.files)}\n\t\t\t/>\n\n\t\t\t<div className=\"rpc_file_dropzone_icon\">📥</div>\n\t\t\t<div className=\"rpc_file_dropzone_title\">{title}</div>\n\t\t\t<div className=\"rpc_file_dropzone_hint\">{hint}</div>\n\t\t</div>\n\t);\n};\n\nexport default FileDropZone;\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
// CodeSnippet/index.tsx
|
|
7
|
+
var CodeSnippet = ({
|
|
8
|
+
code,
|
|
9
|
+
language = "bash",
|
|
10
|
+
className = "",
|
|
11
|
+
style
|
|
12
|
+
}) => {
|
|
13
|
+
const [copied, setCopied] = react.useState(false);
|
|
14
|
+
const handleCopy = async () => {
|
|
15
|
+
try {
|
|
16
|
+
await navigator.clipboard.writeText(code);
|
|
17
|
+
setCopied(true);
|
|
18
|
+
setTimeout(() => setCopied(false), 1500);
|
|
19
|
+
} catch (e) {
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rpc_code_snippet ${className}`, style, children: [
|
|
23
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_top_bar", children: [
|
|
24
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rpc_code_snippet_dots", children: [
|
|
25
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_red" }),
|
|
26
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_yellow" }),
|
|
27
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_dot rpc_code_snippet_dot_green" })
|
|
28
|
+
] }),
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rpc_code_snippet_lang", children: language }),
|
|
30
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "rpc_code_snippet_copy_btn", onClick: handleCopy, children: copied ? "\u2713 \u5DF2\u590D\u5236" : "\u590D\u5236" })
|
|
31
|
+
] }),
|
|
32
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "rpc_code_snippet_content", children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: code }) })
|
|
33
|
+
] });
|
|
34
|
+
};
|
|
35
|
+
var CodeSnippet_default = CodeSnippet;
|
|
36
|
+
|
|
37
|
+
exports.CodeSnippet_default = CodeSnippet_default;
|
|
38
|
+
//# sourceMappingURL=chunk-YJESCN4Y.cjs.map
|
|
39
|
+
//# sourceMappingURL=chunk-YJESCN4Y.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../CodeSnippet/index.tsx"],"names":["useState","jsxs","jsx"],"mappings":";;;;;;AAcA,IAAM,cAA0C,CAAC;AAAA,EAChD,IAAA;AAAA,EACA,QAAA,GAAW,MAAA;AAAA,EACX,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,eAAkB,KAAK,CAAA;AAEnD,EAAA,MAAM,aAAa,YAAY;AAC9B,IAAA,IAAI;AACH,MAAA,MAAM,SAAA,CAAU,SAAA,CAAU,SAAA,CAAU,IAAI,CAAA;AACxC,MAAA,SAAA,CAAU,IAAI,CAAA;AACd,MAAA,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,IAAI,CAAA;AAAA,IACxC,CAAA,CAAA,OAAQ,CAAA,EAAA;AAAA,IAER;AAAA,EACD,CAAA;AAEA,EAAA,uCACE,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,iBAAA,EAAoB,SAAS,IAAI,KAAA,EAChD,QAAA,EAAA;AAAA,oBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACd,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACd,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,WAAU,+CAAA,EAAgD,CAAA;AAAA,wBAChEA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kDAAA,EAAmD,CAAA;AAAA,wBACnEA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,iDAAA,EAAkD;AAAA,OAAA,EACnE,CAAA;AAAA,sBAEAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,sBAElDA,cAAA,CAAC,QAAA,EAAA,EAAO,IAAA,EAAK,QAAA,EAAS,SAAA,EAAU,6BAA4B,OAAA,EAAS,UAAA,EACnE,QAAA,EAAA,MAAA,GAAS,2BAAA,GAAU,cAAA,EACrB;AAAA,KAAA,EACD,CAAA;AAAA,mCAEC,KAAA,EAAA,EAAI,SAAA,EAAU,4BACd,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAM,gBAAK,CAAA,EACb;AAAA,GAAA,EACD,CAAA;AAEF,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"chunk-YJESCN4Y.cjs","sourcesContent":["import React, { useState, CSSProperties } from 'react';\nimport './index.less';\n\nexport interface CodeSnippetProps {\n\t/** 代码文本内容 */\n\tcode: string;\n\t/** 编程语言标识,默认为 'bash' */\n\tlanguage?: string;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst CodeSnippet: React.FC<CodeSnippetProps> = ({\n\tcode,\n\tlanguage = 'bash',\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [copied, setCopied] = useState<boolean>(false);\n\n\tconst handleCopy = async () => {\n\t\ttry {\n\t\t\tawait navigator.clipboard.writeText(code);\n\t\t\tsetCopied(true);\n\t\t\tsetTimeout(() => setCopied(false), 1500);\n\t\t} catch {\n\t\t\t// fallback\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={`rpc_code_snippet ${className}`} style={style}>\n\t\t\t<div className=\"rpc_code_snippet_top_bar\">\n\t\t\t\t<div className=\"rpc_code_snippet_dots\">\n\t\t\t\t\t<span className=\"rpc_code_snippet_dot rpc_code_snippet_dot_red\" />\n\t\t\t\t\t<span className=\"rpc_code_snippet_dot rpc_code_snippet_dot_yellow\" />\n\t\t\t\t\t<span className=\"rpc_code_snippet_dot rpc_code_snippet_dot_green\" />\n\t\t\t\t</div>\n\n\t\t\t\t<span className=\"rpc_code_snippet_lang\">{language}</span>\n\n\t\t\t\t<button type=\"button\" className=\"rpc_code_snippet_copy_btn\" onClick={handleCopy}>\n\t\t\t\t\t{copied ? '✓ 已复制' : '复制'}\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<pre className=\"rpc_code_snippet_content\">\n\t\t\t\t<code>{code}</code>\n\t\t\t</pre>\n\t\t</div>\n\t);\n};\n\nexport default CodeSnippet;\n"]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { CopyButton_default } from './chunk-UT5UXO44.js';
|
|
2
|
+
import React, { useState, useRef, useEffect } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var TextEllipsis = ({
|
|
6
|
+
children,
|
|
7
|
+
lines = 1,
|
|
8
|
+
expandable = false,
|
|
9
|
+
tooltip = "auto",
|
|
10
|
+
copyable = false,
|
|
11
|
+
prefix,
|
|
12
|
+
suffix,
|
|
13
|
+
className = "",
|
|
14
|
+
style
|
|
15
|
+
}) => {
|
|
16
|
+
var _a, _b, _c;
|
|
17
|
+
const expandConfig = typeof expandable === "object" ? expandable : {};
|
|
18
|
+
const [expanded, setExpanded] = useState(
|
|
19
|
+
(_a = expandConfig.defaultExpanded) != null ? _a : false
|
|
20
|
+
);
|
|
21
|
+
const [isOverflow, setIsOverflow] = useState(false);
|
|
22
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
23
|
+
const textRef = useRef(null);
|
|
24
|
+
const checkOverflow = () => {
|
|
25
|
+
const el = textRef.current;
|
|
26
|
+
if (!el) return;
|
|
27
|
+
if (lines === 1) {
|
|
28
|
+
setIsOverflow(el.scrollWidth > el.clientWidth);
|
|
29
|
+
} else {
|
|
30
|
+
setIsOverflow(el.scrollHeight > el.clientHeight);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
checkOverflow();
|
|
35
|
+
window.addEventListener("resize", checkOverflow);
|
|
36
|
+
return () => {
|
|
37
|
+
window.removeEventListener("resize", checkOverflow);
|
|
38
|
+
};
|
|
39
|
+
}, [children, lines, expanded]);
|
|
40
|
+
const handleToggleExpand = (e) => {
|
|
41
|
+
var _a2;
|
|
42
|
+
e.stopPropagation();
|
|
43
|
+
const nextState = !expanded;
|
|
44
|
+
setExpanded(nextState);
|
|
45
|
+
(_a2 = expandConfig.onExpandChange) == null ? void 0 : _a2.call(expandConfig, nextState);
|
|
46
|
+
};
|
|
47
|
+
const rawText = typeof children === "string" || typeof children === "number" ? String(children) : "";
|
|
48
|
+
const shouldShowTooltip = !expanded && (tooltip === true || tooltip === "auto" && isOverflow || typeof tooltip === "string" && tooltip.length > 0);
|
|
49
|
+
const tooltipText = typeof tooltip === "string" || React.isValidElement(tooltip) ? tooltip : rawText;
|
|
50
|
+
const collapsedBtnText = (_b = expandConfig.collapsedText) != null ? _b : "\u5C55\u5F00";
|
|
51
|
+
const expandedBtnText = (_c = expandConfig.expandedText) != null ? _c : "\u6536\u8D77";
|
|
52
|
+
const isSingleLine = lines <= 1;
|
|
53
|
+
return /* @__PURE__ */ jsxs(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
className: `rpc_text_ellipsis ${className}`,
|
|
57
|
+
style,
|
|
58
|
+
onMouseEnter: () => setIsHovered(true),
|
|
59
|
+
onMouseLeave: () => setIsHovered(false),
|
|
60
|
+
children: [
|
|
61
|
+
prefix && /* @__PURE__ */ jsx("span", { className: "rpc_text_ellipsis_prefix", children: prefix }),
|
|
62
|
+
/* @__PURE__ */ jsx(
|
|
63
|
+
"div",
|
|
64
|
+
{
|
|
65
|
+
ref: textRef,
|
|
66
|
+
className: `rpc_text_ellipsis_content_wrap ${expanded ? "rpc_text_ellipsis_expanded" : isSingleLine ? "rpc_text_ellipsis_single_line" : "rpc_text_ellipsis_multi_line"}`,
|
|
67
|
+
style: {
|
|
68
|
+
WebkitLineClamp: expanded ? void 0 : lines > 1 ? lines : void 0
|
|
69
|
+
},
|
|
70
|
+
children
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
expandable && (isOverflow || expanded) && /* @__PURE__ */ jsx("span", { className: "rpc_text_ellipsis_action_btn", onClick: handleToggleExpand, children: expanded ? expandedBtnText : collapsedBtnText }),
|
|
74
|
+
copyable && rawText && /* @__PURE__ */ jsx("span", { className: "rpc_text_ellipsis_suffix", children: /* @__PURE__ */ jsx(CopyButton_default, { mode: "icon", text: rawText, tooltip: false }) }),
|
|
75
|
+
suffix && /* @__PURE__ */ jsx("span", { className: "rpc_text_ellipsis_suffix", children: suffix }),
|
|
76
|
+
shouldShowTooltip && tooltipText && /* @__PURE__ */ jsx(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
className: `rpc_text_ellipsis_tooltip ${isHovered ? "rpc_text_ellipsis_tooltip_visible" : ""}`,
|
|
80
|
+
children: tooltipText
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
};
|
|
87
|
+
var TextEllipsis_default = TextEllipsis;
|
|
88
|
+
|
|
89
|
+
export { TextEllipsis_default };
|
|
90
|
+
//# sourceMappingURL=chunk-YPVRTMX6.js.map
|
|
91
|
+
//# sourceMappingURL=chunk-YPVRTMX6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../TextEllipsis/index.tsx"],"names":["_a"],"mappings":"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","file":"chunk-YPVRTMX6.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport CopyButton from '../CopyButton';\nimport './index.less';\n\nexport interface TextEllipsisExpandConfig {\n\t/** 展开按钮文案,默认为 '展开' */\n\tcollapsedText?: ReactNode;\n\t/** 收起按钮文案,默认为 '收起' */\n\texpandedText?: ReactNode;\n\t/** 默认是否展开 */\n\tdefaultExpanded?: boolean;\n\t/** 展开状态改变回调 */\n\tonExpandChange?: (expanded: boolean) => void;\n}\n\nexport interface TextEllipsisProps {\n\t/** 显示的文本或节点 */\n\tchildren: ReactNode;\n\t/** 最大显示行数,超过则截断,默认为 1 */\n\tlines?: number;\n\t/** 是否支持展开/收起,可传 boolean 或配置对象 */\n\texpandable?: boolean | TextEllipsisExpandConfig;\n\t/** Tooltip 浮层展示配置:'auto' 仅在溢出截断时展示、true 始终在 hover 时展示、false 禁用 */\n\ttooltip?: 'auto' | boolean | ReactNode;\n\t/** 是否显示复制按钮 */\n\tcopyable?: boolean;\n\t/** 前缀节点 */\n\tprefix?: ReactNode;\n\t/** 后缀节点 */\n\tsuffix?: ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst TextEllipsis: React.FC<TextEllipsisProps> = ({\n\tchildren,\n\tlines = 1,\n\texpandable = false,\n\ttooltip = 'auto',\n\tcopyable = false,\n\tprefix,\n\tsuffix,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst expandConfig = typeof expandable === 'object' ? expandable : {};\n\tconst [expanded, setExpanded] = useState<boolean>(\n\t\texpandConfig.defaultExpanded ?? false,\n\t);\n\tconst [isOverflow, setIsOverflow] = useState<boolean>(false);\n\tconst [isHovered, setIsHovered] = useState<boolean>(false);\n\tconst textRef = useRef<HTMLDivElement>(null);\n\n\t// 检测文本是否发生溢出截断\n\tconst checkOverflow = () => {\n\t\tconst el = textRef.current;\n\t\tif (!el) return;\n\t\tif (lines === 1) {\n\t\t\tsetIsOverflow(el.scrollWidth > el.clientWidth);\n\t\t} else {\n\t\t\tsetIsOverflow(el.scrollHeight > el.clientHeight);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tcheckOverflow();\n\t\twindow.addEventListener('resize', checkOverflow);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', checkOverflow);\n\t\t};\n\t}, [children, lines, expanded]);\n\n\tconst handleToggleExpand = (e: React.MouseEvent) => {\n\t\te.stopPropagation();\n\t\tconst nextState = !expanded;\n\t\tsetExpanded(nextState);\n\t\texpandConfig.onExpandChange?.(nextState);\n\t};\n\n\t// 提取纯文本用于复制和默认 Tooltip\n\tconst rawText = typeof children === 'string' || typeof children === 'number' ? String(children) : '';\n\n\t// 判断是否展示 Tooltip\n\tconst shouldShowTooltip =\n\t\t!expanded &&\n\t\t(tooltip === true || (tooltip === 'auto' && isOverflow) || (typeof tooltip === 'string' && tooltip.length > 0));\n\n\tconst tooltipText = typeof tooltip === 'string' || React.isValidElement(tooltip) ? tooltip : rawText;\n\n\tconst collapsedBtnText = expandConfig.collapsedText ?? '展开';\n\tconst expandedBtnText = expandConfig.expandedText ?? '收起';\n\n\tconst isSingleLine = lines <= 1;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`rpc_text_ellipsis ${className}`}\n\t\t\tstyle={style}\n\t\t\tonMouseEnter={() => setIsHovered(true)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t>\n\t\t\t{prefix && <span className=\"rpc_text_ellipsis_prefix\">{prefix}</span>}\n\n\t\t\t<div\n\t\t\t\tref={textRef}\n\t\t\t\tclassName={`rpc_text_ellipsis_content_wrap ${\n\t\t\t\t\texpanded\n\t\t\t\t\t\t? 'rpc_text_ellipsis_expanded'\n\t\t\t\t\t\t: isSingleLine\n\t\t\t\t\t\t\t? 'rpc_text_ellipsis_single_line'\n\t\t\t\t\t\t\t: 'rpc_text_ellipsis_multi_line'\n\t\t\t\t}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tWebkitLineClamp: expanded ? undefined : lines > 1 ? lines : undefined,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\n\t\t\t{expandable && (isOverflow || expanded) && (\n\t\t\t\t<span className=\"rpc_text_ellipsis_action_btn\" onClick={handleToggleExpand}>\n\t\t\t\t\t{expanded ? expandedBtnText : collapsedBtnText}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{copyable && rawText && (\n\t\t\t\t<span className=\"rpc_text_ellipsis_suffix\">\n\t\t\t\t\t<CopyButton mode=\"icon\" text={rawText} tooltip={false} />\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{suffix && <span className=\"rpc_text_ellipsis_suffix\">{suffix}</span>}\n\n\t\t\t{shouldShowTooltip && tooltipText && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={`rpc_text_ellipsis_tooltip ${\n\t\t\t\t\t\tisHovered ? 'rpc_text_ellipsis_tooltip_visible' : ''\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t{tooltipText}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default TextEllipsis;\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// FilterChips/index.tsx
|
|
4
|
+
var FilterChips = ({
|
|
5
|
+
chips = [],
|
|
6
|
+
onRemove,
|
|
7
|
+
onClearAll,
|
|
8
|
+
clearText = "\u6E05\u7A7A\u7B5B\u9009",
|
|
9
|
+
className = "",
|
|
10
|
+
style
|
|
11
|
+
}) => {
|
|
12
|
+
if (chips.length === 0) return null;
|
|
13
|
+
return /* @__PURE__ */ jsxs("div", { className: `rpc_filter_chips ${className}`, style, children: [
|
|
14
|
+
chips.map((chip) => /* @__PURE__ */ jsxs("span", { className: "rpc_filter_chips_chip", children: [
|
|
15
|
+
/* @__PURE__ */ jsxs("span", { className: "rpc_filter_chips_label", children: [
|
|
16
|
+
chip.label,
|
|
17
|
+
":"
|
|
18
|
+
] }),
|
|
19
|
+
/* @__PURE__ */ jsx("span", { className: "rpc_filter_chips_val", children: chip.value }),
|
|
20
|
+
/* @__PURE__ */ jsx("span", { className: "rpc_filter_chips_close", onClick: () => onRemove == null ? void 0 : onRemove(chip.id), children: "\u2715" })
|
|
21
|
+
] }, chip.id)),
|
|
22
|
+
onClearAll && /* @__PURE__ */ jsx("button", { type: "button", className: "rpc_filter_chips_clear_all", onClick: onClearAll, children: clearText })
|
|
23
|
+
] });
|
|
24
|
+
};
|
|
25
|
+
var FilterChips_default = FilterChips;
|
|
26
|
+
|
|
27
|
+
export { FilterChips_default };
|
|
28
|
+
//# sourceMappingURL=chunk-YXTLWTY4.js.map
|
|
29
|
+
//# sourceMappingURL=chunk-YXTLWTY4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../FilterChips/index.tsx"],"names":[],"mappings":";;;AAwBA,IAAM,cAA0C,CAAC;AAAA,EAChD,QAAQ,EAAC;AAAA,EACT,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,0BAAA;AAAA,EACZ,SAAA,GAAY,EAAA;AAAA,EACZ;AACD,CAAA,KAAM;AACL,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,EAAA,4BACE,KAAA,EAAA,EAAI,SAAA,EAAW,CAAA,iBAAA,EAAoB,SAAS,IAAI,KAAA,EAC/C,QAAA,EAAA;AAAA,IAAA,KAAA,CAAM,IAAI,CAAC,IAAA,qBACX,IAAA,CAAC,MAAA,EAAA,EAAmB,WAAU,uBAAA,EAC7B,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,wBAAA,EAA0B,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,QAAM;AAAA,OAAA,EAAC,CAAA;AAAA,sBACtD,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EAAwB,eAAK,KAAA,EAAM,CAAA;AAAA,sBACnD,GAAA,CAAC,UAAK,SAAA,EAAU,wBAAA,EAAyB,SAAS,MAAM,QAAA,IAAA,IAAA,GAAA,MAAA,GAAA,QAAA,CAAW,IAAA,CAAK,EAAA,CAAA,EAAK,QAAA,EAAA,QAAA,EAE7E;AAAA,KAAA,EAAA,EALU,IAAA,CAAK,EAMhB,CACA,CAAA;AAAA,IAEA,UAAA,wBACC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,SAAA,EAAU,4BAAA,EAA6B,OAAA,EAAS,UAAA,EACpE,QAAA,EAAA,SAAA,EACF;AAAA,GAAA,EAEF,CAAA;AAEF,CAAA;AAEA,IAAO,mBAAA,GAAQ","file":"chunk-YXTLWTY4.js","sourcesContent":["import React, { CSSProperties } from 'react';\nimport './index.less';\n\nexport interface FilterChipItem {\n\tid: string;\n\tlabel: string;\n\tvalue: string;\n}\n\nexport interface FilterChipsProps {\n\t/** 筛选胶囊列表 */\n\tchips: FilterChipItem[];\n\t/** 单项删除回调 */\n\tonRemove?: (id: string) => void;\n\t/** 全部清空回调 */\n\tonClearAll?: () => void;\n\t/** 清空按钮文案,默认为 '清空筛选' */\n\tclearText?: string;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst FilterChips: React.FC<FilterChipsProps> = ({\n\tchips = [],\n\tonRemove,\n\tonClearAll,\n\tclearText = '清空筛选',\n\tclassName = '',\n\tstyle,\n}) => {\n\tif (chips.length === 0) return null;\n\n\treturn (\n\t\t<div className={`rpc_filter_chips ${className}`} style={style}>\n\t\t\t{chips.map((chip) => (\n\t\t\t\t<span key={chip.id} className=\"rpc_filter_chips_chip\">\n\t\t\t\t\t<span className=\"rpc_filter_chips_label\">{chip.label}:</span>\n\t\t\t\t\t<span className=\"rpc_filter_chips_val\">{chip.value}</span>\n\t\t\t\t\t<span className=\"rpc_filter_chips_close\" onClick={() => onRemove?.(chip.id)}>\n\t\t\t\t\t\t✕\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t))}\n\n\t\t\t{onClearAll && (\n\t\t\t\t<button type=\"button\" className=\"rpc_filter_chips_clear_all\" onClick={onClearAll}>\n\t\t\t\t\t{clearText}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default FilterChips;\n"]}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { CloseOutlined } from './chunk-TGSKTHTV.js';
|
|
2
|
+
import { useState, useRef } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var TagInput = ({
|
|
6
|
+
value: controlledValue,
|
|
7
|
+
defaultValue = [],
|
|
8
|
+
onChange,
|
|
9
|
+
maxCount,
|
|
10
|
+
maxLength,
|
|
11
|
+
allowDuplicates = false,
|
|
12
|
+
separators = ["Enter", ",", "\uFF0C"],
|
|
13
|
+
validate,
|
|
14
|
+
placeholder = "\u8F93\u5165\u6807\u7B7E\u540E\u6309\u56DE\u8F66...",
|
|
15
|
+
disabled = false,
|
|
16
|
+
renderTag,
|
|
17
|
+
className = "",
|
|
18
|
+
style
|
|
19
|
+
}) => {
|
|
20
|
+
const [internalTags, setInternalTags] = useState(defaultValue);
|
|
21
|
+
const tags = controlledValue !== void 0 ? controlledValue : internalTags;
|
|
22
|
+
const [inputValue, setInputValue] = useState("");
|
|
23
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
24
|
+
const [errorMessage, setErrorMessage] = useState("");
|
|
25
|
+
const inputRef = useRef(null);
|
|
26
|
+
const containerRef = useRef(null);
|
|
27
|
+
const addTag = (text) => {
|
|
28
|
+
const trimmed = text.trim();
|
|
29
|
+
if (!trimmed) return;
|
|
30
|
+
if (maxCount !== void 0 && tags.length >= maxCount) {
|
|
31
|
+
setErrorMessage(`\u6700\u591A\u53EA\u80FD\u6DFB\u52A0 ${maxCount} \u4E2A\u6807\u7B7E`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!allowDuplicates && tags.includes(trimmed)) {
|
|
35
|
+
setErrorMessage(`\u6807\u7B7E "${trimmed}" \u5DF2\u5B58\u5728`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (validate) {
|
|
39
|
+
const res = validate(trimmed);
|
|
40
|
+
if (typeof res === "string") {
|
|
41
|
+
setErrorMessage(res);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (res === false) {
|
|
45
|
+
setErrorMessage(`\u6807\u7B7E "${trimmed}" \u683C\u5F0F\u4E0D\u5408\u6CD5`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const nextTags = [...tags, trimmed];
|
|
50
|
+
if (controlledValue === void 0) {
|
|
51
|
+
setInternalTags(nextTags);
|
|
52
|
+
}
|
|
53
|
+
onChange == null ? void 0 : onChange(nextTags);
|
|
54
|
+
setInputValue("");
|
|
55
|
+
setErrorMessage("");
|
|
56
|
+
};
|
|
57
|
+
const removeTag = (index) => {
|
|
58
|
+
if (disabled) return;
|
|
59
|
+
const nextTags = tags.filter((_, i) => i !== index);
|
|
60
|
+
if (controlledValue === void 0) {
|
|
61
|
+
setInternalTags(nextTags);
|
|
62
|
+
}
|
|
63
|
+
onChange == null ? void 0 : onChange(nextTags);
|
|
64
|
+
setErrorMessage("");
|
|
65
|
+
};
|
|
66
|
+
const handleKeyDown = (e) => {
|
|
67
|
+
if (disabled) return;
|
|
68
|
+
if (separators.includes(e.key)) {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
addTag(inputValue);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (e.key === "Backspace" && !inputValue && tags.length > 0) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
removeTag(tags.length - 1);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const handleBlur = () => {
|
|
79
|
+
setIsFocused(false);
|
|
80
|
+
if (inputValue.trim()) {
|
|
81
|
+
addTag(inputValue);
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
const handleDoubleClick = (index, tag) => {
|
|
85
|
+
var _a;
|
|
86
|
+
if (disabled) return;
|
|
87
|
+
removeTag(index);
|
|
88
|
+
setInputValue(tag);
|
|
89
|
+
(_a = inputRef.current) == null ? void 0 : _a.focus();
|
|
90
|
+
};
|
|
91
|
+
return /* @__PURE__ */ jsxs(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
ref: containerRef,
|
|
95
|
+
className: `rpc_tag_input ${isFocused ? "rpc_tag_input_focused" : ""} ${disabled ? "rpc_tag_input_disabled" : ""} ${errorMessage ? "rpc_tag_input_error" : ""} ${className}`,
|
|
96
|
+
style,
|
|
97
|
+
onClick: () => {
|
|
98
|
+
var _a;
|
|
99
|
+
if (!disabled) (_a = inputRef.current) == null ? void 0 : _a.focus();
|
|
100
|
+
},
|
|
101
|
+
children: [
|
|
102
|
+
tags.map((tag, idx) => {
|
|
103
|
+
if (renderTag) {
|
|
104
|
+
return renderTag(tag, idx, () => removeTag(idx));
|
|
105
|
+
}
|
|
106
|
+
return /* @__PURE__ */ jsxs(
|
|
107
|
+
"span",
|
|
108
|
+
{
|
|
109
|
+
className: "rpc_tag_input_tag",
|
|
110
|
+
onDoubleClick: () => handleDoubleClick(idx, tag),
|
|
111
|
+
title: "\u53CC\u51FB\u53EF\u91CD\u65B0\u7F16\u8F91",
|
|
112
|
+
children: [
|
|
113
|
+
/* @__PURE__ */ jsx("span", { children: tag }),
|
|
114
|
+
!disabled && /* @__PURE__ */ jsx(
|
|
115
|
+
CloseOutlined,
|
|
116
|
+
{
|
|
117
|
+
className: "rpc_tag_input_tag_close",
|
|
118
|
+
onClick: (e) => {
|
|
119
|
+
e.stopPropagation();
|
|
120
|
+
removeTag(idx);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
idx
|
|
127
|
+
);
|
|
128
|
+
}),
|
|
129
|
+
(!maxCount || tags.length < maxCount) && /* @__PURE__ */ jsx(
|
|
130
|
+
"input",
|
|
131
|
+
{
|
|
132
|
+
ref: inputRef,
|
|
133
|
+
type: "text",
|
|
134
|
+
value: inputValue,
|
|
135
|
+
maxLength,
|
|
136
|
+
disabled,
|
|
137
|
+
className: "rpc_tag_input_input",
|
|
138
|
+
placeholder: tags.length === 0 ? placeholder : "",
|
|
139
|
+
onChange: (e) => {
|
|
140
|
+
setInputValue(e.target.value);
|
|
141
|
+
if (errorMessage) setErrorMessage("");
|
|
142
|
+
},
|
|
143
|
+
onKeyDown: handleKeyDown,
|
|
144
|
+
onFocus: () => setIsFocused(true),
|
|
145
|
+
onBlur: handleBlur
|
|
146
|
+
}
|
|
147
|
+
),
|
|
148
|
+
errorMessage && /* @__PURE__ */ jsx("div", { className: "rpc_tag_input_error_tip", children: errorMessage })
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
};
|
|
153
|
+
var TagInput_default = TagInput;
|
|
154
|
+
|
|
155
|
+
export { TagInput_default };
|
|
156
|
+
//# sourceMappingURL=chunk-Z5LFRNNJ.js.map
|
|
157
|
+
//# sourceMappingURL=chunk-Z5LFRNNJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../TagInput/index.tsx"],"names":[],"mappings":"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","file":"chunk-Z5LFRNNJ.js","sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, CSSProperties } from 'react';\nimport { CloseOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface TagInputProps {\n\t/** 标签列表(受控) */\n\tvalue?: string[];\n\t/** 默认标签列表 */\n\tdefaultValue?: string[];\n\t/** 标签列表改变回调 */\n\tonChange?: (tags: string[]) => void;\n\t/** 最大允许输入的标签数量 */\n\tmaxCount?: number;\n\t/** 单个标签的最大字符长度 */\n\tmaxLength?: number;\n\t/** 是否允许重复标签,默认为 false */\n\tallowDuplicates?: boolean;\n\t/** 触发添加标签的按键/分隔符,默认为 ['Enter', ',', ','] */\n\tseparators?: string[];\n\t/** 标签自定义校验函数(返回 true 通过,返回 false 或 string 报错) */\n\tvalidate?: (tag: string) => boolean | string;\n\t/** 占位提示文案 */\n\tplaceholder?: string;\n\t/** 是否禁用 */\n\tdisabled?: boolean;\n\t/** 自定义渲染单个 Tag */\n\trenderTag?: (tag: string, index: number, onClose: () => void) => ReactNode;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst TagInput: React.FC<TagInputProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = [],\n\tonChange,\n\tmaxCount,\n\tmaxLength,\n\tallowDuplicates = false,\n\tseparators = ['Enter', ',', ','],\n\tvalidate,\n\tplaceholder = '输入标签后按回车...',\n\tdisabled = false,\n\trenderTag,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalTags, setInternalTags] = useState<string[]>(defaultValue);\n\tconst tags = controlledValue !== undefined ? controlledValue : internalTags;\n\n\tconst [inputValue, setInputValue] = useState<string>('');\n\tconst [isFocused, setIsFocused] = useState<boolean>(false);\n\tconst [errorMessage, setErrorMessage] = useState<string>('');\n\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\n\t// 添加 Tag\n\tconst addTag = (text: string) => {\n\t\tconst trimmed = text.trim();\n\t\tif (!trimmed) return;\n\n\t\tif (maxCount !== undefined && tags.length >= maxCount) {\n\t\t\tsetErrorMessage(`最多只能添加 ${maxCount} 个标签`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!allowDuplicates && tags.includes(trimmed)) {\n\t\t\tsetErrorMessage(`标签 \"${trimmed}\" 已存在`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (validate) {\n\t\t\tconst res = validate(trimmed);\n\t\t\tif (typeof res === 'string') {\n\t\t\t\tsetErrorMessage(res);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (res === false) {\n\t\t\t\tsetErrorMessage(`标签 \"${trimmed}\" 格式不合法`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst nextTags = [...tags, trimmed];\n\t\tif (controlledValue === undefined) {\n\t\t\tsetInternalTags(nextTags);\n\t\t}\n\t\tonChange?.(nextTags);\n\t\tsetInputValue('');\n\t\tsetErrorMessage('');\n\t};\n\n\t// 删除 Tag\n\tconst removeTag = (index: number) => {\n\t\tif (disabled) return;\n\t\tconst nextTags = tags.filter((_, i) => i !== index);\n\t\tif (controlledValue === undefined) {\n\t\t\tsetInternalTags(nextTags);\n\t\t}\n\t\tonChange?.(nextTags);\n\t\tsetErrorMessage('');\n\t};\n\n\t// 键盘事件处理\n\tconst handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (disabled) return;\n\n\t\t// 分隔符触发添加\n\t\tif (separators.includes(e.key)) {\n\t\t\te.preventDefault();\n\t\t\taddTag(inputValue);\n\t\t\treturn;\n\t\t}\n\n\t\t// 退格键删除最后一个 Tag\n\t\tif (e.key === 'Backspace' && !inputValue && tags.length > 0) {\n\t\t\te.preventDefault();\n\t\t\tremoveTag(tags.length - 1);\n\t\t}\n\t};\n\n\t// 失去焦点时添加\n\tconst handleBlur = () => {\n\t\tsetIsFocused(false);\n\t\tif (inputValue.trim()) {\n\t\t\taddTag(inputValue);\n\t\t}\n\t};\n\n\t// 双击编辑 Tag\n\tconst handleDoubleClick = (index: number, tag: string) => {\n\t\tif (disabled) return;\n\t\tremoveTag(index);\n\t\tsetInputValue(tag);\n\t\tinputRef.current?.focus();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tclassName={`rpc_tag_input ${isFocused ? 'rpc_tag_input_focused' : ''} ${\n\t\t\t\tdisabled ? 'rpc_tag_input_disabled' : ''\n\t\t\t} ${errorMessage ? 'rpc_tag_input_error' : ''} ${className}`}\n\t\t\tstyle={style}\n\t\t\tonClick={() => {\n\t\t\t\tif (!disabled) inputRef.current?.focus();\n\t\t\t}}\n\t\t>\n\t\t\t{tags.map((tag, idx) => {\n\t\t\t\tif (renderTag) {\n\t\t\t\t\treturn renderTag(tag, idx, () => removeTag(idx));\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<span\n\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\tclassName=\"rpc_tag_input_tag\"\n\t\t\t\t\t\tonDoubleClick={() => handleDoubleClick(idx, tag)}\n\t\t\t\t\t\ttitle=\"双击可重新编辑\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>{tag}</span>\n\t\t\t\t\t\t{!disabled && (\n\t\t\t\t\t\t\t<CloseOutlined\n\t\t\t\t\t\t\t\tclassName=\"rpc_tag_input_tag_close\"\n\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\tremoveTag(idx);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t{(!maxCount || tags.length < maxCount) && (\n\t\t\t\t<input\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\tmaxLength={maxLength}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tclassName=\"rpc_tag_input_input\"\n\t\t\t\t\tplaceholder={tags.length === 0 ? placeholder : ''}\n\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\tsetInputValue(e.target.value);\n\t\t\t\t\t\tif (errorMessage) setErrorMessage('');\n\t\t\t\t\t}}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tonFocus={() => setIsFocused(true)}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t{errorMessage && <div className=\"rpc_tag_input_error_tip\">{errorMessage}</div>}\n\t\t</div>\n\t);\n};\n\nexport default TagInput;\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { EyeOutlined, EyeInvisibleOutlined, CloseOutlined } from './chunk-TGSKTHTV.js';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var KeyValEditor = ({
|
|
6
|
+
value: controlledValue,
|
|
7
|
+
defaultValue = [{ key: "", value: "", enabled: true }],
|
|
8
|
+
onChange,
|
|
9
|
+
keyPlaceholder = "Key \u952E\u540D",
|
|
10
|
+
valPlaceholder = "Value \u952E\u503C",
|
|
11
|
+
allowSecret = true,
|
|
12
|
+
className = "",
|
|
13
|
+
style
|
|
14
|
+
}) => {
|
|
15
|
+
const [internalVal, setInternalVal] = useState(defaultValue);
|
|
16
|
+
const items = controlledValue !== void 0 ? controlledValue : internalVal;
|
|
17
|
+
const [visibleSecrets, setVisibleSecrets] = useState({});
|
|
18
|
+
const triggerChange = (newItems) => {
|
|
19
|
+
if (controlledValue === void 0) setInternalVal(newItems);
|
|
20
|
+
onChange == null ? void 0 : onChange(newItems);
|
|
21
|
+
};
|
|
22
|
+
const handleItemChange = (index, field, val) => {
|
|
23
|
+
const next = items.map((item, i) => i === index ? { ...item, [field]: val } : item);
|
|
24
|
+
triggerChange(next);
|
|
25
|
+
};
|
|
26
|
+
const handleAdd = () => {
|
|
27
|
+
triggerChange([...items, { key: "", value: "", enabled: true }]);
|
|
28
|
+
};
|
|
29
|
+
const handleDelete = (index) => {
|
|
30
|
+
triggerChange(items.filter((_, i) => i !== index));
|
|
31
|
+
};
|
|
32
|
+
const toggleSecretVisibility = (index) => {
|
|
33
|
+
setVisibleSecrets((prev) => ({ ...prev, [index]: !prev[index] }));
|
|
34
|
+
};
|
|
35
|
+
return /* @__PURE__ */ jsxs("div", { className: `rpc_key_val_editor ${className}`, style, children: [
|
|
36
|
+
items.map((item, index) => {
|
|
37
|
+
const isSecret = item.isSecret && !visibleSecrets[index];
|
|
38
|
+
return /* @__PURE__ */ jsxs("div", { className: "rpc_key_val_editor_row", children: [
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
"input",
|
|
41
|
+
{
|
|
42
|
+
type: "checkbox",
|
|
43
|
+
checked: item.enabled !== false,
|
|
44
|
+
onChange: (e) => handleItemChange(index, "enabled", e.target.checked),
|
|
45
|
+
className: "rpc_key_val_editor_checkbox",
|
|
46
|
+
title: "\u542F\u7528/\u7981\u7528\u6B64\u6761\u76EE"
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
"input",
|
|
51
|
+
{
|
|
52
|
+
type: "text",
|
|
53
|
+
placeholder: keyPlaceholder,
|
|
54
|
+
value: item.key,
|
|
55
|
+
disabled: item.enabled === false,
|
|
56
|
+
onChange: (e) => handleItemChange(index, "key", e.target.value),
|
|
57
|
+
className: "rpc_key_val_editor_input"
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx(
|
|
61
|
+
"input",
|
|
62
|
+
{
|
|
63
|
+
type: isSecret ? "password" : "text",
|
|
64
|
+
placeholder: valPlaceholder,
|
|
65
|
+
value: item.value,
|
|
66
|
+
disabled: item.enabled === false,
|
|
67
|
+
onChange: (e) => handleItemChange(index, "value", e.target.value),
|
|
68
|
+
className: "rpc_key_val_editor_input"
|
|
69
|
+
}
|
|
70
|
+
),
|
|
71
|
+
allowSecret && /* @__PURE__ */ jsx(
|
|
72
|
+
"button",
|
|
73
|
+
{
|
|
74
|
+
type: "button",
|
|
75
|
+
className: "rpc_key_val_editor_btn_icon",
|
|
76
|
+
onClick: () => {
|
|
77
|
+
if (!item.isSecret) {
|
|
78
|
+
handleItemChange(index, "isSecret", true);
|
|
79
|
+
} else {
|
|
80
|
+
toggleSecretVisibility(index);
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
title: item.isSecret ? "\u5207\u6362\u663E\u793A/\u9690\u85CF" : "\u8BBE\u4E3A\u654F\u611F\u5BC6\u7801",
|
|
84
|
+
children: item.isSecret ? visibleSecrets[index] ? /* @__PURE__ */ jsx(EyeOutlined, {}) : /* @__PURE__ */ jsx(EyeInvisibleOutlined, {}) : /* @__PURE__ */ jsx("span", { style: { fontSize: 11, color: "#8c8c8c" }, children: "\u{1F512}" })
|
|
85
|
+
}
|
|
86
|
+
),
|
|
87
|
+
/* @__PURE__ */ jsx(
|
|
88
|
+
"button",
|
|
89
|
+
{
|
|
90
|
+
type: "button",
|
|
91
|
+
className: "rpc_key_val_editor_btn_icon",
|
|
92
|
+
onClick: () => handleDelete(index),
|
|
93
|
+
title: "\u5220\u9664\u6B64\u884C",
|
|
94
|
+
children: /* @__PURE__ */ jsx(CloseOutlined, {})
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
] }, index);
|
|
98
|
+
}),
|
|
99
|
+
/* @__PURE__ */ jsx("div", { className: "rpc_key_val_editor_footer", children: /* @__PURE__ */ jsx("button", { type: "button", className: "rpc_key_val_editor_add_btn", onClick: handleAdd, children: "+ \u6DFB\u52A0\u952E\u503C\u5BF9" }) })
|
|
100
|
+
] });
|
|
101
|
+
};
|
|
102
|
+
var KeyValEditor_default = KeyValEditor;
|
|
103
|
+
|
|
104
|
+
export { KeyValEditor_default };
|
|
105
|
+
//# sourceMappingURL=chunk-ZAHKA2V2.js.map
|
|
106
|
+
//# sourceMappingURL=chunk-ZAHKA2V2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../KeyValEditor/index.tsx"],"names":[],"mappings":"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","file":"chunk-ZAHKA2V2.js","sourcesContent":["import React, { useState, CSSProperties } from 'react';\nimport { CloseOutlined, EyeOutlined, EyeInvisibleOutlined } from '../src/icons';\nimport './index.less';\n\nexport interface KeyValItem {\n\tkey: string;\n\tvalue: string;\n\tenabled?: boolean;\n\tisSecret?: boolean;\n}\n\nexport interface KeyValEditorProps {\n\t/** 键值对数组(受控) */\n\tvalue?: KeyValItem[];\n\t/** 默认键值对数组 */\n\tdefaultValue?: KeyValItem[];\n\t/** 变化回调 */\n\tonChange?: (items: KeyValItem[]) => void;\n\t/** Key 输入框占位文案,默认为 'Key 键名' */\n\tkeyPlaceholder?: string;\n\t/** Value 输入框占位文案,默认为 'Value 键值' */\n\tvalPlaceholder?: string;\n\t/** 是否允许配置 Secret 密码掩码,默认为 true */\n\tallowSecret?: boolean;\n\t/** 自定义类名 */\n\tclassName?: string;\n\t/** 自定义样式 */\n\tstyle?: CSSProperties;\n}\n\nconst KeyValEditor: React.FC<KeyValEditorProps> = ({\n\tvalue: controlledValue,\n\tdefaultValue = [{ key: '', value: '', enabled: true }],\n\tonChange,\n\tkeyPlaceholder = 'Key 键名',\n\tvalPlaceholder = 'Value 键值',\n\tallowSecret = true,\n\tclassName = '',\n\tstyle,\n}) => {\n\tconst [internalVal, setInternalVal] = useState<KeyValItem[]>(defaultValue);\n\tconst items = controlledValue !== undefined ? controlledValue : internalVal;\n\n\tconst [visibleSecrets, setVisibleSecrets] = useState<Record<number, boolean>>({});\n\n\tconst triggerChange = (newItems: KeyValItem[]) => {\n\t\tif (controlledValue === undefined) setInternalVal(newItems);\n\t\tonChange?.(newItems);\n\t};\n\n\tconst handleItemChange = (index: number, field: keyof KeyValItem, val: any) => {\n\t\tconst next = items.map((item, i) => (i === index ? { ...item, [field]: val } : item));\n\t\ttriggerChange(next);\n\t};\n\n\tconst handleAdd = () => {\n\t\ttriggerChange([...items, { key: '', value: '', enabled: true }]);\n\t};\n\n\tconst handleDelete = (index: number) => {\n\t\ttriggerChange(items.filter((_, i) => i !== index));\n\t};\n\n\tconst toggleSecretVisibility = (index: number) => {\n\t\tsetVisibleSecrets((prev) => ({ ...prev, [index]: !prev[index] }));\n\t};\n\n\treturn (\n\t\t<div className={`rpc_key_val_editor ${className}`} style={style}>\n\t\t\t{items.map((item, index) => {\n\t\t\t\tconst isSecret = item.isSecret && !visibleSecrets[index];\n\n\t\t\t\treturn (\n\t\t\t\t\t<div key={index} className=\"rpc_key_val_editor_row\">\n\t\t\t\t\t\t{/* 启用/禁用勾选 */}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\tchecked={item.enabled !== false}\n\t\t\t\t\t\t\tonChange={(e) => handleItemChange(index, 'enabled', e.target.checked)}\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_checkbox\"\n\t\t\t\t\t\t\ttitle=\"启用/禁用此条目\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Key 输入 */}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tplaceholder={keyPlaceholder}\n\t\t\t\t\t\t\tvalue={item.key}\n\t\t\t\t\t\t\tdisabled={item.enabled === false}\n\t\t\t\t\t\t\tonChange={(e) => handleItemChange(index, 'key', e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_input\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* Value 输入 */}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype={isSecret ? 'password' : 'text'}\n\t\t\t\t\t\t\tplaceholder={valPlaceholder}\n\t\t\t\t\t\t\tvalue={item.value}\n\t\t\t\t\t\t\tdisabled={item.enabled === false}\n\t\t\t\t\t\t\tonChange={(e) => handleItemChange(index, 'value', e.target.value)}\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_input\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{/* 密码明文切换 */}\n\t\t\t\t\t\t{allowSecret && (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_btn_icon\"\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tif (!item.isSecret) {\n\t\t\t\t\t\t\t\t\t\thandleItemChange(index, 'isSecret', true);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttoggleSecretVisibility(index);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttitle={item.isSecret ? '切换显示/隐藏' : '设为敏感密码'}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.isSecret ? (\n\t\t\t\t\t\t\t\t\tvisibleSecrets[index] ? <EyeOutlined /> : <EyeInvisibleOutlined />\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<span style={{ fontSize: 11, color: '#8c8c8c' }}>🔒</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{/* 删除行 */}\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclassName=\"rpc_key_val_editor_btn_icon\"\n\t\t\t\t\t\t\tonClick={() => handleDelete(index)}\n\t\t\t\t\t\t\ttitle=\"删除此行\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CloseOutlined />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\n\t\t\t<div className=\"rpc_key_val_editor_footer\">\n\t\t\t\t<button type=\"button\" className=\"rpc_key_val_editor_add_btn\" onClick={handleAdd}>\n\t\t\t\t\t+ 添加键值对\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default KeyValEditor;\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
// SpotlightCard/index.tsx
|
|
7
|
+
var SpotlightCard = ({
|
|
8
|
+
children,
|
|
9
|
+
spotlightColor = "rgba(22, 119, 255, 0.15)",
|
|
10
|
+
spotlightSize = 320,
|
|
11
|
+
dark = false,
|
|
12
|
+
className = "",
|
|
13
|
+
style
|
|
14
|
+
}) => {
|
|
15
|
+
const cardRef = react.useRef(null);
|
|
16
|
+
const [position, setPosition] = react.useState({ x: 0, y: 0 });
|
|
17
|
+
const handleMouseMove = (e) => {
|
|
18
|
+
if (!cardRef.current) return;
|
|
19
|
+
const rect = cardRef.current.getBoundingClientRect();
|
|
20
|
+
setPosition({
|
|
21
|
+
x: e.clientX - rect.left,
|
|
22
|
+
y: e.clientY - rect.top
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26
|
+
"div",
|
|
27
|
+
{
|
|
28
|
+
ref: cardRef,
|
|
29
|
+
onMouseMove: handleMouseMove,
|
|
30
|
+
className: `rpc_spotlight_card ${dark ? "rpc_spotlight_card_dark" : ""} ${className}`,
|
|
31
|
+
style,
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
34
|
+
"div",
|
|
35
|
+
{
|
|
36
|
+
className: "rpc_spotlight_card_spotlight",
|
|
37
|
+
style: {
|
|
38
|
+
background: `radial-gradient(${spotlightSize}px circle at ${position.x}px ${position.y}px, ${spotlightColor}, transparent 80%)`
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
),
|
|
42
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rpc_spotlight_card_content", children })
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
var SpotlightCard_default = SpotlightCard;
|
|
48
|
+
|
|
49
|
+
exports.SpotlightCard_default = SpotlightCard_default;
|
|
50
|
+
//# sourceMappingURL=chunk-ZFBLVX7E.cjs.map
|
|
51
|
+
//# sourceMappingURL=chunk-ZFBLVX7E.cjs.map
|