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,191 @@
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { CodePreview } from '@/components/doc/CodePreview';`
3
+ - **Export**: `CodePreview` (named export)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Internal documentation UI — the `doc` folder builds the library's documentation pages; NOT general-purpose UI components; NOT exported from `solid-tom-ui`
6
+
7
+ ## PURPOSE
8
+ Renders a tabbed panel with two views:
9
+ 1. **Preview tab**: renders the given SolidJS component visually.
10
+ 2. **Code tab**: shows syntax-highlighted TypeScript/TSX source code with a copy button.
11
+
12
+ ## TYPE SIGNATURE
13
+ ```typescript
14
+ import { CodePreview } from 'solid-tom-ui';
15
+ import { Component } from 'solid-js';
16
+
17
+ <CodePreview
18
+ preview={Component<any>} // REQUIRED: SolidJS component to render as preview
19
+ code={string} // REQUIRED: source code string to display (raw TSX/TS)
20
+ title?={string} // optional title (currently not rendered in UI)
21
+ language?={string} // highlight.js language ID; default: 'typescript'
22
+ classNames?={{
23
+ previewBlock?: string; // extra class on the preview container div
24
+ }}
25
+ />
26
+ ```
27
+
28
+ ## USAGE PATTERN
29
+ ```tsx
30
+ import { CodePreview } from '@/components/doc/CodePreview';
31
+ import { MyExampleComponent } from './my-component.example';
32
+
33
+ const exampleCode = `
34
+ import { MyComponent } from '@/components/my-component';
35
+
36
+ const Example = () => (
37
+ <MyComponent color="primary" size="md">
38
+ Hello
39
+ </MyComponent>
40
+ );
41
+ `.trim();
42
+
43
+ <CodePreview
44
+ preview={MyExampleComponent}
45
+ code={exampleCode}
46
+ />
47
+ ```
48
+
49
+ ## With custom preview container class
50
+ ```tsx
51
+ <CodePreview
52
+ preview={DarkBgExample}
53
+ code={darkCode}
54
+ classNames={{ previewBlock: 'bg-gray-900 min-h-48' }}
55
+ />
56
+ ```
57
+
58
+ ## CONSTRAINTS
59
+ - `preview` must be a **component reference** (not rendered JSX). It is rendered via `<Dynamic component={props.preview} />`.
60
+ - `code` is formatted with a simple indentation normalizer (not a full prettier formatter). Pass clean, consistently-indented code strings.
61
+ - The copy button uses `navigator.clipboard.writeText` — only works in HTTPS or localhost contexts.
62
+ - `title` prop exists in the type but is not rendered in the current implementation.
63
+ - Syntax highlighting only works for languages registered with `hljs`. Currently only `typescript` is registered.
64
+
65
+ ### ANTI-PATTERNS
66
+ ```tsx
67
+ // ❌ Passing rendered JSX as preview
68
+ <CodePreview preview={<MyComponent />} code={...} /> // Wrong
69
+ // ✅ Pass component reference
70
+ <CodePreview preview={MyComponent} code={...} />
71
+
72
+ // ❌ Passing a different language without registering it with hljs
73
+ <CodePreview preview={CssExample} code={cssCode} language="css" />
74
+ // Only "typescript" is registered; other languages fall back to plain text
75
+ ```
76
+
77
+ ---
78
+
79
+ ## DocsNav
80
+
81
+ ### IDENTITY
82
+ - **Import**: `@/components/doc/DocsNav`
83
+ - **Export**: `DocsNav` (named export)
84
+ - **Framework**: SolidJS + `@solidjs/router`
85
+
86
+ ### PURPOSE
87
+ Sidebar navigation component for the documentation site. Groups doc entries by category and renders active-state links using `@solidjs/router`'s `<A>` component.
88
+
89
+ ### CURRENT STATUS
90
+ > **⚠️ DocsNav currently renders an empty fragment (`<></>`)**. The component body is disabled (unreachable code after the early `return <></>`). It is a work-in-progress and not functional.
91
+
92
+ ## TYPE SIGNATURE
93
+ ```typescript
94
+ import { DocsNav } from '@/components/doc/DocsNav';
95
+
96
+ interface DocsNavProps {
97
+ docs?: DocInfo[]; // list of doc entries; falls back to global DOCS_TSX if omitted
98
+ }
99
+
100
+ <DocsNav docs?={DocInfo[]} />
101
+ ```
102
+
103
+ ---
104
+
105
+ ## TableOfContents
106
+
107
+ ### IDENTITY
108
+ - **Import**: `@/components/doc/TableOfContents`
109
+ - **Export**: `TableOfContents` (named export), `Heading` (exported interface)
110
+ - **Framework**: SolidJS
111
+
112
+ ### PURPOSE
113
+ Sticky right-side table of contents. Renders a list of heading anchors. Clicking a heading scrolls the nearest `<main>` container to that heading smoothly.
114
+
115
+ ## TYPE SIGNATURE
116
+ ```typescript
117
+ import { TableOfContents, Heading } from '@/components/doc/TableOfContents';
118
+
119
+ interface Heading {
120
+ id: string; // DOM element ID to scroll to
121
+ text: string; // display text
122
+ level: number; // heading level (2 = h2, 3 = h3, etc.)
123
+ }
124
+
125
+ <TableOfContents
126
+ headings={Heading[]} // REQUIRED: array of heading descriptors
127
+ />
128
+ ```
129
+
130
+ ### BEHAVIOR
131
+ - Renders nothing when `headings` is empty (wrapped in `<Show when={props.headings.length > 0}>`).
132
+ - Scroll target is found via `document.getElementById(heading.id)`.
133
+ - Scrolls the closest `<main>` ancestor (with 80px top offset). Falls back to `scrollIntoView` if no `<main>` found.
134
+ - `level === 2` → `font-medium text-gray-700` (h2-level, bold)
135
+ - `level >= 3` → `ml-4 text-gray-600` (h3+, indented)
136
+
137
+ ## USAGE PATTERN
138
+ ```tsx
139
+ import { TableOfContents, Heading } from '@/components/doc/TableOfContents';
140
+
141
+ const headings: Heading[] = [
142
+ { id: 'installation', text: 'Installation', level: 2 },
143
+ { id: 'basic-usage', text: 'Basic Usage', level: 2 },
144
+ { id: 'variants', text: 'Variants', level: 3 },
145
+ { id: 'api', text: 'API Reference', level: 2 },
146
+ ];
147
+
148
+ // Typically placed in a sticky right sidebar
149
+ <aside class="w-64 shrink-0">
150
+ <TableOfContents headings={headings} />
151
+ </aside>
152
+ ```
153
+
154
+ ### GENERATING HEADINGS FROM MARKDOWN
155
+ When parsing markdown for headings, produce objects matching the `Heading` interface:
156
+ ```typescript
157
+ // Example: parse h2 and h3 headings from markdown text
158
+ const parseHeadings = (markdown: string): Heading[] => {
159
+ const lines = markdown.split('\n');
160
+ return lines
161
+ .filter(line => line.startsWith('## ') || line.startsWith('### '))
162
+ .map(line => {
163
+ const level = line.startsWith('### ') ? 3 : 2;
164
+ const text = line.replace(/^#{2,3}\s/, '');
165
+ const id = text.toLowerCase().replace(/\s+/g, '-').replace(/[^\w-]/g, '');
166
+ return { id, text, level };
167
+ });
168
+ };
169
+ ```
170
+
171
+ ## CONSTRAINTS
172
+ - Each heading's `id` must match an actual DOM element's `id` attribute in the page.
173
+ - The scroll offset is hardcoded at 80px (to account for sticky headers).
174
+ - Only works when rendered inside or near a `<main>` element ancestor.
175
+
176
+ ---
177
+
178
+ ## DECISION RULES — Which doc component to use?
179
+
180
+ | Need | Component |
181
+ |------|-----------|
182
+ | Show a live preview + source code for a component example | `CodePreview` |
183
+ | Sidebar navigation list of doc pages | `DocsNav` (currently disabled/WIP) |
184
+ | Right-side table of contents for a doc page | `TableOfContents` |
185
+ ---
186
+
187
+ ## Component Conventions
188
+
189
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `dc01`, `dc02`) per project convention.
190
+
191
+ > **Unique IDs**: if this component needs to generate HTML `id` attributes, always use `createUniqueId()` from `solid-js` — never `Math.random()` or `Date.now()`.
@@ -0,0 +1,157 @@
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { Drawer } from 'solid-tom-ui';`
3
+ - **Exports**: `Drawer` (named export), `DrawerType`, `DrawerPlacement` (type exports)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Slide-in panel (drawer) from any edge (left/right/top/bottom) with backdrop overlay, optional blur, close button, and header/footer slots
6
+
7
+ ---
8
+
9
+ ## PROP REFERENCE (`DrawerType`)
10
+
11
+ | Prop | Type | Default | Description |
12
+ |---|---|---|---|
13
+ | `open` | `boolean` | — | Controls visibility. Required. |
14
+ | `onClose` | `() => void` | `() => {}` | Callback fired on close (overlay click, X button). Must set `open` to `false`. |
15
+ | `placement` | `DrawerPlacement` | `'left'` | Which side the panel slides in from. |
16
+ | `width` | `string` | — | Panel width for `left`/`right` placements. Any CSS value (`'320px'`, `'40vw'`). |
17
+ | `height` | `string` | — | Panel height for `top`/`bottom` placements. Any CSS value (`'300px'`, `'50vh'`). |
18
+ | `mask` | `boolean` | `true` | Show backdrop overlay. |
19
+ | `maskBlur` | `boolean` | `false` | Add `backdrop-blur` to overlay. |
20
+ | `closable` | `boolean` | `true` | Show the X close button in the top-right corner. |
21
+ | `closeOnOutsideClick` | `boolean` | `true` | Click overlay to close. |
22
+ | `header` | `SolidComponent` | — | JSX rendered in the header slot (with bottom border). |
23
+ | `body` | `SolidComponent` | — | JSX rendered in the scrollable body slot. |
24
+ | `footer` | `SolidComponent` | — | JSX rendered in the footer slot (with top border). |
25
+ | `preRender` | `boolean` | `false` | Always mount in DOM; hide with `display:none` when closed. |
26
+ | `class` | `Partial<Record<'wrapper'\|'panel'\|'header'\|'body'\|'footer'\|'closeButton', string>>` | — | Override classes on specific elements. |
27
+
28
+ ### `DrawerPlacement` values
29
+
30
+ ```ts
31
+ 'left' | 'right' | 'top' | 'bottom'
32
+ ```
33
+
34
+ ---
35
+
36
+ ## USAGE PATTERNS
37
+
38
+ ### 1. Minimal
39
+
40
+ ```tsx
41
+ const [open, setOpen] = createSignal(false);
42
+
43
+ <Button onClick={() => setOpen(true)}>Open</Button>
44
+ <Drawer
45
+ open={open()}
46
+ onClose={() => setOpen(false)}
47
+ body={() => <p>Drawer content</p>}
48
+ />
49
+ ```
50
+
51
+ ### 2. With header, body, footer
52
+
53
+ ```tsx
54
+ <Drawer
55
+ open={open()}
56
+ onClose={() => setOpen(false)}
57
+ placement="right"
58
+ header={() => <span class="text-base font-semibold">Settings</span>}
59
+ body={() => <p>Body content here.</p>}
60
+ footer={() => (
61
+ <div class="flex justify-end gap-2">
62
+ <Button variant="outline" onClick={() => setOpen(false)}>Cancel</Button>
63
+ <Button variant="solid" color="primary" onClick={handleSave}>Save</Button>
64
+ </div>
65
+ )}
66
+ />
67
+ ```
68
+
69
+ ### 3. Custom size
70
+
71
+ ```tsx
72
+ // Horizontal drawer
73
+ <Drawer open={open()} onClose={() => setOpen(false)} placement="left" width="480px" ... />
74
+
75
+ // Vertical drawer
76
+ <Drawer open={open()} onClose={() => setOpen(false)} placement="bottom" height="360px" ... />
77
+ ```
78
+
79
+ ### 4. No overlay
80
+
81
+ ```tsx
82
+ <Drawer
83
+ open={open()}
84
+ onClose={() => setOpen(false)}
85
+ mask={false}
86
+ closeOnOutsideClick={false}
87
+ body={() => <p>Only closable via X button.</p>}
88
+ />
89
+ ```
90
+
91
+ ### 5. Blur overlay
92
+
93
+ ```tsx
94
+ <Drawer
95
+ open={open()}
96
+ onClose={() => setOpen(false)}
97
+ maskBlur
98
+ body={() => <p>Background is blurred.</p>}
99
+ />
100
+ ```
101
+
102
+ ### 6. preRender — preserve state between open/close
103
+
104
+ ```tsx
105
+ <Drawer
106
+ open={open()}
107
+ onClose={() => setOpen(false)}
108
+ preRender={true}
109
+ body={() => <ExpensiveForm />}
110
+ />
111
+ ```
112
+
113
+ ### 7. Custom class overrides
114
+
115
+ ```tsx
116
+ <Drawer
117
+ open={open()}
118
+ onClose={() => setOpen(false)}
119
+ class={{ panel: 'rounded-r-2xl', header: 'bg-primary/5' }}
120
+ body={() => <div />}
121
+ />
122
+ ```
123
+
124
+ ---
125
+
126
+ ## BEHAVIORAL RULES
127
+
128
+ - **Fully controlled**: parent must hold the `open` signal and update it in `onClose`.
129
+ - **Portal rendering**: panel renders in `document.body` via `ZIndex` → unaffected by ancestor `overflow:hidden`.
130
+ - **Scroll lock**: body scroll is blocked while drawer is open (via `ZIndex blockScroll`).
131
+ - **Z-index**: uses `ZIndexType.MODAL` (base 1000) — same stacking group as Modal.
132
+ - **Animation**: CSS `@keyframes` slide-in on mount. No close animation (panel unmounts on `open=false` when `preRender=false`).
133
+ - **`preRender=false`** (default): component unmounts when closed → state resets on next open.
134
+ - **`preRender=true`**: component stays mounted → state preserved; hidden via `display:none`.
135
+
136
+ ---
137
+
138
+ ## DO / DON'T
139
+
140
+ **DO**
141
+ - Always pair `open={signal()}` with `onClose={() => setSignal(false)}`.
142
+ - Pass `body`, `header`, `footer` as functions `() => <JSX>` to defer evaluation.
143
+ - Use `width` for left/right drawers and `height` for top/bottom drawers.
144
+ - Import from barrel: `import { Drawer } from 'solid-tom-ui'`.
145
+
146
+ **DON'T**
147
+ - Don't leave `onClose` as a no-op — the drawer won't close reactively.
148
+ - Don't use `ComponentDrawer` directly unless you need the raw unguarded component.
149
+ - Don't set both `width` and `height` — only one applies based on `placement`.
150
+ - Don't import `DrawerExample` in production — it's a demo-only component.
151
+ ---
152
+
153
+ ## Component Conventions
154
+
155
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `dr01`, `dr02`) per project convention.
156
+
157
+ > **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,198 @@
1
+ ## COMPONENT IDENTITY
2
+ - **Import**: `import { Dropdown } from 'solid-tom-ui';`
3
+ - **Export**: `Dropdown` (named export)
4
+ - **Framework**: SolidJS
5
+ - **Purpose**: Dropdown that renders content into `document.body` via Portal; always visible above overflow-hidden containers; singleton behavior (only one open at a time)
6
+
7
+ ## Props
8
+
9
+ | Prop | Type | Default | Description |
10
+ |------|------|---------|-------------|
11
+ | `triggerElement` | `SolidComponent` | — | Element rendered as the clickable trigger |
12
+ | `open` | `boolean` | `undefined` | Controlled mode: pass `true`/`false` to manage state externally |
13
+ | `position` | `'top' \| 'bottom' \| 'left' \| 'right'` | `'bottom'` | Which side the content appears on |
14
+ | `align` | `'start' \| 'center' \| 'end'` | `'start'` | Alignment along the cross axis |
15
+ | `blockScroll` | `boolean` | `false` | Lock page scroll while dropdown is open |
16
+ | `zIndex` | `number` | — | Override the automatic z-index |
17
+ | `class.anchor` | `string` | — | Class on the content anchor wrapper |
18
+ | `class.trigger` | `string` | — | Class on the trigger wrapper div |
19
+ | `class.content` | `string` | — | Class on the content wrapper div |
20
+ | `ref` | `HTMLDivElement \| ((el) => void)` | — | Ref to the trigger div |
21
+
22
+ ## Basic Usage
23
+
24
+ ```tsx
25
+ <Dropdown triggerElement={<button class="btn btn-sm">Open</button>}>
26
+ <div class="bg-base-100 rounded-lg shadow-lg px-4 py-3 min-w-40">
27
+ <p>Dropdown content</p>
28
+ </div>
29
+ </Dropdown>
30
+ ```
31
+
32
+ ### With position and alignment
33
+
34
+ ```tsx
35
+ <Dropdown
36
+ position="top"
37
+ align="end"
38
+ triggerElement={<button class="btn btn-sm">Open ↑</button>}
39
+ >
40
+ <div class="bg-base-100 rounded-lg shadow-lg px-4 py-3">
41
+ Top-end positioned
42
+ </div>
43
+ </Dropdown>
44
+ ```
45
+
46
+ ### Controlled mode
47
+
48
+ ```tsx
49
+ const [open, setOpen] = createSignal(false);
50
+
51
+ <button class="btn btn-sm" onClick={() => setOpen(v => !v)}>Toggle</button>
52
+ <Dropdown
53
+ open={open()}
54
+ triggerElement={<div class="border rounded px-3 py-1">Trigger</div>}
55
+ >
56
+ <div class="bg-base-100 rounded-lg shadow-lg px-4 py-3">
57
+ <button class="btn btn-xs btn-ghost" onClick={() => setOpen(false)}>Close</button>
58
+ </div>
59
+ </Dropdown>
60
+ ```
61
+
62
+ ### Inside `overflow-hidden` container
63
+
64
+ ```tsx
65
+ // Portal mode escapes overflow-hidden — content is always visible
66
+ <div class="overflow-hidden h-16 w-48 border rounded flex items-center justify-center">
67
+ <Dropdown triggerElement={<button class="btn btn-sm">Open</button>}>
68
+ <div class="bg-base-100 shadow-lg px-4 py-3">Visible!</div>
69
+ </Dropdown>
70
+ </div>
71
+ ```
72
+
73
+ ### Scroll lock
74
+
75
+ ```tsx
76
+ <Dropdown
77
+ blockScroll
78
+ triggerElement={<button class="btn btn-sm btn-warning">Open (scroll locked)</button>}
79
+ >
80
+ <div class="bg-base-100 rounded-lg shadow-lg px-6 py-4">
81
+ Page scroll is locked while this is open.
82
+ </div>
83
+ </Dropdown>
84
+ ```
85
+
86
+ ## Behavior Details
87
+
88
+ ### Singleton
89
+
90
+ Only one dropdown can be open at a time. Opening a second dropdown automatically closes the first. This is enforced by the global `dropdownStore`.
91
+
92
+ ### Click outside to close
93
+
94
+ A full-screen invisible backdrop (`nd-backdrop`) catches clicks outside the content.
95
+
96
+ ### Controlled vs uncontrolled
97
+
98
+ - **Uncontrolled** (no `open` prop): the component manages its own open/close state.
99
+ - **Controlled** (`open` prop provided): the component delegates state to the parent. The trigger click has no effect — the parent must update `open` manually. Controlled state is synced with `dropdownStore`.
100
+
101
+ ### Position tracking (`blockScroll={false}`)
102
+
103
+ When open and `blockScroll` is false, the portal content anchor tracks the trigger element's position continuously via `element-tracker`. This ensures the dropdown stays aligned even when the page scrolls.
104
+
105
+ When `blockScroll={true}`, tracking stops (the page cannot scroll anyway, so the position is stable).
106
+
107
+ ## Positioning System
108
+
109
+ Content position is computed from `getBoundingClientRect()` of the trigger, stored in CSS variables on the anchor element:
110
+
111
+ | Variable | Value |
112
+ |----------|-------|
113
+ | `--nd-t` | `trigger.top` |
114
+ | `--nd-l` | `trigger.left` |
115
+ | `--nd-w` | `trigger.width` |
116
+ | `--nd-h` | `trigger.height` |
117
+
118
+ `data-pos` and `data-align` attributes on `.nd-content-anchor` drive all position/alignment combinations via pure CSS. Gap between trigger and content is controlled by `--nd-gap` (default: `6px`).
119
+
120
+ ## Common Patterns
121
+
122
+ ### Menu list inside dropdown
123
+
124
+ ```tsx
125
+ <Dropdown triggerElement={<button class="btn btn-sm">Menu</button>}>
126
+ <ul class="bg-base-100 rounded-lg shadow-lg overflow-hidden min-w-40">
127
+ <li>
128
+ <button class="w-full px-4 py-2 text-left text-sm hover:bg-base-200 transition-colors">
129
+ Edit
130
+ </button>
131
+ </li>
132
+ <li>
133
+ <button class="w-full px-4 py-2 text-left text-sm text-error hover:bg-error/10 transition-colors">
134
+ Delete
135
+ </button>
136
+ </li>
137
+ </ul>
138
+ </Dropdown>
139
+ ```
140
+
141
+ ### Icon trigger (three-dot menu)
142
+
143
+ ```tsx
144
+ import { MoreHorizontal } from 'lucide-solid';
145
+
146
+ <Dropdown
147
+ align="end"
148
+ triggerElement={
149
+ <button class="btn btn-ghost btn-xs btn-square">
150
+ <MoreHorizontal size={16} />
151
+ </button>
152
+ }
153
+ >
154
+ <ul class="bg-base-100 rounded-lg shadow-lg overflow-hidden min-w-36">
155
+ <li><button class="w-full px-4 py-2 text-left text-sm hover:bg-base-200">Rename</button></li>
156
+ <li><button class="w-full px-4 py-2 text-left text-sm hover:bg-base-200">Duplicate</button></li>
157
+ <li><button class="w-full px-4 py-2 text-left text-sm text-error hover:bg-error/10">Delete</button></li>
158
+ </ul>
159
+ </Dropdown>
160
+ ```
161
+
162
+ ### Programmatic close from content
163
+
164
+ Use controlled mode to close the dropdown from inside:
165
+
166
+ ```tsx
167
+ const [open, setOpen] = createSignal(false);
168
+
169
+ <Dropdown
170
+ open={open()}
171
+ triggerElement={
172
+ <button class="btn btn-sm" onClick={() => setOpen(true)}>Open</button>
173
+ }
174
+ >
175
+ <div class="bg-base-100 rounded-lg shadow-lg px-4 py-3">
176
+ <button class="btn btn-xs" onClick={() => setOpen(false)}>Close me</button>
177
+ </div>
178
+ </Dropdown>
179
+ ```
180
+
181
+ ## Styling Tips
182
+
183
+ - **Content width**: Portal content has `min-width: max-content` by default. Use `min-w-*` Tailwind classes on the content div to enforce a minimum width.
184
+ - **Custom gap**: Override `--nd-gap` on `.nd-content-anchor` via inline style or a custom CSS class.
185
+ - **Animation origin**: Animation scale origin (`transform-origin`) is automatically set per position/alignment via `--nd-origin` CSS variable — no manual adjustment needed.
186
+
187
+ ## Gotchas
188
+
189
+ 1. **Singleton**: Only one dropdown can be open at a time — enforced by `dropdownStore`.
190
+ 2. **`class.content` vs content children**: `class.content` targets the `.nd-content` wrapper, not the children directly. Apply `rounded`, `shadow`, `bg-*` to the direct child element inside `<Dropdown>` for full visual control.
191
+
192
+ ---
193
+
194
+ ## Component Conventions
195
+
196
+ > **CSS encoding**: internal CSS classes use short encoded names (e.g. `dp01`, `dp02`) per project convention.
197
+
198
+ > **Unique IDs**: if this component needs to generate HTML `id` attributes, always use `createUniqueId()` from `solid-js` — never `Math.random()` or `Date.now()`.