solid-tom-ui 1.0.5 → 1.0.7
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 +246 -237
- package/components/avatar/avatar.js.map +1 -0
- package/components/badge/badge.js.map +1 -0
- package/components/breadcrumb/breadcrumb.js.map +1 -0
- package/components/button/button.js.map +1 -0
- package/components/carousel/carousel.js.map +1 -0
- package/components/chat-bubble/chatBubble.js.map +1 -0
- package/components/checkbox/checkbox.js.map +1 -0
- package/components/collapse/collapse.js.map +1 -0
- package/components/context-menu/context-menu.js.map +1 -0
- package/components/context-menu/context-menu.store.js.map +1 -0
- package/components/divider/divider.js.map +1 -0
- package/components/dropdown/dropdown.js.map +1 -0
- package/components/dropdown/dropdown.store.js.map +1 -0
- package/components/float-button/float-button.js.map +1 -0
- package/components/hover-3d-image/hover-3d-image.js.map +1 -0
- package/components/image-preview/image-preview.js.map +1 -0
- package/components/input/input.js.map +1 -0
- package/components/input/input.utils.js.map +1 -0
- package/components/input/variants/input-color.js.map +1 -0
- package/components/input/variants/input-date.js.map +1 -0
- package/components/input/variants/input-number.js.map +1 -0
- package/components/input/variants/input-otp.js.map +1 -0
- package/components/input/variants/input-password.js.map +1 -0
- package/components/input/variants/input-radio.js.map +1 -0
- package/components/input/variants/input-range.js.map +1 -0
- package/components/input/variants/input-text.js.map +1 -0
- package/components/input/variants/input-textarea.js.map +1 -0
- package/components/loading/loading.js.map +1 -0
- package/components/mansory/mansory.js.map +1 -0
- package/components/menu/menu.js.map +1 -0
- package/components/modal/modal.js.map +1 -0
- package/components/modal/modalContext.js.map +1 -0
- package/components/pagination/pagination.js.map +1 -0
- package/components/progress-bar/progress-bar.js.map +1 -0
- package/components/qr-code/qr-code.js.map +1 -0
- package/components/select/select.js.map +1 -0
- package/components/select-zone/select-zone.js.map +1 -0
- package/components/skeleton/skeleton.js.map +1 -0
- package/components/slider/slider.js.map +1 -0
- package/components/splitter/splitter.js.map +1 -0
- package/components/steps/steps.js.map +1 -0
- package/components/swap/swap.js.map +1 -0
- package/components/switch/switch.js.map +1 -0
- package/components/tab/tab.js.map +1 -0
- package/components/table/table.js.map +1 -0
- package/components/timeline/timeline.js.map +1 -0
- package/components/toast/icons/ErrorIcon.js.map +1 -0
- package/components/toast/icons/IconCircle.js.map +1 -0
- package/components/toast/icons/InfoIcon.js.map +1 -0
- package/components/toast/icons/LoaderIcon.js.map +1 -0
- package/components/toast/icons/SuccessIcon.js.map +1 -0
- package/components/toast/icons/WarningIcon.js.map +1 -0
- package/components/toast/toast.js.map +1 -0
- package/components/toast/toast.store.js.map +1 -0
- package/components/tooltip/tooltip.js.map +1 -0
- package/components/tour/tour.js.map +1 -0
- package/components/upload/upload.js.map +1 -0
- package/components/z-index/z-index.context.js.map +1 -0
- package/components/z-index/z-index.js.map +1 -0
- package/components/z-index/z-index.store.js.map +1 -0
- package/components/z-index/z-index.types.js.map +1 -0
- package/package.json +14 -96
- package/utils/cn.js.map +1 -0
- package/utils/element-tracker.js.map +1 -0
- package/utils/helper.js.map +1 -0
- package/utils/hoc.js.map +1 -0
- package/workspace.code-workspace +8 -0
- package/dist/components/avatar/avatar.js.map +0 -1
- package/dist/components/badge/badge.js.map +0 -1
- package/dist/components/breadcrumb/breadcrumb.js.map +0 -1
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/carousel/carousel.js.map +0 -1
- package/dist/components/chat-bubble/chatBubble.js.map +0 -1
- package/dist/components/checkbox/checkbox.js.map +0 -1
- package/dist/components/collapse/collapse.js.map +0 -1
- package/dist/components/context-menu/context-menu.js.map +0 -1
- package/dist/components/context-menu/context-menu.store.js.map +0 -1
- package/dist/components/divider/divider.js.map +0 -1
- package/dist/components/dropdown/dropdown.js.map +0 -1
- package/dist/components/dropdown/dropdown.store.js.map +0 -1
- package/dist/components/float-button/float-button.js.map +0 -1
- package/dist/components/hover-3d-image/hover-3d-image.js.map +0 -1
- package/dist/components/image-preview/image-preview.js.map +0 -1
- package/dist/components/input/input.js.map +0 -1
- package/dist/components/input/input.utils.js.map +0 -1
- package/dist/components/input/variants/input-color.js.map +0 -1
- package/dist/components/input/variants/input-date.js.map +0 -1
- package/dist/components/input/variants/input-number.js.map +0 -1
- package/dist/components/input/variants/input-otp.js.map +0 -1
- package/dist/components/input/variants/input-password.js.map +0 -1
- package/dist/components/input/variants/input-radio.js.map +0 -1
- package/dist/components/input/variants/input-range.js.map +0 -1
- package/dist/components/input/variants/input-text.js.map +0 -1
- package/dist/components/input/variants/input-textarea.js.map +0 -1
- package/dist/components/loading/loading.js.map +0 -1
- package/dist/components/mansory/mansory.js.map +0 -1
- package/dist/components/menu/menu.js.map +0 -1
- package/dist/components/modal/modal.js.map +0 -1
- package/dist/components/modal/modalContext.js.map +0 -1
- package/dist/components/pagination/pagination.js.map +0 -1
- package/dist/components/progress-bar/progress-bar.js.map +0 -1
- package/dist/components/qr-code/qr-code.js.map +0 -1
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/select-zone/select-zone.js.map +0 -1
- package/dist/components/skeleton/skeleton.js.map +0 -1
- package/dist/components/slider/slider.js.map +0 -1
- package/dist/components/splitter/splitter.js.map +0 -1
- package/dist/components/steps/steps.js.map +0 -1
- package/dist/components/swap/swap.js.map +0 -1
- package/dist/components/switch/switch.js.map +0 -1
- package/dist/components/tab/tab.js.map +0 -1
- package/dist/components/table/table.js.map +0 -1
- package/dist/components/timeline/timeline.js.map +0 -1
- package/dist/components/toast/icons/ErrorIcon.js.map +0 -1
- package/dist/components/toast/icons/IconCircle.js.map +0 -1
- package/dist/components/toast/icons/InfoIcon.js.map +0 -1
- package/dist/components/toast/icons/LoaderIcon.js.map +0 -1
- package/dist/components/toast/icons/SuccessIcon.js.map +0 -1
- package/dist/components/toast/icons/WarningIcon.js.map +0 -1
- package/dist/components/toast/toast.js.map +0 -1
- package/dist/components/toast/toast.store.js.map +0 -1
- package/dist/components/tooltip/tooltip.js.map +0 -1
- package/dist/components/tour/tour.js.map +0 -1
- package/dist/components/upload/upload.js.map +0 -1
- package/dist/components/z-index/z-index.context.js.map +0 -1
- package/dist/components/z-index/z-index.js.map +0 -1
- package/dist/components/z-index/z-index.store.js.map +0 -1
- package/dist/components/z-index/z-index.types.js.map +0 -1
- package/dist/utils/cn.js.map +0 -1
- package/dist/utils/element-tracker.js.map +0 -1
- package/dist/utils/helper.js.map +0 -1
- package/dist/utils/hoc.js.map +0 -1
- /package/{dist/components → components}/avatar/avatar.d.ts +0 -0
- /package/{dist/components → components}/avatar/avatar.d.ts.map +0 -0
- /package/{dist/components → components}/avatar/avatar.js +0 -0
- /package/{dist/components → components}/avatar/avatar.types.d.ts +0 -0
- /package/{dist/components → components}/avatar/avatar.types.d.ts.map +0 -0
- /package/{dist/components → components}/avatar/index.d.ts +0 -0
- /package/{dist/components → components}/avatar/index.d.ts.map +0 -0
- /package/{dist/components → components}/badge/badge.d.ts +0 -0
- /package/{dist/components → components}/badge/badge.d.ts.map +0 -0
- /package/{dist/components → components}/badge/badge.js +0 -0
- /package/{dist/components → components}/badge/badge.types.d.ts +0 -0
- /package/{dist/components → components}/badge/badge.types.d.ts.map +0 -0
- /package/{dist/components → components}/badge/index.d.ts +0 -0
- /package/{dist/components → components}/badge/index.d.ts.map +0 -0
- /package/{dist/components → components}/blank/blank.d.ts +0 -0
- /package/{dist/components → components}/blank/blank.d.ts.map +0 -0
- /package/{dist/components → components}/blank/index.d.ts +0 -0
- /package/{dist/components → components}/blank/index.d.ts.map +0 -0
- /package/{dist/components → components}/breadcrumb/breadcrumb.d.ts +0 -0
- /package/{dist/components → components}/breadcrumb/breadcrumb.d.ts.map +0 -0
- /package/{dist/components → components}/breadcrumb/breadcrumb.js +0 -0
- /package/{dist/components → components}/breadcrumb/index.d.ts +0 -0
- /package/{dist/components → components}/breadcrumb/index.d.ts.map +0 -0
- /package/{dist/components → components}/button/button.d.ts +0 -0
- /package/{dist/components → components}/button/button.d.ts.map +0 -0
- /package/{dist/components → components}/button/button.js +0 -0
- /package/{dist/components → components}/button/button.types.d.ts +0 -0
- /package/{dist/components → components}/button/button.types.d.ts.map +0 -0
- /package/{dist/components → components}/button/index.d.ts +0 -0
- /package/{dist/components → components}/button/index.d.ts.map +0 -0
- /package/{dist/components → components}/carousel/carousel.d.ts +0 -0
- /package/{dist/components → components}/carousel/carousel.d.ts.map +0 -0
- /package/{dist/components → components}/carousel/carousel.js +0 -0
- /package/{dist/components → components}/carousel/carousel.types.d.ts +0 -0
- /package/{dist/components → components}/carousel/carousel.types.d.ts.map +0 -0
- /package/{dist/components → components}/carousel/index.d.ts +0 -0
- /package/{dist/components → components}/carousel/index.d.ts.map +0 -0
- /package/{dist/components → components}/chat-bubble/chatBubble.d.ts +0 -0
- /package/{dist/components → components}/chat-bubble/chatBubble.d.ts.map +0 -0
- /package/{dist/components → components}/chat-bubble/chatBubble.js +0 -0
- /package/{dist/components → components}/chat-bubble/chatBubble.type.d.ts +0 -0
- /package/{dist/components → components}/chat-bubble/chatBubble.type.d.ts.map +0 -0
- /package/{dist/components → components}/chat-bubble/index.d.ts +0 -0
- /package/{dist/components → components}/chat-bubble/index.d.ts.map +0 -0
- /package/{dist/components → components}/checkbox/checkbox.d.ts +0 -0
- /package/{dist/components → components}/checkbox/checkbox.d.ts.map +0 -0
- /package/{dist/components → components}/checkbox/checkbox.js +0 -0
- /package/{dist/components → components}/checkbox/index.d.ts +0 -0
- /package/{dist/components → components}/checkbox/index.d.ts.map +0 -0
- /package/{dist/components → components}/collapse/collapse.d.ts +0 -0
- /package/{dist/components → components}/collapse/collapse.d.ts.map +0 -0
- /package/{dist/components → components}/collapse/collapse.js +0 -0
- /package/{dist/components → components}/collapse/collapse.types.d.ts +0 -0
- /package/{dist/components → components}/collapse/collapse.types.d.ts.map +0 -0
- /package/{dist/components → components}/collapse/index.d.ts +0 -0
- /package/{dist/components → components}/collapse/index.d.ts.map +0 -0
- /package/{dist/components → components}/context-menu/context-menu.d.ts +0 -0
- /package/{dist/components → components}/context-menu/context-menu.d.ts.map +0 -0
- /package/{dist/components → components}/context-menu/context-menu.js +0 -0
- /package/{dist/components → components}/context-menu/context-menu.store.d.ts +0 -0
- /package/{dist/components → components}/context-menu/context-menu.store.d.ts.map +0 -0
- /package/{dist/components → components}/context-menu/context-menu.store.js +0 -0
- /package/{dist/components → components}/context-menu/context-menu.types.d.ts +0 -0
- /package/{dist/components → components}/context-menu/context-menu.types.d.ts.map +0 -0
- /package/{dist/components → components}/context-menu/index.d.ts +0 -0
- /package/{dist/components → components}/context-menu/index.d.ts.map +0 -0
- /package/{dist/components → components}/diff/diff.d.ts +0 -0
- /package/{dist/components → components}/diff/diff.d.ts.map +0 -0
- /package/{dist/components → components}/diff/diff.js +0 -0
- /package/{dist/components → components}/diff/diff.js.map +0 -0
- /package/{dist/components → components}/diff/index.d.ts +0 -0
- /package/{dist/components → components}/diff/index.d.ts.map +0 -0
- /package/{dist/components → components}/divider/divider.d.ts +0 -0
- /package/{dist/components → components}/divider/divider.d.ts.map +0 -0
- /package/{dist/components → components}/divider/divider.js +0 -0
- /package/{dist/components → components}/divider/divider.types.d.ts +0 -0
- /package/{dist/components → components}/divider/divider.types.d.ts.map +0 -0
- /package/{dist/components → components}/divider/index.d.ts +0 -0
- /package/{dist/components → components}/divider/index.d.ts.map +0 -0
- /package/{dist/components → components}/drawer/drawer.d.ts +0 -0
- /package/{dist/components → components}/drawer/drawer.d.ts.map +0 -0
- /package/{dist/components → components}/drawer/drawer.js +0 -0
- /package/{dist/components → components}/drawer/drawer.js.map +0 -0
- /package/{dist/components → components}/drawer/drawer.types.d.ts +0 -0
- /package/{dist/components → components}/drawer/drawer.types.d.ts.map +0 -0
- /package/{dist/components → components}/drawer/index.d.ts +0 -0
- /package/{dist/components → components}/drawer/index.d.ts.map +0 -0
- /package/{dist/components → components}/dropdown/dropdown.d.ts +0 -0
- /package/{dist/components → components}/dropdown/dropdown.d.ts.map +0 -0
- /package/{dist/components → components}/dropdown/dropdown.js +0 -0
- /package/{dist/components → components}/dropdown/dropdown.store.d.ts +0 -0
- /package/{dist/components → components}/dropdown/dropdown.store.d.ts.map +0 -0
- /package/{dist/components → components}/dropdown/dropdown.store.js +0 -0
- /package/{dist/components → components}/dropdown/dropdown.types.d.ts +0 -0
- /package/{dist/components → components}/dropdown/dropdown.types.d.ts.map +0 -0
- /package/{dist/components → components}/dropdown/index.d.ts +0 -0
- /package/{dist/components → components}/dropdown/index.d.ts.map +0 -0
- /package/{dist/components → components}/float-button/float-button.d.ts +0 -0
- /package/{dist/components → components}/float-button/float-button.d.ts.map +0 -0
- /package/{dist/components → components}/float-button/float-button.js +0 -0
- /package/{dist/components → components}/float-button/float-button.types.d.ts +0 -0
- /package/{dist/components → components}/float-button/float-button.types.d.ts.map +0 -0
- /package/{dist/components → components}/float-button/index.d.ts +0 -0
- /package/{dist/components → components}/float-button/index.d.ts.map +0 -0
- /package/{dist/components → components}/hover-3d-image/hover-3d-example.d.ts +0 -0
- /package/{dist/components → components}/hover-3d-image/hover-3d-example.d.ts.map +0 -0
- /package/{dist/components → components}/hover-3d-image/hover-3d-image.d.ts +0 -0
- /package/{dist/components → components}/hover-3d-image/hover-3d-image.d.ts.map +0 -0
- /package/{dist/components → components}/hover-3d-image/hover-3d-image.js +0 -0
- /package/{dist/components → components}/hover-3d-image/index.d.ts +0 -0
- /package/{dist/components → components}/hover-3d-image/index.d.ts.map +0 -0
- /package/{dist/components → components}/image-preview/image-preview.d.ts +0 -0
- /package/{dist/components → components}/image-preview/image-preview.d.ts.map +0 -0
- /package/{dist/components → components}/image-preview/image-preview.js +0 -0
- /package/{dist/components → components}/image-preview/index.d.ts +0 -0
- /package/{dist/components → components}/image-preview/index.d.ts.map +0 -0
- /package/{dist/components → components}/indicator/index.d.ts +0 -0
- /package/{dist/components → components}/indicator/index.d.ts.map +0 -0
- /package/{dist/components → components}/indicator/indicator.d.ts +0 -0
- /package/{dist/components → components}/indicator/indicator.d.ts.map +0 -0
- /package/{dist/components → components}/indicator/indicator.js +0 -0
- /package/{dist/components → components}/indicator/indicator.js.map +0 -0
- /package/{dist/components → components}/indicator/indicator.types.d.ts +0 -0
- /package/{dist/components → components}/indicator/indicator.types.d.ts.map +0 -0
- /package/{dist/components → components}/input/index.d.ts +0 -0
- /package/{dist/components → components}/input/index.d.ts.map +0 -0
- /package/{dist/components → components}/input/input.d.ts +0 -0
- /package/{dist/components → components}/input/input.d.ts.map +0 -0
- /package/{dist/components → components}/input/input.js +0 -0
- /package/{dist/components → components}/input/input.types.d.ts +0 -0
- /package/{dist/components → components}/input/input.types.d.ts.map +0 -0
- /package/{dist/components → components}/input/input.utils.d.ts +0 -0
- /package/{dist/components → components}/input/input.utils.d.ts.map +0 -0
- /package/{dist/components → components}/input/input.utils.js +0 -0
- /package/{dist/components → components}/input/variants/input-color.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-color.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-color.js +0 -0
- /package/{dist/components → components}/input/variants/input-date.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-date.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-date.js +0 -0
- /package/{dist/components → components}/input/variants/input-number.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-number.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-number.js +0 -0
- /package/{dist/components → components}/input/variants/input-otp.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-otp.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-otp.js +0 -0
- /package/{dist/components → components}/input/variants/input-password.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-password.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-password.js +0 -0
- /package/{dist/components → components}/input/variants/input-radio.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-radio.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-radio.js +0 -0
- /package/{dist/components → components}/input/variants/input-range.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-range.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-range.js +0 -0
- /package/{dist/components → components}/input/variants/input-text.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-text.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-text.js +0 -0
- /package/{dist/components → components}/input/variants/input-textarea.d.ts +0 -0
- /package/{dist/components → components}/input/variants/input-textarea.d.ts.map +0 -0
- /package/{dist/components → components}/input/variants/input-textarea.js +0 -0
- /package/{dist/components → components}/loading/index.d.ts +0 -0
- /package/{dist/components → components}/loading/index.d.ts.map +0 -0
- /package/{dist/components → components}/loading/loading.d.ts +0 -0
- /package/{dist/components → components}/loading/loading.d.ts.map +0 -0
- /package/{dist/components → components}/loading/loading.js +0 -0
- /package/{dist/components → components}/mansory/index.d.ts +0 -0
- /package/{dist/components → components}/mansory/index.d.ts.map +0 -0
- /package/{dist/components → components}/mansory/mansory.d.ts +0 -0
- /package/{dist/components → components}/mansory/mansory.d.ts.map +0 -0
- /package/{dist/components → components}/mansory/mansory.js +0 -0
- /package/{dist/components → components}/mansory/mansory.types.d.ts +0 -0
- /package/{dist/components → components}/mansory/mansory.types.d.ts.map +0 -0
- /package/{dist/components → components}/menu/index.d.ts +0 -0
- /package/{dist/components → components}/menu/index.d.ts.map +0 -0
- /package/{dist/components → components}/menu/menu.d.ts +0 -0
- /package/{dist/components → components}/menu/menu.d.ts.map +0 -0
- /package/{dist/components → components}/menu/menu.data-example.d.ts +0 -0
- /package/{dist/components → components}/menu/menu.data-example.d.ts.map +0 -0
- /package/{dist/components → components}/menu/menu.js +0 -0
- /package/{dist/components → components}/menu/menu.types.d.ts +0 -0
- /package/{dist/components → components}/menu/menu.types.d.ts.map +0 -0
- /package/{dist/components → components}/modal/index.d.ts +0 -0
- /package/{dist/components → components}/modal/index.d.ts.map +0 -0
- /package/{dist/components → components}/modal/modal.d.ts +0 -0
- /package/{dist/components → components}/modal/modal.d.ts.map +0 -0
- /package/{dist/components → components}/modal/modal.js +0 -0
- /package/{dist/components → components}/modal/modalContext.d.ts +0 -0
- /package/{dist/components → components}/modal/modalContext.d.ts.map +0 -0
- /package/{dist/components → components}/modal/modalContext.js +0 -0
- /package/{dist/components → components}/pagination/index.d.ts +0 -0
- /package/{dist/components → components}/pagination/index.d.ts.map +0 -0
- /package/{dist/components → components}/pagination/pagination.d.ts +0 -0
- /package/{dist/components → components}/pagination/pagination.d.ts.map +0 -0
- /package/{dist/components → components}/pagination/pagination.js +0 -0
- /package/{dist/components → components}/pagination/pagination.types.d.ts +0 -0
- /package/{dist/components → components}/pagination/pagination.types.d.ts.map +0 -0
- /package/{dist/components → components}/progress-bar/index.d.ts +0 -0
- /package/{dist/components → components}/progress-bar/index.d.ts.map +0 -0
- /package/{dist/components → components}/progress-bar/progress-bar.d.ts +0 -0
- /package/{dist/components → components}/progress-bar/progress-bar.d.ts.map +0 -0
- /package/{dist/components → components}/progress-bar/progress-bar.js +0 -0
- /package/{dist/components → components}/progress-bar/progress-bar.types.d.ts +0 -0
- /package/{dist/components → components}/progress-bar/progress-bar.types.d.ts.map +0 -0
- /package/{dist/components → components}/qr-code/index.d.ts +0 -0
- /package/{dist/components → components}/qr-code/index.d.ts.map +0 -0
- /package/{dist/components → components}/qr-code/qr-code.d.ts +0 -0
- /package/{dist/components → components}/qr-code/qr-code.d.ts.map +0 -0
- /package/{dist/components → components}/qr-code/qr-code.js +0 -0
- /package/{dist/components → components}/qr-code/qr-code.types.d.ts +0 -0
- /package/{dist/components → components}/qr-code/qr-code.types.d.ts.map +0 -0
- /package/{dist/components → components}/rating/index.d.ts +0 -0
- /package/{dist/components → components}/rating/index.d.ts.map +0 -0
- /package/{dist/components → components}/rating/rating.d.ts +0 -0
- /package/{dist/components → components}/rating/rating.d.ts.map +0 -0
- /package/{dist/components → components}/rating/rating.js +0 -0
- /package/{dist/components → components}/rating/rating.js.map +0 -0
- /package/{dist/components → components}/rating/rating.types.d.ts +0 -0
- /package/{dist/components → components}/rating/rating.types.d.ts.map +0 -0
- /package/{dist/components → components}/select/index.d.ts +0 -0
- /package/{dist/components → components}/select/index.d.ts.map +0 -0
- /package/{dist/components → components}/select/select.d.ts +0 -0
- /package/{dist/components → components}/select/select.d.ts.map +0 -0
- /package/{dist/components → components}/select/select.js +0 -0
- /package/{dist/components → components}/select/select.types.d.ts +0 -0
- /package/{dist/components → components}/select/select.types.d.ts.map +0 -0
- /package/{dist/components → components}/select-zone/index.d.ts +0 -0
- /package/{dist/components → components}/select-zone/index.d.ts.map +0 -0
- /package/{dist/components → components}/select-zone/select-zone.d.ts +0 -0
- /package/{dist/components → components}/select-zone/select-zone.d.ts.map +0 -0
- /package/{dist/components → components}/select-zone/select-zone.js +0 -0
- /package/{dist/components → components}/select-zone/select-zone.types.d.ts +0 -0
- /package/{dist/components → components}/select-zone/select-zone.types.d.ts.map +0 -0
- /package/{dist/components → components}/skeleton/index.d.ts +0 -0
- /package/{dist/components → components}/skeleton/index.d.ts.map +0 -0
- /package/{dist/components → components}/skeleton/skeleton.d.ts +0 -0
- /package/{dist/components → components}/skeleton/skeleton.d.ts.map +0 -0
- /package/{dist/components → components}/skeleton/skeleton.js +0 -0
- /package/{dist/components → components}/slider/index.d.ts +0 -0
- /package/{dist/components → components}/slider/index.d.ts.map +0 -0
- /package/{dist/components → components}/slider/slider.d.ts +0 -0
- /package/{dist/components → components}/slider/slider.d.ts.map +0 -0
- /package/{dist/components → components}/slider/slider.js +0 -0
- /package/{dist/components → components}/slider/slider.types.d.ts +0 -0
- /package/{dist/components → components}/slider/slider.types.d.ts.map +0 -0
- /package/{dist/components → components}/splitter/index.d.ts +0 -0
- /package/{dist/components → components}/splitter/index.d.ts.map +0 -0
- /package/{dist/components → components}/splitter/splitter.d.ts +0 -0
- /package/{dist/components → components}/splitter/splitter.d.ts.map +0 -0
- /package/{dist/components → components}/splitter/splitter.js +0 -0
- /package/{dist/components → components}/splitter/splitter.types.d.ts +0 -0
- /package/{dist/components → components}/splitter/splitter.types.d.ts.map +0 -0
- /package/{dist/components → components}/steps/index.d.ts +0 -0
- /package/{dist/components → components}/steps/index.d.ts.map +0 -0
- /package/{dist/components → components}/steps/steps.d.ts +0 -0
- /package/{dist/components → components}/steps/steps.d.ts.map +0 -0
- /package/{dist/components → components}/steps/steps.js +0 -0
- /package/{dist/components → components}/swap/index.d.ts +0 -0
- /package/{dist/components → components}/swap/index.d.ts.map +0 -0
- /package/{dist/components → components}/swap/swap.d.ts +0 -0
- /package/{dist/components → components}/swap/swap.d.ts.map +0 -0
- /package/{dist/components → components}/swap/swap.js +0 -0
- /package/{dist/components → components}/switch/index.d.ts +0 -0
- /package/{dist/components → components}/switch/index.d.ts.map +0 -0
- /package/{dist/components → components}/switch/switch.d.ts +0 -0
- /package/{dist/components → components}/switch/switch.d.ts.map +0 -0
- /package/{dist/components → components}/switch/switch.js +0 -0
- /package/{dist/components → components}/switch/switch.types.d.ts +0 -0
- /package/{dist/components → components}/switch/switch.types.d.ts.map +0 -0
- /package/{dist/components → components}/tab/index.d.ts +0 -0
- /package/{dist/components → components}/tab/index.d.ts.map +0 -0
- /package/{dist/components → components}/tab/tab.d.ts +0 -0
- /package/{dist/components → components}/tab/tab.d.ts.map +0 -0
- /package/{dist/components → components}/tab/tab.js +0 -0
- /package/{dist/components → components}/tab/tab.types.d.ts +0 -0
- /package/{dist/components → components}/tab/tab.types.d.ts.map +0 -0
- /package/{dist/components → components}/table/index.d.ts +0 -0
- /package/{dist/components → components}/table/index.d.ts.map +0 -0
- /package/{dist/components → components}/table/index.js +0 -0
- /package/{dist/components → components}/table/table.d.ts +0 -0
- /package/{dist/components → components}/table/table.d.ts.map +0 -0
- /package/{dist/components → components}/table/table.js +0 -0
- /package/{dist/components → components}/table/table.types.d.ts +0 -0
- /package/{dist/components → components}/table/table.types.d.ts.map +0 -0
- /package/{dist/components → components}/text-rotate/index.d.ts +0 -0
- /package/{dist/components → components}/text-rotate/index.d.ts.map +0 -0
- /package/{dist/components → components}/text-rotate/text-rotate.d.ts +0 -0
- /package/{dist/components → components}/text-rotate/text-rotate.d.ts.map +0 -0
- /package/{dist/components → components}/text-rotate/text-rotate.js +0 -0
- /package/{dist/components → components}/text-rotate/text-rotate.js.map +0 -0
- /package/{dist/components → components}/timeline/index.d.ts +0 -0
- /package/{dist/components → components}/timeline/index.d.ts.map +0 -0
- /package/{dist/components → components}/timeline/timeline.d.ts +0 -0
- /package/{dist/components → components}/timeline/timeline.d.ts.map +0 -0
- /package/{dist/components → components}/timeline/timeline.js +0 -0
- /package/{dist/components → components}/timeline/timeline.types.d.ts +0 -0
- /package/{dist/components → components}/timeline/timeline.types.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/ErrorIcon.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/ErrorIcon.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/ErrorIcon.js +0 -0
- /package/{dist/components → components}/toast/icons/IconCircle.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/IconCircle.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/IconCircle.js +0 -0
- /package/{dist/components → components}/toast/icons/InfoIcon.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/InfoIcon.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/InfoIcon.js +0 -0
- /package/{dist/components → components}/toast/icons/LoaderIcon.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/LoaderIcon.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/LoaderIcon.js +0 -0
- /package/{dist/components → components}/toast/icons/SuccessIcon.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/SuccessIcon.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/SuccessIcon.js +0 -0
- /package/{dist/components → components}/toast/icons/WarningIcon.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/WarningIcon.d.ts.map +0 -0
- /package/{dist/components → components}/toast/icons/WarningIcon.js +0 -0
- /package/{dist/components → components}/toast/icons/index.d.ts +0 -0
- /package/{dist/components → components}/toast/icons/index.d.ts.map +0 -0
- /package/{dist/components → components}/toast/index.d.ts +0 -0
- /package/{dist/components → components}/toast/index.d.ts.map +0 -0
- /package/{dist/components → components}/toast/toast.d.ts +0 -0
- /package/{dist/components → components}/toast/toast.d.ts.map +0 -0
- /package/{dist/components → components}/toast/toast.js +0 -0
- /package/{dist/components → components}/toast/toast.store.d.ts +0 -0
- /package/{dist/components → components}/toast/toast.store.d.ts.map +0 -0
- /package/{dist/components → components}/toast/toast.store.js +0 -0
- /package/{dist/components → components}/toast/toast.type.d.ts +0 -0
- /package/{dist/components → components}/toast/toast.type.d.ts.map +0 -0
- /package/{dist/components → components}/tooltip/index.d.ts +0 -0
- /package/{dist/components → components}/tooltip/index.d.ts.map +0 -0
- /package/{dist/components → components}/tooltip/tooltip.d.ts +0 -0
- /package/{dist/components → components}/tooltip/tooltip.d.ts.map +0 -0
- /package/{dist/components → components}/tooltip/tooltip.js +0 -0
- /package/{dist/components → components}/tooltip/tooltip.types.d.ts +0 -0
- /package/{dist/components → components}/tooltip/tooltip.types.d.ts.map +0 -0
- /package/{dist/components → components}/tour/index.d.ts +0 -0
- /package/{dist/components → components}/tour/index.d.ts.map +0 -0
- /package/{dist/components → components}/tour/tour.d.ts +0 -0
- /package/{dist/components → components}/tour/tour.d.ts.map +0 -0
- /package/{dist/components → components}/tour/tour.js +0 -0
- /package/{dist/components → components}/tour/tour.types.d.ts +0 -0
- /package/{dist/components → components}/tour/tour.types.d.ts.map +0 -0
- /package/{dist/components → components}/upload/index.d.ts +0 -0
- /package/{dist/components → components}/upload/index.d.ts.map +0 -0
- /package/{dist/components → components}/upload/upload.d.ts +0 -0
- /package/{dist/components → components}/upload/upload.d.ts.map +0 -0
- /package/{dist/components → components}/upload/upload.js +0 -0
- /package/{dist/components → components}/upload/upload.types.d.ts +0 -0
- /package/{dist/components → components}/upload/upload.types.d.ts.map +0 -0
- /package/{dist/components → components}/z-index/index.d.ts +0 -0
- /package/{dist/components → components}/z-index/index.d.ts.map +0 -0
- /package/{dist/components → components}/z-index/z-index.context.d.ts +0 -0
- /package/{dist/components → components}/z-index/z-index.context.d.ts.map +0 -0
- /package/{dist/components → components}/z-index/z-index.context.js +0 -0
- /package/{dist/components → components}/z-index/z-index.d.ts +0 -0
- /package/{dist/components → components}/z-index/z-index.d.ts.map +0 -0
- /package/{dist/components → components}/z-index/z-index.js +0 -0
- /package/{dist/components → components}/z-index/z-index.store.d.ts +0 -0
- /package/{dist/components → components}/z-index/z-index.store.d.ts.map +0 -0
- /package/{dist/components → components}/z-index/z-index.store.js +0 -0
- /package/{dist/components → components}/z-index/z-index.types.d.ts +0 -0
- /package/{dist/components → components}/z-index/z-index.types.d.ts.map +0 -0
- /package/{dist/components → components}/z-index/z-index.types.js +0 -0
- /package/{dist/lib.d.ts → lib.d.ts} +0 -0
- /package/{dist/lib.d.ts.map → lib.d.ts.map} +0 -0
- /package/{dist/lib.js → lib.js} +0 -0
- /package/{dist/solid-ui.css → solid-ui.css} +0 -0
- /package/{dist/type.d.ts → type.d.ts} +0 -0
- /package/{dist/type.d.ts.map → type.d.ts.map} +0 -0
- /package/{dist/utils → utils}/cn.d.ts +0 -0
- /package/{dist/utils → utils}/cn.d.ts.map +0 -0
- /package/{dist/utils → utils}/cn.js +0 -0
- /package/{dist/utils → utils}/element-tracker.js +0 -0
- /package/{dist/utils → utils}/helper.d.ts +0 -0
- /package/{dist/utils → utils}/helper.d.ts.map +0 -0
- /package/{dist/utils → utils}/helper.js +0 -0
- /package/{dist/utils → utils}/hoc.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tour.js","names":["ZIndex","ZIndexType","cn","createThrottle","X","createEffect","createSignal","For","mergeProps","onCleanup","onMount","Show","TourAPI","TourPlacement","TourProps","TourStep","SpotlightRect","top","left","width","height","getElementRect","targetId","padding","el","document","getElementById","rect","getBoundingClientRect","buildClipPath","right","bottom","PopupPosition","arrowOffset","POPUP_MARGIN","POPUP_WIDTH","computePopupPosition","spotRect","placement","popupHeight","vw","window","innerWidth","vh","innerHeight","pTop","pLeft","centerX","centerY","Math","max","min","InternalTourProps","activeStep","visible","onClose","onNext","onPrev","TourComponent","rawProps","props","showClose","showProgress","maskClosable","prevLabel","nextLabel","doneLabel","setSpotRect","popupPos","setPopupPos","setPopupHeight","popupRef","HTMLDivElement","currentStep","steps","isLastStep","length","recalculate","step","spotlightPadding","ph","offsetHeight","target","throttledRecalc","trackStepChange","_step","scrollIntoView","block","behavior","timer","ReturnType","setTimeout","undefined","cancelStepTimer","clearTimeout","registerResizeListener","addEventListener","removeResizeListener","removeEventListener","cancel","maskStyle","popupStyle","handleMaskClick","_$createComponent","type","OVERLAY","open","blockScroll","children","_el$","_tmpl$","$$click","_$effect","_$className","class","mask","_el$2","_p$","_v$","spotlight","_v$2","e","t","_$style","_el$3","_tmpl$5","_el$4","firstChild","_el$5","_ref$","_$use","_$insert","title","when","_el$6","_tmpl$2","_$addEventListener","size","content","_el$7","body","footer","fallback","_el$11","_el$8","_tmpl$4","_el$0","_el$10","_el$9","each","_","i","_el$12","_tmpl$6","progress","_el$1","_tmpl$3","_c$","_$memo","_v$3","popup","_v$4","_v$5","_v$6","header","a","_$setAttribute","o","createTour","tourProps","JSX","Element","setActiveStep","setVisible","start","stepIndex","onEnter","onStepChange","stop","onLeave","next","cur","nextStep","onFinish","prev","prevStep","goTo","api","isActive","TourRenderer","_$mergeProps","_$delegateEvents"],"sources":["../../../src/components/tour/tour.tsx"],"sourcesContent":["import { ZIndex, ZIndexType } from '@components/z-index';\nimport { cn } from '@utils/cn';\nimport { createThrottle } from '@utils/helper';\nimport X from 'lucide-solid/icons/x';\nimport { createEffect, createSignal, For, mergeProps, onCleanup, onMount, Show } from 'solid-js';\nimport { TourAPI, TourPlacement, TourProps, TourStep } from './tour.types';\n\ninterface SpotlightRect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nfunction getElementRect(targetId: string, padding: number): SpotlightRect | null {\n const el = document.getElementById(targetId);\n if (!el) return null;\n const rect = el.getBoundingClientRect();\n return {\n top: rect.top - padding,\n left: rect.left - padding,\n width: rect.width + padding * 2,\n height: rect.height + padding * 2,\n };\n}\n\nfunction buildClipPath(rect: SpotlightRect): string {\n const { top, left, width, height } = rect;\n const right = left + width;\n const bottom = top + height;\n\n return `polygon(\n 0% 0%, 100% 0%, 100% 100%, 0% 100%, 0% 0%,\n ${left}px ${top}px,\n ${left}px ${bottom}px,\n ${right}px ${bottom}px,\n ${right}px ${top}px,\n ${left}px ${top}px\n )`;\n}\n\ninterface PopupPosition {\n top: number;\n left: number;\n arrowOffset: string;\n}\n\nconst POPUP_MARGIN = 12;\nconst POPUP_WIDTH = 340;\n\nfunction computePopupPosition(\n spotRect: SpotlightRect,\n placement: TourPlacement,\n popupHeight: number,\n): PopupPosition {\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n const { top, left, width, height } = spotRect;\n let pTop = 0;\n let pLeft = 0;\n let arrowOffset = '50%';\n\n const centerX = left + width / 2;\n const centerY = top + height / 2;\n\n switch (placement) {\n case 'bottom':\n case 'bottom-start':\n case 'bottom-end':\n pTop = top + height + POPUP_MARGIN;\n pLeft =\n placement === 'bottom-start'\n ? left\n : placement === 'bottom-end'\n ? left + width - POPUP_WIDTH\n : centerX - POPUP_WIDTH / 2;\n arrowOffset = `${centerX - Math.max(16, Math.min(pLeft, pLeft))}px`;\n break;\n\n case 'top':\n case 'top-start':\n case 'top-end':\n pTop = top - popupHeight - POPUP_MARGIN;\n pLeft =\n placement === 'top-start'\n ? left\n : placement === 'top-end'\n ? left + width - POPUP_WIDTH\n : centerX - POPUP_WIDTH / 2;\n arrowOffset = `${centerX - Math.max(16, Math.min(pLeft, pLeft))}px`;\n break;\n\n case 'left':\n case 'left-start':\n case 'left-end':\n pTop =\n placement === 'left-start'\n ? top\n : placement === 'left-end'\n ? top + height - popupHeight\n : centerY - popupHeight / 2;\n pLeft = left - POPUP_WIDTH - POPUP_MARGIN;\n arrowOffset = `${centerY - pTop}px`;\n break;\n\n case 'right':\n case 'right-start':\n case 'right-end':\n pTop =\n placement === 'right-start'\n ? top\n : placement === 'right-end'\n ? top + height - popupHeight\n : centerY - popupHeight / 2;\n pLeft = left + width + POPUP_MARGIN;\n arrowOffset = `${centerY - pTop}px`;\n break;\n }\n\n pLeft = Math.max(16, Math.min(pLeft, vw - POPUP_WIDTH - 16));\n pTop = Math.max(16, Math.min(pTop, vh - popupHeight - 16));\n\n return { top: pTop, left: pLeft, arrowOffset };\n}\n\ninterface InternalTourProps extends TourProps {\n activeStep: () => number;\n visible: () => boolean;\n onClose: () => void;\n onNext: () => void;\n onPrev: () => void;\n}\n\nconst TourComponent = (rawProps: InternalTourProps) => {\n const props = mergeProps(\n {\n showClose: true,\n showProgress: true,\n maskClosable: false,\n prevLabel: 'Prev',\n nextLabel: 'Next',\n doneLabel: 'Done',\n },\n rawProps,\n );\n\n const [spotRect, setSpotRect] = createSignal<SpotlightRect>({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n const [popupPos, setPopupPos] = createSignal<PopupPosition>({\n top: 0,\n left: 0,\n arrowOffset: '50%',\n });\n const [popupHeight, setPopupHeight] = createSignal(200);\n\n let popupRef: HTMLDivElement | undefined;\n\n const currentStep = (): TourStep | undefined => props.steps[props.activeStep()];\n const isLastStep = () => props.activeStep() === props.steps.length - 1;\n\n function recalculate() {\n const step = currentStep();\n if (!step) return;\n\n const padding = step.spotlightPadding ?? 8;\n const placement = step.placement ?? 'bottom';\n const ph = popupRef?.offsetHeight ?? popupHeight();\n\n const rect = getElementRect(step.target, padding);\n if (!rect) return;\n setSpotRect(rect);\n setPopupPos(computePopupPosition(rect, placement, ph));\n }\n\n const throttledRecalc = createThrottle(recalculate, 60);\n\n createEffect(function trackStepChange() {\n if (!props.visible()) return;\n\n const _step = props.activeStep();\n void _step;\n\n const step = currentStep();\n if (step?.target) {\n const el = document.getElementById(step.target);\n el?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n\n let timer: ReturnType<typeof setTimeout> | undefined = setTimeout(() => {\n timer = undefined;\n if (popupRef) setPopupHeight(popupRef.offsetHeight);\n recalculate();\n }, 80);\n onCleanup(function cancelStepTimer() {\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n });\n });\n\n onMount(function registerResizeListener() {\n window.addEventListener('resize', throttledRecalc);\n window.addEventListener('scroll', throttledRecalc, true);\n onCleanup(function removeResizeListener() {\n window.removeEventListener('resize', throttledRecalc);\n window.removeEventListener('scroll', throttledRecalc, true);\n throttledRecalc.cancel();\n });\n });\n\n const maskStyle = () => ({ 'clip-path': buildClipPath(spotRect()) });\n\n const popupStyle = () => {\n const { top, left, arrowOffset } = popupPos();\n return {\n top: `${top}px`,\n left: `${left}px`,\n width: `${POPUP_WIDTH}px`,\n '--arrow-offset': arrowOffset,\n };\n };\n\n const handleMaskClick = () => {\n if (props.maskClosable) props.onClose();\n };\n\n return (\n <ZIndex type={ZIndexType.OVERLAY} open={props.visible()} blockScroll>\n <div class={cn('tr01', props.class?.mask)} onClick={handleMaskClick} />\n\n <div class={cn('tr02', props.class?.spotlight)} style={maskStyle()} />\n\n <div\n ref={popupRef}\n class={cn('tr03', props.class?.popup)}\n style={popupStyle()}\n data-placement={currentStep()?.placement ?? 'bottom'}\n >\n <div class={cn('tr04', props.class?.header)}>\n <span class=\"tr04-title\">{currentStep()?.title}</span>\n <Show when={props.showClose}>\n <button class=\"tr04-close\" onClick={props.onClose} aria-label=\"Close tour\">\n <X size={14} />\n </button>\n </Show>\n </div>\n\n <Show when={currentStep()?.content}>\n <div class={cn('tr05', props.class?.body)}>{currentStep()?.content}</div>\n </Show>\n\n <Show\n when={!currentStep()?.footer}\n fallback={<div class={cn('tr06', props.class?.footer)}>{currentStep()?.footer}</div>}\n >\n <div class={cn('tr06', props.class?.footer)}>\n <Show when={props.showProgress}>\n <div class={cn('tr07', props.class?.progress)}>\n <For each={props.steps}>\n {(_, i) => (\n <span class={cn('tr07-dot', i() === props.activeStep() && 'active')} />\n )}\n </For>\n </div>\n </Show>\n\n <div class=\"ml-auto flex gap-2\">\n <Show when={props.activeStep() > 0}>\n <button class=\"btn btn-sm btn-ghost\" onClick={props.onPrev}>\n {props.prevLabel}\n </button>\n </Show>\n <button\n class=\"btn btn-sm btn-primary\"\n onClick={isLastStep() ? props.onClose : props.onNext}\n >\n {isLastStep() ? props.doneLabel : props.nextLabel}\n </button>\n </div>\n </div>\n </Show>\n </div>\n </ZIndex>\n );\n};\n\nexport function createTour(tourProps: TourProps): [TourAPI, () => import('solid-js').JSX.Element] {\n const [activeStep, setActiveStep] = createSignal(0);\n const [visible, setVisible] = createSignal(false);\n\n function start(stepIndex = 0) {\n setActiveStep(stepIndex);\n setVisible(true);\n tourProps.steps[stepIndex]?.onEnter?.(stepIndex);\n tourProps.onStepChange?.(stepIndex);\n }\n\n function stop() {\n const step = activeStep();\n tourProps.steps[step]?.onLeave?.(step);\n setVisible(false);\n tourProps.onClose?.(step);\n }\n\n function next() {\n const cur = activeStep();\n tourProps.steps[cur]?.onLeave?.(cur);\n const nextStep = cur + 1;\n if (nextStep >= tourProps.steps.length) {\n setVisible(false);\n tourProps.onFinish?.();\n return;\n }\n setActiveStep(nextStep);\n tourProps.steps[nextStep]?.onEnter?.(nextStep);\n tourProps.onStepChange?.(nextStep);\n }\n\n function prev() {\n const cur = activeStep();\n if (cur <= 0) return;\n tourProps.steps[cur]?.onLeave?.(cur);\n const prevStep = cur - 1;\n setActiveStep(prevStep);\n tourProps.steps[prevStep]?.onEnter?.(prevStep);\n tourProps.onStepChange?.(prevStep);\n }\n\n function goTo(stepIndex: number) {\n if (stepIndex < 0 || stepIndex >= tourProps.steps.length) return;\n const cur = activeStep();\n tourProps.steps[cur]?.onLeave?.(cur);\n setActiveStep(stepIndex);\n tourProps.steps[stepIndex]?.onEnter?.(stepIndex);\n tourProps.onStepChange?.(stepIndex);\n }\n\n const api: TourAPI = {\n start,\n stop,\n next,\n prev,\n goTo,\n isActive: visible,\n currentStep: activeStep,\n };\n\n const TourRenderer = () => (\n <TourComponent\n {...tourProps}\n activeStep={activeStep}\n visible={visible}\n onClose={stop}\n onNext={next}\n onPrev={prev}\n />\n );\n\n return [api, TourRenderer];\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","names":["cn","ImagePreview","Spinner","CircleCheck","CircleX","CloudUpload","Eye","File","FileImage","FileText","Film","Music","Trash2","X","ZoomIn","Accessor","createSignal","createUniqueId","For","Match","mergeProps","Show","Switch","Tooltip","UploadBaseProps","UploadClassConfig","UploadComponent","UploadDraggerProps","UploadFile","UploadProps","UploadRequestOption","cls","config","key","extra","wrapperCls","base","wrapper","getFileIconColor","type","startsWith","includes","getFileIconBg","getFileIconNode","size","_$createComponent","getFileBadge","name","label","colorClass","ext","split","pop","toUpperCase","slice","formatFileSize","bytes","toFixed","isImageFile","defaultRequest","options","cancelled","current","tick","increment","Math","random","min","onProgress","round","setTimeout","onSuccess","ProgressEntry","v","useUpload","props","fileList","setFileList","progressMap","Map","cancelMap","imgMap","HTMLImageElement","getProgress","uid","get","cancelAndClean","thumbUrl","delete","img","onload","src","URL","revokeObjectURL","processFiles","rawFiles","FileList","files","Array","from","maxCount","maxFileSize","maxTotalSize","currentList","file","onError","message","newTotal","length","currentTotal","reduce","sum","f","batchTotal","forEach","createObjectURL","undefined","percent","setPercent","set","newFile","status","originFile","Image","list","map","dimensions","width","naturalWidth","height","naturalHeight","prev","nextList","multiple","onChange","requestFn","customRequest","cancel","next","const","done","find","error","Error","failed","value","snapshot","idx","findIndex","removeFile","removed","filter","clearAll","ProgressBar","trackClass","fillClass","_el$","_tmpl$","_el$2","firstChild","_$effect","_p$","_v$","_v$2","_v$3","e","_$className","t","a","_$setStyleProperty","CardProgressOverlay","_el$3","_tmpl$2","_el$4","_el$5","_el$6","nextSibling","_el$7","_$insert","PictureThumbLoading","_tmpl$3","TextFileList","onRemove","onClearAll","showClearAll","classConfig","showTooltip","listId","_el$9","_tmpl$5","_el$13","_$setAttribute","when","_$memo","children","_el$0","_tmpl$4","_el$1","_el$10","_el$11","_el$12","_$addEventListener","_v$4","_v$5","_v$6","each","badge","_el$14","_tmpl$6","FileUploadItem","isUploading","_el$15","_tmpl$8","_el$16","_el$17","_el$19","_el$20","content","hidden","root","_el$18","_tmpl$7","$$click","_v$7","_v$8","_v$9","_v$0","o","PictureFileList","preview","setPreview","_el$21","_tmpl$9","_el$27","_el$22","_el$23","_el$24","_el$25","_el$26","_v$1","_v$10","_v$11","_el$28","_tmpl$14","_el$29","_el$32","_el$33","_el$34","_el$39","_el$43","_el$45","fallback","_el$46","_tmpl$15","_el$47","_v$20","_v$21","_el$30","_tmpl$0","_v$12","_v$13","_el$31","_tmpl$1","_el$35","_tmpl$10","_el$36","_el$38","_el$37","_el$40","_tmpl$11","_el$41","_tmpl$12","_el$44","_tmpl$13","_v$14","_v$15","_v$16","_v$17","_v$18","_v$19","i","n","imageName","onClose","PictureCardFileList","onAdd","showAddButton","_el$48","_el$49","_el$50","_el$51","_el$52","_v$22","_v$23","_v$24","_el$53","_tmpl$17","_el$56","_el$61","_el$57","_v$25","_v$26","_v$27","_el$58","_tmpl$18","_el$60","_el$59","_el$54","_tmpl$16","_el$55","UploadBase","p","listType","showUploadList","inputRef","HTMLInputElement","triggerInput","click","handleInputChange","Event","input","currentTarget","effectiveShowClearAll","_el$62","_tmpl$20","_el$63","_ref$","_$use","_$spread","_$mergeProps","accept","directory","webkitdirectory","class","_el$64","_tmpl$19","_el$65","errorMessage","_el$66","UploadDragger","hint","isDragging","setIsDragging","handleDragOver","DragEvent","preventDefault","handleDragLeave","handleDrop","dataTransfer","_el$67","_el$68","_ref$2","_el$69","_el$70","addEventListener","icon","strokeWidth","_el$72","_tmpl$21","_el$73","_tmpl$22","_v$28","_v$29","_el$71","Upload","Dragger","_$delegateEvents"],"sources":["../../../src/components/upload/upload.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { ImagePreview } from '@components/image-preview';\nimport { Spinner } from '@components/loading/loading';\nimport CircleCheck from 'lucide-solid/icons/circle-check';\nimport CircleX from 'lucide-solid/icons/circle-x';\nimport CloudUpload from 'lucide-solid/icons/cloud-upload';\nimport Eye from 'lucide-solid/icons/eye';\nimport File from 'lucide-solid/icons/file';\nimport FileImage from 'lucide-solid/icons/file-image';\nimport FileText from 'lucide-solid/icons/file-text';\nimport Film from 'lucide-solid/icons/film';\nimport Music from 'lucide-solid/icons/music';\nimport Trash2 from 'lucide-solid/icons/trash-2';\nimport X from 'lucide-solid/icons/x';\nimport ZoomIn from 'lucide-solid/icons/zoom-in';\nimport {\n Accessor,\n createSignal,\n createUniqueId,\n For,\n Match,\n mergeProps,\n Show,\n Switch,\n} from 'solid-js';\nimport { Tooltip } from '../tooltip';\nimport {\n UploadBaseProps,\n UploadClassConfig,\n UploadComponent,\n UploadDraggerProps,\n UploadFile,\n UploadProps,\n UploadRequestOption,\n} from './upload.types';\n\nfunction cls(\n config: string | UploadClassConfig | undefined,\n key: keyof UploadClassConfig,\n extra?: string,\n): string {\n if (!config) return extra ?? '';\n if (typeof config === 'string') return extra ?? '';\n return cn(config[key], extra);\n}\n\nfunction wrapperCls(config: string | UploadClassConfig | undefined, base: string): string {\n if (!config) return base;\n if (typeof config === 'string') return cn(base, config);\n return cn(base, config.wrapper);\n}\n\nfunction getFileIconColor(type: string): string {\n if (type.startsWith('image/')) return 'text-violet-500';\n if (type.startsWith('video/')) return 'text-rose-500';\n if (type.startsWith('audio/')) return 'text-amber-500';\n if (type === 'application/pdf') return 'text-red-500';\n if (type.includes('text') || type.includes('document')) return 'text-blue-500';\n if (type.includes('spreadsheet') || type.includes('excel')) return 'text-emerald-500';\n return 'text-base-content/40';\n}\n\nfunction getFileIconBg(type: string): string {\n if (type.startsWith('image/')) return 'bg-violet-500/10';\n if (type.startsWith('video/')) return 'bg-rose-500/10';\n if (type.startsWith('audio/')) return 'bg-amber-500/10';\n if (type === 'application/pdf') return 'bg-red-500/10';\n if (type.includes('text') || type.includes('document')) return 'bg-blue-500/10';\n if (type.includes('spreadsheet') || type.includes('excel')) return 'bg-emerald-500/10';\n return 'bg-base-content/5';\n}\n\nfunction getFileIconNode(type: string, size = 16) {\n if (type.startsWith('image/')) return <FileImage size={size} />;\n if (type.startsWith('video/')) return <Film size={size} />;\n if (type.startsWith('audio/')) return <Music size={size} />;\n if (type === 'application/pdf' || type.includes('text')) return <FileText size={size} />;\n return <File size={size} />;\n}\n\nfunction getFileBadge(type: string, name: string): { label: string; colorClass: string } {\n if (type === 'application/pdf') return { label: 'PDF', colorClass: 'bg-red-500' };\n if (type.startsWith('image/')) {\n const ext = name.split('.').pop()?.toUpperCase().slice(0, 3) ?? 'IMG';\n return { label: ext, colorClass: 'bg-violet-500' };\n }\n if (type.startsWith('video/')) return { label: 'VID', colorClass: 'bg-rose-500' };\n if (type.startsWith('audio/')) return { label: 'AUD', colorClass: 'bg-amber-500' };\n if (type.includes('spreadsheet') || type.includes('excel'))\n return { label: 'XLS', colorClass: 'bg-emerald-500' };\n if (type.includes('document') || type.includes('word'))\n return { label: 'DOC', colorClass: 'bg-blue-500' };\n if (type.includes('text')) return { label: 'TXT', colorClass: 'bg-blue-500' };\n\n const ext = name.split('.').pop()?.toUpperCase().slice(0, 4) ?? 'FILE';\n return { label: ext, colorClass: 'bg-slate-400' };\n}\n\nfunction formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n\nfunction isImageFile(type: string): boolean {\n return type.startsWith('image/');\n}\n\nfunction defaultRequest(options: UploadRequestOption): () => void {\n let cancelled = false;\n let current = 0;\n\n const tick = () => {\n if (cancelled) return;\n\n const increment = Math.random() * 10 + 8;\n current = Math.min(current + increment, 95);\n options.onProgress(Math.round(current));\n\n if (current < 95) {\n setTimeout(tick, 100 + Math.random() * 80);\n } else {\n setTimeout(\n () => {\n if (cancelled) return;\n options.onProgress(100);\n options.onSuccess();\n },\n 400 + Math.random() * 300,\n );\n }\n };\n\n setTimeout(tick, 50);\n\n return () => {\n cancelled = true;\n };\n}\n\ntype ProgressEntry = [Accessor<number>, (v: number) => void];\n\nfunction useUpload(props: UploadBaseProps) {\n const [fileList, setFileList] = createSignal<UploadFile[]>([]);\n const progressMap = new Map<string, ProgressEntry>();\n\n const cancelMap = new Map<string, () => void>();\n\n const imgMap = new Map<string, HTMLImageElement>();\n\n const getProgress = (uid: string): Accessor<number> => {\n return progressMap.get(uid)?.[0] ?? (() => 0);\n };\n\n const cancelAndClean = (uid: string, thumbUrl?: string) => {\n cancelMap.get(uid)?.();\n cancelMap.delete(uid);\n progressMap.delete(uid);\n\n const img = imgMap.get(uid);\n if (img) {\n img.onload = null;\n img.src = '';\n imgMap.delete(uid);\n }\n if (thumbUrl) URL.revokeObjectURL(thumbUrl);\n };\n\n const processFiles = (rawFiles: FileList | File[]) => {\n const files = Array.from(rawFiles);\n const maxCount = props.maxCount;\n const maxFileSize = props.maxFileSize;\n const maxTotalSize = props.maxTotalSize;\n\n const currentList = fileList();\n\n for (const file of files) {\n if (maxFileSize && file.size > maxFileSize) {\n props.onError?.({\n type: 'maxFileSize',\n file,\n message: `\"${file.name}\" vượt quá dung lượng cho phép (${formatFileSize(maxFileSize)})`,\n });\n return;\n }\n }\n\n if (maxCount) {\n const newTotal = currentList.length + files.length;\n if (newTotal > maxCount) {\n props.onError?.({\n type: 'maxCount',\n file: files[0],\n message: `Đã đạt số lượng file tối đa (${maxCount})`,\n });\n return;\n }\n }\n\n if (maxTotalSize) {\n const currentTotal = currentList.reduce((sum, f) => sum + f.size, 0);\n const batchTotal = files.reduce((sum, f) => sum + f.size, 0);\n if (currentTotal + batchTotal > maxTotalSize) {\n props.onError?.({\n type: 'maxTotalSize',\n file: files[0],\n message: `Tổng dung lượng vượt quá giới hạn (${formatFileSize(maxTotalSize)})`,\n });\n return;\n }\n }\n\n files.forEach(file => {\n const uid = createUniqueId();\n const thumbUrl = isImageFile(file.type) ? URL.createObjectURL(file) : undefined;\n\n const [percent, setPercent] = createSignal(0);\n progressMap.set(uid, [percent, setPercent]);\n\n const newFile: UploadFile = {\n uid,\n name: file.name,\n size: file.size,\n type: file.type,\n status: 'uploading',\n originFile: file,\n thumbUrl,\n };\n\n if (thumbUrl) {\n const img = new Image();\n imgMap.set(uid, img);\n img.onload = () => {\n imgMap.delete(uid);\n setFileList(list =>\n list.map(f =>\n f.uid === uid\n ? { ...f, dimensions: { width: img.naturalWidth, height: img.naturalHeight } }\n : f,\n ),\n );\n };\n img.src = thumbUrl;\n }\n\n setFileList(prev => {\n const nextList = props.multiple === false ? [newFile] : [...prev, newFile];\n props.onChange?.({ file: newFile, fileList: nextList });\n return nextList;\n });\n\n const requestFn = props.customRequest ?? defaultRequest;\n const cancel = requestFn({\n file,\n onSuccess: () => {\n setPercent(100);\n setFileList(list => {\n const next = list.map(f => (f.uid === uid ? { ...f, status: 'done' as const } : f));\n const done = next.find(f => f.uid === uid);\n if (done) props.onChange?.({ file: done, fileList: next });\n return next;\n });\n cancelMap.delete(uid);\n progressMap.delete(uid);\n },\n onError: (error: Error) => {\n setFileList(list => {\n const next = list.map(f => (f.uid === uid ? { ...f, status: 'error' as const } : f));\n const failed = next.find(f => f.uid === uid);\n if (failed) props.onChange?.({ file: { ...failed, error }, fileList: next });\n return next;\n });\n cancelMap.delete(uid);\n progressMap.delete(uid);\n },\n onProgress: value => {\n setPercent(value);\n\n const snapshot = fileList();\n const idx = snapshot.findIndex(f => f.uid === uid);\n if (idx !== -1)\n props.onChange?.({\n file: { ...snapshot[idx], percent: value },\n fileList: snapshot,\n });\n },\n });\n\n if (typeof cancel === 'function') cancelMap.set(uid, cancel);\n });\n };\n\n const removeFile = (uid: string) => {\n setFileList(prev => {\n const removed = prev.find(f => f.uid === uid);\n\n cancelAndClean(uid, removed?.thumbUrl);\n const next = prev.filter(f => f.uid !== uid);\n if (removed) props.onChange?.({ file: { ...removed, status: 'removed' }, fileList: next });\n return next;\n });\n };\n\n const clearAll = () => {\n setFileList(prev => {\n prev.forEach(f => cancelAndClean(f.uid, f.thumbUrl));\n return [];\n });\n };\n\n return { fileList, processFiles, removeFile, clearAll, getProgress };\n}\n\nfunction ProgressBar(props: {\n percent: Accessor<number>;\n trackClass?: string;\n fillClass?: string;\n}) {\n return (\n <div class={cn('up26', props.trackClass)}>\n <div class={cn('up27', props.fillClass)} style={{ width: `${props.percent()}%` }} />\n </div>\n );\n}\n\nfunction CardProgressOverlay(props: { percent: Accessor<number> }) {\n return (\n <div class=\"up62\">\n <div class=\"up63\">\n <span class=\"loading loading-spinner loading-sm text-white\" />\n <span class=\"up64\">{props.percent()}%</span>\n </div>\n </div>\n );\n}\n\nfunction PictureThumbLoading() {\n return (\n <div class=\"up51\">\n <span class=\"loading loading-spinner loading-xs text-white\" />\n </div>\n );\n}\n\nfunction TextFileList(props: {\n files: UploadFile[];\n onRemove: (uid: string) => void;\n onClearAll: () => void;\n showClearAll: boolean;\n classConfig?: string | UploadClassConfig;\n showTooltip?: boolean;\n}) {\n const listId = createUniqueId();\n return (\n <div id={listId} class={cn('up06', cls(props.classConfig, 'textList'))}>\n <Show when={props.showClearAll && props.files.length > 1}>\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\n {props.files.length} files\n </span>\n <button\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\n onClick={props.onClearAll}\n title=\"Remove all\"\n >\n <Trash2 size={12} />\n Clear all\n </button>\n </div>\n </Show>\n <ul class=\"flex flex-col gap-2\">\n <For each={props.files}>\n {file => {\n const badge = getFileBadge(file.type, file.name);\n return (\n <li>\n <FileUploadItem\n file={file}\n badge={badge}\n onRemove={props.onRemove}\n classConfig={props.classConfig}\n showTooltip={props.showTooltip}\n />\n </li>\n );\n }}\n </For>\n </ul>\n </div>\n );\n}\n\nfunction FileUploadItem(props: {\n file: UploadFile;\n badge: { label: string; colorClass: string };\n onRemove: (uid: string) => void;\n classConfig?: string | UploadClassConfig;\n showTooltip?: boolean;\n}) {\n const isUploading = () => props.file.status === 'uploading';\n\n return (\n <div class={cn('up07', cls(props.classConfig, 'textItem'))}>\n <div class=\"flex min-w-0 flex-1 items-center gap-2\">\n <div class={cn('up08', props.badge.colorClass, cls(props.classConfig, 'textBadge'))}>\n {props.badge.label}\n </div>\n <Tooltip\n content={props.file.name}\n hidden={!props.showTooltip}\n class={{ root: 'up09' }}\n type=\"default\"\n >\n <span class={cn('up09', cls(props.classConfig, 'textName'))}>{props.file.name}</span>\n </Tooltip>\n <div class={cn('up10', cls(props.classConfig, 'textSize'))}>\n {formatFileSize(props.file.size)}\n </div>\n\n <Switch>\n <Match when={isUploading()}>\n <Spinner class=\"size-5\" />\n </Match>\n <Match when={props.file.status === 'done'}>\n <CircleCheck size={16} class=\"text-success\" />\n </Match>\n <Match when={props.file.status === 'error'}>\n <CircleX size={16} class=\"text-error\" />\n </Match>\n </Switch>\n\n <button\n class={cn('up57', cls(props.classConfig, 'removeBtn'))}\n onClick={() => props.onRemove(props.file.uid)}\n title=\"Remove\"\n >\n <X size={16} />\n </button>\n </div>\n </div>\n );\n}\n\nfunction PictureFileList(props: {\n files: UploadFile[];\n onRemove: (uid: string) => void;\n onClearAll: () => void;\n showClearAll: boolean;\n getProgress: (uid: string) => Accessor<number>;\n classConfig?: string | UploadClassConfig;\n}) {\n const [preview, setPreview] = createSignal<UploadFile | null>(null);\n\n return (\n <>\n <div class={cn('up47', cls(props.classConfig, 'pictureList'))}>\n <Show when={props.showClearAll && props.files.length > 1}>\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\n {props.files.length} files\n </span>\n <button\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\n onClick={props.onClearAll}\n title=\"Remove all\"\n >\n <Trash2 size={12} />\n Clear all\n </button>\n </div>\n </Show>\n <ul class=\"up48\">\n <For each={props.files}>\n {file => (\n <li\n class={cn(\n 'up49',\n file.status === 'uploading' && 'up49a',\n file.status === 'error' && 'up49b',\n cls(props.classConfig, 'pictureItem'),\n )}\n >\n <div class={cn('up50', cls(props.classConfig, 'pictureThumb'))}>\n <Show\n when={file.thumbUrl}\n fallback={\n <div\n class={cn(\n 'up53',\n getFileIconBg(file.type),\n cls(props.classConfig, 'pictureIcon'),\n )}\n >\n <span class={getFileIconColor(file.type)}>\n {getFileIconNode(file.type, 20)}\n </span>\n </div>\n }\n >\n <img src={file.thumbUrl} alt={file.name} />\n\n <Show when={file.status === 'uploading'}>\n <PictureThumbLoading />\n </Show>\n\n <Show when={file.status === 'done'}>\n <button class=\"up52\" onClick={() => setPreview(file)} title=\"Preview\">\n <ZoomIn size={14} />\n </button>\n </Show>\n </Show>\n </div>\n\n <div class={cn('up54', cls(props.classConfig, 'pictureInfo'))}>\n <div class=\"up36\">\n <span class=\"up21\" title={file.name}>\n {file.name}\n </span>\n <Show when={file.dimensions}>\n <span class=\"up37\">\n {file.dimensions!.width} × {file.dimensions!.height} px\n </span>\n </Show>\n <span class=\"up39\">{formatFileSize(file.size)}</span>\n </div>\n\n <Show when={file.status === 'uploading'}>\n <ProgressBar\n percent={props.getProgress(file.uid)}\n trackClass={cls(props.classConfig, 'progressTrack')}\n fillClass={cls(props.classConfig, 'progressFill')}\n />\n </Show>\n\n <Show when={file.status === 'done'}>\n <span class=\"up24\">\n <CircleCheck size={11} />\n Uploaded\n </span>\n </Show>\n\n <Show when={file.status === 'error'}>\n <span class=\"up23\">Upload failed</span>\n </Show>\n </div>\n\n <div class={cn('up55', cls(props.classConfig, 'pictureActions'))}>\n <Show when={file.status === 'done' && file.thumbUrl}>\n <button\n class={cn('up56', cls(props.classConfig, 'actionBtn'))}\n onClick={() => setPreview(file)}\n title=\"Preview\"\n >\n <Eye size={14} />\n </button>\n </Show>\n <button\n class={cn('up57', cls(props.classConfig, 'removeBtn'))}\n onClick={() => props.onRemove(file.uid)}\n title=\"Remove\"\n >\n <X size={14} class=\"shrink-0\" />\n </button>\n </div>\n </li>\n )}\n </For>\n </ul>\n </div>\n\n <Show when={preview()}>\n <ImagePreview\n src={preview()!.thumbUrl!}\n imageName={preview()!.name}\n size={formatFileSize(preview()!.size)}\n onClose={() => setPreview(null)}\n />\n </Show>\n </>\n );\n}\n\nfunction PictureCardFileList(props: {\n files: UploadFile[];\n onRemove: (uid: string) => void;\n onAdd: () => void;\n onClearAll: () => void;\n showAddButton: boolean;\n showClearAll: boolean;\n getProgress: (uid: string) => Accessor<number>;\n classConfig?: string | UploadClassConfig;\n}) {\n const [preview, setPreview] = createSignal<UploadFile | null>(null);\n\n return (\n <>\n <Show when={props.showClearAll && props.files.length > 1}>\n <div class={cn('up44', cls(props.classConfig, 'listHeader'))}>\n <span class={cn('up45', cls(props.classConfig, 'listCount'))}>\n {props.files.length} files\n </span>\n <button\n class={cn('up46', cls(props.classConfig, 'clearBtn'))}\n onClick={props.onClearAll}\n title=\"Remove all\"\n >\n <Trash2 size={12} />\n Clear all\n </button>\n </div>\n </Show>\n <div class={cn('up58', cls(props.classConfig, 'cardGrid'))}>\n <For each={props.files}>\n {file => (\n <div\n class={cn('up59', file.status === 'error' && 'up59a', cls(props.classConfig, 'card'))}\n >\n <Show\n when={file.thumbUrl}\n fallback={\n <div class={cn('up61', cls(props.classConfig, 'cardIcon'))}>\n {getFileIconNode(file.type, 24)}\n </div>\n }\n >\n <img\n src={file.thumbUrl}\n alt={file.name}\n class={cn('up60', cls(props.classConfig, 'cardImg'))}\n />\n </Show>\n\n <Show when={file.status === 'uploading'}>\n <CardProgressOverlay percent={props.getProgress(file.uid)} />\n </Show>\n\n <Show when={file.status !== 'uploading'}>\n <div class=\"up65\">\n <Show when={file.thumbUrl}>\n <button\n class={cn('up66', cls(props.classConfig, 'actionBtn'))}\n onClick={() => setPreview(file)}\n title=\"Preview\"\n >\n <Eye size={13} />\n </button>\n </Show>\n <button\n class={cn('up67', cls(props.classConfig, 'removeBtn'))}\n onClick={() => props.onRemove(file.uid)}\n title=\"Remove\"\n >\n <Trash2 size={13} />\n </button>\n </div>\n </Show>\n </div>\n )}\n </For>\n <Show when={props.showAddButton}>\n <button\n class={cn('up68', cls(props.classConfig, 'cardAdd'))}\n onClick={props.onAdd}\n title=\"Upload file\"\n >\n <CloudUpload size={20} class=\"opacity-40\" />\n <span class=\"up69\">Upload</span>\n </button>\n </Show>\n </div>\n\n <Show when={preview()}>\n <ImagePreview\n src={preview()!.thumbUrl!}\n imageName={preview()!.name}\n size={formatFileSize(preview()!.size)}\n onClose={() => setPreview(null)}\n />\n </Show>\n </>\n );\n}\n\nfunction UploadBase(p: UploadProps) {\n p = mergeProps(\n {\n multiple: true,\n listType: 'text' as const,\n showUploadList: true,\n showTooltip: false,\n },\n p,\n );\n\n let inputRef!: HTMLInputElement;\n const { fileList, processFiles, removeFile, clearAll, getProgress } = useUpload(p);\n\n const triggerInput = () => inputRef.click();\n\n const handleInputChange = (e: Event) => {\n const input = e.currentTarget as HTMLInputElement;\n if (input.files?.length) processFiles(input.files);\n input.value = '';\n };\n\n const showAddButton = () => {\n if (!p.multiple && fileList().length >= 1) return false;\n if (p.maxCount && fileList().length >= p.maxCount) return false;\n return true;\n };\n\n const effectiveShowClearAll = () => p.showClearAll ?? p.multiple !== false;\n\n return (\n <div class={wrapperCls(p.class, 'up01')}>\n <input\n ref={inputRef}\n type=\"file\"\n class=\"hidden\"\n multiple={p.multiple}\n accept={p.accept}\n {...(p.directory ? { webkitdirectory: '' } : {})}\n onChange={handleInputChange}\n />\n\n <Switch>\n <Match when={p.listType === 'picture-card'}>\n <Show when={p.showUploadList}>\n <PictureCardFileList\n files={fileList()}\n onRemove={removeFile}\n onAdd={triggerInput}\n onClearAll={clearAll}\n showAddButton={showAddButton()}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Show>\n <Show when={!p.showUploadList}>\n <div onClick={triggerInput} class=\"w-fit cursor-pointer\">\n {p.children}\n </div>\n </Show>\n </Match>\n <Match when={p.listType !== 'picture-card'}>\n <div\n onClick={showAddButton() ? triggerInput : undefined}\n class={showAddButton() ? 'w-fit cursor-pointer' : ''}\n >\n {p.children}\n </div>\n <Show when={p.showUploadList && fileList().length > 0}>\n <Switch>\n <Match when={p.listType === 'picture'}>\n <PictureFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Match>\n <Match when={p.listType === 'text'}>\n <TextFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n classConfig={p.class}\n showTooltip={p.showTooltip}\n />\n </Match>\n </Switch>\n </Show>\n </Match>\n </Switch>\n\n <Show when={p.errorMessage}>\n <div class={cn('up76', cls(p.class, 'errorMessage'))}>{p.errorMessage}</div>\n </Show>\n </div>\n );\n}\n\nfunction UploadDragger(p: UploadDraggerProps) {\n p = mergeProps(\n {\n multiple: true,\n listType: 'text' as const,\n showUploadList: true,\n hint: 'Support for a single or bulk upload',\n showTooltip: false,\n },\n p,\n );\n\n let inputRef!: HTMLInputElement;\n const [isDragging, setIsDragging] = createSignal(false);\n const { fileList, processFiles, removeFile, clearAll, getProgress } = useUpload(p);\n const effectiveShowClearAll = () => p.showClearAll ?? p.multiple !== false;\n\n const triggerInput = () => inputRef.click();\n\n const handleInputChange = (e: Event) => {\n const input = e.currentTarget as HTMLInputElement;\n if (input.files?.length) processFiles(input.files);\n input.value = '';\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n setIsDragging(true);\n };\n\n const handleDragLeave = (e: DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n };\n\n const handleDrop = (e: DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n const files = e.dataTransfer?.files;\n if (files?.length) processFiles(files);\n };\n\n const showAddButton = () => {\n if (!p.multiple && fileList().length >= 1) return false;\n if (p.maxCount && fileList().length >= p.maxCount) return false;\n return true;\n };\n\n return (\n <div class={wrapperCls(p.class, 'up01')}>\n <input\n ref={inputRef}\n type=\"file\"\n class=\"hidden\"\n multiple={p.multiple}\n accept={p.accept}\n {...(p.directory ? { webkitdirectory: '' } : {})}\n onChange={handleInputChange}\n />\n\n <Show when={p.listType === 'picture-card'}>\n <Show when={p.showUploadList}>\n <PictureCardFileList\n files={fileList()}\n onRemove={removeFile}\n onAdd={triggerInput}\n onClearAll={clearAll}\n showAddButton={showAddButton()}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Show>\n </Show>\n\n <Show when={p.listType !== 'picture-card'}>\n <Show when={showAddButton()}>\n <div\n class={cn('up02', isDragging() && 'up02a', cls(p.class, 'dragger'))}\n onClick={triggerInput}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n >\n <div class={cn('up03', cls(p.class, 'draggerIcon'))}>\n <Show when={p.icon} fallback={<CloudUpload size={48} strokeWidth={1.5} />}>\n {p.icon}\n </Show>\n </div>\n <Show\n when={p.children}\n fallback={\n <>\n <p class={cn('up04', cls(p.class, 'draggerTitle'))}>\n Click or drag file to this area to upload\n </p>\n <p class={cn('up05', cls(p.class, 'draggerHint'))}>{p.hint}</p>\n </>\n }\n >\n {p.children}\n </Show>\n </div>\n </Show>\n\n <Show when={p.showUploadList && fileList().length > 0}>\n <Switch>\n <Match when={p.listType === 'picture'}>\n <PictureFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n getProgress={getProgress}\n classConfig={p.class}\n />\n </Match>\n <Match when={p.listType === 'text'}>\n <TextFileList\n files={fileList()}\n onRemove={removeFile}\n onClearAll={clearAll}\n showClearAll={effectiveShowClearAll()}\n classConfig={p.class}\n showTooltip={p.showTooltip}\n />\n </Match>\n </Switch>\n </Show>\n </Show>\n\n <Show when={p.errorMessage}>\n <div class={cn('up76', cls(p.class, 'errorMessage'))}>{p.errorMessage}</div>\n </Show>\n </div>\n );\n}\n\nexport const Upload = UploadBase as UploadComponent;\nUpload.Dragger = UploadDragger;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"z-index.context.js","names":[],"sources":["../../../src/components/z-index/z-index.context.ts"],"sourcesContent":["import { createContext, useContext } from 'solid-js';\n\n/**\n * Holds the z-index of the nearest ZIndex ancestor that is a container type\n * (MODAL, OVERLAY). Child ZIndex components use this to compute their own\n * z-index relative to the parent container, ensuring correct stacking in\n * nested scenarios (e.g., dropdown inside modal).\n *\n * undefined = no ZIndex container ancestor (top-level context).\n */\nexport const ZIndexContext = createContext<number | undefined>(undefined);\n\n/** Returns the z-index of the nearest ZIndex container ancestor, if any. */\nexport function useParentZIndex(): number | undefined {\n return useContext(ZIndexContext);\n}\n\n/**\n * Returns the z-index of the nearest ZIndex container ancestor.\n * Useful for reading the current overlay z-index level in child components.\n */\nexport function useZIndex(): number | undefined {\n return useContext(ZIndexContext);\n}\n"],"mappings":"yDAUA,IAAa,EAAgB,EAAkC,IAAA,GAAU,CAGzE,SAAgB,GAAsC,CACpD,OAAO,EAAW,EAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"z-index.js","names":["createEffect","mergeProps","on","onCleanup","ParentComponent","Show","Portal","cn","acquire","acquireScrollLock","release","releaseScrollLock","useParentZIndex","ZIndexContext","ZIndexType","ZIndexProps","OFFSET","Record","DROPDOWN","POPOVER","OVERLAY","MODAL","TOOLTIP","TOAST","RELATIVE_OFFSET","Partial","CONTAINER_TYPES","Set","computeEffectiveBase","type","globalBase","parentZIndex","undefined","relativeOffset","ZIndex","props","p","positioning","const","baseIndex","startIndex","Inner","innerProps","zIndex","customValue","onZIndex","blockScroll","releaseScrollLockOnUnmount","effectiveBase","acquired","releaseZIndexAndScrollLock","registryKey","offset","isContainer","has","_$createComponent","children","_el$","_tmpl$","_$insert","Provider","value","_$effect","_p$","_v$","class","_v$2","position","e","_$className","t","_$style","PreRenderInner","releaseZIndex","scrollLockHeld","open","defer","releaseScrollLockIfHeld","_el$2","_v$3","_v$4","display","preRender","when"],"sources":["../../../src/components/z-index/z-index.tsx"],"sourcesContent":["import { createEffect, mergeProps, on, onCleanup, ParentComponent, Show } from 'solid-js';\nimport { Portal } from 'solid-js/web';\nimport { cn } from '@/utils/cn';\nimport { acquire, acquireScrollLock, release, releaseScrollLock } from './z-index.store';\nimport { useParentZIndex, ZIndexContext } from './z-index.context';\nimport { ZIndexType, type ZIndexProps } from './z-index.types';\n\nexport { ZIndexType } from './z-index.types';\nexport type { ZIndexProps } from './z-index.types';\nexport { acquire, release } from './z-index.store';\n\n/** Base z-index for each type group when no parent context exists. */\nexport const OFFSET: Record<ZIndexType, number> = {\n [ZIndexType.DROPDOWN]: 200,\n [ZIndexType.POPOVER]: 200,\n [ZIndexType.OVERLAY]: 500,\n [ZIndexType.MODAL]: 1000,\n [ZIndexType.TOOLTIP]: 1500,\n [ZIndexType.TOAST]: 3000,\n};\n\n/**\n * Relative offset added to the parent container's z-index when a child popup\n * renders inside a container (MODAL or OVERLAY). This ensures correct stacking:\n * e.g., a dropdown inside a modal gets parentZIndex + 50, always above the modal.\n */\nconst RELATIVE_OFFSET: Partial<Record<ZIndexType, number>> = {\n [ZIndexType.DROPDOWN]: 10,\n [ZIndexType.POPOVER]: 20,\n [ZIndexType.TOOLTIP]: 30,\n};\n\n/**\n * Container types that publish their z-index via ZIndexContext so that\n * child popup components can calculate their z-index relative to this parent.\n */\nconst CONTAINER_TYPES = new Set<ZIndexType>([ZIndexType.MODAL, ZIndexType.OVERLAY]);\n\n/**\n * Compute the effective base index for slot allocation.\n *\n * - If a parent container z-index exists AND this type has a relative offset:\n * use `parentZIndex + relativeOffset` (context-aware mode).\n * - Otherwise: use the global `baseIndex` from OFFSET (top-level mode).\n */\nfunction computeEffectiveBase(\n type: string,\n globalBase: number,\n parentZIndex: number | undefined,\n): number {\n if (parentZIndex === undefined) return globalBase;\n const relativeOffset = RELATIVE_OFFSET[type as ZIndexType];\n if (relativeOffset === undefined) return globalBase;\n return parentZIndex + relativeOffset;\n}\n\n/**\n * ZIndex — wrapper component that renders children via Portal with an\n * auto-managed z-index from a centralized global registry.\n *\n * When `open` becomes true, it acquires the next available z-index slot\n * for the given type group. When `open` becomes false (or the component\n * unmounts), the slot is released back to the pool.\n *\n * Container types (MODAL, OVERLAY) additionally publish their z-index via\n * ZIndexContext, allowing nested popup children to auto-offset correctly.\n */\nexport const ZIndex: ParentComponent<ZIndexProps> = props => {\n const p = mergeProps({ positioning: 'fixed' as const }, props);\n\n const baseIndex = (): number => {\n if (p.startIndex !== undefined) return p.startIndex;\n return OFFSET[p.type as ZIndexType] ?? 0;\n };\n\n /**\n * Inner component — only rendered when `open` is true (or always when preRender).\n * This ties acquire/release to the actual Portal mount/unmount lifecycle.\n */\n const Inner: ParentComponent = innerProps => {\n let zIndex: number;\n\n if (p.customValue !== undefined) {\n zIndex = p.customValue;\n p.onZIndex?.(zIndex);\n if (p.blockScroll) acquireScrollLock();\n onCleanup(function releaseScrollLockOnUnmount() {\n if (p.blockScroll) releaseScrollLock();\n });\n } else {\n const parentZIndex = useParentZIndex();\n const effectiveBase = computeEffectiveBase(p.type, baseIndex(), parentZIndex);\n const acquired = acquire(p.type, effectiveBase);\n zIndex = acquired.zIndex;\n p.onZIndex?.(zIndex);\n if (p.blockScroll) acquireScrollLock();\n onCleanup(function releaseZIndexAndScrollLock() {\n release(acquired.registryKey, acquired.offset);\n if (p.blockScroll) releaseScrollLock();\n });\n }\n\n const isContainer = CONTAINER_TYPES.has(p.type as ZIndexType);\n\n // Container types (MODAL, OVERLAY) publish their z-index via ZIndexContext\n // so that nested popups (Dropdown, Tooltip…) can auto-offset correctly.\n // The Provider MUST live INSIDE the Portal so SolidJS's reactive ownership\n // tree propagates the context into the Portal's scope. Wrapping the Portal\n // element from the outside does NOT work because Portal creates its own\n // reactive scope when mounting into document.body.\n return (\n <Portal>\n <div\n class={cn(p.positioning === 'fixed' ? 'fixed' : 'absolute', p.class)}\n style={{ 'z-index': zIndex, ...p.position }}\n >\n {isContainer ? (\n <ZIndexContext.Provider value={zIndex}>{innerProps.children}</ZIndexContext.Provider>\n ) : (\n innerProps.children\n )}\n </div>\n </Portal>\n );\n };\n\n /**\n * PreRenderInner — always mounted in the DOM, but manages z-index/scroll\n * reactively based on `open`. Portal is always rendered; visibility is\n * controlled via CSS display:none when closed.\n */\n const PreRenderInner: ParentComponent = innerProps => {\n let zIndex: number;\n const parentZIndex = useParentZIndex();\n\n if (p.customValue !== undefined) {\n zIndex = p.customValue;\n } else {\n const effectiveBase = computeEffectiveBase(p.type, baseIndex(), parentZIndex);\n const acquired = acquire(p.type, effectiveBase);\n zIndex = acquired.zIndex;\n onCleanup(function releaseZIndex() {\n release(acquired.registryKey, acquired.offset);\n });\n }\n\n // Reactively manage scroll lock based on open state.\n // Track whether we've acquired the lock to avoid double-release.\n let scrollLockHeld = false;\n createEffect(\n on(\n () => p.open,\n open => {\n if (open) {\n if (p.blockScroll && !scrollLockHeld) {\n acquireScrollLock();\n scrollLockHeld = true;\n }\n p.onZIndex?.(zIndex);\n } else {\n if (p.blockScroll && scrollLockHeld) {\n releaseScrollLock();\n scrollLockHeld = false;\n }\n }\n },\n { defer: false },\n ),\n );\n onCleanup(function releaseScrollLockIfHeld() {\n if (p.blockScroll && scrollLockHeld) {\n releaseScrollLock();\n scrollLockHeld = false;\n }\n });\n\n const isContainer = CONTAINER_TYPES.has(p.type as ZIndexType);\n\n return (\n <Portal>\n <div\n class={cn(p.positioning === 'fixed' ? 'fixed' : 'absolute', p.class)}\n style={{ 'z-index': zIndex, display: p.open ? undefined : 'none', ...p.position }}\n >\n {isContainer ? (\n <ZIndexContext.Provider value={zIndex}>{innerProps.children}</ZIndexContext.Provider>\n ) : (\n innerProps.children\n )}\n </div>\n </Portal>\n );\n };\n\n return p.preRender ? (\n <PreRenderInner>{p.children}</PreRenderInner>\n ) : (\n <Show when={p.open}>\n <Inner>{p.children}</Inner>\n </Show>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"z-index.store.js","names":[],"sources":["../../../src/components/z-index/z-index.store.ts"],"sourcesContent":["/**\n * Global z-index registry.\n *\n * Tracks occupied z-index slots using a composite key `type@baseIndex`.\n * This allows the same ZIndexType to have multiple independent slot pools\n * when different base indexes are used (e.g., DROPDOWN inside modal A vs modal B).\n * When a slot is released (component unmounts), it becomes available for reuse,\n * keeping z-index values compact instead of endlessly incrementing.\n */\nconst registry = new Map<string, Set<number>>();\n\nexport type AcquireResult = { zIndex: number; registryKey: string; offset: number };\n\n/** Acquire the lowest available z-index slot for the given type + base combination. */\nexport function acquire(type: string, baseIndex: number): AcquireResult {\n const registryKey = `${type}@${baseIndex}`;\n let slots = registry.get(registryKey);\n if (!slots) {\n slots = new Set();\n registry.set(registryKey, slots);\n }\n let offset = 0;\n while (slots.has(offset)) offset++;\n slots.add(offset);\n return { zIndex: baseIndex + offset, registryKey, offset };\n}\n\n/** Release a previously acquired slot back to the pool. */\nexport function release(registryKey: string, offset: number): void {\n const slots = registry.get(registryKey);\n if (!slots) return;\n slots.delete(offset);\n if (slots.size === 0) registry.delete(registryKey);\n}\n\n// ---------------------------------------------------------------------------\n// Scroll lock\n// ---------------------------------------------------------------------------\n\nlet scrollLockCount = 0;\nlet savedOverflow = '';\n\n/** Increment scroll lock counter. Locks body scroll on first call. */\nexport function acquireScrollLock(): void {\n if (scrollLockCount === 0) {\n savedOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n scrollLockCount++;\n}\n\n/** Decrement scroll lock counter. Restores body scroll when counter reaches 0. */\nexport function releaseScrollLock(): void {\n if (scrollLockCount <= 0) return;\n scrollLockCount--;\n if (scrollLockCount === 0) {\n document.body.style.overflow = savedOverflow;\n savedOverflow = '';\n }\n}\n"],"mappings":"AASA,IAAM,EAAW,IAAI,IAKrB,SAAgB,EAAQ,EAAc,EAAkC,CACtE,IAAM,EAAc,GAAG,EAAK,GAAG,IAC3B,EAAQ,EAAS,IAAI,EAAY,CAChC,IACH,EAAQ,IAAI,IACZ,EAAS,IAAI,EAAa,EAAM,EAElC,IAAI,EAAS,EACb,KAAO,EAAM,IAAI,EAAO,EAAE,IAE1B,OADA,EAAM,IAAI,EAAO,CACV,CAAE,OAAQ,EAAY,EAAQ,cAAa,SAAQ,CAI5D,SAAgB,EAAQ,EAAqB,EAAsB,CACjE,IAAM,EAAQ,EAAS,IAAI,EAAY,CAClC,IACL,EAAM,OAAO,EAAO,CAChB,EAAM,OAAS,GAAG,EAAS,OAAO,EAAY,EAOpD,IAAI,EAAkB,EAClB,EAAgB,GAGpB,SAAgB,GAA0B,CACpC,IAAoB,IACtB,EAAgB,SAAS,KAAK,MAAM,SACpC,SAAS,KAAK,MAAM,SAAW,UAEjC,IAIF,SAAgB,GAA0B,CACpC,GAAmB,IACvB,IACI,IAAoB,IACtB,SAAS,KAAK,MAAM,SAAW,EAC/B,EAAgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"z-index.types.js","names":[],"sources":["../../../src/components/z-index/z-index.types.ts"],"sourcesContent":["import { JSX } from 'solid-js';\n\nexport enum ZIndexType {\n DROPDOWN = 'dropdown',\n MODAL = 'modal',\n TOOLTIP = 'tooltip',\n TOAST = 'toast',\n POPOVER = 'popover',\n OVERLAY = 'overlay',\n}\n\ntype TypeDefault = {\n type: ZIndexType;\n startIndex?: never;\n};\n\ntype CustomType = {\n type: string;\n startIndex: number;\n};\n\nexport type ZIndexProps = {\n /** Controls Portal mounting. When false, no DOM is rendered and no z-index slot is occupied. */\n open: boolean;\n /** CSS position type for the wrapper div. Defaults to 'fixed'. */\n positioning?: 'fixed' | 'absolute';\n /** Inline position styles (top, left, right, bottom, width, height, etc.). */\n position?: JSX.CSSProperties;\n /** Additional class for the wrapper div. */\n class?: string;\n /** Callback that receives the computed z-index when the Portal mounts. */\n onZIndex?: (zIndex: number) => void;\n /**\n * When true, blocks scroll on document.body while this layer is open.\n * Scroll inside children remains functional.\n * Multiple concurrent layers with blockScroll share a reference counter,\n * so body scroll is only restored when all of them are closed.\n * Defaults to false.\n */\n blockScroll?: boolean;\n /**\n * When provided, this value is used directly as the z-index without going\n * through the auto-allocation registry. No slot is acquired or released.\n * Takes precedence over the type-based computation and startIndex.\n */\n customValue?: number;\n /**\n * When true, the Portal is always mounted in the DOM regardless of `open`.\n * Visibility is controlled via CSS (display:none when closed).\n * Z-index slot and scroll lock are still only active when `open` is true.\n */\n preRender?: boolean;\n} & (TypeDefault | CustomType);\n"],"mappings":"AAEA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,SAAA,WACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,QAAA,gBACD"}
|
package/dist/utils/cn.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cn.js","names":[],"sources":["../../src/utils/cn.ts"],"sourcesContent":["import { ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"qEAGA,SAAgB,EAAG,GAAG,EAAsB,CAC1C,OAAO,EAAQ,EAAK,EAAO,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"element-tracker.js","names":[],"sources":["../../src/utils/element-tracker.ts"],"sourcesContent":["/**\n * element-tracker.ts\n *\n * Singleton global tracker để theo dõi vị trí và kích thước của một element.\n * Dùng chung cho các component như NewDropdown (blockScroll=false), Tooltip, Popover...\n *\n * Cơ chế:\n * - ResizeObserver: phát hiện element thay đổi kích thước.\n * - scroll event (capture, passive): phát hiện scroll ở bất kỳ container nào.\n * Chỉ đăng ký 1 listener duy nhất trên window; tự tháo khi không còn element nào.\n * - IntersectionObserver: phát hiện trigger đi vào/ra viewport để cập nhật rect.\n *\n * Mỗi element chỉ được track bởi 1 callback tại một thời điểm.\n * Gọi `untrackElement(el)` để dừng theo dõi và giải phóng bộ nhớ.\n */\n\nexport type TrackedRect = {\n top: number;\n left: number;\n width: number;\n height: number;\n};\n\ntype TrackCallback = (rect: TrackedRect) => void;\n\n// ── Singleton state ──────────────────────────────────────────────────────────\n\nconst callbacks = new Map<Element, TrackCallback>();\n\n// ResizeObserver: fires khi target thay đổi kích thước\nconst resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n const cb = callbacks.get(entry.target);\n if (cb) cb(getRect(entry.target));\n }\n});\n\n// IntersectionObserver: bắt khi trigger đi vào/ra viewport (bị scroll ra khỏi tầm nhìn)\nconst intersectionObserver = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n const cb = callbacks.get(entry.target);\n if (cb) cb(getRect(entry.target));\n }\n },\n { threshold: [0, 1] },\n);\n\n// scroll listener dùng chung — capture phase để bắt scroll ở mọi container\n// rAF dedup: gộp tất cả scroll events trong cùng 1 frame thành 1 lần getBoundingClientRect\nlet rafId = 0;\n\nconst onScroll = () => {\n if (rafId) return; // frame đã pending → bỏ qua, tránh gọi getBoundingClientRect nhiều lần/frame\n rafId = requestAnimationFrame(() => {\n rafId = 0;\n callbacks.forEach((cb, el) => cb(getRect(el)));\n });\n};\nlet scrollListenerAttached = false;\n\nfunction attachScrollListener() {\n if (!scrollListenerAttached) {\n window.addEventListener('scroll', onScroll, { passive: true, capture: true });\n scrollListenerAttached = true;\n }\n}\n\nfunction detachScrollListener() {\n if (scrollListenerAttached && callbacks.size === 0) {\n window.removeEventListener('scroll', onScroll, { capture: true });\n scrollListenerAttached = false;\n if (rafId) {\n cancelAnimationFrame(rafId);\n rafId = 0;\n }\n }\n}\n\nfunction getRect(el: Element): TrackedRect {\n const r = el.getBoundingClientRect();\n return { top: r.top, left: r.left, width: r.width, height: r.height };\n}\n\n// ── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Bắt đầu theo dõi vị trí của `el`.\n * `callback` sẽ được gọi ngay lập tức với rect hiện tại,\n * và mỗi khi el thay đổi kích thước hoặc scroll.\n */\nexport function trackElement(el: Element, callback: TrackCallback): void {\n callbacks.set(el, callback);\n resizeObserver.observe(el);\n intersectionObserver.observe(el);\n attachScrollListener();\n // Gọi ngay để caller có rect ban đầu\n callback(getRect(el));\n}\n\n/**\n * Dừng theo dõi `el` và giải phóng bộ nhớ.\n */\nexport function untrackElement(el: Element): void {\n callbacks.delete(el);\n resizeObserver.unobserve(el);\n intersectionObserver.unobserve(el);\n detachScrollListener();\n}\n"],"mappings":"AA2BA,IAAM,EAAY,IAAI,IAGhB,EAAiB,IAAI,eAAe,GAAW,CACnD,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAK,EAAU,IAAI,EAAM,OAAO,CAClC,GAAI,EAAG,EAAQ,EAAM,OAAO,CAAC,GAEnC,CAGI,EAAuB,IAAI,qBAC/B,GAAW,CACT,IAAK,IAAM,KAAS,EAAS,CAC3B,IAAM,EAAK,EAAU,IAAI,EAAM,OAAO,CAClC,GAAI,EAAG,EAAQ,EAAM,OAAO,CAAC,GAGrC,CAAE,UAAW,CAAC,EAAG,EAAE,CAAE,CACtB,CAIG,EAAQ,EAEN,MAAiB,CACjB,AACJ,IAAQ,0BAA4B,CAClC,EAAQ,EACR,EAAU,SAAS,EAAI,IAAO,EAAG,EAAQ,EAAG,CAAC,CAAC,EAC9C,EAEA,EAAyB,GAE7B,SAAS,GAAuB,CAC9B,AAEE,KADA,OAAO,iBAAiB,SAAU,EAAU,CAAE,QAAS,GAAM,QAAS,GAAM,CAAC,CACpD,IAI7B,SAAS,GAAuB,CAC1B,GAA0B,EAAU,OAAS,IAC/C,OAAO,oBAAoB,SAAU,EAAU,CAAE,QAAS,GAAM,CAAC,CACjE,EAAyB,GACzB,AAEE,KADA,qBAAqB,EAAM,CACnB,IAKd,SAAS,EAAQ,EAA0B,CACzC,IAAM,EAAI,EAAG,uBAAuB,CACpC,MAAO,CAAE,IAAK,EAAE,IAAK,KAAM,EAAE,KAAM,MAAO,EAAE,MAAO,OAAQ,EAAE,OAAQ,CAUvE,SAAgB,EAAa,EAAa,EAA+B,CACvE,EAAU,IAAI,EAAI,EAAS,CAC3B,EAAe,QAAQ,EAAG,CAC1B,EAAqB,QAAQ,EAAG,CAChC,GAAsB,CAEtB,EAAS,EAAQ,EAAG,CAAC,CAMvB,SAAgB,EAAe,EAAmB,CAChD,EAAU,OAAO,EAAG,CACpB,EAAe,UAAU,EAAG,CAC5B,EAAqB,UAAU,EAAG,CAClC,GAAsB"}
|
package/dist/utils/helper.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","names":[],"sources":["../../src/utils/helper.ts"],"sourcesContent":["import { BaseColorProps } from '@/type';\nimport { JSX } from 'solid-js';\n\ntype TimingFunction =\n | 'ease'\n | 'ease-in'\n | 'ease-out'\n | 'ease-in-out'\n | 'linear'\n | 'step-start'\n | 'step-end'\n | `steps(${number}, ${'start' | 'end'})`\n | `cubic-bezier(${number}, ${number}, ${number}, ${number})`;\n\ntype AnimationDirection = 'normal' | 'reverse' | 'alternate' | 'alternate-reverse';\ntype FillMode = 'none' | 'forwards' | 'backwards' | 'both';\ntype PlayState = 'running' | 'paused';\ntype TimeUnit = `${number}s` | `${number}ms`;\ntype IterationCount = number | 'infinite';\n\nexport interface AnimationConfig {\n name: string;\n duration?: TimeUnit;\n timingFunction?: TimingFunction;\n delay?: TimeUnit;\n iterationCount?: IterationCount;\n direction?: AnimationDirection;\n fillMode?: FillMode;\n playState?: PlayState;\n}\nconst DEFAULT_VALUES = {\n duration: '1s',\n timingFunction: 'ease',\n delay: '0s',\n iterationCount: 1,\n direction: 'normal',\n fillMode: 'none',\n playState: 'running',\n} as const;\nexport function renderCSSAnimation(config: AnimationConfig): string {\n const {\n name,\n duration = DEFAULT_VALUES.duration,\n timingFunction = DEFAULT_VALUES.timingFunction,\n delay = DEFAULT_VALUES.delay,\n iterationCount = DEFAULT_VALUES.iterationCount,\n direction = DEFAULT_VALUES.direction,\n fillMode = DEFAULT_VALUES.fillMode,\n playState = DEFAULT_VALUES.playState,\n } = config;\n\n return `${name} ${duration} ${timingFunction} ${delay} ${iterationCount} ${direction} ${fillMode} ${playState}`;\n}\nexport function createThrottle<T extends (...args: any[]) => void>(\n fn: T,\n delay: number,\n): T & { cancel: () => void } {\n let lastCall = 0;\n let timer: ReturnType<typeof setTimeout> | null = null;\n const throttled = (...args: Parameters<T>) => {\n const now = Date.now();\n const remaining = delay - (now - lastCall);\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n if (remaining <= 0) {\n lastCall = now;\n fn(...args);\n } else {\n timer = setTimeout(() => {\n lastCall = Date.now();\n timer = null;\n fn(...args);\n }, remaining);\n }\n };\n throttled.cancel = () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n return throttled as T & { cancel: () => void };\n}\nconst generateRandomHexColor = (): string => {\n const randomColor = Math.floor(Math.random() * 16777215).toString(16);\n return `#${randomColor.padStart(6, '0')}`;\n};\n\nexport function normalizeHexColor(value: string | undefined): string {\n if (!value) return generateRandomHexColor();\n let hex = value.trim().replace(/^#/, '');\n if (hex.length === 3) {\n hex = hex\n .split('')\n .map(char => char + char)\n .join('');\n }\n\n return `#${hex.toLowerCase()}`;\n}\nexport function getColor(color?: BaseColorProps | string, defaultColor?: string) {\n switch (color) {\n case 'primary':\n return 'color-primary';\n case 'neutral':\n return 'color-neutral';\n case 'secondary':\n return 'color-secondary';\n case 'accent':\n return 'color-accent';\n case 'info':\n return 'color-info';\n case 'success':\n return 'color-success';\n case 'warning':\n return 'color-warning';\n case 'error':\n return 'color-error';\n default:\n return defaultColor ?? '';\n }\n}\n\nconst lastValuesByKey = new Map<string, any>();\n\nexport function getRandomElement<T>(arr: T[], uniqueId: string): T {\n if (arr.length === 1) return arr[0];\n const lastValue = lastValuesByKey.get(uniqueId);\n let newValue: T;\n do {\n newValue = arr[Math.floor(Math.random() * arr.length)];\n } while (newValue === lastValue && arr.length > 1);\n\n lastValuesByKey.set(uniqueId, newValue);\n return newValue;\n}\nexport const genSVGCubicBezier: (\n keySplines: string,\n) => Pick<\n JSX.AnimateSVGAttributes<SVGAnimateElement>,\n 'calcMode' | 'keyTimes' | 'keySplines'\n> = keySplines => ({\n calcMode: 'spline',\n keyTimes: '0; 1',\n keySplines: keySplines,\n});\n\nexport type Image = Omit<JSX.ImgHTMLAttributes<HTMLImageElement>, 'src'> & { src: string };\n\nexport function toMarkdownCode(code: string, lang = 'tsx'): string {\n return `\\`\\`\\`${lang}\\n${code}\\n\\`\\`\\``;\n}\n"],"mappings":"AA8BA,IAAM,EAAiB,CACrB,SAAU,KACV,eAAgB,OAChB,MAAO,KACP,eAAgB,EAChB,UAAW,SACX,SAAU,OACV,UAAW,UACZ,CACD,SAAgB,EAAmB,EAAiC,CAClE,GAAM,CACJ,OACA,WAAW,EAAe,SAC1B,iBAAiB,EAAe,eAChC,QAAQ,EAAe,MACvB,iBAAiB,EAAe,eAChC,YAAY,EAAe,UAC3B,WAAW,EAAe,SAC1B,YAAY,EAAe,WACzB,EAEJ,MAAO,GAAG,EAAK,GAAG,EAAS,GAAG,EAAe,GAAG,EAAM,GAAG,EAAe,GAAG,EAAU,GAAG,EAAS,GAAG,IAEtG,SAAgB,EACd,EACA,EAC4B,CAC5B,IAAI,EAAW,EACX,EAA8C,KAC5C,GAAa,GAAG,IAAwB,CAC5C,IAAM,EAAM,KAAK,KAAK,CAChB,EAAY,GAAS,EAAM,GACjC,AAEE,KADA,aAAa,EAAM,CACX,MAEN,GAAa,GACf,EAAW,EACX,EAAG,GAAG,EAAK,EAEX,EAAQ,eAAiB,CACvB,EAAW,KAAK,KAAK,CACrB,EAAQ,KACR,EAAG,GAAG,EAAK,EACV,EAAU,EASjB,MANA,GAAU,WAAe,CACvB,AAEE,KADA,aAAa,EAAM,CACX,OAGL,EAET,IAAM,MAEG,IADa,KAAK,MAAM,KAAK,QAAQ,CAAG,SAAS,CAAC,SAAS,GAAG,CAC9C,SAAS,EAAG,IAAI,GAGzC,SAAgB,EAAkB,EAAmC,CACnE,GAAI,CAAC,EAAO,OAAO,GAAwB,CAC3C,IAAI,EAAM,EAAM,MAAM,CAAC,QAAQ,KAAM,GAAG,CAQxC,OAPI,EAAI,SAAW,IACjB,EAAM,EACH,MAAM,GAAG,CACT,IAAI,GAAQ,EAAO,EAAK,CACxB,KAAK,GAAG,EAGN,IAAI,EAAI,aAAa,GAE9B,SAAgB,EAAS,EAAiC,EAAuB,CAC/E,OAAQ,EAAR,CACE,IAAK,UACH,MAAO,gBACT,IAAK,UACH,MAAO,gBACT,IAAK,YACH,MAAO,kBACT,IAAK,SACH,MAAO,eACT,IAAK,OACH,MAAO,aACT,IAAK,UACH,MAAO,gBACT,IAAK,UACH,MAAO,gBACT,IAAK,QACH,MAAO,cACT,QACE,OAAO,GAAgB,IAiB7B,IAAa,EAKT,IAAe,CACjB,SAAU,SACV,SAAU,OACE,aACb"}
|
package/dist/utils/hoc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hoc.js","names":["Component","Show","ConditionalRenderConfig","preRender","P","when","conditionalRender","Record","Comp","configKey","p","whenValue","_$createComponent","keyed","children"],"sources":["../../src/utils/hoc.tsx"],"sourcesContent":["import { Component, Show } from 'solid-js';\n\ntype ConditionalRenderConfig<P> = {\n preRender: keyof P;\n when?: keyof P;\n};\n/*\npreRender sẽ tạo ra DOM ngay lập tức bất kể when có true hay false\n Mặc định false\n*/\nexport function conditionalRender<P extends Record<string, any>>(\n Comp: Component<P>,\n configKey: ConditionalRenderConfig<P>,\n) {\n return (p: P) => {\n const preRender = () => p[configKey.preRender] ?? false;\n const whenValue = () => (configKey?.when ? (p[configKey.when] ?? true) : true);\n\n return preRender() ? (\n <Comp {...p} />\n ) : (\n <Show when={whenValue()} keyed>\n <Comp {...p} />\n </Show>\n );\n };\n}\n"],"mappings":"+EAUA,SAAgBM,EACdE,EACAC,EACA,CACA,MAAQC,IAAS,CACf,IAAMP,MAAkBO,EAAED,EAAUN,YAAc,GAC5CQ,MAAmBF,GAAWJ,KAAQK,EAAED,EAAUJ,OAAS,GAAQ,GAEzE,OAAOF,GAAW,CAAAS,EACfJ,EAASE,EAAC,CAAAE,EAEVX,EAAI,CAAA,IAACI,MAAI,CAAA,OAAEM,GAAW,EAAEE,MAAK,GAAA,IAAAC,UAAA,CAAA,OAAAF,EAC3BJ,EAASE,EAAC,EAAA,CAEd"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|