@dowel-ui/react 0.1.0

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 (691) hide show
  1. package/LICENSE +21 -0
  2. package/dist/blocks/admin-users/meta.js +27 -0
  3. package/dist/blocks/admin-users/meta.js.map +1 -0
  4. package/dist/blocks/ai-chat/meta.js +30 -0
  5. package/dist/blocks/ai-chat/meta.js.map +1 -0
  6. package/dist/blocks/dashboard/meta.js +23 -0
  7. package/dist/blocks/dashboard/meta.js.map +1 -0
  8. package/dist/blocks/forgot-password/meta.js +24 -0
  9. package/dist/blocks/forgot-password/meta.js.map +1 -0
  10. package/dist/blocks/login/meta.js +26 -0
  11. package/dist/blocks/login/meta.js.map +1 -0
  12. package/dist/blocks/pricing/meta.js +24 -0
  13. package/dist/blocks/pricing/meta.js.map +1 -0
  14. package/dist/blocks/settings/meta.js +29 -0
  15. package/dist/blocks/settings/meta.js.map +1 -0
  16. package/dist/blocks/signup/meta.js +25 -0
  17. package/dist/blocks/signup/meta.js.map +1 -0
  18. package/dist/components/accordion/accordion.d.ts +19 -0
  19. package/dist/components/accordion/accordion.d.ts.map +1 -0
  20. package/dist/components/accordion/accordion.js +58 -0
  21. package/dist/components/accordion/accordion.js.map +1 -0
  22. package/dist/components/accordion/index.d.ts +2 -0
  23. package/dist/components/accordion/index.js +2 -0
  24. package/dist/components/accordion/meta.js +17 -0
  25. package/dist/components/accordion/meta.js.map +1 -0
  26. package/dist/components/activity-feed/activity-feed.d.ts +39 -0
  27. package/dist/components/activity-feed/activity-feed.d.ts.map +1 -0
  28. package/dist/components/activity-feed/activity-feed.js +77 -0
  29. package/dist/components/activity-feed/activity-feed.js.map +1 -0
  30. package/dist/components/activity-feed/index.d.ts +2 -0
  31. package/dist/components/activity-feed/index.js +2 -0
  32. package/dist/components/activity-feed/meta.js +17 -0
  33. package/dist/components/activity-feed/meta.js.map +1 -0
  34. package/dist/components/ai-agent-status/ai-agent-status.d.ts +30 -0
  35. package/dist/components/ai-agent-status/ai-agent-status.d.ts.map +1 -0
  36. package/dist/components/ai-agent-status/ai-agent-status.js +43 -0
  37. package/dist/components/ai-agent-status/ai-agent-status.js.map +1 -0
  38. package/dist/components/ai-agent-status/index.d.ts +2 -0
  39. package/dist/components/ai-agent-status/index.js +2 -0
  40. package/dist/components/ai-agent-status/meta.js +17 -0
  41. package/dist/components/ai-agent-status/meta.js.map +1 -0
  42. package/dist/components/ai-conversation/ai-conversation.d.ts +45 -0
  43. package/dist/components/ai-conversation/ai-conversation.d.ts.map +1 -0
  44. package/dist/components/ai-conversation/ai-conversation.js +138 -0
  45. package/dist/components/ai-conversation/ai-conversation.js.map +1 -0
  46. package/dist/components/ai-conversation/index.d.ts +2 -0
  47. package/dist/components/ai-conversation/index.js +2 -0
  48. package/dist/components/ai-conversation/meta.js +17 -0
  49. package/dist/components/ai-conversation/meta.js.map +1 -0
  50. package/dist/components/ai-message/ai-message.d.ts +56 -0
  51. package/dist/components/ai-message/ai-message.d.ts.map +1 -0
  52. package/dist/components/ai-message/ai-message.js +90 -0
  53. package/dist/components/ai-message/ai-message.js.map +1 -0
  54. package/dist/components/ai-message/index.d.ts +2 -0
  55. package/dist/components/ai-message/index.js +2 -0
  56. package/dist/components/ai-message/meta.js +17 -0
  57. package/dist/components/ai-message/meta.js.map +1 -0
  58. package/dist/components/ai-model-selector/ai-model-selector.d.ts +42 -0
  59. package/dist/components/ai-model-selector/ai-model-selector.d.ts.map +1 -0
  60. package/dist/components/ai-model-selector/ai-model-selector.js +48 -0
  61. package/dist/components/ai-model-selector/ai-model-selector.js.map +1 -0
  62. package/dist/components/ai-model-selector/index.d.ts +2 -0
  63. package/dist/components/ai-model-selector/index.js +2 -0
  64. package/dist/components/ai-model-selector/meta.js +17 -0
  65. package/dist/components/ai-model-selector/meta.js.map +1 -0
  66. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts +61 -0
  67. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -0
  68. package/dist/components/ai-prompt-input/ai-prompt-input.js +170 -0
  69. package/dist/components/ai-prompt-input/ai-prompt-input.js.map +1 -0
  70. package/dist/components/ai-prompt-input/index.d.ts +2 -0
  71. package/dist/components/ai-prompt-input/index.js +2 -0
  72. package/dist/components/ai-prompt-input/meta.js +17 -0
  73. package/dist/components/ai-prompt-input/meta.js.map +1 -0
  74. package/dist/components/ai-reasoning/ai-reasoning.d.ts +24 -0
  75. package/dist/components/ai-reasoning/ai-reasoning.d.ts.map +1 -0
  76. package/dist/components/ai-reasoning/ai-reasoning.js +64 -0
  77. package/dist/components/ai-reasoning/ai-reasoning.js.map +1 -0
  78. package/dist/components/ai-reasoning/index.d.ts +2 -0
  79. package/dist/components/ai-reasoning/index.js +2 -0
  80. package/dist/components/ai-reasoning/meta.js +17 -0
  81. package/dist/components/ai-reasoning/meta.js.map +1 -0
  82. package/dist/components/ai-response/ai-response.d.ts +36 -0
  83. package/dist/components/ai-response/ai-response.d.ts.map +1 -0
  84. package/dist/components/ai-response/ai-response.js +46 -0
  85. package/dist/components/ai-response/ai-response.js.map +1 -0
  86. package/dist/components/ai-response/index.d.ts +2 -0
  87. package/dist/components/ai-response/index.js +2 -0
  88. package/dist/components/ai-response/meta.js +17 -0
  89. package/dist/components/ai-response/meta.js.map +1 -0
  90. package/dist/components/ai-sources/ai-sources.d.ts +44 -0
  91. package/dist/components/ai-sources/ai-sources.d.ts.map +1 -0
  92. package/dist/components/ai-sources/ai-sources.js +112 -0
  93. package/dist/components/ai-sources/ai-sources.js.map +1 -0
  94. package/dist/components/ai-sources/index.d.ts +2 -0
  95. package/dist/components/ai-sources/index.js +2 -0
  96. package/dist/components/ai-sources/meta.js +17 -0
  97. package/dist/components/ai-sources/meta.js.map +1 -0
  98. package/dist/components/ai-token-usage/ai-token-usage.d.ts +34 -0
  99. package/dist/components/ai-token-usage/ai-token-usage.d.ts.map +1 -0
  100. package/dist/components/ai-token-usage/ai-token-usage.js +58 -0
  101. package/dist/components/ai-token-usage/ai-token-usage.js.map +1 -0
  102. package/dist/components/ai-token-usage/index.d.ts +2 -0
  103. package/dist/components/ai-token-usage/index.js +2 -0
  104. package/dist/components/ai-token-usage/meta.js +17 -0
  105. package/dist/components/ai-token-usage/meta.js.map +1 -0
  106. package/dist/components/ai-tool/ai-tool.d.ts +50 -0
  107. package/dist/components/ai-tool/ai-tool.d.ts.map +1 -0
  108. package/dist/components/ai-tool/ai-tool.js +129 -0
  109. package/dist/components/ai-tool/ai-tool.js.map +1 -0
  110. package/dist/components/ai-tool/index.d.ts +2 -0
  111. package/dist/components/ai-tool/index.js +2 -0
  112. package/dist/components/ai-tool/meta.js +17 -0
  113. package/dist/components/ai-tool/meta.js.map +1 -0
  114. package/dist/components/alert/alert.d.ts +32 -0
  115. package/dist/components/alert/alert.d.ts.map +1 -0
  116. package/dist/components/alert/alert.js +49 -0
  117. package/dist/components/alert/alert.js.map +1 -0
  118. package/dist/components/alert/index.d.ts +2 -0
  119. package/dist/components/alert/index.js +2 -0
  120. package/dist/components/alert/meta.js +17 -0
  121. package/dist/components/alert/meta.js.map +1 -0
  122. package/dist/components/avatar/avatar.d.ts +23 -0
  123. package/dist/components/avatar/avatar.d.ts.map +1 -0
  124. package/dist/components/avatar/avatar.js +44 -0
  125. package/dist/components/avatar/avatar.js.map +1 -0
  126. package/dist/components/avatar/index.d.ts +2 -0
  127. package/dist/components/avatar/index.js +2 -0
  128. package/dist/components/avatar/meta.js +17 -0
  129. package/dist/components/avatar/meta.js.map +1 -0
  130. package/dist/components/badge/badge.d.ts +20 -0
  131. package/dist/components/badge/badge.d.ts.map +1 -0
  132. package/dist/components/badge/badge.js +47 -0
  133. package/dist/components/badge/badge.js.map +1 -0
  134. package/dist/components/badge/index.d.ts +2 -0
  135. package/dist/components/badge/index.js +2 -0
  136. package/dist/components/badge/meta.js +17 -0
  137. package/dist/components/badge/meta.js.map +1 -0
  138. package/dist/components/button/button.d.ts +28 -0
  139. package/dist/components/button/button.d.ts.map +1 -0
  140. package/dist/components/button/button.js +77 -0
  141. package/dist/components/button/button.js.map +1 -0
  142. package/dist/components/button/index.d.ts +2 -0
  143. package/dist/components/button/index.js +2 -0
  144. package/dist/components/button/meta.js +17 -0
  145. package/dist/components/button/meta.js.map +1 -0
  146. package/dist/components/calendar/calendar.d.ts +16 -0
  147. package/dist/components/calendar/calendar.d.ts.map +1 -0
  148. package/dist/components/calendar/calendar.js +70 -0
  149. package/dist/components/calendar/calendar.js.map +1 -0
  150. package/dist/components/calendar/index.d.ts +2 -0
  151. package/dist/components/calendar/index.js +2 -0
  152. package/dist/components/calendar/meta.js +17 -0
  153. package/dist/components/calendar/meta.js.map +1 -0
  154. package/dist/components/card/card.d.ts +23 -0
  155. package/dist/components/card/card.d.ts.map +1 -0
  156. package/dist/components/card/card.js +53 -0
  157. package/dist/components/card/card.js.map +1 -0
  158. package/dist/components/card/index.d.ts +2 -0
  159. package/dist/components/card/index.js +2 -0
  160. package/dist/components/card/meta.js +17 -0
  161. package/dist/components/card/meta.js.map +1 -0
  162. package/dist/components/checkbox/checkbox.d.ts +15 -0
  163. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  164. package/dist/components/checkbox/checkbox.js +45 -0
  165. package/dist/components/checkbox/checkbox.js.map +1 -0
  166. package/dist/components/checkbox/index.d.ts +2 -0
  167. package/dist/components/checkbox/index.js +2 -0
  168. package/dist/components/checkbox/meta.js +17 -0
  169. package/dist/components/checkbox/meta.js.map +1 -0
  170. package/dist/components/code-block/code-block.d.ts +46 -0
  171. package/dist/components/code-block/code-block.d.ts.map +1 -0
  172. package/dist/components/code-block/code-block.js +110 -0
  173. package/dist/components/code-block/code-block.js.map +1 -0
  174. package/dist/components/code-block/index.d.ts +2 -0
  175. package/dist/components/code-block/index.js +2 -0
  176. package/dist/components/code-block/meta.js +17 -0
  177. package/dist/components/code-block/meta.js.map +1 -0
  178. package/dist/components/combobox/combobox.d.ts +59 -0
  179. package/dist/components/combobox/combobox.d.ts.map +1 -0
  180. package/dist/components/combobox/combobox.js +346 -0
  181. package/dist/components/combobox/combobox.js.map +1 -0
  182. package/dist/components/combobox/index.d.ts +2 -0
  183. package/dist/components/combobox/index.js +2 -0
  184. package/dist/components/combobox/meta.js +17 -0
  185. package/dist/components/combobox/meta.js.map +1 -0
  186. package/dist/components/command/command.d.ts +65 -0
  187. package/dist/components/command/command.d.ts.map +1 -0
  188. package/dist/components/command/command.js +330 -0
  189. package/dist/components/command/command.js.map +1 -0
  190. package/dist/components/command/index.d.ts +2 -0
  191. package/dist/components/command/index.js +2 -0
  192. package/dist/components/command/meta.js +17 -0
  193. package/dist/components/command/meta.js.map +1 -0
  194. package/dist/components/data-table/data-table.d.ts +91 -0
  195. package/dist/components/data-table/data-table.d.ts.map +1 -0
  196. package/dist/components/data-table/data-table.js +263 -0
  197. package/dist/components/data-table/data-table.js.map +1 -0
  198. package/dist/components/data-table/index.d.ts +2 -0
  199. package/dist/components/data-table/index.js +2 -0
  200. package/dist/components/data-table/meta.js +22 -0
  201. package/dist/components/data-table/meta.js.map +1 -0
  202. package/dist/components/date-picker/date-picker.d.ts +31 -0
  203. package/dist/components/date-picker/date-picker.d.ts.map +1 -0
  204. package/dist/components/date-picker/date-picker.js +123 -0
  205. package/dist/components/date-picker/date-picker.js.map +1 -0
  206. package/dist/components/date-picker/index.d.ts +2 -0
  207. package/dist/components/date-picker/index.js +2 -0
  208. package/dist/components/date-picker/meta.js +21 -0
  209. package/dist/components/date-picker/meta.js.map +1 -0
  210. package/dist/components/dialog/dialog.d.ts +30 -0
  211. package/dist/components/dialog/dialog.d.ts.map +1 -0
  212. package/dist/components/dialog/dialog.js +79 -0
  213. package/dist/components/dialog/dialog.js.map +1 -0
  214. package/dist/components/dialog/index.d.ts +2 -0
  215. package/dist/components/dialog/index.js +2 -0
  216. package/dist/components/dialog/meta.js +17 -0
  217. package/dist/components/dialog/meta.js.map +1 -0
  218. package/dist/components/drawer/drawer.d.ts +32 -0
  219. package/dist/components/drawer/drawer.d.ts.map +1 -0
  220. package/dist/components/drawer/drawer.js +153 -0
  221. package/dist/components/drawer/drawer.js.map +1 -0
  222. package/dist/components/drawer/index.d.ts +2 -0
  223. package/dist/components/drawer/index.js +2 -0
  224. package/dist/components/drawer/meta.js +17 -0
  225. package/dist/components/drawer/meta.js.map +1 -0
  226. package/dist/components/dropdown-menu/dropdown-menu.d.ts +43 -0
  227. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  228. package/dist/components/dropdown-menu/dropdown-menu.js +130 -0
  229. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
  230. package/dist/components/dropdown-menu/index.d.ts +2 -0
  231. package/dist/components/dropdown-menu/index.js +2 -0
  232. package/dist/components/dropdown-menu/meta.js +17 -0
  233. package/dist/components/dropdown-menu/meta.js.map +1 -0
  234. package/dist/components/empty-state/empty-state.d.ts +24 -0
  235. package/dist/components/empty-state/empty-state.d.ts.map +1 -0
  236. package/dist/components/empty-state/empty-state.js +73 -0
  237. package/dist/components/empty-state/empty-state.js.map +1 -0
  238. package/dist/components/empty-state/index.d.ts +2 -0
  239. package/dist/components/empty-state/index.js +2 -0
  240. package/dist/components/empty-state/meta.js +17 -0
  241. package/dist/components/empty-state/meta.js.map +1 -0
  242. package/dist/components/form/form.d.ts +43 -0
  243. package/dist/components/form/form.d.ts.map +1 -0
  244. package/dist/components/form/form.js +127 -0
  245. package/dist/components/form/form.js.map +1 -0
  246. package/dist/components/form/index.d.ts +2 -0
  247. package/dist/components/form/index.js +2 -0
  248. package/dist/components/form/meta.js +17 -0
  249. package/dist/components/form/meta.js.map +1 -0
  250. package/dist/components/input/index.d.ts +2 -0
  251. package/dist/components/input/index.js +2 -0
  252. package/dist/components/input/input.d.ts +21 -0
  253. package/dist/components/input/input.d.ts.map +1 -0
  254. package/dist/components/input/input.js +34 -0
  255. package/dist/components/input/input.js.map +1 -0
  256. package/dist/components/input/meta.js +17 -0
  257. package/dist/components/input/meta.js.map +1 -0
  258. package/dist/components/label/index.d.ts +2 -0
  259. package/dist/components/label/index.js +2 -0
  260. package/dist/components/label/label.d.ts +14 -0
  261. package/dist/components/label/label.d.ts.map +1 -0
  262. package/dist/components/label/label.js +20 -0
  263. package/dist/components/label/label.js.map +1 -0
  264. package/dist/components/label/meta.js +17 -0
  265. package/dist/components/label/meta.js.map +1 -0
  266. package/dist/components/pagination/index.d.ts +2 -0
  267. package/dist/components/pagination/index.js +2 -0
  268. package/dist/components/pagination/meta.js +17 -0
  269. package/dist/components/pagination/meta.js.map +1 -0
  270. package/dist/components/pagination/pagination.d.ts +33 -0
  271. package/dist/components/pagination/pagination.d.ts.map +1 -0
  272. package/dist/components/pagination/pagination.js +143 -0
  273. package/dist/components/pagination/pagination.js.map +1 -0
  274. package/dist/components/popover/index.d.ts +2 -0
  275. package/dist/components/popover/index.js +2 -0
  276. package/dist/components/popover/meta.js +17 -0
  277. package/dist/components/popover/meta.js.map +1 -0
  278. package/dist/components/popover/popover.d.ts +24 -0
  279. package/dist/components/popover/popover.d.ts.map +1 -0
  280. package/dist/components/popover/popover.js +60 -0
  281. package/dist/components/popover/popover.js.map +1 -0
  282. package/dist/components/progress/index.d.ts +2 -0
  283. package/dist/components/progress/index.js +2 -0
  284. package/dist/components/progress/meta.js +17 -0
  285. package/dist/components/progress/meta.js.map +1 -0
  286. package/dist/components/progress/progress.d.ts +21 -0
  287. package/dist/components/progress/progress.d.ts.map +1 -0
  288. package/dist/components/progress/progress.js +55 -0
  289. package/dist/components/progress/progress.js.map +1 -0
  290. package/dist/components/radio-group/index.d.ts +2 -0
  291. package/dist/components/radio-group/index.js +2 -0
  292. package/dist/components/radio-group/meta.js +17 -0
  293. package/dist/components/radio-group/meta.js.map +1 -0
  294. package/dist/components/radio-group/radio-group.d.ts +17 -0
  295. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  296. package/dist/components/radio-group/radio-group.js +29 -0
  297. package/dist/components/radio-group/radio-group.js.map +1 -0
  298. package/dist/components/select/index.d.ts +2 -0
  299. package/dist/components/select/index.js +2 -0
  300. package/dist/components/select/meta.js +17 -0
  301. package/dist/components/select/meta.js.map +1 -0
  302. package/dist/components/select/select.d.ts +37 -0
  303. package/dist/components/select/select.d.ts.map +1 -0
  304. package/dist/components/select/select.js +128 -0
  305. package/dist/components/select/select.js.map +1 -0
  306. package/dist/components/separator/index.d.ts +2 -0
  307. package/dist/components/separator/index.js +2 -0
  308. package/dist/components/separator/meta.js +17 -0
  309. package/dist/components/separator/meta.js.map +1 -0
  310. package/dist/components/separator/separator.d.ts +15 -0
  311. package/dist/components/separator/separator.d.ts.map +1 -0
  312. package/dist/components/separator/separator.js +23 -0
  313. package/dist/components/separator/separator.js.map +1 -0
  314. package/dist/components/sheet/index.d.ts +2 -0
  315. package/dist/components/sheet/index.js +2 -0
  316. package/dist/components/sheet/meta.js +17 -0
  317. package/dist/components/sheet/meta.js.map +1 -0
  318. package/dist/components/sheet/sheet.d.ts +31 -0
  319. package/dist/components/sheet/sheet.d.ts.map +1 -0
  320. package/dist/components/sheet/sheet.js +90 -0
  321. package/dist/components/sheet/sheet.js.map +1 -0
  322. package/dist/components/skeleton/index.d.ts +2 -0
  323. package/dist/components/skeleton/index.js +2 -0
  324. package/dist/components/skeleton/meta.js +17 -0
  325. package/dist/components/skeleton/meta.js.map +1 -0
  326. package/dist/components/skeleton/skeleton.d.ts +20 -0
  327. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  328. package/dist/components/skeleton/skeleton.js +29 -0
  329. package/dist/components/skeleton/skeleton.js.map +1 -0
  330. package/dist/components/slider/index.d.ts +2 -0
  331. package/dist/components/slider/index.js +2 -0
  332. package/dist/components/slider/meta.js +17 -0
  333. package/dist/components/slider/meta.js.map +1 -0
  334. package/dist/components/slider/slider.d.ts +29 -0
  335. package/dist/components/slider/slider.d.ts.map +1 -0
  336. package/dist/components/slider/slider.js +61 -0
  337. package/dist/components/slider/slider.js.map +1 -0
  338. package/dist/components/spinner/index.d.ts +2 -0
  339. package/dist/components/spinner/index.js +2 -0
  340. package/dist/components/spinner/meta.js +17 -0
  341. package/dist/components/spinner/meta.js.map +1 -0
  342. package/dist/components/spinner/spinner.d.ts +21 -0
  343. package/dist/components/spinner/spinner.d.ts.map +1 -0
  344. package/dist/components/spinner/spinner.js +45 -0
  345. package/dist/components/spinner/spinner.js.map +1 -0
  346. package/dist/components/switch/index.d.ts +2 -0
  347. package/dist/components/switch/index.js +2 -0
  348. package/dist/components/switch/meta.js +17 -0
  349. package/dist/components/switch/meta.js.map +1 -0
  350. package/dist/components/switch/switch.d.ts +15 -0
  351. package/dist/components/switch/switch.d.ts.map +1 -0
  352. package/dist/components/switch/switch.js +21 -0
  353. package/dist/components/switch/switch.js.map +1 -0
  354. package/dist/components/table/index.d.ts +2 -0
  355. package/dist/components/table/index.js +2 -0
  356. package/dist/components/table/meta.js +17 -0
  357. package/dist/components/table/meta.js.map +1 -0
  358. package/dist/components/table/table.d.ts +41 -0
  359. package/dist/components/table/table.d.ts.map +1 -0
  360. package/dist/components/table/table.js +78 -0
  361. package/dist/components/table/table.js.map +1 -0
  362. package/dist/components/tabs/index.d.ts +2 -0
  363. package/dist/components/tabs/index.js +2 -0
  364. package/dist/components/tabs/meta.js +17 -0
  365. package/dist/components/tabs/meta.js.map +1 -0
  366. package/dist/components/tabs/tabs.d.ts +28 -0
  367. package/dist/components/tabs/tabs.d.ts.map +1 -0
  368. package/dist/components/tabs/tabs.js +58 -0
  369. package/dist/components/tabs/tabs.js.map +1 -0
  370. package/dist/components/toast/index.d.ts +3 -0
  371. package/dist/components/toast/index.js +3 -0
  372. package/dist/components/toast/meta.js +17 -0
  373. package/dist/components/toast/meta.js.map +1 -0
  374. package/dist/components/toast/toast-store.d.ts +84 -0
  375. package/dist/components/toast/toast-store.d.ts.map +1 -0
  376. package/dist/components/toast/toast-store.js +115 -0
  377. package/dist/components/toast/toast-store.js.map +1 -0
  378. package/dist/components/toast/toast.d.ts +39 -0
  379. package/dist/components/toast/toast.d.ts.map +1 -0
  380. package/dist/components/toast/toast.js +140 -0
  381. package/dist/components/toast/toast.js.map +1 -0
  382. package/dist/components/tooltip/index.d.ts +2 -0
  383. package/dist/components/tooltip/index.js +2 -0
  384. package/dist/components/tooltip/meta.js +17 -0
  385. package/dist/components/tooltip/meta.js.map +1 -0
  386. package/dist/components/tooltip/tooltip.d.ts +24 -0
  387. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  388. package/dist/components/tooltip/tooltip.js +38 -0
  389. package/dist/components/tooltip/tooltip.js.map +1 -0
  390. package/dist/index.d.ts +97 -0
  391. package/dist/index.js +51 -0
  392. package/dist/lib/styles.d.ts +21 -0
  393. package/dist/lib/styles.d.ts.map +1 -0
  394. package/dist/lib/styles.js +22 -0
  395. package/dist/lib/styles.js.map +1 -0
  396. package/dist/lib/utils.d.ts +11 -0
  397. package/dist/lib/utils.d.ts.map +1 -0
  398. package/dist/lib/utils.js +21 -0
  399. package/dist/lib/utils.js.map +1 -0
  400. package/dist/registry/blocks.d.ts +15 -0
  401. package/dist/registry/blocks.d.ts.map +1 -0
  402. package/dist/registry/blocks.js +32 -0
  403. package/dist/registry/blocks.js.map +1 -0
  404. package/dist/registry/components.d.ts +18 -0
  405. package/dist/registry/components.d.ts.map +1 -0
  406. package/dist/registry/components.js +112 -0
  407. package/dist/registry/components.js.map +1 -0
  408. package/dist/registry/schema.d.ts +44 -0
  409. package/dist/registry/schema.d.ts.map +1 -0
  410. package/dist/registry/schema.js +33 -0
  411. package/dist/registry/schema.js.map +1 -0
  412. package/package.json +74 -0
  413. package/src/blocks/admin-users/admin-users.stories.tsx +83 -0
  414. package/src/blocks/admin-users/admin-users.test.tsx +159 -0
  415. package/src/blocks/admin-users/admin-users.tsx +251 -0
  416. package/src/blocks/admin-users/index.ts +1 -0
  417. package/src/blocks/admin-users/meta.ts +27 -0
  418. package/src/blocks/ai-chat/ai-chat.stories.tsx +149 -0
  419. package/src/blocks/ai-chat/ai-chat.test.tsx +166 -0
  420. package/src/blocks/ai-chat/ai-chat.tsx +280 -0
  421. package/src/blocks/ai-chat/index.ts +7 -0
  422. package/src/blocks/ai-chat/meta.ts +32 -0
  423. package/src/blocks/dashboard/dashboard.stories.tsx +106 -0
  424. package/src/blocks/dashboard/dashboard.test.tsx +94 -0
  425. package/src/blocks/dashboard/dashboard.tsx +192 -0
  426. package/src/blocks/dashboard/index.ts +6 -0
  427. package/src/blocks/dashboard/meta.ts +18 -0
  428. package/src/blocks/forgot-password/forgot-password.stories.tsx +41 -0
  429. package/src/blocks/forgot-password/forgot-password.test.tsx +62 -0
  430. package/src/blocks/forgot-password/forgot-password.tsx +158 -0
  431. package/src/blocks/forgot-password/index.ts +1 -0
  432. package/src/blocks/forgot-password/meta.ts +18 -0
  433. package/src/blocks/login/index.ts +1 -0
  434. package/src/blocks/login/login.stories.tsx +46 -0
  435. package/src/blocks/login/login.test.tsx +100 -0
  436. package/src/blocks/login/login.tsx +178 -0
  437. package/src/blocks/login/meta.ts +18 -0
  438. package/src/blocks/pricing/index.ts +1 -0
  439. package/src/blocks/pricing/meta.ts +18 -0
  440. package/src/blocks/pricing/pricing.stories.tsx +62 -0
  441. package/src/blocks/pricing/pricing.test.tsx +101 -0
  442. package/src/blocks/pricing/pricing.tsx +176 -0
  443. package/src/blocks/settings/index.ts +6 -0
  444. package/src/blocks/settings/meta.ts +29 -0
  445. package/src/blocks/settings/settings.stories.tsx +94 -0
  446. package/src/blocks/settings/settings.test.tsx +167 -0
  447. package/src/blocks/settings/settings.tsx +317 -0
  448. package/src/blocks/signup/index.ts +1 -0
  449. package/src/blocks/signup/meta.ts +18 -0
  450. package/src/blocks/signup/signup.stories.tsx +27 -0
  451. package/src/blocks/signup/signup.test.tsx +97 -0
  452. package/src/blocks/signup/signup.tsx +240 -0
  453. package/src/components/accordion/accordion.stories.tsx +90 -0
  454. package/src/components/accordion/accordion.test.tsx +156 -0
  455. package/src/components/accordion/accordion.tsx +88 -0
  456. package/src/components/accordion/index.ts +9 -0
  457. package/src/components/accordion/meta.ts +16 -0
  458. package/src/components/activity-feed/activity-feed.stories.tsx +163 -0
  459. package/src/components/activity-feed/activity-feed.test.tsx +125 -0
  460. package/src/components/activity-feed/activity-feed.tsx +115 -0
  461. package/src/components/activity-feed/index.ts +12 -0
  462. package/src/components/activity-feed/meta.ts +17 -0
  463. package/src/components/ai-agent-status/ai-agent-status.stories.tsx +86 -0
  464. package/src/components/ai-agent-status/ai-agent-status.test.tsx +66 -0
  465. package/src/components/ai-agent-status/ai-agent-status.tsx +88 -0
  466. package/src/components/ai-agent-status/index.ts +6 -0
  467. package/src/components/ai-agent-status/meta.ts +17 -0
  468. package/src/components/ai-conversation/ai-conversation.stories.tsx +126 -0
  469. package/src/components/ai-conversation/ai-conversation.test.tsx +144 -0
  470. package/src/components/ai-conversation/ai-conversation.tsx +229 -0
  471. package/src/components/ai-conversation/index.ts +9 -0
  472. package/src/components/ai-conversation/meta.ts +20 -0
  473. package/src/components/ai-message/ai-message.stories.tsx +106 -0
  474. package/src/components/ai-message/ai-message.test.tsx +160 -0
  475. package/src/components/ai-message/ai-message.tsx +162 -0
  476. package/src/components/ai-message/index.ts +13 -0
  477. package/src/components/ai-message/meta.ts +17 -0
  478. package/src/components/ai-model-selector/ai-model-selector.stories.tsx +66 -0
  479. package/src/components/ai-model-selector/ai-model-selector.test.tsx +120 -0
  480. package/src/components/ai-model-selector/ai-model-selector.tsx +112 -0
  481. package/src/components/ai-model-selector/index.ts +1 -0
  482. package/src/components/ai-model-selector/meta.ts +17 -0
  483. package/src/components/ai-prompt-input/ai-prompt-input.stories.tsx +145 -0
  484. package/src/components/ai-prompt-input/ai-prompt-input.test.tsx +273 -0
  485. package/src/components/ai-prompt-input/ai-prompt-input.tsx +306 -0
  486. package/src/components/ai-prompt-input/index.ts +11 -0
  487. package/src/components/ai-prompt-input/meta.ts +18 -0
  488. package/src/components/ai-reasoning/ai-reasoning.stories.tsx +60 -0
  489. package/src/components/ai-reasoning/ai-reasoning.test.tsx +95 -0
  490. package/src/components/ai-reasoning/ai-reasoning.tsx +106 -0
  491. package/src/components/ai-reasoning/index.ts +7 -0
  492. package/src/components/ai-reasoning/meta.ts +17 -0
  493. package/src/components/ai-response/ai-response.stories.tsx +75 -0
  494. package/src/components/ai-response/ai-response.test.tsx +96 -0
  495. package/src/components/ai-response/ai-response.tsx +95 -0
  496. package/src/components/ai-response/index.ts +7 -0
  497. package/src/components/ai-response/meta.ts +17 -0
  498. package/src/components/ai-sources/ai-sources.stories.tsx +93 -0
  499. package/src/components/ai-sources/ai-sources.test.tsx +102 -0
  500. package/src/components/ai-sources/ai-sources.tsx +186 -0
  501. package/src/components/ai-sources/index.ts +11 -0
  502. package/src/components/ai-sources/meta.ts +17 -0
  503. package/src/components/ai-token-usage/ai-token-usage.stories.tsx +59 -0
  504. package/src/components/ai-token-usage/ai-token-usage.test.tsx +83 -0
  505. package/src/components/ai-token-usage/ai-token-usage.tsx +105 -0
  506. package/src/components/ai-token-usage/index.ts +6 -0
  507. package/src/components/ai-token-usage/meta.ts +16 -0
  508. package/src/components/ai-tool/ai-tool.stories.tsx +96 -0
  509. package/src/components/ai-tool/ai-tool.test.tsx +137 -0
  510. package/src/components/ai-tool/ai-tool.tsx +235 -0
  511. package/src/components/ai-tool/index.ts +13 -0
  512. package/src/components/ai-tool/meta.ts +17 -0
  513. package/src/components/alert/alert.stories.tsx +101 -0
  514. package/src/components/alert/alert.test.tsx +94 -0
  515. package/src/components/alert/alert.tsx +89 -0
  516. package/src/components/alert/index.ts +8 -0
  517. package/src/components/alert/meta.ts +16 -0
  518. package/src/components/avatar/avatar.stories.tsx +58 -0
  519. package/src/components/avatar/avatar.test.tsx +64 -0
  520. package/src/components/avatar/avatar.tsx +68 -0
  521. package/src/components/avatar/index.ts +9 -0
  522. package/src/components/avatar/meta.ts +15 -0
  523. package/src/components/badge/badge.stories.tsx +68 -0
  524. package/src/components/badge/badge.test.tsx +61 -0
  525. package/src/components/badge/badge.tsx +54 -0
  526. package/src/components/badge/index.ts +1 -0
  527. package/src/components/badge/meta.ts +15 -0
  528. package/src/components/button/button.stories.tsx +128 -0
  529. package/src/components/button/button.test.tsx +224 -0
  530. package/src/components/button/button.tsx +114 -0
  531. package/src/components/button/index.ts +1 -0
  532. package/src/components/button/meta.ts +16 -0
  533. package/src/components/calendar/calendar.stories.tsx +105 -0
  534. package/src/components/calendar/calendar.test.tsx +255 -0
  535. package/src/components/calendar/calendar.tsx +115 -0
  536. package/src/components/calendar/index.ts +1 -0
  537. package/src/components/calendar/meta.ts +17 -0
  538. package/src/components/card/card.stories.tsx +61 -0
  539. package/src/components/card/card.test.tsx +66 -0
  540. package/src/components/card/card.tsx +81 -0
  541. package/src/components/card/index.ts +9 -0
  542. package/src/components/card/meta.ts +16 -0
  543. package/src/components/checkbox/checkbox.stories.tsx +124 -0
  544. package/src/components/checkbox/checkbox.test.tsx +121 -0
  545. package/src/components/checkbox/checkbox.tsx +66 -0
  546. package/src/components/checkbox/index.ts +1 -0
  547. package/src/components/checkbox/meta.ts +16 -0
  548. package/src/components/code-block/code-block.stories.tsx +62 -0
  549. package/src/components/code-block/code-block.test.tsx +139 -0
  550. package/src/components/code-block/code-block.tsx +188 -0
  551. package/src/components/code-block/index.ts +1 -0
  552. package/src/components/code-block/meta.ts +17 -0
  553. package/src/components/combobox/combobox.stories.tsx +171 -0
  554. package/src/components/combobox/combobox.test.tsx +429 -0
  555. package/src/components/combobox/combobox.tsx +544 -0
  556. package/src/components/combobox/index.ts +15 -0
  557. package/src/components/combobox/meta.ts +17 -0
  558. package/src/components/command/command.stories.tsx +152 -0
  559. package/src/components/command/command.test.tsx +380 -0
  560. package/src/components/command/command.tsx +482 -0
  561. package/src/components/command/index.ts +17 -0
  562. package/src/components/command/meta.ts +18 -0
  563. package/src/components/data-table/data-table.stories.tsx +151 -0
  564. package/src/components/data-table/data-table.test.tsx +288 -0
  565. package/src/components/data-table/data-table.tsx +485 -0
  566. package/src/components/data-table/index.ts +13 -0
  567. package/src/components/data-table/meta.ts +19 -0
  568. package/src/components/date-picker/date-picker.stories.tsx +103 -0
  569. package/src/components/date-picker/date-picker.test.tsx +205 -0
  570. package/src/components/date-picker/date-picker.tsx +198 -0
  571. package/src/components/date-picker/index.ts +6 -0
  572. package/src/components/date-picker/meta.ts +18 -0
  573. package/src/components/dialog/dialog.stories.tsx +140 -0
  574. package/src/components/dialog/dialog.test.tsx +186 -0
  575. package/src/components/dialog/dialog.tsx +132 -0
  576. package/src/components/dialog/index.ts +16 -0
  577. package/src/components/dialog/meta.ts +16 -0
  578. package/src/components/drawer/drawer.stories.tsx +111 -0
  579. package/src/components/drawer/drawer.test.tsx +187 -0
  580. package/src/components/drawer/drawer.tsx +293 -0
  581. package/src/components/drawer/index.ts +16 -0
  582. package/src/components/drawer/meta.ts +16 -0
  583. package/src/components/dropdown-menu/dropdown-menu.stories.tsx +128 -0
  584. package/src/components/dropdown-menu/dropdown-menu.test.tsx +321 -0
  585. package/src/components/dropdown-menu/dropdown-menu.tsx +242 -0
  586. package/src/components/dropdown-menu/index.ts +21 -0
  587. package/src/components/dropdown-menu/meta.ts +17 -0
  588. package/src/components/empty-state/empty-state.stories.tsx +70 -0
  589. package/src/components/empty-state/empty-state.test.tsx +97 -0
  590. package/src/components/empty-state/empty-state.tsx +92 -0
  591. package/src/components/empty-state/index.ts +9 -0
  592. package/src/components/empty-state/meta.ts +16 -0
  593. package/src/components/form/form.stories.tsx +144 -0
  594. package/src/components/form/form.test.tsx +203 -0
  595. package/src/components/form/form.tsx +221 -0
  596. package/src/components/form/index.ts +13 -0
  597. package/src/components/form/meta.ts +17 -0
  598. package/src/components/input/index.ts +1 -0
  599. package/src/components/input/input.stories.tsx +84 -0
  600. package/src/components/input/input.test.tsx +108 -0
  601. package/src/components/input/input.tsx +51 -0
  602. package/src/components/input/meta.ts +15 -0
  603. package/src/components/label/index.ts +1 -0
  604. package/src/components/label/label.stories.tsx +51 -0
  605. package/src/components/label/label.test.tsx +55 -0
  606. package/src/components/label/label.tsx +26 -0
  607. package/src/components/label/meta.ts +15 -0
  608. package/src/components/pagination/index.ts +10 -0
  609. package/src/components/pagination/meta.ts +17 -0
  610. package/src/components/pagination/pagination.stories.tsx +129 -0
  611. package/src/components/pagination/pagination.test.tsx +119 -0
  612. package/src/components/pagination/pagination.tsx +142 -0
  613. package/src/components/popover/index.ts +9 -0
  614. package/src/components/popover/meta.ts +18 -0
  615. package/src/components/popover/popover.stories.tsx +84 -0
  616. package/src/components/popover/popover.test.tsx +163 -0
  617. package/src/components/popover/popover.tsx +89 -0
  618. package/src/components/progress/index.ts +1 -0
  619. package/src/components/progress/meta.ts +17 -0
  620. package/src/components/progress/progress.stories.tsx +90 -0
  621. package/src/components/progress/progress.test.tsx +78 -0
  622. package/src/components/progress/progress.tsx +70 -0
  623. package/src/components/radio-group/index.ts +6 -0
  624. package/src/components/radio-group/meta.ts +16 -0
  625. package/src/components/radio-group/radio-group.stories.tsx +102 -0
  626. package/src/components/radio-group/radio-group.test.tsx +152 -0
  627. package/src/components/radio-group/radio-group.tsx +53 -0
  628. package/src/components/select/index.ts +14 -0
  629. package/src/components/select/meta.ts +16 -0
  630. package/src/components/select/select.stories.tsx +137 -0
  631. package/src/components/select/select.test.tsx +209 -0
  632. package/src/components/select/select.tsx +222 -0
  633. package/src/components/separator/index.ts +1 -0
  634. package/src/components/separator/meta.ts +15 -0
  635. package/src/components/separator/separator.stories.tsx +42 -0
  636. package/src/components/separator/separator.test.tsx +46 -0
  637. package/src/components/separator/separator.tsx +33 -0
  638. package/src/components/sheet/index.ts +14 -0
  639. package/src/components/sheet/meta.ts +16 -0
  640. package/src/components/sheet/sheet.stories.tsx +107 -0
  641. package/src/components/sheet/sheet.test.tsx +152 -0
  642. package/src/components/sheet/sheet.tsx +160 -0
  643. package/src/components/skeleton/index.ts +1 -0
  644. package/src/components/skeleton/meta.ts +15 -0
  645. package/src/components/skeleton/skeleton.stories.tsx +46 -0
  646. package/src/components/skeleton/skeleton.test.tsx +57 -0
  647. package/src/components/skeleton/skeleton.tsx +28 -0
  648. package/src/components/slider/index.ts +1 -0
  649. package/src/components/slider/meta.ts +19 -0
  650. package/src/components/slider/slider.stories.tsx +87 -0
  651. package/src/components/slider/slider.test.tsx +148 -0
  652. package/src/components/slider/slider.tsx +135 -0
  653. package/src/components/spinner/index.ts +1 -0
  654. package/src/components/spinner/meta.ts +15 -0
  655. package/src/components/spinner/spinner.stories.tsx +47 -0
  656. package/src/components/spinner/spinner.test.tsx +41 -0
  657. package/src/components/spinner/spinner.tsx +68 -0
  658. package/src/components/switch/index.ts +1 -0
  659. package/src/components/switch/meta.ts +15 -0
  660. package/src/components/switch/switch.stories.tsx +70 -0
  661. package/src/components/switch/switch.test.tsx +101 -0
  662. package/src/components/switch/switch.tsx +42 -0
  663. package/src/components/table/index.ts +11 -0
  664. package/src/components/table/meta.ts +17 -0
  665. package/src/components/table/table.stories.tsx +131 -0
  666. package/src/components/table/table.test.tsx +153 -0
  667. package/src/components/table/table.tsx +138 -0
  668. package/src/components/tabs/index.ts +11 -0
  669. package/src/components/tabs/meta.ts +17 -0
  670. package/src/components/tabs/tabs.stories.tsx +139 -0
  671. package/src/components/tabs/tabs.test.tsx +148 -0
  672. package/src/components/tabs/tabs.tsx +106 -0
  673. package/src/components/toast/index.ts +24 -0
  674. package/src/components/toast/meta.ts +18 -0
  675. package/src/components/toast/toast-store.ts +181 -0
  676. package/src/components/toast/toast.stories.tsx +167 -0
  677. package/src/components/toast/toast.test.tsx +306 -0
  678. package/src/components/toast/toast.tsx +241 -0
  679. package/src/components/tooltip/index.ts +8 -0
  680. package/src/components/tooltip/meta.ts +17 -0
  681. package/src/components/tooltip/tooltip.stories.tsx +89 -0
  682. package/src/components/tooltip/tooltip.test.tsx +120 -0
  683. package/src/components/tooltip/tooltip.tsx +58 -0
  684. package/src/index.ts +50 -0
  685. package/src/lib/styles.ts +26 -0
  686. package/src/lib/utils.test.ts +32 -0
  687. package/src/lib/utils.ts +24 -0
  688. package/src/registry/blocks.ts +30 -0
  689. package/src/registry/components.ts +114 -0
  690. package/src/registry/meta.test.ts +234 -0
  691. package/src/registry/schema.ts +58 -0
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ import { focusRing } from "../../lib/styles.js";
3
+ import { cn } from "../../lib/utils.js";
4
+ import { Slider } from "radix-ui";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { useEffect, useMemo } from "react";
7
+ //#region src/components/slider/slider.tsx
8
+ function Slider$1({ className, value, defaultValue, min = 0, max = 100, thumbLabels, thumbValueTexts, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-valuetext": ariaValueText, ...props }) {
9
+ const thumbCount = useMemo(() => (value ?? defaultValue ?? [min]).length, [
10
+ value,
11
+ defaultValue,
12
+ min
13
+ ]);
14
+ useMissingLabelWarning(thumbCount, thumbLabels, ariaLabel, ariaLabelledBy);
15
+ return /* @__PURE__ */ jsxs(Slider.Root, {
16
+ "data-slot": "slider",
17
+ value,
18
+ defaultValue,
19
+ min,
20
+ max,
21
+ className: cn("relative flex w-full touch-none items-center select-none", "data-[orientation=vertical]:h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", "data-[disabled]:opacity-55", className),
22
+ ...props,
23
+ children: [/* @__PURE__ */ jsx(Slider.Track, {
24
+ "data-slot": "slider-track",
25
+ className: cn("relative grow overflow-hidden rounded-full bg-muted", "data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full", "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),
26
+ children: /* @__PURE__ */ jsx(Slider.Range, {
27
+ "data-slot": "slider-range",
28
+ className: cn("absolute bg-primary", "data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")
29
+ })
30
+ }), Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ jsx(Slider.Thumb, {
31
+ "data-slot": "slider-thumb",
32
+ "aria-label": thumbLabels?.[index] ?? ariaLabel,
33
+ "aria-labelledby": thumbLabels?.[index] ? void 0 : ariaLabelledBy,
34
+ "aria-valuetext": thumbValueTexts?.[index] ?? ariaValueText,
35
+ className: cn("block size-4 shrink-0 rounded-full border-2 border-primary bg-background shadow-sm", "transition-[box-shadow,transform] duration-[var(--duration-instant)]", "hover:scale-110 disabled:pointer-events-none", focusRing)
36
+ }, index))]
37
+ });
38
+ }
39
+ /**
40
+ * Warns, in development only, when a thumb would render without a name.
41
+ *
42
+ * An unnamed slider is invisible on screen and serious for screen reader users,
43
+ * so it is surfaced where it is introduced rather than left for an audit.
44
+ */
45
+ function useMissingLabelWarning(thumbCount, thumbLabels, ariaLabel, ariaLabelledBy) {
46
+ useEffect(() => {
47
+ if (process.env.NODE_ENV === "production") return;
48
+ const fallbackName = ariaLabel ?? ariaLabelledBy;
49
+ if (!Array.from({ length: thumbCount }).some((_, index) => !(thumbLabels?.[index] ?? fallbackName))) return;
50
+ console.warn("[Slider] A thumb has no accessible name. Pass aria-label or aria-labelledby, or thumbLabels to name each thumb of a range slider individually.");
51
+ }, [
52
+ thumbCount,
53
+ thumbLabels,
54
+ ariaLabel,
55
+ ariaLabelledBy
56
+ ]);
57
+ }
58
+ //#endregion
59
+ export { Slider$1 as Slider };
60
+
61
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.js","names":["Slider","SliderPrimitive"],"sources":["../../../src/components/slider/slider.tsx"],"sourcesContent":["\"use client\";\n\nimport { Slider as SliderPrimitive } from \"radix-ui\";\nimport { useEffect, useMemo, type ComponentPropsWithRef } from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Selects a value, or a range, from a continuous span.\n *\n * Renders one thumb per value, so a range slider is just two values. Sliders\n * are imprecise by nature: if the exact number matters, pair it with a numeric\n * input rather than asking people to land on a pixel.\n */\nexport interface SliderProps extends ComponentPropsWithRef<typeof SliderPrimitive.Root> {\n /**\n * Accessible name per thumb, in order.\n *\n * A range slider is two independent `role=\"slider\"` controls, and naming both\n * of them \"Price\" tells a screen reader user nothing about which one they are\n * on. Give them distinct names — \"Minimum price\", \"Maximum price\".\n */\n thumbLabels?: string[];\n /**\n * Spoken value per thumb, in order, for values whose raw number is not\n * meaningful on its own — a price, a duration, a rating.\n */\n thumbValueTexts?: string[];\n}\n\nexport function Slider({\n className,\n value,\n defaultValue,\n min = 0,\n max = 100,\n thumbLabels,\n thumbValueTexts,\n // Every naming and value-describing attribute has to move to the thumbs for\n // the same reason: the thumb is the element with role=\"slider\".\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-valuetext\": ariaValueText,\n ...props\n}: SliderProps) {\n // One thumb per value. Falling back to a single thumb keeps the bare\n // <Slider /> case working without forcing a defaultValue.\n const thumbCount = useMemo(\n () => (value ?? defaultValue ?? [min]).length,\n [value, defaultValue, min],\n );\n\n // The name has to live on the thumb, because the thumb is the element with\n // role=\"slider\". Left on the root it names an element with no role, and the\n // control a screen reader actually lands on is announced unnamed.\n useMissingLabelWarning(thumbCount, thumbLabels, ariaLabel, ariaLabelledBy);\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n value={value}\n defaultValue={defaultValue}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none\",\n \"data-[orientation=vertical]:h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n \"data-[disabled]:opacity-55\",\n className,\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"relative grow overflow-hidden rounded-full bg-muted\",\n \"data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full\",\n \"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\",\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"absolute bg-primary\",\n \"data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\",\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: thumbCount }, (_, index) => (\n <SliderPrimitive.Thumb\n key={index}\n data-slot=\"slider-thumb\"\n aria-label={thumbLabels?.[index] ?? ariaLabel}\n aria-labelledby={thumbLabels?.[index] ? undefined : ariaLabelledBy}\n aria-valuetext={thumbValueTexts?.[index] ?? ariaValueText}\n className={cn(\n \"block size-4 shrink-0 rounded-full border-2 border-primary bg-background shadow-sm\",\n \"transition-[box-shadow,transform] duration-[var(--duration-instant)]\",\n \"hover:scale-110 disabled:pointer-events-none\",\n focusRing,\n )}\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\n/**\n * Warns, in development only, when a thumb would render without a name.\n *\n * An unnamed slider is invisible on screen and serious for screen reader users,\n * so it is surfaced where it is introduced rather than left for an audit.\n */\nfunction useMissingLabelWarning(\n thumbCount: number,\n thumbLabels: string[] | undefined,\n ariaLabel: string | undefined,\n ariaLabelledBy: string | undefined,\n) {\n useEffect(() => {\n if (process.env.NODE_ENV === \"production\") return;\n\n const fallbackName = ariaLabel ?? ariaLabelledBy;\n const unnamed = Array.from({ length: thumbCount }).some(\n (_, index) => !(thumbLabels?.[index] ?? fallbackName),\n );\n if (!unnamed) return;\n\n console.warn(\n \"[Slider] A thumb has no accessible name. Pass aria-label or aria-labelledby, or \" +\n \"thumbLabels to name each thumb of a range slider individually.\",\n );\n }, [thumbCount, thumbLabels, ariaLabel, ariaLabelledBy]);\n}\n"],"mappings":";;;;;;;AA+BA,SAAgBA,SAAO,EACrB,WACA,OACA,cACA,MAAM,GACN,MAAM,KACN,aACA,iBAGA,cAAc,WACd,mBAAmB,gBACnB,kBAAkB,eAClB,GAAG,SACW;CAGd,MAAM,aAAa,eACV,SAAS,gBAAgB,CAAC,GAAG,EAAA,CAAG,QACvC;EAAC;EAAO;EAAc;CAAG,CAC3B;CAKA,uBAAuB,YAAY,aAAa,WAAW,cAAc;CAEzE,OACE,qBAACC,OAAgB,MAAjB;EACE,aAAU;EACH;EACO;EACT;EACA;EACL,WAAW,GACT,4DACA,4GACA,8BACA,SACF;EACA,GAAI;EAZN,UAAA,CAcE,oBAACA,OAAgB,OAAjB;GACE,aAAU;GACV,WAAW,GACT,uDACA,4EACA,sEACF;GAEA,UAAA,oBAACA,OAAgB,OAAjB;IACE,aAAU;IACV,WAAW,GACT,uBACA,yEACF;GACD,CAAA;EACoB,CAAA,GACtB,MAAM,KAAK,EAAE,QAAQ,WAAW,IAAI,GAAG,UACtC,oBAACA,OAAgB,OAAjB;GAEE,aAAU;GACV,cAAY,cAAc,UAAU;GACpC,mBAAiB,cAAc,SAAS,KAAA,IAAY;GACpD,kBAAgB,kBAAkB,UAAU;GAC5C,WAAW,GACT,sFACA,wEACA,gDACA,SACF;EACD,GAXM,KAWN,CACF,CACmB;;AAE1B;;;;;;;AAQA,SAAS,uBACP,YACA,aACA,WACA,gBACA;CACA,gBAAgB;EACd,IAAI,QAAQ,IAAI,aAAa,cAAc;EAE3C,MAAM,eAAe,aAAa;EAIlC,IAAI,CAHY,MAAM,KAAK,EAAE,QAAQ,WAAW,CAAC,CAAC,CAAC,MAChD,GAAG,UAAU,EAAE,cAAc,UAAU,aAE/B,GAAG;EAEd,QAAQ,KACN,gJAEF;CACF,GAAG;EAAC;EAAY;EAAa;EAAW;CAAc,CAAC;AACzD"}
@@ -0,0 +1,2 @@
1
+ import { Spinner, SpinnerProps, spinnerVariants } from "./spinner.js";
2
+ export { Spinner, type SpinnerProps, spinnerVariants };
@@ -0,0 +1,2 @@
1
+ import { Spinner, spinnerVariants } from "./spinner.js";
2
+ export { Spinner, spinnerVariants };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/spinner/meta.ts
3
+ const meta = defineMeta({
4
+ name: "spinner",
5
+ title: "Spinner",
6
+ description: "An indeterminate loading indicator for buttons, panels and inline content.",
7
+ category: "feedback",
8
+ status: "stable",
9
+ dependencies: ["class-variance-authority"],
10
+ registryDependencies: [],
11
+ files: ["spinner.tsx"],
12
+ a11y: "Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\"status\"."
13
+ });
14
+ //#endregion
15
+ export { meta };
16
+
17
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/spinner/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"spinner\",\n title: \"Spinner\",\n description: \"An indeterminate loading indicator for buttons, panels and inline content.\",\n category: \"feedback\",\n status: \"stable\",\n dependencies: [\"class-variance-authority\"],\n registryDependencies: [],\n files: [\"spinner.tsx\"],\n a11y:\n \"Renders aria-hidden by default so it does not announce inside controls that already \" +\n 'expose a busy state. Pass `label` to announce it standalone via role=\"status\".',\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,0BAA0B;CACzC,sBAAsB,CAAC;CACvB,OAAO,CAAC,aAAa;CACrB,MACE;AAEJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { ComponentPropsWithRef } from "react";
3
+ //#region src/components/spinner/spinner.d.ts
4
+ declare const spinnerVariants: (props?: ({
5
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ interface SpinnerProps extends Omit<ComponentPropsWithRef<"svg">, "children">, VariantProps<typeof spinnerVariants> {
8
+ /**
9
+ * Announced to assistive technology while the spinner is visible.
10
+ *
11
+ * Omit it when the spinner sits inside a control that already communicates
12
+ * its busy state (a loading Button, for example) — announcing twice is worse
13
+ * than not announcing at all.
14
+ */
15
+ label?: string;
16
+ }
17
+ /** Indeterminate loading indicator. */
18
+ declare function Spinner({ className, size, label, ...props }: SpinnerProps): import("react").JSX.Element;
19
+ //#endregion
20
+ export { Spinner, SpinnerProps, spinnerVariants };
21
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","names":[],"sources":["../../../src/components/spinner/spinner.tsx"],"mappings":";;;cAKM,kBAAe;;6CAanB;UAEe,qBACP,KAAK,2CAA2C,oBAAoB;;;;;;;;EAQ5E;;;iBAIc,UAAU,WAAW,MAAM,UAAU,SAAS,+BAAY,IAAA"}
@@ -0,0 +1,45 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/components/spinner/spinner.tsx
5
+ const spinnerVariants = cva("animate-spin text-current", {
6
+ variants: { size: {
7
+ xs: "size-3",
8
+ sm: "size-3.5",
9
+ md: "size-4",
10
+ lg: "size-5",
11
+ xl: "size-6"
12
+ } },
13
+ defaultVariants: { size: "md" }
14
+ });
15
+ /** Indeterminate loading indicator. */
16
+ function Spinner({ className, size, label, ...props }) {
17
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("svg", {
18
+ viewBox: "0 0 24 24",
19
+ fill: "none",
20
+ "aria-hidden": "true",
21
+ className: cn(spinnerVariants({ size }), className),
22
+ ...props,
23
+ children: [/* @__PURE__ */ jsx("circle", {
24
+ cx: "12",
25
+ cy: "12",
26
+ r: "9.5",
27
+ stroke: "currentColor",
28
+ strokeWidth: "2.5",
29
+ opacity: "0.22"
30
+ }), /* @__PURE__ */ jsx("path", {
31
+ d: "M12 2.5a9.5 9.5 0 0 1 9.5 9.5",
32
+ stroke: "currentColor",
33
+ strokeWidth: "2.5",
34
+ strokeLinecap: "round"
35
+ })]
36
+ }), label ? /* @__PURE__ */ jsx("span", {
37
+ role: "status",
38
+ className: "sr-only",
39
+ children: label
40
+ }) : null] });
41
+ }
42
+ //#endregion
43
+ export { Spinner, spinnerVariants };
44
+
45
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","names":[],"sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst spinnerVariants = cva(\"animate-spin text-current\", {\n variants: {\n size: {\n xs: \"size-3\",\n sm: \"size-3.5\",\n md: \"size-4\",\n lg: \"size-5\",\n xl: \"size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport interface SpinnerProps\n extends Omit<ComponentPropsWithRef<\"svg\">, \"children\">, VariantProps<typeof spinnerVariants> {\n /**\n * Announced to assistive technology while the spinner is visible.\n *\n * Omit it when the spinner sits inside a control that already communicates\n * its busy state (a loading Button, for example) — announcing twice is worse\n * than not announcing at all.\n */\n label?: string;\n}\n\n/** Indeterminate loading indicator. */\nexport function Spinner({ className, size, label, ...props }: SpinnerProps) {\n return (\n <>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n opacity=\"0.22\"\n />\n <path\n d=\"M12 2.5a9.5 9.5 0 0 1 9.5 9.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n {label ? (\n <span role=\"status\" className=\"sr-only\">\n {label}\n </span>\n ) : null}\n </>\n );\n}\n\nexport { spinnerVariants };\n"],"mappings":";;;;AAKA,MAAM,kBAAkB,IAAI,6BAA6B;CACvD,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;;AAeD,SAAgB,QAAQ,EAAE,WAAW,MAAM,OAAO,GAAG,SAAuB;CAC1E,OACE,qBAAA,UAAA,EAAA,UAAA,CACE,qBAAC,OAAD;EACE,SAAQ;EACR,MAAK;EACL,eAAY;EACZ,WAAW,GAAG,gBAAgB,EAAE,KAAK,CAAC,GAAG,SAAS;EAClD,GAAI;EALN,UAAA,CAOE,oBAAC,UAAD;GACE,IAAG;GACH,IAAG;GACH,GAAE;GACF,QAAO;GACP,aAAY;GACZ,SAAQ;EACT,CAAA,GACD,oBAAC,QAAD;GACE,GAAE;GACF,QAAO;GACP,aAAY;GACZ,eAAc;EACf,CAAA,CACE;CACJ,CAAA,GAAA,QACC,oBAAC,QAAD;EAAM,MAAK;EAAS,WAAU;EAC3B,UAAA;CACG,CAAA,IACJ,IACJ,EAAA,CAAA;AAEN"}
@@ -0,0 +1,2 @@
1
+ import { Switch, SwitchProps } from "./switch.js";
2
+ export { Switch, type SwitchProps };
@@ -0,0 +1,2 @@
1
+ import { Switch } from "./switch.js";
2
+ export { Switch };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/switch/meta.ts
3
+ const meta = defineMeta({
4
+ name: "switch",
5
+ title: "Switch",
6
+ description: "An immediate on/off toggle for settings that apply straight away.",
7
+ category: "form",
8
+ status: "stable",
9
+ dependencies: ["radix-ui"],
10
+ registryDependencies: [],
11
+ files: ["switch.tsx"],
12
+ a11y: "Exposed as role=\"switch\" and toggled with Space or Enter. Needs a visible label tied with htmlFor/id. Do not rely on colour alone to show state — position and the label carry it too."
13
+ });
14
+ //#endregion
15
+ export { meta };
16
+
17
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/switch/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"switch\",\n title: \"Switch\",\n description: \"An immediate on/off toggle for settings that apply straight away.\",\n category: \"form\",\n status: \"stable\",\n dependencies: [\"radix-ui\"],\n registryDependencies: [],\n files: [\"switch.tsx\"],\n a11y:\n 'Exposed as role=\"switch\" and toggled with Space or Enter. Needs a visible label tied with ' +\n \"htmlFor/id. Do not rely on colour alone to show state — position and the label carry it too.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,UAAU;CACzB,sBAAsB,CAAC;CACvB,OAAO,CAAC,YAAY;CACpB,MACE;AAEJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Switch } from "radix-ui";
2
+ import { ComponentPropsWithRef } from "react";
3
+ //#region src/components/switch/switch.d.ts
4
+ /**
5
+ * An immediate on/off toggle.
6
+ *
7
+ * Use a Switch when the change takes effect at once, and a Checkbox when it is
8
+ * staged until the form is submitted. The difference is real to users: a switch
9
+ * that needs a Save button is a broken promise.
10
+ */
11
+ type SwitchProps = ComponentPropsWithRef<typeof Switch.Root>;
12
+ declare function Switch$1({ className, ...props }: SwitchProps): import("react").JSX.Element;
13
+ //#endregion
14
+ export { Switch$1 as Switch, SwitchProps };
15
+ //# sourceMappingURL=switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.d.ts","names":[],"sources":["../../../src/components/switch/switch.tsx"],"mappings":";;;;;;;;;;KAeY,cAAc,6BAA6B,OAAgB;iBAEvD,WAAS,cAAc,SAAS,8BAAW,IAAA"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { focusRing } from "../../lib/styles.js";
3
+ import { cn } from "../../lib/utils.js";
4
+ import { Switch } from "radix-ui";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/components/switch/switch.tsx
7
+ function Switch$1({ className, ...props }) {
8
+ return /* @__PURE__ */ jsx(Switch.Root, {
9
+ "data-slot": "switch",
10
+ className: cn("peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border border-transparent p-0.5", "transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quint)]", "bg-input data-[state=checked]:bg-primary", "disabled:cursor-not-allowed disabled:opacity-55", focusRing, className),
11
+ ...props,
12
+ children: /* @__PURE__ */ jsx(Switch.Thumb, {
13
+ "data-slot": "switch-thumb",
14
+ className: cn("pointer-events-none block size-4 rounded-full bg-background shadow-sm ring-0", "transition-transform duration-[var(--duration-fast)] ease-[var(--ease-out-quint)]", "translate-x-0 data-[state=checked]:translate-x-4")
15
+ })
16
+ });
17
+ }
18
+ //#endregion
19
+ export { Switch$1 as Switch };
20
+
21
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","names":["Switch","SwitchPrimitive"],"sources":["../../../src/components/switch/switch.tsx"],"sourcesContent":["\"use client\";\n\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * An immediate on/off toggle.\n *\n * Use a Switch when the change takes effect at once, and a Checkbox when it is\n * staged until the form is submitted. The difference is real to users: a switch\n * that needs a Save button is a broken promise.\n */\nexport type SwitchProps = ComponentPropsWithRef<typeof SwitchPrimitive.Root>;\n\nexport function Switch({ className, ...props }: SwitchProps) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border border-transparent p-0.5\",\n \"transition-colors duration-[var(--duration-fast)] ease-[var(--ease-out-quint)]\",\n \"bg-input data-[state=checked]:bg-primary\",\n \"disabled:cursor-not-allowed disabled:opacity-55\",\n focusRing,\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"pointer-events-none block size-4 rounded-full bg-background shadow-sm ring-0\",\n \"transition-transform duration-[var(--duration-fast)] ease-[var(--ease-out-quint)]\",\n \"translate-x-0 data-[state=checked]:translate-x-4\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n"],"mappings":";;;;;;AAiBA,SAAgBA,SAAO,EAAE,WAAW,GAAG,SAAsB;CAC3D,OACE,oBAACC,OAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,+FACA,kFACA,4CACA,mDACA,WACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAACA,OAAgB,OAAjB;GACE,aAAU;GACV,WAAW,GACT,gFACA,qFACA,kDACF;EACD,CAAA;CACmB,CAAA;AAE1B"}
@@ -0,0 +1,2 @@
1
+ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableProps, TableRow } from "./table.js";
2
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, type TableProps, TableRow };
@@ -0,0 +1,2 @@
1
+ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table.js";
2
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/table/meta.ts
3
+ const meta = defineMeta({
4
+ name: "table",
5
+ title: "Table",
6
+ description: "Semantic table primitives for tabular data.",
7
+ category: "data",
8
+ status: "stable",
9
+ dependencies: [],
10
+ registryDependencies: [],
11
+ files: ["table.tsx"],
12
+ a11y: "A native table, so row and column position, header association and dimensions are all announced without ARIA. Give it a name with TableCaption or aria-label. The scrolling wrapper is focusable so an overflowing table can be scrolled by keyboard — without that, columns past the edge are unreachable. Use scope=\"row\" on th elements inside tbody."
13
+ });
14
+ //#endregion
15
+ export { meta };
16
+
17
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/table/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"table\",\n title: \"Table\",\n description: \"Semantic table primitives for tabular data.\",\n category: \"data\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [],\n files: [\"table.tsx\"],\n a11y:\n \"A native table, so row and column position, header association and dimensions are all \" +\n \"announced without ARIA. Give it a name with TableCaption or aria-label. The scrolling \" +\n \"wrapper is focusable so an overflowing table can be scrolled by keyboard — without that, \" +\n 'columns past the edge are unreachable. Use scope=\"row\" on th elements inside tbody.',\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC;CACf,sBAAsB,CAAC;CACvB,OAAO,CAAC,WAAW;CACnB,MACE;AAIJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { ComponentPropsWithRef } from "react";
2
+ //#region src/components/table/table.d.ts
3
+ /**
4
+ * Semantic table primitives.
5
+ *
6
+ * A real `<table>`, not a grid of divs: screen readers announce row and column
7
+ * position, header association and table dimensions from the native elements,
8
+ * and none of that can be recovered with ARIA after the fact.
9
+ *
10
+ * The wrapper scrolls horizontally and is focusable, because a table that
11
+ * overflows its container is otherwise unreachable by keyboard.
12
+ */
13
+ /**
14
+ * Arbitrary `data-*` attributes.
15
+ *
16
+ * TypeScript accepts `data-*` written directly on JSX, but not inside an object
17
+ * literal typed as HTML attributes — so without this, `containerProps` could not
18
+ * carry a test id or a styling hook.
19
+ */
20
+ type DataAttributes = Record<`data-${string}`, string | number | boolean | undefined>;
21
+ interface TableProps extends ComponentPropsWithRef<"table"> {
22
+ /** Props for the scrolling wrapper around the table. */
23
+ containerProps?: ComponentPropsWithRef<"div"> & DataAttributes;
24
+ }
25
+ declare function Table({ className, containerProps, ...props }: TableProps): import("react").JSX.Element;
26
+ declare function TableHeader({ className, ...props }: ComponentPropsWithRef<"thead">): import("react").JSX.Element;
27
+ declare function TableBody({ className, ...props }: ComponentPropsWithRef<"tbody">): import("react").JSX.Element;
28
+ declare function TableFooter({ className, ...props }: ComponentPropsWithRef<"tfoot">): import("react").JSX.Element;
29
+ declare function TableRow({ className, ...props }: ComponentPropsWithRef<"tr">): import("react").JSX.Element;
30
+ declare function TableHead({ className, ...props }: ComponentPropsWithRef<"th">): import("react").JSX.Element;
31
+ declare function TableCell({ className, ...props }: ComponentPropsWithRef<"td">): import("react").JSX.Element;
32
+ /**
33
+ * A caption describing the table.
34
+ *
35
+ * Rendered below the table but announced as its accessible name, which is why
36
+ * it belongs here rather than as a heading above.
37
+ */
38
+ declare function TableCaption({ className, ...props }: ComponentPropsWithRef<"caption">): import("react").JSX.Element;
39
+ //#endregion
40
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableProps, TableRow };
41
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","names":[],"sources":["../../../src/components/table/table.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;KAqBK,iBAAiB;UAEL,mBAAmB;;EAElC,iBAAiB,+BAA+B;;iBAGlC,QAAQ,WAAW,mBAAmB,SAAS,6BAAU,IAAA;iBAuBzD,cAAc,cAAc,SAAS,iDAA8B,IAAA;iBAUnE,YAAY,cAAc,SAAS,iDAA8B,IAAA;iBAUjE,cAAc,cAAc,SAAS,iDAA8B,IAAA;iBAUnE,WAAW,cAAc,SAAS,8CAA2B,IAAA;iBAc7D,YAAY,cAAc,SAAS,8CAA2B,IAAA;iBAc9D,YAAY,cAAc,SAAS,8CAA2B,IAAA;;;;;;;iBAoB9D,eAAe,cAAc,SAAS,mDAAgC,IAAA"}
@@ -0,0 +1,78 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/table/table.tsx
4
+ function Table({ className, containerProps, ...props }) {
5
+ const { className: containerClassName, ...restContainer } = containerProps ?? {};
6
+ return /* @__PURE__ */ jsx("div", {
7
+ "data-slot": "table-container",
8
+ tabIndex: 0,
9
+ role: "region",
10
+ "aria-label": props["aria-label"] ?? "Table",
11
+ className: cn("relative w-full overflow-x-auto", containerClassName),
12
+ ...restContainer,
13
+ children: /* @__PURE__ */ jsx("table", {
14
+ "data-slot": "table",
15
+ className: cn("w-full caption-bottom border-collapse text-sm", className),
16
+ ...props
17
+ })
18
+ });
19
+ }
20
+ function TableHeader({ className, ...props }) {
21
+ return /* @__PURE__ */ jsx("thead", {
22
+ "data-slot": "table-header",
23
+ className: cn("[&_tr]:border-b [&_tr]:border-border", className),
24
+ ...props
25
+ });
26
+ }
27
+ function TableBody({ className, ...props }) {
28
+ return /* @__PURE__ */ jsx("tbody", {
29
+ "data-slot": "table-body",
30
+ className: cn("[&_tr:last-child]:border-0", className),
31
+ ...props
32
+ });
33
+ }
34
+ function TableFooter({ className, ...props }) {
35
+ return /* @__PURE__ */ jsx("tfoot", {
36
+ "data-slot": "table-footer",
37
+ className: cn("border-t border-border bg-muted/40 font-medium", className),
38
+ ...props
39
+ });
40
+ }
41
+ function TableRow({ className, ...props }) {
42
+ return /* @__PURE__ */ jsx("tr", {
43
+ "data-slot": "table-row",
44
+ className: cn("border-b border-border transition-colors duration-[var(--duration-instant)]", "hover:bg-muted/50 data-[state=selected]:bg-accent", className),
45
+ ...props
46
+ });
47
+ }
48
+ function TableHead({ className, ...props }) {
49
+ return /* @__PURE__ */ jsx("th", {
50
+ "data-slot": "table-head",
51
+ className: cn("h-10 px-3 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground", "[&:has([role=checkbox])]:w-px [&:has([role=checkbox])]:pr-0", className),
52
+ ...props
53
+ });
54
+ }
55
+ function TableCell({ className, ...props }) {
56
+ return /* @__PURE__ */ jsx("td", {
57
+ "data-slot": "table-cell",
58
+ className: cn("px-3 py-2.5 align-middle", "[&:has([role=checkbox])]:w-px [&:has([role=checkbox])]:pr-0", className),
59
+ ...props
60
+ });
61
+ }
62
+ /**
63
+ * A caption describing the table.
64
+ *
65
+ * Rendered below the table but announced as its accessible name, which is why
66
+ * it belongs here rather than as a heading above.
67
+ */
68
+ function TableCaption({ className, ...props }) {
69
+ return /* @__PURE__ */ jsx("caption", {
70
+ "data-slot": "table-caption",
71
+ className: cn("mt-4 text-sm text-muted-foreground", className),
72
+ ...props
73
+ });
74
+ }
75
+ //#endregion
76
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
77
+
78
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Semantic table primitives.\n *\n * A real `<table>`, not a grid of divs: screen readers announce row and column\n * position, header association and table dimensions from the native elements,\n * and none of that can be recovered with ARIA after the fact.\n *\n * The wrapper scrolls horizontally and is focusable, because a table that\n * overflows its container is otherwise unreachable by keyboard.\n */\n/**\n * Arbitrary `data-*` attributes.\n *\n * TypeScript accepts `data-*` written directly on JSX, but not inside an object\n * literal typed as HTML attributes — so without this, `containerProps` could not\n * carry a test id or a styling hook.\n */\ntype DataAttributes = Record<`data-${string}`, string | number | boolean | undefined>;\n\nexport interface TableProps extends ComponentPropsWithRef<\"table\"> {\n /** Props for the scrolling wrapper around the table. */\n containerProps?: ComponentPropsWithRef<\"div\"> & DataAttributes;\n}\n\nexport function Table({ className, containerProps, ...props }: TableProps) {\n const { className: containerClassName, ...restContainer } = containerProps ?? {};\n\n return (\n <div\n data-slot=\"table-container\"\n // tabIndex 0 with a role and label makes an overflowing table scrollable\n // by keyboard. Without it, the columns past the edge are unreachable.\n tabIndex={0}\n role=\"region\"\n aria-label={props[\"aria-label\"] ?? \"Table\"}\n className={cn(\"relative w-full overflow-x-auto\", containerClassName)}\n {...restContainer}\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom border-collapse text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\nexport function TableHeader({ className, ...props }: ComponentPropsWithRef<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b [&_tr]:border-border\", className)}\n {...props}\n />\n );\n}\n\nexport function TableBody({ className, ...props }: ComponentPropsWithRef<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\nexport function TableFooter({ className, ...props }: ComponentPropsWithRef<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-t border-border bg-muted/40 font-medium\", className)}\n {...props}\n />\n );\n}\n\nexport function TableRow({ className, ...props }: ComponentPropsWithRef<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b border-border transition-colors duration-[var(--duration-instant)]\",\n \"hover:bg-muted/50 data-[state=selected]:bg-accent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function TableHead({ className, ...props }: ComponentPropsWithRef<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 px-3 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground\",\n \"[&:has([role=checkbox])]:w-px [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function TableCell({ className, ...props }: ComponentPropsWithRef<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"px-3 py-2.5 align-middle\",\n \"[&:has([role=checkbox])]:w-px [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * A caption describing the table.\n *\n * Rendered below the table but announced as its accessible name, which is why\n * it belongs here rather than as a heading above.\n */\nexport function TableCaption({ className, ...props }: ComponentPropsWithRef<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n"],"mappings":";;;AA4BA,SAAgB,MAAM,EAAE,WAAW,gBAAgB,GAAG,SAAqB;CACzE,MAAM,EAAE,WAAW,oBAAoB,GAAG,kBAAkB,kBAAkB,CAAC;CAE/E,OACE,oBAAC,OAAD;EACE,aAAU;EAGV,UAAU;EACV,MAAK;EACL,cAAY,MAAM,iBAAiB;EACnC,WAAW,GAAG,mCAAmC,kBAAkB;EACnE,GAAI;EAEJ,UAAA,oBAAC,SAAD;GACE,aAAU;GACV,WAAW,GAAG,iDAAiD,SAAS;GACxE,GAAI;EACL,CAAA;CACE,CAAA;AAET;AAEA,SAAgB,YAAY,EAAE,WAAW,GAAG,SAAyC;CACnF,OACE,oBAAC,SAAD;EACE,aAAU;EACV,WAAW,GAAG,wCAAwC,SAAS;EAC/D,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,UAAU,EAAE,WAAW,GAAG,SAAyC;CACjF,OACE,oBAAC,SAAD;EACE,aAAU;EACV,WAAW,GAAG,8BAA8B,SAAS;EACrD,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,YAAY,EAAE,WAAW,GAAG,SAAyC;CACnF,OACE,oBAAC,SAAD;EACE,aAAU;EACV,WAAW,GAAG,kDAAkD,SAAS;EACzE,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,SAAS,EAAE,WAAW,GAAG,SAAsC;CAC7E,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GACT,+EACA,qDACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,UAAU,EAAE,WAAW,GAAG,SAAsC;CAC9E,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GACT,gGACA,+DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,UAAU,EAAE,WAAW,GAAG,SAAsC;CAC9E,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GACT,4BACA,+DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;;;;;;AAQA,SAAgB,aAAa,EAAE,WAAW,GAAG,SAA2C;CACtF,OACE,oBAAC,WAAD;EACE,aAAU;EACV,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ import { Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, tabsListVariants, tabsTriggerVariants } from "./tabs.js";
2
+ export { Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, TabsTrigger, type TabsTriggerProps, tabsListVariants, tabsTriggerVariants };
@@ -0,0 +1,2 @@
1
+ import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants } from "./tabs.js";
2
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/tabs/meta.ts
3
+ const meta = defineMeta({
4
+ name: "tabs",
5
+ title: "Tabs",
6
+ description: "Switches between panels of related content.",
7
+ category: "navigation",
8
+ status: "stable",
9
+ dependencies: ["class-variance-authority", "radix-ui"],
10
+ registryDependencies: [],
11
+ files: ["tabs.tsx"],
12
+ a11y: "Implements the ARIA tabs pattern: arrows move between tabs, Home/End jump to the ends, and only the active tab is in the tab sequence. Panels are focusable so keyboard users reach their content directly. Use activationMode=\"manual\" when showing a panel is expensive, so arrowing past it does not load it."
13
+ });
14
+ //#endregion
15
+ export { meta };
16
+
17
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/tabs/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"tabs\",\n title: \"Tabs\",\n description: \"Switches between panels of related content.\",\n category: \"navigation\",\n status: \"stable\",\n dependencies: [\"class-variance-authority\", \"radix-ui\"],\n registryDependencies: [],\n files: [\"tabs.tsx\"],\n a11y:\n \"Implements the ARIA tabs pattern: arrows move between tabs, Home/End jump to the ends, \" +\n \"and only the active tab is in the tab sequence. Panels are focusable so keyboard users \" +\n 'reach their content directly. Use activationMode=\"manual\" when showing a panel is ' +\n \"expensive, so arrowing past it does not load it.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,4BAA4B,UAAU;CACrD,sBAAsB,CAAC;CACvB,OAAO,CAAC,UAAU;CAClB,MACE;AAIJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Tabs } from "radix-ui";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { ComponentPropsWithRef } from "react";
4
+ //#region src/components/tabs/tabs.d.ts
5
+ /**
6
+ * Switches between panels of related content.
7
+ *
8
+ * Tabs are for alternate views of the same subject, not for steps in a process
9
+ * — a user can leave a tab and come back with nothing lost. Activation is
10
+ * automatic on arrow keys by default; pass `activationMode="manual"` when
11
+ * revealing a panel is expensive.
12
+ */
13
+ declare const Tabs$1: import("react").ForwardRefExoticComponent<Tabs.TabsProps & import("react").RefAttributes<HTMLDivElement>>;
14
+ declare const tabsListVariants: (props?: ({
15
+ variant?: "solid" | "underline" | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
+ declare const tabsTriggerVariants: (props?: ({
18
+ variant?: "solid" | "underline" | null | undefined;
19
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
20
+ interface TabsListProps extends ComponentPropsWithRef<typeof Tabs.List>, VariantProps<typeof tabsListVariants> {}
21
+ declare function TabsList({ className, variant, ...props }: TabsListProps): import("react").JSX.Element;
22
+ interface TabsTriggerProps extends ComponentPropsWithRef<typeof Tabs.Trigger>, VariantProps<typeof tabsTriggerVariants> {}
23
+ declare function TabsTrigger({ className, variant, ...props }: TabsTriggerProps): import("react").JSX.Element;
24
+ type TabsContentProps = ComponentPropsWithRef<typeof Tabs.Content>;
25
+ declare function TabsContent({ className, ...props }: TabsContentProps): import("react").JSX.Element;
26
+ //#endregion
27
+ export { Tabs$1 as Tabs, TabsContent, TabsContentProps, TabsList, TabsListProps, TabsTrigger, TabsTriggerProps, tabsListVariants, tabsTriggerVariants };
28
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","names":[],"sources":["../../../src/components/tabs/tabs.tsx"],"mappings":";;;;;;;;;;;;cAiBa,wBAAI,0BAAA,KAAA,4BAAA,cAAA;cAEX,mBAAgB;;6CAYpB;cAEI,sBAAmB;;6CA2BxB;UAEgB,sBAEb,6BAA6B,KAAc,OAC3C,oBAAoB;iBAER,WAAW,WAAW,YAAY,SAAS,gCAAa,IAAA;UAWvD,yBAEb,6BAA6B,KAAc,UAC3C,oBAAoB;iBAER,cAAc,WAAW,YAAY,SAAS,mCAAgB,IAAA;KAUlE,mBAAmB,6BAA6B,KAAc;iBAE1D,cAAc,cAAc,SAAS,mCAAgB,IAAA"}
@@ -0,0 +1,58 @@
1
+ "use client";
2
+ import { focusRing } from "../../lib/styles.js";
3
+ import { cn } from "../../lib/utils.js";
4
+ import { Tabs } from "radix-ui";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { cva } from "class-variance-authority";
7
+ //#region src/components/tabs/tabs.tsx
8
+ /**
9
+ * Switches between panels of related content.
10
+ *
11
+ * Tabs are for alternate views of the same subject, not for steps in a process
12
+ * — a user can leave a tab and come back with nothing lost. Activation is
13
+ * automatic on arrow keys by default; pass `activationMode="manual"` when
14
+ * revealing a panel is expensive.
15
+ */
16
+ const Tabs$1 = Tabs.Root;
17
+ const tabsListVariants = cva("inline-flex items-center", {
18
+ variants: { variant: {
19
+ /** Pill track. Reads as a segmented control. */
20
+ solid: "gap-1 rounded-lg bg-muted p-1",
21
+ /** Underlined. Reads as page-level navigation between views. */
22
+ underline: "gap-4 border-b border-border"
23
+ } },
24
+ defaultVariants: { variant: "solid" }
25
+ });
26
+ const tabsTriggerVariants = cva(cn("inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap", "transition-colors duration-[var(--duration-fast)]", "disabled:pointer-events-none disabled:opacity-55", "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", focusRing), {
27
+ variants: { variant: {
28
+ solid: cn("h-7 rounded-md px-3 text-muted-foreground", "hover:text-foreground", "data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs"),
29
+ underline: cn("-mb-px h-9 border-b-2 border-transparent px-0.5 text-muted-foreground", "hover:text-foreground", "data-[state=active]:border-primary data-[state=active]:text-foreground")
30
+ } },
31
+ defaultVariants: { variant: "solid" }
32
+ });
33
+ function TabsList({ className, variant, ...props }) {
34
+ return /* @__PURE__ */ jsx(Tabs.List, {
35
+ "data-slot": "tabs-list",
36
+ "data-variant": variant ?? "solid",
37
+ className: cn(tabsListVariants({ variant }), className),
38
+ ...props
39
+ });
40
+ }
41
+ function TabsTrigger({ className, variant, ...props }) {
42
+ return /* @__PURE__ */ jsx(Tabs.Trigger, {
43
+ "data-slot": "tabs-trigger",
44
+ className: cn(tabsTriggerVariants({ variant }), className),
45
+ ...props
46
+ });
47
+ }
48
+ function TabsContent({ className, ...props }) {
49
+ return /* @__PURE__ */ jsx(Tabs.Content, {
50
+ "data-slot": "tabs-content",
51
+ className: cn("mt-4 outline-none", focusRing, className),
52
+ ...props
53
+ });
54
+ }
55
+ //#endregion
56
+ export { Tabs$1 as Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants, tabsTriggerVariants };
57
+
58
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","names":["Tabs","TabsPrimitive"],"sources":["../../../src/components/tabs/tabs.tsx"],"sourcesContent":["\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Switches between panels of related content.\n *\n * Tabs are for alternate views of the same subject, not for steps in a process\n * — a user can leave a tab and come back with nothing lost. Activation is\n * automatic on arrow keys by default; pass `activationMode=\"manual\"` when\n * revealing a panel is expensive.\n */\nexport const Tabs = TabsPrimitive.Root;\n\nconst tabsListVariants = cva(\"inline-flex items-center\", {\n variants: {\n variant: {\n /** Pill track. Reads as a segmented control. */\n solid: \"gap-1 rounded-lg bg-muted p-1\",\n /** Underlined. Reads as page-level navigation between views. */\n underline: \"gap-4 border-b border-border\",\n },\n },\n defaultVariants: {\n variant: \"solid\",\n },\n});\n\nconst tabsTriggerVariants = cva(\n cn(\n \"inline-flex items-center justify-center gap-2 text-sm font-medium whitespace-nowrap\",\n \"transition-colors duration-[var(--duration-fast)]\",\n \"disabled:pointer-events-none disabled:opacity-55\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n focusRing,\n ),\n {\n variants: {\n variant: {\n solid: cn(\n \"h-7 rounded-md px-3 text-muted-foreground\",\n \"hover:text-foreground\",\n \"data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs\",\n ),\n underline: cn(\n \"-mb-px h-9 border-b-2 border-transparent px-0.5 text-muted-foreground\",\n \"hover:text-foreground\",\n \"data-[state=active]:border-primary data-[state=active]:text-foreground\",\n ),\n },\n },\n defaultVariants: {\n variant: \"solid\",\n },\n },\n);\n\nexport interface TabsListProps\n extends\n ComponentPropsWithRef<typeof TabsPrimitive.List>,\n VariantProps<typeof tabsListVariants> {}\n\nexport function TabsList({ className, variant, ...props }: TabsListProps) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant ?? \"solid\"}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport interface TabsTriggerProps\n extends\n ComponentPropsWithRef<typeof TabsPrimitive.Trigger>,\n VariantProps<typeof tabsTriggerVariants> {}\n\nexport function TabsTrigger({ className, variant, ...props }: TabsTriggerProps) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(tabsTriggerVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport type TabsContentProps = ComponentPropsWithRef<typeof TabsPrimitive.Content>;\n\nexport function TabsContent({ className, ...props }: TabsContentProps) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"mt-4 outline-none\", focusRing, className)}\n {...props}\n />\n );\n}\n\nexport { tabsListVariants, tabsTriggerVariants };\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,MAAaA,SAAOC,KAAc;AAElC,MAAM,mBAAmB,IAAI,4BAA4B;CACvD,UAAU,EACR,SAAS;;EAEP,OAAO;;EAEP,WAAW;CACb,EACF;CACA,iBAAiB,EACf,SAAS,QACX;AACF,CAAC;AAED,MAAM,sBAAsB,IAC1B,GACE,uFACA,qDACA,oDACA,qFACA,SACF,GACA;CACE,UAAU,EACR,SAAS;EACP,OAAO,GACL,6CACA,yBACA,qGACF;EACA,WAAW,GACT,yEACA,yBACA,wEACF;CACF,EACF;CACA,iBAAiB,EACf,SAAS,QACX;AACF,CACF;AAOA,SAAgB,SAAS,EAAE,WAAW,SAAS,GAAG,SAAwB;CACxE,OACE,oBAACA,KAAc,MAAf;EACE,aAAU;EACV,gBAAc,WAAW;EACzB,WAAW,GAAG,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAOA,SAAgB,YAAY,EAAE,WAAW,SAAS,GAAG,SAA2B;CAC9E,OACE,oBAACA,KAAc,SAAf;EACE,aAAU;EACV,WAAW,GAAG,oBAAoB,EAAE,QAAQ,CAAC,GAAG,SAAS;EACzD,GAAI;CACL,CAAA;AAEL;AAIA,SAAgB,YAAY,EAAE,WAAW,GAAG,SAA2B;CACrE,OACE,oBAACA,KAAc,SAAf;EACE,aAAU;EACV,WAAW,GAAG,qBAAqB,WAAW,SAAS;EACvD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,3 @@
1
+ import { Toast, ToastAction, ToastClose, ToastDescription, ToastPosition, ToastProps, ToastProvider, ToastTitle, Toaster, ToasterProps, toastVariants } from "./toast.js";
2
+ import { DEFAULT_TOAST_DURATION, TOAST_LIMIT, ToastAction as ToastAction$1, ToastOptions, ToastPromiseMessages, ToastRecord, ToastVariant, toast, useToasts } from "./toast-store.js";
3
+ export { DEFAULT_TOAST_DURATION, TOAST_LIMIT, Toast, ToastAction, type ToastAction$1 as ToastActionOptions, ToastClose, ToastDescription, type ToastOptions, type ToastPosition, type ToastPromiseMessages, type ToastProps, ToastProvider, type ToastRecord, ToastTitle, type ToastVariant, Toaster, type ToasterProps, toast, toastVariants, useToasts };
@@ -0,0 +1,3 @@
1
+ import { DEFAULT_TOAST_DURATION, TOAST_LIMIT, toast, useToasts } from "./toast-store.js";
2
+ import { Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, toastVariants } from "./toast.js";
3
+ export { DEFAULT_TOAST_DURATION, TOAST_LIMIT, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, Toaster, toast, toastVariants, useToasts };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/toast/meta.ts
3
+ const meta = defineMeta({
4
+ name: "toast",
5
+ title: "Toast",
6
+ description: "Brief, non-blocking messages with an imperative API callable from anywhere.",
7
+ category: "feedback",
8
+ status: "stable",
9
+ dependencies: ["class-variance-authority", "radix-ui"],
10
+ registryDependencies: [],
11
+ files: ["toast-store.ts", "toast.tsx"],
12
+ a11y: "Toasts are announced through a live region: destructive and warning variants interrupt (foreground), the rest wait for a pause (background). Auto-dismiss timers pause on hover, focus and window blur, and F8 moves focus into the toast list from anywhere. An action must carry altText describing how to do the same thing without the toast, since it may be gone before a screen reader user reaches it."
13
+ });
14
+ //#endregion
15
+ export { meta };
16
+
17
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/toast/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"toast\",\n title: \"Toast\",\n description: \"Brief, non-blocking messages with an imperative API callable from anywhere.\",\n category: \"feedback\",\n status: \"stable\",\n dependencies: [\"class-variance-authority\", \"radix-ui\"],\n registryDependencies: [],\n files: [\"toast-store.ts\", \"toast.tsx\"],\n a11y:\n \"Toasts are announced through a live region: destructive and warning variants interrupt \" +\n \"(foreground), the rest wait for a pause (background). Auto-dismiss timers pause on hover, \" +\n \"focus and window blur, and F8 moves focus into the toast list from anywhere. An action \" +\n \"must carry altText describing how to do the same thing without the toast, since it may \" +\n \"be gone before a screen reader user reaches it.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,4BAA4B,UAAU;CACrD,sBAAsB,CAAC;CACvB,OAAO,CAAC,kBAAkB,WAAW;CACrC,MACE;AAKJ,CAAC"}