solid-tom-ui 1.0.8 → 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 (502) hide show
  1. package/dist/README.md +246 -0
  2. package/dist/components/avatar/index.d.ts +3 -0
  3. package/{components → dist/components}/avatar/index.d.ts.map +1 -1
  4. package/dist/components/button/index.d.ts +3 -0
  5. package/{components → dist/components}/button/index.d.ts.map +1 -1
  6. package/dist/components/collapse/index.d.ts +3 -0
  7. package/{components → dist/components}/collapse/index.d.ts.map +1 -1
  8. package/dist/components/float-button/index.d.ts +3 -0
  9. package/{components → dist/components}/float-button/index.d.ts.map +1 -1
  10. package/dist/components/input/index.d.ts +3 -0
  11. package/dist/components/input/index.d.ts.map +1 -0
  12. package/dist/components/menu/index.d.ts +4 -0
  13. package/{components → dist/components}/menu/index.d.ts.map +1 -1
  14. package/{components → dist/components}/menu/menu.types.d.ts +7 -7
  15. package/{components → dist/components}/menu/menu.types.d.ts.map +1 -1
  16. package/dist/components/rating/index.d.ts +3 -0
  17. package/{components → dist/components}/rating/index.d.ts.map +1 -1
  18. package/dist/components/slider/index.d.ts +3 -0
  19. package/{components → dist/components}/slider/index.d.ts.map +1 -1
  20. package/{components → dist/components}/tour/tour.d.ts.map +1 -1
  21. package/{components → dist/components}/tour/tour.js +1 -1
  22. package/{components → dist/components}/tour/tour.js.map +1 -1
  23. package/{components → dist/components}/z-index/z-index.types.js.map +1 -1
  24. package/dist/package.json +45 -0
  25. package/dist/skill/avatar.skill.md.txt +255 -0
  26. package/dist/skill/badge.skill.md.txt +223 -0
  27. package/dist/skill/blank.skill.md.txt +0 -0
  28. package/dist/skill/breadcrumb.skill.md.txt +177 -0
  29. package/dist/skill/button.skill.md.txt +198 -0
  30. package/dist/skill/carousel.skill.md.txt +406 -0
  31. package/dist/skill/chat-bubble.skill.md.txt +342 -0
  32. package/dist/skill/checkbox.skill.md.txt +326 -0
  33. package/dist/skill/code-preview.skill.md.txt +240 -0
  34. package/dist/skill/collapse.skill.md.txt +329 -0
  35. package/dist/skill/context-menu.skill.md.txt +233 -0
  36. package/dist/skill/diff.skill.md.txt +244 -0
  37. package/dist/skill/divider.skill.md.txt +151 -0
  38. package/dist/skill/doc.skill.md.txt +191 -0
  39. package/dist/skill/drawer.skill.md.txt +157 -0
  40. package/dist/skill/dropdown.skill.md.txt +198 -0
  41. package/dist/skill/float-button.skill.md.txt +315 -0
  42. package/dist/skill/hover-3d-image.skill.md.txt +120 -0
  43. package/dist/skill/iframe.skill.md.txt +114 -0
  44. package/dist/skill/image-preview.skill.md.txt +162 -0
  45. package/dist/skill/indicator.skill.md.txt +60 -0
  46. package/dist/skill/input.skill.md.txt +489 -0
  47. package/dist/skill/loading.skill.md.txt +127 -0
  48. package/dist/skill/mansory.skill.md.txt +0 -0
  49. package/dist/skill/menu.skill.md.txt +476 -0
  50. package/dist/skill/modal.skill.md.txt +359 -0
  51. package/dist/skill/pagination.skill.md.txt +405 -0
  52. package/dist/skill/progress-bar.skill.md.txt +207 -0
  53. package/dist/skill/qr-code.skill.md.txt +136 -0
  54. package/dist/skill/rating.skill.md.txt +167 -0
  55. package/dist/skill/select-zone.skill.md.txt +93 -0
  56. package/dist/skill/select.skill.md.txt +663 -0
  57. package/dist/skill/skeleton.skill.md.txt +192 -0
  58. package/dist/skill/slider.skill.md.txt +404 -0
  59. package/dist/skill/splitter.skill.md.txt +411 -0
  60. package/dist/skill/steps.skill.md.txt +264 -0
  61. package/dist/skill/swap.skill.md.txt +139 -0
  62. package/dist/skill/switch.skill.md.txt +191 -0
  63. package/dist/skill/tab.skill.md.txt +484 -0
  64. package/dist/skill/table.example.header.md.txt +667 -0
  65. package/dist/skill/table.skill.md.txt +1407 -0
  66. package/dist/skill/text-rotate.skill.md.txt +186 -0
  67. package/dist/skill/timeline.skill.md.txt +247 -0
  68. package/dist/skill/toast.skill.md.txt +531 -0
  69. package/dist/skill/tooltip.skill.md.txt +222 -0
  70. package/dist/skill/tour.skill.md.txt +156 -0
  71. package/dist/skill/upload.skill.md.txt +358 -0
  72. package/dist/skill/z-index.skill.md.txt +0 -0
  73. package/{solid-ui.css → dist/solid-ui.css} +2 -2
  74. package/package.json +97 -9
  75. package/components/avatar/index.d.ts +0 -2
  76. package/components/button/index.d.ts +0 -2
  77. package/components/collapse/index.d.ts +0 -2
  78. package/components/float-button/index.d.ts +0 -2
  79. package/components/input/index.d.ts +0 -2
  80. package/components/input/index.d.ts.map +0 -1
  81. package/components/menu/index.d.ts +0 -4
  82. package/components/rating/index.d.ts +0 -2
  83. package/components/slider/index.d.ts +0 -2
  84. package/macos.code-workspace +0 -8
  85. /package/{components → dist/components}/avatar/avatar.d.ts +0 -0
  86. /package/{components → dist/components}/avatar/avatar.d.ts.map +0 -0
  87. /package/{components → dist/components}/avatar/avatar.js +0 -0
  88. /package/{components → dist/components}/avatar/avatar.js.map +0 -0
  89. /package/{components → dist/components}/avatar/avatar.types.d.ts +0 -0
  90. /package/{components → dist/components}/avatar/avatar.types.d.ts.map +0 -0
  91. /package/{components → dist/components}/badge/badge.d.ts +0 -0
  92. /package/{components → dist/components}/badge/badge.d.ts.map +0 -0
  93. /package/{components → dist/components}/badge/badge.js +0 -0
  94. /package/{components → dist/components}/badge/badge.js.map +0 -0
  95. /package/{components → dist/components}/badge/badge.types.d.ts +0 -0
  96. /package/{components → dist/components}/badge/badge.types.d.ts.map +0 -0
  97. /package/{components → dist/components}/badge/index.d.ts +0 -0
  98. /package/{components → dist/components}/badge/index.d.ts.map +0 -0
  99. /package/{components → dist/components}/blank/blank.d.ts +0 -0
  100. /package/{components → dist/components}/blank/blank.d.ts.map +0 -0
  101. /package/{components → dist/components}/blank/index.d.ts +0 -0
  102. /package/{components → dist/components}/blank/index.d.ts.map +0 -0
  103. /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts +0 -0
  104. /package/{components → dist/components}/breadcrumb/breadcrumb.d.ts.map +0 -0
  105. /package/{components → dist/components}/breadcrumb/breadcrumb.js +0 -0
  106. /package/{components → dist/components}/breadcrumb/breadcrumb.js.map +0 -0
  107. /package/{components → dist/components}/breadcrumb/index.d.ts +0 -0
  108. /package/{components → dist/components}/breadcrumb/index.d.ts.map +0 -0
  109. /package/{components → dist/components}/button/button.d.ts +0 -0
  110. /package/{components → dist/components}/button/button.d.ts.map +0 -0
  111. /package/{components → dist/components}/button/button.js +0 -0
  112. /package/{components → dist/components}/button/button.js.map +0 -0
  113. /package/{components → dist/components}/button/button.types.d.ts +0 -0
  114. /package/{components → dist/components}/button/button.types.d.ts.map +0 -0
  115. /package/{components → dist/components}/carousel/carousel.d.ts +0 -0
  116. /package/{components → dist/components}/carousel/carousel.d.ts.map +0 -0
  117. /package/{components → dist/components}/carousel/carousel.js +0 -0
  118. /package/{components → dist/components}/carousel/carousel.js.map +0 -0
  119. /package/{components → dist/components}/carousel/carousel.types.d.ts +0 -0
  120. /package/{components → dist/components}/carousel/carousel.types.d.ts.map +0 -0
  121. /package/{components → dist/components}/carousel/index.d.ts +0 -0
  122. /package/{components → dist/components}/carousel/index.d.ts.map +0 -0
  123. /package/{components → dist/components}/chat-bubble/chatBubble.d.ts +0 -0
  124. /package/{components → dist/components}/chat-bubble/chatBubble.d.ts.map +0 -0
  125. /package/{components → dist/components}/chat-bubble/chatBubble.js +0 -0
  126. /package/{components → dist/components}/chat-bubble/chatBubble.js.map +0 -0
  127. /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts +0 -0
  128. /package/{components → dist/components}/chat-bubble/chatBubble.type.d.ts.map +0 -0
  129. /package/{components → dist/components}/chat-bubble/index.d.ts +0 -0
  130. /package/{components → dist/components}/chat-bubble/index.d.ts.map +0 -0
  131. /package/{components → dist/components}/checkbox/checkbox.d.ts +0 -0
  132. /package/{components → dist/components}/checkbox/checkbox.d.ts.map +0 -0
  133. /package/{components → dist/components}/checkbox/checkbox.js +0 -0
  134. /package/{components → dist/components}/checkbox/checkbox.js.map +0 -0
  135. /package/{components → dist/components}/checkbox/index.d.ts +0 -0
  136. /package/{components → dist/components}/checkbox/index.d.ts.map +0 -0
  137. /package/{components → dist/components}/collapse/collapse.d.ts +0 -0
  138. /package/{components → dist/components}/collapse/collapse.d.ts.map +0 -0
  139. /package/{components → dist/components}/collapse/collapse.js +0 -0
  140. /package/{components → dist/components}/collapse/collapse.js.map +0 -0
  141. /package/{components → dist/components}/collapse/collapse.types.d.ts +0 -0
  142. /package/{components → dist/components}/collapse/collapse.types.d.ts.map +0 -0
  143. /package/{components → dist/components}/context-menu/context-menu.d.ts +0 -0
  144. /package/{components → dist/components}/context-menu/context-menu.d.ts.map +0 -0
  145. /package/{components → dist/components}/context-menu/context-menu.js +0 -0
  146. /package/{components → dist/components}/context-menu/context-menu.js.map +0 -0
  147. /package/{components → dist/components}/context-menu/context-menu.store.d.ts +0 -0
  148. /package/{components → dist/components}/context-menu/context-menu.store.d.ts.map +0 -0
  149. /package/{components → dist/components}/context-menu/context-menu.store.js +0 -0
  150. /package/{components → dist/components}/context-menu/context-menu.store.js.map +0 -0
  151. /package/{components → dist/components}/context-menu/context-menu.types.d.ts +0 -0
  152. /package/{components → dist/components}/context-menu/context-menu.types.d.ts.map +0 -0
  153. /package/{components → dist/components}/context-menu/index.d.ts +0 -0
  154. /package/{components → dist/components}/context-menu/index.d.ts.map +0 -0
  155. /package/{components → dist/components}/diff/diff.d.ts +0 -0
  156. /package/{components → dist/components}/diff/diff.d.ts.map +0 -0
  157. /package/{components → dist/components}/diff/diff.js +0 -0
  158. /package/{components → dist/components}/diff/diff.js.map +0 -0
  159. /package/{components → dist/components}/diff/index.d.ts +0 -0
  160. /package/{components → dist/components}/diff/index.d.ts.map +0 -0
  161. /package/{components → dist/components}/divider/divider.d.ts +0 -0
  162. /package/{components → dist/components}/divider/divider.d.ts.map +0 -0
  163. /package/{components → dist/components}/divider/divider.js +0 -0
  164. /package/{components → dist/components}/divider/divider.js.map +0 -0
  165. /package/{components → dist/components}/divider/divider.types.d.ts +0 -0
  166. /package/{components → dist/components}/divider/divider.types.d.ts.map +0 -0
  167. /package/{components → dist/components}/divider/index.d.ts +0 -0
  168. /package/{components → dist/components}/divider/index.d.ts.map +0 -0
  169. /package/{components → dist/components}/drawer/drawer.d.ts +0 -0
  170. /package/{components → dist/components}/drawer/drawer.d.ts.map +0 -0
  171. /package/{components → dist/components}/drawer/drawer.js +0 -0
  172. /package/{components → dist/components}/drawer/drawer.js.map +0 -0
  173. /package/{components → dist/components}/drawer/drawer.types.d.ts +0 -0
  174. /package/{components → dist/components}/drawer/drawer.types.d.ts.map +0 -0
  175. /package/{components → dist/components}/drawer/index.d.ts +0 -0
  176. /package/{components → dist/components}/drawer/index.d.ts.map +0 -0
  177. /package/{components → dist/components}/dropdown/dropdown.d.ts +0 -0
  178. /package/{components → dist/components}/dropdown/dropdown.d.ts.map +0 -0
  179. /package/{components → dist/components}/dropdown/dropdown.js +0 -0
  180. /package/{components → dist/components}/dropdown/dropdown.js.map +0 -0
  181. /package/{components → dist/components}/dropdown/dropdown.store.d.ts +0 -0
  182. /package/{components → dist/components}/dropdown/dropdown.store.d.ts.map +0 -0
  183. /package/{components → dist/components}/dropdown/dropdown.store.js +0 -0
  184. /package/{components → dist/components}/dropdown/dropdown.store.js.map +0 -0
  185. /package/{components → dist/components}/dropdown/dropdown.types.d.ts +0 -0
  186. /package/{components → dist/components}/dropdown/dropdown.types.d.ts.map +0 -0
  187. /package/{components → dist/components}/dropdown/index.d.ts +0 -0
  188. /package/{components → dist/components}/dropdown/index.d.ts.map +0 -0
  189. /package/{components → dist/components}/float-button/float-button.d.ts +0 -0
  190. /package/{components → dist/components}/float-button/float-button.d.ts.map +0 -0
  191. /package/{components → dist/components}/float-button/float-button.js +0 -0
  192. /package/{components → dist/components}/float-button/float-button.js.map +0 -0
  193. /package/{components → dist/components}/float-button/float-button.types.d.ts +0 -0
  194. /package/{components → dist/components}/float-button/float-button.types.d.ts.map +0 -0
  195. /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts +0 -0
  196. /package/{components → dist/components}/hover-3d-image/hover-3d-example.d.ts.map +0 -0
  197. /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts +0 -0
  198. /package/{components → dist/components}/hover-3d-image/hover-3d-image.d.ts.map +0 -0
  199. /package/{components → dist/components}/hover-3d-image/hover-3d-image.js +0 -0
  200. /package/{components → dist/components}/hover-3d-image/hover-3d-image.js.map +0 -0
  201. /package/{components → dist/components}/hover-3d-image/index.d.ts +0 -0
  202. /package/{components → dist/components}/hover-3d-image/index.d.ts.map +0 -0
  203. /package/{components → dist/components}/image-preview/image-preview.d.ts +0 -0
  204. /package/{components → dist/components}/image-preview/image-preview.d.ts.map +0 -0
  205. /package/{components → dist/components}/image-preview/image-preview.js +0 -0
  206. /package/{components → dist/components}/image-preview/image-preview.js.map +0 -0
  207. /package/{components → dist/components}/image-preview/index.d.ts +0 -0
  208. /package/{components → dist/components}/image-preview/index.d.ts.map +0 -0
  209. /package/{components → dist/components}/indicator/index.d.ts +0 -0
  210. /package/{components → dist/components}/indicator/index.d.ts.map +0 -0
  211. /package/{components → dist/components}/indicator/indicator.d.ts +0 -0
  212. /package/{components → dist/components}/indicator/indicator.d.ts.map +0 -0
  213. /package/{components → dist/components}/indicator/indicator.js +0 -0
  214. /package/{components → dist/components}/indicator/indicator.js.map +0 -0
  215. /package/{components → dist/components}/indicator/indicator.types.d.ts +0 -0
  216. /package/{components → dist/components}/indicator/indicator.types.d.ts.map +0 -0
  217. /package/{components → dist/components}/input/input.d.ts +0 -0
  218. /package/{components → dist/components}/input/input.d.ts.map +0 -0
  219. /package/{components → dist/components}/input/input.js +0 -0
  220. /package/{components → dist/components}/input/input.js.map +0 -0
  221. /package/{components → dist/components}/input/input.types.d.ts +0 -0
  222. /package/{components → dist/components}/input/input.types.d.ts.map +0 -0
  223. /package/{components → dist/components}/input/input.utils.d.ts +0 -0
  224. /package/{components → dist/components}/input/input.utils.d.ts.map +0 -0
  225. /package/{components → dist/components}/input/input.utils.js +0 -0
  226. /package/{components → dist/components}/input/input.utils.js.map +0 -0
  227. /package/{components → dist/components}/input/variants/input-color.d.ts +0 -0
  228. /package/{components → dist/components}/input/variants/input-color.d.ts.map +0 -0
  229. /package/{components → dist/components}/input/variants/input-color.js +0 -0
  230. /package/{components → dist/components}/input/variants/input-color.js.map +0 -0
  231. /package/{components → dist/components}/input/variants/input-date.d.ts +0 -0
  232. /package/{components → dist/components}/input/variants/input-date.d.ts.map +0 -0
  233. /package/{components → dist/components}/input/variants/input-date.js +0 -0
  234. /package/{components → dist/components}/input/variants/input-date.js.map +0 -0
  235. /package/{components → dist/components}/input/variants/input-number.d.ts +0 -0
  236. /package/{components → dist/components}/input/variants/input-number.d.ts.map +0 -0
  237. /package/{components → dist/components}/input/variants/input-number.js +0 -0
  238. /package/{components → dist/components}/input/variants/input-number.js.map +0 -0
  239. /package/{components → dist/components}/input/variants/input-otp.d.ts +0 -0
  240. /package/{components → dist/components}/input/variants/input-otp.d.ts.map +0 -0
  241. /package/{components → dist/components}/input/variants/input-otp.js +0 -0
  242. /package/{components → dist/components}/input/variants/input-otp.js.map +0 -0
  243. /package/{components → dist/components}/input/variants/input-password.d.ts +0 -0
  244. /package/{components → dist/components}/input/variants/input-password.d.ts.map +0 -0
  245. /package/{components → dist/components}/input/variants/input-password.js +0 -0
  246. /package/{components → dist/components}/input/variants/input-password.js.map +0 -0
  247. /package/{components → dist/components}/input/variants/input-radio.d.ts +0 -0
  248. /package/{components → dist/components}/input/variants/input-radio.d.ts.map +0 -0
  249. /package/{components → dist/components}/input/variants/input-radio.js +0 -0
  250. /package/{components → dist/components}/input/variants/input-radio.js.map +0 -0
  251. /package/{components → dist/components}/input/variants/input-range.d.ts +0 -0
  252. /package/{components → dist/components}/input/variants/input-range.d.ts.map +0 -0
  253. /package/{components → dist/components}/input/variants/input-range.js +0 -0
  254. /package/{components → dist/components}/input/variants/input-range.js.map +0 -0
  255. /package/{components → dist/components}/input/variants/input-text.d.ts +0 -0
  256. /package/{components → dist/components}/input/variants/input-text.d.ts.map +0 -0
  257. /package/{components → dist/components}/input/variants/input-text.js +0 -0
  258. /package/{components → dist/components}/input/variants/input-text.js.map +0 -0
  259. /package/{components → dist/components}/input/variants/input-textarea.d.ts +0 -0
  260. /package/{components → dist/components}/input/variants/input-textarea.d.ts.map +0 -0
  261. /package/{components → dist/components}/input/variants/input-textarea.js +0 -0
  262. /package/{components → dist/components}/input/variants/input-textarea.js.map +0 -0
  263. /package/{components → dist/components}/loading/index.d.ts +0 -0
  264. /package/{components → dist/components}/loading/index.d.ts.map +0 -0
  265. /package/{components → dist/components}/loading/loading.d.ts +0 -0
  266. /package/{components → dist/components}/loading/loading.d.ts.map +0 -0
  267. /package/{components → dist/components}/loading/loading.js +0 -0
  268. /package/{components → dist/components}/loading/loading.js.map +0 -0
  269. /package/{components → dist/components}/mansory/index.d.ts +0 -0
  270. /package/{components → dist/components}/mansory/index.d.ts.map +0 -0
  271. /package/{components → dist/components}/mansory/mansory.d.ts +0 -0
  272. /package/{components → dist/components}/mansory/mansory.d.ts.map +0 -0
  273. /package/{components → dist/components}/mansory/mansory.js +0 -0
  274. /package/{components → dist/components}/mansory/mansory.js.map +0 -0
  275. /package/{components → dist/components}/mansory/mansory.types.d.ts +0 -0
  276. /package/{components → dist/components}/mansory/mansory.types.d.ts.map +0 -0
  277. /package/{components → dist/components}/menu/menu.d.ts +0 -0
  278. /package/{components → dist/components}/menu/menu.d.ts.map +0 -0
  279. /package/{components → dist/components}/menu/menu.data-example.d.ts +0 -0
  280. /package/{components → dist/components}/menu/menu.data-example.d.ts.map +0 -0
  281. /package/{components → dist/components}/menu/menu.js +0 -0
  282. /package/{components → dist/components}/menu/menu.js.map +0 -0
  283. /package/{components → dist/components}/modal/index.d.ts +0 -0
  284. /package/{components → dist/components}/modal/index.d.ts.map +0 -0
  285. /package/{components → dist/components}/modal/modal.d.ts +0 -0
  286. /package/{components → dist/components}/modal/modal.d.ts.map +0 -0
  287. /package/{components → dist/components}/modal/modal.js +0 -0
  288. /package/{components → dist/components}/modal/modal.js.map +0 -0
  289. /package/{components → dist/components}/modal/modalContext.d.ts +0 -0
  290. /package/{components → dist/components}/modal/modalContext.d.ts.map +0 -0
  291. /package/{components → dist/components}/modal/modalContext.js +0 -0
  292. /package/{components → dist/components}/modal/modalContext.js.map +0 -0
  293. /package/{components → dist/components}/pagination/index.d.ts +0 -0
  294. /package/{components → dist/components}/pagination/index.d.ts.map +0 -0
  295. /package/{components → dist/components}/pagination/pagination.d.ts +0 -0
  296. /package/{components → dist/components}/pagination/pagination.d.ts.map +0 -0
  297. /package/{components → dist/components}/pagination/pagination.js +0 -0
  298. /package/{components → dist/components}/pagination/pagination.js.map +0 -0
  299. /package/{components → dist/components}/pagination/pagination.types.d.ts +0 -0
  300. /package/{components → dist/components}/pagination/pagination.types.d.ts.map +0 -0
  301. /package/{components → dist/components}/progress-bar/index.d.ts +0 -0
  302. /package/{components → dist/components}/progress-bar/index.d.ts.map +0 -0
  303. /package/{components → dist/components}/progress-bar/progress-bar.d.ts +0 -0
  304. /package/{components → dist/components}/progress-bar/progress-bar.d.ts.map +0 -0
  305. /package/{components → dist/components}/progress-bar/progress-bar.js +0 -0
  306. /package/{components → dist/components}/progress-bar/progress-bar.js.map +0 -0
  307. /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts +0 -0
  308. /package/{components → dist/components}/progress-bar/progress-bar.types.d.ts.map +0 -0
  309. /package/{components → dist/components}/qr-code/index.d.ts +0 -0
  310. /package/{components → dist/components}/qr-code/index.d.ts.map +0 -0
  311. /package/{components → dist/components}/qr-code/qr-code.d.ts +0 -0
  312. /package/{components → dist/components}/qr-code/qr-code.d.ts.map +0 -0
  313. /package/{components → dist/components}/qr-code/qr-code.js +0 -0
  314. /package/{components → dist/components}/qr-code/qr-code.js.map +0 -0
  315. /package/{components → dist/components}/qr-code/qr-code.types.d.ts +0 -0
  316. /package/{components → dist/components}/qr-code/qr-code.types.d.ts.map +0 -0
  317. /package/{components → dist/components}/rating/rating.d.ts +0 -0
  318. /package/{components → dist/components}/rating/rating.d.ts.map +0 -0
  319. /package/{components → dist/components}/rating/rating.js +0 -0
  320. /package/{components → dist/components}/rating/rating.js.map +0 -0
  321. /package/{components → dist/components}/rating/rating.types.d.ts +0 -0
  322. /package/{components → dist/components}/rating/rating.types.d.ts.map +0 -0
  323. /package/{components → dist/components}/select/index.d.ts +0 -0
  324. /package/{components → dist/components}/select/index.d.ts.map +0 -0
  325. /package/{components → dist/components}/select/select.d.ts +0 -0
  326. /package/{components → dist/components}/select/select.d.ts.map +0 -0
  327. /package/{components → dist/components}/select/select.js +0 -0
  328. /package/{components → dist/components}/select/select.js.map +0 -0
  329. /package/{components → dist/components}/select/select.types.d.ts +0 -0
  330. /package/{components → dist/components}/select/select.types.d.ts.map +0 -0
  331. /package/{components → dist/components}/select-zone/index.d.ts +0 -0
  332. /package/{components → dist/components}/select-zone/index.d.ts.map +0 -0
  333. /package/{components → dist/components}/select-zone/select-zone.d.ts +0 -0
  334. /package/{components → dist/components}/select-zone/select-zone.d.ts.map +0 -0
  335. /package/{components → dist/components}/select-zone/select-zone.js +0 -0
  336. /package/{components → dist/components}/select-zone/select-zone.js.map +0 -0
  337. /package/{components → dist/components}/select-zone/select-zone.types.d.ts +0 -0
  338. /package/{components → dist/components}/select-zone/select-zone.types.d.ts.map +0 -0
  339. /package/{components → dist/components}/skeleton/index.d.ts +0 -0
  340. /package/{components → dist/components}/skeleton/index.d.ts.map +0 -0
  341. /package/{components → dist/components}/skeleton/skeleton.d.ts +0 -0
  342. /package/{components → dist/components}/skeleton/skeleton.d.ts.map +0 -0
  343. /package/{components → dist/components}/skeleton/skeleton.js +0 -0
  344. /package/{components → dist/components}/skeleton/skeleton.js.map +0 -0
  345. /package/{components → dist/components}/slider/slider.d.ts +0 -0
  346. /package/{components → dist/components}/slider/slider.d.ts.map +0 -0
  347. /package/{components → dist/components}/slider/slider.js +0 -0
  348. /package/{components → dist/components}/slider/slider.js.map +0 -0
  349. /package/{components → dist/components}/slider/slider.types.d.ts +0 -0
  350. /package/{components → dist/components}/slider/slider.types.d.ts.map +0 -0
  351. /package/{components → dist/components}/splitter/index.d.ts +0 -0
  352. /package/{components → dist/components}/splitter/index.d.ts.map +0 -0
  353. /package/{components → dist/components}/splitter/splitter.d.ts +0 -0
  354. /package/{components → dist/components}/splitter/splitter.d.ts.map +0 -0
  355. /package/{components → dist/components}/splitter/splitter.js +0 -0
  356. /package/{components → dist/components}/splitter/splitter.js.map +0 -0
  357. /package/{components → dist/components}/splitter/splitter.types.d.ts +0 -0
  358. /package/{components → dist/components}/splitter/splitter.types.d.ts.map +0 -0
  359. /package/{components → dist/components}/steps/index.d.ts +0 -0
  360. /package/{components → dist/components}/steps/index.d.ts.map +0 -0
  361. /package/{components → dist/components}/steps/steps.d.ts +0 -0
  362. /package/{components → dist/components}/steps/steps.d.ts.map +0 -0
  363. /package/{components → dist/components}/steps/steps.js +0 -0
  364. /package/{components → dist/components}/steps/steps.js.map +0 -0
  365. /package/{components → dist/components}/swap/index.d.ts +0 -0
  366. /package/{components → dist/components}/swap/index.d.ts.map +0 -0
  367. /package/{components → dist/components}/swap/swap.d.ts +0 -0
  368. /package/{components → dist/components}/swap/swap.d.ts.map +0 -0
  369. /package/{components → dist/components}/swap/swap.js +0 -0
  370. /package/{components → dist/components}/swap/swap.js.map +0 -0
  371. /package/{components → dist/components}/switch/index.d.ts +0 -0
  372. /package/{components → dist/components}/switch/index.d.ts.map +0 -0
  373. /package/{components → dist/components}/switch/switch.d.ts +0 -0
  374. /package/{components → dist/components}/switch/switch.d.ts.map +0 -0
  375. /package/{components → dist/components}/switch/switch.js +0 -0
  376. /package/{components → dist/components}/switch/switch.js.map +0 -0
  377. /package/{components → dist/components}/switch/switch.types.d.ts +0 -0
  378. /package/{components → dist/components}/switch/switch.types.d.ts.map +0 -0
  379. /package/{components → dist/components}/tab/index.d.ts +0 -0
  380. /package/{components → dist/components}/tab/index.d.ts.map +0 -0
  381. /package/{components → dist/components}/tab/tab.d.ts +0 -0
  382. /package/{components → dist/components}/tab/tab.d.ts.map +0 -0
  383. /package/{components → dist/components}/tab/tab.js +0 -0
  384. /package/{components → dist/components}/tab/tab.js.map +0 -0
  385. /package/{components → dist/components}/tab/tab.types.d.ts +0 -0
  386. /package/{components → dist/components}/tab/tab.types.d.ts.map +0 -0
  387. /package/{components → dist/components}/table/index.d.ts +0 -0
  388. /package/{components → dist/components}/table/index.d.ts.map +0 -0
  389. /package/{components → dist/components}/table/index.js +0 -0
  390. /package/{components → dist/components}/table/table.d.ts +0 -0
  391. /package/{components → dist/components}/table/table.d.ts.map +0 -0
  392. /package/{components → dist/components}/table/table.js +0 -0
  393. /package/{components → dist/components}/table/table.js.map +0 -0
  394. /package/{components → dist/components}/table/table.types.d.ts +0 -0
  395. /package/{components → dist/components}/table/table.types.d.ts.map +0 -0
  396. /package/{components → dist/components}/text-rotate/index.d.ts +0 -0
  397. /package/{components → dist/components}/text-rotate/index.d.ts.map +0 -0
  398. /package/{components → dist/components}/text-rotate/text-rotate.d.ts +0 -0
  399. /package/{components → dist/components}/text-rotate/text-rotate.d.ts.map +0 -0
  400. /package/{components → dist/components}/text-rotate/text-rotate.js +0 -0
  401. /package/{components → dist/components}/text-rotate/text-rotate.js.map +0 -0
  402. /package/{components → dist/components}/timeline/index.d.ts +0 -0
  403. /package/{components → dist/components}/timeline/index.d.ts.map +0 -0
  404. /package/{components → dist/components}/timeline/timeline.d.ts +0 -0
  405. /package/{components → dist/components}/timeline/timeline.d.ts.map +0 -0
  406. /package/{components → dist/components}/timeline/timeline.js +0 -0
  407. /package/{components → dist/components}/timeline/timeline.js.map +0 -0
  408. /package/{components → dist/components}/timeline/timeline.types.d.ts +0 -0
  409. /package/{components → dist/components}/timeline/timeline.types.d.ts.map +0 -0
  410. /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts +0 -0
  411. /package/{components → dist/components}/toast/icons/ErrorIcon.d.ts.map +0 -0
  412. /package/{components → dist/components}/toast/icons/ErrorIcon.js +0 -0
  413. /package/{components → dist/components}/toast/icons/ErrorIcon.js.map +0 -0
  414. /package/{components → dist/components}/toast/icons/IconCircle.d.ts +0 -0
  415. /package/{components → dist/components}/toast/icons/IconCircle.d.ts.map +0 -0
  416. /package/{components → dist/components}/toast/icons/IconCircle.js +0 -0
  417. /package/{components → dist/components}/toast/icons/IconCircle.js.map +0 -0
  418. /package/{components → dist/components}/toast/icons/InfoIcon.d.ts +0 -0
  419. /package/{components → dist/components}/toast/icons/InfoIcon.d.ts.map +0 -0
  420. /package/{components → dist/components}/toast/icons/InfoIcon.js +0 -0
  421. /package/{components → dist/components}/toast/icons/InfoIcon.js.map +0 -0
  422. /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts +0 -0
  423. /package/{components → dist/components}/toast/icons/LoaderIcon.d.ts.map +0 -0
  424. /package/{components → dist/components}/toast/icons/LoaderIcon.js +0 -0
  425. /package/{components → dist/components}/toast/icons/LoaderIcon.js.map +0 -0
  426. /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts +0 -0
  427. /package/{components → dist/components}/toast/icons/SuccessIcon.d.ts.map +0 -0
  428. /package/{components → dist/components}/toast/icons/SuccessIcon.js +0 -0
  429. /package/{components → dist/components}/toast/icons/SuccessIcon.js.map +0 -0
  430. /package/{components → dist/components}/toast/icons/WarningIcon.d.ts +0 -0
  431. /package/{components → dist/components}/toast/icons/WarningIcon.d.ts.map +0 -0
  432. /package/{components → dist/components}/toast/icons/WarningIcon.js +0 -0
  433. /package/{components → dist/components}/toast/icons/WarningIcon.js.map +0 -0
  434. /package/{components → dist/components}/toast/icons/index.d.ts +0 -0
  435. /package/{components → dist/components}/toast/icons/index.d.ts.map +0 -0
  436. /package/{components → dist/components}/toast/index.d.ts +0 -0
  437. /package/{components → dist/components}/toast/index.d.ts.map +0 -0
  438. /package/{components → dist/components}/toast/toast.d.ts +0 -0
  439. /package/{components → dist/components}/toast/toast.d.ts.map +0 -0
  440. /package/{components → dist/components}/toast/toast.js +0 -0
  441. /package/{components → dist/components}/toast/toast.js.map +0 -0
  442. /package/{components → dist/components}/toast/toast.store.d.ts +0 -0
  443. /package/{components → dist/components}/toast/toast.store.d.ts.map +0 -0
  444. /package/{components → dist/components}/toast/toast.store.js +0 -0
  445. /package/{components → dist/components}/toast/toast.store.js.map +0 -0
  446. /package/{components → dist/components}/toast/toast.type.d.ts +0 -0
  447. /package/{components → dist/components}/toast/toast.type.d.ts.map +0 -0
  448. /package/{components → dist/components}/tooltip/index.d.ts +0 -0
  449. /package/{components → dist/components}/tooltip/index.d.ts.map +0 -0
  450. /package/{components → dist/components}/tooltip/tooltip.d.ts +0 -0
  451. /package/{components → dist/components}/tooltip/tooltip.d.ts.map +0 -0
  452. /package/{components → dist/components}/tooltip/tooltip.js +0 -0
  453. /package/{components → dist/components}/tooltip/tooltip.js.map +0 -0
  454. /package/{components → dist/components}/tooltip/tooltip.types.d.ts +0 -0
  455. /package/{components → dist/components}/tooltip/tooltip.types.d.ts.map +0 -0
  456. /package/{components → dist/components}/tour/index.d.ts +0 -0
  457. /package/{components → dist/components}/tour/index.d.ts.map +0 -0
  458. /package/{components → dist/components}/tour/tour.d.ts +0 -0
  459. /package/{components → dist/components}/tour/tour.types.d.ts +0 -0
  460. /package/{components → dist/components}/tour/tour.types.d.ts.map +0 -0
  461. /package/{components → dist/components}/upload/index.d.ts +0 -0
  462. /package/{components → dist/components}/upload/index.d.ts.map +0 -0
  463. /package/{components → dist/components}/upload/upload.d.ts +0 -0
  464. /package/{components → dist/components}/upload/upload.d.ts.map +0 -0
  465. /package/{components → dist/components}/upload/upload.js +0 -0
  466. /package/{components → dist/components}/upload/upload.js.map +0 -0
  467. /package/{components → dist/components}/upload/upload.types.d.ts +0 -0
  468. /package/{components → dist/components}/upload/upload.types.d.ts.map +0 -0
  469. /package/{components → dist/components}/z-index/index.d.ts +0 -0
  470. /package/{components → dist/components}/z-index/index.d.ts.map +0 -0
  471. /package/{components → dist/components}/z-index/z-index.context.d.ts +0 -0
  472. /package/{components → dist/components}/z-index/z-index.context.d.ts.map +0 -0
  473. /package/{components → dist/components}/z-index/z-index.context.js +0 -0
  474. /package/{components → dist/components}/z-index/z-index.context.js.map +0 -0
  475. /package/{components → dist/components}/z-index/z-index.d.ts +0 -0
  476. /package/{components → dist/components}/z-index/z-index.d.ts.map +0 -0
  477. /package/{components → dist/components}/z-index/z-index.js +0 -0
  478. /package/{components → dist/components}/z-index/z-index.js.map +0 -0
  479. /package/{components → dist/components}/z-index/z-index.store.d.ts +0 -0
  480. /package/{components → dist/components}/z-index/z-index.store.d.ts.map +0 -0
  481. /package/{components → dist/components}/z-index/z-index.store.js +0 -0
  482. /package/{components → dist/components}/z-index/z-index.store.js.map +0 -0
  483. /package/{components → dist/components}/z-index/z-index.types.d.ts +0 -0
  484. /package/{components → dist/components}/z-index/z-index.types.d.ts.map +0 -0
  485. /package/{components → dist/components}/z-index/z-index.types.js +0 -0
  486. /package/{lib.d.ts → dist/lib.d.ts} +0 -0
  487. /package/{lib.d.ts.map → dist/lib.d.ts.map} +0 -0
  488. /package/{lib.js → dist/lib.js} +0 -0
  489. /package/{type.d.ts → dist/type.d.ts} +0 -0
  490. /package/{type.d.ts.map → dist/type.d.ts.map} +0 -0
  491. /package/{utils → dist/utils}/cn.d.ts +0 -0
  492. /package/{utils → dist/utils}/cn.d.ts.map +0 -0
  493. /package/{utils → dist/utils}/cn.js +0 -0
  494. /package/{utils → dist/utils}/cn.js.map +0 -0
  495. /package/{utils → dist/utils}/element-tracker.js +0 -0
  496. /package/{utils → dist/utils}/element-tracker.js.map +0 -0
  497. /package/{utils → dist/utils}/helper.d.ts +0 -0
  498. /package/{utils → dist/utils}/helper.d.ts.map +0 -0
  499. /package/{utils → dist/utils}/helper.js +0 -0
  500. /package/{utils → dist/utils}/helper.js.map +0 -0
  501. /package/{utils → dist/utils}/hoc.js +0 -0
  502. /package/{utils → dist/utils}/hoc.js.map +0 -0
@@ -0,0 +1,531 @@
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { toast, Toaster } from 'solid-tom-ui';`
3
+ - **Exports**: `toast` (imperative API singleton), `Toaster` (optional config component), all toast type exports
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Imperative toast notification system — call `toast.success()`, `toast.error()` etc. from anywhere; `<Toaster>` is optional for customizing position and appearance
6
+ ```
7
+
8
+ ---
9
+
10
+ ## CORE CONCEPT
11
+
12
+ `toast` is a **fully imperative, zero-setup** notification API. No context provider or `<Toaster>` component is required — calling any `toast.*` method auto-mounts a container into `document.body` on first use.
13
+
14
+ The store is a **module-level singleton** (`createRoot`). All calls share the same reactive state across the entire app regardless of component tree.
15
+
16
+ ---
17
+
18
+ ## `toast` API REFERENCE
19
+
20
+ ### Signature
21
+
22
+ ```ts
23
+ toast(message, options?) → string // blank type
24
+ toast.success(message, options?) → string
25
+ toast.error(message, options?) → string
26
+ toast.info(message, options?) → string
27
+ toast.warning(message, options?) → string
28
+ toast.loading(message, options?) → string
29
+ toast.custom(message: (t: ToastData) => JSXElement, options?) → string
30
+ toast.dismiss(toastId?: string) → void
31
+ toast.remove(toastId?: string) → void
32
+ toast.pop(options?: PopShiftOptions) → void
33
+ toast.shift(options?: PopShiftOptions) → void
34
+ toast.promise<T>(promise, promiseOptions, toastOptions?) → Promise<T>
35
+ ```
36
+
37
+ All creation methods return the **toast ID** (`string`) which can be used for dismiss/remove/update.
38
+
39
+ ---
40
+
41
+ ## `ToastOptions`
42
+
43
+ | Field | Type | Default | Description |
44
+ | --------------- | ------------------------------------------------------------------------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------- |
45
+ | `duration` | `number` | see per-type table | Auto-dismiss delay in ms. `Infinity` = never auto-dismiss. |
46
+ | `position` | `ToastPosition` | `'top-right'` | Where this toast appears. Can override per-toast. |
47
+ | `icon` | `SolidComponent` | type-specific | Custom icon. Replaces built-in icon. Accepts string emoji, JSX element, or component. |
48
+ | `iconTheme` | `{ primary?: string; secondary?: string }` | — | Colors for built-in SVG icons. |
49
+ | `class` | `string` | — | Extra CSS class appended to `.sui-toast`. |
50
+ | `style` | `JSX.CSSProperties` | — | Inline styles on `.sui-toast`. |
51
+ | `ariaProps` | `{ role: 'status'\|'alert'; 'aria-live': 'assertive'\|'off'\|'polite' }` | `{ role:'status', 'aria-live':'polite' }` | ARIA attributes on the toast bar. |
52
+ | `unmountDelay` | `number` | `400` | Ms to wait after `visible=false` before removing from DOM (allows exit animation to complete). |
53
+ | `canPause` | `boolean` | `true` | Pause auto-dismiss timer on mouse hover; resume on mouse leave. |
54
+ | `showCloseIcon` | `boolean` | `true` | Show the X close button (appears on hover). |
55
+
56
+ ### Default durations per type
57
+
58
+ | Type | Duration |
59
+ | --------- | ---------- |
60
+ | `blank` | 3000ms |
61
+ | `success` | 3000ms |
62
+ | `error` | 3000ms |
63
+ | `info` | 3000ms |
64
+ | `warning` | 3000ms |
65
+ | `loading` | `Infinity` |
66
+ | `custom` | 3000ms |
67
+
68
+ ---
69
+
70
+ ## `ToastPosition` values
71
+
72
+ ```
73
+ 'top-left' | 'top-center' | 'top-right'
74
+ 'bottom-left' | 'bottom-center' | 'bottom-right'
75
+ ```
76
+
77
+ Default global position: `'top-right'`.
78
+
79
+ ---
80
+
81
+ ## `Message` type
82
+
83
+ ```ts
84
+ type Message = SolidComponent | ((toast: ToastData) => SolidComponent);
85
+ // SolidComponent = string | JSX.Element | (() => JSX.Element)
86
+ ```
87
+
88
+ - **String**: rendered as-is inside `<div class="flex-1 text-sm">`.
89
+ - **JSX.Element**: rendered directly.
90
+ - **Function**: called with the `ToastData` object → enables reactive content that reads `t.visible`, `t.paused`, `t.pauseDuration`.
91
+
92
+ For `toast.custom`, `message` is always `(t: ToastData) => JSXElement` — full control over rendering.
93
+
94
+ ---
95
+
96
+ ## `ToasterProps` — Optional `<Toaster>` component
97
+
98
+ ```ts
99
+ interface ToasterProps {
100
+ position?: ToastPosition; // Default position for all toasts (default: 'top-right')
101
+ toastOptions?: DefaultToastOptions; // Global defaults per type (not yet applied in impl — reserved)
102
+ gutter?: number; // Gap between toasts in px (default: 10)
103
+ containerStyle?: JSX.CSSProperties; // Style on the outer container div (not implemented in current render)
104
+ containerClassName?: string; // Class on the outer container div (not implemented in current render)
105
+ maxToasts?: number; // Max simultaneous toasts (not implemented — store uses 10)
106
+ }
107
+ ```
108
+
109
+ > `<Toaster>` is optional. If omitted, the container is auto-mounted with defaults when `toast.*` is first called. Mounting `<Toaster>` does NOT prevent the auto-mount — it just configures the `ToasterInternal` with custom props.
110
+
111
+ ---
112
+
113
+ ## `PromiseOptions<T>`
114
+
115
+ ```ts
116
+ interface PromiseOptions<T> {
117
+ loading: SolidComponent; // Message while promise is pending
118
+ success: SolidComponent | ((result: T) => SolidComponent); // Message on resolve
119
+ error: SolidComponent | ((error: any) => SolidComponent); // Message on reject
120
+ }
121
+ ```
122
+
123
+ `success` and `error` accept `ValueOrFunction` — pass a static value or a function receiving the resolved/rejected value.
124
+
125
+ ---
126
+
127
+ ## `PopShiftOptions`
128
+
129
+ ```ts
130
+ interface PopShiftOptions {
131
+ animate?: boolean; // default: true
132
+ }
133
+ ```
134
+
135
+ - `animate: true` (default) → calls `dismissPop/dismissShift` — sets `visible=false`, plays exit animation, then removes after `unmountDelay`.
136
+ - `animate: false` → calls `removePop/removeShift` — removes immediately from store with no animation.
137
+
138
+ ---
139
+
140
+ ## BEHAVIORAL RULES (inferred from implementation)
141
+
142
+ ### Auto-mount
143
+
144
+ `ensureContainer()` is called at the start of every toast creation method. Creates `#sui-toast-container` div and renders `<ToasterInternal />` into it via SolidJS `render()`. Runs **once** per page load (`containerMounted` flag). Subsequent calls are no-ops.
145
+
146
+ ### Toast store (singleton)
147
+
148
+ - Module-level singleton via `createRoot(createToastStore)`.
149
+ - Holds `toasts: Accessor<ToastData[]>` and `pausedAt: Accessor<number | null>`.
150
+ - New toasts are **prepended** (most recent first) capped at **10** (`MAX_TOASTS`).
151
+ - Older toasts beyond the limit are sliced off immediately.
152
+ - `upsertToast`: if a toast with the same id exists, merges updates into it (sets `updatedAt`). Otherwise prepends.
153
+
154
+ ### dismiss vs remove
155
+
156
+ ```
157
+ toast.dismiss(id?)
158
+ → sets visible=false on matching toast(es)
159
+ → triggers exit animation (unmountDelay ms) then auto-removes via removeToast
160
+
161
+ toast.remove(id?)
162
+ → immediately filters toast(es) from array
163
+ → NO animation
164
+ ```
165
+
166
+ Omitting `id` from either method affects **all** toasts.
167
+
168
+ ### pop vs shift
169
+
170
+ ```
171
+ toast.pop() → targets the OLDEST visible toast (last in array, index from end)
172
+ toast.shift() → targets the NEWEST visible toast (first visible, index from start)
173
+ ```
174
+
175
+ Array order: newest first (`[toast5, toast4, toast3, toast2, toast1]`).
176
+
177
+ - `pop` → traverses from end → oldest = `toast1`.
178
+ - `shift` → traverses from start → newest = `toast5`.
179
+
180
+ ### Pause on hover
181
+
182
+ When `canPause=true` (default):
183
+
184
+ - `mouseenter` on `ToastWrapper` → pauses dismiss timer; records remaining time.
185
+ - `mouseleave` → restarts timer with remaining time (not original duration).
186
+ - Remaining time is tracked as a local variable in `ToastWrapper` (not in store).
187
+
188
+ ### toast.promise lifecycle
189
+
190
+ ```
191
+ 1. Creates loading toast (duration=Infinity by default from options)
192
+ 2. On promise resolve → updateToast(id, { type:'success', message: resolved, icon: undefined })
193
+ 3. Schedules dismissToast(id) after toastOptions.duration ?? 3000ms
194
+ 4. On promise reject → updateToast(id, { type:'error', message: error, icon: undefined })
195
+ 5. Schedules dismissToast(id) after toastOptions.duration ?? 3000ms
196
+ 6. Re-throws the error
197
+ ```
198
+
199
+ ### Position grouping
200
+
201
+ `ToasterInternal` renders 6 `PositionContainer` components (one per position). Each filters from `toastStore.toasts()`. Per-toast `position` field overrides the `Toaster`'s default position.
202
+
203
+ ### Animation (Web Animations API)
204
+
205
+ **Enter** (when `visible` becomes `true`):
206
+
207
+ ```
208
+ translate3d(0, direction*-200%, 0) scale(0.6) opacity:0.5
209
+ → translate3d(0,0,0) scale(1) opacity:1
210
+ duration: 350ms, easing: cubic-bezier(.21,1.02,.73,1)
211
+ ```
212
+
213
+ **Exit** (when `visible` becomes `false`):
214
+
215
+ ```
216
+ translate3d(0,0,-1px) scale(1) opacity:1
217
+ → translate3d(0, direction*-150%, -1px) scale(0.4) opacity:0
218
+ duration: 400ms, easing: cubic-bezier(.06,.71,.55,1)
219
+ ```
220
+
221
+ `direction`: `+1` for top positions (slides up), `-1` for bottom positions (slides down).
222
+
223
+ ### Close button positioning
224
+
225
+ ```
226
+ position includes 'right' → isCloseOnRight = false → close btn at -left-2
227
+ position does NOT include 'right' → isCloseOnRight = true → close btn at -right-2
228
+ ```
229
+
230
+ The close button is absolutely positioned at `-top-2` and appears on hover (`opacity-0` → `opacity-100`).
231
+
232
+ ---
233
+
234
+ ## USAGE PATTERNS
235
+
236
+ ### 1. Basic types (no setup needed)
237
+
238
+ ```tsx
239
+ import { toast } from 'solid-tom-ui';
240
+
241
+ toast('Plain notification');
242
+ toast.success('Operation completed!');
243
+ toast.error('Something went wrong.');
244
+ toast.info('Just so you know...');
245
+ toast.warning('Be careful!');
246
+ toast.loading('Fetching data...'); // duration=Infinity, dismiss manually
247
+ ```
248
+
249
+ ### 2. Capture id for later control
250
+
251
+ ```tsx
252
+ const id = toast.loading('Saving...');
253
+
254
+ // Later:
255
+ toast.dismiss(id); // animate out
256
+ toast.remove(id); // instant remove
257
+ ```
258
+
259
+ ### 3. Custom position per toast
260
+
261
+ ```tsx
262
+ toast.success('Saved!', { position: 'bottom-center' });
263
+ toast.error('Failed!', { position: 'top-left' });
264
+ ```
265
+
266
+ ### 4. Custom duration
267
+
268
+ ```tsx
269
+ toast('Quick!', { duration: 1000 }); // 1 second
270
+ toast('Slow...', { duration: 8000 }); // 8 seconds
271
+ toast('Until dismissed', { duration: Infinity }); // never auto-dismiss
272
+ ```
273
+
274
+ ### 5. Custom icon
275
+
276
+ ```tsx
277
+ // Emoji string
278
+ toast('Fire alert!', { icon: '🔥' });
279
+
280
+ // JSX element
281
+ toast.success('Done!', { icon: <MyCheckIcon size={20} /> });
282
+ ```
283
+
284
+ ### 6. Custom icon colors (built-in icons)
285
+
286
+ ```tsx
287
+ toast.success('Dark theme', {
288
+ iconTheme: { primary: '#38bdf8', secondary: '#1f2937' },
289
+ style: { background: '#1f2937', color: '#f3f4f6' },
290
+ });
291
+ ```
292
+
293
+ ### 7. JSX message content
294
+
295
+ ```tsx
296
+ toast(
297
+ <div>
298
+ <strong>Upload complete</strong>
299
+ <p class="text-sm text-gray-500">3 files uploaded successfully</p>
300
+ </div>,
301
+ { duration: 4000 },
302
+ );
303
+ ```
304
+
305
+ ### 8. Message as function (reactive, accesses ToastData)
306
+
307
+ ```tsx
308
+ toast.success(t => `Toast ID: ${t.id}`, { duration: 5000 });
309
+ ```
310
+
311
+ ### 9. toast.promise — async flow
312
+
313
+ ```tsx
314
+ // Static messages
315
+ toast.promise(fetchData(), {
316
+ loading: 'Loading...',
317
+ success: 'Data loaded!',
318
+ error: 'Failed to load.',
319
+ });
320
+
321
+ // Dynamic messages using resolved/rejected value
322
+ toast.promise(
323
+ saveUser(userData),
324
+ {
325
+ loading: 'Saving user...',
326
+ success: user => `Welcome, ${user.name}!`,
327
+ error: err => `Error: ${err.message}`,
328
+ },
329
+ { duration: 4000 }, // how long success/error stays visible
330
+ );
331
+
332
+ // Await the promise result
333
+ const result = await toast.promise(apiCall(), { loading: '...', success: 'Done', error: 'Failed' });
334
+ ```
335
+
336
+ ### 10. Fully custom toast (`toast.custom`)
337
+
338
+ ```tsx
339
+ // Receives ToastData, full control over rendering
340
+ toast.custom(
341
+ t => (
342
+ <div class="flex items-center gap-3 rounded-lg bg-white px-4 py-3 shadow-lg">
343
+ <span>Custom notification</span>
344
+ <button onClick={() => toast.dismiss(t.id)}>✕</button>
345
+ </div>
346
+ ),
347
+ { duration: 5000 },
348
+ );
349
+ ```
350
+
351
+ ### 11. Custom toast with progress bar (using t.paused, t.pauseDuration)
352
+
353
+ ```tsx
354
+ const duration = 6000;
355
+
356
+ toast.custom(
357
+ t => {
358
+ const [life, setLife] = createSignal(100);
359
+ const startTime = Date.now();
360
+
361
+ createEffect(() => {
362
+ if (t.paused) return;
363
+ const interval = setInterval(() => {
364
+ const elapsed = Date.now() - startTime - t.pauseDuration;
365
+ setLife(100 - (elapsed / duration) * 100);
366
+ }, 50);
367
+ onCleanup(() => clearInterval(interval));
368
+ });
369
+
370
+ return (
371
+ <div class="min-w-[300px] rounded-lg bg-white p-4 shadow-lg">
372
+ <p>Processing...</p>
373
+ <div class="mt-2 h-1 w-full rounded bg-gray-200">
374
+ <div class="h-1 rounded bg-blue-500" style={{ width: `${life()}%` }} />
375
+ </div>
376
+ </div>
377
+ );
378
+ },
379
+ { duration, canPause: true },
380
+ );
381
+ ```
382
+
383
+ ### 12. Dismiss all / remove all
384
+
385
+ ```tsx
386
+ toast.dismiss(); // animate out all
387
+ toast.remove(); // instant remove all
388
+ ```
389
+
390
+ ### 13. pop and shift
391
+
392
+ ```tsx
393
+ // Remove oldest visible toast (with animation)
394
+ toast.pop();
395
+
396
+ // Remove oldest visible toast (instant, no animation)
397
+ toast.pop({ animate: false });
398
+
399
+ // Remove newest visible toast (with animation)
400
+ toast.shift();
401
+
402
+ // Remove newest visible toast (instant)
403
+ toast.shift({ animate: false });
404
+ ```
405
+
406
+ ### 14. Disable hover-pause
407
+
408
+ ```tsx
409
+ toast.info('No pause on hover', { canPause: false });
410
+ ```
411
+
412
+ ### 15. Hide close button
413
+
414
+ ```tsx
415
+ toast.loading('Processing (no X)...', { showCloseIcon: false });
416
+ ```
417
+
418
+ ### 16. Custom class and style
419
+
420
+ ```tsx
421
+ toast.error('Red Alert!', {
422
+ class: 'border-2 border-red-500',
423
+ style: { background: '#fef2f2', color: '#991b1b' },
424
+ });
425
+ ```
426
+
427
+ ### 17. Optional `<Toaster>` for global config
428
+
429
+ ```tsx
430
+ // In your app root (optional — only needed to set non-default global position/gutter)
431
+ import { Toaster } from 'solid-tom-ui';
432
+
433
+ <Toaster position="bottom-right" gutter={16} />;
434
+ ```
435
+
436
+ ### 18. Stress test / max toasts
437
+
438
+ ```tsx
439
+ // Only 10 toasts are shown simultaneously; oldest are dropped when limit exceeded
440
+ for (let i = 0; i < 15; i++) {
441
+ toast.success(`Toast #${i + 1}`, { duration: 8000 });
442
+ }
443
+ // Toasts 11-15 push out toasts 1-5 from the store
444
+ ```
445
+
446
+ ---
447
+
448
+ ## CSS CLASSES (public API for customization)
449
+
450
+ | Class | Applied to |
451
+ | ----------------------- | ------------------------------------------------------------------ |
452
+ | `sui-toast` | Toast bar `<div>` (icon + message + close) |
453
+ | `sui-toast-with-close` | Root `<div>` when `showCloseIcon=true` (adds `position: relative`) |
454
+ | `sui-toast-close-btn` | Close button `<div>` (absolutely positioned, opacity-0 by default) |
455
+ | `sui-toast-close-right` | Close button when NOT on a right-position toast (`-right-2`) |
456
+ | `sui-toast-close-left` | Close button when on a right-position toast (`-left-2`) |
457
+
458
+ Custom classes can be appended via `options.class` (string, appended to `.sui-toast`).
459
+
460
+ > Note: `sui-toast-with-close` is defined in CSS but the `ToastBar` component does not currently add it — close button positioning relies on `position: relative` on `.sui-toast` itself via the absolute `sui-toast-close-btn`.
461
+
462
+ ---
463
+
464
+ ## `ToastData` — Internal toast object (available in `toast.custom` and `Message` functions)
465
+
466
+ | Field | Type | Description |
467
+ | --------------- | -------------------------------- | --------------------------------------------------------------------------------- |
468
+ | `id` | `string` | Unique ID (from `createUniqueId`). Use with `toast.dismiss(t.id)`. |
469
+ | `type` | `ToastType` | `'success' \| 'error' \| 'info' \| 'warning' \| 'loading' \| 'blank' \| 'custom'` |
470
+ | `message` | `Message` | Original message passed to the creator. |
471
+ | `visible` | `boolean` | `true` = shown, `false` = exit animation playing. |
472
+ | `paused` | `boolean` | `true` when hover-paused. |
473
+ | `pauseDuration` | `number` | Total accumulated ms the toast has been paused. Use to offset timers. |
474
+ | `duration` | `number` | Auto-dismiss duration in ms. |
475
+ | `position` | `ToastPosition` | Effective position of this toast. |
476
+ | `createdAt` | `number` | `Date.now()` at creation. |
477
+ | `updatedAt` | `number \| undefined` | `Date.now()` at last upsert/update. |
478
+ | `canPause` | `boolean` | Whether hover pausing is active. |
479
+ | `showCloseIcon` | `boolean` | Whether X button is rendered. |
480
+ | `icon` | `SolidComponent \| undefined` | Custom icon override. |
481
+ | `iconTheme` | `IconTheme \| undefined` | Colors for built-in icons. |
482
+ | `style` | `JSX.CSSProperties \| undefined` | Inline styles on toast bar. |
483
+ | `class` | `string \| undefined` | Extra class on toast bar. |
484
+
485
+ ---
486
+
487
+ ## CONSTRAINTS & EDGE CASES
488
+
489
+ - **No setup required**: `toast.*` auto-mounts the container on first call. Never call `toast` before `document.body` exists (i.e., not during SSR without a DOM).
490
+ - **Singleton store**: all calls share one store. There is no per-component scope. Calling `toast.remove()` clears toasts from ALL components.
491
+ - **Max 10 toasts**: hardcoded `MAX_TOASTS = 10` in the store. Toasts beyond this limit are sliced off the end (oldest dropped). `ToasterProps.maxToasts` is defined but not connected to the store limit.
492
+ - **`toast.loading` is `duration=Infinity`** by default — it will never auto-dismiss. Always call `toast.dismiss(id)` when the operation completes, or use `toast.promise`.
493
+ - **`toast.promise` re-throws on error**: it catches the rejection, updates the toast to error state, then `throw error` — callers must handle the rejection themselves.
494
+ - **`toast.promise` uses `toastOptions.duration ?? 3000`** for the success/error display window, regardless of the type's default duration. Pass `{ duration: 5000 }` as `toastOptions` for a longer window.
495
+ - **`toast.custom` message signature is different**: must be `(t: ToastData) => JSXElement`, not `SolidComponent`. The `t` parameter gives access to `t.id`, `t.visible`, `t.paused`, `t.pauseDuration`.
496
+ - **Close button position depends on toast position**, not on layout: right-side positions (`top-right`, `bottom-right`) get `-left-2`; all others get `-right-2`.
497
+ - **`Toaster` component must be mounted before first `toast.*` call** if you want custom config. If `toast.*` fires first, the auto-mounted `ToasterInternal` uses defaults and ignores a later `<Toaster>` (because `containerMounted` is already `true`).
498
+ - **`unmountDelay` default is 400ms** — must be ≥ exit animation duration (400ms) for animations to complete before DOM removal.
499
+ - **`pop` targets oldest, `shift` targets newest**: in the store array (newest-first), `pop` scans from the end, `shift` from the start.
500
+ - **Pause resume uses remaining time**, not original duration — hover-pause is accurate to the ms.
501
+ - Custom toasts using `createSignal`/`createEffect` inside `toast.custom` are valid — they run in a reactive scope because `render()` creates one. Always use `onCleanup` to clear intervals.
502
+
503
+ ---
504
+
505
+ ## DO / DON'T
506
+
507
+ **DO**
508
+
509
+ - Call `toast.*` directly from event handlers, async functions, or anywhere in the app — no setup needed.
510
+ - Save the returned id when you need to dismiss/update a specific toast: `const id = toast.loading(...)`.
511
+ - Use `toast.promise` for async operations — it handles loading → success/error transition automatically.
512
+ - Pass `duration: Infinity` for toasts that should stay until explicitly dismissed.
513
+ - Use `toast.custom(t => ...)` for complex interactive notifications (progress bars, action buttons, reactive content).
514
+ - Access `t.paused` and `t.pauseDuration` inside `toast.custom` to build accurate progress indicators.
515
+ - Use `toast.dismiss()` (no id) to clear all toasts, e.g., on route navigation.
516
+ - Import from the barrel: `import { toast } from 'solid-tom-ui'`.
517
+
518
+ **DON'T**
519
+
520
+ - Don't add `<Toaster>` expecting it to clear existing auto-mounted container — `containerMounted` prevents double-mounting. Place `<Toaster>` before any `toast.*` calls if you need custom config.
521
+ - Don't use `toast.remove()` when you want the exit animation — use `toast.dismiss()` instead.
522
+ - Don't forget to dismiss `toast.loading` — it has `duration: Infinity` and will stay forever without manual dismissal or `toast.promise`.
523
+ - Don't mutate `ToastData` directly — always use `toastStore.updateToast(id, updates)` (or `toast.dismiss`/`toast.remove` via the public API).
524
+ - Don't pass `(t: ToastData) => JSX` to `toast.success/error/info/warning` — that pattern is only valid for `toast.custom`. For other types, the function receives `ToastData` but must return `SolidComponent`, not necessarily `JSXElement`.
525
+ - Don't import `ToastExample` in production — it is a demo component only (not exported from `solid-tom-ui`).
526
+ - Don't rely on more than 10 simultaneous toasts — extras are silently dropped from the store.
527
+ ---
528
+
529
+ ## Component Conventions
530
+
531
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `ts01`, `ts02`) per project convention.