@archytechtor/ui 0.0.0-stage → 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 (449) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -2
  3. package/dist/components/accordion/accordion.d.ts +25 -0
  4. package/dist/components/accordion/accordion.js +88 -0
  5. package/dist/components/accordion/index.d.ts +3 -0
  6. package/dist/components/accordion/index.js +1 -0
  7. package/dist/components/accordion/types.d.ts +39 -0
  8. package/dist/components/alert/alert.d.ts +25 -0
  9. package/dist/components/alert/alert.js +59 -0
  10. package/dist/components/alert/index.d.ts +3 -0
  11. package/dist/components/alert/index.js +3 -0
  12. package/dist/components/alert/types.d.ts +32 -0
  13. package/dist/components/alert/types.js +19 -0
  14. package/dist/components/alert-dialog/alert-dialog.d.ts +73 -0
  15. package/dist/components/alert-dialog/alert-dialog.js +170 -0
  16. package/dist/components/alert-dialog/index.d.ts +3 -0
  17. package/dist/components/alert-dialog/index.js +1 -0
  18. package/dist/components/alert-dialog/types.d.ts +80 -0
  19. package/dist/components/aspect-ratio/aspect-ratio.d.ts +8 -0
  20. package/dist/components/aspect-ratio/aspect-ratio.js +20 -0
  21. package/dist/components/aspect-ratio/index.d.ts +3 -0
  22. package/dist/components/aspect-ratio/index.js +1 -0
  23. package/dist/components/aspect-ratio/types.d.ts +8 -0
  24. package/dist/components/attachment/attachment.d.ts +57 -0
  25. package/dist/components/attachment/attachment.js +139 -0
  26. package/dist/components/attachment/index.d.ts +3 -0
  27. package/dist/components/attachment/index.js +3 -0
  28. package/dist/components/attachment/types.d.ts +79 -0
  29. package/dist/components/attachment/types.js +43 -0
  30. package/dist/components/avatar/avatar.d.ts +39 -0
  31. package/dist/components/avatar/avatar.js +88 -0
  32. package/dist/components/avatar/index.d.ts +3 -0
  33. package/dist/components/avatar/index.js +3 -0
  34. package/dist/components/avatar/types.d.ts +54 -0
  35. package/dist/components/avatar/types.js +21 -0
  36. package/dist/components/badge/badge.d.ts +7 -0
  37. package/dist/components/badge/badge.js +23 -0
  38. package/dist/components/badge/index.d.ts +3 -0
  39. package/dist/components/badge/index.js +3 -0
  40. package/dist/components/badge/types.d.ts +21 -0
  41. package/dist/components/badge/types.js +26 -0
  42. package/dist/components/breadcrumb/breadcrumb.d.ts +43 -0
  43. package/dist/components/breadcrumb/breadcrumb.js +115 -0
  44. package/dist/components/breadcrumb/index.d.ts +3 -0
  45. package/dist/components/breadcrumb/index.js +1 -0
  46. package/dist/components/breadcrumb/types.d.ts +36 -0
  47. package/dist/components/bubble/bubble.d.ts +25 -0
  48. package/dist/components/bubble/bubble.js +69 -0
  49. package/dist/components/bubble/index.d.ts +3 -0
  50. package/dist/components/bubble/index.js +3 -0
  51. package/dist/components/bubble/types.d.ts +51 -0
  52. package/dist/components/bubble/types.js +60 -0
  53. package/dist/components/button/button.d.ts +7 -0
  54. package/dist/components/button/button.js +155 -0
  55. package/dist/components/button/index.d.ts +4 -0
  56. package/dist/components/button/index.js +4 -0
  57. package/dist/components/button/types.d.ts +80 -0
  58. package/dist/components/button/types.js +99 -0
  59. package/dist/components/button/use-hold-to-confirm.d.ts +25 -0
  60. package/dist/components/button/use-hold-to-confirm.js +161 -0
  61. package/dist/components/button-group/button-group.d.ts +20 -0
  62. package/dist/components/button-group/button-group.js +62 -0
  63. package/dist/components/button-group/index.d.ts +3 -0
  64. package/dist/components/button-group/index.js +3 -0
  65. package/dist/components/button-group/types.d.ts +30 -0
  66. package/dist/components/button-group/types.js +19 -0
  67. package/dist/components/calendar/calendar.d.ts +15 -0
  68. package/dist/components/calendar/calendar.js +157 -0
  69. package/dist/components/calendar/index.d.ts +3 -0
  70. package/dist/components/calendar/index.js +1 -0
  71. package/dist/components/calendar/types.d.ts +21 -0
  72. package/dist/components/card/card.d.ts +43 -0
  73. package/dist/components/card/card.js +97 -0
  74. package/dist/components/card/index.d.ts +3 -0
  75. package/dist/components/card/index.js +3 -0
  76. package/dist/components/card/types.d.ts +44 -0
  77. package/dist/components/card/types.js +19 -0
  78. package/dist/components/carousel/carousel.d.ts +36 -0
  79. package/dist/components/carousel/carousel.js +190 -0
  80. package/dist/components/carousel/index.d.ts +3 -0
  81. package/dist/components/carousel/index.js +1 -0
  82. package/dist/components/carousel/types.d.ts +79 -0
  83. package/dist/components/chart/chart.d.ts +35 -0
  84. package/dist/components/chart/chart.js +212 -0
  85. package/dist/components/chart/index.d.ts +3 -0
  86. package/dist/components/chart/index.js +1 -0
  87. package/dist/components/chart/types.d.ts +89 -0
  88. package/dist/components/chart/types.js +7 -0
  89. package/dist/components/checkbox/checkbox.d.ts +7 -0
  90. package/dist/components/checkbox/checkbox.js +31 -0
  91. package/dist/components/checkbox/index.d.ts +3 -0
  92. package/dist/components/checkbox/index.js +1 -0
  93. package/dist/components/checkbox/types.d.ts +25 -0
  94. package/dist/components/code-block/code-block.d.ts +49 -0
  95. package/dist/components/code-block/code-block.js +188 -0
  96. package/dist/components/code-block/highlighter.d.ts +15 -0
  97. package/dist/components/code-block/highlighter.js +123 -0
  98. package/dist/components/code-block/index.d.ts +5 -0
  99. package/dist/components/code-block/index.js +5 -0
  100. package/dist/components/code-block/types.d.ts +94 -0
  101. package/dist/components/code-block/types.js +38 -0
  102. package/dist/components/code-block/use-highlighted-code.d.ts +9 -0
  103. package/dist/components/code-block/use-highlighted-code.js +67 -0
  104. package/dist/components/collapsible/collapsible.d.ts +19 -0
  105. package/dist/components/collapsible/collapsible.js +44 -0
  106. package/dist/components/collapsible/index.d.ts +3 -0
  107. package/dist/components/collapsible/index.js +1 -0
  108. package/dist/components/collapsible/types.d.ts +26 -0
  109. package/dist/components/combobox/combobox.d.ts +104 -0
  110. package/dist/components/combobox/combobox.js +365 -0
  111. package/dist/components/combobox/index.d.ts +3 -0
  112. package/dist/components/combobox/index.js +1 -0
  113. package/dist/components/combobox/types.d.ts +229 -0
  114. package/dist/components/command/command.d.ts +55 -0
  115. package/dist/components/command/command.js +179 -0
  116. package/dist/components/command/index.d.ts +3 -0
  117. package/dist/components/command/index.js +1 -0
  118. package/dist/components/command/types.d.ts +69 -0
  119. package/dist/components/context-menu/context-menu.d.ts +92 -0
  120. package/dist/components/context-menu/context-menu.js +270 -0
  121. package/dist/components/context-menu/index.d.ts +3 -0
  122. package/dist/components/context-menu/index.js +1 -0
  123. package/dist/components/context-menu/types.d.ts +138 -0
  124. package/dist/components/data-table/data-table-features.d.ts +21 -0
  125. package/dist/components/data-table/data-table-features.js +22 -0
  126. package/dist/components/data-table/data-table.d.ts +69 -0
  127. package/dist/components/data-table/data-table.js +283 -0
  128. package/dist/components/data-table/index.d.ts +4 -0
  129. package/dist/components/data-table/index.js +3 -0
  130. package/dist/components/data-table/types.d.ts +63 -0
  131. package/dist/components/date-input/date-input.d.ts +7 -0
  132. package/dist/components/date-input/date-input.js +147 -0
  133. package/dist/components/date-input/index.d.ts +3 -0
  134. package/dist/components/date-input/index.js +1 -0
  135. package/dist/components/date-input/types.d.ts +27 -0
  136. package/dist/components/date-picker/date-picker.d.ts +7 -0
  137. package/dist/components/date-picker/date-picker.js +74 -0
  138. package/dist/components/date-picker/index.d.ts +3 -0
  139. package/dist/components/date-picker/index.js +1 -0
  140. package/dist/components/date-picker/types.d.ts +38 -0
  141. package/dist/components/date-range-picker/date-range-picker.d.ts +7 -0
  142. package/dist/components/date-range-picker/date-range-picker.js +89 -0
  143. package/dist/components/date-range-picker/index.d.ts +3 -0
  144. package/dist/components/date-range-picker/index.js +1 -0
  145. package/dist/components/date-range-picker/types.d.ts +43 -0
  146. package/dist/components/dialog/dialog.d.ts +61 -0
  147. package/dist/components/dialog/dialog.js +160 -0
  148. package/dist/components/dialog/index.d.ts +3 -0
  149. package/dist/components/dialog/index.js +1 -0
  150. package/dist/components/dialog/types.d.ts +68 -0
  151. package/dist/components/drawer/drawer.d.ts +69 -0
  152. package/dist/components/drawer/drawer.js +245 -0
  153. package/dist/components/drawer/index.d.ts +3 -0
  154. package/dist/components/drawer/index.js +1 -0
  155. package/dist/components/drawer/types.d.ts +93 -0
  156. package/dist/components/dropdown-menu/dropdown-menu.d.ts +92 -0
  157. package/dist/components/dropdown-menu/dropdown-menu.js +268 -0
  158. package/dist/components/dropdown-menu/index.d.ts +3 -0
  159. package/dist/components/dropdown-menu/index.js +1 -0
  160. package/dist/components/dropdown-menu/types.d.ts +143 -0
  161. package/dist/components/empty/empty.d.ts +37 -0
  162. package/dist/components/empty/empty.js +84 -0
  163. package/dist/components/empty/index.d.ts +3 -0
  164. package/dist/components/empty/index.js +3 -0
  165. package/dist/components/empty/types.d.ts +39 -0
  166. package/dist/components/empty/types.js +13 -0
  167. package/dist/components/expanded-card/expanded-card.d.ts +43 -0
  168. package/dist/components/expanded-card/expanded-card.js +352 -0
  169. package/dist/components/expanded-card/index.d.ts +3 -0
  170. package/dist/components/expanded-card/index.js +1 -0
  171. package/dist/components/expanded-card/types.d.ts +52 -0
  172. package/dist/components/field/field.d.ts +62 -0
  173. package/dist/components/field/field.js +173 -0
  174. package/dist/components/field/index.d.ts +3 -0
  175. package/dist/components/field/index.js +3 -0
  176. package/dist/components/field/types.d.ts +81 -0
  177. package/dist/components/field/types.js +21 -0
  178. package/dist/components/form/form.d.ts +49 -0
  179. package/dist/components/form/form.js +136 -0
  180. package/dist/components/form/index.d.ts +3 -0
  181. package/dist/components/form/index.js +1 -0
  182. package/dist/components/form/types.d.ts +59 -0
  183. package/dist/components/hover-card/hover-card.d.ts +19 -0
  184. package/dist/components/hover-card/hover-card.js +63 -0
  185. package/dist/components/hover-card/index.d.ts +3 -0
  186. package/dist/components/hover-card/index.js +1 -0
  187. package/dist/components/hover-card/types.d.ts +27 -0
  188. package/dist/components/image-gallery/image-gallery.d.ts +8 -0
  189. package/dist/components/image-gallery/image-gallery.js +294 -0
  190. package/dist/components/image-gallery/index.d.ts +4 -0
  191. package/dist/components/image-gallery/index.js +3 -0
  192. package/dist/components/image-gallery/masonry.d.ts +11 -0
  193. package/dist/components/image-gallery/masonry.js +62 -0
  194. package/dist/components/image-gallery/types.d.ts +80 -0
  195. package/dist/components/input/index.d.ts +3 -0
  196. package/dist/components/input/index.js +1 -0
  197. package/dist/components/input/input.d.ts +7 -0
  198. package/dist/components/input/input.js +18 -0
  199. package/dist/components/input/types.d.ts +28 -0
  200. package/dist/components/input-group/index.d.ts +3 -0
  201. package/dist/components/input-group/index.js +3 -0
  202. package/dist/components/input-group/input-group.d.ts +37 -0
  203. package/dist/components/input-group/input-group.js +103 -0
  204. package/dist/components/input-group/types.d.ts +64 -0
  205. package/dist/components/input-group/types.js +31 -0
  206. package/dist/components/input-otp/index.d.ts +3 -0
  207. package/dist/components/input-otp/index.js +1 -0
  208. package/dist/components/input-otp/input-otp.d.ts +25 -0
  209. package/dist/components/input-otp/input-otp.js +76 -0
  210. package/dist/components/input-otp/types.d.ts +43 -0
  211. package/dist/components/item/index.d.ts +3 -0
  212. package/dist/components/item/index.js +3 -0
  213. package/dist/components/item/item.d.ts +61 -0
  214. package/dist/components/item/item.js +149 -0
  215. package/dist/components/item/types.d.ts +75 -0
  216. package/dist/components/item/types.js +48 -0
  217. package/dist/components/kbd/index.d.ts +3 -0
  218. package/dist/components/kbd/index.js +1 -0
  219. package/dist/components/kbd/kbd.d.ts +13 -0
  220. package/dist/components/kbd/kbd.js +30 -0
  221. package/dist/components/kbd/types.d.ts +9 -0
  222. package/dist/components/label/index.d.ts +3 -0
  223. package/dist/components/label/index.js +1 -0
  224. package/dist/components/label/label.d.ts +7 -0
  225. package/dist/components/label/label.js +17 -0
  226. package/dist/components/label/types.d.ts +8 -0
  227. package/dist/components/loader/index.d.ts +3 -0
  228. package/dist/components/loader/index.js +3 -0
  229. package/dist/components/loader/loader.d.ts +8 -0
  230. package/dist/components/loader/loader.js +386 -0
  231. package/dist/components/loader/types.d.ts +27 -0
  232. package/dist/components/loader/types.js +58 -0
  233. package/dist/components/marker/index.d.ts +3 -0
  234. package/dist/components/marker/index.js +3 -0
  235. package/dist/components/marker/marker.d.ts +19 -0
  236. package/dist/components/marker/marker.js +51 -0
  237. package/dist/components/marker/types.d.ts +30 -0
  238. package/dist/components/marker/types.js +16 -0
  239. package/dist/components/menubar/index.d.ts +3 -0
  240. package/dist/components/menubar/index.js +1 -0
  241. package/dist/components/menubar/menubar.d.ts +98 -0
  242. package/dist/components/menubar/menubar.js +284 -0
  243. package/dist/components/menubar/types.d.ts +146 -0
  244. package/dist/components/message/index.d.ts +3 -0
  245. package/dist/components/message/index.js +1 -0
  246. package/dist/components/message/message.d.ts +37 -0
  247. package/dist/components/message/message.js +83 -0
  248. package/dist/components/message/types.d.ts +32 -0
  249. package/dist/components/message-scroller/index.d.ts +4 -0
  250. package/dist/components/message-scroller/index.js +3 -0
  251. package/dist/components/message-scroller/message-scroller-primitive.d.ts +21 -0
  252. package/dist/components/message-scroller/message-scroller-primitive.js +1349 -0
  253. package/dist/components/message-scroller/message-scroller.d.ts +39 -0
  254. package/dist/components/message-scroller/message-scroller.js +103 -0
  255. package/dist/components/message-scroller/types.d.ts +107 -0
  256. package/dist/components/money-input/index.d.ts +3 -0
  257. package/dist/components/money-input/index.js +1 -0
  258. package/dist/components/money-input/money-input.d.ts +7 -0
  259. package/dist/components/money-input/money-input.js +143 -0
  260. package/dist/components/money-input/types.d.ts +20 -0
  261. package/dist/components/morph-image/index.d.ts +3 -0
  262. package/dist/components/morph-image/index.js +3 -0
  263. package/dist/components/morph-image/morph-image.d.ts +8 -0
  264. package/dist/components/morph-image/morph-image.js +155 -0
  265. package/dist/components/morph-image/types.d.ts +38 -0
  266. package/dist/components/morph-image/types.js +18 -0
  267. package/dist/components/native-select/index.d.ts +3 -0
  268. package/dist/components/native-select/index.js +3 -0
  269. package/dist/components/native-select/native-select.d.ts +20 -0
  270. package/dist/components/native-select/native-select.js +57 -0
  271. package/dist/components/native-select/types.d.ts +52 -0
  272. package/dist/components/native-select/types.js +23 -0
  273. package/dist/components/navigation-menu/index.d.ts +3 -0
  274. package/dist/components/navigation-menu/index.js +3 -0
  275. package/dist/components/navigation-menu/navigation-menu.d.ts +50 -0
  276. package/dist/components/navigation-menu/navigation-menu.js +145 -0
  277. package/dist/components/navigation-menu/types.d.ts +79 -0
  278. package/dist/components/navigation-menu/types.js +15 -0
  279. package/dist/components/number-stepper/index.d.ts +3 -0
  280. package/dist/components/number-stepper/index.js +3 -0
  281. package/dist/components/number-stepper/number-stepper.d.ts +9 -0
  282. package/dist/components/number-stepper/number-stepper.js +223 -0
  283. package/dist/components/number-stepper/types.d.ts +47 -0
  284. package/dist/components/number-stepper/types.js +174 -0
  285. package/dist/components/pagination/index.d.ts +3 -0
  286. package/dist/components/pagination/index.js +1 -0
  287. package/dist/components/pagination/pagination.d.ts +43 -0
  288. package/dist/components/pagination/pagination.js +121 -0
  289. package/dist/components/pagination/types.d.ts +37 -0
  290. package/dist/components/phone-input/index.d.ts +3 -0
  291. package/dist/components/phone-input/index.js +1 -0
  292. package/dist/components/phone-input/phone-input.d.ts +7 -0
  293. package/dist/components/phone-input/phone-input.js +54 -0
  294. package/dist/components/phone-input/types.d.ts +12 -0
  295. package/dist/components/popover/index.d.ts +3 -0
  296. package/dist/components/popover/index.js +1 -0
  297. package/dist/components/popover/popover.d.ts +37 -0
  298. package/dist/components/popover/popover.js +100 -0
  299. package/dist/components/popover/types.d.ts +51 -0
  300. package/dist/components/progress/index.d.ts +3 -0
  301. package/dist/components/progress/index.js +1 -0
  302. package/dist/components/progress/progress.d.ts +32 -0
  303. package/dist/components/progress/progress.js +100 -0
  304. package/dist/components/progress/types.d.ts +31 -0
  305. package/dist/components/questionnaire/index.d.ts +3 -0
  306. package/dist/components/questionnaire/index.js +1 -0
  307. package/dist/components/questionnaire/questionnaire-primitive.js +1563 -0
  308. package/dist/components/questionnaire/questionnaire.d.ts +91 -0
  309. package/dist/components/questionnaire/questionnaire.js +315 -0
  310. package/dist/components/questionnaire/types.d.ts +203 -0
  311. package/dist/components/radio-group/index.d.ts +3 -0
  312. package/dist/components/radio-group/index.js +1 -0
  313. package/dist/components/radio-group/radio-group.d.ts +13 -0
  314. package/dist/components/radio-group/radio-group.js +44 -0
  315. package/dist/components/radio-group/types.d.ts +33 -0
  316. package/dist/components/reorder-list/index.d.ts +3 -0
  317. package/dist/components/reorder-list/index.js +1 -0
  318. package/dist/components/reorder-list/reorder-list.d.ts +19 -0
  319. package/dist/components/reorder-list/reorder-list.js +279 -0
  320. package/dist/components/reorder-list/types.d.ts +65 -0
  321. package/dist/components/resizable/index.d.ts +3 -0
  322. package/dist/components/resizable/index.js +1 -0
  323. package/dist/components/resizable/resizable.d.ts +19 -0
  324. package/dist/components/resizable/resizable.js +44 -0
  325. package/dist/components/resizable/types.d.ts +89 -0
  326. package/dist/components/scroll-area/index.d.ts +3 -0
  327. package/dist/components/scroll-area/index.js +1 -0
  328. package/dist/components/scroll-area/scroll-area.d.ts +13 -0
  329. package/dist/components/scroll-area/scroll-area.js +47 -0
  330. package/dist/components/scroll-area/types.d.ts +19 -0
  331. package/dist/components/select/index.d.ts +3 -0
  332. package/dist/components/select/index.js +1 -0
  333. package/dist/components/select/select.d.ts +61 -0
  334. package/dist/components/select/select.js +183 -0
  335. package/dist/components/select/types.d.ts +100 -0
  336. package/dist/components/separator/index.d.ts +3 -0
  337. package/dist/components/separator/index.js +1 -0
  338. package/dist/components/separator/separator.d.ts +7 -0
  339. package/dist/components/separator/separator.js +20 -0
  340. package/dist/components/separator/types.d.ts +9 -0
  341. package/dist/components/sheet/index.d.ts +3 -0
  342. package/dist/components/sheet/index.js +1 -0
  343. package/dist/components/sheet/sheet.d.ts +61 -0
  344. package/dist/components/sheet/sheet.js +155 -0
  345. package/dist/components/sheet/types.d.ts +69 -0
  346. package/dist/components/sidebar/index.d.ts +3 -0
  347. package/dist/components/sidebar/index.js +3 -0
  348. package/dist/components/sidebar/sidebar.d.ts +145 -0
  349. package/dist/components/sidebar/sidebar.js +550 -0
  350. package/dist/components/sidebar/types.d.ts +186 -0
  351. package/dist/components/sidebar/types.js +42 -0
  352. package/dist/components/sidebar/use-mobile.js +21 -0
  353. package/dist/components/skeleton/index.d.ts +3 -0
  354. package/dist/components/skeleton/index.js +1 -0
  355. package/dist/components/skeleton/skeleton.d.ts +8 -0
  356. package/dist/components/skeleton/skeleton.js +18 -0
  357. package/dist/components/skeleton/types.d.ts +5 -0
  358. package/dist/components/slider/index.d.ts +3 -0
  359. package/dist/components/slider/index.js +1 -0
  360. package/dist/components/slider/slider.d.ts +7 -0
  361. package/dist/components/slider/slider.js +106 -0
  362. package/dist/components/slider/types.d.ts +39 -0
  363. package/dist/components/spinner/index.d.ts +3 -0
  364. package/dist/components/spinner/index.js +1 -0
  365. package/dist/components/spinner/spinner.d.ts +7 -0
  366. package/dist/components/spinner/spinner.js +21 -0
  367. package/dist/components/spinner/types.d.ts +8 -0
  368. package/dist/components/switch/index.d.ts +3 -0
  369. package/dist/components/switch/index.js +3 -0
  370. package/dist/components/switch/switch.d.ts +7 -0
  371. package/dist/components/switch/switch.js +32 -0
  372. package/dist/components/switch/types.d.ts +37 -0
  373. package/dist/components/switch/types.js +23 -0
  374. package/dist/components/table/index.d.ts +3 -0
  375. package/dist/components/table/index.js +1 -0
  376. package/dist/components/table/table.d.ts +49 -0
  377. package/dist/components/table/table.js +112 -0
  378. package/dist/components/table/types.d.ts +33 -0
  379. package/dist/components/tabs/index.d.ts +3 -0
  380. package/dist/components/tabs/index.js +3 -0
  381. package/dist/components/tabs/tabs.d.ts +25 -0
  382. package/dist/components/tabs/tabs.js +81 -0
  383. package/dist/components/tabs/types.d.ts +61 -0
  384. package/dist/components/tabs/types.js +18 -0
  385. package/dist/components/textarea/index.d.ts +3 -0
  386. package/dist/components/textarea/index.js +1 -0
  387. package/dist/components/textarea/textarea.d.ts +7 -0
  388. package/dist/components/textarea/textarea.js +17 -0
  389. package/dist/components/textarea/types.d.ts +26 -0
  390. package/dist/components/toast/index.d.ts +3 -0
  391. package/dist/components/toast/index.js +1 -0
  392. package/dist/components/toast/toast.d.ts +63 -0
  393. package/dist/components/toast/toast.js +321 -0
  394. package/dist/components/toast/types.d.ts +120 -0
  395. package/dist/components/toggle/index.d.ts +3 -0
  396. package/dist/components/toggle/index.js +3 -0
  397. package/dist/components/toggle/toggle.d.ts +7 -0
  398. package/dist/components/toggle/toggle.js +32 -0
  399. package/dist/components/toggle/types.d.ts +35 -0
  400. package/dist/components/toggle/types.js +37 -0
  401. package/dist/components/toggle-group/index.d.ts +3 -0
  402. package/dist/components/toggle-group/index.js +1 -0
  403. package/dist/components/toggle-group/toggle-group.d.ts +13 -0
  404. package/dist/components/toggle-group/toggle-group.js +88 -0
  405. package/dist/components/toggle-group/types.d.ts +52 -0
  406. package/dist/components/tooltip/index.d.ts +3 -0
  407. package/dist/components/tooltip/index.js +1 -0
  408. package/dist/components/tooltip/tooltip.d.ts +25 -0
  409. package/dist/components/tooltip/tooltip.js +79 -0
  410. package/dist/components/tooltip/types.d.ts +48 -0
  411. package/dist/components/trace/index.d.ts +3 -0
  412. package/dist/components/trace/index.js +1 -0
  413. package/dist/components/trace/trace.d.ts +52 -0
  414. package/dist/components/trace/trace.js +132 -0
  415. package/dist/components/trace/types.d.ts +54 -0
  416. package/dist/components/typography/index.d.ts +3 -0
  417. package/dist/components/typography/index.js +3 -0
  418. package/dist/components/typography/types.d.ts +29 -0
  419. package/dist/components/typography/types.js +25 -0
  420. package/dist/components/typography/typography.d.ts +7 -0
  421. package/dist/components/typography/typography.js +40 -0
  422. package/dist/components/video-player/index.d.ts +6 -0
  423. package/dist/components/video-player/index.js +5 -0
  424. package/dist/components/video-player/types.d.ts +143 -0
  425. package/dist/components/video-player/use-video-player.js +319 -0
  426. package/dist/components/video-player/video-player-context.d.ts +45 -0
  427. package/dist/components/video-player/video-player-context.js +15 -0
  428. package/dist/components/video-player/video-player-controls.d.ts +38 -0
  429. package/dist/components/video-player/video-player-controls.js +226 -0
  430. package/dist/components/video-player/video-player-overlay.d.ts +13 -0
  431. package/dist/components/video-player/video-player-overlay.js +113 -0
  432. package/dist/components/video-player/video-player.d.ts +8 -0
  433. package/dist/components/video-player/video-player.js +139 -0
  434. package/dist/index.d.ts +244 -0
  435. package/dist/index.js +114 -0
  436. package/dist/lib/floating.d.ts +44 -0
  437. package/dist/lib/focus-source.js +51 -0
  438. package/dist/lib/format.d.ts +67 -0
  439. package/dist/lib/format.js +130 -0
  440. package/dist/lib/locale.d.ts +104 -0
  441. package/dist/lib/locale.js +103 -0
  442. package/dist/lib/part-props.d.ts +15 -0
  443. package/dist/lib/use-controllable-state.js +22 -0
  444. package/dist/lib/utils.d.ts +9 -0
  445. package/dist/lib/utils.js +16 -0
  446. package/dist/styles/index.css +126 -0
  447. package/dist/styles/theme.css +80 -0
  448. package/dist/styles/utilities.css +553 -0
  449. package/package.json +89 -3
@@ -0,0 +1,39 @@
1
+ import { AvatarBadgePropsT, AvatarFallbackPropsT, AvatarGroupCountPropsT, AvatarGroupPropsT, AvatarImagePropsT, AvatarPropsT } from "./types.js";
2
+ /**
3
+ * Аватар: изображение пользователя с заглушкой на случай, если изображения нет
4
+ * @param props - пропсы аватара
5
+ * @returns круглый контейнер для AvatarImage, AvatarFallback и AvatarBadge
6
+ */
7
+ export declare function Avatar({ className, size, ...props }: AvatarPropsT): import("react").JSX.Element;
8
+ /**
9
+ * Изображение аватара: показывается только после успешной загрузки
10
+ * @param props - пропсы изображения
11
+ * @returns изображение
12
+ */
13
+ export declare function AvatarImage({ className, ...props }: AvatarImagePropsT): import("react").JSX.Element;
14
+ /**
15
+ * Заглушка аватара: инициалы или иконка, пока изображение не загружено
16
+ * @param props - пропсы заглушки
17
+ * @returns заглушка
18
+ */
19
+ export declare function AvatarFallback({ className, ...props }: AvatarFallbackPropsT): import("react").JSX.Element;
20
+ /**
21
+ * Значок аватара: точка статуса или иконка в правом нижнем углу. Только у одиночного аватара:
22
+ * в AvatarGroup значок скрыт — у наложенных аватаров он вылезал бы поверх соседа
23
+ * @param props - пропсы значка
24
+ * @returns значок
25
+ */
26
+ export declare function AvatarBadge({ className, ...props }: AvatarBadgePropsT): import("react").JSX.Element;
27
+ /**
28
+ * Группа аватаров: аватары с наложением друг на друга
29
+ * @param props - пропсы группы
30
+ * @returns группа
31
+ */
32
+ export declare function AvatarGroup({ className, ...props }: AvatarGroupPropsT): import("react").JSX.Element;
33
+ /**
34
+ * Счётчик группы аватаров: сколько ещё участников не показано, например «+3».
35
+ * Размер повторяет размер аватаров группы
36
+ * @param props - пропсы счётчика
37
+ * @returns счётчик
38
+ */
39
+ export declare function AvatarGroupCount({ className, ...props }: AvatarGroupCountPropsT): import("react").JSX.Element;
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { avatarVariants } from "./types.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Avatar } from "@base-ui/react/avatar";
6
+ // src/components/avatar/avatar.tsx
7
+ /**
8
+ * Аватар: изображение пользователя с заглушкой на случай, если изображения нет
9
+ * @param props - пропсы аватара
10
+ * @returns круглый контейнер для AvatarImage, AvatarFallback и AvatarBadge
11
+ */
12
+ function Avatar$1({ className, size = "default", ...props }) {
13
+ const classes = cn(avatarVariants({ size }), className);
14
+ return /* @__PURE__ */ jsx(Avatar.Root, {
15
+ "data-slot": "avatar",
16
+ "data-size": size,
17
+ className: classes,
18
+ ...props
19
+ });
20
+ }
21
+ /**
22
+ * Изображение аватара: показывается только после успешной загрузки
23
+ * @param props - пропсы изображения
24
+ * @returns изображение
25
+ */
26
+ function AvatarImage({ className, ...props }) {
27
+ const classes = cn("aspect-square", "size-full", "rounded-full", "object-cover", className);
28
+ return /* @__PURE__ */ jsx(Avatar.Image, {
29
+ "data-slot": "avatar-image",
30
+ className: classes,
31
+ ...props
32
+ });
33
+ }
34
+ /**
35
+ * Заглушка аватара: инициалы или иконка, пока изображение не загружено
36
+ * @param props - пропсы заглушки
37
+ * @returns заглушка
38
+ */
39
+ function AvatarFallback({ className, ...props }) {
40
+ const classes = cn("flex", "size-full", "items-center", "justify-center", "rounded-full", "bg-muted", "text-sm", "text-muted-foreground", "group-data-[size=sm]/avatar:text-xs", className);
41
+ return /* @__PURE__ */ jsx(Avatar.Fallback, {
42
+ "data-slot": "avatar-fallback",
43
+ className: classes,
44
+ ...props
45
+ });
46
+ }
47
+ /**
48
+ * Значок аватара: точка статуса или иконка в правом нижнем углу. Только у одиночного аватара:
49
+ * в AvatarGroup значок скрыт — у наложенных аватаров он вылезал бы поверх соседа
50
+ * @param props - пропсы значка
51
+ * @returns значок
52
+ */
53
+ function AvatarBadge({ className, ...props }) {
54
+ const classes = cn("absolute", "right-0", "bottom-0", "z-10", "inline-flex", "items-center", "justify-center", "rounded-full", "select-none", "bg-primary", "text-primary-foreground", "bg-blend-color", "ring-2", "ring-background", "group-data-[size=sm]/avatar:size-2", "group-data-[size=sm]/avatar:[&>svg]:hidden", "group-data-[size=default]/avatar:size-2.5", "group-data-[size=default]/avatar:[&>svg]:size-2", "group-data-[size=lg]/avatar:size-3", "group-data-[size=lg]/avatar:[&>svg]:size-2", "in-data-[slot=avatar-group]:hidden", className);
55
+ return /* @__PURE__ */ jsx("span", {
56
+ "data-slot": "avatar-badge",
57
+ className: classes,
58
+ ...props
59
+ });
60
+ }
61
+ /**
62
+ * Группа аватаров: аватары с наложением друг на друга
63
+ * @param props - пропсы группы
64
+ * @returns группа
65
+ */
66
+ function AvatarGroup({ className, ...props }) {
67
+ const classes = cn("group/avatar-group", "flex", "-space-x-2", "*:data-[slot=avatar]:ring-2", "*:data-[slot=avatar]:ring-background", className);
68
+ return /* @__PURE__ */ jsx("div", {
69
+ "data-slot": "avatar-group",
70
+ className: classes,
71
+ ...props
72
+ });
73
+ }
74
+ /**
75
+ * Счётчик группы аватаров: сколько ещё участников не показано, например «+3».
76
+ * Размер повторяет размер аватаров группы
77
+ * @param props - пропсы счётчика
78
+ * @returns счётчик
79
+ */
80
+ function AvatarGroupCount({ className, ...props }) {
81
+ const classes = cn("relative", "flex", "size-8", "shrink-0", "items-center", "justify-center", "rounded-full", "bg-muted", "text-sm", "text-muted-foreground", "ring-2", "ring-background", "group-has-data-[size=lg]/avatar-group:size-10", "group-has-data-[size=sm]/avatar-group:size-6", "[&>svg]:size-4", "group-has-data-[size=lg]/avatar-group:[&>svg]:size-5", "group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", className);
82
+ return /* @__PURE__ */ jsx("div", {
83
+ "data-slot": "avatar-group-count",
84
+ className: classes,
85
+ ...props
86
+ });
87
+ }
88
+ export { Avatar$1 as Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
@@ -0,0 +1,3 @@
1
+ import { AvatarBadgePropsT, AvatarFallbackPropsT, AvatarGroupCountPropsT, AvatarGroupPropsT, AvatarImagePropsT, AvatarPropsT, avatarVariants } from "./types.js";
2
+ import { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from "./avatar.js";
3
+ export { Avatar, AvatarBadge, type AvatarBadgePropsT, AvatarFallback, type AvatarFallbackPropsT, AvatarGroup, AvatarGroupCount, type AvatarGroupCountPropsT, type AvatarGroupPropsT, AvatarImage, type AvatarImagePropsT, type AvatarPropsT, avatarVariants };
@@ -0,0 +1,3 @@
1
+ import { avatarVariants } from "./types.js";
2
+ import { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from "./avatar.js";
3
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, avatarVariants };
@@ -0,0 +1,54 @@
1
+ import { PartPropsT } from "../../lib/part-props.js";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { ComponentProps } from "react";
4
+ import { Avatar } from "@base-ui/react/avatar";
5
+ /**
6
+ * Стили аватара: размер.
7
+ * Экспортируются, чтобы оформить аватаром другой элемент: avatarVariants({ size: 'lg' }).
8
+ * Рамка рисуется псевдоэлементом поверх изображения и смешивается с ним, чтобы светлые
9
+ * и тёмные фото не сливались с фоном
10
+ */
11
+ export declare const avatarVariants: (props?: ({
12
+ size?: "default" | "sm" | "lg" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ /**
15
+ * Размеры аватара
16
+ */
17
+ export type AvatarVariantsT = VariantProps<typeof avatarVariants>;
18
+ /**
19
+ * Пропсы аватара
20
+ */
21
+ export type AvatarPropsT = PartPropsT<Avatar.Root.Props> & {
22
+ /** Размер: sm — 24 px, default — 32 px, lg — 40 px */
23
+ size?: AvatarVariantsT['size'];
24
+ };
25
+ /**
26
+ * Пропсы изображения аватара
27
+ */
28
+ export type AvatarImagePropsT = PartPropsT<Omit<Avatar.Image.Props, 'onLoadingStatusChange'>> & {
29
+ /** Адрес изображения. Пока оно грузится или если не загрузилось, показывается AvatarFallback */
30
+ src?: string;
31
+ /** Описание изображения для скринридера: имя пользователя */
32
+ alt?: string;
33
+ /** Смена состояния загрузки изображения: idle, loading, loaded, error */
34
+ onLoadingStatusChange?: (status: 'idle' | 'loading' | 'loaded' | 'error') => void;
35
+ };
36
+ /**
37
+ * Пропсы заглушки аватара
38
+ */
39
+ export type AvatarFallbackPropsT = PartPropsT<Omit<Avatar.Fallback.Props, 'delay'>> & {
40
+ /** Задержка показа в мс: чтобы заглушка не мелькала, если изображение загрузится быстро */
41
+ delay?: number;
42
+ };
43
+ /**
44
+ * Пропсы значка аватара
45
+ */
46
+ export type AvatarBadgePropsT = ComponentProps<'span'>;
47
+ /**
48
+ * Пропсы группы аватаров
49
+ */
50
+ export type AvatarGroupPropsT = ComponentProps<'div'>;
51
+ /**
52
+ * Пропсы счётчика группы аватаров
53
+ */
54
+ export type AvatarGroupCountPropsT = ComponentProps<'div'>;
@@ -0,0 +1,21 @@
1
+ import { cva } from "class-variance-authority";
2
+ // src/components/avatar/types.ts
3
+ /**
4
+ * Стили аватара: размер.
5
+ * Экспортируются, чтобы оформить аватаром другой элемент: avatarVariants({ size: 'lg' }).
6
+ * Рамка рисуется псевдоэлементом поверх изображения и смешивается с ним, чтобы светлые
7
+ * и тёмные фото не сливались с фоном
8
+ */
9
+ const avatarVariants = cva([
10
+ "group/avatar relative flex shrink-0 rounded-full select-none",
11
+ "after:absolute after:inset-0 after:rounded-full after:border after:border-border",
12
+ "after:mix-blend-darken dark:after:mix-blend-lighten"
13
+ ], {
14
+ variants: { size: {
15
+ default: "size-8",
16
+ sm: "size-6",
17
+ lg: "size-10"
18
+ } },
19
+ defaultVariants: { size: "default" }
20
+ });
21
+ export { avatarVariants };
@@ -0,0 +1,7 @@
1
+ import { BadgePropsT } from "./types.js";
2
+ /**
3
+ * Бейдж: короткая метка — статус, категория, счётчик
4
+ * @param props - пропсы бейджа
5
+ * @returns бейдж или дочерний элемент в стилях бейджа (render)
6
+ */
7
+ export declare function Badge({ className, variant, render, ...props }: BadgePropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,23 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { badgeVariants } from "./types.js";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ // src/components/badge/badge.tsx
6
+ /**
7
+ * Бейдж: короткая метка — статус, категория, счётчик
8
+ * @param props - пропсы бейджа
9
+ * @returns бейдж или дочерний элемент в стилях бейджа (render)
10
+ */
11
+ function Badge({ className, variant = "default", render, ...props }) {
12
+ const classes = cn(badgeVariants({ variant }), className);
13
+ return useRender({
14
+ defaultTagName: "span",
15
+ render,
16
+ props: mergeProps({
17
+ "data-slot": "badge",
18
+ "data-variant": variant,
19
+ className: classes
20
+ }, props)
21
+ });
22
+ }
23
+ export { Badge };
@@ -0,0 +1,3 @@
1
+ import { BadgePropsT, badgeVariants } from "./types.js";
2
+ import { Badge } from "./badge.js";
3
+ export { Badge, type BadgePropsT, badgeVariants };
@@ -0,0 +1,3 @@
1
+ import { badgeVariants } from "./types.js";
2
+ import { Badge } from "./badge.js";
3
+ export { Badge, badgeVariants };
@@ -0,0 +1,21 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ /**
4
+ * Стили бейджа: вариант оформления.
5
+ * Экспортируются, чтобы оформить бейджем другой элемент: badgeVariants({ variant: 'outline' }).
6
+ * Цвет наведения появляется только у бейджа-ссылки (render={<a />}).
7
+ */
8
+ export declare const badgeVariants: (props?: ({
9
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ /**
12
+ * Варианты оформления бейджа
13
+ */
14
+ export type BadgeVariantsT = VariantProps<typeof badgeVariants>;
15
+ /**
16
+ * Пропсы бейджа
17
+ */
18
+ export type BadgePropsT = useRender.ComponentProps<'span'> & {
19
+ /** Оформление: основной, второстепенный, опасный, контурный, без фона или ссылка */
20
+ variant?: BadgeVariantsT['variant'];
21
+ };
@@ -0,0 +1,26 @@
1
+ import { cva } from "class-variance-authority";
2
+ // src/components/badge/types.ts
3
+ /**
4
+ * Стили бейджа: вариант оформления.
5
+ * Экспортируются, чтобы оформить бейджем другой элемент: badgeVariants({ variant: 'outline' }).
6
+ * Цвет наведения появляется только у бейджа-ссылки (render={<a />}).
7
+ */
8
+ const badgeVariants = cva([
9
+ "group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden",
10
+ "rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all select-none",
11
+ "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
12
+ "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",
13
+ "has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
14
+ "[&>svg]:pointer-events-none [&>svg]:size-3!"
15
+ ], {
16
+ variants: { variant: {
17
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
18
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
19
+ destructive: ["bg-destructive/10 text-destructive [a]:hover:bg-destructive/20", "focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40"],
20
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
21
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
22
+ link: "text-primary underline-offset-4 hover:underline"
23
+ } },
24
+ defaultVariants: { variant: "default" }
25
+ });
26
+ export { badgeVariants };
@@ -0,0 +1,43 @@
1
+ import { BreadcrumbEllipsisPropsT, BreadcrumbItemPropsT, BreadcrumbLinkPropsT, BreadcrumbListPropsT, BreadcrumbPagePropsT, BreadcrumbPropsT, BreadcrumbSeparatorPropsT } from "./types.js";
2
+ /**
3
+ * Навигационная цепочка: путь к текущей странице по иерархии разделов
4
+ * @param props - пропсы цепочки
5
+ * @returns элемент <nav>
6
+ */
7
+ export declare function Breadcrumb({ className, label, ...props }: BreadcrumbPropsT): import("react").JSX.Element;
8
+ /**
9
+ * Список пунктов навигационной цепочки
10
+ * @param props - пропсы списка
11
+ * @returns элемент <ol>
12
+ */
13
+ export declare function BreadcrumbList({ className, ...props }: BreadcrumbListPropsT): import("react").JSX.Element;
14
+ /**
15
+ * Пункт навигационной цепочки: ссылка, текущая страница или многоточие
16
+ * @param props - пропсы пункта
17
+ * @returns элемент <li>
18
+ */
19
+ export declare function BreadcrumbItem({ className, ...props }: BreadcrumbItemPropsT): import("react").JSX.Element;
20
+ /**
21
+ * Ссылка на раздел в навигационной цепочке
22
+ * @param props - пропсы ссылки
23
+ * @returns ссылка или дочерний элемент в стилях ссылки (render)
24
+ */
25
+ export declare function BreadcrumbLink({ render, className, ...props }: BreadcrumbLinkPropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
26
+ /**
27
+ * Текущая страница: последний пункт цепочки, не ссылка
28
+ * @param props - пропсы текущей страницы
29
+ * @returns элемент с aria-current="page"
30
+ */
31
+ export declare function BreadcrumbPage({ className, ...props }: BreadcrumbPagePropsT): import("react").JSX.Element;
32
+ /**
33
+ * Разделитель между пунктами, по умолчанию шеврон. Скрыт от скринридера
34
+ * @param props - пропсы разделителя; children заменяет иконку
35
+ * @returns элемент <li>
36
+ */
37
+ export declare function BreadcrumbSeparator({ children, className, ...props }: BreadcrumbSeparatorPropsT): import("react").JSX.Element;
38
+ /**
39
+ * Многоточие на месте свёрнутых пунктов длинной цепочки
40
+ * @param props - пропсы многоточия
41
+ * @returns иконка многоточия с текстом для скринридера
42
+ */
43
+ export declare function BreadcrumbEllipsis({ className, label, ...props }: BreadcrumbEllipsisPropsT): import("react").JSX.Element;
@@ -0,0 +1,115 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { texts } from "../../lib/locale.js";
3
+ import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { mergeProps } from "@base-ui/react/merge-props";
6
+ import { useRender } from "@base-ui/react/use-render";
7
+ // src/components/breadcrumb/breadcrumb.tsx
8
+ /**
9
+ * Навигационная цепочка: путь к текущей странице по иерархии разделов
10
+ * @param props - пропсы цепочки
11
+ * @returns элемент <nav>
12
+ */
13
+ function Breadcrumb({ className, label = texts.breadcrumb, ...props }) {
14
+ const classes = cn(className);
15
+ return /* @__PURE__ */ jsx("nav", {
16
+ "aria-label": label,
17
+ "data-slot": "breadcrumb",
18
+ className: classes,
19
+ ...props
20
+ });
21
+ }
22
+ /**
23
+ * Список пунктов навигационной цепочки
24
+ * @param props - пропсы списка
25
+ * @returns элемент <ol>
26
+ */
27
+ function BreadcrumbList({ className, ...props }) {
28
+ const classes = cn("flex", "flex-wrap", "items-center", "gap-1.5", "text-sm", "wrap-break-word", "text-muted-foreground", className);
29
+ return /* @__PURE__ */ jsx("ol", {
30
+ "data-slot": "breadcrumb-list",
31
+ className: classes,
32
+ ...props
33
+ });
34
+ }
35
+ /**
36
+ * Пункт навигационной цепочки: ссылка, текущая страница или многоточие
37
+ * @param props - пропсы пункта
38
+ * @returns элемент <li>
39
+ */
40
+ function BreadcrumbItem({ className, ...props }) {
41
+ const classes = cn("inline-flex", "items-center", "gap-1", className);
42
+ return /* @__PURE__ */ jsx("li", {
43
+ "data-slot": "breadcrumb-item",
44
+ className: classes,
45
+ ...props
46
+ });
47
+ }
48
+ /**
49
+ * Ссылка на раздел в навигационной цепочке
50
+ * @param props - пропсы ссылки
51
+ * @returns ссылка или дочерний элемент в стилях ссылки (render)
52
+ */
53
+ function BreadcrumbLink({ render, className, ...props }) {
54
+ const classes = cn("transition-colors", "hover:text-foreground", className);
55
+ return useRender({
56
+ defaultTagName: "a",
57
+ render,
58
+ props: mergeProps({
59
+ "data-slot": "breadcrumb-link",
60
+ className: classes
61
+ }, props)
62
+ });
63
+ }
64
+ /**
65
+ * Текущая страница: последний пункт цепочки, не ссылка
66
+ * @param props - пропсы текущей страницы
67
+ * @returns элемент с aria-current="page"
68
+ */
69
+ function BreadcrumbPage({ className, ...props }) {
70
+ const classes = cn("font-normal", "text-foreground", className);
71
+ return /* @__PURE__ */ jsx("span", {
72
+ "data-slot": "breadcrumb-page",
73
+ role: "link",
74
+ "aria-disabled": "true",
75
+ "aria-current": "page",
76
+ className: classes,
77
+ ...props
78
+ });
79
+ }
80
+ /**
81
+ * Разделитель между пунктами, по умолчанию шеврон. Скрыт от скринридера
82
+ * @param props - пропсы разделителя; children заменяет иконку
83
+ * @returns элемент <li>
84
+ */
85
+ function BreadcrumbSeparator({ children, className, ...props }) {
86
+ const classes = cn("[&>svg]:size-3.5", className);
87
+ return /* @__PURE__ */ jsx("li", {
88
+ "data-slot": "breadcrumb-separator",
89
+ role: "presentation",
90
+ "aria-hidden": "true",
91
+ className: classes,
92
+ ...props,
93
+ children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, {})
94
+ });
95
+ }
96
+ /**
97
+ * Многоточие на месте свёрнутых пунктов длинной цепочки
98
+ * @param props - пропсы многоточия
99
+ * @returns иконка многоточия с текстом для скринридера
100
+ */
101
+ function BreadcrumbEllipsis({ className, label = texts.more, ...props }) {
102
+ const classes = cn("flex", "size-5", "items-center", "justify-center", "[&>svg]:size-4", className);
103
+ return /* @__PURE__ */ jsxs("span", {
104
+ "data-slot": "breadcrumb-ellipsis",
105
+ role: "presentation",
106
+ "aria-hidden": "true",
107
+ className: classes,
108
+ ...props,
109
+ children: [/* @__PURE__ */ jsx(MoreHorizontalIcon, {}), /* @__PURE__ */ jsx("span", {
110
+ className: "sr-only",
111
+ children: label
112
+ })]
113
+ });
114
+ }
115
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
@@ -0,0 +1,3 @@
1
+ import { BreadcrumbEllipsisPropsT, BreadcrumbItemPropsT, BreadcrumbLinkPropsT, BreadcrumbListPropsT, BreadcrumbPagePropsT, BreadcrumbPropsT, BreadcrumbSeparatorPropsT } from "./types.js";
2
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
3
+ export { Breadcrumb, BreadcrumbEllipsis, type BreadcrumbEllipsisPropsT, BreadcrumbItem, type BreadcrumbItemPropsT, BreadcrumbLink, type BreadcrumbLinkPropsT, BreadcrumbList, type BreadcrumbListPropsT, BreadcrumbPage, type BreadcrumbPagePropsT, type BreadcrumbPropsT, BreadcrumbSeparator, type BreadcrumbSeparatorPropsT };
@@ -0,0 +1 @@
1
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
@@ -0,0 +1,36 @@
1
+ import { ComponentProps } from "react";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ /**
4
+ * Пропсы навигационной цепочки
5
+ */
6
+ export type BreadcrumbPropsT = ComponentProps<'nav'> & {
7
+ /** Название навигации для скринридера (aria-label), по умолчанию «Навигационная цепочка» */
8
+ label?: string;
9
+ };
10
+ /**
11
+ * Пропсы списка навигационной цепочки
12
+ */
13
+ export type BreadcrumbListPropsT = ComponentProps<'ol'>;
14
+ /**
15
+ * Пропсы пункта навигационной цепочки
16
+ */
17
+ export type BreadcrumbItemPropsT = ComponentProps<'li'>;
18
+ /**
19
+ * Пропсы ссылки навигационной цепочки
20
+ */
21
+ export type BreadcrumbLinkPropsT = useRender.ComponentProps<'a'>;
22
+ /**
23
+ * Пропсы текущей страницы навигационной цепочки
24
+ */
25
+ export type BreadcrumbPagePropsT = ComponentProps<'span'>;
26
+ /**
27
+ * Пропсы разделителя навигационной цепочки
28
+ */
29
+ export type BreadcrumbSeparatorPropsT = ComponentProps<'li'>;
30
+ /**
31
+ * Пропсы многоточия навигационной цепочки
32
+ */
33
+ export type BreadcrumbEllipsisPropsT = ComponentProps<'span'> & {
34
+ /** Текст для скринридера, по умолчанию «Ещё» */
35
+ label?: string;
36
+ };
@@ -0,0 +1,25 @@
1
+ import { BubbleContentPropsT, BubbleGroupPropsT, BubblePropsT, BubbleReactionsPropsT } from "./types.js";
2
+ /**
3
+ * Группа пузырей: подряд идущие сообщения одного автора
4
+ * @param props - пропсы группы
5
+ * @returns колонка пузырей
6
+ */
7
+ export declare function BubbleGroup({ className, ...props }: BubbleGroupPropsT): import("react").JSX.Element;
8
+ /**
9
+ * Пузырь: сообщение в чате
10
+ * @param props - пропсы пузыря
11
+ * @returns пузырь
12
+ */
13
+ export declare function Bubble({ variant, align, className, ...props }: BubblePropsT): import("react").JSX.Element;
14
+ /**
15
+ * Содержимое пузыря: текст сообщения на цветной подложке
16
+ * @param props - пропсы содержимого
17
+ * @returns содержимое или дочерний элемент в его стилях (render)
18
+ */
19
+ export declare function BubbleContent({ render, className, ...props }: BubbleContentPropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
20
+ /**
21
+ * Реакции пузыря: эмодзи или кнопка на краю сообщения
22
+ * @param props - пропсы реакций
23
+ * @returns плашка реакций
24
+ */
25
+ export declare function BubbleReactions({ side, align, className, ...props }: BubbleReactionsPropsT): import("react").JSX.Element;
@@ -0,0 +1,69 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { bubbleReactionsVariants, bubbleVariants } from "./types.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { mergeProps } from "@base-ui/react/merge-props";
5
+ import { useRender } from "@base-ui/react/use-render";
6
+ // src/components/bubble/bubble.tsx
7
+ /**
8
+ * Группа пузырей: подряд идущие сообщения одного автора
9
+ * @param props - пропсы группы
10
+ * @returns колонка пузырей
11
+ */
12
+ function BubbleGroup({ className, ...props }) {
13
+ const classes = cn("flex", "min-w-0", "flex-col", "gap-2", className);
14
+ return /* @__PURE__ */ jsx("div", {
15
+ "data-slot": "bubble-group",
16
+ className: classes,
17
+ ...props
18
+ });
19
+ }
20
+ /**
21
+ * Пузырь: сообщение в чате
22
+ * @param props - пропсы пузыря
23
+ * @returns пузырь
24
+ */
25
+ function Bubble({ variant = "default", align = "start", className, ...props }) {
26
+ const classes = cn(bubbleVariants({ variant }), className);
27
+ return /* @__PURE__ */ jsx("div", {
28
+ "data-slot": "bubble",
29
+ "data-variant": variant,
30
+ "data-align": align,
31
+ className: classes,
32
+ ...props
33
+ });
34
+ }
35
+ /**
36
+ * Содержимое пузыря: текст сообщения на цветной подложке
37
+ * @param props - пропсы содержимого
38
+ * @returns содержимое или дочерний элемент в его стилях (render)
39
+ */
40
+ function BubbleContent({ render, className, ...props }) {
41
+ const classes = cn("w-fit", "max-w-full", "min-w-0", "overflow-hidden", "rounded-xl", "border", "border-transparent", "px-3", "py-2", "text-sm", "leading-relaxed", "wrap-break-word", "group-data-[align=end]/bubble:self-end", "[button]:cursor-pointer", "[button]:text-left", "[button,a]:transition-colors", "[button,a]:outline-none", "[button,a]:focus-visible:border-ring", "[button,a]:focus-visible:ring-3", "[button,a]:focus-visible:ring-ring/30", className);
42
+ return useRender({
43
+ defaultTagName: "div",
44
+ render,
45
+ props: mergeProps({
46
+ "data-slot": "bubble-content",
47
+ className: classes
48
+ }, props)
49
+ });
50
+ }
51
+ /**
52
+ * Реакции пузыря: эмодзи или кнопка на краю сообщения
53
+ * @param props - пропсы реакций
54
+ * @returns плашка реакций
55
+ */
56
+ function BubbleReactions({ side = "bottom", align = "end", className, ...props }) {
57
+ const classes = cn(bubbleReactionsVariants({
58
+ side,
59
+ align
60
+ }), className);
61
+ return /* @__PURE__ */ jsx("div", {
62
+ "data-slot": "bubble-reactions",
63
+ "data-align": align,
64
+ "data-side": side,
65
+ className: classes,
66
+ ...props
67
+ });
68
+ }
69
+ export { Bubble, BubbleContent, BubbleGroup, BubbleReactions };
@@ -0,0 +1,3 @@
1
+ import { BubbleContentPropsT, BubbleGroupPropsT, BubblePropsT, BubbleReactionsPropsT, bubbleReactionsVariants, bubbleVariants } from "./types.js";
2
+ import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./bubble.js";
3
+ export { Bubble, BubbleContent, type BubbleContentPropsT, BubbleGroup, type BubbleGroupPropsT, type BubblePropsT, BubbleReactions, type BubbleReactionsPropsT, bubbleReactionsVariants, bubbleVariants };
@@ -0,0 +1,3 @@
1
+ import { bubbleReactionsVariants, bubbleVariants } from "./types.js";
2
+ import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./bubble.js";
3
+ export { Bubble, BubbleContent, BubbleGroup, BubbleReactions, bubbleReactionsVariants, bubbleVariants };