@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,48 @@
1
+ import { cva } from "class-variance-authority";
2
+ // src/components/item/types.ts
3
+ /**
4
+ * Стили элемента списка: вариант оформления и размер.
5
+ * Ссылка (render={<a />}) подсвечивается фоном при наведении
6
+ */
7
+ const itemVariants = cva([
8
+ "group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100",
9
+ "outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
10
+ "[a]:transition-colors [a]:hover:bg-muted"
11
+ ], {
12
+ variants: {
13
+ variant: {
14
+ default: "border-transparent",
15
+ outline: "border-border",
16
+ muted: "border-transparent bg-muted/50"
17
+ },
18
+ size: {
19
+ default: "gap-2.5 px-3 py-2.5",
20
+ sm: "gap-2.5 px-3 py-2.5",
21
+ xs: "gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0"
22
+ }
23
+ },
24
+ defaultVariants: {
25
+ variant: "default",
26
+ size: "default"
27
+ }
28
+ });
29
+ /**
30
+ * Стили медиа элемента: без оформления, иконка или изображение
31
+ */
32
+ const itemMediaVariants = cva([
33
+ "flex shrink-0 items-center justify-center gap-2 [&_svg]:pointer-events-none",
34
+ "group-has-data-[slot=item-description]/item:translate-y-0.5",
35
+ "group-has-data-[slot=item-description]/item:self-start"
36
+ ], {
37
+ variants: { variant: {
38
+ default: "bg-transparent",
39
+ icon: "[&_svg:not([class*=size-])]:size-4",
40
+ image: [
41
+ "size-10 overflow-hidden rounded-sm",
42
+ "group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6",
43
+ "[&_img]:size-full [&_img]:object-cover"
44
+ ]
45
+ } },
46
+ defaultVariants: { variant: "default" }
47
+ });
48
+ export { itemMediaVariants, itemVariants };
@@ -0,0 +1,3 @@
1
+ import { KbdGroupPropsT, KbdPropsT } from "./types.js";
2
+ import { Kbd, KbdGroup } from "./kbd.js";
3
+ export { Kbd, KbdGroup, type KbdGroupPropsT, type KbdPropsT };
@@ -0,0 +1 @@
1
+ export { Kbd, KbdGroup } from "./kbd.js";
@@ -0,0 +1,13 @@
1
+ import { KbdGroupPropsT, KbdPropsT } from "./types.js";
2
+ /**
3
+ * Клавиша: подпись клавиши или сочетания для ввода с клавиатуры
4
+ * @param props - пропсы клавиши
5
+ * @returns элемент <kbd>
6
+ */
7
+ export declare function Kbd({ className, ...props }: KbdPropsT): import("react").JSX.Element;
8
+ /**
9
+ * Группа клавиш: сочетание из нескольких Kbd
10
+ * @param props - пропсы группы
11
+ * @returns элемент <kbd> с вложенными клавишами
12
+ */
13
+ export declare function KbdGroup({ className, ...props }: KbdGroupPropsT): import("react").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ // src/components/kbd/kbd.tsx
4
+ /**
5
+ * Клавиша: подпись клавиши или сочетания для ввода с клавиатуры
6
+ * @param props - пропсы клавиши
7
+ * @returns элемент <kbd>
8
+ */
9
+ function Kbd({ className, ...props }) {
10
+ const classes = cn("pointer-events-none", "inline-flex", "h-5", "w-fit", "min-w-5", "items-center", "justify-center", "gap-1", "rounded-sm", "px-1", "select-none", "bg-muted", "font-sans", "text-xs", "font-medium", "text-muted-foreground", "in-data-[slot=tooltip-content]:bg-background/20", "in-data-[slot=tooltip-content]:text-background", "dark:in-data-[slot=tooltip-content]:bg-background/10", "[&_svg:not([class*=size-])]:size-3", className);
11
+ return /* @__PURE__ */ jsx("kbd", {
12
+ "data-slot": "kbd",
13
+ className: classes,
14
+ ...props
15
+ });
16
+ }
17
+ /**
18
+ * Группа клавиш: сочетание из нескольких Kbd
19
+ * @param props - пропсы группы
20
+ * @returns элемент <kbd> с вложенными клавишами
21
+ */
22
+ function KbdGroup({ className, ...props }) {
23
+ const classes = cn("inline-flex", "items-center", "gap-1", className);
24
+ return /* @__PURE__ */ jsx("kbd", {
25
+ "data-slot": "kbd-group",
26
+ className: classes,
27
+ ...props
28
+ });
29
+ }
30
+ export { Kbd, KbdGroup };
@@ -0,0 +1,9 @@
1
+ import { ComponentProps } from "react";
2
+ /**
3
+ * Пропсы клавиши
4
+ */
5
+ export type KbdPropsT = ComponentProps<'kbd'>;
6
+ /**
7
+ * Пропсы группы клавиш
8
+ */
9
+ export type KbdGroupPropsT = ComponentProps<'kbd'>;
@@ -0,0 +1,3 @@
1
+ import { LabelPropsT } from "./types.js";
2
+ import { Label } from "./label.js";
3
+ export { Label, type LabelPropsT };
@@ -0,0 +1 @@
1
+ export { Label } from "./label.js";
@@ -0,0 +1,7 @@
1
+ import { LabelPropsT } from "./types.js";
2
+ /**
3
+ * Подпись поля формы
4
+ * @param props - пропсы подписи
5
+ * @returns элемент label
6
+ */
7
+ export declare function Label({ className, ...props }: LabelPropsT): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ // src/components/label/label.tsx
4
+ /**
5
+ * Подпись поля формы
6
+ * @param props - пропсы подписи
7
+ * @returns элемент label
8
+ */
9
+ function Label({ className, ...props }) {
10
+ const classes = cn("flex", "items-center", "gap-2", "text-sm", "leading-none", "font-medium", "select-none", "group-data-[disabled=true]:pointer-events-none", "group-data-[disabled=true]:opacity-50", "peer-disabled:cursor-not-allowed", "peer-disabled:opacity-50", className);
11
+ return /* @__PURE__ */ jsx("label", {
12
+ "data-slot": "label",
13
+ className: classes,
14
+ ...props
15
+ });
16
+ }
17
+ export { Label };
@@ -0,0 +1,8 @@
1
+ import { ComponentProps } from "react";
2
+ /**
3
+ * Пропсы подписи
4
+ */
5
+ export type LabelPropsT = ComponentProps<'label'> & {
6
+ /** id поля, к которому относится подпись: клик по подписи переводит фокус на поле */
7
+ htmlFor?: string;
8
+ };
@@ -0,0 +1,3 @@
1
+ import { LoaderPropsT, loaderVariants } from "./types.js";
2
+ import { Loader } from "./loader.js";
3
+ export { Loader, type LoaderPropsT, loaderVariants };
@@ -0,0 +1,3 @@
1
+ import { loaderVariants } from "./types.js";
2
+ import { Loader } from "./loader.js";
3
+ export { Loader, loaderVariants };
@@ -0,0 +1,8 @@
1
+ import { LoaderPropsT } from "./types.js";
2
+ /**
3
+ * Индикатор загрузки с анимированными видами. Цвет — text-primary, меняется через className.
4
+ * Для маленького индикатора внутри кнопки или текста есть Spinner.
5
+ * @param props - пропсы индикатора
6
+ * @returns индикатор
7
+ */
8
+ export declare function Loader({ className, variant, size, 'aria-label': ariaLabel, ...props }: LoaderPropsT): import("react").JSX.Element;
@@ -0,0 +1,386 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { texts } from "../../lib/locale.js";
4
+ import { loaderVariants } from "./types.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { motion } from "motion/react";
7
+ // src/components/loader/loader.tsx
8
+ /**
9
+ * Бесконечная анимация с общими настройками
10
+ * @param duration - длительность цикла, секунды
11
+ * @param extra - остальные настройки перехода
12
+ * @returns настройки перехода
13
+ */
14
+ function loop(duration, extra = {}) {
15
+ return {
16
+ duration,
17
+ repeat: Infinity,
18
+ ...extra
19
+ };
20
+ }
21
+ /**
22
+ * Дуга, которая вращается
23
+ * @returns дуга
24
+ */
25
+ function ArcLoader() {
26
+ return /* @__PURE__ */ jsx(motion.div, {
27
+ className: "size-full rounded-full border-primary border-t-transparent border-(length:--loader-stroke)",
28
+ animate: { rotate: 360 },
29
+ transition: loop(1.2, { ease: "linear" })
30
+ });
31
+ }
32
+ /**
33
+ * Две дуги, вращающиеся навстречу друг другу
34
+ * @returns дуги
35
+ */
36
+ function DualArcLoader() {
37
+ return /* @__PURE__ */ jsxs("div", {
38
+ className: "relative size-full",
39
+ children: [/* @__PURE__ */ jsx(motion.div, {
40
+ className: "absolute inset-0 rounded-full border-primary border-t-transparent border-(length:--loader-stroke)",
41
+ animate: { rotate: 360 },
42
+ transition: loop(1.2, { ease: "linear" })
43
+ }), /* @__PURE__ */ jsx(motion.div, {
44
+ className: "absolute inset-(--loader-inset) rounded-full border-primary border-b-transparent border-(length:--loader-stroke)",
45
+ animate: { rotate: -360 },
46
+ transition: loop(1.2, { ease: "linear" })
47
+ })]
48
+ });
49
+ }
50
+ /**
51
+ * Восемь точек по кругу, пульсирующих по очереди
52
+ * @returns точки
53
+ */
54
+ function CircleDotsLoader() {
55
+ const dots = Array.from({ length: 8 }, (_, index) => index);
56
+ const renderDot = (index) => {
57
+ const angle = index * 45 * Math.PI / 180;
58
+ const left = 50 + 35 * Math.cos(angle);
59
+ const top = 50 + 35 * Math.sin(angle);
60
+ return /* @__PURE__ */ jsx(motion.span, {
61
+ className: "absolute size-1/5 rounded-full bg-primary",
62
+ style: {
63
+ left: `${left}%`,
64
+ top: `${top}%`,
65
+ x: "-50%",
66
+ y: "-50%"
67
+ },
68
+ animate: {
69
+ opacity: [
70
+ .6,
71
+ 1,
72
+ .6
73
+ ],
74
+ scale: [
75
+ .4,
76
+ 1,
77
+ .4
78
+ ]
79
+ },
80
+ transition: loop(1.6, {
81
+ ease: [
82
+ .4,
83
+ 0,
84
+ .6,
85
+ 1
86
+ ],
87
+ delay: index * .2
88
+ })
89
+ }, index);
90
+ };
91
+ return /* @__PURE__ */ jsx("div", {
92
+ className: "relative size-full",
93
+ children: dots.map(renderDot)
94
+ });
95
+ }
96
+ /**
97
+ * Две мигающие точки
98
+ * @returns точки
99
+ */
100
+ function TwoDotsLoader() {
101
+ const renderDot = (index) => /* @__PURE__ */ jsx(motion.span, {
102
+ className: "size-1/4 rounded-full bg-primary",
103
+ animate: { opacity: [
104
+ 1,
105
+ .3,
106
+ 1
107
+ ] },
108
+ transition: loop(.6, { delay: index * .3 })
109
+ }, index);
110
+ return /* @__PURE__ */ jsx("div", {
111
+ className: "flex size-full items-center justify-center",
112
+ children: [0, 1].map(renderDot)
113
+ });
114
+ }
115
+ /**
116
+ * Три подпрыгивающие точки
117
+ * @returns точки
118
+ */
119
+ function ThreeDotsLoader() {
120
+ const renderDot = (index) => /* @__PURE__ */ jsx(motion.span, {
121
+ className: "aspect-square w-1/4 rounded-full bg-primary",
122
+ animate: { y: [
123
+ "0%",
124
+ "-50%",
125
+ "0%"
126
+ ] },
127
+ transition: loop(.8, {
128
+ ease: "easeInOut",
129
+ delay: index * .2
130
+ })
131
+ }, index);
132
+ return /* @__PURE__ */ jsx("div", {
133
+ className: "flex size-full items-center justify-center gap-[6%]",
134
+ children: [
135
+ 0,
136
+ 1,
137
+ 2
138
+ ].map(renderDot)
139
+ });
140
+ }
141
+ /**
142
+ * Три мигающие точки в вершинах треугольника
143
+ * @returns точки
144
+ */
145
+ function TriangleLoader() {
146
+ const positions = [
147
+ {
148
+ x: "0%",
149
+ y: "-100%"
150
+ },
151
+ {
152
+ x: "-70%",
153
+ y: "0%"
154
+ },
155
+ {
156
+ x: "70%",
157
+ y: "0%"
158
+ }
159
+ ];
160
+ const renderDot = (position, index) => /* @__PURE__ */ jsx(motion.span, {
161
+ className: "absolute size-1/4 rounded-full bg-primary",
162
+ style: position,
163
+ animate: { opacity: [
164
+ 1,
165
+ .2,
166
+ 1
167
+ ] },
168
+ transition: loop(.8, { delay: index * .2 })
169
+ }, index);
170
+ return /* @__PURE__ */ jsx("div", {
171
+ className: "relative flex size-full items-center justify-center",
172
+ children: positions.map(renderDot)
173
+ });
174
+ }
175
+ /**
176
+ * Два расходящихся и сжимающихся круга
177
+ * @returns круги
178
+ */
179
+ function BounceLoader() {
180
+ const renderCircle = (delay) => /* @__PURE__ */ jsx(motion.div, {
181
+ className: "absolute size-full rounded-full bg-primary/60",
182
+ animate: { scale: [
183
+ 0,
184
+ 1,
185
+ 0
186
+ ] },
187
+ transition: loop(2.1, {
188
+ ease: "easeInOut",
189
+ delay
190
+ })
191
+ }, delay);
192
+ return /* @__PURE__ */ jsx("div", {
193
+ className: "relative size-full",
194
+ children: [0, 1].map(renderCircle)
195
+ });
196
+ }
197
+ /**
198
+ * Вращающаяся дуга, которая «дышит»
199
+ * @returns дуга
200
+ */
201
+ function ClipLoader() {
202
+ return /* @__PURE__ */ jsx(motion.div, {
203
+ className: "size-full rounded-full border-primary border-t-transparent border-(length:--loader-stroke-thick)",
204
+ animate: {
205
+ rotate: 360,
206
+ scale: [
207
+ .8,
208
+ 1,
209
+ .8
210
+ ]
211
+ },
212
+ transition: loop(1, { ease: "linear" })
213
+ });
214
+ }
215
+ /**
216
+ * Полоса с двумя бегущими отрезками
217
+ * @returns полоса
218
+ */
219
+ function BarLoader() {
220
+ return /* @__PURE__ */ jsxs("div", {
221
+ className: "relative size-full overflow-hidden rounded-sm bg-primary/30",
222
+ children: [/* @__PURE__ */ jsx(motion.span, {
223
+ className: "absolute inset-y-0 z-10 h-full bg-primary",
224
+ animate: {
225
+ left: [
226
+ "-35%",
227
+ "100%",
228
+ "100%"
229
+ ],
230
+ right: [
231
+ "100%",
232
+ "-90%",
233
+ "-90%"
234
+ ]
235
+ },
236
+ transition: loop(1.5, {
237
+ ease: [
238
+ .65,
239
+ .815,
240
+ .735,
241
+ .395
242
+ ],
243
+ times: [
244
+ 0,
245
+ .6,
246
+ 1
247
+ ]
248
+ })
249
+ }), /* @__PURE__ */ jsx(motion.span, {
250
+ className: "absolute inset-y-0 z-10 h-full bg-primary",
251
+ animate: {
252
+ left: [
253
+ "-200%",
254
+ "107%",
255
+ "107%"
256
+ ],
257
+ right: [
258
+ "100%",
259
+ "-8%",
260
+ "-8%"
261
+ ]
262
+ },
263
+ transition: loop(1.5, {
264
+ ease: [
265
+ .165,
266
+ .84,
267
+ .44,
268
+ 1
269
+ ],
270
+ times: [
271
+ 0,
272
+ .6,
273
+ 1
274
+ ]
275
+ })
276
+ })]
277
+ });
278
+ }
279
+ /**
280
+ * Три пульсирующие точки: крайние и средняя в противофазе
281
+ * @returns точки
282
+ */
283
+ function BeatLoader() {
284
+ const renderDot = (index) => {
285
+ const delay = index === 1 ? .5 : 0;
286
+ return /* @__PURE__ */ jsx(motion.span, {
287
+ className: "aspect-square w-1/4 rounded-full bg-primary",
288
+ initial: {
289
+ opacity: .5,
290
+ scale: .75
291
+ },
292
+ animate: {
293
+ opacity: [
294
+ .5,
295
+ 1,
296
+ .5
297
+ ],
298
+ scale: [
299
+ .75,
300
+ 1,
301
+ .75
302
+ ]
303
+ },
304
+ transition: loop(1, {
305
+ ease: "easeInOut",
306
+ delay
307
+ })
308
+ }, index);
309
+ };
310
+ return /* @__PURE__ */ jsx("div", {
311
+ className: "flex size-full items-center justify-center",
312
+ children: [
313
+ 0,
314
+ 1,
315
+ 2
316
+ ].map(renderDot)
317
+ });
318
+ }
319
+ /**
320
+ * Два расходящихся и гаснущих кольца
321
+ * @returns кольца
322
+ */
323
+ function PuffLoader() {
324
+ const renderRing = (color, delay) => {
325
+ const classes = cn("absolute", "inset-0", "rounded-full", "border-(length:--loader-stroke-thick)", color);
326
+ return /* @__PURE__ */ jsx(motion.span, {
327
+ className: classes,
328
+ initial: {
329
+ opacity: 0,
330
+ scale: 0
331
+ },
332
+ animate: {
333
+ scale: [
334
+ 0,
335
+ 1,
336
+ 0
337
+ ],
338
+ opacity: [1, 0]
339
+ },
340
+ transition: loop(2, { delay })
341
+ }, delay);
342
+ };
343
+ return /* @__PURE__ */ jsxs("div", {
344
+ className: "relative size-full",
345
+ children: [renderRing("border-muted-foreground/40", 0), renderRing("border-primary", 1)]
346
+ });
347
+ }
348
+ /**
349
+ * Содержимое индикатора по виду
350
+ */
351
+ const loaderBodies = {
352
+ arc: ArcLoader,
353
+ "dual-arc": DualArcLoader,
354
+ "circle-dots": CircleDotsLoader,
355
+ "two-dots": TwoDotsLoader,
356
+ "three-dots": ThreeDotsLoader,
357
+ triangle: TriangleLoader,
358
+ bounce: BounceLoader,
359
+ clip: ClipLoader,
360
+ bar: BarLoader,
361
+ beat: BeatLoader,
362
+ puff: PuffLoader
363
+ };
364
+ /**
365
+ * Индикатор загрузки с анимированными видами. Цвет — text-primary, меняется через className.
366
+ * Для маленького индикатора внутри кнопки или текста есть Spinner.
367
+ * @param props - пропсы индикатора
368
+ * @returns индикатор
369
+ */
370
+ function Loader({ className, variant = "arc", size = "default", "aria-label": ariaLabel = texts.loading, ...props }) {
371
+ const Body = loaderBodies[variant ?? "arc"];
372
+ const classes = cn(loaderVariants({
373
+ variant,
374
+ size
375
+ }), className);
376
+ return /* @__PURE__ */ jsx("div", {
377
+ role: "status",
378
+ "aria-label": ariaLabel,
379
+ "data-slot": "loader",
380
+ "data-variant": variant,
381
+ className: classes,
382
+ ...props,
383
+ children: /* @__PURE__ */ jsx(Body, {})
384
+ });
385
+ }
386
+ export { Loader };
@@ -0,0 +1,27 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { ComponentProps } from "react";
3
+ /**
4
+ * Стили индикатора: вид и размер.
5
+ * Размер задаёт и толщину линий (--loader-stroke, --loader-stroke-thick) и отступ второй дуги.
6
+ * Полоса (bar) вытянута по горизонтали.
7
+ * Экспортируются, чтобы переиспользовать размеры: loaderVariants({ size: 'lg' }).
8
+ */
9
+ export declare const loaderVariants: (props?: ({
10
+ variant?: "arc" | "dual-arc" | "circle-dots" | "two-dots" | "three-dots" | "triangle" | "bounce" | "clip" | "bar" | "beat" | "puff" | null | undefined;
11
+ size?: "default" | "sm" | "lg" | "xl" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ /**
14
+ * Вид и размер индикатора
15
+ */
16
+ export type LoaderVariantsT = VariantProps<typeof loaderVariants>;
17
+ /**
18
+ * Пропсы индикатора загрузки
19
+ */
20
+ export type LoaderPropsT = Omit<ComponentProps<'div'>, 'aria-label' | 'children'> & {
21
+ /** Вид: arc, dual-arc, circle-dots, two-dots, three-dots, triangle, bounce, clip, bar, beat, puff */
22
+ variant?: LoaderVariantsT['variant'];
23
+ /** Размер: sm, default, lg, xl */
24
+ size?: LoaderVariantsT['size'];
25
+ /** Текст для скринридера, по умолчанию «Загрузка…» */
26
+ 'aria-label'?: string;
27
+ };
@@ -0,0 +1,58 @@
1
+ import { cva } from "class-variance-authority";
2
+ // src/components/loader/types.ts
3
+ /**
4
+ * Стили индикатора: вид и размер.
5
+ * Размер задаёт и толщину линий (--loader-stroke, --loader-stroke-thick) и отступ второй дуги.
6
+ * Полоса (bar) вытянута по горизонтали.
7
+ * Экспортируются, чтобы переиспользовать размеры: loaderVariants({ size: 'lg' }).
8
+ */
9
+ const loaderVariants = cva("inline-flex shrink-0 items-center justify-center text-primary", {
10
+ variants: {
11
+ variant: {
12
+ arc: "",
13
+ "dual-arc": "",
14
+ "circle-dots": "",
15
+ "two-dots": "",
16
+ "three-dots": "",
17
+ triangle: "",
18
+ bounce: "",
19
+ clip: "",
20
+ bar: "",
21
+ beat: "",
22
+ puff: ""
23
+ },
24
+ size: {
25
+ sm: "size-6 [--loader-stroke:2px] [--loader-stroke-thick:3px] [--loader-inset:0.25rem]",
26
+ default: "size-10 [--loader-stroke:3px] [--loader-stroke-thick:4px] [--loader-inset:0.375rem]",
27
+ lg: "size-14 [--loader-stroke:3px] [--loader-stroke-thick:4px] [--loader-inset:0.375rem]",
28
+ xl: "size-18 [--loader-stroke:4px] [--loader-stroke-thick:5px] [--loader-inset:0.5rem]"
29
+ }
30
+ },
31
+ compoundVariants: [
32
+ {
33
+ variant: "bar",
34
+ size: "sm",
35
+ className: "h-0.5 w-16"
36
+ },
37
+ {
38
+ variant: "bar",
39
+ size: "default",
40
+ className: "h-1 w-24"
41
+ },
42
+ {
43
+ variant: "bar",
44
+ size: "lg",
45
+ className: "h-2 w-40"
46
+ },
47
+ {
48
+ variant: "bar",
49
+ size: "xl",
50
+ className: "h-3 w-48"
51
+ }
52
+ ],
53
+ defaultVariants: {
54
+ variant: "arc",
55
+ size: "default"
56
+ }
57
+ });
58
+ export { loaderVariants };
@@ -0,0 +1,3 @@
1
+ import { MarkerContentPropsT, MarkerIconPropsT, MarkerPropsT, markerVariants } from "./types.js";
2
+ import { Marker, MarkerContent, MarkerIcon } from "./marker.js";
3
+ export { Marker, MarkerContent, type MarkerContentPropsT, MarkerIcon, type MarkerIconPropsT, type MarkerPropsT, markerVariants };
@@ -0,0 +1,3 @@
1
+ import { markerVariants } from "./types.js";
2
+ import { Marker, MarkerContent, MarkerIcon } from "./marker.js";
3
+ export { Marker, MarkerContent, MarkerIcon, markerVariants };
@@ -0,0 +1,19 @@
1
+ import { MarkerContentPropsT, MarkerIconPropsT, MarkerPropsT } from "./types.js";
2
+ /**
3
+ * Отметка: короткая служебная строка в ленте — событие, статус, разделитель по дате
4
+ * @param props - пропсы отметки
5
+ * @returns отметка или дочерний элемент в её стилях (render)
6
+ */
7
+ export declare function Marker({ className, variant, render, ...props }: MarkerPropsT): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
8
+ /**
9
+ * Иконка отметки: декоративная, скрыта от скринридера
10
+ * @param props - пропсы иконки
11
+ * @returns обёртка иконки 16px
12
+ */
13
+ export declare function MarkerIcon({ className, ...props }: MarkerIconPropsT): import("react").JSX.Element;
14
+ /**
15
+ * Текст отметки
16
+ * @param props - пропсы текста
17
+ * @returns текст
18
+ */
19
+ export declare function MarkerContent({ className, ...props }: MarkerContentPropsT): import("react").JSX.Element;