@repraze/kernelkit 0.0.0-stage → 0.1.0-alpha.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 (584) hide show
  1. package/README.md +41 -2
  2. package/dist/components/accordion.d.ts +13 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +33 -0
  5. package/dist/components/accordion.js.map +1 -0
  6. package/dist/components/alert-dialog.d.ts +24 -0
  7. package/dist/components/alert-dialog.d.ts.map +1 -0
  8. package/dist/components/alert-dialog.js +49 -0
  9. package/dist/components/alert-dialog.js.map +1 -0
  10. package/dist/components/alert.d.ts +22 -0
  11. package/dist/components/alert.d.ts.map +1 -0
  12. package/dist/components/alert.js +61 -0
  13. package/dist/components/alert.js.map +1 -0
  14. package/dist/components/aspect-ratio.d.ts +10 -0
  15. package/dist/components/aspect-ratio.d.ts.map +1 -0
  16. package/dist/components/aspect-ratio.js +18 -0
  17. package/dist/components/aspect-ratio.js.map +1 -0
  18. package/dist/components/attachment.d.ts +27 -0
  19. package/dist/components/attachment.d.ts.map +1 -0
  20. package/dist/components/attachment.js +76 -0
  21. package/dist/components/attachment.js.map +1 -0
  22. package/dist/components/avatar.d.ts +18 -0
  23. package/dist/components/avatar.d.ts.map +1 -0
  24. package/dist/components/avatar.js +38 -0
  25. package/dist/components/avatar.js.map +1 -0
  26. package/dist/components/badge.d.ts +18 -0
  27. package/dist/components/badge.d.ts.map +1 -0
  28. package/dist/components/badge.js +49 -0
  29. package/dist/components/badge.js.map +1 -0
  30. package/dist/components/breadcrumb.d.ts +11 -0
  31. package/dist/components/breadcrumb.d.ts.map +1 -0
  32. package/dist/components/breadcrumb.js +40 -0
  33. package/dist/components/breadcrumb.js.map +1 -0
  34. package/dist/components/bubble.d.ts +22 -0
  35. package/dist/components/bubble.d.ts.map +1 -0
  36. package/dist/components/bubble.js +72 -0
  37. package/dist/components/bubble.js.map +1 -0
  38. package/dist/components/button-group.d.ts +11 -0
  39. package/dist/components/button-group.d.ts.map +1 -0
  40. package/dist/components/button-group.js +38 -0
  41. package/dist/components/button-group.js.map +1 -0
  42. package/dist/components/button.d.ts +26 -0
  43. package/dist/components/button.d.ts.map +1 -0
  44. package/dist/components/button.js +78 -0
  45. package/dist/components/button.js.map +1 -0
  46. package/dist/components/calendar.d.ts +11 -0
  47. package/dist/components/calendar.d.ts.map +1 -0
  48. package/dist/components/calendar.js +89 -0
  49. package/dist/components/calendar.js.map +1 -0
  50. package/dist/components/callout.d.ts +25 -0
  51. package/dist/components/callout.d.ts.map +1 -0
  52. package/dist/components/callout.js +40 -0
  53. package/dist/components/callout.js.map +1 -0
  54. package/dist/components/card.d.ts +43 -0
  55. package/dist/components/card.d.ts.map +1 -0
  56. package/dist/components/card.js +80 -0
  57. package/dist/components/card.js.map +1 -0
  58. package/dist/components/carousel.d.ts +31 -0
  59. package/dist/components/carousel.d.ts.map +1 -0
  60. package/dist/components/carousel.js +120 -0
  61. package/dist/components/carousel.js.map +1 -0
  62. package/dist/components/chart.d.ts +45 -0
  63. package/dist/components/chart.d.ts.map +1 -0
  64. package/dist/components/chart.js +137 -0
  65. package/dist/components/chart.js.map +1 -0
  66. package/dist/components/checkbox-group.d.ts +9 -0
  67. package/dist/components/checkbox-group.d.ts.map +1 -0
  68. package/dist/components/checkbox-group.js +14 -0
  69. package/dist/components/checkbox-group.js.map +1 -0
  70. package/dist/components/checkbox.d.ts +6 -0
  71. package/dist/components/checkbox.d.ts.map +1 -0
  72. package/dist/components/checkbox.js +27 -0
  73. package/dist/components/checkbox.js.map +1 -0
  74. package/dist/components/code-block.d.ts +29 -0
  75. package/dist/components/code-block.d.ts.map +1 -0
  76. package/dist/components/code-block.js +87 -0
  77. package/dist/components/code-block.js.map +1 -0
  78. package/dist/components/collapsible.d.ts +11 -0
  79. package/dist/components/collapsible.d.ts.map +1 -0
  80. package/dist/components/collapsible.js +21 -0
  81. package/dist/components/collapsible.js.map +1 -0
  82. package/dist/components/combobox.d.ts +26 -0
  83. package/dist/components/combobox.d.ts.map +1 -0
  84. package/dist/components/combobox.js +66 -0
  85. package/dist/components/combobox.js.map +1 -0
  86. package/dist/components/command.d.ts +25 -0
  87. package/dist/components/command.d.ts.map +1 -0
  88. package/dist/components/command.js +48 -0
  89. package/dist/components/command.js.map +1 -0
  90. package/dist/components/context-menu.d.ts +32 -0
  91. package/dist/components/context-menu.d.ts.map +1 -0
  92. package/dist/components/context-menu.js +58 -0
  93. package/dist/components/context-menu.js.map +1 -0
  94. package/dist/components/copy-button.d.ts +21 -0
  95. package/dist/components/copy-button.d.ts.map +1 -0
  96. package/dist/components/copy-button.js +34 -0
  97. package/dist/components/copy-button.js.map +1 -0
  98. package/dist/components/data-table/data-table-utils.d.ts +18 -0
  99. package/dist/components/data-table/data-table-utils.d.ts.map +1 -0
  100. package/dist/components/data-table/data-table-utils.js +92 -0
  101. package/dist/components/data-table/data-table-utils.js.map +1 -0
  102. package/dist/components/data-table/elements/data-table-base.d.ts +24 -0
  103. package/dist/components/data-table/elements/data-table-base.d.ts.map +1 -0
  104. package/dist/components/data-table/elements/data-table-base.js +28 -0
  105. package/dist/components/data-table/elements/data-table-base.js.map +1 -0
  106. package/dist/components/data-table/elements/data-table-body.d.ts +8 -0
  107. package/dist/components/data-table/elements/data-table-body.d.ts.map +1 -0
  108. package/dist/components/data-table/elements/data-table-body.js +16 -0
  109. package/dist/components/data-table/elements/data-table-body.js.map +1 -0
  110. package/dist/components/data-table/elements/data-table-cell.d.ts +12 -0
  111. package/dist/components/data-table/elements/data-table-cell.d.ts.map +1 -0
  112. package/dist/components/data-table/elements/data-table-cell.js +23 -0
  113. package/dist/components/data-table/elements/data-table-cell.js.map +1 -0
  114. package/dist/components/data-table/elements/data-table-filter-row.d.ts +40 -0
  115. package/dist/components/data-table/elements/data-table-filter-row.d.ts.map +1 -0
  116. package/dist/components/data-table/elements/data-table-filter-row.js +117 -0
  117. package/dist/components/data-table/elements/data-table-filter-row.js.map +1 -0
  118. package/dist/components/data-table/elements/data-table-foot.d.ts +9 -0
  119. package/dist/components/data-table/elements/data-table-foot.d.ts.map +1 -0
  120. package/dist/components/data-table/elements/data-table-foot.js +11 -0
  121. package/dist/components/data-table/elements/data-table-foot.js.map +1 -0
  122. package/dist/components/data-table/elements/data-table-head.d.ts +9 -0
  123. package/dist/components/data-table/elements/data-table-head.d.ts.map +1 -0
  124. package/dist/components/data-table/elements/data-table-head.js +11 -0
  125. package/dist/components/data-table/elements/data-table-head.js.map +1 -0
  126. package/dist/components/data-table/elements/data-table-info-row.d.ts +7 -0
  127. package/dist/components/data-table/elements/data-table-info-row.d.ts.map +1 -0
  128. package/dist/components/data-table/elements/data-table-info-row.js +19 -0
  129. package/dist/components/data-table/elements/data-table-info-row.js.map +1 -0
  130. package/dist/components/data-table/elements/data-table-row.d.ts +13 -0
  131. package/dist/components/data-table/elements/data-table-row.d.ts.map +1 -0
  132. package/dist/components/data-table/elements/data-table-row.js +19 -0
  133. package/dist/components/data-table/elements/data-table-row.js.map +1 -0
  134. package/dist/components/data-table/elements/data-table-scroll.d.ts +11 -0
  135. package/dist/components/data-table/elements/data-table-scroll.d.ts.map +1 -0
  136. package/dist/components/data-table/elements/data-table-scroll.js +10 -0
  137. package/dist/components/data-table/elements/data-table-scroll.js.map +1 -0
  138. package/dist/components/data-table/elements/data-table-sort-row.d.ts +28 -0
  139. package/dist/components/data-table/elements/data-table-sort-row.d.ts.map +1 -0
  140. package/dist/components/data-table/elements/data-table-sort-row.js +114 -0
  141. package/dist/components/data-table/elements/data-table-sort-row.js.map +1 -0
  142. package/dist/components/data-table/elements/data-table-title-row.d.ts +11 -0
  143. package/dist/components/data-table/elements/data-table-title-row.d.ts.map +1 -0
  144. package/dist/components/data-table/elements/data-table-title-row.js +16 -0
  145. package/dist/components/data-table/elements/data-table-title-row.js.map +1 -0
  146. package/dist/components/data-table/elements/data-table-virtualized-body.d.ts +10 -0
  147. package/dist/components/data-table/elements/data-table-virtualized-body.d.ts.map +1 -0
  148. package/dist/components/data-table/elements/data-table-virtualized-body.js +38 -0
  149. package/dist/components/data-table/elements/data-table-virtualized-body.js.map +1 -0
  150. package/dist/components/data-table/set-utils.d.ts +41 -0
  151. package/dist/components/data-table/set-utils.d.ts.map +1 -0
  152. package/dist/components/data-table/set-utils.js +97 -0
  153. package/dist/components/data-table/set-utils.js.map +1 -0
  154. package/dist/components/data-table/views/data-table-filter-view.d.ts +18 -0
  155. package/dist/components/data-table/views/data-table-filter-view.d.ts.map +1 -0
  156. package/dist/components/data-table/views/data-table-filter-view.js +63 -0
  157. package/dist/components/data-table/views/data-table-filter-view.js.map +1 -0
  158. package/dist/components/data-table/views/data-table-prop-view.d.ts +297 -0
  159. package/dist/components/data-table/views/data-table-prop-view.d.ts.map +1 -0
  160. package/dist/components/data-table/views/data-table-prop-view.js +44 -0
  161. package/dist/components/data-table/views/data-table-prop-view.js.map +1 -0
  162. package/dist/components/data-table/views/data-table-root-view.d.ts +8 -0
  163. package/dist/components/data-table/views/data-table-root-view.d.ts.map +1 -0
  164. package/dist/components/data-table/views/data-table-root-view.js +18 -0
  165. package/dist/components/data-table/views/data-table-root-view.js.map +1 -0
  166. package/dist/components/data-table/views/data-table-sort-view.d.ts +18 -0
  167. package/dist/components/data-table/views/data-table-sort-view.d.ts.map +1 -0
  168. package/dist/components/data-table/views/data-table-sort-view.js +70 -0
  169. package/dist/components/data-table/views/data-table-sort-view.js.map +1 -0
  170. package/dist/components/data-table/views/data-table-view.d.ts +44 -0
  171. package/dist/components/data-table/views/data-table-view.d.ts.map +1 -0
  172. package/dist/components/data-table/views/data-table-view.js +86 -0
  173. package/dist/components/data-table/views/data-table-view.js.map +1 -0
  174. package/dist/components/data-table.d.ts +20 -0
  175. package/dist/components/data-table.d.ts.map +1 -0
  176. package/dist/components/data-table.js +26 -0
  177. package/dist/components/data-table.js.map +1 -0
  178. package/dist/components/date-picker.d.ts +43 -0
  179. package/dist/components/date-picker.d.ts.map +1 -0
  180. package/dist/components/date-picker.js +45 -0
  181. package/dist/components/date-picker.js.map +1 -0
  182. package/dist/components/dialog.d.ts +24 -0
  183. package/dist/components/dialog.d.ts.map +1 -0
  184. package/dist/components/dialog.js +57 -0
  185. package/dist/components/dialog.js.map +1 -0
  186. package/dist/components/direction.d.ts +2 -0
  187. package/dist/components/direction.d.ts.map +1 -0
  188. package/dist/components/direction.js +3 -0
  189. package/dist/components/direction.js.map +1 -0
  190. package/dist/components/drawer.d.ts +18 -0
  191. package/dist/components/drawer.d.ts.map +1 -0
  192. package/dist/components/drawer.js +84 -0
  193. package/dist/components/drawer.js.map +1 -0
  194. package/dist/components/dropdown-menu.d.ts +45 -0
  195. package/dist/components/dropdown-menu.d.ts.map +1 -0
  196. package/dist/components/dropdown-menu.js +77 -0
  197. package/dist/components/dropdown-menu.js.map +1 -0
  198. package/dist/components/empty.d.ts +15 -0
  199. package/dist/components/empty.d.ts.map +1 -0
  200. package/dist/components/empty.js +44 -0
  201. package/dist/components/empty.js.map +1 -0
  202. package/dist/components/field.d.ts +25 -0
  203. package/dist/components/field.d.ts.map +1 -0
  204. package/dist/components/field.js +72 -0
  205. package/dist/components/field.js.map +1 -0
  206. package/dist/components/file-upload.d.ts +24 -0
  207. package/dist/components/file-upload.d.ts.map +1 -0
  208. package/dist/components/file-upload.js +78 -0
  209. package/dist/components/file-upload.js.map +1 -0
  210. package/dist/components/hero.d.ts +39 -0
  211. package/dist/components/hero.d.ts.map +1 -0
  212. package/dist/components/hero.js +71 -0
  213. package/dist/components/hero.js.map +1 -0
  214. package/dist/components/hover-card.d.ts +6 -0
  215. package/dist/components/hover-card.d.ts.map +1 -0
  216. package/dist/components/hover-card.js +17 -0
  217. package/dist/components/hover-card.js.map +1 -0
  218. package/dist/components/input-group.d.ts +23 -0
  219. package/dist/components/input-group.d.ts.map +1 -0
  220. package/dist/components/input-group.js +86 -0
  221. package/dist/components/input-group.js.map +1 -0
  222. package/dist/components/input-otp.d.ts +13 -0
  223. package/dist/components/input-otp.d.ts.map +1 -0
  224. package/dist/components/input-otp.js +25 -0
  225. package/dist/components/input-otp.js.map +1 -0
  226. package/dist/components/input.d.ts +13 -0
  227. package/dist/components/input.d.ts.map +1 -0
  228. package/dist/components/input.js +29 -0
  229. package/dist/components/input.js.map +1 -0
  230. package/dist/components/item.d.ts +23 -0
  231. package/dist/components/item.d.ts.map +1 -0
  232. package/dist/components/item.js +89 -0
  233. package/dist/components/item.js.map +1 -0
  234. package/dist/components/kbd.d.ts +11 -0
  235. package/dist/components/kbd.d.ts.map +1 -0
  236. package/dist/components/kbd.js +26 -0
  237. package/dist/components/kbd.js.map +1 -0
  238. package/dist/components/label.d.ts +4 -0
  239. package/dist/components/label.d.ts.map +1 -0
  240. package/dist/components/label.js +9 -0
  241. package/dist/components/label.js.map +1 -0
  242. package/dist/components/marker.d.ts +11 -0
  243. package/dist/components/marker.d.ts.map +1 -0
  244. package/dist/components/marker.js +37 -0
  245. package/dist/components/marker.js.map +1 -0
  246. package/dist/components/menubar.d.ts +23 -0
  247. package/dist/components/menubar.d.ts.map +1 -0
  248. package/dist/components/menubar.js +60 -0
  249. package/dist/components/menubar.js.map +1 -0
  250. package/dist/components/message-scroller.d.ts +11 -0
  251. package/dist/components/message-scroller.d.ts.map +1 -0
  252. package/dist/components/message-scroller.js +27 -0
  253. package/dist/components/message-scroller.js.map +1 -0
  254. package/dist/components/message.d.ts +17 -0
  255. package/dist/components/message.d.ts.map +1 -0
  256. package/dist/components/message.js +24 -0
  257. package/dist/components/message.js.map +1 -0
  258. package/dist/components/meter.d.ts +18 -0
  259. package/dist/components/meter.d.ts.map +1 -0
  260. package/dist/components/meter.js +25 -0
  261. package/dist/components/meter.js.map +1 -0
  262. package/dist/components/native-select.d.ts +14 -0
  263. package/dist/components/native-select.d.ts.map +1 -0
  264. package/dist/components/native-select.js +34 -0
  265. package/dist/components/native-select.js.map +1 -0
  266. package/dist/components/navbar.d.ts +11 -0
  267. package/dist/components/navbar.d.ts.map +1 -0
  268. package/dist/components/navbar.js +44 -0
  269. package/dist/components/navbar.js.map +1 -0
  270. package/dist/components/navigation-menu.d.ts +23 -0
  271. package/dist/components/navigation-menu.d.ts.map +1 -0
  272. package/dist/components/navigation-menu.js +51 -0
  273. package/dist/components/navigation-menu.js.map +1 -0
  274. package/dist/components/number-field.d.ts +16 -0
  275. package/dist/components/number-field.d.ts.map +1 -0
  276. package/dist/components/number-field.js +49 -0
  277. package/dist/components/number-field.js.map +1 -0
  278. package/dist/components/page-header.d.ts +13 -0
  279. package/dist/components/page-header.d.ts.map +1 -0
  280. package/dist/components/page-header.js +51 -0
  281. package/dist/components/page-header.js.map +1 -0
  282. package/dist/components/pager.d.ts +14 -0
  283. package/dist/components/pager.d.ts.map +1 -0
  284. package/dist/components/pager.js +36 -0
  285. package/dist/components/pager.js.map +1 -0
  286. package/dist/components/pagination.d.ts +21 -0
  287. package/dist/components/pagination.d.ts.map +1 -0
  288. package/dist/components/pagination.js +29 -0
  289. package/dist/components/pagination.js.map +1 -0
  290. package/dist/components/password-input.d.ts +18 -0
  291. package/dist/components/password-input.d.ts.map +1 -0
  292. package/dist/components/password-input.js +17 -0
  293. package/dist/components/password-input.js.map +1 -0
  294. package/dist/components/password-strength.d.ts +21 -0
  295. package/dist/components/password-strength.d.ts.map +1 -0
  296. package/dist/components/password-strength.js +52 -0
  297. package/dist/components/password-strength.js.map +1 -0
  298. package/dist/components/popover.d.ts +10 -0
  299. package/dist/components/popover.d.ts.map +1 -0
  300. package/dist/components/popover.js +27 -0
  301. package/dist/components/popover.js.map +1 -0
  302. package/dist/components/progress.d.ts +26 -0
  303. package/dist/components/progress.d.ts.map +1 -0
  304. package/dist/components/progress.js +39 -0
  305. package/dist/components/progress.js.map +1 -0
  306. package/dist/components/questionnaire.d.ts +20 -0
  307. package/dist/components/questionnaire.d.ts.map +1 -0
  308. package/dist/components/questionnaire.js +57 -0
  309. package/dist/components/questionnaire.js.map +1 -0
  310. package/dist/components/radio-group.d.ts +8 -0
  311. package/dist/components/radio-group.d.ts.map +1 -0
  312. package/dist/components/radio-group.js +27 -0
  313. package/dist/components/radio-group.js.map +1 -0
  314. package/dist/components/resizable.d.ts +13 -0
  315. package/dist/components/resizable.d.ts.map +1 -0
  316. package/dist/components/resizable.js +24 -0
  317. package/dist/components/resizable.js.map +1 -0
  318. package/dist/components/scroll-area.d.ts +17 -0
  319. package/dist/components/scroll-area.d.ts.map +1 -0
  320. package/dist/components/scroll-area.js +12 -0
  321. package/dist/components/scroll-area.js.map +1 -0
  322. package/dist/components/search-dialog.d.ts +38 -0
  323. package/dist/components/search-dialog.d.ts.map +1 -0
  324. package/dist/components/search-dialog.js +39 -0
  325. package/dist/components/search-dialog.js.map +1 -0
  326. package/dist/components/search-trigger.d.ts +20 -0
  327. package/dist/components/search-trigger.d.ts.map +1 -0
  328. package/dist/components/search-trigger.js +52 -0
  329. package/dist/components/search-trigger.js.map +1 -0
  330. package/dist/components/section.d.ts +30 -0
  331. package/dist/components/section.d.ts.map +1 -0
  332. package/dist/components/section.js +79 -0
  333. package/dist/components/section.js.map +1 -0
  334. package/dist/components/select.d.ts +16 -0
  335. package/dist/components/select.d.ts.map +1 -0
  336. package/dist/components/select.js +38 -0
  337. package/dist/components/select.js.map +1 -0
  338. package/dist/components/separator.d.ts +4 -0
  339. package/dist/components/separator.d.ts.map +1 -0
  340. package/dist/components/separator.js +9 -0
  341. package/dist/components/separator.js.map +1 -0
  342. package/dist/components/sheet.d.ts +16 -0
  343. package/dist/components/sheet.d.ts.map +1 -0
  344. package/dist/components/sheet.js +44 -0
  345. package/dist/components/sheet.js.map +1 -0
  346. package/dist/components/sidebar.d.ts +76 -0
  347. package/dist/components/sidebar.d.ts.map +1 -0
  348. package/dist/components/sidebar.js +289 -0
  349. package/dist/components/sidebar.js.map +1 -0
  350. package/dist/components/site-footer.d.ts +22 -0
  351. package/dist/components/site-footer.d.ts.map +1 -0
  352. package/dist/components/site-footer.js +42 -0
  353. package/dist/components/site-footer.js.map +1 -0
  354. package/dist/components/site-header.d.ts +48 -0
  355. package/dist/components/site-header.d.ts.map +1 -0
  356. package/dist/components/site-header.js +104 -0
  357. package/dist/components/site-header.js.map +1 -0
  358. package/dist/components/site-layout.d.ts +35 -0
  359. package/dist/components/site-layout.d.ts.map +1 -0
  360. package/dist/components/site-layout.js +99 -0
  361. package/dist/components/site-layout.js.map +1 -0
  362. package/dist/components/skeleton.d.ts +6 -0
  363. package/dist/components/skeleton.d.ts.map +1 -0
  364. package/dist/components/skeleton.js +16 -0
  365. package/dist/components/skeleton.js.map +1 -0
  366. package/dist/components/slider.d.ts +4 -0
  367. package/dist/components/slider.d.ts.map +1 -0
  368. package/dist/components/slider.js +11 -0
  369. package/dist/components/slider.js.map +1 -0
  370. package/dist/components/spinner.d.ts +12 -0
  371. package/dist/components/spinner.d.ts.map +1 -0
  372. package/dist/components/spinner.js +26 -0
  373. package/dist/components/spinner.js.map +1 -0
  374. package/dist/components/stat.d.ts +31 -0
  375. package/dist/components/stat.d.ts.map +1 -0
  376. package/dist/components/stat.js +66 -0
  377. package/dist/components/stat.js.map +1 -0
  378. package/dist/components/status-dot.d.ts +25 -0
  379. package/dist/components/status-dot.d.ts.map +1 -0
  380. package/dist/components/status-dot.js +45 -0
  381. package/dist/components/status-dot.js.map +1 -0
  382. package/dist/components/switch.d.ts +17 -0
  383. package/dist/components/switch.d.ts.map +1 -0
  384. package/dist/components/switch.js +49 -0
  385. package/dist/components/switch.js.map +1 -0
  386. package/dist/components/table.d.ts +25 -0
  387. package/dist/components/table.d.ts.map +1 -0
  388. package/dist/components/table.js +45 -0
  389. package/dist/components/table.js.map +1 -0
  390. package/dist/components/tabs.d.ts +18 -0
  391. package/dist/components/tabs.d.ts.map +1 -0
  392. package/dist/components/tabs.js +51 -0
  393. package/dist/components/tabs.js.map +1 -0
  394. package/dist/components/textarea.d.ts +4 -0
  395. package/dist/components/textarea.d.ts.map +1 -0
  396. package/dist/components/textarea.js +10 -0
  397. package/dist/components/textarea.js.map +1 -0
  398. package/dist/components/toast.d.ts +27 -0
  399. package/dist/components/toast.d.ts.map +1 -0
  400. package/dist/components/toast.js +68 -0
  401. package/dist/components/toast.js.map +1 -0
  402. package/dist/components/toc.d.ts +35 -0
  403. package/dist/components/toc.d.ts.map +1 -0
  404. package/dist/components/toc.js +94 -0
  405. package/dist/components/toc.js.map +1 -0
  406. package/dist/components/toggle-group.d.ts +19 -0
  407. package/dist/components/toggle-group.d.ts.map +1 -0
  408. package/dist/components/toggle-group.js +33 -0
  409. package/dist/components/toggle-group.js.map +1 -0
  410. package/dist/components/toggle.d.ts +15 -0
  411. package/dist/components/toggle.d.ts.map +1 -0
  412. package/dist/components/toggle.js +42 -0
  413. package/dist/components/toggle.js.map +1 -0
  414. package/dist/components/toolbar.d.ts +14 -0
  415. package/dist/components/toolbar.d.ts.map +1 -0
  416. package/dist/components/toolbar.js +37 -0
  417. package/dist/components/toolbar.js.map +1 -0
  418. package/dist/components/tooltip.d.ts +7 -0
  419. package/dist/components/tooltip.d.ts.map +1 -0
  420. package/dist/components/tooltip.js +22 -0
  421. package/dist/components/tooltip.js.map +1 -0
  422. package/dist/components/trace.d.ts +20 -0
  423. package/dist/components/trace.d.ts.map +1 -0
  424. package/dist/components/trace.js +32 -0
  425. package/dist/components/trace.js.map +1 -0
  426. package/dist/components/typography.d.ts +37 -0
  427. package/dist/components/typography.d.ts.map +1 -0
  428. package/dist/components/typography.js +140 -0
  429. package/dist/components/typography.js.map +1 -0
  430. package/dist/hooks/use-highlighted-code.d.ts +3 -0
  431. package/dist/hooks/use-highlighted-code.d.ts.map +1 -0
  432. package/dist/hooks/use-highlighted-code.js +50 -0
  433. package/dist/hooks/use-highlighted-code.js.map +1 -0
  434. package/dist/hooks/use-mobile.d.ts +2 -0
  435. package/dist/hooks/use-mobile.d.ts.map +1 -0
  436. package/dist/hooks/use-mobile.js +16 -0
  437. package/dist/hooks/use-mobile.js.map +1 -0
  438. package/dist/lib/color.d.ts +30 -0
  439. package/dist/lib/color.d.ts.map +1 -0
  440. package/dist/lib/color.js +56 -0
  441. package/dist/lib/color.js.map +1 -0
  442. package/dist/lib/highlighter.d.ts +10 -0
  443. package/dist/lib/highlighter.d.ts.map +1 -0
  444. package/dist/lib/highlighter.js +94 -0
  445. package/dist/lib/highlighter.js.map +1 -0
  446. package/dist/lib/recipes.d.ts +30 -0
  447. package/dist/lib/recipes.d.ts.map +1 -0
  448. package/dist/lib/recipes.js +30 -0
  449. package/dist/lib/recipes.js.map +1 -0
  450. package/dist/lib/utils.d.ts +2 -0
  451. package/dist/lib/utils.d.ts.map +1 -0
  452. package/dist/lib/utils.js +2 -0
  453. package/dist/lib/utils.js.map +1 -0
  454. package/dist/provider/index.d.ts +3 -0
  455. package/dist/provider/index.d.ts.map +1 -0
  456. package/dist/provider/index.js +3 -0
  457. package/dist/provider/index.js.map +1 -0
  458. package/dist/provider/theme-provider.d.ts +47 -0
  459. package/dist/provider/theme-provider.d.ts.map +1 -0
  460. package/dist/provider/theme-provider.js +118 -0
  461. package/dist/provider/theme-provider.js.map +1 -0
  462. package/dist/provider/theme.d.ts +42 -0
  463. package/dist/provider/theme.d.ts.map +1 -0
  464. package/dist/provider/theme.js +58 -0
  465. package/dist/provider/theme.js.map +1 -0
  466. package/package.json +145 -5
  467. package/src/components/accordion.tsx +92 -0
  468. package/src/components/alert-dialog.tsx +167 -0
  469. package/src/components/alert.tsx +110 -0
  470. package/src/components/aspect-ratio.tsx +29 -0
  471. package/src/components/attachment.tsx +198 -0
  472. package/src/components/avatar.tsx +115 -0
  473. package/src/components/badge.tsx +75 -0
  474. package/src/components/breadcrumb.tsx +104 -0
  475. package/src/components/bubble.tsx +125 -0
  476. package/src/components/button-group.tsx +75 -0
  477. package/src/components/button.tsx +124 -0
  478. package/src/components/calendar.tsx +204 -0
  479. package/src/components/callout.tsx +131 -0
  480. package/src/components/card.tsx +178 -0
  481. package/src/components/carousel.tsx +294 -0
  482. package/src/components/chart.tsx +332 -0
  483. package/src/components/checkbox-group.tsx +21 -0
  484. package/src/components/checkbox.tsx +39 -0
  485. package/src/components/code-block.tsx +246 -0
  486. package/src/components/collapsible.tsx +47 -0
  487. package/src/components/combobox.tsx +295 -0
  488. package/src/components/command.tsx +174 -0
  489. package/src/components/context-menu.tsx +238 -0
  490. package/src/components/copy-button.tsx +80 -0
  491. package/src/components/data-table/data-table-utils.tsx +125 -0
  492. package/src/components/data-table/elements/data-table-base.tsx +78 -0
  493. package/src/components/data-table/elements/data-table-body.tsx +50 -0
  494. package/src/components/data-table/elements/data-table-cell.tsx +42 -0
  495. package/src/components/data-table/elements/data-table-filter-row.tsx +222 -0
  496. package/src/components/data-table/elements/data-table-foot.tsx +36 -0
  497. package/src/components/data-table/elements/data-table-head.tsx +36 -0
  498. package/src/components/data-table/elements/data-table-info-row.tsx +38 -0
  499. package/src/components/data-table/elements/data-table-row.tsx +58 -0
  500. package/src/components/data-table/elements/data-table-scroll.tsx +33 -0
  501. package/src/components/data-table/elements/data-table-sort-row.tsx +180 -0
  502. package/src/components/data-table/elements/data-table-title-row.tsx +33 -0
  503. package/src/components/data-table/elements/data-table-virtualized-body.tsx +87 -0
  504. package/src/components/data-table/set-utils.ts +103 -0
  505. package/src/components/data-table/views/data-table-filter-view.tsx +75 -0
  506. package/src/components/data-table/views/data-table-prop-view.tsx +55 -0
  507. package/src/components/data-table/views/data-table-root-view.tsx +20 -0
  508. package/src/components/data-table/views/data-table-sort-view.tsx +81 -0
  509. package/src/components/data-table/views/data-table-view.tsx +147 -0
  510. package/src/components/data-table.tsx +30 -0
  511. package/src/components/date-picker.tsx +166 -0
  512. package/src/components/dialog.tsx +158 -0
  513. package/src/components/direction.tsx +3 -0
  514. package/src/components/drawer.tsx +222 -0
  515. package/src/components/dropdown-menu.tsx +267 -0
  516. package/src/components/empty.tsx +97 -0
  517. package/src/components/field.tsx +229 -0
  518. package/src/components/file-upload.tsx +180 -0
  519. package/src/components/hero.tsx +137 -0
  520. package/src/components/hover-card.tsx +44 -0
  521. package/src/components/input-group.tsx +186 -0
  522. package/src/components/input-otp.tsx +82 -0
  523. package/src/components/input.tsx +50 -0
  524. package/src/components/item.tsx +191 -0
  525. package/src/components/kbd.tsx +39 -0
  526. package/src/components/label.tsx +19 -0
  527. package/src/components/marker.tsx +69 -0
  528. package/src/components/menubar.tsx +146 -0
  529. package/src/components/message-scroller.tsx +113 -0
  530. package/src/components/message.tsx +90 -0
  531. package/src/components/meter.tsx +69 -0
  532. package/src/components/native-select.tsx +76 -0
  533. package/src/components/navbar.tsx +55 -0
  534. package/src/components/navigation-menu.tsx +193 -0
  535. package/src/components/number-field.tsx +133 -0
  536. package/src/components/page-header.tsx +63 -0
  537. package/src/components/pager.tsx +70 -0
  538. package/src/components/pagination.tsx +106 -0
  539. package/src/components/password-input.tsx +71 -0
  540. package/src/components/password-strength.tsx +99 -0
  541. package/src/components/popover.tsx +68 -0
  542. package/src/components/progress.tsx +105 -0
  543. package/src/components/questionnaire.tsx +299 -0
  544. package/src/components/radio-group.tsx +43 -0
  545. package/src/components/resizable.tsx +62 -0
  546. package/src/components/scroll-area.tsx +68 -0
  547. package/src/components/search-dialog.tsx +87 -0
  548. package/src/components/search-trigger.tsx +74 -0
  549. package/src/components/section.tsx +110 -0
  550. package/src/components/select.tsx +184 -0
  551. package/src/components/separator.tsx +20 -0
  552. package/src/components/sheet.tsx +116 -0
  553. package/src/components/sidebar.tsx +722 -0
  554. package/src/components/site-footer.tsx +55 -0
  555. package/src/components/site-header.tsx +169 -0
  556. package/src/components/site-layout.tsx +147 -0
  557. package/src/components/skeleton.tsx +19 -0
  558. package/src/components/slider.tsx +46 -0
  559. package/src/components/spinner.tsx +42 -0
  560. package/src/components/stat.tsx +155 -0
  561. package/src/components/status-dot.tsx +94 -0
  562. package/src/components/switch.tsx +70 -0
  563. package/src/components/table.tsx +133 -0
  564. package/src/components/tabs.tsx +99 -0
  565. package/src/components/textarea.tsx +23 -0
  566. package/src/components/toast.tsx +221 -0
  567. package/src/components/toc.tsx +122 -0
  568. package/src/components/toggle-group.tsx +95 -0
  569. package/src/components/toggle.tsx +59 -0
  570. package/src/components/toolbar.tsx +97 -0
  571. package/src/components/tooltip.tsx +57 -0
  572. package/src/components/trace.tsx +143 -0
  573. package/src/components/typography.tsx +205 -0
  574. package/src/hooks/use-highlighted-code.ts +71 -0
  575. package/src/hooks/use-mobile.ts +19 -0
  576. package/src/lib/color.ts +76 -0
  577. package/src/lib/highlighter.tsx +121 -0
  578. package/src/lib/recipes.ts +47 -0
  579. package/src/lib/utils.ts +1 -0
  580. package/src/provider/index.ts +2 -0
  581. package/src/provider/theme-provider.tsx +210 -0
  582. package/src/provider/theme.ts +83 -0
  583. package/src/styles/kernelkit.css +301 -0
  584. package/src/styles/shadcn.css +555 -0
@@ -0,0 +1,289 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ import { Button } from "@repraze/kernelkit/components/button";
6
+ import { Input } from "@repraze/kernelkit/components/input";
7
+ import { ScrollArea } from "@repraze/kernelkit/components/scroll-area";
8
+ import { Separator } from "@repraze/kernelkit/components/separator";
9
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "@repraze/kernelkit/components/sheet";
10
+ import { Skeleton } from "@repraze/kernelkit/components/skeleton";
11
+ import { Tooltip, TooltipContent, TooltipTrigger } from "@repraze/kernelkit/components/tooltip";
12
+ import { useIsMobile } from "@repraze/kernelkit/hooks/use-mobile";
13
+ import { focusRing } from "@repraze/kernelkit/lib/recipes";
14
+ import { cva } from "class-variance-authority";
15
+ import { cn } from "cn";
16
+ import { PanelLeftIcon } from "lucide-react";
17
+ import * as React from "react";
18
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
19
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
20
+ const SIDEBAR_WIDTH = "16rem";
21
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
22
+ const SIDEBAR_WIDTH_ICON = "3rem";
23
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
24
+ const SidebarContext = React.createContext(null);
25
+ function useSidebar() {
26
+ const context = React.useContext(SidebarContext);
27
+ if (!context) {
28
+ throw new Error("useSidebar must be used within a SidebarProvider.");
29
+ }
30
+ return context;
31
+ }
32
+ function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, keyboardShortcut = true, className, style, children, ...props }) {
33
+ const isMobile = useIsMobile();
34
+ const [openMobile, setOpenMobile] = React.useState(false);
35
+ // This is the internal state of the sidebar.
36
+ // We use openProp and setOpenProp for control from outside the component.
37
+ const [_open, _setOpen] = React.useState(defaultOpen);
38
+ const open = openProp ?? _open;
39
+ const setOpen = React.useCallback((value) => {
40
+ const openState = typeof value === "function" ? value(open) : value;
41
+ if (setOpenProp) {
42
+ setOpenProp(openState);
43
+ }
44
+ else {
45
+ _setOpen(openState);
46
+ }
47
+ // This sets the cookie to keep the sidebar state.
48
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
49
+ }, [setOpenProp, open]);
50
+ // Helper to toggle the sidebar.
51
+ const toggleSidebar = React.useCallback(() => {
52
+ return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
53
+ }, [isMobile, setOpen, setOpenMobile]);
54
+ // Adds a keyboard shortcut to toggle the sidebar. Opt out with `keyboardShortcut={false}`.
55
+ React.useEffect(() => {
56
+ if (!keyboardShortcut) {
57
+ return;
58
+ }
59
+ const handleKeyDown = (event) => {
60
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
61
+ event.preventDefault();
62
+ toggleSidebar();
63
+ }
64
+ };
65
+ window.addEventListener("keydown", handleKeyDown);
66
+ return () => window.removeEventListener("keydown", handleKeyDown);
67
+ }, [keyboardShortcut, toggleSidebar]);
68
+ // We add a state so that we can do data-state="expanded" or "collapsed".
69
+ // This makes it easier to style the sidebar with Tailwind classes.
70
+ const state = open ? "expanded" : "collapsed";
71
+ const contextValue = React.useMemo(() => ({
72
+ state,
73
+ open,
74
+ setOpen,
75
+ isMobile,
76
+ openMobile,
77
+ setOpenMobile,
78
+ toggleSidebar,
79
+ }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
80
+ return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx("div", { "data-slot": "sidebar-wrapper", style: {
81
+ "--sidebar-width": SIDEBAR_WIDTH,
82
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
83
+ ...style,
84
+ }, className: cn("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", className), ...props, children: children }) }));
85
+ }
86
+ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, dir, ...props }) {
87
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
88
+ if (collapsible === "none") {
89
+ return (_jsx("div", { "data-slot": "sidebar", className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className), ...props, children: children }));
90
+ }
91
+ if (isMobile) {
92
+ return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { dir: dir, "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden", style: {
93
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
94
+ }, side: side, children: [_jsxs(SheetHeader, { className: "sr-only", children: [_jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) }));
95
+ }
96
+ return (_jsxs("div", { className: "group peer hidden text-sidebar-foreground md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [_jsx("div", { "data-slot": "sidebar-gap", className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset"
97
+ ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
98
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), _jsx("div", { "data-slot": "sidebar-container", "data-side": side, className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
99
+ // Adjust the padding for floating and inset variants.
100
+ variant === "floating" || variant === "inset"
101
+ ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
102
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-xl group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:shadow-(color:--shadow-color)", children: children }) })] }));
103
+ }
104
+ function SidebarTrigger({ className, onClick, ...props }) {
105
+ const { toggleSidebar } = useSidebar();
106
+ return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon-sm", className: cn(className), onClick: (event) => {
107
+ onClick?.(event);
108
+ toggleSidebar();
109
+ }, ...props, children: [_jsx(PanelLeftIcon, {}), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] }));
110
+ }
111
+ function SidebarRail({ className, ...props }) {
112
+ const { toggleSidebar } = useSidebar();
113
+ return (_jsx("button", { "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: cn("absolute inset-y-0 z-20 hidden w-4 transition-[transform,background-color] ease-linear motion-reduce:transition-none group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className), ...props }));
114
+ }
115
+ function SidebarInset({ className, render, ...props }) {
116
+ return useRender({
117
+ defaultTagName: "main",
118
+ props: mergeProps({
119
+ className: cn("relative flex w-full min-w-0 flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:border md:peer-data-[variant=inset]:border-sidebar-border md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:shadow-(color:--shadow-color) md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className),
120
+ }, props),
121
+ render,
122
+ state: {
123
+ slot: "sidebar-inset",
124
+ },
125
+ });
126
+ }
127
+ function SidebarInput({ className, ...props }) {
128
+ return (_jsx(Input, { "data-slot": "sidebar-input", "data-sidebar": "input", className: cn("h-8 w-full bg-background shadow-none", className), ...props }));
129
+ }
130
+ function SidebarHeader({ className, ...props }) {
131
+ return (_jsx("div", { "data-slot": "sidebar-header", "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props }));
132
+ }
133
+ function SidebarFooter({ className, ...props }) {
134
+ return (_jsx("div", { "data-slot": "sidebar-footer", "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props }));
135
+ }
136
+ function SidebarSeparator({ className, ...props }) {
137
+ return (_jsx(Separator, { "data-slot": "sidebar-separator", "data-sidebar": "separator", className: cn("mx-2 w-auto bg-sidebar-border", className), ...props }));
138
+ }
139
+ /** Scrolls with ScrollArea (themed thumb, edge fade) instead of native overflow. */
140
+ function SidebarContent({ className, children, viewportRef, ...props }) {
141
+ return (_jsx(ScrollArea, { fade: true, viewportRef: viewportRef, className: "min-h-0 flex-1 group-data-[collapsible=icon]:overflow-hidden", "data-slot": "sidebar-content", "data-sidebar": "content", children: _jsx("div", { className: cn("flex min-w-0 flex-col gap-0", className), ...props, children: children }) }));
142
+ }
143
+ function SidebarGroup({ className, ...props }) {
144
+ return (_jsx("div", { "data-slot": "sidebar-group", "data-sidebar": "group", className: cn("relative flex w-full min-w-0 flex-col p-2", className), ...props }));
145
+ }
146
+ function SidebarGroupLabel({ className, render, ...props }) {
147
+ return useRender({
148
+ defaultTagName: "div",
149
+ props: mergeProps({
150
+ className: cn("flex h-8 shrink-0 items-center gap-2 rounded-md px-2 text-xs font-medium text-muted-foreground outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-3 focus-visible:ring-ring/50 motion-reduce:transition-none [&>svg]:size-4 [&>svg]:shrink-0", className),
151
+ }, props),
152
+ render,
153
+ state: {
154
+ slot: "sidebar-group-label",
155
+ sidebar: "group-label",
156
+ },
157
+ });
158
+ }
159
+ function SidebarGroupAction({ className, render, ...props }) {
160
+ return useRender({
161
+ defaultTagName: "button",
162
+ props: mergeProps({
163
+ className: cn("absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted-foreground outline-hidden transition-[color,background-color,box-shadow] group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 hover:bg-hover hover:text-sidebar-foreground focus-visible:ring-3 focus-visible:ring-ring/50 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", className),
164
+ }, props),
165
+ render,
166
+ state: {
167
+ slot: "sidebar-group-action",
168
+ sidebar: "group-action",
169
+ },
170
+ });
171
+ }
172
+ function SidebarGroupContent({ className, ...props }) {
173
+ return (_jsx("div", { "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props }));
174
+ }
175
+ function SidebarMenu({ className, ...props }) {
176
+ return (_jsx("ul", { "data-slot": "sidebar-menu", "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
177
+ }
178
+ function SidebarMenuItem({ className, ...props }) {
179
+ return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
180
+ }
181
+ /**
182
+ * Sidebar row. Hover is the `bg-hover` wash; the current item (`isActive`) gets the accent tint, medium
183
+ * weight and a primary icon, so it reads without relying on surface shade (GUIDELINES §6).
184
+ */
185
+ const sidebarMenuButtonVariants = cva([
186
+ "peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md whitespace-nowrap p-2 text-left text-sm text-sidebar-foreground outline-hidden",
187
+ "transition-[width,height,padding,color,background-color,box-shadow] duration-100 motion-reduce:transition-none",
188
+ "group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2!",
189
+ focusRing,
190
+ "hover:bg-hover data-popup-open:bg-hover",
191
+ "disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50",
192
+ // current row (GUIDELINES §7c): accent tint, foreground text, 2px accent indicator on the left edge
193
+ "relative after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0 data-active:after:opacity-100",
194
+ "data-active:bg-primary-tint data-active:font-medium data-active:text-foreground data-active:[&_svg:not([class*='text-'])]:text-primary-text",
195
+ "[&_svg]:size-4 [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground [&>span:last-child]:truncate",
196
+ ], {
197
+ variants: {
198
+ variant: {
199
+ default: "",
200
+ outline: "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-hover",
201
+ },
202
+ size: {
203
+ default: "h-8 text-sm",
204
+ sm: "h-7 text-xs",
205
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!",
206
+ },
207
+ },
208
+ defaultVariants: {
209
+ variant: "default",
210
+ size: "default",
211
+ },
212
+ });
213
+ function SidebarMenuButton({ render, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
214
+ // Works without a SidebarProvider too (an in-page nav styled like the sidebar): expanded, desktop.
215
+ const { isMobile, state } = React.useContext(SidebarContext) ?? { isMobile: false, state: "expanded" };
216
+ const comp = useRender({
217
+ defaultTagName: "button",
218
+ props: mergeProps({
219
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
220
+ }, props),
221
+ render: !tooltip ? render : _jsx(TooltipTrigger, { render: render }),
222
+ state: {
223
+ slot: "sidebar-menu-button",
224
+ sidebar: "menu-button",
225
+ size,
226
+ active: isActive,
227
+ },
228
+ });
229
+ if (!tooltip) {
230
+ return comp;
231
+ }
232
+ if (typeof tooltip === "string") {
233
+ tooltip = {
234
+ children: tooltip,
235
+ };
236
+ }
237
+ return (_jsxs(Tooltip, { children: [comp, _jsx(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })] }));
238
+ }
239
+ function SidebarMenuAction({ className, render, showOnHover = false, ...props }) {
240
+ return useRender({
241
+ defaultTagName: "button",
242
+ props: mergeProps({
243
+ className: cn("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-muted-foreground outline-hidden transition-[color,background-color,box-shadow,opacity] group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 after:absolute after:-inset-2 hover:bg-hover hover:text-sidebar-foreground focus-visible:ring-3 focus-visible:ring-ring/50 aria-expanded:bg-hover md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0", showOnHover &&
244
+ "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0", className),
245
+ }, props),
246
+ render,
247
+ state: {
248
+ slot: "sidebar-menu-action",
249
+ sidebar: "menu-action",
250
+ },
251
+ });
252
+ }
253
+ function SidebarMenuBadge({ className, ...props }) {
254
+ return (_jsx("div", { "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: cn("pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-sm px-1 font-mono text-xs font-medium text-muted-foreground tabular-nums select-none group-data-[collapsible=icon]:hidden peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground", className), ...props }));
255
+ }
256
+ function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
257
+ // Random width between 50 to 90%.
258
+ const [width] = React.useState(() => {
259
+ return `${Math.floor(Math.random() * 40) + 50}%`;
260
+ });
261
+ return (_jsxs("div", { "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: cn("flex h-8 items-center gap-2 rounded-md px-2", className), ...props, children: [showIcon && _jsx(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }), _jsx(Skeleton, { className: "h-4 max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
262
+ "--skeleton-width": width,
263
+ } })] }));
264
+ }
265
+ function SidebarMenuSub({ className, ...props }) {
266
+ return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5 group-data-[collapsible=icon]:hidden", className), ...props }));
267
+ }
268
+ function SidebarMenuSubItem({ className, ...props }) {
269
+ return (_jsx("li", { "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative",
270
+ // current sub-row: the 2px accent indicator sits on the tree line (like Toc)
271
+ "after:pointer-events-none after:absolute after:inset-y-0 after:-left-[calc(0.625rem+1.5px)] after:w-0.5 after:bg-primary-text after:opacity-0 has-[>[data-active]]:after:opacity-100", className), ...props }));
272
+ }
273
+ function SidebarMenuSubButton({ render, size = "md", isActive = false, className, ...props }) {
274
+ return useRender({
275
+ defaultTagName: "a",
276
+ props: mergeProps({
277
+ className: cn("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 whitespace-nowrap text-muted-foreground outline-hidden transition-[color,background-color,box-shadow] duration-100 group-data-[collapsible=icon]:hidden hover:bg-hover hover:text-sidebar-foreground focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs data-active:bg-primary-tint data-active:font-medium data-active:text-foreground motion-reduce:transition-none [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted-foreground data-active:[&>svg]:text-primary-text", className),
278
+ }, props),
279
+ render,
280
+ state: {
281
+ slot: "sidebar-menu-sub-button",
282
+ sidebar: "menu-sub-button",
283
+ size,
284
+ active: isActive,
285
+ },
286
+ });
287
+ }
288
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
289
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/components/sidebar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import type * as React from "react";
3
+ /**
4
+ * The suite's site footer: a top border and one mono row at the site width, credits on the left and
5
+ * links on the right.
6
+ *
7
+ * ```tsx
8
+ * <SiteFooter>
9
+ * <span>MIT · built from one palette</span>
10
+ * <SiteFooterLinks>
11
+ * <SiteFooterLink href="https://github.com/…">GitHub</SiteFooterLink>
12
+ * </SiteFooterLinks>
13
+ * </SiteFooter>
14
+ * ```
15
+ */
16
+ declare function SiteFooter({ className, children, ...props }: React.ComponentProps<"footer">): React.JSX.Element;
17
+ /** The footer's links (wrap on phones). */
18
+ declare function SiteFooterLinks({ className, render, ...props }: useRender.ComponentProps<"nav">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
19
+ /** A footer link: muted, foreground on hover. */
20
+ declare function SiteFooterLink({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
21
+ export { SiteFooter, SiteFooterLink, SiteFooterLinks };
22
+ //# sourceMappingURL=site-footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-footer.d.ts","sourceRoot":"","sources":["../../src/components/site-footer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,qBAQlF;AAED,2CAA2C;AAC3C,iBAAS,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAOtF;AAED,iDAAiD;AACjD,iBAAS,cAAc,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,0EAUnF;AAED,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ import { focusRing } from "@repraze/kernelkit/lib/recipes";
6
+ import { cn } from "cn";
7
+ /**
8
+ * The suite's site footer: a top border and one mono row at the site width, credits on the left and
9
+ * links on the right.
10
+ *
11
+ * ```tsx
12
+ * <SiteFooter>
13
+ * <span>MIT · built from one palette</span>
14
+ * <SiteFooterLinks>
15
+ * <SiteFooterLink href="https://github.com/…">GitHub</SiteFooterLink>
16
+ * </SiteFooterLinks>
17
+ * </SiteFooter>
18
+ * ```
19
+ */
20
+ function SiteFooter({ className, children, ...props }) {
21
+ return (_jsx("footer", { "data-slot": "site-footer", className: cn("border-t border-border", className), ...props, children: _jsx("div", { className: "mx-auto flex w-full max-w-(--kk-site-width) flex-col gap-3 px-4 py-6 font-mono text-xs text-muted-foreground sm:flex-row sm:items-center sm:justify-between md:px-6", children: children }) }));
22
+ }
23
+ /** The footer's links (wrap on phones). */
24
+ function SiteFooterLinks({ className, render, ...props }) {
25
+ return useRender({
26
+ defaultTagName: "nav",
27
+ props: mergeProps({ className: cn("flex flex-wrap items-center gap-x-4 gap-y-1", className) }, props),
28
+ render,
29
+ state: { slot: "site-footer-links" },
30
+ });
31
+ }
32
+ /** A footer link: muted, foreground on hover. */
33
+ function SiteFooterLink({ className, render, ...props }) {
34
+ return useRender({
35
+ defaultTagName: "a",
36
+ props: mergeProps({ className: cn("rounded-sm transition-colors hover:text-foreground", focusRing, className) }, props),
37
+ render,
38
+ state: { slot: "site-footer-link" },
39
+ });
40
+ }
41
+ export { SiteFooter, SiteFooterLink, SiteFooterLinks };
42
+ //# sourceMappingURL=site-footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-footer.js","sourceRoot":"","sources":["../../src/components/site-footer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,EAAE,EAAC,MAAM,IAAI,CAAC;AAGtB;;;;;;;;;;;;GAYG;AACH,SAAS,UAAU,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAiC;IAC/E,OAAO,CACH,8BAAkB,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAAM,KAAK,YACzF,cAAK,SAAS,EAAC,qKAAqK,YAC/K,QAAQ,GACP,GACD,CACZ,CAAC;AACN,CAAC;AAED,2CAA2C;AAC3C,SAAS,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAkC;IACnF,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,KAAK;QACrB,KAAK,EAAE,UAAU,CAAQ,EAAC,SAAS,EAAE,EAAE,CAAC,6CAA6C,EAAE,SAAS,CAAC,EAAC,EAAE,KAAK,CAAC;QAC1G,MAAM;QACN,KAAK,EAAE,EAAC,IAAI,EAAE,mBAAmB,EAAC;KACrC,CAAC,CAAC;AACP,CAAC;AAED,iDAAiD;AACjD,SAAS,cAAc,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAgC;IAChF,OAAO,SAAS,CAAC;QACb,cAAc,EAAE,GAAG;QACnB,KAAK,EAAE,UAAU,CACb,EAAC,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,EAAE,SAAS,CAAC,EAAC,EAC3F,KAAK,CACR;QACD,MAAM;QACN,KAAK,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAC;KACpC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import { Sheet } from "@repraze/kernelkit/components/sheet";
3
+ import type * as React from "react";
4
+ /**
5
+ * The suite's site header: sticky, blurred, one row of `--kk-header-height` inside a `--kk-site-width`
6
+ * container. Brand, then mono nav links (current page underlined in the accent), then actions.
7
+ *
8
+ * ```tsx
9
+ * <SiteHeader>
10
+ * <SiteHeaderContent>
11
+ * <SiteHeaderMenu title="termicolor">…mobile nav…</SiteHeaderMenu>
12
+ * <SiteHeaderBrand render={<Link to="/" />}>…</SiteHeaderBrand>
13
+ * <SiteNav><SiteNavLink render={<Link to="/ports" />}>Ports</SiteNavLink></SiteNav>
14
+ * <SiteHeaderActions>…search, theme, github…</SiteHeaderActions>
15
+ * </SiteHeaderContent>
16
+ * </SiteHeader>
17
+ * ```
18
+ */
19
+ declare function SiteHeader({ className, render, ...props }: useRender.ComponentProps<"header">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
20
+ /** The header row: centered at the site width, the same gutters as SiteContainer. */
21
+ declare function SiteHeaderContent({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
22
+ /** Logo + name, links home. Pass the router link with `render`. */
23
+ declare function SiteHeaderBrand({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
24
+ /** Primary navigation (desktop). On phones the links move into SiteHeaderMenu. */
25
+ declare function SiteNav({ className, render, ...props }: useRender.ComponentProps<"nav">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
26
+ /**
27
+ * A nav link, styled like the suite's other navigation (GUIDELINES §7c): muted at rest, a hover wash,
28
+ * and when current (`aria-current="page"`, `data-status="active"` from TanStack Router, or `data-active`)
29
+ * foreground text plus a 2px accent indicator. In SiteNav the indicator sits on the header's bottom
30
+ * border (like line Tabs); elsewhere (the phone menu) the link is a sidebar row with a tint and the
31
+ * indicator on its left edge.
32
+ */
33
+ declare function SiteNavLink({ className, render, ...props }: useRender.ComponentProps<"a">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
34
+ /** Right side of the header row: search, theme, repository links. */
35
+ declare function SiteHeaderActions({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
36
+ interface SiteHeaderMenuProps extends Omit<React.ComponentProps<typeof Sheet>, "children"> {
37
+ children?: React.ReactNode;
38
+ /** Sheet title (also the accessible name). */
39
+ title?: React.ReactNode;
40
+ className?: string;
41
+ }
42
+ /**
43
+ * Phone navigation: a menu button (hidden from `md`) opening a left sheet with the nav and the page's
44
+ * sidebar. Control `open` to close it on navigation.
45
+ */
46
+ declare function SiteHeaderMenu({ title, children, className, ...props }: SiteHeaderMenuProps): React.JSX.Element;
47
+ export { SiteHeader, SiteHeaderActions, SiteHeaderBrand, SiteHeaderContent, SiteHeaderMenu, SiteNav, SiteNavLink };
48
+ //# sourceMappingURL=site-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-header.d.ts","sourceRoot":"","sources":["../../src/components/site-header.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAEpD,OAAO,EAAC,KAAK,EAAsD,MAAM,qCAAqC,CAAC;AAI/G,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,0EAepF;AAED,qFAAqF;AACrF,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAexF;AAED,mEAAmE;AACnE,iBAAS,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,0EAiBpF;AAED,kFAAkF;AAClF,iBAAS,OAAO,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAU9E;AAED;;;;;;GAMG;AACH,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,0EAsBhF;AAED,qEAAqE;AACrE,iBAAS,iBAAiB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAOxF;AAED,UAAU,mBAAoB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,UAAU,CAAC;IACtF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,iBAAS,cAAc,CAAC,EAAC,KAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAC,EAAE,mBAAmB,qBAoB3F;AAED,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAC,CAAC"}
@@ -0,0 +1,104 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { mergeProps } from "@base-ui/react/merge-props";
4
+ import { useRender } from "@base-ui/react/use-render";
5
+ import { Button } from "@repraze/kernelkit/components/button";
6
+ import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@repraze/kernelkit/components/sheet";
7
+ import { focusRing } from "@repraze/kernelkit/lib/recipes";
8
+ import { cn } from "cn";
9
+ import { MenuIcon } from "lucide-react";
10
+ /**
11
+ * The suite's site header: sticky, blurred, one row of `--kk-header-height` inside a `--kk-site-width`
12
+ * container. Brand, then mono nav links (current page underlined in the accent), then actions.
13
+ *
14
+ * ```tsx
15
+ * <SiteHeader>
16
+ * <SiteHeaderContent>
17
+ * <SiteHeaderMenu title="termicolor">…mobile nav…</SiteHeaderMenu>
18
+ * <SiteHeaderBrand render={<Link to="/" />}>…</SiteHeaderBrand>
19
+ * <SiteNav><SiteNavLink render={<Link to="/ports" />}>Ports</SiteNavLink></SiteNav>
20
+ * <SiteHeaderActions>…search, theme, github…</SiteHeaderActions>
21
+ * </SiteHeaderContent>
22
+ * </SiteHeader>
23
+ * ```
24
+ */
25
+ function SiteHeader({ className, render, ...props }) {
26
+ return useRender({
27
+ defaultTagName: "header",
28
+ props: mergeProps({
29
+ className: cn("sticky top-0 z-40 w-full border-b border-border bg-background/85 text-foreground backdrop-blur supports-backdrop-filter:bg-background/70", className),
30
+ }, props),
31
+ render,
32
+ state: { slot: "site-header" },
33
+ });
34
+ }
35
+ /** The header row: centered at the site width, the same gutters as SiteContainer. */
36
+ function SiteHeaderContent({ className, render, ...props }) {
37
+ return useRender({
38
+ defaultTagName: "div",
39
+ props: mergeProps({
40
+ className: cn("mx-auto flex h-14 w-full max-w-(--kk-site-width) items-center gap-4 px-4 md:gap-6 md:px-6", className),
41
+ }, props),
42
+ render,
43
+ state: { slot: "site-header-content" },
44
+ });
45
+ }
46
+ /** Logo + name, links home. Pass the router link with `render`. */
47
+ function SiteHeaderBrand({ className, render, ...props }) {
48
+ return useRender({
49
+ defaultTagName: "a",
50
+ props: mergeProps({
51
+ className: cn("flex shrink-0 items-center gap-2 rounded-md font-mono text-sm font-semibold tracking-tight", focusRing, "[&_svg]:shrink-0", className),
52
+ }, props),
53
+ render,
54
+ state: { slot: "site-header-brand" },
55
+ });
56
+ }
57
+ /** Primary navigation (desktop). On phones the links move into SiteHeaderMenu. */
58
+ function SiteNav({ className, render, ...props }) {
59
+ return useRender({
60
+ defaultTagName: "nav",
61
+ props: mergeProps({ "aria-label": "Main", className: cn("hidden items-center gap-1 md:flex", className) }, props),
62
+ render,
63
+ state: { slot: "site-nav" },
64
+ });
65
+ }
66
+ /**
67
+ * A nav link, styled like the suite's other navigation (GUIDELINES §7c): muted at rest, a hover wash,
68
+ * and when current (`aria-current="page"`, `data-status="active"` from TanStack Router, or `data-active`)
69
+ * foreground text plus a 2px accent indicator. In SiteNav the indicator sits on the header's bottom
70
+ * border (like line Tabs); elsewhere (the phone menu) the link is a sidebar row with a tint and the
71
+ * indicator on its left edge.
72
+ */
73
+ function SiteNavLink({ className, render, ...props }) {
74
+ return useRender({
75
+ defaultTagName: "a",
76
+ props: mergeProps({
77
+ className: cn("relative flex h-8 items-center rounded-md px-2.5 font-mono text-sm text-muted-foreground transition-colors hover:bg-hover hover:text-foreground motion-reduce:transition-none", focusRing,
78
+ // indicator: vertical by default, on the header border inside SiteNav
79
+ "after:pointer-events-none after:absolute after:top-1.5 after:bottom-1.5 after:left-0 after:w-0.5 after:rounded-pill after:bg-primary-text after:opacity-0", "in-data-[slot=site-nav]:after:top-auto in-data-[slot=site-nav]:after:right-2.5 in-data-[slot=site-nav]:after:-bottom-[calc(0.75rem+1px)] in-data-[slot=site-nav]:after:left-2.5 in-data-[slot=site-nav]:after:h-0.5 in-data-[slot=site-nav]:after:w-auto", "aria-[current=page]:text-foreground aria-[current=page]:after:opacity-100 data-[status=active]:text-foreground data-[status=active]:after:opacity-100 data-active:text-foreground data-active:after:opacity-100",
80
+ // outside the header row: the sidebar's current-row tint
81
+ "not-in-data-[slot=site-nav]:aria-[current=page]:bg-primary-tint not-in-data-[slot=site-nav]:data-[status=active]:bg-primary-tint not-in-data-[slot=site-nav]:data-active:bg-primary-tint", className),
82
+ }, props),
83
+ render,
84
+ state: { slot: "site-nav-link" },
85
+ });
86
+ }
87
+ /** Right side of the header row: search, theme, repository links. */
88
+ function SiteHeaderActions({ className, render, ...props }) {
89
+ return useRender({
90
+ defaultTagName: "div",
91
+ props: mergeProps({ className: cn("ml-auto flex items-center gap-1", className) }, props),
92
+ render,
93
+ state: { slot: "site-header-actions" },
94
+ });
95
+ }
96
+ /**
97
+ * Phone navigation: a menu button (hidden from `md`) opening a left sheet with the nav and the page's
98
+ * sidebar. Control `open` to close it on navigation.
99
+ */
100
+ function SiteHeaderMenu({ title = "Menu", children, className, ...props }) {
101
+ return (_jsxs(Sheet, { ...props, children: [_jsx(SheetTrigger, { render: _jsx(Button, { variant: "ghost", size: "icon-sm", className: "-ml-1.5 md:hidden", "aria-label": "Menu" }), children: _jsx(MenuIcon, {}) }), _jsxs(SheetContent, { side: "left", "data-slot": "site-header-menu", className: cn("w-72 gap-0 overflow-y-auto overscroll-contain p-0", className), children: [_jsx(SheetHeader, { className: "border-b border-border", children: _jsx(SheetTitle, { className: "flex items-center gap-2", children: title }) }), _jsx("div", { className: "flex flex-col gap-4 p-2", children: children })] })] }));
102
+ }
103
+ export { SiteHeader, SiteHeaderActions, SiteHeaderBrand, SiteHeaderContent, SiteHeaderMenu, SiteNav, SiteNavLink };
104
+ //# sourceMappingURL=site-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-header.js","sourceRoot":"","sources":["../../src/components/site-header.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import * as React from "react";
3
+ /**
4
+ * The suite's page layout, under SiteHeader:
5
+ *
6
+ * ```tsx
7
+ * <SiteLayout>
8
+ * <SiteSidebar aria-label="Docs">…SidebarGroup / SidebarMenu…</SiteSidebar>
9
+ * <SiteMain>…PageHeader, content, Pager…</SiteMain>
10
+ * <SiteAside><Toc>…</Toc></SiteAside>
11
+ * </SiteLayout>
12
+ * ```
13
+ *
14
+ * Sidebars are sticky below the header and scroll on their own with edge fades. Content pages without
15
+ * a sidebar use SiteContainer.
16
+ */
17
+ /** Centered at `--kk-site-width` with the header's gutters. */
18
+ declare function SiteContainer({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
19
+ /** Sidebar + main (+ aside) row inside the site container. */
20
+ declare function SiteLayout({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
21
+ interface SiteSidebarProps extends React.ComponentProps<"aside"> {
22
+ /** Classes for the scrolling viewport (padding, etc.). */
23
+ viewportClassName?: string;
24
+ }
25
+ /**
26
+ * Left navigation column (from `md`): sticky, scrolls on its own, fades at its edges, and keeps the
27
+ * current item in view. Its right border runs the layout's full height, header to footer.
28
+ */
29
+ declare function SiteSidebar({ className, viewportClassName, children, ...props }: SiteSidebarProps): React.JSX.Element;
30
+ /** The page column. */
31
+ declare function SiteMain({ className, render, ...props }: useRender.ComponentProps<"main">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
32
+ /** Right column (from `xl`): table of contents, page meta. Sticky like the sidebar. */
33
+ declare function SiteAside({ className, children, ...props }: React.ComponentProps<"aside">): React.JSX.Element;
34
+ export { SiteAside, SiteContainer, SiteLayout, SiteMain, SiteSidebar };
35
+ //# sourceMappingURL=site-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-layout.d.ts","sourceRoot":"","sources":["../../src/components/site-layout.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAGpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;;;;;;;;;;;GAaG;AAEH,+DAA+D;AAC/D,iBAAS,aAAa,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAUpF;AAED,8DAA8D;AAC9D,iBAAS,UAAU,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,0EAejF;AAOD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;IAC5D,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAkCD;;;GAGG;AACH,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,gBAAgB,qBAsBxF;AAED,uBAAuB;AACvB,iBAAS,QAAQ,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,0EAUhF;AAED,uFAAuF;AACvF,iBAAS,SAAS,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,qBAMhF;AAED,OAAO,EAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAC,CAAC"}