solid-tom-ui 1.0.8 → 1.0.11
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/dist/README.md +246 -0
- package/dist/components/avatar/index.d.ts +3 -0
- package/{components → dist/components}/avatar/index.d.ts.map +1 -1
- package/dist/components/button/index.d.ts +3 -0
- package/{components → dist/components}/button/index.d.ts.map +1 -1
- package/dist/components/collapse/index.d.ts +3 -0
- package/{components → dist/components}/collapse/index.d.ts.map +1 -1
- package/dist/components/float-button/index.d.ts +3 -0
- package/{components → dist/components}/float-button/index.d.ts.map +1 -1
- package/dist/components/input/index.d.ts +3 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/menu/index.d.ts +4 -0
- package/{components → dist/components}/menu/index.d.ts.map +1 -1
- package/{components → dist/components}/menu/menu.types.d.ts +9 -10
- package/{components → dist/components}/menu/menu.types.d.ts.map +1 -1
- package/dist/components/rating/index.d.ts +3 -0
- package/{components → dist/components}/rating/index.d.ts.map +1 -1
- package/dist/components/slider/index.d.ts +3 -0
- package/{components → dist/components}/slider/index.d.ts.map +1 -1
- package/{components → dist/components}/tour/tour.d.ts.map +1 -1
- package/{components → dist/components}/tour/tour.js +1 -1
- package/{components → dist/components}/tour/tour.js.map +1 -1
- package/{components → dist/components}/z-index/z-index.types.js.map +1 -1
- package/dist/package.json +45 -0
- package/dist/skill/avatar.skill.md.txt +255 -0
- package/dist/skill/badge.skill.md.txt +223 -0
- package/dist/skill/blank.skill.md.txt +0 -0
- package/dist/skill/breadcrumb.skill.md.txt +177 -0
- package/dist/skill/button.skill.md.txt +198 -0
- package/dist/skill/carousel.skill.md.txt +406 -0
- package/dist/skill/chat-bubble.skill.md.txt +342 -0
- package/dist/skill/checkbox.skill.md.txt +326 -0
- package/dist/skill/code-preview.skill.md.txt +240 -0
- package/dist/skill/collapse.skill.md.txt +329 -0
- package/dist/skill/context-menu.skill.md.txt +233 -0
- package/dist/skill/diff.skill.md.txt +244 -0
- package/dist/skill/divider.skill.md.txt +151 -0
- package/dist/skill/doc.skill.md.txt +191 -0
- package/dist/skill/drawer.skill.md.txt +157 -0
- package/dist/skill/dropdown.skill.md.txt +198 -0
- package/dist/skill/float-button.skill.md.txt +315 -0
- package/dist/skill/hover-3d-image.skill.md.txt +120 -0
- package/dist/skill/iframe.skill.md.txt +114 -0
- package/dist/skill/image-preview.skill.md.txt +162 -0
- package/dist/skill/indicator.skill.md.txt +60 -0
- package/dist/skill/input.skill.md.txt +489 -0
- package/dist/skill/loading.skill.md.txt +127 -0
- package/dist/skill/mansory.skill.md.txt +0 -0
- package/dist/skill/menu.skill.md.txt +476 -0
- package/dist/skill/modal.skill.md.txt +359 -0
- package/dist/skill/pagination.skill.md.txt +405 -0
- package/dist/skill/progress-bar.skill.md.txt +207 -0
- package/dist/skill/qr-code.skill.md.txt +136 -0
- package/dist/skill/rating.skill.md.txt +167 -0
- package/dist/skill/select-zone.skill.md.txt +93 -0
- package/dist/skill/select.skill.md.txt +663 -0
- package/dist/skill/skeleton.skill.md.txt +192 -0
- package/dist/skill/slider.skill.md.txt +404 -0
- package/dist/skill/splitter.skill.md.txt +411 -0
- package/dist/skill/steps.skill.md.txt +264 -0
- package/dist/skill/swap.skill.md.txt +139 -0
- package/dist/skill/switch.skill.md.txt +191 -0
- package/dist/skill/tab.skill.md.txt +484 -0
- package/dist/skill/table.example.header.md.txt +667 -0
- package/dist/skill/table.skill.md.txt +1407 -0
- package/dist/skill/text-rotate.skill.md.txt +186 -0
- package/dist/skill/timeline.skill.md.txt +247 -0
- package/dist/skill/toast.skill.md.txt +531 -0
- package/dist/skill/tooltip.skill.md.txt +222 -0
- package/dist/skill/tour.skill.md.txt +156 -0
- package/dist/skill/upload.skill.md.txt +358 -0
- package/dist/skill/z-index.skill.md.txt +0 -0
- package/{solid-ui.css → dist/solid-ui.css} +2 -2
- package/package.json +97 -9
- package/components/avatar/index.d.ts +0 -2
- package/components/button/index.d.ts +0 -2
- package/components/collapse/index.d.ts +0 -2
- package/components/float-button/index.d.ts +0 -2
- package/components/input/index.d.ts +0 -2
- package/components/input/index.d.ts.map +0 -1
- package/components/menu/index.d.ts +0 -4
- package/components/rating/index.d.ts +0 -2
- package/components/slider/index.d.ts +0 -2
- package/macos.code-workspace +0 -8
- /package/{components → dist/components}/avatar/avatar.d.ts +0 -0
- /package/{components → dist/components}/avatar/avatar.d.ts.map +0 -0
- /package/{components → dist/components}/avatar/avatar.js +0 -0
- /package/{components → dist/components}/avatar/avatar.js.map +0 -0
- /package/{components → dist/components}/avatar/avatar.types.d.ts +0 -0
- /package/{components → dist/components}/avatar/avatar.types.d.ts.map +0 -0
- /package/{components → dist/components}/badge/badge.d.ts +0 -0
- /package/{components → dist/components}/badge/badge.d.ts.map +0 -0
- /package/{components → dist/components}/badge/badge.js +0 -0
- /package/{components → dist/components}/badge/badge.js.map +0 -0
- /package/{components → dist/components}/badge/badge.types.d.ts +0 -0
- /package/{components → dist/components}/badge/badge.types.d.ts.map +0 -0
- /package/{components → dist/components}/badge/index.d.ts +0 -0
- /package/{components → dist/components}/badge/index.d.ts.map +0 -0
- /package/{components → dist/components}/blank/blank.d.ts +0 -0
- /package/{components → dist/components}/blank/blank.d.ts.map +0 -0
- /package/{components → dist/components}/blank/index.d.ts +0 -0
- /package/{components → dist/components}/blank/index.d.ts.map +0 -0
- /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts +0 -0
- /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts.map +0 -0
- /package/{components → dist/components}/breadcrumb/breadcrumb.js +0 -0
- /package/{components → dist/components}/breadcrumb/breadcrumb.js.map +0 -0
- /package/{components → dist/components}/breadcrumb/index.d.ts +0 -0
- /package/{components → dist/components}/breadcrumb/index.d.ts.map +0 -0
- /package/{components → dist/components}/button/button.d.ts +0 -0
- /package/{components → dist/components}/button/button.d.ts.map +0 -0
- /package/{components → dist/components}/button/button.js +0 -0
- /package/{components → dist/components}/button/button.js.map +0 -0
- /package/{components → dist/components}/button/button.types.d.ts +0 -0
- /package/{components → dist/components}/button/button.types.d.ts.map +0 -0
- /package/{components → dist/components}/carousel/carousel.d.ts +0 -0
- /package/{components → dist/components}/carousel/carousel.d.ts.map +0 -0
- /package/{components → dist/components}/carousel/carousel.js +0 -0
- /package/{components → dist/components}/carousel/carousel.js.map +0 -0
- /package/{components → dist/components}/carousel/carousel.types.d.ts +0 -0
- /package/{components → dist/components}/carousel/carousel.types.d.ts.map +0 -0
- /package/{components → dist/components}/carousel/index.d.ts +0 -0
- /package/{components → dist/components}/carousel/index.d.ts.map +0 -0
- /package/{components → dist/components}/chat-bubble/chatBubble.d.ts +0 -0
- /package/{components → dist/components}/chat-bubble/chatBubble.d.ts.map +0 -0
- /package/{components → dist/components}/chat-bubble/chatBubble.js +0 -0
- /package/{components → dist/components}/chat-bubble/chatBubble.js.map +0 -0
- /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts +0 -0
- /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts.map +0 -0
- /package/{components → dist/components}/chat-bubble/index.d.ts +0 -0
- /package/{components → dist/components}/chat-bubble/index.d.ts.map +0 -0
- /package/{components → dist/components}/checkbox/checkbox.d.ts +0 -0
- /package/{components → dist/components}/checkbox/checkbox.d.ts.map +0 -0
- /package/{components → dist/components}/checkbox/checkbox.js +0 -0
- /package/{components → dist/components}/checkbox/checkbox.js.map +0 -0
- /package/{components → dist/components}/checkbox/index.d.ts +0 -0
- /package/{components → dist/components}/checkbox/index.d.ts.map +0 -0
- /package/{components → dist/components}/collapse/collapse.d.ts +0 -0
- /package/{components → dist/components}/collapse/collapse.d.ts.map +0 -0
- /package/{components → dist/components}/collapse/collapse.js +0 -0
- /package/{components → dist/components}/collapse/collapse.js.map +0 -0
- /package/{components → dist/components}/collapse/collapse.types.d.ts +0 -0
- /package/{components → dist/components}/collapse/collapse.types.d.ts.map +0 -0
- /package/{components → dist/components}/context-menu/context-menu.d.ts +0 -0
- /package/{components → dist/components}/context-menu/context-menu.d.ts.map +0 -0
- /package/{components → dist/components}/context-menu/context-menu.js +0 -0
- /package/{components → dist/components}/context-menu/context-menu.js.map +0 -0
- /package/{components → dist/components}/context-menu/context-menu.store.d.ts +0 -0
- /package/{components → dist/components}/context-menu/context-menu.store.d.ts.map +0 -0
- /package/{components → dist/components}/context-menu/context-menu.store.js +0 -0
- /package/{components → dist/components}/context-menu/context-menu.store.js.map +0 -0
- /package/{components → dist/components}/context-menu/context-menu.types.d.ts +0 -0
- /package/{components → dist/components}/context-menu/context-menu.types.d.ts.map +0 -0
- /package/{components → dist/components}/context-menu/index.d.ts +0 -0
- /package/{components → dist/components}/context-menu/index.d.ts.map +0 -0
- /package/{components → dist/components}/diff/diff.d.ts +0 -0
- /package/{components → dist/components}/diff/diff.d.ts.map +0 -0
- /package/{components → dist/components}/diff/diff.js +0 -0
- /package/{components → dist/components}/diff/diff.js.map +0 -0
- /package/{components → dist/components}/diff/index.d.ts +0 -0
- /package/{components → dist/components}/diff/index.d.ts.map +0 -0
- /package/{components → dist/components}/divider/divider.d.ts +0 -0
- /package/{components → dist/components}/divider/divider.d.ts.map +0 -0
- /package/{components → dist/components}/divider/divider.js +0 -0
- /package/{components → dist/components}/divider/divider.js.map +0 -0
- /package/{components → dist/components}/divider/divider.types.d.ts +0 -0
- /package/{components → dist/components}/divider/divider.types.d.ts.map +0 -0
- /package/{components → dist/components}/divider/index.d.ts +0 -0
- /package/{components → dist/components}/divider/index.d.ts.map +0 -0
- /package/{components → dist/components}/drawer/drawer.d.ts +0 -0
- /package/{components → dist/components}/drawer/drawer.d.ts.map +0 -0
- /package/{components → dist/components}/drawer/drawer.js +0 -0
- /package/{components → dist/components}/drawer/drawer.js.map +0 -0
- /package/{components → dist/components}/drawer/drawer.types.d.ts +0 -0
- /package/{components → dist/components}/drawer/drawer.types.d.ts.map +0 -0
- /package/{components → dist/components}/drawer/index.d.ts +0 -0
- /package/{components → dist/components}/drawer/index.d.ts.map +0 -0
- /package/{components → dist/components}/dropdown/dropdown.d.ts +0 -0
- /package/{components → dist/components}/dropdown/dropdown.d.ts.map +0 -0
- /package/{components → dist/components}/dropdown/dropdown.js +0 -0
- /package/{components → dist/components}/dropdown/dropdown.js.map +0 -0
- /package/{components → dist/components}/dropdown/dropdown.store.d.ts +0 -0
- /package/{components → dist/components}/dropdown/dropdown.store.d.ts.map +0 -0
- /package/{components → dist/components}/dropdown/dropdown.store.js +0 -0
- /package/{components → dist/components}/dropdown/dropdown.store.js.map +0 -0
- /package/{components → dist/components}/dropdown/dropdown.types.d.ts +0 -0
- /package/{components → dist/components}/dropdown/dropdown.types.d.ts.map +0 -0
- /package/{components → dist/components}/dropdown/index.d.ts +0 -0
- /package/{components → dist/components}/dropdown/index.d.ts.map +0 -0
- /package/{components → dist/components}/float-button/float-button.d.ts +0 -0
- /package/{components → dist/components}/float-button/float-button.d.ts.map +0 -0
- /package/{components → dist/components}/float-button/float-button.js +0 -0
- /package/{components → dist/components}/float-button/float-button.js.map +0 -0
- /package/{components → dist/components}/float-button/float-button.types.d.ts +0 -0
- /package/{components → dist/components}/float-button/float-button.types.d.ts.map +0 -0
- /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts +0 -0
- /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts.map +0 -0
- /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts +0 -0
- /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts.map +0 -0
- /package/{components → dist/components}/hover-3d-image/hover-3d-image.js +0 -0
- /package/{components → dist/components}/hover-3d-image/hover-3d-image.js.map +0 -0
- /package/{components → dist/components}/hover-3d-image/index.d.ts +0 -0
- /package/{components → dist/components}/hover-3d-image/index.d.ts.map +0 -0
- /package/{components → dist/components}/image-preview/image-preview.d.ts +0 -0
- /package/{components → dist/components}/image-preview/image-preview.d.ts.map +0 -0
- /package/{components → dist/components}/image-preview/image-preview.js +0 -0
- /package/{components → dist/components}/image-preview/image-preview.js.map +0 -0
- /package/{components → dist/components}/image-preview/index.d.ts +0 -0
- /package/{components → dist/components}/image-preview/index.d.ts.map +0 -0
- /package/{components → dist/components}/indicator/index.d.ts +0 -0
- /package/{components → dist/components}/indicator/index.d.ts.map +0 -0
- /package/{components → dist/components}/indicator/indicator.d.ts +0 -0
- /package/{components → dist/components}/indicator/indicator.d.ts.map +0 -0
- /package/{components → dist/components}/indicator/indicator.js +0 -0
- /package/{components → dist/components}/indicator/indicator.js.map +0 -0
- /package/{components → dist/components}/indicator/indicator.types.d.ts +0 -0
- /package/{components → dist/components}/indicator/indicator.types.d.ts.map +0 -0
- /package/{components → dist/components}/input/input.d.ts +0 -0
- /package/{components → dist/components}/input/input.d.ts.map +0 -0
- /package/{components → dist/components}/input/input.js +0 -0
- /package/{components → dist/components}/input/input.js.map +0 -0
- /package/{components → dist/components}/input/input.types.d.ts +0 -0
- /package/{components → dist/components}/input/input.types.d.ts.map +0 -0
- /package/{components → dist/components}/input/input.utils.d.ts +0 -0
- /package/{components → dist/components}/input/input.utils.d.ts.map +0 -0
- /package/{components → dist/components}/input/input.utils.js +0 -0
- /package/{components → dist/components}/input/input.utils.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-color.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-color.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-color.js +0 -0
- /package/{components → dist/components}/input/variants/input-color.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-date.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-date.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-date.js +0 -0
- /package/{components → dist/components}/input/variants/input-date.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-number.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-number.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-number.js +0 -0
- /package/{components → dist/components}/input/variants/input-number.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-otp.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-otp.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-otp.js +0 -0
- /package/{components → dist/components}/input/variants/input-otp.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-password.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-password.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-password.js +0 -0
- /package/{components → dist/components}/input/variants/input-password.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-radio.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-radio.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-radio.js +0 -0
- /package/{components → dist/components}/input/variants/input-radio.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-range.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-range.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-range.js +0 -0
- /package/{components → dist/components}/input/variants/input-range.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-text.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-text.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-text.js +0 -0
- /package/{components → dist/components}/input/variants/input-text.js.map +0 -0
- /package/{components → dist/components}/input/variants/input-textarea.d.ts +0 -0
- /package/{components → dist/components}/input/variants/input-textarea.d.ts.map +0 -0
- /package/{components → dist/components}/input/variants/input-textarea.js +0 -0
- /package/{components → dist/components}/input/variants/input-textarea.js.map +0 -0
- /package/{components → dist/components}/loading/index.d.ts +0 -0
- /package/{components → dist/components}/loading/index.d.ts.map +0 -0
- /package/{components → dist/components}/loading/loading.d.ts +0 -0
- /package/{components → dist/components}/loading/loading.d.ts.map +0 -0
- /package/{components → dist/components}/loading/loading.js +0 -0
- /package/{components → dist/components}/loading/loading.js.map +0 -0
- /package/{components → dist/components}/mansory/index.d.ts +0 -0
- /package/{components → dist/components}/mansory/index.d.ts.map +0 -0
- /package/{components → dist/components}/mansory/mansory.d.ts +0 -0
- /package/{components → dist/components}/mansory/mansory.d.ts.map +0 -0
- /package/{components → dist/components}/mansory/mansory.js +0 -0
- /package/{components → dist/components}/mansory/mansory.js.map +0 -0
- /package/{components → dist/components}/mansory/mansory.types.d.ts +0 -0
- /package/{components → dist/components}/mansory/mansory.types.d.ts.map +0 -0
- /package/{components → dist/components}/menu/menu.d.ts +0 -0
- /package/{components → dist/components}/menu/menu.d.ts.map +0 -0
- /package/{components → dist/components}/menu/menu.data-example.d.ts +0 -0
- /package/{components → dist/components}/menu/menu.data-example.d.ts.map +0 -0
- /package/{components → dist/components}/menu/menu.js +0 -0
- /package/{components → dist/components}/menu/menu.js.map +0 -0
- /package/{components → dist/components}/modal/index.d.ts +0 -0
- /package/{components → dist/components}/modal/index.d.ts.map +0 -0
- /package/{components → dist/components}/modal/modal.d.ts +0 -0
- /package/{components → dist/components}/modal/modal.d.ts.map +0 -0
- /package/{components → dist/components}/modal/modal.js +0 -0
- /package/{components → dist/components}/modal/modal.js.map +0 -0
- /package/{components → dist/components}/modal/modalContext.d.ts +0 -0
- /package/{components → dist/components}/modal/modalContext.d.ts.map +0 -0
- /package/{components → dist/components}/modal/modalContext.js +0 -0
- /package/{components → dist/components}/modal/modalContext.js.map +0 -0
- /package/{components → dist/components}/pagination/index.d.ts +0 -0
- /package/{components → dist/components}/pagination/index.d.ts.map +0 -0
- /package/{components → dist/components}/pagination/pagination.d.ts +0 -0
- /package/{components → dist/components}/pagination/pagination.d.ts.map +0 -0
- /package/{components → dist/components}/pagination/pagination.js +0 -0
- /package/{components → dist/components}/pagination/pagination.js.map +0 -0
- /package/{components → dist/components}/pagination/pagination.types.d.ts +0 -0
- /package/{components → dist/components}/pagination/pagination.types.d.ts.map +0 -0
- /package/{components → dist/components}/progress-bar/index.d.ts +0 -0
- /package/{components → dist/components}/progress-bar/index.d.ts.map +0 -0
- /package/{components → dist/components}/progress-bar/progress-bar.d.ts +0 -0
- /package/{components → dist/components}/progress-bar/progress-bar.d.ts.map +0 -0
- /package/{components → dist/components}/progress-bar/progress-bar.js +0 -0
- /package/{components → dist/components}/progress-bar/progress-bar.js.map +0 -0
- /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts +0 -0
- /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts.map +0 -0
- /package/{components → dist/components}/qr-code/index.d.ts +0 -0
- /package/{components → dist/components}/qr-code/index.d.ts.map +0 -0
- /package/{components → dist/components}/qr-code/qr-code.d.ts +0 -0
- /package/{components → dist/components}/qr-code/qr-code.d.ts.map +0 -0
- /package/{components → dist/components}/qr-code/qr-code.js +0 -0
- /package/{components → dist/components}/qr-code/qr-code.js.map +0 -0
- /package/{components → dist/components}/qr-code/qr-code.types.d.ts +0 -0
- /package/{components → dist/components}/qr-code/qr-code.types.d.ts.map +0 -0
- /package/{components → dist/components}/rating/rating.d.ts +0 -0
- /package/{components → dist/components}/rating/rating.d.ts.map +0 -0
- /package/{components → dist/components}/rating/rating.js +0 -0
- /package/{components → dist/components}/rating/rating.js.map +0 -0
- /package/{components → dist/components}/rating/rating.types.d.ts +0 -0
- /package/{components → dist/components}/rating/rating.types.d.ts.map +0 -0
- /package/{components → dist/components}/select/index.d.ts +0 -0
- /package/{components → dist/components}/select/index.d.ts.map +0 -0
- /package/{components → dist/components}/select/select.d.ts +0 -0
- /package/{components → dist/components}/select/select.d.ts.map +0 -0
- /package/{components → dist/components}/select/select.js +0 -0
- /package/{components → dist/components}/select/select.js.map +0 -0
- /package/{components → dist/components}/select/select.types.d.ts +0 -0
- /package/{components → dist/components}/select/select.types.d.ts.map +0 -0
- /package/{components → dist/components}/select-zone/index.d.ts +0 -0
- /package/{components → dist/components}/select-zone/index.d.ts.map +0 -0
- /package/{components → dist/components}/select-zone/select-zone.d.ts +0 -0
- /package/{components → dist/components}/select-zone/select-zone.d.ts.map +0 -0
- /package/{components → dist/components}/select-zone/select-zone.js +0 -0
- /package/{components → dist/components}/select-zone/select-zone.js.map +0 -0
- /package/{components → dist/components}/select-zone/select-zone.types.d.ts +0 -0
- /package/{components → dist/components}/select-zone/select-zone.types.d.ts.map +0 -0
- /package/{components → dist/components}/skeleton/index.d.ts +0 -0
- /package/{components → dist/components}/skeleton/index.d.ts.map +0 -0
- /package/{components → dist/components}/skeleton/skeleton.d.ts +0 -0
- /package/{components → dist/components}/skeleton/skeleton.d.ts.map +0 -0
- /package/{components → dist/components}/skeleton/skeleton.js +0 -0
- /package/{components → dist/components}/skeleton/skeleton.js.map +0 -0
- /package/{components → dist/components}/slider/slider.d.ts +0 -0
- /package/{components → dist/components}/slider/slider.d.ts.map +0 -0
- /package/{components → dist/components}/slider/slider.js +0 -0
- /package/{components → dist/components}/slider/slider.js.map +0 -0
- /package/{components → dist/components}/slider/slider.types.d.ts +0 -0
- /package/{components → dist/components}/slider/slider.types.d.ts.map +0 -0
- /package/{components → dist/components}/splitter/index.d.ts +0 -0
- /package/{components → dist/components}/splitter/index.d.ts.map +0 -0
- /package/{components → dist/components}/splitter/splitter.d.ts +0 -0
- /package/{components → dist/components}/splitter/splitter.d.ts.map +0 -0
- /package/{components → dist/components}/splitter/splitter.js +0 -0
- /package/{components → dist/components}/splitter/splitter.js.map +0 -0
- /package/{components → dist/components}/splitter/splitter.types.d.ts +0 -0
- /package/{components → dist/components}/splitter/splitter.types.d.ts.map +0 -0
- /package/{components → dist/components}/steps/index.d.ts +0 -0
- /package/{components → dist/components}/steps/index.d.ts.map +0 -0
- /package/{components → dist/components}/steps/steps.d.ts +0 -0
- /package/{components → dist/components}/steps/steps.d.ts.map +0 -0
- /package/{components → dist/components}/steps/steps.js +0 -0
- /package/{components → dist/components}/steps/steps.js.map +0 -0
- /package/{components → dist/components}/swap/index.d.ts +0 -0
- /package/{components → dist/components}/swap/index.d.ts.map +0 -0
- /package/{components → dist/components}/swap/swap.d.ts +0 -0
- /package/{components → dist/components}/swap/swap.d.ts.map +0 -0
- /package/{components → dist/components}/swap/swap.js +0 -0
- /package/{components → dist/components}/swap/swap.js.map +0 -0
- /package/{components → dist/components}/switch/index.d.ts +0 -0
- /package/{components → dist/components}/switch/index.d.ts.map +0 -0
- /package/{components → dist/components}/switch/switch.d.ts +0 -0
- /package/{components → dist/components}/switch/switch.d.ts.map +0 -0
- /package/{components → dist/components}/switch/switch.js +0 -0
- /package/{components → dist/components}/switch/switch.js.map +0 -0
- /package/{components → dist/components}/switch/switch.types.d.ts +0 -0
- /package/{components → dist/components}/switch/switch.types.d.ts.map +0 -0
- /package/{components → dist/components}/tab/index.d.ts +0 -0
- /package/{components → dist/components}/tab/index.d.ts.map +0 -0
- /package/{components → dist/components}/tab/tab.d.ts +0 -0
- /package/{components → dist/components}/tab/tab.d.ts.map +0 -0
- /package/{components → dist/components}/tab/tab.js +0 -0
- /package/{components → dist/components}/tab/tab.js.map +0 -0
- /package/{components → dist/components}/tab/tab.types.d.ts +0 -0
- /package/{components → dist/components}/tab/tab.types.d.ts.map +0 -0
- /package/{components → dist/components}/table/index.d.ts +0 -0
- /package/{components → dist/components}/table/index.d.ts.map +0 -0
- /package/{components → dist/components}/table/index.js +0 -0
- /package/{components → dist/components}/table/table.d.ts +0 -0
- /package/{components → dist/components}/table/table.d.ts.map +0 -0
- /package/{components → dist/components}/table/table.js +0 -0
- /package/{components → dist/components}/table/table.js.map +0 -0
- /package/{components → dist/components}/table/table.types.d.ts +0 -0
- /package/{components → dist/components}/table/table.types.d.ts.map +0 -0
- /package/{components → dist/components}/text-rotate/index.d.ts +0 -0
- /package/{components → dist/components}/text-rotate/index.d.ts.map +0 -0
- /package/{components → dist/components}/text-rotate/text-rotate.d.ts +0 -0
- /package/{components → dist/components}/text-rotate/text-rotate.d.ts.map +0 -0
- /package/{components → dist/components}/text-rotate/text-rotate.js +0 -0
- /package/{components → dist/components}/text-rotate/text-rotate.js.map +0 -0
- /package/{components → dist/components}/timeline/index.d.ts +0 -0
- /package/{components → dist/components}/timeline/index.d.ts.map +0 -0
- /package/{components → dist/components}/timeline/timeline.d.ts +0 -0
- /package/{components → dist/components}/timeline/timeline.d.ts.map +0 -0
- /package/{components → dist/components}/timeline/timeline.js +0 -0
- /package/{components → dist/components}/timeline/timeline.js.map +0 -0
- /package/{components → dist/components}/timeline/timeline.types.d.ts +0 -0
- /package/{components → dist/components}/timeline/timeline.types.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/ErrorIcon.js +0 -0
- /package/{components → dist/components}/toast/icons/ErrorIcon.js.map +0 -0
- /package/{components → dist/components}/toast/icons/IconCircle.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/IconCircle.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/IconCircle.js +0 -0
- /package/{components → dist/components}/toast/icons/IconCircle.js.map +0 -0
- /package/{components → dist/components}/toast/icons/InfoIcon.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/InfoIcon.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/InfoIcon.js +0 -0
- /package/{components → dist/components}/toast/icons/InfoIcon.js.map +0 -0
- /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/LoaderIcon.js +0 -0
- /package/{components → dist/components}/toast/icons/LoaderIcon.js.map +0 -0
- /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/SuccessIcon.js +0 -0
- /package/{components → dist/components}/toast/icons/SuccessIcon.js.map +0 -0
- /package/{components → dist/components}/toast/icons/WarningIcon.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/WarningIcon.d.ts.map +0 -0
- /package/{components → dist/components}/toast/icons/WarningIcon.js +0 -0
- /package/{components → dist/components}/toast/icons/WarningIcon.js.map +0 -0
- /package/{components → dist/components}/toast/icons/index.d.ts +0 -0
- /package/{components → dist/components}/toast/icons/index.d.ts.map +0 -0
- /package/{components → dist/components}/toast/index.d.ts +0 -0
- /package/{components → dist/components}/toast/index.d.ts.map +0 -0
- /package/{components → dist/components}/toast/toast.d.ts +0 -0
- /package/{components → dist/components}/toast/toast.d.ts.map +0 -0
- /package/{components → dist/components}/toast/toast.js +0 -0
- /package/{components → dist/components}/toast/toast.js.map +0 -0
- /package/{components → dist/components}/toast/toast.store.d.ts +0 -0
- /package/{components → dist/components}/toast/toast.store.d.ts.map +0 -0
- /package/{components → dist/components}/toast/toast.store.js +0 -0
- /package/{components → dist/components}/toast/toast.store.js.map +0 -0
- /package/{components → dist/components}/toast/toast.type.d.ts +0 -0
- /package/{components → dist/components}/toast/toast.type.d.ts.map +0 -0
- /package/{components → dist/components}/tooltip/index.d.ts +0 -0
- /package/{components → dist/components}/tooltip/index.d.ts.map +0 -0
- /package/{components → dist/components}/tooltip/tooltip.d.ts +0 -0
- /package/{components → dist/components}/tooltip/tooltip.d.ts.map +0 -0
- /package/{components → dist/components}/tooltip/tooltip.js +0 -0
- /package/{components → dist/components}/tooltip/tooltip.js.map +0 -0
- /package/{components → dist/components}/tooltip/tooltip.types.d.ts +0 -0
- /package/{components → dist/components}/tooltip/tooltip.types.d.ts.map +0 -0
- /package/{components → dist/components}/tour/index.d.ts +0 -0
- /package/{components → dist/components}/tour/index.d.ts.map +0 -0
- /package/{components → dist/components}/tour/tour.d.ts +0 -0
- /package/{components → dist/components}/tour/tour.types.d.ts +0 -0
- /package/{components → dist/components}/tour/tour.types.d.ts.map +0 -0
- /package/{components → dist/components}/upload/index.d.ts +0 -0
- /package/{components → dist/components}/upload/index.d.ts.map +0 -0
- /package/{components → dist/components}/upload/upload.d.ts +0 -0
- /package/{components → dist/components}/upload/upload.d.ts.map +0 -0
- /package/{components → dist/components}/upload/upload.js +0 -0
- /package/{components → dist/components}/upload/upload.js.map +0 -0
- /package/{components → dist/components}/upload/upload.types.d.ts +0 -0
- /package/{components → dist/components}/upload/upload.types.d.ts.map +0 -0
- /package/{components → dist/components}/z-index/index.d.ts +0 -0
- /package/{components → dist/components}/z-index/index.d.ts.map +0 -0
- /package/{components → dist/components}/z-index/z-index.context.d.ts +0 -0
- /package/{components → dist/components}/z-index/z-index.context.d.ts.map +0 -0
- /package/{components → dist/components}/z-index/z-index.context.js +0 -0
- /package/{components → dist/components}/z-index/z-index.context.js.map +0 -0
- /package/{components → dist/components}/z-index/z-index.d.ts +0 -0
- /package/{components → dist/components}/z-index/z-index.d.ts.map +0 -0
- /package/{components → dist/components}/z-index/z-index.js +0 -0
- /package/{components → dist/components}/z-index/z-index.js.map +0 -0
- /package/{components → dist/components}/z-index/z-index.store.d.ts +0 -0
- /package/{components → dist/components}/z-index/z-index.store.d.ts.map +0 -0
- /package/{components → dist/components}/z-index/z-index.store.js +0 -0
- /package/{components → dist/components}/z-index/z-index.store.js.map +0 -0
- /package/{components → dist/components}/z-index/z-index.types.d.ts +0 -0
- /package/{components → dist/components}/z-index/z-index.types.d.ts.map +0 -0
- /package/{components → dist/components}/z-index/z-index.types.js +0 -0
- /package/{lib.d.ts → dist/lib.d.ts} +0 -0
- /package/{lib.d.ts.map → dist/lib.d.ts.map} +0 -0
- /package/{lib.js → dist/lib.js} +0 -0
- /package/{type.d.ts → dist/type.d.ts} +0 -0
- /package/{type.d.ts.map → dist/type.d.ts.map} +0 -0
- /package/{utils → dist/utils}/cn.d.ts +0 -0
- /package/{utils → dist/utils}/cn.d.ts.map +0 -0
- /package/{utils → dist/utils}/cn.js +0 -0
- /package/{utils → dist/utils}/cn.js.map +0 -0
- /package/{utils → dist/utils}/element-tracker.js +0 -0
- /package/{utils → dist/utils}/element-tracker.js.map +0 -0
- /package/{utils → dist/utils}/helper.d.ts +0 -0
- /package/{utils → dist/utils}/helper.d.ts.map +0 -0
- /package/{utils → dist/utils}/helper.js +0 -0
- /package/{utils → dist/utils}/helper.js.map +0 -0
- /package/{utils → dist/utils}/hoc.js +0 -0
- /package/{utils → dist/utils}/hoc.js.map +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
## COMPONENT IDENTITY
|
|
2
|
+
- **Import**: `import { Swap } from 'solid-tom-ui';`
|
|
3
|
+
- **Export**: `Swap` (named export)
|
|
4
|
+
- **Framework**: SolidJS
|
|
5
|
+
- **Purpose**: Toggle component that alternates between two visual states (`item1` / `item2`) via a hidden checkbox; supports `rotate` and `flip` animation effects
|
|
6
|
+
|
|
7
|
+
## TYPE SIGNATURE
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { Swap, SolidComponent } from 'solid-tom-ui';
|
|
11
|
+
|
|
12
|
+
<Swap
|
|
13
|
+
item1={SolidComponent} // REQUIRED: shown when checkbox is CHECKED (swap-on)
|
|
14
|
+
item2={SolidComponent} // REQUIRED: shown when checkbox is UNCHECKED (swap-off)
|
|
15
|
+
effect?="rotate" | "flip" // animation effect; default: "rotate"
|
|
16
|
+
onChange?={(value: boolean) => void} // called when checkbox changes; value = checked state
|
|
17
|
+
/>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### `SolidComponent` type
|
|
21
|
+
```typescript
|
|
22
|
+
type SolidComponent = Component<any> | (() => JSX.Element) | JSX.Element;
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## STATE MODEL
|
|
26
|
+
| Checkbox state | Visible item | CSS class on label |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| `checked = true` | `item1` | `swap-on` is active |
|
|
29
|
+
| `checked = false` | `item2` | `swap-off` is active |
|
|
30
|
+
|
|
31
|
+
- `item1` = the "ON" state content (e.g., close icon, "X")
|
|
32
|
+
- `item2` = the "OFF" state content (e.g., hamburger menu, sun icon)
|
|
33
|
+
- The component is **uncontrolled** — no external `checked` prop; checkbox state is managed by DaisyUI's CSS.
|
|
34
|
+
|
|
35
|
+
## USAGE PATTERNS
|
|
36
|
+
|
|
37
|
+
### Icon toggle with rotate effect (hamburger ↔ close)
|
|
38
|
+
```tsx
|
|
39
|
+
import { Swap, DynamicIcon } from 'solid-tom-ui';
|
|
40
|
+
|
|
41
|
+
<Swap
|
|
42
|
+
item1={<DynamicIcon name="circle-x" size={40} />}
|
|
43
|
+
item2={<DynamicIcon name="menu" size={40} />}
|
|
44
|
+
effect="rotate"
|
|
45
|
+
onChange={value => console.log('isOpen:', value)}
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Flip effect (arrow up ↔ arrow down)
|
|
50
|
+
```tsx
|
|
51
|
+
<Swap
|
|
52
|
+
item1={<DynamicIcon name="arrow-up-to-line" size={40} stroke="black" />}
|
|
53
|
+
item2={<DynamicIcon name="arrow-down-to-line" size={40} stroke="black" />}
|
|
54
|
+
effect="flip"
|
|
55
|
+
/>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### With Button content (any SolidJS component works)
|
|
59
|
+
```tsx
|
|
60
|
+
import { Button } from 'solid-tom-ui';
|
|
61
|
+
|
|
62
|
+
<Swap
|
|
63
|
+
item1={<Button variant="solid" color="error">Cancel</Button>}
|
|
64
|
+
item2={<Button variant="solid" color="primary">Open</Button>}
|
|
65
|
+
onChange={value => setIsOpen(value)}
|
|
66
|
+
/>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Light/Dark theme toggle pattern
|
|
70
|
+
```tsx
|
|
71
|
+
<Swap
|
|
72
|
+
item1={<DynamicIcon name="moon" size={24} />} // checked = dark mode
|
|
73
|
+
item2={<DynamicIcon name="sun" size={24} />} // unchecked = light mode
|
|
74
|
+
effect="rotate"
|
|
75
|
+
onChange={isDark => applyTheme(isDark ? 'dark' : 'light')}
|
|
76
|
+
/>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Play/Pause media toggle
|
|
80
|
+
```tsx
|
|
81
|
+
<Swap
|
|
82
|
+
item1={<DynamicIcon name="pause" size={32} />} // checked = playing
|
|
83
|
+
item2={<DynamicIcon name="play" size={32} />} // unchecked = paused
|
|
84
|
+
effect="flip"
|
|
85
|
+
onChange={isPlaying => togglePlayback(isPlaying)}
|
|
86
|
+
/>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## EFFECT REFERENCE
|
|
90
|
+
| `effect` value | DaisyUI class | Animation |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| `"rotate"` | `swap-rotate` | Items rotate 45° during transition |
|
|
93
|
+
| `"flip"` | `swap-flip` | Items flip on Y axis during transition |
|
|
94
|
+
| *(omitted)* | `swap-rotate` | Defaults to rotate |
|
|
95
|
+
|
|
96
|
+
## CONSTRAINTS
|
|
97
|
+
- Both `item1` and `item2` are **REQUIRED**.
|
|
98
|
+
- `item1` and `item2` are rendered via `<Dynamic component={...} />`, so they must be **component references** or **inline JSX** compatible with `SolidComponent`.
|
|
99
|
+
- The component is **uncontrolled** — initial state is always `item2` (unchecked). There is no `defaultChecked` or `checked` prop.
|
|
100
|
+
- The toggle is driven by a native `<input type="checkbox">` inside a `<label>`. Clicking anywhere on the rendered content toggles the state.
|
|
101
|
+
- `onChange` receives `true` when switching to `item1` (checked), `false` when switching back to `item2`.
|
|
102
|
+
|
|
103
|
+
## ANTI-PATTERNS
|
|
104
|
+
```tsx
|
|
105
|
+
// ❌ Forgetting that item1 is "ON" (checked) and item2 is "OFF" (unchecked)
|
|
106
|
+
// If you want the hamburger visible first (default/off state), put it in item2
|
|
107
|
+
<Swap
|
|
108
|
+
item1={<MenuIcon />} // ❌ this shows when CHECKED (after click)
|
|
109
|
+
item2={<CloseIcon />} // ❌ this shows by default (initial unchecked state)
|
|
110
|
+
/>
|
|
111
|
+
// ✅ Correct: item2 = default (off) state, item1 = toggled (on) state
|
|
112
|
+
<Swap
|
|
113
|
+
item1={<CloseIcon />} // shown after click
|
|
114
|
+
item2={<MenuIcon />} // shown initially
|
|
115
|
+
/>
|
|
116
|
+
|
|
117
|
+
// ❌ Trying to control checked state externally (no prop for this)
|
|
118
|
+
<Swap item1={A} item2={B} checked={isOpen()} /> // ❌ prop doesn't exist
|
|
119
|
+
|
|
120
|
+
// ❌ Passing string/plain text directly (needs to be a component or JSX)
|
|
121
|
+
<Swap item1="ON" item2="OFF" /> // may not render correctly with Dynamic
|
|
122
|
+
// ✅ Wrap in a component
|
|
123
|
+
<Swap item1={() => <span>ON</span>} item2={() => <span>OFF</span>} />
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## DECISION RULES
|
|
127
|
+
- Use `Swap` for **binary toggle icons** where animation is desired (theme toggle, menu open/close, play/pause).
|
|
128
|
+
- Use `effect="rotate"` for rotating icons (typical hamburger → X transition).
|
|
129
|
+
- Use `effect="flip"` for content that "flips" perspective (up/down arrows, front/back cards).
|
|
130
|
+
- For text-only toggles or toggles requiring controlled state, use `Switch` instead.
|
|
131
|
+
- `onChange` is optional; omit if you only need visual toggle without side effects.
|
|
132
|
+
|
|
133
|
+
## CLASS SLOTS
|
|
134
|
+
|
|
135
|
+
`Swap` is a single-element component — no `class` prop currently exposed. Style it by wrapping in a container or passing styled components as `item1`/`item2`.
|
|
136
|
+
|
|
137
|
+
> **CSS encoding**: internal CSS classes use short encoded names (e.g. `sw01`, `sw02`) per project convention.
|
|
138
|
+
|
|
139
|
+
> **Unique IDs**: if this component needs to generate HTML `id` attributes, always use `createUniqueId()` from `solid-js` — never `Math.random()` or `Date.now()`.
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
## COMPONENT IDENTITY
|
|
2
|
+
- **Import**: `import { Switch } from 'solid-tom-ui';`
|
|
3
|
+
- **Export**: `Switch` (named export), `SwitchVariantProps` (type export)
|
|
4
|
+
- **Framework**: SolidJS
|
|
5
|
+
- **Purpose**: Toggle switch input — supports controlled and uncontrolled modes; styled with CVA variants + Tailwind
|
|
6
|
+
|
|
7
|
+
## TYPE SIGNATURE
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { Switch } from 'solid-tom-ui';
|
|
11
|
+
|
|
12
|
+
// CONTROLLED mode: provide checked, do NOT provide defaultChecked
|
|
13
|
+
<Switch
|
|
14
|
+
checked={boolean} // controlled value (required in controlled mode)
|
|
15
|
+
onChange?={(checked: boolean) => void}
|
|
16
|
+
// ...common props
|
|
17
|
+
/>
|
|
18
|
+
|
|
19
|
+
// UNCONTROLLED mode: provide defaultChecked, do NOT provide checked
|
|
20
|
+
<Switch
|
|
21
|
+
defaultChecked={boolean} // initial value (required in uncontrolled mode)
|
|
22
|
+
onChange?={(checked: boolean) => void}
|
|
23
|
+
// ...common props
|
|
24
|
+
/>
|
|
25
|
+
|
|
26
|
+
// MINIMAL mode: neither checked nor defaultChecked (defaults to false internally)
|
|
27
|
+
<Switch onChange?={(checked: boolean) => void} />
|
|
28
|
+
|
|
29
|
+
// Common props (applicable in all modes):
|
|
30
|
+
// size? = 'xs' | 'sm' | 'md' | 'lg' | 'xl' default: 'md'
|
|
31
|
+
// color? = 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error' default: 'primary'
|
|
32
|
+
// disabled?= boolean default: false
|
|
33
|
+
// loading? = boolean default: false
|
|
34
|
+
// onClick? = (checked: boolean) => void
|
|
35
|
+
// class? = Partial<Record<'root' | 'content', string>>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## CONTROLLED vs UNCONTROLLED MUTEX RULE
|
|
39
|
+
```
|
|
40
|
+
checked → controlled → do NOT pass defaultChecked
|
|
41
|
+
defaultChecked → uncontrolled → do NOT pass checked
|
|
42
|
+
(neither) → internal state starts at false
|
|
43
|
+
```
|
|
44
|
+
TypeScript enforces this: passing both `checked` and `defaultChecked` is a type error.
|
|
45
|
+
|
|
46
|
+
## DEFAULTS
|
|
47
|
+
| Prop | Default |
|
|
48
|
+
|------|---------|
|
|
49
|
+
| `size` | `'md'` |
|
|
50
|
+
| `color` | `'primary'` |
|
|
51
|
+
| `disabled` | `false` |
|
|
52
|
+
| `loading` | `false` |
|
|
53
|
+
| `defaultChecked` | `false` (when no controlled/uncontrolled prop given) |
|
|
54
|
+
|
|
55
|
+
## SIZE REFERENCE
|
|
56
|
+
| Value | Dimensions |
|
|
57
|
+
|-------|-----------|
|
|
58
|
+
| `xs` | `h-4 w-7` |
|
|
59
|
+
| `sm` | `h-5 w-9` |
|
|
60
|
+
| `md` | `h-6 w-11` (default) |
|
|
61
|
+
| `lg` | `h-7 w-14` |
|
|
62
|
+
| `xl` | `h-8 w-16` |
|
|
63
|
+
|
|
64
|
+
## COLOR REFERENCE
|
|
65
|
+
`primary` | `secondary` | `accent` | `neutral` | `info` | `success` | `warning` | `error`
|
|
66
|
+
- When unchecked, the track color is always `bg-gray-300` regardless of `color`.
|
|
67
|
+
- `color` applies only when the switch is checked.
|
|
68
|
+
|
|
69
|
+
## USAGE PATTERNS
|
|
70
|
+
|
|
71
|
+
### Uncontrolled (simplest)
|
|
72
|
+
```tsx
|
|
73
|
+
import { Switch } from 'solid-tom-ui';
|
|
74
|
+
|
|
75
|
+
<Switch defaultChecked={false} onChange={checked => console.log(checked)} />
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Controlled
|
|
79
|
+
```tsx
|
|
80
|
+
import { createSignal } from 'solid-js';
|
|
81
|
+
import { Switch } from 'solid-tom-ui';
|
|
82
|
+
|
|
83
|
+
const [enabled, setEnabled] = createSignal(false);
|
|
84
|
+
|
|
85
|
+
<Switch
|
|
86
|
+
checked={enabled()}
|
|
87
|
+
onChange={checked => setEnabled(checked)}
|
|
88
|
+
/>
|
|
89
|
+
|
|
90
|
+
// Toggle from outside
|
|
91
|
+
<button onClick={() => setEnabled(v => !v)}>Toggle</button>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### With size and color
|
|
95
|
+
```tsx
|
|
96
|
+
<Switch size="lg" color="success" defaultChecked />
|
|
97
|
+
<Switch size="xs" color="error" defaultChecked={false} />
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Disabled state
|
|
101
|
+
```tsx
|
|
102
|
+
<Switch size="md" color="primary" disabled defaultChecked={false} />
|
|
103
|
+
<Switch size="md" color="primary" disabled={!hasPermission()} defaultChecked />
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Loading state (auto-disables the switch)
|
|
107
|
+
```tsx
|
|
108
|
+
const [saving, setSaving] = createSignal(false);
|
|
109
|
+
|
|
110
|
+
<Switch
|
|
111
|
+
size="md"
|
|
112
|
+
color="primary"
|
|
113
|
+
loading={saving()}
|
|
114
|
+
defaultChecked
|
|
115
|
+
/>
|
|
116
|
+
// Note: loading=true automatically disables interaction
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Custom styling via class slot
|
|
120
|
+
```tsx
|
|
121
|
+
// Add shadow to the track
|
|
122
|
+
<Switch size="md" color="primary" defaultChecked class={{ root: 'shadow-lg' }} />
|
|
123
|
+
|
|
124
|
+
// Add ring/focus indicator
|
|
125
|
+
<Switch size="xs" color="secondary" defaultChecked class={{ root: 'ring-2 ring-secondary ring-offset-2' }} />
|
|
126
|
+
|
|
127
|
+
// Scale on hover
|
|
128
|
+
<Switch size="lg" color="accent" defaultChecked class={{ root: 'hover:scale-110 transition-transform' }} />
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### With onClick vs onChange
|
|
132
|
+
```tsx
|
|
133
|
+
// onChange fires with new value after toggle
|
|
134
|
+
<Switch defaultChecked={false} onChange={newValue => applyChange(newValue)} />
|
|
135
|
+
|
|
136
|
+
// onClick also fires with new value — use either; they receive the same value
|
|
137
|
+
<Switch defaultChecked={false} onClick={newValue => console.log('clicked, new:', newValue)} />
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## LOADING vs DISABLED BEHAVIOR
|
|
141
|
+
| State | Interaction | Visual |
|
|
142
|
+
|-------|-------------|--------|
|
|
143
|
+
| `loading={true}` | Blocked (cursor-not-allowed, opacity-50) | Spinner shown inside thumb |
|
|
144
|
+
| `disabled={true}` | Blocked (cursor-not-allowed, opacity-50) | No spinner |
|
|
145
|
+
| `loading={true} disabled={true}` | Blocked (redundant, same as loading alone) | Spinner shown |
|
|
146
|
+
|
|
147
|
+
> Prefer `loading` over `disabled` when an async operation is in progress.
|
|
148
|
+
|
|
149
|
+
## ACCESSIBILITY
|
|
150
|
+
- Renders as `<button role="switch" aria-checked={checked()}>`.
|
|
151
|
+
- Keyboard focusable; click activates toggle.
|
|
152
|
+
- `disabled` maps to the native `disabled` attribute on the button.
|
|
153
|
+
|
|
154
|
+
## CLASS SLOTS
|
|
155
|
+
| Slot | Targets |
|
|
156
|
+
|------|---------|
|
|
157
|
+
| `root` | The outer `<button>` element |
|
|
158
|
+
| `content` | Declared in type but not currently wired in the implementation |
|
|
159
|
+
|
|
160
|
+
> Use `class.root` for all custom styling of the switch track/wrapper.
|
|
161
|
+
|
|
162
|
+
## ANTI-PATTERNS
|
|
163
|
+
```tsx
|
|
164
|
+
// ❌ Passing both checked and defaultChecked — TypeScript error
|
|
165
|
+
<Switch checked={val()} defaultChecked={false} />
|
|
166
|
+
|
|
167
|
+
// ❌ Expecting loading and disabled to behave differently — they both block interaction
|
|
168
|
+
<Switch loading disabled /> // redundant
|
|
169
|
+
|
|
170
|
+
// ❌ Using class.content — not wired in current implementation
|
|
171
|
+
<Switch class={{ content: 'text-red-500' }} />
|
|
172
|
+
// ✅ Use class.root for all styling
|
|
173
|
+
<Switch class={{ root: 'shadow-xl' }} />
|
|
174
|
+
|
|
175
|
+
// ❌ Forgetting that color only applies when checked
|
|
176
|
+
// The unchecked track is always gray regardless of color prop
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## DECISION RULES
|
|
180
|
+
- **Controlled mode**: use when parent component needs to read or set the value programmatically.
|
|
181
|
+
- **Uncontrolled mode**: use for simple local toggles where you only need `onChange` side effects.
|
|
182
|
+
- **size**: match to surrounding UI density (`xs`/`sm` for dense tables, `lg`/`xl` for settings pages).
|
|
183
|
+
- **color**: use semantic colors (`success` for enable, `error` for danger setting, `primary` for general).
|
|
184
|
+
- **Swap vs Switch**: use `Switch` for boolean on/off settings; use `Swap` for icon-based visual toggles with animation.
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Component Conventions
|
|
188
|
+
|
|
189
|
+
> **CSS encoding**: internal CSS classes use short encoded names (e.g. `sc01`, `sc02`) per project convention.
|
|
190
|
+
|
|
191
|
+
> **Unique IDs**: if this component needs to generate HTML `id` attributes, always use `createUniqueId()` from `solid-js` — never `Math.random()` or `Date.now()`.
|