@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,24 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { ComponentPropsWithRef } from "react";
3
+ //#region src/components/empty-state/empty-state.d.ts
4
+ declare const emptyStateVariants: (props?: ({
5
+ size?: "sm" | "md" | "lg" | null | undefined;
6
+ bordered?: boolean | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ interface EmptyStateProps extends ComponentPropsWithRef<"div">, VariantProps<typeof emptyStateVariants> {}
9
+ /**
10
+ * Shown where content would be, when there is none.
11
+ *
12
+ * An empty state should say why it is empty and what to do next. "No results"
13
+ * after a search and "nothing here yet" on a new account are different
14
+ * messages, and the second one is where a call to action belongs.
15
+ */
16
+ declare function EmptyState({ className, size, bordered, ...props }: EmptyStateProps): import("react").JSX.Element;
17
+ /** Decorative by default — the title carries the meaning. */
18
+ declare function EmptyStateIcon({ className, ...props }: ComponentPropsWithRef<"div">): import("react").JSX.Element;
19
+ declare function EmptyStateTitle({ className, children, ...props }: ComponentPropsWithRef<"p">): import("react").JSX.Element;
20
+ declare function EmptyStateDescription({ className, ...props }: ComponentPropsWithRef<"p">): import("react").JSX.Element;
21
+ declare function EmptyStateActions({ className, ...props }: ComponentPropsWithRef<"div">): import("react").JSX.Element;
22
+ //#endregion
23
+ export { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateProps, EmptyStateTitle, emptyStateVariants };
24
+ //# sourceMappingURL=empty-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state.d.ts","names":[],"sources":["../../../src/components/empty-state/empty-state.tsx"],"mappings":";;;cAKM,qBAAkB;;;6CAgBtB;UAEe,wBACP,8BAA8B,oBAAoB;;;;;;;;iBAS5C,aAAa,WAAW,MAAM,aAAa,SAAS,kCAAe,IAAA;;iBAWnE,iBAAiB,cAAc,SAAS,+CAA4B,IAAA;iBAepE,kBAAkB,WAAW,aAAa,SAAS,6CAA0B,IAAA;iBAY7E,wBAAwB,cAAc,SAAS,6CAA0B,IAAA;iBAUzE,oBAAoB,cAAc,SAAS,+CAA4B,IAAA"}
@@ -0,0 +1,73 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+ //#region src/components/empty-state/empty-state.tsx
5
+ const emptyStateVariants = cva("flex flex-col items-center justify-center gap-3 text-center", {
6
+ variants: {
7
+ size: {
8
+ sm: "px-4 py-8",
9
+ md: "px-6 py-12",
10
+ lg: "px-8 py-20"
11
+ },
12
+ bordered: {
13
+ true: "rounded-xl border border-dashed border-border",
14
+ false: ""
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ size: "md",
19
+ bordered: false
20
+ }
21
+ });
22
+ /**
23
+ * Shown where content would be, when there is none.
24
+ *
25
+ * An empty state should say why it is empty and what to do next. "No results"
26
+ * after a search and "nothing here yet" on a new account are different
27
+ * messages, and the second one is where a call to action belongs.
28
+ */
29
+ function EmptyState({ className, size, bordered, ...props }) {
30
+ return /* @__PURE__ */ jsx("div", {
31
+ "data-slot": "empty-state",
32
+ className: cn(emptyStateVariants({
33
+ size,
34
+ bordered
35
+ }), className),
36
+ ...props
37
+ });
38
+ }
39
+ /** Decorative by default — the title carries the meaning. */
40
+ function EmptyStateIcon({ className, ...props }) {
41
+ return /* @__PURE__ */ jsx("div", {
42
+ "data-slot": "empty-state-icon",
43
+ "aria-hidden": "true",
44
+ className: cn("grid size-11 place-items-center rounded-full bg-muted text-muted-foreground", "[&_svg:not([class*='size-'])]:size-5", className),
45
+ ...props
46
+ });
47
+ }
48
+ function EmptyStateTitle({ className, children, ...props }) {
49
+ return /* @__PURE__ */ jsx("p", {
50
+ "data-slot": "empty-state-title",
51
+ className: cn("text-base font-medium text-foreground", className),
52
+ ...props,
53
+ children
54
+ });
55
+ }
56
+ function EmptyStateDescription({ className, ...props }) {
57
+ return /* @__PURE__ */ jsx("p", {
58
+ "data-slot": "empty-state-description",
59
+ className: cn("max-w-sm text-sm text-balance text-muted-foreground", className),
60
+ ...props
61
+ });
62
+ }
63
+ function EmptyStateActions({ className, ...props }) {
64
+ return /* @__PURE__ */ jsx("div", {
65
+ "data-slot": "empty-state-actions",
66
+ className: cn("mt-1 flex flex-wrap items-center justify-center gap-2", className),
67
+ ...props
68
+ });
69
+ }
70
+ //#endregion
71
+ export { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, emptyStateVariants };
72
+
73
+ //# sourceMappingURL=empty-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state.js","names":[],"sources":["../../../src/components/empty-state/empty-state.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst emptyStateVariants = cva(\"flex flex-col items-center justify-center gap-3 text-center\", {\n variants: {\n size: {\n sm: \"px-4 py-8\",\n md: \"px-6 py-12\",\n lg: \"px-8 py-20\",\n },\n bordered: {\n true: \"rounded-xl border border-dashed border-border\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n bordered: false,\n },\n});\n\nexport interface EmptyStateProps\n extends ComponentPropsWithRef<\"div\">, VariantProps<typeof emptyStateVariants> {}\n\n/**\n * Shown where content would be, when there is none.\n *\n * An empty state should say why it is empty and what to do next. \"No results\"\n * after a search and \"nothing here yet\" on a new account are different\n * messages, and the second one is where a call to action belongs.\n */\nexport function EmptyState({ className, size, bordered, ...props }: EmptyStateProps) {\n return (\n <div\n data-slot=\"empty-state\"\n className={cn(emptyStateVariants({ size, bordered }), className)}\n {...props}\n />\n );\n}\n\n/** Decorative by default — the title carries the meaning. */\nexport function EmptyStateIcon({ className, ...props }: ComponentPropsWithRef<\"div\">) {\n return (\n <div\n data-slot=\"empty-state-icon\"\n aria-hidden=\"true\"\n className={cn(\n \"grid size-11 place-items-center rounded-full bg-muted text-muted-foreground\",\n \"[&_svg:not([class*='size-'])]:size-5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport function EmptyStateTitle({ className, children, ...props }: ComponentPropsWithRef<\"p\">) {\n return (\n <p\n data-slot=\"empty-state-title\"\n className={cn(\"text-base font-medium text-foreground\", className)}\n {...props}\n >\n {children}\n </p>\n );\n}\n\nexport function EmptyStateDescription({ className, ...props }: ComponentPropsWithRef<\"p\">) {\n return (\n <p\n data-slot=\"empty-state-description\"\n className={cn(\"max-w-sm text-sm text-balance text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport function EmptyStateActions({ className, ...props }: ComponentPropsWithRef<\"div\">) {\n return (\n <div\n data-slot=\"empty-state-actions\"\n className={cn(\"mt-1 flex flex-wrap items-center justify-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nexport { emptyStateVariants };\n"],"mappings":";;;;AAKA,MAAM,qBAAqB,IAAI,+DAA+D;CAC5F,UAAU;EACR,MAAM;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;EACN;EACA,UAAU;GACR,MAAM;GACN,OAAO;EACT;CACF;CACA,iBAAiB;EACf,MAAM;EACN,UAAU;CACZ;AACF,CAAC;;;;;;;;AAYD,SAAgB,WAAW,EAAE,WAAW,MAAM,UAAU,GAAG,SAA0B;CACnF,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,mBAAmB;GAAE;GAAM;EAAS,CAAC,GAAG,SAAS;EAC/D,GAAI;CACL,CAAA;AAEL;;AAGA,SAAgB,eAAe,EAAE,WAAW,GAAG,SAAuC;CACpF,OACE,oBAAC,OAAD;EACE,aAAU;EACV,eAAY;EACZ,WAAW,GACT,+EACA,wCACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,gBAAgB,EAAE,WAAW,UAAU,GAAG,SAAqC;CAC7F,OACE,oBAAC,KAAD;EACE,aAAU;EACV,WAAW,GAAG,yCAAyC,SAAS;EAChE,GAAI;EAEH;CACA,CAAA;AAEP;AAEA,SAAgB,sBAAsB,EAAE,WAAW,GAAG,SAAqC;CACzF,OACE,oBAAC,KAAD;EACE,aAAU;EACV,WAAW,GAAG,uDAAuD,SAAS;EAC9E,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,kBAAkB,EAAE,WAAW,GAAG,SAAuC;CACvF,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,yDAAyD,SAAS;EAChF,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ import { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateProps, EmptyStateTitle, emptyStateVariants } from "./empty-state.js";
2
+ export { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, type EmptyStateProps, EmptyStateTitle, emptyStateVariants };
@@ -0,0 +1,2 @@
1
+ import { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, emptyStateVariants } from "./empty-state.js";
2
+ export { EmptyState, EmptyStateActions, EmptyStateDescription, EmptyStateIcon, EmptyStateTitle, emptyStateVariants };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/empty-state/meta.ts
3
+ const meta = defineMeta({
4
+ name: "empty-state",
5
+ title: "Empty State",
6
+ description: "Shown where content would be, explaining why it is empty and what to do next.",
7
+ category: "feedback",
8
+ status: "stable",
9
+ dependencies: ["class-variance-authority"],
10
+ registryDependencies: [],
11
+ files: ["empty-state.tsx"],
12
+ a11y: "A plain container with no implicit landmark or live region. When it replaces content after a search, put aria-live on the results region so the change is announced. The icon is decorative — the title has to carry the message on its own."
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/empty-state/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"empty-state\",\n title: \"Empty State\",\n description: \"Shown where content would be, explaining why it is empty and what to do next.\",\n category: \"feedback\",\n status: \"stable\",\n dependencies: [\"class-variance-authority\"],\n registryDependencies: [],\n files: [\"empty-state.tsx\"],\n a11y:\n \"A plain container with no implicit landmark or live region. When it replaces content after \" +\n \"a search, put aria-live on the results region so the change is announced. The icon is \" +\n \"decorative — the title has to carry the message on its own.\",\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,iBAAiB;CACzB,MACE;AAGJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { Label, Slot } from "radix-ui";
2
+ import { ComponentPropsWithRef, ReactNode } from "react";
3
+ //#region src/components/form/form.d.ts
4
+ type FormProps = ComponentPropsWithRef<"form">;
5
+ /**
6
+ * A form element.
7
+ *
8
+ * `noValidate` is on by default: when the form renders its own messages, the
9
+ * browser's validation bubbles compete with them, appear in a different visual
10
+ * language, and cannot be styled. Pass `noValidate={false}` to opt back in.
11
+ */
12
+ declare function Form({ className, noValidate, ...props }: FormProps): import("react").JSX.Element;
13
+ interface FormFieldProps extends ComponentPropsWithRef<"div"> {
14
+ /** Field name, mirrored onto the wrapper for form-library integration. */
15
+ name?: string;
16
+ /** Present when the field is invalid. Its content is rendered by FormMessage. */
17
+ error?: ReactNode;
18
+ }
19
+ declare function FormField({ className, name, error, ...props }: FormFieldProps): import("react").JSX.Element;
20
+ type FormLabelProps = ComponentPropsWithRef<typeof Label.Root>;
21
+ declare function FormLabel({ className, ...props }: FormLabelProps): import("react").JSX.Element;
22
+ type FormControlProps = ComponentPropsWithRef<typeof Slot.Root>;
23
+ /**
24
+ * Injects the field's id and ARIA attributes into its single child.
25
+ *
26
+ * Takes the control as a child rather than rendering one, so it works with any
27
+ * input: our Input, a native select, a third-party editor.
28
+ */
29
+ declare function FormControl(props: FormControlProps): import("react").JSX.Element;
30
+ declare function FormDescription({ className, ...props }: ComponentPropsWithRef<"p">): import("react").JSX.Element;
31
+ type FormMessageProps = ComponentPropsWithRef<"p">;
32
+ /**
33
+ * Renders the field's error.
34
+ *
35
+ * Renders nothing when there is no error and no children, so the layout does
36
+ * not reserve space for a message that may never appear. It is a polite live
37
+ * region: a validation message that arrives after the user has moved on should
38
+ * be announced, but should not interrupt what is being read.
39
+ */
40
+ declare function FormMessage({ className, children, ...props }: FormMessageProps): import("react").JSX.Element | null;
41
+ //#endregion
42
+ export { Form, FormControl, FormControlProps, FormDescription, FormField, FormFieldProps, FormLabel, FormLabelProps, FormMessage, FormMessageProps, FormProps };
43
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","names":[],"sources":["../../../src/components/form/form.tsx"],"mappings":";;;KA4DY,YAAY;;;;;;;;iBASR,OAAO,WAAW,eAAsB,SAAS,4BAAS,IAAA;UAWzD,uBAAuB;;EAEtC;;EAEA,QAAQ;;iBAGM,YAAY,WAAW,MAAM,UAAU,SAAS,iCAAc,IAAA;KAqClE,iBAAiB,6BAA6B,MAAe;iBAEzD,YAAY,cAAc,SAAS,iCAAc,IAAA;KAmBrD,mBAAmB,6BAA6B,KAAK;;;;;;;iBAQjD,YAAY,OAAO,mCAAgB,IAAA;iBAmBnC,kBAAkB,cAAc,SAAS,6CAA0B,IAAA;KAoBvE,mBAAmB;;;;;;;;;iBAUf,cAAc,WAAW,aAAa,SAAS,mCAAgB,IAAA"}
@@ -0,0 +1,127 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { Label, Slot } from "radix-ui";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { createContext, useCallback, useContext, useEffect, useId, useMemo, useState } from "react";
6
+ //#region src/components/form/form.tsx
7
+ const FormFieldContext = createContext(null);
8
+ function useFormField(component) {
9
+ const context = useContext(FormFieldContext);
10
+ if (!context) throw new Error(`${component} must be rendered inside <FormField>.`);
11
+ return context;
12
+ }
13
+ /**
14
+ * A form element.
15
+ *
16
+ * `noValidate` is on by default: when the form renders its own messages, the
17
+ * browser's validation bubbles compete with them, appear in a different visual
18
+ * language, and cannot be styled. Pass `noValidate={false}` to opt back in.
19
+ */
20
+ function Form({ className, noValidate = true, ...props }) {
21
+ return /* @__PURE__ */ jsx("form", {
22
+ "data-slot": "form",
23
+ noValidate,
24
+ className: cn("grid gap-6", className),
25
+ ...props
26
+ });
27
+ }
28
+ function FormField({ className, name, error, ...props }) {
29
+ const uid = useId();
30
+ const [hasDescription, setHasDescription] = useState(false);
31
+ const registerDescription = useCallback((present) => {
32
+ setHasDescription(present);
33
+ }, []);
34
+ const value = useMemo(() => ({
35
+ id: `${uid}-control`,
36
+ name,
37
+ descriptionId: `${uid}-description`,
38
+ messageId: `${uid}-message`,
39
+ error,
40
+ hasDescription,
41
+ registerDescription
42
+ }), [
43
+ uid,
44
+ name,
45
+ error,
46
+ hasDescription,
47
+ registerDescription
48
+ ]);
49
+ return /* @__PURE__ */ jsx(FormFieldContext.Provider, {
50
+ value,
51
+ children: /* @__PURE__ */ jsx("div", {
52
+ "data-slot": "form-field",
53
+ "data-name": name,
54
+ "data-invalid": error ? true : void 0,
55
+ className: cn("grid gap-2", className),
56
+ ...props
57
+ })
58
+ });
59
+ }
60
+ function FormLabel({ className, ...props }) {
61
+ const { id, error } = useFormField("FormLabel");
62
+ return /* @__PURE__ */ jsx(Label.Root, {
63
+ "data-slot": "form-label",
64
+ "data-invalid": error ? true : void 0,
65
+ htmlFor: id,
66
+ className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none", "peer-disabled:cursor-not-allowed peer-disabled:opacity-55", error && "text-destructive", className),
67
+ ...props
68
+ });
69
+ }
70
+ /**
71
+ * Injects the field's id and ARIA attributes into its single child.
72
+ *
73
+ * Takes the control as a child rather than rendering one, so it works with any
74
+ * input: our Input, a native select, a third-party editor.
75
+ */
76
+ function FormControl(props) {
77
+ const { id, error, messageId, descriptionId, hasDescription } = useFormField("FormControl");
78
+ const describedBy = [hasDescription ? descriptionId : null, error ? messageId : null].filter(Boolean).join(" ") || void 0;
79
+ return /* @__PURE__ */ jsx(Slot.Root, {
80
+ "data-slot": "form-control",
81
+ id,
82
+ "aria-describedby": describedBy,
83
+ "aria-invalid": error ? true : void 0,
84
+ ...props
85
+ });
86
+ }
87
+ function FormDescription({ className, ...props }) {
88
+ const { descriptionId, registerDescription } = useFormField("FormDescription");
89
+ useEffect(() => {
90
+ registerDescription(true);
91
+ return () => {
92
+ registerDescription(false);
93
+ };
94
+ }, [registerDescription]);
95
+ return /* @__PURE__ */ jsx("p", {
96
+ "data-slot": "form-description",
97
+ id: descriptionId,
98
+ className: cn("text-xs text-muted-foreground", className),
99
+ ...props
100
+ });
101
+ }
102
+ /**
103
+ * Renders the field's error.
104
+ *
105
+ * Renders nothing when there is no error and no children, so the layout does
106
+ * not reserve space for a message that may never appear. It is a polite live
107
+ * region: a validation message that arrives after the user has moved on should
108
+ * be announced, but should not interrupt what is being read.
109
+ */
110
+ function FormMessage({ className, children, ...props }) {
111
+ const { messageId, error } = useFormField("FormMessage");
112
+ const content = children ?? error;
113
+ if (!content) return null;
114
+ return /* @__PURE__ */ jsx("p", {
115
+ "data-slot": "form-message",
116
+ id: messageId,
117
+ role: "status",
118
+ "aria-live": "polite",
119
+ className: cn("text-xs font-medium text-destructive", className),
120
+ ...props,
121
+ children: content
122
+ });
123
+ }
124
+ //#endregion
125
+ export { Form, FormControl, FormDescription, FormField, FormLabel, FormMessage };
126
+
127
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","names":["LabelPrimitive"],"sources":["../../../src/components/form/form.tsx"],"sourcesContent":["\"use client\";\n\nimport { Label as LabelPrimitive, Slot } from \"radix-ui\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Accessible wiring for form fields.\n *\n * Deliberately **not** bound to a form library. What is actually hard about a\n * form field is the ARIA plumbing — generating an id, pointing the label at the\n * control, assembling `aria-describedby` from the description and the error,\n * and flipping `aria-invalid` — and that plumbing is identical whether the\n * state comes from `useState`, React Hook Form, Formik or a server action.\n *\n * Binding to one library would make everyone else install it to get the\n * plumbing, and would make the source you own harder to change. Pass `error`\n * from whatever holds your state:\n *\n * <FormField name=\"email\" error={errors.email?.message}>\n * <FormLabel>Email</FormLabel>\n * <FormControl>\n * <Input {...register(\"email\")} />\n * </FormControl>\n * <FormDescription>We will never share it.</FormDescription>\n * <FormMessage />\n * </FormField>\n */\n\ninterface FormFieldContextValue {\n id: string;\n name: string | undefined;\n descriptionId: string;\n messageId: string;\n error: ReactNode;\n hasDescription: boolean;\n registerDescription: (present: boolean) => void;\n}\n\nconst FormFieldContext = createContext<FormFieldContextValue | null>(null);\n\nfunction useFormField(component: string): FormFieldContextValue {\n const context = useContext(FormFieldContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <FormField>.`);\n }\n return context;\n}\n\nexport type FormProps = ComponentPropsWithRef<\"form\">;\n\n/**\n * A form element.\n *\n * `noValidate` is on by default: when the form renders its own messages, the\n * browser's validation bubbles compete with them, appear in a different visual\n * language, and cannot be styled. Pass `noValidate={false}` to opt back in.\n */\nexport function Form({ className, noValidate = true, ...props }: FormProps) {\n return (\n <form\n data-slot=\"form\"\n noValidate={noValidate}\n className={cn(\"grid gap-6\", className)}\n {...props}\n />\n );\n}\n\nexport interface FormFieldProps extends ComponentPropsWithRef<\"div\"> {\n /** Field name, mirrored onto the wrapper for form-library integration. */\n name?: string;\n /** Present when the field is invalid. Its content is rendered by FormMessage. */\n error?: ReactNode;\n}\n\nexport function FormField({ className, name, error, ...props }: FormFieldProps) {\n const uid = useId();\n // Description presence is tracked rather than assumed: aria-describedby must\n // not name an element that was never rendered. axe flags a dangling reference,\n // and a screen reader announces nothing for it.\n const [hasDescription, setHasDescription] = useState(false);\n\n const registerDescription = useCallback((present: boolean) => {\n setHasDescription(present);\n }, []);\n\n const value = useMemo<FormFieldContextValue>(\n () => ({\n id: `${uid}-control`,\n name,\n descriptionId: `${uid}-description`,\n messageId: `${uid}-message`,\n error,\n hasDescription,\n registerDescription,\n }),\n [uid, name, error, hasDescription, registerDescription],\n );\n\n return (\n <FormFieldContext.Provider value={value}>\n <div\n data-slot=\"form-field\"\n data-name={name}\n data-invalid={error ? true : undefined}\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormFieldContext.Provider>\n );\n}\n\nexport type FormLabelProps = ComponentPropsWithRef<typeof LabelPrimitive.Root>;\n\nexport function FormLabel({ className, ...props }: FormLabelProps) {\n const { id, error } = useFormField(\"FormLabel\");\n\n return (\n <LabelPrimitive.Root\n data-slot=\"form-label\"\n data-invalid={error ? true : undefined}\n htmlFor={id}\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-55\",\n error && \"text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport type FormControlProps = ComponentPropsWithRef<typeof Slot.Root>;\n\n/**\n * Injects the field's id and ARIA attributes into its single child.\n *\n * Takes the control as a child rather than rendering one, so it works with any\n * input: our Input, a native select, a third-party editor.\n */\nexport function FormControl(props: FormControlProps) {\n const { id, error, messageId, descriptionId, hasDescription } = useFormField(\"FormControl\");\n\n const describedBy =\n [hasDescription ? descriptionId : null, error ? messageId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <Slot.Root\n data-slot=\"form-control\"\n id={id}\n aria-describedby={describedBy}\n aria-invalid={error ? true : undefined}\n {...props}\n />\n );\n}\n\nexport function FormDescription({ className, ...props }: ComponentPropsWithRef<\"p\">) {\n const { descriptionId, registerDescription } = useFormField(\"FormDescription\");\n\n useEffect(() => {\n registerDescription(true);\n return () => {\n registerDescription(false);\n };\n }, [registerDescription]);\n\n return (\n <p\n data-slot=\"form-description\"\n id={descriptionId}\n className={cn(\"text-xs text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport type FormMessageProps = ComponentPropsWithRef<\"p\">;\n\n/**\n * Renders the field's error.\n *\n * Renders nothing when there is no error and no children, so the layout does\n * not reserve space for a message that may never appear. It is a polite live\n * region: a validation message that arrives after the user has moved on should\n * be announced, but should not interrupt what is being read.\n */\nexport function FormMessage({ className, children, ...props }: FormMessageProps) {\n const { messageId, error } = useFormField(\"FormMessage\");\n const content = children ?? error;\n\n if (!content) return null;\n\n return (\n <p\n data-slot=\"form-message\"\n id={messageId}\n role=\"status\"\n aria-live=\"polite\"\n className={cn(\"text-xs font-medium text-destructive\", className)}\n {...props}\n >\n {content}\n </p>\n );\n}\n"],"mappings":";;;;;;AAkDA,MAAM,mBAAmB,cAA4C,IAAI;AAEzE,SAAS,aAAa,WAA0C;CAC9D,MAAM,UAAU,WAAW,gBAAgB;CAC3C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,GAAG,UAAU,sCAAsC;CAErE,OAAO;AACT;;;;;;;;AAWA,SAAgB,KAAK,EAAE,WAAW,aAAa,MAAM,GAAG,SAAoB;CAC1E,OACE,oBAAC,QAAD;EACE,aAAU;EACE;EACZ,WAAW,GAAG,cAAc,SAAS;EACrC,GAAI;CACL,CAAA;AAEL;AASA,SAAgB,UAAU,EAAE,WAAW,MAAM,OAAO,GAAG,SAAyB;CAC9E,MAAM,MAAM,MAAM;CAIlB,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,KAAK;CAE1D,MAAM,sBAAsB,aAAa,YAAqB;EAC5D,kBAAkB,OAAO;CAC3B,GAAG,CAAC,CAAC;CAEL,MAAM,QAAQ,eACL;EACL,IAAI,GAAG,IAAI;EACX;EACA,eAAe,GAAG,IAAI;EACtB,WAAW,GAAG,IAAI;EAClB;EACA;EACA;CACF,IACA;EAAC;EAAK;EAAM;EAAO;EAAgB;CAAmB,CACxD;CAEA,OACE,oBAAC,iBAAiB,UAAlB;EAAkC;EAChC,UAAA,oBAAC,OAAD;GACE,aAAU;GACV,aAAW;GACX,gBAAc,QAAQ,OAAO,KAAA;GAC7B,WAAW,GAAG,cAAc,SAAS;GACrC,GAAI;EACL,CAAA;CACwB,CAAA;AAE/B;AAIA,SAAgB,UAAU,EAAE,WAAW,GAAG,SAAyB;CACjE,MAAM,EAAE,IAAI,UAAU,aAAa,WAAW;CAE9C,OACE,oBAACA,MAAe,MAAhB;EACE,aAAU;EACV,gBAAc,QAAQ,OAAO,KAAA;EAC7B,SAAS;EACT,WAAW,GACT,wEACA,6DACA,SAAS,oBACT,SACF;EACA,GAAI;CACL,CAAA;AAEL;;;;;;;AAUA,SAAgB,YAAY,OAAyB;CACnD,MAAM,EAAE,IAAI,OAAO,WAAW,eAAe,mBAAmB,aAAa,aAAa;CAE1F,MAAM,cACJ,CAAC,iBAAiB,gBAAgB,MAAM,QAAQ,YAAY,IAAI,CAAC,CAC9D,OAAO,OAAO,CAAC,CACf,KAAK,GAAG,KAAK,KAAA;CAElB,OACE,oBAAC,KAAK,MAAN;EACE,aAAU;EACN;EACJ,oBAAkB;EAClB,gBAAc,QAAQ,OAAO,KAAA;EAC7B,GAAI;CACL,CAAA;AAEL;AAEA,SAAgB,gBAAgB,EAAE,WAAW,GAAG,SAAqC;CACnF,MAAM,EAAE,eAAe,wBAAwB,aAAa,iBAAiB;CAE7E,gBAAgB;EACd,oBAAoB,IAAI;EACxB,aAAa;GACX,oBAAoB,KAAK;EAC3B;CACF,GAAG,CAAC,mBAAmB,CAAC;CAExB,OACE,oBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,iCAAiC,SAAS;EACxD,GAAI;CACL,CAAA;AAEL;;;;;;;;;AAYA,SAAgB,YAAY,EAAE,WAAW,UAAU,GAAG,SAA2B;CAC/E,MAAM,EAAE,WAAW,UAAU,aAAa,aAAa;CACvD,MAAM,UAAU,YAAY;CAE5B,IAAI,CAAC,SAAS,OAAO;CAErB,OACE,oBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,MAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,SAAS;EAC/D,GAAI;EAEH,UAAA;CACA,CAAA;AAEP"}
@@ -0,0 +1,2 @@
1
+ import { Form, FormControl, FormControlProps, FormDescription, FormField, FormFieldProps, FormLabel, FormLabelProps, FormMessage, FormMessageProps, FormProps } from "./form.js";
2
+ export { Form, FormControl, type FormControlProps, FormDescription, FormField, type FormFieldProps, FormLabel, type FormLabelProps, FormMessage, type FormMessageProps, type FormProps };
@@ -0,0 +1,2 @@
1
+ import { Form, FormControl, FormDescription, FormField, FormLabel, FormMessage } from "./form.js";
2
+ export { Form, FormControl, FormDescription, FormField, FormLabel, FormMessage };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/form/meta.ts
3
+ const meta = defineMeta({
4
+ name: "form",
5
+ title: "Form",
6
+ description: "Accessible field wiring that works with any form library, or none.",
7
+ category: "form",
8
+ status: "stable",
9
+ dependencies: ["radix-ui"],
10
+ registryDependencies: [],
11
+ files: ["form.tsx"],
12
+ a11y: "FormField generates the id, points the Label at the control, and assembles aria-describedby from whichever of the description and error are actually present — a dangling reference announces nothing and is flagged by axe. aria-invalid follows the error. FormMessage is a polite live region, so a late validation message is announced without interrupting."
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/form/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"form\",\n title: \"Form\",\n description: \"Accessible field wiring that works with any form library, or none.\",\n category: \"form\",\n status: \"stable\",\n dependencies: [\"radix-ui\"],\n registryDependencies: [],\n files: [\"form.tsx\"],\n a11y:\n \"FormField generates the id, points the Label at the control, and assembles aria-describedby \" +\n \"from whichever of the description and error are actually present — a dangling reference \" +\n \"announces nothing and is flagged by axe. aria-invalid follows the error. FormMessage is a \" +\n \"polite live region, so a late validation message is announced without interrupting.\",\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,UAAU;CAClB,MACE;AAIJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Input, InputProps, inputVariants } from "./input.js";
2
+ export { Input, type InputProps, inputVariants };
@@ -0,0 +1,2 @@
1
+ import { Input, inputVariants } from "./input.js";
2
+ export { Input, inputVariants };
@@ -0,0 +1,21 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { ComponentPropsWithRef } from "react";
3
+ //#region src/components/input/input.d.ts
4
+ declare const inputVariants: (props?: ({
5
+ inputSize?: "sm" | "md" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ interface InputProps extends ComponentPropsWithRef<"input">, VariantProps<typeof inputVariants> {}
8
+ /**
9
+ * Single-line text field.
10
+ *
11
+ * The visual size prop is named `inputSize` rather than `size` because `size`
12
+ * is a native `<input>` attribute with unrelated semantics (a character-count
13
+ * width hint). Naming it apart keeps both available instead of shadowing one.
14
+ *
15
+ * Error styling is driven by the native `aria-invalid` attribute rather than a
16
+ * bespoke prop, so form libraries wire it up without an adapter.
17
+ */
18
+ declare function Input({ className, inputSize, type, ...props }: InputProps): import("react").JSX.Element;
19
+ //#endregion
20
+ export { Input, InputProps, inputVariants };
21
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","names":[],"sources":["../../../src/components/input/input.tsx"],"mappings":";;;cAMM,gBAAa;;6CAuBlB;UAEgB,mBACP,gCAAgC,oBAAoB;;;;;;;;;;;iBAY9C,QAAQ,WAAW,WAAW,SAAkB,SAAS,6BAAU,IAAA"}
@@ -0,0 +1,34 @@
1
+ import { focusRingInset, invalidStyles } from "../../lib/styles.js";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+ //#region src/components/input/input.tsx
6
+ const inputVariants = cva(cn("flex w-full min-w-0 rounded-md border border-input bg-background text-foreground shadow-xs", "transition-[border-color,box-shadow] duration-[var(--duration-fast)] ease-[var(--ease-out-quint)]", "placeholder:text-muted-foreground", "file:mr-3 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground", "focus-visible:border-ring", "disabled:cursor-not-allowed disabled:opacity-55", focusRingInset, invalidStyles), {
7
+ variants: { inputSize: {
8
+ sm: "h-8 px-2.5 text-sm",
9
+ md: "h-9 px-3 text-sm",
10
+ lg: "h-10 px-3.5 text-base"
11
+ } },
12
+ defaultVariants: { inputSize: "md" }
13
+ });
14
+ /**
15
+ * Single-line text field.
16
+ *
17
+ * The visual size prop is named `inputSize` rather than `size` because `size`
18
+ * is a native `<input>` attribute with unrelated semantics (a character-count
19
+ * width hint). Naming it apart keeps both available instead of shadowing one.
20
+ *
21
+ * Error styling is driven by the native `aria-invalid` attribute rather than a
22
+ * bespoke prop, so form libraries wire it up without an adapter.
23
+ */
24
+ function Input({ className, inputSize, type = "text", ...props }) {
25
+ return /* @__PURE__ */ jsx("input", {
26
+ type,
27
+ className: cn(inputVariants({ inputSize }), className),
28
+ ...props
29
+ });
30
+ }
31
+ //#endregion
32
+ export { Input, inputVariants };
33
+
34
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","names":[],"sources":["../../../src/components/input/input.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { focusRingInset, invalidStyles } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\nconst inputVariants = cva(\n cn(\n \"flex w-full min-w-0 rounded-md border border-input bg-background text-foreground shadow-xs\",\n \"transition-[border-color,box-shadow] duration-[var(--duration-fast)] ease-[var(--ease-out-quint)]\",\n \"placeholder:text-muted-foreground\",\n \"file:mr-3 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground\",\n \"focus-visible:border-ring\",\n \"disabled:cursor-not-allowed disabled:opacity-55\",\n focusRingInset,\n invalidStyles,\n ),\n {\n variants: {\n inputSize: {\n sm: \"h-8 px-2.5 text-sm\",\n md: \"h-9 px-3 text-sm\",\n lg: \"h-10 px-3.5 text-base\",\n },\n },\n defaultVariants: {\n inputSize: \"md\",\n },\n },\n);\n\nexport interface InputProps\n extends ComponentPropsWithRef<\"input\">, VariantProps<typeof inputVariants> {}\n\n/**\n * Single-line text field.\n *\n * The visual size prop is named `inputSize` rather than `size` because `size`\n * is a native `<input>` attribute with unrelated semantics (a character-count\n * width hint). Naming it apart keeps both available instead of shadowing one.\n *\n * Error styling is driven by the native `aria-invalid` attribute rather than a\n * bespoke prop, so form libraries wire it up without an adapter.\n */\nexport function Input({ className, inputSize, type = \"text\", ...props }: InputProps) {\n return (\n <input type={type} className={cn(inputVariants({ inputSize }), className)} {...props} />\n );\n}\n\nexport { inputVariants };\n"],"mappings":";;;;;AAMA,MAAM,gBAAgB,IACpB,GACE,8FACA,qGACA,qCACA,kGACA,6BACA,mDACA,gBACA,aACF,GACA;CACE,UAAU,EACR,WAAW;EACT,IAAI;EACJ,IAAI;EACJ,IAAI;CACN,EACF;CACA,iBAAiB,EACf,WAAW,KACb;AACF,CACF;;;;;;;;;;;AAeA,SAAgB,MAAM,EAAE,WAAW,WAAW,OAAO,QAAQ,GAAG,SAAqB;CACnF,OACE,oBAAC,SAAD;EAAa;EAAM,WAAW,GAAG,cAAc,EAAE,UAAU,CAAC,GAAG,SAAS;EAAG,GAAI;CAAQ,CAAA;AAE3F"}
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/input/meta.ts
3
+ const meta = defineMeta({
4
+ name: "input",
5
+ title: "Input",
6
+ description: "A single-line text field with size variants and native validation styling.",
7
+ category: "form",
8
+ status: "stable",
9
+ dependencies: ["class-variance-authority"],
10
+ registryDependencies: [],
11
+ files: ["input.tsx"],
12
+ a11y: "Always pair with a Label via htmlFor/id. Error state is driven by aria-invalid so assistive technology and styling stay in sync; describe the error with aria-describedby."
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/input/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"input\",\n title: \"Input\",\n description: \"A single-line text field with size variants and native validation styling.\",\n category: \"form\",\n status: \"stable\",\n dependencies: [\"class-variance-authority\"],\n registryDependencies: [],\n files: [\"input.tsx\"],\n a11y:\n \"Always pair with a Label via htmlFor/id. Error state is driven by aria-invalid so \" +\n \"assistive technology and styling stay in sync; describe the error with aria-describedby.\",\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,WAAW;CACnB,MACE;AAEJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Label, LabelProps } from "./label.js";
2
+ export { Label, type LabelProps };
@@ -0,0 +1,2 @@
1
+ import { Label } from "./label.js";
2
+ export { Label };
@@ -0,0 +1,14 @@
1
+ import { Label } from "radix-ui";
2
+ import { ComponentPropsWithRef } from "react";
3
+ //#region src/components/label/label.d.ts
4
+ type LabelProps = ComponentPropsWithRef<typeof Label.Root>;
5
+ /**
6
+ * Caption for a form control.
7
+ *
8
+ * Built on the Radix primitive so clicking the label focuses its control even
9
+ * when the control is a composite widget rather than a native input.
10
+ */
11
+ declare function Label$1({ className, ...props }: LabelProps): import("react").JSX.Element;
12
+ //#endregion
13
+ export { Label$1 as Label, LabelProps };
14
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","names":[],"sources":["../../../src/components/label/label.tsx"],"mappings":";;;KAKY,aAAa,6BAA6B,MAAe;;;;;;;iBAQrD,UAAQ,cAAc,SAAS,6BAAU,IAAA"}
@@ -0,0 +1,20 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { Label } from "radix-ui";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/label/label.tsx
5
+ /**
6
+ * Caption for a form control.
7
+ *
8
+ * Built on the Radix primitive so clicking the label focuses its control even
9
+ * when the control is a composite widget rather than a native input.
10
+ */
11
+ function Label$1({ className, ...props }) {
12
+ return /* @__PURE__ */ jsx(Label.Root, {
13
+ className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none", "peer-disabled:cursor-not-allowed peer-disabled:opacity-55", "group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-55", className),
14
+ ...props
15
+ });
16
+ }
17
+ //#endregion
18
+ export { Label$1 as Label };
19
+
20
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","names":["Label","LabelPrimitive"],"sources":["../../../src/components/label/label.tsx"],"sourcesContent":["import { Label as LabelPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type LabelProps = ComponentPropsWithRef<typeof LabelPrimitive.Root>;\n\n/**\n * Caption for a form control.\n *\n * Built on the Radix primitive so clicking the label focuses its control even\n * when the control is a composite widget rather than a native input.\n */\nexport function Label({ className, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-55\",\n \"group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-55\",\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAgBA,QAAM,EAAE,WAAW,GAAG,SAAqB;CACzD,OACE,oBAACC,MAAe,MAAhB;EACE,WAAW,GACT,wEACA,6DACA,wFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/label/meta.ts
3
+ const meta = defineMeta({
4
+ name: "label",
5
+ title: "Label",
6
+ description: "An accessible caption that associates text with a form control.",
7
+ category: "form",
8
+ status: "stable",
9
+ dependencies: ["radix-ui"],
10
+ registryDependencies: [],
11
+ files: ["label.tsx"],
12
+ a11y: "Set htmlFor to the id of the control it labels. Clicking the label moves focus to that control, including composite widgets that are not native inputs."
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/label/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"label\",\n title: \"Label\",\n description: \"An accessible caption that associates text with a form control.\",\n category: \"form\",\n status: \"stable\",\n dependencies: [\"radix-ui\"],\n registryDependencies: [],\n files: [\"label.tsx\"],\n a11y:\n \"Set htmlFor to the id of the control it labels. Clicking the label moves focus to that \" +\n \"control, including composite widgets that are not native inputs.\",\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,WAAW;CACnB,MACE;AAEJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationLinkProps, PaginationNext, PaginationPrevious } from "./pagination.js";
2
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious };
@@ -0,0 +1,2 @@
1
+ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious } from "./pagination.js";
2
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
@@ -0,0 +1,17 @@
1
+ import { defineMeta } from "../../registry/schema.js";
2
+ //#region src/components/pagination/meta.ts
3
+ const meta = defineMeta({
4
+ name: "pagination",
5
+ title: "Pagination",
6
+ description: "Navigation between pages of a list.",
7
+ category: "navigation",
8
+ status: "stable",
9
+ dependencies: ["radix-ui"],
10
+ registryDependencies: ["button"],
11
+ files: ["pagination.tsx"],
12
+ a11y: "A named nav landmark. The current page carries aria-current=\"page\" — styling it differently conveys nothing on its own. Links by default, since a page of results is a place worth sharing; use asChild for your router's link, or render buttons when paging only changes client state."
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/pagination/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"pagination\",\n title: \"Pagination\",\n description: \"Navigation between pages of a list.\",\n category: \"navigation\",\n status: \"stable\",\n dependencies: [\"radix-ui\"],\n registryDependencies: [\"button\"],\n files: [\"pagination.tsx\"],\n a11y:\n 'A named nav landmark. The current page carries aria-current=\"page\" — styling it ' +\n \"differently conveys nothing on its own. Links by default, since a page of results is a \" +\n \"place worth sharing; use asChild for your router's link, or render buttons when paging \" +\n \"only changes client state.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,UAAU;CACzB,sBAAsB,CAAC,QAAQ;CAC/B,OAAO,CAAC,gBAAgB;CACxB,MACE;AAIJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { ComponentPropsWithRef } from "react";
2
+ //#region src/components/pagination/pagination.d.ts
3
+ /**
4
+ * Navigation between pages of a list.
5
+ *
6
+ * Rendered as links by default, not buttons: a page of results is a place, so
7
+ * it should be shareable, openable in a new tab and part of history. Use
8
+ * `asChild` to hand off to your router's link. For pagination that only changes
9
+ * client state, render buttons instead — `PaginationLink` accepts either.
10
+ */
11
+ declare function Pagination({ className, ...props }: ComponentPropsWithRef<"nav">): import("react").JSX.Element;
12
+ declare function PaginationContent({ className, ...props }: ComponentPropsWithRef<"ul">): import("react").JSX.Element;
13
+ declare function PaginationItem({ className, ...props }: ComponentPropsWithRef<"li">): import("react").JSX.Element;
14
+ interface PaginationLinkProps extends ComponentPropsWithRef<"a"> {
15
+ /** Marks the page the user is on. Sets aria-current="page". */
16
+ isActive?: boolean;
17
+ size?: "sm" | "md" | "icon" | "icon-sm";
18
+ asChild?: boolean;
19
+ }
20
+ declare function PaginationLink({ className, isActive, size, asChild, ...props }: PaginationLinkProps): import("react").JSX.Element;
21
+ declare function PaginationPrevious({ className, ...props }: PaginationLinkProps): import("react").JSX.Element;
22
+ declare function PaginationNext({ className, ...props }: PaginationLinkProps): import("react").JSX.Element;
23
+ /**
24
+ * Stands in for a run of skipped pages.
25
+ *
26
+ * Hidden from assistive technology and given screen-reader text, because "…"
27
+ * is announced as nothing useful and the gap is already implied by the page
28
+ * numbers either side.
29
+ */
30
+ declare function PaginationEllipsis({ className, ...props }: ComponentPropsWithRef<"span">): import("react").JSX.Element;
31
+ //#endregion
32
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationLinkProps, PaginationNext, PaginationPrevious };
33
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","names":[],"sources":["../../../src/components/pagination/pagination.tsx"],"mappings":";;;;;;;;;;iBAcgB,aAAa,cAAc,SAAS,+CAA4B,IAAA;iBAahE,oBAAoB,cAAc,SAAS,8CAA2B,IAAA;iBAUtE,iBAAiB,cAAc,SAAS,8CAA2B,IAAA;UAIlE,4BAA4B;;EAE3C;EACA;EACA;;iBAGc,iBACd,WACA,UACA,MACA,YACG,SACF,sCAAmB,IAAA;iBAoBN,qBAAqB,cAAc,SAAS,sCAAmB,IAAA;iBAsB/D,iBAAiB,cAAc,SAAS,sCAAmB,IAAA;;;;;;;;iBA6B3D,qBAAqB,cAAc,SAAS,gDAA6B,IAAA"}