solid-tom-ui 1.0.7 → 1.0.10

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.
Files changed (568) hide show
  1. package/README.md +246 -246
  2. package/dist/README.md +246 -0
  3. package/dist/components/avatar/avatar.js.map +1 -0
  4. package/dist/components/avatar/index.d.ts +3 -0
  5. package/{components → dist/components}/avatar/index.d.ts.map +1 -1
  6. package/dist/components/badge/badge.js.map +1 -0
  7. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  8. package/dist/components/button/button.js.map +1 -0
  9. package/dist/components/button/index.d.ts +3 -0
  10. package/{components → dist/components}/button/index.d.ts.map +1 -1
  11. package/dist/components/carousel/carousel.js.map +1 -0
  12. package/dist/components/chat-bubble/chatBubble.js.map +1 -0
  13. package/dist/components/checkbox/checkbox.js.map +1 -0
  14. package/dist/components/collapse/collapse.js.map +1 -0
  15. package/dist/components/collapse/index.d.ts +3 -0
  16. package/{components → dist/components}/collapse/index.d.ts.map +1 -1
  17. package/dist/components/context-menu/context-menu.js.map +1 -0
  18. package/dist/components/context-menu/context-menu.store.js.map +1 -0
  19. package/dist/components/divider/divider.js.map +1 -0
  20. package/dist/components/dropdown/dropdown.js.map +1 -0
  21. package/dist/components/dropdown/dropdown.store.js.map +1 -0
  22. package/dist/components/float-button/float-button.js.map +1 -0
  23. package/dist/components/float-button/index.d.ts +3 -0
  24. package/{components → dist/components}/float-button/index.d.ts.map +1 -1
  25. package/dist/components/hover-3d-image/hover-3d-image.js.map +1 -0
  26. package/dist/components/image-preview/image-preview.js.map +1 -0
  27. package/dist/components/input/index.d.ts +3 -0
  28. package/dist/components/input/index.d.ts.map +1 -0
  29. package/dist/components/input/input.js.map +1 -0
  30. package/dist/components/input/input.utils.js.map +1 -0
  31. package/dist/components/input/variants/input-color.js.map +1 -0
  32. package/dist/components/input/variants/input-date.js.map +1 -0
  33. package/dist/components/input/variants/input-number.js.map +1 -0
  34. package/dist/components/input/variants/input-otp.js.map +1 -0
  35. package/dist/components/input/variants/input-password.js.map +1 -0
  36. package/dist/components/input/variants/input-radio.js.map +1 -0
  37. package/dist/components/input/variants/input-range.js.map +1 -0
  38. package/dist/components/input/variants/input-text.js.map +1 -0
  39. package/dist/components/input/variants/input-textarea.js.map +1 -0
  40. package/dist/components/loading/loading.js.map +1 -0
  41. package/dist/components/mansory/mansory.js.map +1 -0
  42. package/dist/components/menu/index.d.ts +4 -0
  43. package/{components → dist/components}/menu/index.d.ts.map +1 -1
  44. package/dist/components/menu/menu.js.map +1 -0
  45. package/{components → dist/components}/menu/menu.types.d.ts +7 -7
  46. package/{components → dist/components}/menu/menu.types.d.ts.map +1 -1
  47. package/dist/components/modal/modal.js.map +1 -0
  48. package/dist/components/modal/modalContext.js.map +1 -0
  49. package/dist/components/pagination/pagination.js.map +1 -0
  50. package/dist/components/progress-bar/progress-bar.js.map +1 -0
  51. package/dist/components/qr-code/qr-code.js.map +1 -0
  52. package/dist/components/rating/index.d.ts +3 -0
  53. package/{components → dist/components}/rating/index.d.ts.map +1 -1
  54. package/dist/components/select/select.js.map +1 -0
  55. package/dist/components/select-zone/select-zone.js.map +1 -0
  56. package/dist/components/skeleton/skeleton.js.map +1 -0
  57. package/dist/components/slider/index.d.ts +3 -0
  58. package/{components → dist/components}/slider/index.d.ts.map +1 -1
  59. package/dist/components/slider/slider.js.map +1 -0
  60. package/dist/components/splitter/splitter.js.map +1 -0
  61. package/dist/components/steps/steps.js.map +1 -0
  62. package/dist/components/swap/swap.js.map +1 -0
  63. package/dist/components/switch/switch.js.map +1 -0
  64. package/dist/components/tab/tab.js.map +1 -0
  65. package/dist/components/table/table.js.map +1 -0
  66. package/dist/components/timeline/timeline.js.map +1 -0
  67. package/dist/components/toast/icons/ErrorIcon.js.map +1 -0
  68. package/dist/components/toast/icons/IconCircle.js.map +1 -0
  69. package/dist/components/toast/icons/InfoIcon.js.map +1 -0
  70. package/dist/components/toast/icons/LoaderIcon.js.map +1 -0
  71. package/dist/components/toast/icons/SuccessIcon.js.map +1 -0
  72. package/dist/components/toast/icons/WarningIcon.js.map +1 -0
  73. package/dist/components/toast/toast.js.map +1 -0
  74. package/dist/components/toast/toast.store.js.map +1 -0
  75. package/dist/components/tooltip/tooltip.js.map +1 -0
  76. package/{components → dist/components}/tour/tour.d.ts.map +1 -1
  77. package/{components → dist/components}/tour/tour.js +1 -1
  78. package/dist/components/tour/tour.js.map +1 -0
  79. package/dist/components/upload/upload.js.map +1 -0
  80. package/dist/components/z-index/z-index.context.js.map +1 -0
  81. package/dist/components/z-index/z-index.js.map +1 -0
  82. package/dist/components/z-index/z-index.store.js.map +1 -0
  83. package/dist/components/z-index/z-index.types.js.map +1 -0
  84. package/dist/package.json +45 -0
  85. package/dist/skill/avatar.skill.md.txt +255 -0
  86. package/dist/skill/badge.skill.md.txt +223 -0
  87. package/dist/skill/blank.skill.md.txt +0 -0
  88. package/dist/skill/breadcrumb.skill.md.txt +177 -0
  89. package/dist/skill/button.skill.md.txt +198 -0
  90. package/dist/skill/carousel.skill.md.txt +406 -0
  91. package/dist/skill/chat-bubble.skill.md.txt +342 -0
  92. package/dist/skill/checkbox.skill.md.txt +326 -0
  93. package/dist/skill/code-preview.skill.md.txt +240 -0
  94. package/dist/skill/collapse.skill.md.txt +329 -0
  95. package/dist/skill/context-menu.skill.md.txt +233 -0
  96. package/dist/skill/diff.skill.md.txt +244 -0
  97. package/dist/skill/divider.skill.md.txt +151 -0
  98. package/dist/skill/doc.skill.md.txt +191 -0
  99. package/dist/skill/drawer.skill.md.txt +157 -0
  100. package/dist/skill/dropdown.skill.md.txt +198 -0
  101. package/dist/skill/float-button.skill.md.txt +315 -0
  102. package/dist/skill/hover-3d-image.skill.md.txt +120 -0
  103. package/dist/skill/iframe.skill.md.txt +114 -0
  104. package/dist/skill/image-preview.skill.md.txt +162 -0
  105. package/dist/skill/indicator.skill.md.txt +60 -0
  106. package/dist/skill/input.skill.md.txt +489 -0
  107. package/dist/skill/loading.skill.md.txt +127 -0
  108. package/dist/skill/mansory.skill.md.txt +0 -0
  109. package/dist/skill/menu.skill.md.txt +476 -0
  110. package/dist/skill/modal.skill.md.txt +359 -0
  111. package/dist/skill/pagination.skill.md.txt +405 -0
  112. package/dist/skill/progress-bar.skill.md.txt +207 -0
  113. package/dist/skill/qr-code.skill.md.txt +136 -0
  114. package/dist/skill/rating.skill.md.txt +167 -0
  115. package/dist/skill/select-zone.skill.md.txt +93 -0
  116. package/dist/skill/select.skill.md.txt +663 -0
  117. package/dist/skill/skeleton.skill.md.txt +192 -0
  118. package/dist/skill/slider.skill.md.txt +404 -0
  119. package/dist/skill/splitter.skill.md.txt +411 -0
  120. package/dist/skill/steps.skill.md.txt +264 -0
  121. package/dist/skill/swap.skill.md.txt +139 -0
  122. package/dist/skill/switch.skill.md.txt +191 -0
  123. package/dist/skill/tab.skill.md.txt +484 -0
  124. package/dist/skill/table.example.header.md.txt +667 -0
  125. package/dist/skill/table.skill.md.txt +1407 -0
  126. package/dist/skill/text-rotate.skill.md.txt +186 -0
  127. package/dist/skill/timeline.skill.md.txt +247 -0
  128. package/dist/skill/toast.skill.md.txt +531 -0
  129. package/dist/skill/tooltip.skill.md.txt +222 -0
  130. package/dist/skill/tour.skill.md.txt +156 -0
  131. package/dist/skill/upload.skill.md.txt +358 -0
  132. package/dist/skill/z-index.skill.md.txt +0 -0
  133. package/{solid-ui.css → dist/solid-ui.css} +2 -2
  134. package/dist/utils/cn.js.map +1 -0
  135. package/dist/utils/element-tracker.js.map +1 -0
  136. package/dist/utils/helper.js.map +1 -0
  137. package/dist/utils/hoc.js.map +1 -0
  138. package/package.json +101 -7
  139. package/components/avatar/avatar.js.map +0 -1
  140. package/components/avatar/index.d.ts +0 -2
  141. package/components/badge/badge.js.map +0 -1
  142. package/components/breadcrumb/breadcrumb.js.map +0 -1
  143. package/components/button/button.js.map +0 -1
  144. package/components/button/index.d.ts +0 -2
  145. package/components/carousel/carousel.js.map +0 -1
  146. package/components/chat-bubble/chatBubble.js.map +0 -1
  147. package/components/checkbox/checkbox.js.map +0 -1
  148. package/components/collapse/collapse.js.map +0 -1
  149. package/components/collapse/index.d.ts +0 -2
  150. package/components/context-menu/context-menu.js.map +0 -1
  151. package/components/context-menu/context-menu.store.js.map +0 -1
  152. package/components/divider/divider.js.map +0 -1
  153. package/components/dropdown/dropdown.js.map +0 -1
  154. package/components/dropdown/dropdown.store.js.map +0 -1
  155. package/components/float-button/float-button.js.map +0 -1
  156. package/components/float-button/index.d.ts +0 -2
  157. package/components/hover-3d-image/hover-3d-image.js.map +0 -1
  158. package/components/image-preview/image-preview.js.map +0 -1
  159. package/components/input/index.d.ts +0 -2
  160. package/components/input/index.d.ts.map +0 -1
  161. package/components/input/input.js.map +0 -1
  162. package/components/input/input.utils.js.map +0 -1
  163. package/components/input/variants/input-color.js.map +0 -1
  164. package/components/input/variants/input-date.js.map +0 -1
  165. package/components/input/variants/input-number.js.map +0 -1
  166. package/components/input/variants/input-otp.js.map +0 -1
  167. package/components/input/variants/input-password.js.map +0 -1
  168. package/components/input/variants/input-radio.js.map +0 -1
  169. package/components/input/variants/input-range.js.map +0 -1
  170. package/components/input/variants/input-text.js.map +0 -1
  171. package/components/input/variants/input-textarea.js.map +0 -1
  172. package/components/loading/loading.js.map +0 -1
  173. package/components/mansory/mansory.js.map +0 -1
  174. package/components/menu/index.d.ts +0 -4
  175. package/components/menu/menu.js.map +0 -1
  176. package/components/modal/modal.js.map +0 -1
  177. package/components/modal/modalContext.js.map +0 -1
  178. package/components/pagination/pagination.js.map +0 -1
  179. package/components/progress-bar/progress-bar.js.map +0 -1
  180. package/components/qr-code/qr-code.js.map +0 -1
  181. package/components/rating/index.d.ts +0 -2
  182. package/components/select/select.js.map +0 -1
  183. package/components/select-zone/select-zone.js.map +0 -1
  184. package/components/skeleton/skeleton.js.map +0 -1
  185. package/components/slider/index.d.ts +0 -2
  186. package/components/slider/slider.js.map +0 -1
  187. package/components/splitter/splitter.js.map +0 -1
  188. package/components/steps/steps.js.map +0 -1
  189. package/components/swap/swap.js.map +0 -1
  190. package/components/switch/switch.js.map +0 -1
  191. package/components/tab/tab.js.map +0 -1
  192. package/components/table/table.js.map +0 -1
  193. package/components/timeline/timeline.js.map +0 -1
  194. package/components/toast/icons/ErrorIcon.js.map +0 -1
  195. package/components/toast/icons/IconCircle.js.map +0 -1
  196. package/components/toast/icons/InfoIcon.js.map +0 -1
  197. package/components/toast/icons/LoaderIcon.js.map +0 -1
  198. package/components/toast/icons/SuccessIcon.js.map +0 -1
  199. package/components/toast/icons/WarningIcon.js.map +0 -1
  200. package/components/toast/toast.js.map +0 -1
  201. package/components/toast/toast.store.js.map +0 -1
  202. package/components/tooltip/tooltip.js.map +0 -1
  203. package/components/tour/tour.js.map +0 -1
  204. package/components/upload/upload.js.map +0 -1
  205. package/components/z-index/z-index.context.js.map +0 -1
  206. package/components/z-index/z-index.js.map +0 -1
  207. package/components/z-index/z-index.store.js.map +0 -1
  208. package/components/z-index/z-index.types.js.map +0 -1
  209. package/utils/cn.js.map +0 -1
  210. package/utils/element-tracker.js.map +0 -1
  211. package/utils/helper.js.map +0 -1
  212. package/utils/hoc.js.map +0 -1
  213. package/workspace.code-workspace +0 -8
  214. /package/{components → dist/components}/avatar/avatar.d.ts +0 -0
  215. /package/{components → dist/components}/avatar/avatar.d.ts.map +0 -0
  216. /package/{components → dist/components}/avatar/avatar.js +0 -0
  217. /package/{components → dist/components}/avatar/avatar.types.d.ts +0 -0
  218. /package/{components → dist/components}/avatar/avatar.types.d.ts.map +0 -0
  219. /package/{components → dist/components}/badge/badge.d.ts +0 -0
  220. /package/{components → dist/components}/badge/badge.d.ts.map +0 -0
  221. /package/{components → dist/components}/badge/badge.js +0 -0
  222. /package/{components → dist/components}/badge/badge.types.d.ts +0 -0
  223. /package/{components → dist/components}/badge/badge.types.d.ts.map +0 -0
  224. /package/{components → dist/components}/badge/index.d.ts +0 -0
  225. /package/{components → dist/components}/badge/index.d.ts.map +0 -0
  226. /package/{components → dist/components}/blank/blank.d.ts +0 -0
  227. /package/{components → dist/components}/blank/blank.d.ts.map +0 -0
  228. /package/{components → dist/components}/blank/index.d.ts +0 -0
  229. /package/{components → dist/components}/blank/index.d.ts.map +0 -0
  230. /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts +0 -0
  231. /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts.map +0 -0
  232. /package/{components → dist/components}/breadcrumb/breadcrumb.js +0 -0
  233. /package/{components → dist/components}/breadcrumb/index.d.ts +0 -0
  234. /package/{components → dist/components}/breadcrumb/index.d.ts.map +0 -0
  235. /package/{components → dist/components}/button/button.d.ts +0 -0
  236. /package/{components → dist/components}/button/button.d.ts.map +0 -0
  237. /package/{components → dist/components}/button/button.js +0 -0
  238. /package/{components → dist/components}/button/button.types.d.ts +0 -0
  239. /package/{components → dist/components}/button/button.types.d.ts.map +0 -0
  240. /package/{components → dist/components}/carousel/carousel.d.ts +0 -0
  241. /package/{components → dist/components}/carousel/carousel.d.ts.map +0 -0
  242. /package/{components → dist/components}/carousel/carousel.js +0 -0
  243. /package/{components → dist/components}/carousel/carousel.types.d.ts +0 -0
  244. /package/{components → dist/components}/carousel/carousel.types.d.ts.map +0 -0
  245. /package/{components → dist/components}/carousel/index.d.ts +0 -0
  246. /package/{components → dist/components}/carousel/index.d.ts.map +0 -0
  247. /package/{components → dist/components}/chat-bubble/chatBubble.d.ts +0 -0
  248. /package/{components → dist/components}/chat-bubble/chatBubble.d.ts.map +0 -0
  249. /package/{components → dist/components}/chat-bubble/chatBubble.js +0 -0
  250. /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts +0 -0
  251. /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts.map +0 -0
  252. /package/{components → dist/components}/chat-bubble/index.d.ts +0 -0
  253. /package/{components → dist/components}/chat-bubble/index.d.ts.map +0 -0
  254. /package/{components → dist/components}/checkbox/checkbox.d.ts +0 -0
  255. /package/{components → dist/components}/checkbox/checkbox.d.ts.map +0 -0
  256. /package/{components → dist/components}/checkbox/checkbox.js +0 -0
  257. /package/{components → dist/components}/checkbox/index.d.ts +0 -0
  258. /package/{components → dist/components}/checkbox/index.d.ts.map +0 -0
  259. /package/{components → dist/components}/collapse/collapse.d.ts +0 -0
  260. /package/{components → dist/components}/collapse/collapse.d.ts.map +0 -0
  261. /package/{components → dist/components}/collapse/collapse.js +0 -0
  262. /package/{components → dist/components}/collapse/collapse.types.d.ts +0 -0
  263. /package/{components → dist/components}/collapse/collapse.types.d.ts.map +0 -0
  264. /package/{components → dist/components}/context-menu/context-menu.d.ts +0 -0
  265. /package/{components → dist/components}/context-menu/context-menu.d.ts.map +0 -0
  266. /package/{components → dist/components}/context-menu/context-menu.js +0 -0
  267. /package/{components → dist/components}/context-menu/context-menu.store.d.ts +0 -0
  268. /package/{components → dist/components}/context-menu/context-menu.store.d.ts.map +0 -0
  269. /package/{components → dist/components}/context-menu/context-menu.store.js +0 -0
  270. /package/{components → dist/components}/context-menu/context-menu.types.d.ts +0 -0
  271. /package/{components → dist/components}/context-menu/context-menu.types.d.ts.map +0 -0
  272. /package/{components → dist/components}/context-menu/index.d.ts +0 -0
  273. /package/{components → dist/components}/context-menu/index.d.ts.map +0 -0
  274. /package/{components → dist/components}/diff/diff.d.ts +0 -0
  275. /package/{components → dist/components}/diff/diff.d.ts.map +0 -0
  276. /package/{components → dist/components}/diff/diff.js +0 -0
  277. /package/{components → dist/components}/diff/diff.js.map +0 -0
  278. /package/{components → dist/components}/diff/index.d.ts +0 -0
  279. /package/{components → dist/components}/diff/index.d.ts.map +0 -0
  280. /package/{components → dist/components}/divider/divider.d.ts +0 -0
  281. /package/{components → dist/components}/divider/divider.d.ts.map +0 -0
  282. /package/{components → dist/components}/divider/divider.js +0 -0
  283. /package/{components → dist/components}/divider/divider.types.d.ts +0 -0
  284. /package/{components → dist/components}/divider/divider.types.d.ts.map +0 -0
  285. /package/{components → dist/components}/divider/index.d.ts +0 -0
  286. /package/{components → dist/components}/divider/index.d.ts.map +0 -0
  287. /package/{components → dist/components}/drawer/drawer.d.ts +0 -0
  288. /package/{components → dist/components}/drawer/drawer.d.ts.map +0 -0
  289. /package/{components → dist/components}/drawer/drawer.js +0 -0
  290. /package/{components → dist/components}/drawer/drawer.js.map +0 -0
  291. /package/{components → dist/components}/drawer/drawer.types.d.ts +0 -0
  292. /package/{components → dist/components}/drawer/drawer.types.d.ts.map +0 -0
  293. /package/{components → dist/components}/drawer/index.d.ts +0 -0
  294. /package/{components → dist/components}/drawer/index.d.ts.map +0 -0
  295. /package/{components → dist/components}/dropdown/dropdown.d.ts +0 -0
  296. /package/{components → dist/components}/dropdown/dropdown.d.ts.map +0 -0
  297. /package/{components → dist/components}/dropdown/dropdown.js +0 -0
  298. /package/{components → dist/components}/dropdown/dropdown.store.d.ts +0 -0
  299. /package/{components → dist/components}/dropdown/dropdown.store.d.ts.map +0 -0
  300. /package/{components → dist/components}/dropdown/dropdown.store.js +0 -0
  301. /package/{components → dist/components}/dropdown/dropdown.types.d.ts +0 -0
  302. /package/{components → dist/components}/dropdown/dropdown.types.d.ts.map +0 -0
  303. /package/{components → dist/components}/dropdown/index.d.ts +0 -0
  304. /package/{components → dist/components}/dropdown/index.d.ts.map +0 -0
  305. /package/{components → dist/components}/float-button/float-button.d.ts +0 -0
  306. /package/{components → dist/components}/float-button/float-button.d.ts.map +0 -0
  307. /package/{components → dist/components}/float-button/float-button.js +0 -0
  308. /package/{components → dist/components}/float-button/float-button.types.d.ts +0 -0
  309. /package/{components → dist/components}/float-button/float-button.types.d.ts.map +0 -0
  310. /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts +0 -0
  311. /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts.map +0 -0
  312. /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts +0 -0
  313. /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts.map +0 -0
  314. /package/{components → dist/components}/hover-3d-image/hover-3d-image.js +0 -0
  315. /package/{components → dist/components}/hover-3d-image/index.d.ts +0 -0
  316. /package/{components → dist/components}/hover-3d-image/index.d.ts.map +0 -0
  317. /package/{components → dist/components}/image-preview/image-preview.d.ts +0 -0
  318. /package/{components → dist/components}/image-preview/image-preview.d.ts.map +0 -0
  319. /package/{components → dist/components}/image-preview/image-preview.js +0 -0
  320. /package/{components → dist/components}/image-preview/index.d.ts +0 -0
  321. /package/{components → dist/components}/image-preview/index.d.ts.map +0 -0
  322. /package/{components → dist/components}/indicator/index.d.ts +0 -0
  323. /package/{components → dist/components}/indicator/index.d.ts.map +0 -0
  324. /package/{components → dist/components}/indicator/indicator.d.ts +0 -0
  325. /package/{components → dist/components}/indicator/indicator.d.ts.map +0 -0
  326. /package/{components → dist/components}/indicator/indicator.js +0 -0
  327. /package/{components → dist/components}/indicator/indicator.js.map +0 -0
  328. /package/{components → dist/components}/indicator/indicator.types.d.ts +0 -0
  329. /package/{components → dist/components}/indicator/indicator.types.d.ts.map +0 -0
  330. /package/{components → dist/components}/input/input.d.ts +0 -0
  331. /package/{components → dist/components}/input/input.d.ts.map +0 -0
  332. /package/{components → dist/components}/input/input.js +0 -0
  333. /package/{components → dist/components}/input/input.types.d.ts +0 -0
  334. /package/{components → dist/components}/input/input.types.d.ts.map +0 -0
  335. /package/{components → dist/components}/input/input.utils.d.ts +0 -0
  336. /package/{components → dist/components}/input/input.utils.d.ts.map +0 -0
  337. /package/{components → dist/components}/input/input.utils.js +0 -0
  338. /package/{components → dist/components}/input/variants/input-color.d.ts +0 -0
  339. /package/{components → dist/components}/input/variants/input-color.d.ts.map +0 -0
  340. /package/{components → dist/components}/input/variants/input-color.js +0 -0
  341. /package/{components → dist/components}/input/variants/input-date.d.ts +0 -0
  342. /package/{components → dist/components}/input/variants/input-date.d.ts.map +0 -0
  343. /package/{components → dist/components}/input/variants/input-date.js +0 -0
  344. /package/{components → dist/components}/input/variants/input-number.d.ts +0 -0
  345. /package/{components → dist/components}/input/variants/input-number.d.ts.map +0 -0
  346. /package/{components → dist/components}/input/variants/input-number.js +0 -0
  347. /package/{components → dist/components}/input/variants/input-otp.d.ts +0 -0
  348. /package/{components → dist/components}/input/variants/input-otp.d.ts.map +0 -0
  349. /package/{components → dist/components}/input/variants/input-otp.js +0 -0
  350. /package/{components → dist/components}/input/variants/input-password.d.ts +0 -0
  351. /package/{components → dist/components}/input/variants/input-password.d.ts.map +0 -0
  352. /package/{components → dist/components}/input/variants/input-password.js +0 -0
  353. /package/{components → dist/components}/input/variants/input-radio.d.ts +0 -0
  354. /package/{components → dist/components}/input/variants/input-radio.d.ts.map +0 -0
  355. /package/{components → dist/components}/input/variants/input-radio.js +0 -0
  356. /package/{components → dist/components}/input/variants/input-range.d.ts +0 -0
  357. /package/{components → dist/components}/input/variants/input-range.d.ts.map +0 -0
  358. /package/{components → dist/components}/input/variants/input-range.js +0 -0
  359. /package/{components → dist/components}/input/variants/input-text.d.ts +0 -0
  360. /package/{components → dist/components}/input/variants/input-text.d.ts.map +0 -0
  361. /package/{components → dist/components}/input/variants/input-text.js +0 -0
  362. /package/{components → dist/components}/input/variants/input-textarea.d.ts +0 -0
  363. /package/{components → dist/components}/input/variants/input-textarea.d.ts.map +0 -0
  364. /package/{components → dist/components}/input/variants/input-textarea.js +0 -0
  365. /package/{components → dist/components}/loading/index.d.ts +0 -0
  366. /package/{components → dist/components}/loading/index.d.ts.map +0 -0
  367. /package/{components → dist/components}/loading/loading.d.ts +0 -0
  368. /package/{components → dist/components}/loading/loading.d.ts.map +0 -0
  369. /package/{components → dist/components}/loading/loading.js +0 -0
  370. /package/{components → dist/components}/mansory/index.d.ts +0 -0
  371. /package/{components → dist/components}/mansory/index.d.ts.map +0 -0
  372. /package/{components → dist/components}/mansory/mansory.d.ts +0 -0
  373. /package/{components → dist/components}/mansory/mansory.d.ts.map +0 -0
  374. /package/{components → dist/components}/mansory/mansory.js +0 -0
  375. /package/{components → dist/components}/mansory/mansory.types.d.ts +0 -0
  376. /package/{components → dist/components}/mansory/mansory.types.d.ts.map +0 -0
  377. /package/{components → dist/components}/menu/menu.d.ts +0 -0
  378. /package/{components → dist/components}/menu/menu.d.ts.map +0 -0
  379. /package/{components → dist/components}/menu/menu.data-example.d.ts +0 -0
  380. /package/{components → dist/components}/menu/menu.data-example.d.ts.map +0 -0
  381. /package/{components → dist/components}/menu/menu.js +0 -0
  382. /package/{components → dist/components}/modal/index.d.ts +0 -0
  383. /package/{components → dist/components}/modal/index.d.ts.map +0 -0
  384. /package/{components → dist/components}/modal/modal.d.ts +0 -0
  385. /package/{components → dist/components}/modal/modal.d.ts.map +0 -0
  386. /package/{components → dist/components}/modal/modal.js +0 -0
  387. /package/{components → dist/components}/modal/modalContext.d.ts +0 -0
  388. /package/{components → dist/components}/modal/modalContext.d.ts.map +0 -0
  389. /package/{components → dist/components}/modal/modalContext.js +0 -0
  390. /package/{components → dist/components}/pagination/index.d.ts +0 -0
  391. /package/{components → dist/components}/pagination/index.d.ts.map +0 -0
  392. /package/{components → dist/components}/pagination/pagination.d.ts +0 -0
  393. /package/{components → dist/components}/pagination/pagination.d.ts.map +0 -0
  394. /package/{components → dist/components}/pagination/pagination.js +0 -0
  395. /package/{components → dist/components}/pagination/pagination.types.d.ts +0 -0
  396. /package/{components → dist/components}/pagination/pagination.types.d.ts.map +0 -0
  397. /package/{components → dist/components}/progress-bar/index.d.ts +0 -0
  398. /package/{components → dist/components}/progress-bar/index.d.ts.map +0 -0
  399. /package/{components → dist/components}/progress-bar/progress-bar.d.ts +0 -0
  400. /package/{components → dist/components}/progress-bar/progress-bar.d.ts.map +0 -0
  401. /package/{components → dist/components}/progress-bar/progress-bar.js +0 -0
  402. /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts +0 -0
  403. /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts.map +0 -0
  404. /package/{components → dist/components}/qr-code/index.d.ts +0 -0
  405. /package/{components → dist/components}/qr-code/index.d.ts.map +0 -0
  406. /package/{components → dist/components}/qr-code/qr-code.d.ts +0 -0
  407. /package/{components → dist/components}/qr-code/qr-code.d.ts.map +0 -0
  408. /package/{components → dist/components}/qr-code/qr-code.js +0 -0
  409. /package/{components → dist/components}/qr-code/qr-code.types.d.ts +0 -0
  410. /package/{components → dist/components}/qr-code/qr-code.types.d.ts.map +0 -0
  411. /package/{components → dist/components}/rating/rating.d.ts +0 -0
  412. /package/{components → dist/components}/rating/rating.d.ts.map +0 -0
  413. /package/{components → dist/components}/rating/rating.js +0 -0
  414. /package/{components → dist/components}/rating/rating.js.map +0 -0
  415. /package/{components → dist/components}/rating/rating.types.d.ts +0 -0
  416. /package/{components → dist/components}/rating/rating.types.d.ts.map +0 -0
  417. /package/{components → dist/components}/select/index.d.ts +0 -0
  418. /package/{components → dist/components}/select/index.d.ts.map +0 -0
  419. /package/{components → dist/components}/select/select.d.ts +0 -0
  420. /package/{components → dist/components}/select/select.d.ts.map +0 -0
  421. /package/{components → dist/components}/select/select.js +0 -0
  422. /package/{components → dist/components}/select/select.types.d.ts +0 -0
  423. /package/{components → dist/components}/select/select.types.d.ts.map +0 -0
  424. /package/{components → dist/components}/select-zone/index.d.ts +0 -0
  425. /package/{components → dist/components}/select-zone/index.d.ts.map +0 -0
  426. /package/{components → dist/components}/select-zone/select-zone.d.ts +0 -0
  427. /package/{components → dist/components}/select-zone/select-zone.d.ts.map +0 -0
  428. /package/{components → dist/components}/select-zone/select-zone.js +0 -0
  429. /package/{components → dist/components}/select-zone/select-zone.types.d.ts +0 -0
  430. /package/{components → dist/components}/select-zone/select-zone.types.d.ts.map +0 -0
  431. /package/{components → dist/components}/skeleton/index.d.ts +0 -0
  432. /package/{components → dist/components}/skeleton/index.d.ts.map +0 -0
  433. /package/{components → dist/components}/skeleton/skeleton.d.ts +0 -0
  434. /package/{components → dist/components}/skeleton/skeleton.d.ts.map +0 -0
  435. /package/{components → dist/components}/skeleton/skeleton.js +0 -0
  436. /package/{components → dist/components}/slider/slider.d.ts +0 -0
  437. /package/{components → dist/components}/slider/slider.d.ts.map +0 -0
  438. /package/{components → dist/components}/slider/slider.js +0 -0
  439. /package/{components → dist/components}/slider/slider.types.d.ts +0 -0
  440. /package/{components → dist/components}/slider/slider.types.d.ts.map +0 -0
  441. /package/{components → dist/components}/splitter/index.d.ts +0 -0
  442. /package/{components → dist/components}/splitter/index.d.ts.map +0 -0
  443. /package/{components → dist/components}/splitter/splitter.d.ts +0 -0
  444. /package/{components → dist/components}/splitter/splitter.d.ts.map +0 -0
  445. /package/{components → dist/components}/splitter/splitter.js +0 -0
  446. /package/{components → dist/components}/splitter/splitter.types.d.ts +0 -0
  447. /package/{components → dist/components}/splitter/splitter.types.d.ts.map +0 -0
  448. /package/{components → dist/components}/steps/index.d.ts +0 -0
  449. /package/{components → dist/components}/steps/index.d.ts.map +0 -0
  450. /package/{components → dist/components}/steps/steps.d.ts +0 -0
  451. /package/{components → dist/components}/steps/steps.d.ts.map +0 -0
  452. /package/{components → dist/components}/steps/steps.js +0 -0
  453. /package/{components → dist/components}/swap/index.d.ts +0 -0
  454. /package/{components → dist/components}/swap/index.d.ts.map +0 -0
  455. /package/{components → dist/components}/swap/swap.d.ts +0 -0
  456. /package/{components → dist/components}/swap/swap.d.ts.map +0 -0
  457. /package/{components → dist/components}/swap/swap.js +0 -0
  458. /package/{components → dist/components}/switch/index.d.ts +0 -0
  459. /package/{components → dist/components}/switch/index.d.ts.map +0 -0
  460. /package/{components → dist/components}/switch/switch.d.ts +0 -0
  461. /package/{components → dist/components}/switch/switch.d.ts.map +0 -0
  462. /package/{components → dist/components}/switch/switch.js +0 -0
  463. /package/{components → dist/components}/switch/switch.types.d.ts +0 -0
  464. /package/{components → dist/components}/switch/switch.types.d.ts.map +0 -0
  465. /package/{components → dist/components}/tab/index.d.ts +0 -0
  466. /package/{components → dist/components}/tab/index.d.ts.map +0 -0
  467. /package/{components → dist/components}/tab/tab.d.ts +0 -0
  468. /package/{components → dist/components}/tab/tab.d.ts.map +0 -0
  469. /package/{components → dist/components}/tab/tab.js +0 -0
  470. /package/{components → dist/components}/tab/tab.types.d.ts +0 -0
  471. /package/{components → dist/components}/tab/tab.types.d.ts.map +0 -0
  472. /package/{components → dist/components}/table/index.d.ts +0 -0
  473. /package/{components → dist/components}/table/index.d.ts.map +0 -0
  474. /package/{components → dist/components}/table/index.js +0 -0
  475. /package/{components → dist/components}/table/table.d.ts +0 -0
  476. /package/{components → dist/components}/table/table.d.ts.map +0 -0
  477. /package/{components → dist/components}/table/table.js +0 -0
  478. /package/{components → dist/components}/table/table.types.d.ts +0 -0
  479. /package/{components → dist/components}/table/table.types.d.ts.map +0 -0
  480. /package/{components → dist/components}/text-rotate/index.d.ts +0 -0
  481. /package/{components → dist/components}/text-rotate/index.d.ts.map +0 -0
  482. /package/{components → dist/components}/text-rotate/text-rotate.d.ts +0 -0
  483. /package/{components → dist/components}/text-rotate/text-rotate.d.ts.map +0 -0
  484. /package/{components → dist/components}/text-rotate/text-rotate.js +0 -0
  485. /package/{components → dist/components}/text-rotate/text-rotate.js.map +0 -0
  486. /package/{components → dist/components}/timeline/index.d.ts +0 -0
  487. /package/{components → dist/components}/timeline/index.d.ts.map +0 -0
  488. /package/{components → dist/components}/timeline/timeline.d.ts +0 -0
  489. /package/{components → dist/components}/timeline/timeline.d.ts.map +0 -0
  490. /package/{components → dist/components}/timeline/timeline.js +0 -0
  491. /package/{components → dist/components}/timeline/timeline.types.d.ts +0 -0
  492. /package/{components → dist/components}/timeline/timeline.types.d.ts.map +0 -0
  493. /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts +0 -0
  494. /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts.map +0 -0
  495. /package/{components → dist/components}/toast/icons/ErrorIcon.js +0 -0
  496. /package/{components → dist/components}/toast/icons/IconCircle.d.ts +0 -0
  497. /package/{components → dist/components}/toast/icons/IconCircle.d.ts.map +0 -0
  498. /package/{components → dist/components}/toast/icons/IconCircle.js +0 -0
  499. /package/{components → dist/components}/toast/icons/InfoIcon.d.ts +0 -0
  500. /package/{components → dist/components}/toast/icons/InfoIcon.d.ts.map +0 -0
  501. /package/{components → dist/components}/toast/icons/InfoIcon.js +0 -0
  502. /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts +0 -0
  503. /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts.map +0 -0
  504. /package/{components → dist/components}/toast/icons/LoaderIcon.js +0 -0
  505. /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts +0 -0
  506. /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts.map +0 -0
  507. /package/{components → dist/components}/toast/icons/SuccessIcon.js +0 -0
  508. /package/{components → dist/components}/toast/icons/WarningIcon.d.ts +0 -0
  509. /package/{components → dist/components}/toast/icons/WarningIcon.d.ts.map +0 -0
  510. /package/{components → dist/components}/toast/icons/WarningIcon.js +0 -0
  511. /package/{components → dist/components}/toast/icons/index.d.ts +0 -0
  512. /package/{components → dist/components}/toast/icons/index.d.ts.map +0 -0
  513. /package/{components → dist/components}/toast/index.d.ts +0 -0
  514. /package/{components → dist/components}/toast/index.d.ts.map +0 -0
  515. /package/{components → dist/components}/toast/toast.d.ts +0 -0
  516. /package/{components → dist/components}/toast/toast.d.ts.map +0 -0
  517. /package/{components → dist/components}/toast/toast.js +0 -0
  518. /package/{components → dist/components}/toast/toast.store.d.ts +0 -0
  519. /package/{components → dist/components}/toast/toast.store.d.ts.map +0 -0
  520. /package/{components → dist/components}/toast/toast.store.js +0 -0
  521. /package/{components → dist/components}/toast/toast.type.d.ts +0 -0
  522. /package/{components → dist/components}/toast/toast.type.d.ts.map +0 -0
  523. /package/{components → dist/components}/tooltip/index.d.ts +0 -0
  524. /package/{components → dist/components}/tooltip/index.d.ts.map +0 -0
  525. /package/{components → dist/components}/tooltip/tooltip.d.ts +0 -0
  526. /package/{components → dist/components}/tooltip/tooltip.d.ts.map +0 -0
  527. /package/{components → dist/components}/tooltip/tooltip.js +0 -0
  528. /package/{components → dist/components}/tooltip/tooltip.types.d.ts +0 -0
  529. /package/{components → dist/components}/tooltip/tooltip.types.d.ts.map +0 -0
  530. /package/{components → dist/components}/tour/index.d.ts +0 -0
  531. /package/{components → dist/components}/tour/index.d.ts.map +0 -0
  532. /package/{components → dist/components}/tour/tour.d.ts +0 -0
  533. /package/{components → dist/components}/tour/tour.types.d.ts +0 -0
  534. /package/{components → dist/components}/tour/tour.types.d.ts.map +0 -0
  535. /package/{components → dist/components}/upload/index.d.ts +0 -0
  536. /package/{components → dist/components}/upload/index.d.ts.map +0 -0
  537. /package/{components → dist/components}/upload/upload.d.ts +0 -0
  538. /package/{components → dist/components}/upload/upload.d.ts.map +0 -0
  539. /package/{components → dist/components}/upload/upload.js +0 -0
  540. /package/{components → dist/components}/upload/upload.types.d.ts +0 -0
  541. /package/{components → dist/components}/upload/upload.types.d.ts.map +0 -0
  542. /package/{components → dist/components}/z-index/index.d.ts +0 -0
  543. /package/{components → dist/components}/z-index/index.d.ts.map +0 -0
  544. /package/{components → dist/components}/z-index/z-index.context.d.ts +0 -0
  545. /package/{components → dist/components}/z-index/z-index.context.d.ts.map +0 -0
  546. /package/{components → dist/components}/z-index/z-index.context.js +0 -0
  547. /package/{components → dist/components}/z-index/z-index.d.ts +0 -0
  548. /package/{components → dist/components}/z-index/z-index.d.ts.map +0 -0
  549. /package/{components → dist/components}/z-index/z-index.js +0 -0
  550. /package/{components → dist/components}/z-index/z-index.store.d.ts +0 -0
  551. /package/{components → dist/components}/z-index/z-index.store.d.ts.map +0 -0
  552. /package/{components → dist/components}/z-index/z-index.store.js +0 -0
  553. /package/{components → dist/components}/z-index/z-index.types.d.ts +0 -0
  554. /package/{components → dist/components}/z-index/z-index.types.d.ts.map +0 -0
  555. /package/{components → dist/components}/z-index/z-index.types.js +0 -0
  556. /package/{lib.d.ts → dist/lib.d.ts} +0 -0
  557. /package/{lib.d.ts.map → dist/lib.d.ts.map} +0 -0
  558. /package/{lib.js → dist/lib.js} +0 -0
  559. /package/{type.d.ts → dist/type.d.ts} +0 -0
  560. /package/{type.d.ts.map → dist/type.d.ts.map} +0 -0
  561. /package/{utils → dist/utils}/cn.d.ts +0 -0
  562. /package/{utils → dist/utils}/cn.d.ts.map +0 -0
  563. /package/{utils → dist/utils}/cn.js +0 -0
  564. /package/{utils → dist/utils}/element-tracker.js +0 -0
  565. /package/{utils → dist/utils}/helper.d.ts +0 -0
  566. /package/{utils → dist/utils}/helper.d.ts.map +0 -0
  567. /package/{utils → dist/utils}/helper.js +0 -0
  568. /package/{utils → dist/utils}/hoc.js +0 -0
@@ -0,0 +1,489 @@
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { Input } from 'solid-tom-ui';`
3
+ - **Export**: `Input` (main router component with sub-components attached)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Unified input router — the `type` prop selects which variant renders (text, textarea, password, number, color, date, range, OTP)
6
+
7
+ ## SUB-COMPONENTS & MOUNT POINTS
8
+
9
+ ```
10
+ Input → routes based on type prop
11
+ ├── Input.Text → type="text"
12
+ ├── Input.TextArea → type="textarea"
13
+ ├── Input.Password → type="password"
14
+ ├── Input.Number → type="number"
15
+ ├── Input.Color → type="color"
16
+ ├── Input.Date → type="date"
17
+ ├── Input.Range → type="range" (delegates to Slider)
18
+ └── Input.OTP → type="otp"
19
+ ```
20
+
21
+ Both syntaxes are valid:
22
+
23
+ ```tsx
24
+ <Input type="text" ... /> // router syntax
25
+ <Input.Text type="text" ... /> // direct sub-component syntax
26
+ ```
27
+
28
+ ---
29
+
30
+ ## SHARED BASE PROPS (most variants inherit these)
31
+
32
+ ```typescript
33
+ interface InputBaseProps {
34
+ value?: string;
35
+ variant?: 'outline' | 'borderless' | 'filled'; // default: 'outline'
36
+ allowClear?: boolean; // default: true (shows ✕ button)
37
+ disabled?: boolean; // default: false
38
+ id?: string;
39
+ size?: '4xs' | '3xs' | '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl'; // default: 'md'
40
+ color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'; // default: 'info'
41
+ placeholder?: string; // default: ''
42
+ prefixIcon?: JSXElement; // icon/element on the left inside input
43
+ suffixIcon?: JSXElement; // icon/element on the right inside input
44
+ class?: Partial<Record<'root' | 'input', string>>; // scoped class overrides
45
+ onInput?: (value: string, e: Event) => void; // fires on every keystroke
46
+ onChange?: (value: string, e: Event) => void; // fires on committed change
47
+ onPressEnter?: (value: string, e: KeyboardEvent) => void;
48
+ onBlur?: (value: string, e: Event) => void;
49
+ }
50
+ ```
51
+
52
+ ### Base defaults
53
+
54
+ | Prop | Default |
55
+ | ------------- | ----------- |
56
+ | `variant` | `"outline"` |
57
+ | `allowClear` | `true` |
58
+ | `color` | `"info"` |
59
+ | `size` | `"md"` |
60
+ | `placeholder` | `""` |
61
+ | `disabled` | `false` |
62
+
63
+ ---
64
+
65
+ ## VARIANT: type="text"
66
+
67
+ ```typescript
68
+ // All InputBaseProps +
69
+ {
70
+ type: 'text';
71
+ typeOrigin?: string; // Override the native input type attribute
72
+ maskOptions?: FactoryOpts & { // IMask integration
73
+ onAccept?: (value?: string, unmaskedValue?: string) => void;
74
+ };
75
+ }
76
+ ```
77
+
78
+ ### Usage — basic
79
+
80
+ ```tsx
81
+ <Input type="text" placeholder="Enter name..." />
82
+ <Input type="text" variant="filled" color="primary" placeholder="Search..." />
83
+ <Input type="text" variant="borderless" size="lg" placeholder="Large borderless" />
84
+ ```
85
+
86
+ ### Usage — with prefix/suffix icons
87
+
88
+ ```tsx
89
+ <Input
90
+ type="text"
91
+ placeholder="Search..."
92
+ prefixIcon={<DynamicIcon name="search" size={16} class="opacity-50" />}
93
+ />
94
+
95
+ <Input
96
+ type="text"
97
+ placeholder="Email"
98
+ suffixIcon={<DynamicIcon name="mail" size={16} class="opacity-50" />}
99
+ />
100
+
101
+ // Text prefix/suffix
102
+ <Input
103
+ type="text"
104
+ placeholder="Enter URL"
105
+ prefixIcon={<span class="text-sm opacity-60">https://</span>}
106
+ suffixIcon={<span class="text-sm opacity-60">.com</span>}
107
+ />
108
+ ```
109
+
110
+ ### Usage — IMask patterns
111
+
112
+ ```tsx
113
+ // Phone: 0xxx xxx xxx
114
+ <Input
115
+ type="text"
116
+ placeholder="0xxx xxx xxx"
117
+ maskOptions={{
118
+ mask: '0000 000 000',
119
+ onAccept: (_masked, unmasked) => setPhone(unmasked ?? ''),
120
+ }}
121
+ />
122
+
123
+ // Credit card: xxxx xxxx xxxx xxxx
124
+ <Input
125
+ type="text"
126
+ placeholder="xxxx xxxx xxxx xxxx"
127
+ maskOptions={{
128
+ mask: '0000 0000 0000 0000',
129
+ onAccept: (_masked, unmasked) => setCard(unmasked ?? ''),
130
+ }}
131
+ />
132
+
133
+ // Auto uppercase
134
+ <Input
135
+ type="text"
136
+ maskOptions={{
137
+ mask: /^[A-Z\s]*$/i,
138
+ prepare: (str: string) => str.toUpperCase(),
139
+ onAccept: (value) => setValue(value ?? ''),
140
+ }}
141
+ />
142
+
143
+ // Email with auto-lowercase + character restriction
144
+ <Input
145
+ type="text"
146
+ placeholder="example@domain.com"
147
+ maskOptions={{
148
+ mask: /^[a-z0-9._%+-]*@?[a-z0-9.-]*\.?[a-z]*$/i,
149
+ prepare: (str: string) => str.toLowerCase(),
150
+ onAccept: (value) => setEmail(value ?? ''),
151
+ }}
152
+ />
153
+
154
+ // Custom pattern: ABC-1234-XYZ
155
+ <Input
156
+ type="text"
157
+ placeholder="ABC-1234-XYZ"
158
+ maskOptions={{
159
+ mask: 'aaa-0000-aaa',
160
+ definitions: { a: /[A-Za-z]/ },
161
+ prepare: (str: string) => str.toUpperCase(),
162
+ onAccept: (value) => setValue(value ?? ''),
163
+ }}
164
+ />
165
+ ```
166
+
167
+ ### Usage — disable clear button
168
+
169
+ ```tsx
170
+ <Input type="text" allowClear={false} placeholder="No clear button" />
171
+ ```
172
+
173
+ ---
174
+
175
+ ## VARIANT: type="password"
176
+
177
+ ```typescript
178
+ // Omit<InputBaseProps, 'suffixIcon'> + (suffixIcon is internally used for eye toggle)
179
+ {
180
+ type: 'password';
181
+ }
182
+ ```
183
+
184
+ - Eye icon toggle auto-injected as `suffixIcon` — do NOT pass `suffixIcon`
185
+ - 1-second auto-hide after revealing password
186
+
187
+ ```tsx
188
+ <Input type="password" placeholder="Enter password" />
189
+ <Input type="password" color="error" placeholder="Confirm password" />
190
+ <Input type="password" variant="filled" size="lg" />
191
+ ```
192
+
193
+ ---
194
+
195
+ ## VARIANT: type="number"
196
+
197
+ ```typescript
198
+ // All InputBaseProps +
199
+ {
200
+ type: 'number';
201
+ wheel?: boolean; // Enable mouse wheel increment/decrement (default: false)
202
+ keyboard?: boolean; // Enable arrow key Up/Down increment/decrement (default: false)
203
+ offset?: number; // Step per increment (default: 1)
204
+ maskOptions?: {
205
+ min?: number;
206
+ max?: number;
207
+ thousandsSeparator?: string; // default: '_'
208
+ radix?: string; // decimal separator (default: '.')
209
+ scale?: number; // decimal places
210
+ normalizeZeros?: boolean;
211
+ padFractionalZeros?: boolean;
212
+ onAccept?: (value?: string, unmaskedValue?: string) => void;
213
+ };
214
+ }
215
+ ```
216
+
217
+ ```tsx
218
+ // Basic number
219
+ <Input type="number" placeholder="Enter number..." />
220
+
221
+ // With keyboard & wheel control
222
+ <Input type="number" wheel keyboard onChange={setValue} />
223
+
224
+ // Custom step
225
+ <Input type="number" wheel keyboard offset={5} />
226
+
227
+ // Min/max constraints
228
+ <Input type="number" wheel keyboard maskOptions={{ min: 0, max: 100 }} />
229
+
230
+ // Negative numbers
231
+ <Input type="number" wheel keyboard maskOptions={{ min: -100, max: 100 }} />
232
+
233
+ // Decimal (2 decimal places, step 0.1)
234
+ <Input type="number" wheel keyboard offset={0.1} maskOptions={{ scale: 2, radix: '.' }} />
235
+
236
+ // Thousands separator
237
+ <Input type="number" maskOptions={{ thousandsSeparator: ',' }} />
238
+
239
+ // Currency prefix
240
+ <Input type="number" prefixIcon={<span class="text-sm opacity-60">$</span>} />
241
+
242
+ // Percentage suffix
243
+ <Input type="number" suffixIcon={<span class="text-sm opacity-60">%</span>} />
244
+ ```
245
+
246
+ ---
247
+
248
+ ## VARIANT: type="textarea"
249
+
250
+ ```typescript
251
+ // Omit<InputBaseProps, 'prefixIcon' | 'suffixIcon' | 'onPressEnter' | 'size'> +
252
+ {
253
+ type: 'textarea';
254
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'; // Smaller size set than text input
255
+ }
256
+ ```
257
+
258
+ - **No** `prefixIcon`, `suffixIcon`, or `onPressEnter`
259
+ - Resizable vertically by default
260
+ - Has `allowClear` support
261
+
262
+ ```tsx
263
+ <Input type="textarea" placeholder="Enter description..." />
264
+ <Input type="textarea" size="lg" variant="filled" color="primary" />
265
+ <Input type="textarea" allowClear={false} rows={5} placeholder="Notes" />
266
+ ```
267
+
268
+ ---
269
+
270
+ ## VARIANT: type="color"
271
+
272
+ ```typescript
273
+ // Omit<InputBaseProps, 'prefixIcon'> +
274
+ {
275
+ type: 'color';
276
+ }
277
+ ```
278
+
279
+ - Shows a color swatch preview as prefix (auto-managed)
280
+ - Do NOT pass `prefixIcon` — it is used internally for the color preview
281
+
282
+ ```tsx
283
+ <Input type="color" />
284
+ <Input type="color" value="#ff6b6b" onChange={(hex) => setColor(hex)} />
285
+ ```
286
+
287
+ ---
288
+
289
+ ## VARIANT: type="date"
290
+
291
+ ```typescript
292
+ // All InputBaseProps +
293
+ {
294
+ type: 'date';
295
+ }
296
+ ```
297
+
298
+ ```tsx
299
+ <Input type="date" />
300
+ <Input type="date" color="primary" size="md" />
301
+ ```
302
+
303
+ ---
304
+
305
+ ## VARIANT: type="range"
306
+
307
+ ```typescript
308
+ {
309
+ type: 'range';
310
+ }
311
+ // Delegates all props to the Slider component
312
+ ```
313
+
314
+ ```tsx
315
+ <Input type="range" />
316
+ ```
317
+
318
+ ---
319
+
320
+ ## VARIANT: type="otp"
321
+
322
+ ```typescript
323
+ {
324
+ type: 'otp';
325
+ length?: number; // Number of input boxes (default: 6)
326
+ inputMode?: 'numeric' | 'text'; // default: 'numeric'
327
+ allowedChars?: RegExp; // Pattern for valid characters (default: /^[0-9]$/)
328
+ color?: BaseColorProps; // Focus ring color
329
+ separator?: SolidComponent; // Custom separator between boxes
330
+ disabled?: boolean; // default: false
331
+ value?: string; // Pre-fill initial value
332
+ class?: Partial<Record<'root' | 'inputWrap' | 'input', string>>;
333
+ onComplete?: (otp: string) => void; // Fires when ALL boxes are filled
334
+ onChange?: (otp: string) => void; // Fires on any change
335
+ onBlur?: (otp: string) => void;
336
+ }
337
+ ```
338
+
339
+ ### Keyboard behavior (built-in, no config needed):
340
+
341
+ - Typing → advances to next box automatically
342
+ - Backspace on non-empty → clears current box, stays
343
+ - Backspace on empty → moves to previous box and clears
344
+ - Delete → clears current box without moving
345
+ - Arrow Left/Right → moves focus between boxes
346
+ - Tab / Shift+Tab → circular navigation within OTP group
347
+ - Paste → distributes pasted string across boxes, filtering by `allowedChars`
348
+
349
+ ```tsx
350
+ // 6-digit numeric OTP (default)
351
+ <Input
352
+ type="otp"
353
+ length={6}
354
+ onChange={setOtp}
355
+ onComplete={(code) => verifyOTP(code)}
356
+ color="primary"
357
+ />
358
+
359
+ // 4-digit PIN
360
+ <Input type="otp" length={4} onComplete={handlePIN} />
361
+
362
+ // Alphanumeric code (e.g., invite code)
363
+ <Input
364
+ type="otp"
365
+ length={6}
366
+ inputMode="text"
367
+ allowedChars={/^[A-Za-z0-9]$/}
368
+ onChange={setCode}
369
+ onComplete={(code) => redeemCode(code)}
370
+ />
371
+
372
+ // Disabled with prefilled value
373
+ <Input type="otp" length={6} disabled value="123456" />
374
+
375
+ // With initial partial value
376
+ <Input type="otp" length={6} value="123" onComplete={handleComplete} />
377
+
378
+ // Direct sub-component
379
+ <Input.OTP type="otp" length={5} onComplete={handleComplete} />
380
+ ```
381
+
382
+ ---
383
+
384
+ ## VARIANT & SIZE MATRIX
385
+
386
+ ### Variants (all applicable types)
387
+
388
+ | Variant | Appearance | Use case |
389
+ | ------------ | -------------------------------- | ------------------------------ |
390
+ | `outline` | Border, transparent bg (default) | Standard form fields |
391
+ | `filled` | Solid background fill | Emphasized / standalone inputs |
392
+ | `borderless` | No border, no background | Inline editing, minimal UI |
393
+
394
+ ### Colors (focus ring / accent color)
395
+
396
+ | Color | Focus ring color | Semantic use |
397
+ | --------- | ---------------- | ---------------------- |
398
+ | `info` | Blue (default) | General text input |
399
+ | `primary` | Brand primary | Main form field |
400
+ | `success` | Green | Valid input |
401
+ | `error` | Red | Validation error state |
402
+ | `warning` | Amber | Warning state |
403
+ | `neutral` | Gray | Low emphasis |
404
+
405
+ ---
406
+
407
+ ## DECISION RULES
408
+
409
+ **Choosing input type:**
410
+
411
+ - Free text → `type="text"`
412
+ - Secret / credential → `type="password"`
413
+ - Integer / float / currency → `type="number"`
414
+ - Multi-line content → `type="textarea"`
415
+ - Verification code / PIN → `type="otp"`
416
+ - Hex color picker → `type="color"`
417
+ - Date selection → `type="date"`
418
+ - Slider value → `type="range"`
419
+
420
+ **Choosing variant:**
421
+
422
+ - Default form → `outline`
423
+ - Card / floating label form → `filled`
424
+ - Table cell inline edit → `borderless`
425
+
426
+ **Choosing size:**
427
+
428
+ - Standard form → `md` (default)
429
+ - Compact/dense UI → `sm` or `xs`
430
+ - Hero / search bar → `lg` or `xl`
431
+
432
+ **IMask usage (type="text"):**
433
+
434
+ - Need formatted display (phone, credit card, date) → use `maskOptions.mask` string pattern
435
+ - Need character restriction → use `maskOptions.mask` as RegExp
436
+ - Need value transformation (uppercase/lowercase) → use `maskOptions.prepare`
437
+ - Need raw vs formatted value separately → use `onAccept(maskedValue, unmaskedValue)`
438
+
439
+ **Number input controls:**
440
+
441
+ - Quantity selector (cart, seats) → `wheel + keyboard + offset=1`
442
+ - Price / percentage → `wheel + keyboard + maskOptions.scale=2`
443
+ - Bounded range (0–100) → add `maskOptions.min + maskOptions.max`
444
+
445
+ **OTP length:**
446
+
447
+ - Standard SMS/email OTP → `length={6}`
448
+ - PIN code → `length={4}`
449
+ - Invite / promo code → `length` matching code format
450
+
451
+ ---
452
+
453
+ ## ANTI-PATTERNS
454
+
455
+ ```tsx
456
+ // ❌ Missing type prop — required discriminator
457
+ <Input placeholder="Enter..." />
458
+
459
+ // ❌ Passing suffixIcon to type="password" — internally reserved for eye toggle
460
+ <Input type="password" suffixIcon={<Icon />} />
461
+
462
+ // ❌ Passing prefixIcon to type="color" — internally reserved for color swatch
463
+ <Input type="color" prefixIcon={<Icon />} />
464
+
465
+ // ❌ Using type="text" for numeric data without maskOptions
466
+ <Input type="text" placeholder="Phone number" />
467
+ // ✅ Use maskOptions or type="number"
468
+ <Input type="text" maskOptions={{ mask: '0000 000 000' }} placeholder="Phone" />
469
+
470
+ // ❌ Using type="number" for formatted strings (phone, credit card)
471
+ <Input type="number" placeholder="Phone" />
472
+ // ✅ Use type="text" + maskOptions for formatted strings
473
+ <Input type="text" maskOptions={{ mask: '0000 000 000' }} />
474
+
475
+ // ❌ Using onInput for every-keystroke value if change tracking suffices
476
+ // ✅ Prefer onChange for committed values; use onInput only for real-time filtering
477
+
478
+ // ❌ OTP with non-matching allowedChars and inputMode
479
+ <Input type="otp" inputMode="numeric" allowedChars={/^[A-Za-z]$/} />
480
+ // ✅ Match inputMode with allowedChars
481
+ <Input type="otp" inputMode="text" allowedChars={/^[A-Za-z0-9]$/} />
482
+ ```
483
+ ---
484
+
485
+ ## Component Conventions
486
+
487
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `in01`, `in02`) per project convention.
488
+
489
+ > **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,127 @@
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { Loading, Spinner } from 'solid-tom-ui';`
3
+ - **Exports**: `Loading` (main), `Spinner` (sub-component)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Flexible loading indicator with 11 animation variants and 5 size options; supports DaisyUI semantic colors and any valid CSS color value
6
+
7
+ ## Props — `Loading`
8
+
9
+ | Prop | Type | Default | Description |
10
+ |-----------|-----------------------------------|-------------|--------------------------------------------------|
11
+ | `variant` | `DaisyVariant \| SvgVariant` | `'spinner'` | Animation style (see variants below) |
12
+ | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | `'sm'` | Size of the indicator |
13
+ | `color` | `BaseColorProps \| string` | — | Color: semantic token or any CSS color value |
14
+ | `class` | `string` | — | Additional CSS classes |
15
+
16
+ ### Variant Groups
17
+
18
+ **DaisyUI-based** (rendered as `<div>` with DaisyUI classes):
19
+ - `spinner` — rotating arc (default DaisyUI spinner)
20
+ - `spinner-2` — CSS border-based spinner (custom, not from DaisyUI)
21
+ - `dots` — three bouncing dots
22
+ - `ring` — spinning ring outline
23
+ - `ball` — bouncing ball
24
+ - `bars` — animated vertical bars
25
+ - `infinity` — infinity symbol animation
26
+
27
+ **SVG-based** (rendered as inline SVG):
28
+ - `spinner-3` — 12-dot clock-style spinner with SVG `<animate>`
29
+ - `spinner-4` — Lucide `Loader` icon with `animate-spin`
30
+ - `spinner-5` — 12-line spoke spinner using `animateTransform` (discrete steps)
31
+ - `spinner-6` — gradient arc circle with `animate-spin`
32
+
33
+ ## Props — `Spinner`
34
+
35
+ | Prop | Type | Default | Description |
36
+ |---------|----------|-------------|---------------------------------|
37
+ | `color` | `string` | `'#6E56CF'` | Stroke color (any CSS color) |
38
+ | `class` | `string` | — | Defaults to `size-3 animate-spin` |
39
+
40
+ `Spinner` does **not** accept `variant` or `size`. It always renders a small gradient arc SVG. Use `class` to override size.
41
+
42
+ ## Color System
43
+
44
+ The `color` prop on `Loading` accepts:
45
+
46
+ 1. **`BaseColorProps` tokens**: `'primary'`, `'secondary'`, `'accent'`, `'neutral'`, `'info'`, `'success'`, `'warning'`, `'error'`
47
+ — automatically resolved to the corresponding DaisyUI CSS variable (e.g., `var(--color-primary)`)
48
+
49
+ 2. **Any CSS color value**: hex (`#ff0000`), rgb, hsl, named colors, etc.
50
+ — passed directly as `color` style
51
+
52
+ For DaisyUI variants, color is applied via the CSS `color` property, which drives `currentColor` in DaisyUI's masking/border logic.
53
+
54
+ ## Usage Examples
55
+
56
+ ### Basic usage
57
+ ```tsx
58
+ import { Loading } from 'solid-tom-ui';
59
+
60
+ // Default: spinner, sm size
61
+ <Loading />
62
+
63
+ // Dots indicator, large
64
+ <Loading variant="dots" size="lg" />
65
+
66
+ // SVG spinner with primary color
67
+ <Loading variant="spinner-3" size="md" color="primary" />
68
+
69
+ // Custom hex color
70
+ <Loading variant="ring" size="xl" color="#ff6b6b" />
71
+ ```
72
+
73
+ ### All variants at a glance
74
+ ```tsx
75
+ const variants = ['spinner','spinner-2','spinner-3','spinner-4','spinner-5','spinner-6','dots','ring','ball','bars','infinity'];
76
+
77
+ <For each={variants}>
78
+ {(v) => <Loading variant={v} size="md" />}
79
+ </For>
80
+ ```
81
+
82
+ ### Inline `Spinner` inside a button
83
+ ```tsx
84
+ import { Spinner } from 'solid-tom-ui';
85
+
86
+ <button disabled={loading()}>
87
+ <Show when={loading()}>
88
+ <Spinner class="size-4" color="white" />
89
+ </Show>
90
+ Submit
91
+ </button>
92
+ ```
93
+
94
+ ### Full-page overlay
95
+ ```tsx
96
+ <Show when={isLoading()}>
97
+ <div class="fixed inset-0 flex items-center justify-center bg-black/30 z-50">
98
+ <Loading variant="infinity" size="xl" color="primary" />
99
+ </div>
100
+ </Show>
101
+ ```
102
+
103
+ ## Size Reference
104
+
105
+ | Size | DaisyUI variants | SVG variants (spinner-3/4/5/6) |
106
+ |------|-----------------|-------------------------------|
107
+ | `xs` | DaisyUI `loading-xs` | 1rem × 1rem |
108
+ | `sm` | DaisyUI `loading-sm` | 1.25rem × 1.25rem |
109
+ | `md` | DaisyUI `loading-md` | 1.5rem × 1.5rem |
110
+ | `lg` | DaisyUI `loading-lg` | 2rem × 2rem |
111
+ | `xl` | DaisyUI `loading-xl` | 2.5rem × 2.5rem |
112
+
113
+ ## Class Slots
114
+
115
+ Both `Loading` and `Spinner` are single-element components — `class` appends to the root element. No named sub-element slots.
116
+
117
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `ld01`, `ld02`) per project convention.
118
+
119
+ > **Unique IDs**: `Spinner` uses `createUniqueId()` from `solid-js` for the SVG `linearGradient` `id` — safe when multiple `Spinner` instances are on the same page.
120
+
121
+ ## Implementation Notes
122
+
123
+ - `spinner-2` is a **custom CSS border-spinner**, not a standard DaisyUI variant. It uses `border-top-color: currentColor` + `animation: sui-spin`.
124
+ - SVG variants (`spinner-3` through `spinner-6`) use `svg_size_map` to apply size via `.loading-svg-*` CSS classes instead of DaisyUI's `loading-*` size utilities.
125
+ - `spinner-4` wraps the Lucide `Loader` icon — its visual style matches Lucide's stroke-based icon set.
126
+ - `Spinner` uses a `createUniqueId()` for the SVG `linearGradient` id to avoid conflicts when multiple instances are on the page.
127
+ - Both components support `class` override; this is appended via `cn()` (clsx + tailwind-merge), so Tailwind conflicts are resolved correctly.
File without changes