one-design-next 0.0.4-alpha.57
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/LICENSE +21 -0
- package/README.md +32 -0
- package/dist/_util/color.d.ts +103 -0
- package/dist/_util/color.js +250 -0
- package/dist/_util/date.d.ts +53 -0
- package/dist/_util/date.js +656 -0
- package/dist/_util/focusManager.d.ts +12 -0
- package/dist/_util/focusManager.js +56 -0
- package/dist/_util/queueMtPolyfill.d.ts +5 -0
- package/dist/_util/queueMtPolyfill.js +19 -0
- package/dist/_util/time.d.ts +44 -0
- package/dist/_util/time.js +150 -0
- package/dist/_util/useActive.d.ts +6 -0
- package/dist/_util/useActive.js +25 -0
- package/dist/alert/index.d.ts +63 -0
- package/dist/alert/index.js +137 -0
- package/dist/alert/style/index.css +199 -0
- package/dist/alert/style/index.d.ts +2 -0
- package/dist/alert/style/index.js +2 -0
- package/dist/auto-complete/index.d.ts +51 -0
- package/dist/auto-complete/index.js +104 -0
- package/dist/avatar/index.d.ts +68 -0
- package/dist/avatar/index.js +177 -0
- package/dist/avatar/primitive.d.ts +6 -0
- package/dist/avatar/primitive.js +23 -0
- package/dist/avatar/style/index.css +79 -0
- package/dist/avatar/style/index.d.ts +2 -0
- package/dist/avatar/style/index.js +2 -0
- package/dist/button/index.d.ts +15 -0
- package/dist/button/index.js +64 -0
- package/dist/button/style/index.css +347 -0
- package/dist/button/style/index.d.ts +2 -0
- package/dist/button/style/index.js +2 -0
- package/dist/calendar/index.d.ts +25 -0
- package/dist/calendar/index.js +379 -0
- package/dist/calendar/style/index.css +3 -0
- package/dist/calendar/style/index.d.ts +2 -0
- package/dist/calendar/style/index.js +2 -0
- package/dist/cascader/CascaderOptionContent.d.ts +20 -0
- package/dist/cascader/CascaderOptionContent.js +75 -0
- package/dist/cascader/Panel.d.ts +53 -0
- package/dist/cascader/Panel.js +116 -0
- package/dist/cascader/index.d.ts +54 -0
- package/dist/cascader/index.js +314 -0
- package/dist/cascader/style/index.css +458 -0
- package/dist/cascader/style/index.d.ts +2 -0
- package/dist/cascader/style/index.js +2 -0
- package/dist/cascader/utils.d.ts +12 -0
- package/dist/cascader/utils.js +85 -0
- package/dist/chart/index.d.ts +14 -0
- package/dist/chart/index.js +11 -0
- package/dist/chart/style/index.css +0 -0
- package/dist/chart/style/index.d.ts +2 -0
- package/dist/chart/style/index.js +2 -0
- package/dist/checkbox/Checkbox.d.ts +69 -0
- package/dist/checkbox/Checkbox.js +148 -0
- package/dist/checkbox/Context.d.ts +21 -0
- package/dist/checkbox/Context.js +2 -0
- package/dist/checkbox/Group.d.ts +49 -0
- package/dist/checkbox/Group.js +125 -0
- package/dist/checkbox/index.d.ts +5 -0
- package/dist/checkbox/index.js +3 -0
- package/dist/checkbox/style/index.css +306 -0
- package/dist/checkbox/style/index.d.ts +2 -0
- package/dist/checkbox/style/index.js +2 -0
- package/dist/collapse/index.d.ts +43 -0
- package/dist/collapse/index.js +111 -0
- package/dist/collapse/primitive.d.ts +21 -0
- package/dist/collapse/primitive.js +107 -0
- package/dist/collapse/style/index.css +63 -0
- package/dist/collapse/style/index.d.ts +2 -0
- package/dist/collapse/style/index.js +2 -0
- package/dist/color-picker/index.d.ts +55 -0
- package/dist/color-picker/index.js +588 -0
- package/dist/color-picker/style/index.css +153 -0
- package/dist/color-picker/style/index.d.ts +2 -0
- package/dist/color-picker/style/index.js +2 -0
- package/dist/config-provider/index.d.ts +46 -0
- package/dist/config-provider/index.js +37 -0
- package/dist/date-picker/MonthPicker.d.ts +15 -0
- package/dist/date-picker/MonthPicker.js +134 -0
- package/dist/date-picker/QuarterPicker.d.ts +15 -0
- package/dist/date-picker/QuarterPicker.js +135 -0
- package/dist/date-picker/YearPicker.d.ts +13 -0
- package/dist/date-picker/YearPicker.js +81 -0
- package/dist/date-picker/index.d.ts +172 -0
- package/dist/date-picker/index.js +1138 -0
- package/dist/date-picker/style/index.css +548 -0
- package/dist/date-picker/style/index.d.ts +2 -0
- package/dist/date-picker/style/index.js +2 -0
- package/dist/date-range-picker/index.d.ts +46 -0
- package/dist/date-range-picker/index.js +1034 -0
- package/dist/dialog/index.d.ts +132 -0
- package/dist/dialog/index.js +282 -0
- package/dist/dialog/style/index.css +252 -0
- package/dist/dialog/style/index.d.ts +2 -0
- package/dist/dialog/style/index.js +2 -0
- package/dist/dialog/useModalPosition.d.ts +6 -0
- package/dist/dialog/useModalPosition.js +34 -0
- package/dist/drawer/index.d.ts +76 -0
- package/dist/drawer/index.js +186 -0
- package/dist/drawer/style/index.css +235 -0
- package/dist/drawer/style/index.d.ts +2 -0
- package/dist/drawer/style/index.js +2 -0
- package/dist/dropdown/index.d.ts +86 -0
- package/dist/dropdown/index.js +836 -0
- package/dist/dropdown/style/index.css +236 -0
- package/dist/dropdown/style/index.d.ts +2 -0
- package/dist/dropdown/style/index.js +2 -0
- package/dist/hover-fill/index.d.ts +43 -0
- package/dist/hover-fill/index.js +222 -0
- package/dist/hover-fill/style/index.css +38 -0
- package/dist/hover-fill/style/index.d.ts +2 -0
- package/dist/hover-fill/style/index.js +2 -0
- package/dist/icon/index.d.ts +11 -0
- package/dist/icon/index.js +95 -0
- package/dist/icon/style/index.css +15 -0
- package/dist/icon/style/index.d.ts +2 -0
- package/dist/icon/style/index.js +2 -0
- package/dist/icon/svg/alert/alert-circle-filled.svg +1 -0
- package/dist/icon/svg/alert/alert-circle.svg +1 -0
- package/dist/icon/svg/alert/help-circle-filled.svg +1 -0
- package/dist/icon/svg/alert/help-circle.svg +1 -0
- package/dist/icon/svg/alert/info-circle-filled.svg +1 -0
- package/dist/icon/svg/alert/info-circle.svg +1 -0
- package/dist/icon/svg/alert/stop.svg +1 -0
- package/dist/icon/svg/alert/warning-filled.svg +1 -0
- package/dist/icon/svg/alert/warning.svg +1 -0
- package/dist/icon/svg/content/QRcode.svg +1 -0
- package/dist/icon/svg/content/bell-filled.svg +1 -0
- package/dist/icon/svg/content/bell.svg +1 -0
- package/dist/icon/svg/content/bidding.svg +1 -0
- package/dist/icon/svg/content/calendar.svg +1 -0
- package/dist/icon/svg/content/code.svg +1 -0
- package/dist/icon/svg/content/customColumn.svg +1 -0
- package/dist/icon/svg/content/data.svg +1 -0
- package/dist/icon/svg/content/dataReport-filled.svg +1 -0
- package/dist/icon/svg/content/dataReport.svg +1 -0
- package/dist/icon/svg/content/download-1.svg +1 -0
- package/dist/icon/svg/content/download-filled.svg +1 -0
- package/dist/icon/svg/content/download.svg +1 -0
- package/dist/icon/svg/content/exchange.svg +1 -0
- package/dist/icon/svg/content/filter-filled.svg +1 -0
- package/dist/icon/svg/content/filter.svg +1 -0
- package/dist/icon/svg/content/hot-filled.svg +1 -0
- package/dist/icon/svg/content/hot.svg +1 -0
- package/dist/icon/svg/content/link.svg +1 -0
- package/dist/icon/svg/content/location.svg +1 -0
- package/dist/icon/svg/content/maxSize.svg +1 -0
- package/dist/icon/svg/content/mobile-filled.svg +1 -0
- package/dist/icon/svg/content/mobile.svg +1 -0
- package/dist/icon/svg/content/mute.svg +1 -0
- package/dist/icon/svg/content/mutiImage-filled.svg +1 -0
- package/dist/icon/svg/content/mutiImage.svg +1 -0
- package/dist/icon/svg/content/refresh.svg +1 -0
- package/dist/icon/svg/content/report.svg +1 -0
- package/dist/icon/svg/content/save.svg +1 -0
- package/dist/icon/svg/content/search-bold.svg +1 -0
- package/dist/icon/svg/content/search-filled.svg +1 -0
- package/dist/icon/svg/content/search.svg +1 -0
- package/dist/icon/svg/content/setting.svg +1 -0
- package/dist/icon/svg/content/share.svg +1 -0
- package/dist/icon/svg/content/sort.svg +1 -0
- package/dist/icon/svg/content/sound.svg +1 -0
- package/dist/icon/svg/content/sticker-filled.svg +1 -0
- package/dist/icon/svg/content/sticker.svg +1 -0
- package/dist/icon/svg/content/tag-filled.svg +1 -0
- package/dist/icon/svg/content/tag.svg +1 -0
- package/dist/icon/svg/content/thumbDown-filled.svg +1 -0
- package/dist/icon/svg/content/thumbDown.svg +1 -0
- package/dist/icon/svg/content/thumbUp-filled.svg +1 -0
- package/dist/icon/svg/content/thumbUp.svg +1 -0
- package/dist/icon/svg/content/time-bold.svg +1 -0
- package/dist/icon/svg/content/time.svg +1 -0
- package/dist/icon/svg/content/verify.svg +1 -0
- package/dist/icon/svg/content/video.svg +1 -0
- package/dist/icon/svg/content/videoScreenshot.svg +1 -0
- package/dist/icon/svg/content/zoomIn.svg +1 -0
- package/dist/icon/svg/content/zoomOut.svg +1 -0
- package/dist/icon/svg/data/compare.svg +1 -0
- package/dist/icon/svg/data/histogram.svg +1 -0
- package/dist/icon/svg/editor/cancel-circle-filled.svg +1 -0
- package/dist/icon/svg/editor/cancel-circle.svg +1 -0
- package/dist/icon/svg/editor/cancel.svg +1 -0
- package/dist/icon/svg/editor/check-circle-filled.svg +1 -0
- package/dist/icon/svg/editor/check-circle.svg +1 -0
- package/dist/icon/svg/editor/check.svg +1 -0
- package/dist/icon/svg/editor/copy.svg +1 -0
- package/dist/icon/svg/editor/custom-filled.svg +1 -0
- package/dist/icon/svg/editor/custom.svg +1 -0
- package/dist/icon/svg/editor/delete.svg +1 -0
- package/dist/icon/svg/editor/deleteAD-filled.svg +1 -0
- package/dist/icon/svg/editor/draggable.svg +1 -0
- package/dist/icon/svg/editor/edit.svg +1 -0
- package/dist/icon/svg/editor/import.svg +1 -0
- package/dist/icon/svg/editor/minus-circle-filled.svg +1 -0
- package/dist/icon/svg/editor/minus-circle.svg +1 -0
- package/dist/icon/svg/editor/minus.svg +1 -0
- package/dist/icon/svg/editor/modify-bold.svg +1 -0
- package/dist/icon/svg/editor/modify.svg +1 -0
- package/dist/icon/svg/editor/multiCreate.svg +1 -0
- package/dist/icon/svg/editor/mutiSelect-filled.svg +1 -0
- package/dist/icon/svg/editor/mutiSelect.svg +1 -0
- package/dist/icon/svg/editor/pause-filled.svg +1 -0
- package/dist/icon/svg/editor/play-filled.svg +1 -0
- package/dist/icon/svg/editor/plus-circle-filled.svg +1 -0
- package/dist/icon/svg/editor/plus-circle.svg +1 -0
- package/dist/icon/svg/editor/plus.svg +1 -0
- package/dist/icon/svg/editor/send.svg +1 -0
- package/dist/icon/svg/editor/subdivide.svg +1 -0
- package/dist/icon/svg/navigation/arrowDown-filled.svg +1 -0
- package/dist/icon/svg/navigation/arrowDown.svg +1 -0
- package/dist/icon/svg/navigation/arrowLeft-filled.svg +1 -0
- package/dist/icon/svg/navigation/arrowLeft.svg +1 -0
- package/dist/icon/svg/navigation/arrowRight-filled.svg +1 -0
- package/dist/icon/svg/navigation/arrowRight.svg +1 -0
- package/dist/icon/svg/navigation/arrowUp-filled.svg +1 -0
- package/dist/icon/svg/navigation/arrowUp.svg +1 -0
- package/dist/icon/svg/navigation/bottom-filled.svg +1 -0
- package/dist/icon/svg/navigation/bottom.svg +1 -0
- package/dist/icon/svg/navigation/doubleLeft-filled.svg +1 -0
- package/dist/icon/svg/navigation/doubleLeft.svg +1 -0
- package/dist/icon/svg/navigation/doubleRight-filled.svg +1 -0
- package/dist/icon/svg/navigation/doubleRight.svg +1 -0
- package/dist/icon/svg/navigation/down-bold.svg +1 -0
- package/dist/icon/svg/navigation/down-filled.svg +1 -0
- package/dist/icon/svg/navigation/down.svg +1 -0
- package/dist/icon/svg/navigation/fall-filled.svg +1 -0
- package/dist/icon/svg/navigation/fold.svg +1 -0
- package/dist/icon/svg/navigation/fullScreen.svg +1 -0
- package/dist/icon/svg/navigation/left-bold.svg +1 -0
- package/dist/icon/svg/navigation/left-filled.svg +1 -0
- package/dist/icon/svg/navigation/left.svg +1 -0
- package/dist/icon/svg/navigation/leftFirst-filled.svg +1 -0
- package/dist/icon/svg/navigation/leftFirst.svg +1 -0
- package/dist/icon/svg/navigation/logout.svg +1 -0
- package/dist/icon/svg/navigation/menu.svg +1 -0
- package/dist/icon/svg/navigation/menuLeft-bold.svg +1 -0
- package/dist/icon/svg/navigation/menuLeft.svg +1 -0
- package/dist/icon/svg/navigation/menuRight-bold.svg +1 -0
- package/dist/icon/svg/navigation/menuRight.svg +1 -0
- package/dist/icon/svg/navigation/more-vertical.svg +1 -0
- package/dist/icon/svg/navigation/more.svg +1 -0
- package/dist/icon/svg/navigation/pointerLeft-filled.svg +1 -0
- package/dist/icon/svg/navigation/pointerRight-filled.svg +1 -0
- package/dist/icon/svg/navigation/right-bold.svg +1 -0
- package/dist/icon/svg/navigation/right-filled.svg +1 -0
- package/dist/icon/svg/navigation/right.svg +1 -0
- package/dist/icon/svg/navigation/rightLast-filled.svg +1 -0
- package/dist/icon/svg/navigation/rightLast.svg +1 -0
- package/dist/icon/svg/navigation/rise-filled.svg +1 -0
- package/dist/icon/svg/navigation/top-filled.svg +1 -0
- package/dist/icon/svg/navigation/top.svg +1 -0
- package/dist/icon/svg/navigation/unfold-filled.svg +1 -0
- package/dist/icon/svg/navigation/unfold.svg +1 -0
- package/dist/icon/svg/navigation/up-bold.svg +1 -0
- package/dist/icon/svg/navigation/up-filled.svg +1 -0
- package/dist/icon/svg/navigation/up.svg +1 -0
- package/dist/icon/svg/product/AIFile.svg +1 -0
- package/dist/icon/svg/product/LandingPage.svg +1 -0
- package/dist/icon/svg/product/addressBook.svg +1 -0
- package/dist/icon/svg/product/alarmClock.svg +1 -0
- package/dist/icon/svg/product/asset-square.svg +1 -0
- package/dist/icon/svg/product/assetProtecting.svg +1 -0
- package/dist/icon/svg/product/autoAD-square-filled.svg +1 -0
- package/dist/icon/svg/product/channels-square-filled.svg +1 -0
- package/dist/icon/svg/product/channels.svg +1 -0
- package/dist/icon/svg/product/chatBubble-filled.svg +1 -0
- package/dist/icon/svg/product/checkBadge.svg +1 -0
- package/dist/icon/svg/product/comments.svg +1 -0
- package/dist/icon/svg/product/container.svg +1 -0
- package/dist/icon/svg/product/dataAuth.svg +1 -0
- package/dist/icon/svg/product/dataBoard.svg +1 -0
- package/dist/icon/svg/product/dataBox.svg +1 -0
- package/dist/icon/svg/product/dataFolder.svg +1 -0
- package/dist/icon/svg/product/dataRising.svg +1 -0
- package/dist/icon/svg/product/detect.svg +1 -0
- package/dist/icon/svg/product/exposure-filled.svg +1 -0
- package/dist/icon/svg/product/extendedConfig.svg +1 -0
- package/dist/icon/svg/product/file-filled.svg +1 -0
- package/dist/icon/svg/product/flag.svg +1 -0
- package/dist/icon/svg/product/folderZip.svg +1 -0
- package/dist/icon/svg/product/folderzip-bold.svg +1 -0
- package/dist/icon/svg/product/guideBook.svg +1 -0
- package/dist/icon/svg/product/hosting.svg +1 -0
- package/dist/icon/svg/product/icon-outlined.svg +1 -0
- package/dist/icon/svg/product/idea-bold.svg +1 -0
- package/dist/icon/svg/product/idea.svg +1 -0
- package/dist/icon/svg/product/image-bold.svg +1 -0
- package/dist/icon/svg/product/image-filled.svg +1 -0
- package/dist/icon/svg/product/image.svg +1 -0
- package/dist/icon/svg/product/images.svg +1 -0
- package/dist/icon/svg/product/keyword.svg +1 -0
- package/dist/icon/svg/product/linkSquare.svg +1 -0
- package/dist/icon/svg/product/lock.svg +1 -0
- package/dist/icon/svg/product/magic-filled.svg +1 -0
- package/dist/icon/svg/product/magic.svg +1 -0
- package/dist/icon/svg/product/miniProgram.svg +1 -0
- package/dist/icon/svg/product/minigame-filled.svg +1 -0
- package/dist/icon/svg/product/mobilePage.svg +1 -0
- package/dist/icon/svg/product/moments-filled.svg +1 -0
- package/dist/icon/svg/product/notepad-bold.svg +1 -0
- package/dist/icon/svg/product/notepad.svg +1 -0
- package/dist/icon/svg/product/offiaccount-filled.svg +1 -0
- package/dist/icon/svg/product/playing.svg +1 -0
- package/dist/icon/svg/product/qualification.svg +1 -0
- package/dist/icon/svg/product/quickFile.svg +1 -0
- package/dist/icon/svg/product/ringStruckture.svg +1 -0
- package/dist/icon/svg/product/searchAD-filled.svg +1 -0
- package/dist/icon/svg/product/searchAD.svg +1 -0
- package/dist/icon/svg/product/shield-filled.svg +1 -0
- package/dist/icon/svg/product/shield.svg +1 -0
- package/dist/icon/svg/product/shop.svg +1 -0
- package/dist/icon/svg/product/shopping.svg +1 -0
- package/dist/icon/svg/product/star-filled.svg +1 -0
- package/dist/icon/svg/product/star.svg +1 -0
- package/dist/icon/svg/product/support-bold.svg +1 -0
- package/dist/icon/svg/product/target.svg +1 -0
- package/dist/icon/svg/product/targeting.svg +1 -0
- package/dist/icon/svg/product/task-filled.svg +1 -0
- package/dist/icon/svg/product/task.svg +1 -0
- package/dist/icon/svg/product/template.svg +1 -0
- package/dist/icon/svg/product/templateBag.svg +1 -0
- package/dist/icon/svg/product/text.svg +1 -0
- package/dist/icon/svg/product/treeStructure.svg +1 -0
- package/dist/icon/svg/product/user-circle.svg +1 -0
- package/dist/icon/svg/product/userList.svg +1 -0
- package/dist/icon/svg/product/userPack.svg +1 -0
- package/dist/icon/svg/product/users-bold.svg +1 -0
- package/dist/icon/svg/product/users.svg +1 -0
- package/dist/icon/svg/product/videoBag-filled.svg +1 -0
- package/dist/icon/svg/product/viewMask.svg +1 -0
- package/dist/icon/svg/product/wallet.svg +1 -0
- package/dist/icon/svg/product/wechatBubble-filled.svg +1 -0
- package/dist/icon/svg/product/wechatBubble.svg +1 -0
- package/dist/icon/svg/product/wechatSearch.svg +1 -0
- package/dist/icon/svg/product/writing.svg +1 -0
- package/dist/icon/svg-data.d.ts +221 -0
- package/dist/icon/svg-data.js +224 -0
- package/dist/icon/test-icons.html +122 -0
- package/dist/icon/types.d.ts +3 -0
- package/dist/icon/types.js +10 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.js +46 -0
- package/dist/input/index.d.ts +80 -0
- package/dist/input/index.js +437 -0
- package/dist/input/style/index.css +256 -0
- package/dist/input/style/index.d.ts +2 -0
- package/dist/input/style/index.js +2 -0
- package/dist/input-number/index.d.ts +36 -0
- package/dist/input-number/index.js +429 -0
- package/dist/input-number/style/index.css +70 -0
- package/dist/input-number/style/index.d.ts +2 -0
- package/dist/input-number/style/index.js +2 -0
- package/dist/input-otp/index.d.ts +71 -0
- package/dist/input-otp/index.js +87 -0
- package/dist/input-otp/style/index.css +114 -0
- package/dist/input-otp/style/index.d.ts +2 -0
- package/dist/input-otp/style/index.js +2 -0
- package/dist/message/MessageBase.d.ts +86 -0
- package/dist/message/MessageBase.js +395 -0
- package/dist/message/MessageReact16.d.ts +2 -0
- package/dist/message/MessageReact16.js +86 -0
- package/dist/message/MessageReact18.d.ts +2 -0
- package/dist/message/MessageReact18.js +98 -0
- package/dist/message/index.d.ts +3 -0
- package/dist/message/index.js +7 -0
- package/dist/message/style/index.css +133 -0
- package/dist/message/style/index.d.ts +2 -0
- package/dist/message/style/index.js +2 -0
- package/dist/modal-base/gap.d.ts +14 -0
- package/dist/modal-base/gap.js +31 -0
- package/dist/modal-base/index.d.ts +26 -0
- package/dist/modal-base/index.js +110 -0
- package/dist/number-flow/index.d.ts +13 -0
- package/dist/number-flow/index.js +25 -0
- package/dist/number-flow/style/index.css +0 -0
- package/dist/number-flow/style/index.d.ts +2 -0
- package/dist/number-flow/style/index.js +2 -0
- package/dist/pagination/index.d.ts +38 -0
- package/dist/pagination/index.js +349 -0
- package/dist/pagination/style/index.css +128 -0
- package/dist/pagination/style/index.d.ts +2 -0
- package/dist/pagination/style/index.js +2 -0
- package/dist/pop-base/index.d.ts +123 -0
- package/dist/pop-base/index.js +349 -0
- package/dist/pop-base/mergeProps.d.ts +37 -0
- package/dist/pop-base/mergeProps.js +144 -0
- package/dist/pop-base/style/index.css +150 -0
- package/dist/pop-base/style/index.d.ts +2 -0
- package/dist/pop-base/style/index.js +2 -0
- package/dist/pop-base/useForkRef.d.ts +5 -0
- package/dist/pop-base/useForkRef.js +52 -0
- package/dist/popover/index.d.ts +4 -0
- package/dist/popover/index.js +9 -0
- package/dist/radio/index.d.ts +21 -0
- package/dist/radio/index.js +45 -0
- package/dist/radio/primitive.d.ts +5 -0
- package/dist/radio/primitive.js +28 -0
- package/dist/radio/style/index.css +219 -0
- package/dist/radio/style/index.d.ts +2 -0
- package/dist/radio/style/index.js +2 -0
- package/dist/scroll-area/index.d.ts +24 -0
- package/dist/scroll-area/index.js +96 -0
- package/dist/scroll-area/style/index.css +77 -0
- package/dist/scroll-area/style/index.d.ts +2 -0
- package/dist/scroll-area/style/index.js +2 -0
- package/dist/select/index.d.ts +85 -0
- package/dist/select/index.js +262 -0
- package/dist/select/style/index.css +1736 -0
- package/dist/select/style/index.d.ts +2 -0
- package/dist/select/style/index.js +2 -0
- package/dist/select/useIcons.d.ts +25 -0
- package/dist/select/useIcons.js +80 -0
- package/dist/slider/index.d.ts +69 -0
- package/dist/slider/index.js +264 -0
- package/dist/slider/style/index.css +237 -0
- package/dist/slider/style/index.d.ts +2 -0
- package/dist/slider/style/index.js +2 -0
- package/dist/style/base.css +298 -0
- package/dist/style/index.d.ts +6 -0
- package/dist/style/index.js +17 -0
- package/dist/switch/index.d.ts +12 -0
- package/dist/switch/index.js +55 -0
- package/dist/switch/style/index.css +152 -0
- package/dist/switch/style/index.d.ts +2 -0
- package/dist/switch/style/index.js +2 -0
- package/dist/table/TableCellContent.d.ts +20 -0
- package/dist/table/TableCellContent.js +77 -0
- package/dist/table/index.d.ts +97 -0
- package/dist/table/index.js +791 -0
- package/dist/table/style/index.css +320 -0
- package/dist/table/style/index.d.ts +2 -0
- package/dist/table/style/index.js +2 -0
- package/dist/table/useSelection.d.ts +13 -0
- package/dist/table/useSelection.js +259 -0
- package/dist/tabs/index.d.ts +51 -0
- package/dist/tabs/index.js +617 -0
- package/dist/tabs/style/index.css +369 -0
- package/dist/tabs/style/index.d.ts +2 -0
- package/dist/tabs/style/index.js +2 -0
- package/dist/text-swap/index.d.ts +58 -0
- package/dist/text-swap/index.js +280 -0
- package/dist/text-swap/style/index.css +32 -0
- package/dist/text-swap/style/index.d.ts +2 -0
- package/dist/text-swap/style/index.js +2 -0
- package/dist/time-picker/index.d.ts +67 -0
- package/dist/time-picker/index.js +945 -0
- package/dist/time-picker/style/index.css +166 -0
- package/dist/time-picker/style/index.d.ts +2 -0
- package/dist/time-picker/style/index.js +2 -0
- package/dist/tooltip/index.d.ts +10 -0
- package/dist/tooltip/index.js +178 -0
- package/dist/tree-select/index.d.ts +25 -0
- package/dist/tree-select/index.js +140 -0
- package/dist/tree-select/style/index.css +204 -0
- package/dist/tree-select/style/index.d.ts +1 -0
- package/dist/tree-select/style/index.js +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1,588 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
8
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
9
|
+
import React, { useRef, useState } from 'react';
|
|
10
|
+
import { DEFAULT_COLOR, expandHexColor, extractHexFromDisplay, getColorDisplayValue, hexToHsb, hsbToHex, hsbToRgb, isValidHexColor, normalizeHexColor } from "../_util/color";
|
|
11
|
+
import Button from "../button";
|
|
12
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../collapse";
|
|
13
|
+
import Icon from "../icon";
|
|
14
|
+
import Input from "../input";
|
|
15
|
+
import Popover from "../popover";
|
|
16
|
+
import Slider from "../slider";
|
|
17
|
+
import "./style";
|
|
18
|
+
var ColorPicker = function ColorPicker(props) {
|
|
19
|
+
var valueProp = props.value,
|
|
20
|
+
onChange = props.onChange,
|
|
21
|
+
_props$defaultValue = props.defaultValue,
|
|
22
|
+
defaultValue = _props$defaultValue === void 0 ? DEFAULT_COLOR : _props$defaultValue,
|
|
23
|
+
_props$placeholder = props.placeholder,
|
|
24
|
+
placeholder = _props$placeholder === void 0 ? '' : _props$placeholder,
|
|
25
|
+
_props$disabled = props.disabled,
|
|
26
|
+
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
27
|
+
_props$allowClear = props.allowClear,
|
|
28
|
+
allowClear = _props$allowClear === void 0 ? false : _props$allowClear,
|
|
29
|
+
palettes = props.palettes;
|
|
30
|
+
|
|
31
|
+
// 初始化颜色值的辅助函数
|
|
32
|
+
var initializeColorValue = function initializeColorValue(value) {
|
|
33
|
+
if (value === null) return '';
|
|
34
|
+
var initialValue = normalizeHexColor(value !== null && value !== void 0 ? value : defaultValue);
|
|
35
|
+
return expandHexColor(initialValue);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// 内部状态:当前有效的颜色值(始终是6位,或null)
|
|
39
|
+
var _useState = useState(function () {
|
|
40
|
+
if (valueProp === null) return null;
|
|
41
|
+
return initializeColorValue(valueProp);
|
|
42
|
+
}),
|
|
43
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
44
|
+
internalValue = _useState2[0],
|
|
45
|
+
setInternalValue = _useState2[1];
|
|
46
|
+
|
|
47
|
+
// 输入框显示的值
|
|
48
|
+
var _useState3 = useState(function () {
|
|
49
|
+
return initializeColorValue(valueProp);
|
|
50
|
+
}),
|
|
51
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
52
|
+
inputValue = _useState4[0],
|
|
53
|
+
setInputValue = _useState4[1];
|
|
54
|
+
|
|
55
|
+
// 用于保存最后一个有效值,在 blur 时回退使用
|
|
56
|
+
var lastValidValueRef = useRef(initializeColorValue(valueProp));
|
|
57
|
+
|
|
58
|
+
// 调色板面板的引用和拖拽状态
|
|
59
|
+
var paletteRef = useRef(null);
|
|
60
|
+
var indicatorRef = useRef(null);
|
|
61
|
+
var isDraggingRef = useRef(false);
|
|
62
|
+
|
|
63
|
+
// 获取初始 HSB 值
|
|
64
|
+
var getInitialHsb = function getInitialHsb() {
|
|
65
|
+
var h = 0;
|
|
66
|
+
var s = 100;
|
|
67
|
+
var b = 100;
|
|
68
|
+
var initialColor = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue;
|
|
69
|
+
if (initialColor && initialColor !== null) {
|
|
70
|
+
var normalizedColor = normalizeHexColor(initialColor);
|
|
71
|
+
var expandedColor = expandHexColor(normalizedColor);
|
|
72
|
+
var hsb = hexToHsb(expandedColor);
|
|
73
|
+
if (hsb) {
|
|
74
|
+
h = hsb.h;
|
|
75
|
+
s = hsb.s;
|
|
76
|
+
b = hsb.b;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
h: h,
|
|
81
|
+
s: s,
|
|
82
|
+
b: b
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
// HSB 状态 - 这是主状态
|
|
87
|
+
var initialHsb = getInitialHsb();
|
|
88
|
+
var _useState5 = useState(initialHsb.h),
|
|
89
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
90
|
+
hue = _useState6[0],
|
|
91
|
+
setHue = _useState6[1];
|
|
92
|
+
var _useState7 = useState(initialHsb.s),
|
|
93
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
94
|
+
saturation = _useState8[0],
|
|
95
|
+
setSaturation = _useState8[1];
|
|
96
|
+
var _useState9 = useState(initialHsb.b),
|
|
97
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
98
|
+
brightness = _useState10[0],
|
|
99
|
+
setBrightness = _useState10[1];
|
|
100
|
+
|
|
101
|
+
// 获取当前显示的颜色值
|
|
102
|
+
var getCurrentColor = function getCurrentColor() {
|
|
103
|
+
return internalValue;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
// 同步外部 valueProp 变化 - 类似原文件的 getDerivedStateFromProps 逻辑
|
|
107
|
+
if (valueProp !== undefined && valueProp !== null) {
|
|
108
|
+
// 处理带井号的外部值
|
|
109
|
+
var cleanValue = valueProp.startsWith('#') ? valueProp.slice(1) : valueProp;
|
|
110
|
+
if (isValidHexColor(normalizeHexColor(cleanValue))) {
|
|
111
|
+
var normalizedValue = normalizeHexColor(cleanValue);
|
|
112
|
+
var expandedValue = expandHexColor(normalizedValue);
|
|
113
|
+
if (expandedValue.toUpperCase() !== (internalValue === null || internalValue === void 0 ? void 0 : internalValue.toUpperCase())) {
|
|
114
|
+
// 外部传入了新的有效颜色值,更新所有状态
|
|
115
|
+
var hsb = hexToHsb(expandedValue);
|
|
116
|
+
if (hsb) {
|
|
117
|
+
setHue(hsb.h);
|
|
118
|
+
setSaturation(hsb.s);
|
|
119
|
+
setBrightness(hsb.b);
|
|
120
|
+
}
|
|
121
|
+
setInternalValue(expandedValue);
|
|
122
|
+
setInputValue(expandedValue);
|
|
123
|
+
lastValidValueRef.current = expandedValue;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
} else if (valueProp === null && internalValue !== null) {
|
|
127
|
+
// 外部传入 null,清空状态
|
|
128
|
+
setInternalValue(null);
|
|
129
|
+
setInputValue('');
|
|
130
|
+
lastValidValueRef.current = '';
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// 处理输入变化
|
|
134
|
+
var handleInputChange = function handleInputChange(e) {
|
|
135
|
+
if (disabled) return;
|
|
136
|
+
var rawValue = e.target.value;
|
|
137
|
+
|
|
138
|
+
// 检查是否为空值清空
|
|
139
|
+
if (rawValue.trim() === '') {
|
|
140
|
+
setInputValue('');
|
|
141
|
+
if (allowClear) {
|
|
142
|
+
setInternalValue(null);
|
|
143
|
+
lastValidValueRef.current = ''; // 更新最后有效值为空字符串
|
|
144
|
+
// 如果是非受控组件或者值确实发生了变化,才调用 onChange
|
|
145
|
+
if (valueProp === undefined || null !== valueProp) {
|
|
146
|
+
onChange === null || onChange === void 0 || onChange(null);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 移除 # 前缀(如果用户输入了)
|
|
153
|
+
var cleanValue = extractHexFromDisplay(rawValue.startsWith('#') ? rawValue : "#".concat(rawValue));
|
|
154
|
+
|
|
155
|
+
// 转换为大写并更新输入框显示
|
|
156
|
+
var upperValue = normalizeHexColor(cleanValue);
|
|
157
|
+
setInputValue(upperValue);
|
|
158
|
+
|
|
159
|
+
// 检查是否为合法颜色(支持3位和6位)
|
|
160
|
+
if (isValidHexColor(upperValue) && (upperValue.length === 3 || upperValue.length === 6)) {
|
|
161
|
+
// 合法颜色,扩展为6位后传出
|
|
162
|
+
var _expandedValue = expandHexColor(upperValue);
|
|
163
|
+
setInternalValue(_expandedValue);
|
|
164
|
+
lastValidValueRef.current = _expandedValue; // 保存扩展后的6位值用于回退
|
|
165
|
+
|
|
166
|
+
// 更新 HSB 状态
|
|
167
|
+
var _hsb = hexToHsb(_expandedValue);
|
|
168
|
+
if (_hsb) {
|
|
169
|
+
if (_hsb.s > 0) {
|
|
170
|
+
setHue(_hsb.h);
|
|
171
|
+
}
|
|
172
|
+
setSaturation(_hsb.s);
|
|
173
|
+
setBrightness(_hsb.b);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// 如果是非受控组件或者值确实发生了变化,才调用 onChange
|
|
177
|
+
var colorWithHash = getColorDisplayValue(_expandedValue);
|
|
178
|
+
if (valueProp === undefined || colorWithHash !== valueProp) {
|
|
179
|
+
onChange === null || onChange === void 0 || onChange(colorWithHash);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// 如果不合法,只更新输入框显示,不触发 onChange
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
// 处理聚焦事件
|
|
186
|
+
var handleInputFocus = function handleInputFocus(e) {
|
|
187
|
+
if (disabled) return;
|
|
188
|
+
|
|
189
|
+
// 聚焦时全选文本
|
|
190
|
+
e.target.select();
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
// 处理失焦事件
|
|
194
|
+
var handleInputBlur = function handleInputBlur() {
|
|
195
|
+
if (disabled) return;
|
|
196
|
+
|
|
197
|
+
// 如果输入为空
|
|
198
|
+
if (inputValue.trim() === '') {
|
|
199
|
+
if (allowClear) {
|
|
200
|
+
// 允许清空,保持空值状态
|
|
201
|
+
return;
|
|
202
|
+
} else {
|
|
203
|
+
// 不允许清空,回退到最后有效值
|
|
204
|
+
setInputValue(lastValidValueRef.current);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// 如果是有效的3位hex,扩展为6位显示
|
|
210
|
+
if (isValidHexColor(inputValue) && inputValue.length === 3) {
|
|
211
|
+
var _expandedValue2 = expandHexColor(inputValue);
|
|
212
|
+
setInputValue(_expandedValue2);
|
|
213
|
+
// 注意:这里不需要更新 lastValidValueRef,因为在 onChange 时已经更新了
|
|
214
|
+
} else if (!isValidHexColor(inputValue) || inputValue.length !== 3 && inputValue.length !== 6) {
|
|
215
|
+
// 如果不合法,回退到最后一个有效值(可能是空字符串)
|
|
216
|
+
setInputValue(lastValidValueRef.current);
|
|
217
|
+
|
|
218
|
+
// 如果回退到空值,需要同步内部状态
|
|
219
|
+
if (lastValidValueRef.current === '' && allowClear) {
|
|
220
|
+
setInternalValue(null);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
// HSB 滑块变化处理 - 参考原文件的 handleCustomChange 逻辑
|
|
226
|
+
var handleHsbChange = function handleHsbChange(type, value) {
|
|
227
|
+
if (disabled) return;
|
|
228
|
+
var newHexColor;
|
|
229
|
+
if (type === 'h') {
|
|
230
|
+
newHexColor = hsbToHex(value, saturation, brightness);
|
|
231
|
+
setHue(value);
|
|
232
|
+
} else if (type === 's') {
|
|
233
|
+
newHexColor = hsbToHex(hue, value, brightness);
|
|
234
|
+
setSaturation(value);
|
|
235
|
+
} else {
|
|
236
|
+
newHexColor = hsbToHex(hue, saturation, value);
|
|
237
|
+
setBrightness(value);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// 更新内部状态
|
|
241
|
+
setInternalValue(newHexColor);
|
|
242
|
+
setInputValue(newHexColor);
|
|
243
|
+
lastValidValueRef.current = newHexColor;
|
|
244
|
+
|
|
245
|
+
// 触发 onChange 回调(带井号)
|
|
246
|
+
var colorWithHash = getColorDisplayValue(newHexColor);
|
|
247
|
+
if (valueProp === undefined || colorWithHash !== valueProp) {
|
|
248
|
+
onChange === null || onChange === void 0 || onChange(colorWithHash);
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
// H 滑块变化处理
|
|
253
|
+
var handleHueChange = function handleHueChange(value) {
|
|
254
|
+
if (typeof value === 'number') {
|
|
255
|
+
handleHsbChange('h', value);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
// S 滑块变化处理
|
|
260
|
+
var handleSaturationChange = function handleSaturationChange(value) {
|
|
261
|
+
if (typeof value === 'number') {
|
|
262
|
+
handleHsbChange('s', value);
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
// B 滑块变化处理
|
|
267
|
+
var handleBrightnessChange = function handleBrightnessChange(value) {
|
|
268
|
+
if (typeof value === 'number') {
|
|
269
|
+
handleHsbChange('b', value);
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
// 调色板拖拽处理 - 参考原文件的逻辑
|
|
274
|
+
var handlePaletteMouseMove = function handlePaletteMouseMove(e) {
|
|
275
|
+
if (!paletteRef.current || !isDraggingRef.current) return;
|
|
276
|
+
var rect = paletteRef.current.getBoundingClientRect();
|
|
277
|
+
var left = rect.left,
|
|
278
|
+
top = rect.top,
|
|
279
|
+
width = rect.width,
|
|
280
|
+
height = rect.height;
|
|
281
|
+
|
|
282
|
+
// 计算相对位置 (0-1)
|
|
283
|
+
var newS = (e.clientX - left) / width;
|
|
284
|
+
var newB = (e.clientY - top) / height;
|
|
285
|
+
|
|
286
|
+
// 边界限制
|
|
287
|
+
newS = Math.max(0, Math.min(1, newS));
|
|
288
|
+
newB = Math.max(0, Math.min(1, newB));
|
|
289
|
+
|
|
290
|
+
// 转换为百分比,B 需要反转(顶部是100%,底部是0%)
|
|
291
|
+
var saturationValue = newS * 100;
|
|
292
|
+
var brightnessValue = (1 - newB) * 100;
|
|
293
|
+
|
|
294
|
+
// 一次性更新 S 和 B 值
|
|
295
|
+
setSaturation(saturationValue);
|
|
296
|
+
setBrightness(brightnessValue);
|
|
297
|
+
|
|
298
|
+
// 计算新的颜色值
|
|
299
|
+
var newHexColor = hsbToHex(hue, saturationValue, brightnessValue);
|
|
300
|
+
setInternalValue(newHexColor);
|
|
301
|
+
setInputValue(newHexColor);
|
|
302
|
+
lastValidValueRef.current = newHexColor;
|
|
303
|
+
|
|
304
|
+
// 触发 onChange 回调(带井号)
|
|
305
|
+
var colorWithHash = getColorDisplayValue(newHexColor);
|
|
306
|
+
if (valueProp === undefined || colorWithHash !== valueProp) {
|
|
307
|
+
onChange === null || onChange === void 0 || onChange(colorWithHash);
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
var handlePaletteMouseUp = function handlePaletteMouseUp() {
|
|
311
|
+
isDraggingRef.current = false;
|
|
312
|
+
window.removeEventListener('mousemove', handlePaletteMouseMove);
|
|
313
|
+
window.removeEventListener('mouseup', handlePaletteMouseUp);
|
|
314
|
+
};
|
|
315
|
+
var handlePaletteMouseDown = function handlePaletteMouseDown(e) {
|
|
316
|
+
if (disabled) return;
|
|
317
|
+
e.preventDefault();
|
|
318
|
+
isDraggingRef.current = true;
|
|
319
|
+
var rect = e.currentTarget.getBoundingClientRect();
|
|
320
|
+
var left = rect.left,
|
|
321
|
+
top = rect.top,
|
|
322
|
+
width = rect.width,
|
|
323
|
+
height = rect.height;
|
|
324
|
+
|
|
325
|
+
// 计算初始位置
|
|
326
|
+
var newS = (e.clientX - left) / width;
|
|
327
|
+
var newB = (e.clientY - top) / height;
|
|
328
|
+
|
|
329
|
+
// 边界限制
|
|
330
|
+
newS = Math.max(0, Math.min(1, newS));
|
|
331
|
+
newB = Math.max(0, Math.min(1, newB));
|
|
332
|
+
|
|
333
|
+
// 转换为百分比
|
|
334
|
+
var saturationValue = newS * 100;
|
|
335
|
+
var brightnessValue = (1 - newB) * 100;
|
|
336
|
+
|
|
337
|
+
// 一次性更新 S 和 B 值
|
|
338
|
+
setSaturation(saturationValue);
|
|
339
|
+
setBrightness(brightnessValue);
|
|
340
|
+
|
|
341
|
+
// 计算新的颜色值
|
|
342
|
+
var newHexColor = hsbToHex(hue, saturationValue, brightnessValue);
|
|
343
|
+
setInternalValue(newHexColor);
|
|
344
|
+
setInputValue(newHexColor);
|
|
345
|
+
lastValidValueRef.current = newHexColor;
|
|
346
|
+
|
|
347
|
+
// 触发 onChange 回调(带井号)
|
|
348
|
+
var colorWithHash = getColorDisplayValue(newHexColor);
|
|
349
|
+
if (valueProp === undefined || colorWithHash !== valueProp) {
|
|
350
|
+
onChange === null || onChange === void 0 || onChange(colorWithHash);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
// 添加全局监听
|
|
354
|
+
window.addEventListener('mousemove', handlePaletteMouseMove);
|
|
355
|
+
window.addEventListener('mouseup', handlePaletteMouseUp);
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
// 计算指示器位置
|
|
359
|
+
var getIndicatorPosition = function getIndicatorPosition() {
|
|
360
|
+
var _paletteRef$current, _paletteRef$current2, _indicatorRef$current, _indicatorRef$current2;
|
|
361
|
+
// 动态获取调色板实际尺寸
|
|
362
|
+
var paletteWidth = ((_paletteRef$current = paletteRef.current) === null || _paletteRef$current === void 0 ? void 0 : _paletteRef$current.offsetWidth) || 160;
|
|
363
|
+
var paletteHeight = ((_paletteRef$current2 = paletteRef.current) === null || _paletteRef$current2 === void 0 ? void 0 : _paletteRef$current2.offsetHeight) || 90;
|
|
364
|
+
|
|
365
|
+
// 动态获取指示器实际尺寸用于居中
|
|
366
|
+
var indicatorWidth = ((_indicatorRef$current = indicatorRef.current) === null || _indicatorRef$current === void 0 ? void 0 : _indicatorRef$current.offsetWidth) || 14;
|
|
367
|
+
var indicatorHeight = ((_indicatorRef$current2 = indicatorRef.current) === null || _indicatorRef$current2 === void 0 ? void 0 : _indicatorRef$current2.offsetHeight) || 14;
|
|
368
|
+
var halfIndicatorWidth = indicatorWidth / 2;
|
|
369
|
+
var halfIndicatorHeight = indicatorHeight / 2;
|
|
370
|
+
|
|
371
|
+
// S: 0% 在左边(0px),100% 在右边(paletteWidth)
|
|
372
|
+
// B: 100% 在顶部(0px),0% 在底部(paletteHeight)
|
|
373
|
+
var leftPx = saturation / 100 * paletteWidth;
|
|
374
|
+
var topPx = (100 - brightness) / 100 * paletteHeight;
|
|
375
|
+
return "translate3d(".concat(leftPx - halfIndicatorWidth, "px, ").concat(topPx - halfIndicatorHeight, "px, 0)");
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
// 计算当前颜色的显示值(用于 background-color)
|
|
379
|
+
var currentColorDisplay = getCurrentColor() ? getColorDisplayValue(getCurrentColor()) : 'transparent';
|
|
380
|
+
|
|
381
|
+
// 计算 S 滑块的背景色(只基于当前 H,S=100%, B=100%)
|
|
382
|
+
var saturationSliderColor = function () {
|
|
383
|
+
var rgb = hsbToRgb(hue, 100, 100);
|
|
384
|
+
return "rgb(".concat(rgb.r, ", ").concat(rgb.g, ", ").concat(rgb.b, ")");
|
|
385
|
+
}();
|
|
386
|
+
|
|
387
|
+
// 计算 B 滑块的背景色(只基于当前 H,S=100%, B=100%)
|
|
388
|
+
var brightnessSliderColor = function () {
|
|
389
|
+
var rgb = hsbToRgb(hue, 100, 100);
|
|
390
|
+
return "rgb(".concat(rgb.r, ", ").concat(rgb.g, ", ").concat(rgb.b, ")");
|
|
391
|
+
}();
|
|
392
|
+
|
|
393
|
+
// H 滑块的色相环背景
|
|
394
|
+
var hueSliderBackground = 'linear-gradient(90deg, #ff0000 0%, #ffff00 16.66%, #00ff00 33.33%, #00ffff 50%, #0000ff 66.66%, #ff00ff 83.33%, #ff0000 100%)';
|
|
395
|
+
|
|
396
|
+
// 自定义颜色选择器内容
|
|
397
|
+
var customColorContent = /*#__PURE__*/React.createElement("div", {
|
|
398
|
+
"data-odn-cp-popup": true
|
|
399
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
400
|
+
ref: paletteRef,
|
|
401
|
+
"data-odn-cp-popup-panel": true,
|
|
402
|
+
style: {
|
|
403
|
+
backgroundColor: "hsl(".concat(hue, ", 100%, 50%)")
|
|
404
|
+
},
|
|
405
|
+
onMouseDown: handlePaletteMouseDown
|
|
406
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
407
|
+
"data-odn-cp-popup-panel-s": true
|
|
408
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
409
|
+
"data-odn-cp-popup-panel-b": true
|
|
410
|
+
}), /*#__PURE__*/React.createElement("i", {
|
|
411
|
+
ref: indicatorRef,
|
|
412
|
+
"data-odn-cp-popup-panel-indicator": true,
|
|
413
|
+
style: {
|
|
414
|
+
transform: getIndicatorPosition(),
|
|
415
|
+
backgroundColor: currentColorDisplay
|
|
416
|
+
}
|
|
417
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
418
|
+
"data-odn-cp-popup-slider-wrapper": true
|
|
419
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
420
|
+
"data-odn-cp-popup-slider-wrapper-label": true
|
|
421
|
+
}, "H"), /*#__PURE__*/React.createElement(Slider, {
|
|
422
|
+
"data-odn-cp-popup-slider": true,
|
|
423
|
+
"data-odn-cp-popup-slider-h": true,
|
|
424
|
+
tooltipVisible: false,
|
|
425
|
+
value: hue,
|
|
426
|
+
min: 0,
|
|
427
|
+
max: 359,
|
|
428
|
+
onChange: handleHueChange,
|
|
429
|
+
style: {
|
|
430
|
+
'--odn-slider-rail-background': hueSliderBackground
|
|
431
|
+
}
|
|
432
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
433
|
+
"data-odn-cp-popup-slider-wrapper": true
|
|
434
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
435
|
+
"data-odn-cp-popup-slider-wrapper-label": true
|
|
436
|
+
}, "S"), /*#__PURE__*/React.createElement(Slider, {
|
|
437
|
+
"data-odn-cp-popup-slider": true,
|
|
438
|
+
"data-odn-cp-popup-slider-s": true,
|
|
439
|
+
tooltipVisible: false,
|
|
440
|
+
value: saturation,
|
|
441
|
+
min: 0,
|
|
442
|
+
max: 100,
|
|
443
|
+
onChange: handleSaturationChange,
|
|
444
|
+
style: {
|
|
445
|
+
'--odn-slider-rail-background': "linear-gradient(90deg, rgb(255, 255, 255) 0%, transparent 100%), ".concat(saturationSliderColor)
|
|
446
|
+
}
|
|
447
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
448
|
+
"data-odn-cp-popup-slider-wrapper": true
|
|
449
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
450
|
+
"data-odn-cp-popup-slider-wrapper-label": true
|
|
451
|
+
}, "B"), /*#__PURE__*/React.createElement(Slider, {
|
|
452
|
+
"data-odn-cp-popup-slider": true,
|
|
453
|
+
"data-odn-cp-popup-slider-b": true,
|
|
454
|
+
tooltipVisible: false,
|
|
455
|
+
value: brightness,
|
|
456
|
+
min: 0,
|
|
457
|
+
max: 100,
|
|
458
|
+
onChange: handleBrightnessChange,
|
|
459
|
+
style: {
|
|
460
|
+
'--odn-slider-rail-background': "linear-gradient(90deg, rgb(0, 0, 0) 0%, transparent 100%), ".concat(brightnessSliderColor)
|
|
461
|
+
}
|
|
462
|
+
})));
|
|
463
|
+
|
|
464
|
+
// 调色板颜色点击处理
|
|
465
|
+
var handlePaletteColorClick = function handlePaletteColorClick(color) {
|
|
466
|
+
var cleanColor = color.startsWith('#') ? color.slice(1) : color;
|
|
467
|
+
if (isValidHexColor(normalizeHexColor(cleanColor))) {
|
|
468
|
+
var normalizedColor = normalizeHexColor(cleanColor);
|
|
469
|
+
var expandedColor = expandHexColor(normalizedColor);
|
|
470
|
+
var _hsb2 = hexToHsb(expandedColor);
|
|
471
|
+
if (_hsb2) {
|
|
472
|
+
setHue(_hsb2.h);
|
|
473
|
+
setSaturation(_hsb2.s);
|
|
474
|
+
setBrightness(_hsb2.b);
|
|
475
|
+
}
|
|
476
|
+
setInternalValue(expandedColor);
|
|
477
|
+
setInputValue(expandedColor);
|
|
478
|
+
lastValidValueRef.current = expandedColor;
|
|
479
|
+
var colorWithHash = getColorDisplayValue(expandedColor);
|
|
480
|
+
if (valueProp === undefined || colorWithHash !== valueProp) {
|
|
481
|
+
onChange === null || onChange === void 0 || onChange(colorWithHash);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
// Accordion 状态管理
|
|
487
|
+
var _useState11 = useState(0),
|
|
488
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
489
|
+
openPanelIndex = _useState12[0],
|
|
490
|
+
setOpenPanelIndex = _useState12[1]; // 默认打开第一个调色板
|
|
491
|
+
|
|
492
|
+
var handlePanelToggle = function handlePanelToggle(index) {
|
|
493
|
+
setOpenPanelIndex(openPanelIndex === index ? -1 : index);
|
|
494
|
+
};
|
|
495
|
+
var defaultPopup = palettes ? /*#__PURE__*/React.createElement("div", {
|
|
496
|
+
"data-odn-cp-popup-with-palettes": true
|
|
497
|
+
}, palettes.map(function (palette, index) {
|
|
498
|
+
return /*#__PURE__*/React.createElement(Collapsible, {
|
|
499
|
+
key: index,
|
|
500
|
+
open: openPanelIndex === index,
|
|
501
|
+
onOpenChange: function onOpenChange() {
|
|
502
|
+
return handlePanelToggle(index);
|
|
503
|
+
},
|
|
504
|
+
"data-odn-cp-popup-collpase-panel": true
|
|
505
|
+
}, /*#__PURE__*/React.createElement(CollapsibleTrigger, {
|
|
506
|
+
asChild: true
|
|
507
|
+
}, function (_ref) {
|
|
508
|
+
var isOpen = _ref.isOpen;
|
|
509
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
510
|
+
"data-odn-cp-popup-collpase-panel-header": true
|
|
511
|
+
}, /*#__PURE__*/React.createElement("span", null, palette.title), /*#__PURE__*/React.createElement(Icon, {
|
|
512
|
+
name: "down",
|
|
513
|
+
"data-odn-cp-popup-collpase-panel-header-icon": true,
|
|
514
|
+
"data-odn-cp-popup-collpase-panel-header-icon-open": isOpen
|
|
515
|
+
}));
|
|
516
|
+
}), /*#__PURE__*/React.createElement(CollapsibleContent, {
|
|
517
|
+
transition: {
|
|
518
|
+
duration: 0
|
|
519
|
+
}
|
|
520
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
521
|
+
"data-odn-cp-popup-collpase-panel-content": true
|
|
522
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
523
|
+
"data-odn-cp-popup-collpase-panel-content-grid": true
|
|
524
|
+
}, palette.colors.map(function (color, colorIndex) {
|
|
525
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
526
|
+
key: colorIndex,
|
|
527
|
+
"data-odn-cp-popup-collpase-panel-content-grid-item": true,
|
|
528
|
+
style: {
|
|
529
|
+
backgroundColor: color
|
|
530
|
+
},
|
|
531
|
+
onClick: function onClick() {
|
|
532
|
+
return handlePaletteColorClick(color);
|
|
533
|
+
},
|
|
534
|
+
title: color
|
|
535
|
+
});
|
|
536
|
+
})))));
|
|
537
|
+
}), /*#__PURE__*/React.createElement(Collapsible, {
|
|
538
|
+
open: openPanelIndex === palettes.length,
|
|
539
|
+
onOpenChange: function onOpenChange() {
|
|
540
|
+
return handlePanelToggle(palettes.length);
|
|
541
|
+
}
|
|
542
|
+
}, /*#__PURE__*/React.createElement(CollapsibleTrigger, {
|
|
543
|
+
asChild: true
|
|
544
|
+
}, function (_ref2) {
|
|
545
|
+
var isOpen = _ref2.isOpen;
|
|
546
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
547
|
+
"data-odn-cp-popup-collpase-panel-header": true
|
|
548
|
+
}, /*#__PURE__*/React.createElement("span", null, "\u81EA\u5B9A\u4E49"), /*#__PURE__*/React.createElement(Icon, {
|
|
549
|
+
name: "down",
|
|
550
|
+
"data-odn-cp-popup-collpase-panel-header-icon": true,
|
|
551
|
+
"data-odn-cp-popup-collpase-panel-header-icon-open": isOpen
|
|
552
|
+
}));
|
|
553
|
+
}), /*#__PURE__*/React.createElement(CollapsibleContent, {
|
|
554
|
+
transition: {
|
|
555
|
+
duration: 0
|
|
556
|
+
}
|
|
557
|
+
}, customColorContent))) : customColorContent;
|
|
558
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
559
|
+
"data-odn-cp": true
|
|
560
|
+
}, /*#__PURE__*/React.createElement(Popover, {
|
|
561
|
+
trigger: "click",
|
|
562
|
+
placement: "bottomLeft",
|
|
563
|
+
popupStyle: {
|
|
564
|
+
padding: 0
|
|
565
|
+
},
|
|
566
|
+
popup: defaultPopup
|
|
567
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
568
|
+
"data-odn-cp-button": true,
|
|
569
|
+
disabled: disabled
|
|
570
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
571
|
+
"data-odn-cp-button-inner": true,
|
|
572
|
+
style: {
|
|
573
|
+
backgroundColor: currentColorDisplay
|
|
574
|
+
}
|
|
575
|
+
}))), /*#__PURE__*/React.createElement(Input, {
|
|
576
|
+
"data-odn-cp-input": true,
|
|
577
|
+
value: inputValue,
|
|
578
|
+
placeholder: placeholder,
|
|
579
|
+
disabled: disabled,
|
|
580
|
+
onChange: handleInputChange,
|
|
581
|
+
onFocus: handleInputFocus,
|
|
582
|
+
onBlur: handleInputBlur,
|
|
583
|
+
leftElement: /*#__PURE__*/React.createElement("div", {
|
|
584
|
+
"data-odn-cp-input-left": true
|
|
585
|
+
}, "#")
|
|
586
|
+
}));
|
|
587
|
+
};
|
|
588
|
+
export default ColorPicker;
|