@tollerud/ui 1.1.4 → 3.0.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 (361) hide show
  1. package/AGENTS.md +34 -11
  2. package/CHANGELOG.md +376 -0
  3. package/COMPONENTS.md +951 -0
  4. package/GETTING_STARTED.md +159 -0
  5. package/README.md +51 -43
  6. package/SKILL.md +55 -19
  7. package/components.json +18 -0
  8. package/dist/accordion.d.ts +20 -0
  9. package/dist/accordion.js +5 -0
  10. package/dist/accordion.js.map +1 -0
  11. package/dist/action-diff.d.ts +26 -0
  12. package/dist/action-diff.js +5 -0
  13. package/dist/action-diff.js.map +1 -0
  14. package/dist/action-row.d.ts +36 -0
  15. package/dist/action-row.js +6 -0
  16. package/dist/action-row.js.map +1 -0
  17. package/dist/alert-inbox.d.ts +23 -0
  18. package/dist/alert-inbox.js +6 -0
  19. package/dist/alert-inbox.js.map +1 -0
  20. package/dist/alert.d.ts +33 -0
  21. package/dist/alert.js +5 -0
  22. package/dist/alert.js.map +1 -0
  23. package/dist/approval-card.d.ts +27 -0
  24. package/dist/approval-card.js +5 -0
  25. package/dist/approval-card.js.map +1 -0
  26. package/dist/area-chart.d.ts +10 -0
  27. package/dist/area-chart.js +5 -0
  28. package/dist/area-chart.js.map +1 -0
  29. package/dist/avatar.d.ts +27 -0
  30. package/dist/avatar.js +5 -0
  31. package/dist/avatar.js.map +1 -0
  32. package/dist/backup-status-panel.d.ts +25 -0
  33. package/dist/backup-status-panel.js +6 -0
  34. package/dist/backup-status-panel.js.map +1 -0
  35. package/dist/badge.d.ts +17 -0
  36. package/dist/badge.js +5 -0
  37. package/dist/badge.js.map +1 -0
  38. package/dist/bar-chart.d.ts +15 -0
  39. package/dist/bar-chart.js +5 -0
  40. package/dist/bar-chart.js.map +1 -0
  41. package/dist/bento-dashboard.d.ts +30 -0
  42. package/dist/bento-dashboard.js +5 -0
  43. package/dist/bento-dashboard.js.map +1 -0
  44. package/dist/breadcrumb.d.ts +16 -0
  45. package/dist/breadcrumb.js +5 -0
  46. package/dist/breadcrumb.js.map +1 -0
  47. package/dist/button.d.ts +29 -0
  48. package/dist/button.js +5 -0
  49. package/dist/button.js.map +1 -0
  50. package/dist/card.d.ts +10 -0
  51. package/dist/card.js +5 -0
  52. package/dist/card.js.map +1 -0
  53. package/dist/checkbox.d.ts +9 -0
  54. package/dist/checkbox.js +5 -0
  55. package/dist/checkbox.js.map +1 -0
  56. package/dist/chunk-2QWKOCWF.js +79 -0
  57. package/dist/chunk-2QWKOCWF.js.map +1 -0
  58. package/dist/chunk-3TGMGBKM.js +393 -0
  59. package/dist/chunk-3TGMGBKM.js.map +1 -0
  60. package/dist/chunk-3XTZPDNV.js +94 -0
  61. package/dist/chunk-3XTZPDNV.js.map +1 -0
  62. package/dist/chunk-435JHF7G.js +65 -0
  63. package/dist/chunk-435JHF7G.js.map +1 -0
  64. package/dist/chunk-4PA2ACNF.js +52 -0
  65. package/dist/chunk-4PA2ACNF.js.map +1 -0
  66. package/dist/chunk-5GWHUJ5D.js +29 -0
  67. package/dist/chunk-5GWHUJ5D.js.map +1 -0
  68. package/dist/chunk-6FUKJD3W.js +123 -0
  69. package/dist/chunk-6FUKJD3W.js.map +1 -0
  70. package/dist/chunk-6IS2AYYG.js +106 -0
  71. package/dist/chunk-6IS2AYYG.js.map +1 -0
  72. package/dist/chunk-6PZKU6ZL.js +78 -0
  73. package/dist/chunk-6PZKU6ZL.js.map +1 -0
  74. package/dist/chunk-6SKTH45H.js +75 -0
  75. package/dist/chunk-6SKTH45H.js.map +1 -0
  76. package/dist/chunk-6UXW5YUC.js +77 -0
  77. package/dist/chunk-6UXW5YUC.js.map +1 -0
  78. package/dist/chunk-7EP2T3OW.js +52 -0
  79. package/dist/chunk-7EP2T3OW.js.map +1 -0
  80. package/dist/chunk-7J5QXUQN.js +38 -0
  81. package/dist/chunk-7J5QXUQN.js.map +1 -0
  82. package/dist/chunk-7TOT5ME3.js +53 -0
  83. package/dist/chunk-7TOT5ME3.js.map +1 -0
  84. package/dist/chunk-A6L5C3IJ.js +47 -0
  85. package/dist/chunk-A6L5C3IJ.js.map +1 -0
  86. package/dist/chunk-ANW6J6PV.js +42 -0
  87. package/dist/chunk-ANW6J6PV.js.map +1 -0
  88. package/dist/chunk-APFFKNPS.js +80 -0
  89. package/dist/chunk-APFFKNPS.js.map +1 -0
  90. package/dist/chunk-AZADSX4Z.js +85 -0
  91. package/dist/chunk-AZADSX4Z.js.map +1 -0
  92. package/dist/chunk-BPCH5LJ3.js +36 -0
  93. package/dist/chunk-BPCH5LJ3.js.map +1 -0
  94. package/dist/chunk-CBQ63EBL.js +85 -0
  95. package/dist/chunk-CBQ63EBL.js.map +1 -0
  96. package/dist/chunk-CDI7353B.js +40 -0
  97. package/dist/chunk-CDI7353B.js.map +1 -0
  98. package/dist/chunk-CKNWXYMA.js +53 -0
  99. package/dist/chunk-CKNWXYMA.js.map +1 -0
  100. package/dist/chunk-DFM7UUKB.js +79 -0
  101. package/dist/chunk-DFM7UUKB.js.map +1 -0
  102. package/dist/chunk-DGCRHVWW.js +84 -0
  103. package/dist/chunk-DGCRHVWW.js.map +1 -0
  104. package/dist/chunk-DNJI65VQ.js +22 -0
  105. package/dist/chunk-DNJI65VQ.js.map +1 -0
  106. package/dist/chunk-DOUDJU4P.js +63 -0
  107. package/dist/chunk-DOUDJU4P.js.map +1 -0
  108. package/dist/chunk-DRCMGIQ6.js +64 -0
  109. package/dist/chunk-DRCMGIQ6.js.map +1 -0
  110. package/dist/chunk-DZOBXK2S.js +28 -0
  111. package/dist/chunk-DZOBXK2S.js.map +1 -0
  112. package/dist/chunk-EN4OJCEF.js +54 -0
  113. package/dist/chunk-EN4OJCEF.js.map +1 -0
  114. package/dist/chunk-EVHZFYWX.js +33 -0
  115. package/dist/chunk-EVHZFYWX.js.map +1 -0
  116. package/dist/chunk-FGXOV2QH.js +23 -0
  117. package/dist/chunk-FGXOV2QH.js.map +1 -0
  118. package/dist/chunk-G2VKWNZA.js +53 -0
  119. package/dist/chunk-G2VKWNZA.js.map +1 -0
  120. package/dist/chunk-GTM2DE4C.js +156 -0
  121. package/dist/chunk-GTM2DE4C.js.map +1 -0
  122. package/dist/chunk-H3ZVGTJM.js +165 -0
  123. package/dist/chunk-H3ZVGTJM.js.map +1 -0
  124. package/dist/chunk-HWAWUEHC.js +28 -0
  125. package/dist/chunk-HWAWUEHC.js.map +1 -0
  126. package/dist/chunk-HWJVRTWO.js +36 -0
  127. package/dist/chunk-HWJVRTWO.js.map +1 -0
  128. package/dist/chunk-HYQGOC2E.js +79 -0
  129. package/dist/chunk-HYQGOC2E.js.map +1 -0
  130. package/dist/chunk-ILADNTUB.js +77 -0
  131. package/dist/chunk-ILADNTUB.js.map +1 -0
  132. package/dist/chunk-ISHZ6ZPJ.js +31 -0
  133. package/dist/chunk-ISHZ6ZPJ.js.map +1 -0
  134. package/dist/chunk-JRFSUVSO.js +66 -0
  135. package/dist/chunk-JRFSUVSO.js.map +1 -0
  136. package/dist/chunk-KI6OTVID.js +91 -0
  137. package/dist/chunk-KI6OTVID.js.map +1 -0
  138. package/dist/chunk-LUM2YJBH.js +73 -0
  139. package/dist/chunk-LUM2YJBH.js.map +1 -0
  140. package/dist/chunk-NHPISZWS.js +71 -0
  141. package/dist/chunk-NHPISZWS.js.map +1 -0
  142. package/dist/chunk-NOLWJJHT.js +52 -0
  143. package/dist/chunk-NOLWJJHT.js.map +1 -0
  144. package/dist/chunk-NPVINX3Q.js +20 -0
  145. package/dist/chunk-NPVINX3Q.js.map +1 -0
  146. package/dist/chunk-NSMU66ZX.js +47 -0
  147. package/dist/chunk-NSMU66ZX.js.map +1 -0
  148. package/dist/chunk-O57QMLNI.js +68 -0
  149. package/dist/chunk-O57QMLNI.js.map +1 -0
  150. package/dist/chunk-O5SWPHUQ.js +79 -0
  151. package/dist/chunk-O5SWPHUQ.js.map +1 -0
  152. package/dist/chunk-OGVSZ7NV.js +53 -0
  153. package/dist/chunk-OGVSZ7NV.js.map +1 -0
  154. package/dist/chunk-OONIUDST.js +48 -0
  155. package/dist/chunk-OONIUDST.js.map +1 -0
  156. package/dist/chunk-PLF3BBQI.js +139 -0
  157. package/dist/chunk-PLF3BBQI.js.map +1 -0
  158. package/dist/chunk-Q74VRQEX.js +26 -0
  159. package/dist/chunk-Q74VRQEX.js.map +1 -0
  160. package/dist/chunk-QEHTPQHL.js +35 -0
  161. package/dist/chunk-QEHTPQHL.js.map +1 -0
  162. package/dist/chunk-RJTDQOT2.js +73 -0
  163. package/dist/chunk-RJTDQOT2.js.map +1 -0
  164. package/dist/chunk-RQ3RXKAZ.js +203 -0
  165. package/dist/chunk-RQ3RXKAZ.js.map +1 -0
  166. package/dist/chunk-RWJELAS6.js +46 -0
  167. package/dist/chunk-RWJELAS6.js.map +1 -0
  168. package/dist/chunk-RZK2S2OO.js +126 -0
  169. package/dist/chunk-RZK2S2OO.js.map +1 -0
  170. package/dist/chunk-SAP7JSSO.js +106 -0
  171. package/dist/chunk-SAP7JSSO.js.map +1 -0
  172. package/dist/chunk-T3TQPOVM.js +79 -0
  173. package/dist/chunk-T3TQPOVM.js.map +1 -0
  174. package/dist/chunk-T56TTOI6.js +53 -0
  175. package/dist/chunk-T56TTOI6.js.map +1 -0
  176. package/dist/chunk-T7EFDE2L.js +36 -0
  177. package/dist/chunk-T7EFDE2L.js.map +1 -0
  178. package/dist/chunk-V3P5QLLX.js +154 -0
  179. package/dist/chunk-V3P5QLLX.js.map +1 -0
  180. package/dist/chunk-VTRUUT5K.js +31 -0
  181. package/dist/chunk-VTRUUT5K.js.map +1 -0
  182. package/dist/chunk-WDANALHD.js +95 -0
  183. package/dist/chunk-WDANALHD.js.map +1 -0
  184. package/dist/chunk-WSQNPRGN.js +12 -0
  185. package/dist/chunk-WSQNPRGN.js.map +1 -0
  186. package/dist/chunk-XR5QBVEV.js +56 -0
  187. package/dist/chunk-XR5QBVEV.js.map +1 -0
  188. package/dist/chunk-YYWODLER.js +111 -0
  189. package/dist/chunk-YYWODLER.js.map +1 -0
  190. package/dist/chunk-ZOXO3G3I.js +50 -0
  191. package/dist/chunk-ZOXO3G3I.js.map +1 -0
  192. package/dist/code-block.d.ts +14 -0
  193. package/dist/code-block.js +5 -0
  194. package/dist/code-block.js.map +1 -0
  195. package/dist/combobox.d.ts +26 -0
  196. package/dist/combobox.js +5 -0
  197. package/dist/combobox.js.map +1 -0
  198. package/dist/command-menu.d.ts +52 -0
  199. package/dist/command-menu.js +7 -0
  200. package/dist/command-menu.js.map +1 -0
  201. package/dist/container.d.ts +9 -0
  202. package/dist/container.js +5 -0
  203. package/dist/container.js.map +1 -0
  204. package/dist/cta-band.d.ts +12 -0
  205. package/dist/cta-band.js +5 -0
  206. package/dist/cta-band.js.map +1 -0
  207. package/dist/data-table.d.ts +58 -0
  208. package/dist/data-table.js +12 -0
  209. package/dist/data-table.js.map +1 -0
  210. package/dist/date-picker.d.ts +20 -0
  211. package/dist/date-picker.js +5 -0
  212. package/dist/date-picker.js.map +1 -0
  213. package/dist/dialog.d.ts +21 -0
  214. package/dist/dialog.js +5 -0
  215. package/dist/dialog.js.map +1 -0
  216. package/dist/divider.d.ts +12 -0
  217. package/dist/divider.js +5 -0
  218. package/dist/divider.js.map +1 -0
  219. package/dist/docker-stack-card.d.ts +21 -0
  220. package/dist/docker-stack-card.js +6 -0
  221. package/dist/docker-stack-card.js.map +1 -0
  222. package/dist/donut.d.ts +15 -0
  223. package/dist/donut.js +5 -0
  224. package/dist/donut.js.map +1 -0
  225. package/dist/dropdown-menu.d.ts +15 -0
  226. package/dist/dropdown-menu.js +5 -0
  227. package/dist/dropdown-menu.js.map +1 -0
  228. package/dist/empty.d.ts +12 -0
  229. package/dist/empty.js +5 -0
  230. package/dist/empty.js.map +1 -0
  231. package/dist/feature-card.d.ts +11 -0
  232. package/dist/feature-card.js +6 -0
  233. package/dist/feature-card.js.map +1 -0
  234. package/dist/file-upload.d.ts +20 -0
  235. package/dist/file-upload.js +5 -0
  236. package/dist/file-upload.js.map +1 -0
  237. package/dist/footer.d.ts +35 -0
  238. package/dist/footer.js +5 -0
  239. package/dist/footer.js.map +1 -0
  240. package/dist/form-row.d.ts +15 -0
  241. package/dist/form-row.js +5 -0
  242. package/dist/form-row.js.map +1 -0
  243. package/dist/glow-card.d.ts +14 -0
  244. package/dist/glow-card.js +5 -0
  245. package/dist/glow-card.js.map +1 -0
  246. package/dist/hero-block.d.ts +16 -0
  247. package/dist/hero-block.js +7 -0
  248. package/dist/hero-block.js.map +1 -0
  249. package/dist/host-card.d.ts +27 -0
  250. package/dist/host-card.js +6 -0
  251. package/dist/host-card.js.map +1 -0
  252. package/dist/incident-card.d.ts +23 -0
  253. package/dist/incident-card.js +5 -0
  254. package/dist/incident-card.js.map +1 -0
  255. package/dist/index.d.ts +76 -960
  256. package/dist/index.js +68 -3812
  257. package/dist/index.js.map +1 -1
  258. package/dist/input.d.ts +10 -0
  259. package/dist/input.js +5 -0
  260. package/dist/input.js.map +1 -0
  261. package/dist/kbd.d.ts +24 -0
  262. package/dist/kbd.js +5 -0
  263. package/dist/kbd.js.map +1 -0
  264. package/dist/log-viewer.d.ts +35 -0
  265. package/dist/log-viewer.js +5 -0
  266. package/dist/log-viewer.js.map +1 -0
  267. package/dist/meter.d.ts +23 -0
  268. package/dist/meter.js +5 -0
  269. package/dist/meter.js.map +1 -0
  270. package/dist/noir-glow-background.d.ts +50 -0
  271. package/dist/noir-glow-background.js +4 -0
  272. package/dist/noir-glow-background.js.map +1 -0
  273. package/dist/pagination.d.ts +16 -0
  274. package/dist/pagination.js +5 -0
  275. package/dist/pagination.js.map +1 -0
  276. package/dist/panel.d.ts +12 -0
  277. package/dist/panel.js +5 -0
  278. package/dist/panel.js.map +1 -0
  279. package/dist/password-input.d.ts +10 -0
  280. package/dist/password-input.js +5 -0
  281. package/dist/password-input.js.map +1 -0
  282. package/dist/pill.d.ts +14 -0
  283. package/dist/pill.js +5 -0
  284. package/dist/pill.js.map +1 -0
  285. package/dist/pricing-card.d.ts +20 -0
  286. package/dist/pricing-card.js +6 -0
  287. package/dist/pricing-card.js.map +1 -0
  288. package/dist/progress.d.ts +6 -0
  289. package/dist/progress.js +5 -0
  290. package/dist/progress.js.map +1 -0
  291. package/dist/radio-group.d.ts +18 -0
  292. package/dist/radio-group.js +5 -0
  293. package/dist/radio-group.js.map +1 -0
  294. package/dist/rollback-plan.d.ts +23 -0
  295. package/dist/rollback-plan.js +5 -0
  296. package/dist/rollback-plan.js.map +1 -0
  297. package/dist/segmented.d.ts +17 -0
  298. package/dist/segmented.js +5 -0
  299. package/dist/segmented.js.map +1 -0
  300. package/dist/select.d.ts +18 -0
  301. package/dist/select.js +5 -0
  302. package/dist/select.js.map +1 -0
  303. package/dist/service-health-card.d.ts +21 -0
  304. package/dist/service-health-card.js +6 -0
  305. package/dist/service-health-card.js.map +1 -0
  306. package/dist/sheet.d.ts +25 -0
  307. package/dist/sheet.js +5 -0
  308. package/dist/sheet.js.map +1 -0
  309. package/dist/skeleton.d.ts +5 -0
  310. package/dist/skeleton.js +5 -0
  311. package/dist/skeleton.js.map +1 -0
  312. package/dist/slider.d.ts +12 -0
  313. package/dist/slider.js +5 -0
  314. package/dist/slider.js.map +1 -0
  315. package/dist/sparkline.d.ts +16 -0
  316. package/dist/sparkline.js +5 -0
  317. package/dist/sparkline.js.map +1 -0
  318. package/dist/stat-card.d.ts +15 -0
  319. package/dist/stat-card.js +5 -0
  320. package/dist/stat-card.js.map +1 -0
  321. package/dist/status-dot.d.ts +13 -0
  322. package/dist/status-dot.js +5 -0
  323. package/dist/status-dot.js.map +1 -0
  324. package/dist/stepper.d.ts +16 -0
  325. package/dist/stepper.js +5 -0
  326. package/dist/stepper.js.map +1 -0
  327. package/dist/switch.d.ts +9 -0
  328. package/dist/switch.js +5 -0
  329. package/dist/switch.js.map +1 -0
  330. package/dist/tabs.d.ts +9 -0
  331. package/dist/tabs.js +5 -0
  332. package/dist/tabs.js.map +1 -0
  333. package/dist/tag-input.d.ts +20 -0
  334. package/dist/tag-input.js +5 -0
  335. package/dist/tag-input.js.map +1 -0
  336. package/dist/textarea.d.ts +10 -0
  337. package/dist/textarea.js +5 -0
  338. package/dist/textarea.js.map +1 -0
  339. package/dist/timeline.d.ts +30 -0
  340. package/dist/timeline.js +5 -0
  341. package/dist/timeline.js.map +1 -0
  342. package/dist/toaster.d.ts +10 -0
  343. package/dist/toaster.js +4 -0
  344. package/dist/toaster.js.map +1 -0
  345. package/dist/tooltip.d.ts +12 -0
  346. package/dist/tooltip.js +5 -0
  347. package/dist/tooltip.js.map +1 -0
  348. package/dist/utils.d.ts +5 -0
  349. package/dist/utils.js +4 -0
  350. package/dist/utils.js.map +1 -0
  351. package/globals-layers.css +935 -0
  352. package/globals-v3.css +17 -0
  353. package/globals-v4.css +2 -0
  354. package/globals.css +12 -939
  355. package/package.json +82 -17
  356. package/registry.json +920 -0
  357. package/tailwind.css +9 -0
  358. package/tollerud-preset.js +55 -50
  359. package/dist/index.cjs +0 -3938
  360. package/dist/index.cjs.map +0 -1
  361. package/dist/index.d.cts +0 -960
@@ -0,0 +1,27 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ type ApprovalState = 'pending' | 'approved' | 'rejected';
5
+ interface ApprovalCardProps extends HTMLAttributes<HTMLDivElement> {
6
+ /** Action being approved */
7
+ action: string;
8
+ /** Description of what will happen */
9
+ description?: string;
10
+ /** Source (e.g. 'Emma → backup.sh') */
11
+ source?: string;
12
+ /** Current approval state */
13
+ state?: ApprovalState;
14
+ /** Timestamp of the request */
15
+ timestamp?: string;
16
+ /** Called when user approves */
17
+ onApprove?: () => void;
18
+ /** Called when user rejects */
19
+ onReject?: () => void;
20
+ /** Whether actions are disabled */
21
+ disabled?: boolean;
22
+ /** Whether the card is loading */
23
+ loading?: boolean;
24
+ }
25
+ declare const ApprovalCard: react.ForwardRefExoticComponent<ApprovalCardProps & react.RefAttributes<HTMLDivElement>>;
26
+
27
+ export { ApprovalCard, type ApprovalCardProps, type ApprovalState };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { ApprovalCard } from './chunk-APFFKNPS.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=approval-card.js.map
5
+ //# sourceMappingURL=approval-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"approval-card.js"}
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface AreaChartProps extends HTMLAttributes<HTMLDivElement> {
5
+ data: number[];
6
+ height?: number;
7
+ }
8
+ declare const AreaChart: react.ForwardRefExoticComponent<AreaChartProps & react.RefAttributes<HTMLDivElement>>;
9
+
10
+ export { AreaChart, type AreaChartProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { AreaChart } from './chunk-6PZKU6ZL.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=area-chart.js.map
5
+ //# sourceMappingURL=area-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"area-chart.js"}
@@ -0,0 +1,27 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ declare const avatarSizes: {
5
+ readonly sm: "h-6 w-6 text-[10px]";
6
+ readonly md: "h-8 w-8 text-xs";
7
+ readonly lg: "h-11 w-11 text-sm";
8
+ };
9
+ interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
10
+ /** Image source */
11
+ src?: string;
12
+ /** Accessible name / used to derive initials fallback */
13
+ name?: string;
14
+ /** Explicit fallback content (overrides derived initials) */
15
+ fallback?: React.ReactNode;
16
+ size?: keyof typeof avatarSizes;
17
+ }
18
+ declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
19
+ interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
20
+ /** Maximum avatars to render before collapsing into a "+N" overflow indicator */
21
+ max?: number;
22
+ size?: keyof typeof avatarSizes;
23
+ children: React.ReactNode;
24
+ }
25
+ declare const AvatarGroup: react.ForwardRefExoticComponent<AvatarGroupProps & react.RefAttributes<HTMLDivElement>>;
26
+
27
+ export { Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps };
package/dist/avatar.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Avatar, AvatarGroup } from './chunk-DGCRHVWW.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=avatar.js.map
5
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"avatar.js"}
@@ -0,0 +1,25 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+ import { Status } from './status-dot.js';
4
+
5
+ interface BackupJob {
6
+ name: string;
7
+ status: Status;
8
+ lastRun?: string;
9
+ nextRun?: string;
10
+ size?: string;
11
+ target?: string;
12
+ }
13
+ interface BackupStatusPanelProps extends HTMLAttributes<HTMLDivElement> {
14
+ /** List of backup jobs */
15
+ jobs: BackupJob[];
16
+ /** Total size of all backups */
17
+ totalSize?: string;
18
+ /** Last full backup timestamp */
19
+ lastFullBackup?: string;
20
+ /** Whether the panel is loading */
21
+ loading?: boolean;
22
+ }
23
+ declare const BackupStatusPanel: react.ForwardRefExoticComponent<BackupStatusPanelProps & react.RefAttributes<HTMLDivElement>>;
24
+
25
+ export { type BackupJob, BackupStatusPanel, type BackupStatusPanelProps };
@@ -0,0 +1,6 @@
1
+ 'use client';
2
+ export { BackupStatusPanel } from './chunk-JRFSUVSO.js';
3
+ import './chunk-NHPISZWS.js';
4
+ import './chunk-WSQNPRGN.js';
5
+ //# sourceMappingURL=backup-status-panel.js.map
6
+ //# sourceMappingURL=backup-status-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"backup-status-panel.js"}
@@ -0,0 +1,17 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ declare const badgeVariants: {
5
+ readonly default: "bg-tollerud-noir-700 text-tollerud-text-secondary";
6
+ readonly accent: "bg-tollerud-yellow/15 text-tollerud-yellow";
7
+ readonly success: "bg-tollerud-success/15 text-tollerud-success";
8
+ readonly error: "bg-tollerud-error/15 text-tollerud-error";
9
+ readonly info: "bg-tollerud-info/15 text-tollerud-info";
10
+ readonly warning: "bg-tollerud-yellow/15 text-tollerud-warning";
11
+ };
12
+ interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
13
+ variant?: keyof typeof badgeVariants;
14
+ }
15
+ declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
16
+
17
+ export { Badge, type BadgeProps };
package/dist/badge.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Badge } from './chunk-QEHTPQHL.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=badge.js.map
5
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"badge.js"}
@@ -0,0 +1,15 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface BarChartDatum {
5
+ label: string;
6
+ value: number;
7
+ accent?: boolean;
8
+ }
9
+ interface BarChartProps extends HTMLAttributes<HTMLDivElement> {
10
+ data: BarChartDatum[];
11
+ height?: number;
12
+ }
13
+ declare const BarChart: react.ForwardRefExoticComponent<BarChartProps & react.RefAttributes<HTMLDivElement>>;
14
+
15
+ export { BarChart, type BarChartDatum, type BarChartProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { BarChart } from './chunk-4PA2ACNF.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=bar-chart.js.map
5
+ //# sourceMappingURL=bar-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"bar-chart.js"}
@@ -0,0 +1,30 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { HostCardProps } from './host-card.js';
4
+ import { StatCardProps } from './stat-card.js';
5
+ import { ServiceHealthCardProps } from './service-health-card.js';
6
+ import { IncidentSeverity } from './incident-card.js';
7
+ import { BackupJob } from './backup-status-panel.js';
8
+ import './status-dot.js';
9
+
10
+ interface BentoDashboardProps {
11
+ title: string;
12
+ hosts?: HostCardProps[];
13
+ metrics?: StatCardProps[];
14
+ services?: ServiceHealthCardProps[];
15
+ incidents?: {
16
+ title: string;
17
+ severity: IncidentSeverity;
18
+ timestamp: string;
19
+ service: string;
20
+ description?: string;
21
+ acknowledged?: boolean;
22
+ }[];
23
+ backupJobs?: BackupJob[];
24
+ className?: string;
25
+ /** Render the incident list footer */
26
+ renderIncidentFooter?: () => ReactNode;
27
+ }
28
+ declare function BentoDashboard({ title, hosts, metrics, services, incidents, className, }: BentoDashboardProps): react.JSX.Element;
29
+
30
+ export { BentoDashboard, type BentoDashboardProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { BentoDashboard } from './chunk-PLF3BBQI.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=bento-dashboard.js.map
5
+ //# sourceMappingURL=bento-dashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"bento-dashboard.js"}
@@ -0,0 +1,16 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface BreadcrumbItem {
5
+ label: React.ReactNode;
6
+ href?: string;
7
+ onClick?: () => void;
8
+ }
9
+ interface BreadcrumbProps extends Omit<HTMLAttributes<HTMLElement>, 'children'> {
10
+ items: BreadcrumbItem[];
11
+ /** Custom separator (defaults to a chevron) */
12
+ separator?: React.ReactNode;
13
+ }
14
+ declare const Breadcrumb: react.ForwardRefExoticComponent<BreadcrumbProps & react.RefAttributes<HTMLElement>>;
15
+
16
+ export { Breadcrumb, type BreadcrumbItem, type BreadcrumbProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Breadcrumb } from './chunk-7J5QXUQN.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=breadcrumb.js.map
5
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"breadcrumb.js"}
@@ -0,0 +1,29 @@
1
+ import * as react from 'react';
2
+ import { ButtonHTMLAttributes } from 'react';
3
+
4
+ declare const variants: {
5
+ readonly primary: "bg-tollerud-yellow text-tollerud-black border-tollerud-yellow hover:bg-tollerud-yellow hover:shadow-tollerud-glow";
6
+ readonly secondary: "bg-transparent text-tollerud-text-primary border-tollerud-border hover:border-tollerud-text-secondary hover:bg-tollerud-surface-hover";
7
+ readonly ghost: "bg-transparent text-tollerud-text-secondary border-transparent hover:text-tollerud-text-primary hover:bg-tollerud-surface-hover";
8
+ readonly destructive: "bg-tollerud-error text-white border-tollerud-error hover:shadow-[0_0_12px_rgba(239,68,68,0.3)]";
9
+ readonly terminal: "font-mono text-tollerud-yellow border-[rgba(255,255,0,0.25)] bg-transparent before:content-[\"❯_\"] before:opacity-70 hover:border-tollerud-yellow hover:shadow-tollerud-glow hover:bg-[rgba(255,255,0,0.05)]";
10
+ };
11
+ declare const sizes: {
12
+ readonly sm: "px-3 py-1 text-sm";
13
+ readonly md: "px-4 py-2 text-base";
14
+ readonly lg: "px-6 py-3 text-lg";
15
+ };
16
+ interface ButtonVariantProps {
17
+ variant?: keyof typeof variants;
18
+ size?: keyof typeof sizes;
19
+ }
20
+ declare function buttonVariants({ variant, size, className }?: ButtonVariantProps & {
21
+ className?: string;
22
+ }): string;
23
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, ButtonVariantProps {
24
+ /** Render as the single child element (e.g. a `<Link>`) instead of a `<button>`, merging props and styles onto it. */
25
+ asChild?: boolean;
26
+ }
27
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
28
+
29
+ export { Button, type ButtonProps, type ButtonVariantProps, buttonVariants };
package/dist/button.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Button, buttonVariants } from './chunk-RWJELAS6.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=button.js.map
5
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"button.js"}
package/dist/card.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface CardProps extends HTMLAttributes<HTMLDivElement> {
5
+ accent?: boolean;
6
+ density?: 'comfortable' | 'compact';
7
+ }
8
+ declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLDivElement>>;
9
+
10
+ export { Card, type CardProps };
package/dist/card.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Card } from './chunk-DZOBXK2S.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=card.js.map
5
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"card.js"}
@@ -0,0 +1,9 @@
1
+ import * as react from 'react';
2
+ import { InputHTMLAttributes } from 'react';
3
+
4
+ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
5
+ label?: string;
6
+ }
7
+ declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLInputElement>>;
8
+
9
+ export { Checkbox, type CheckboxProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Checkbox } from './chunk-T3TQPOVM.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=checkbox.js.map
5
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"checkbox.js"}
@@ -0,0 +1,79 @@
1
+ 'use client';
2
+ import { cn } from './chunk-WSQNPRGN.js';
3
+ import { forwardRef } from 'react';
4
+ import { Check } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var Stepper = forwardRef(
8
+ ({ className, steps, current, orientation = "horizontal", ...props }, ref) => {
9
+ const vertical = orientation === "vertical";
10
+ return /* @__PURE__ */ jsx(
11
+ "ol",
12
+ {
13
+ ref,
14
+ className: cn("flex", vertical ? "flex-col gap-0" : "items-start gap-0 w-full", className),
15
+ ...props,
16
+ children: steps.map((step, i) => {
17
+ const status = i < current ? "complete" : i === current ? "active" : "upcoming";
18
+ const isLast = i === steps.length - 1;
19
+ return /* @__PURE__ */ jsxs(
20
+ "li",
21
+ {
22
+ className: cn(
23
+ "flex",
24
+ vertical ? "flex-row gap-3" : "flex-col flex-1 gap-2",
25
+ !vertical && !isLast && "pr-2"
26
+ ),
27
+ children: [
28
+ /* @__PURE__ */ jsxs("div", { className: cn("flex items-center", vertical ? "flex-col" : "flex-row gap-2 w-full"), children: [
29
+ /* @__PURE__ */ jsx(
30
+ "span",
31
+ {
32
+ className: cn(
33
+ "flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-medium transition-colors duration-[150ms]",
34
+ status === "complete" && "bg-tollerud-yellow text-tollerud-noir-black",
35
+ status === "active" && "border-2 border-tollerud-yellow text-tollerud-yellow",
36
+ status === "upcoming" && "border border-tollerud-border text-tollerud-text-muted"
37
+ ),
38
+ children: status === "complete" ? /* @__PURE__ */ jsx(Check, { size: 14 }) : i + 1
39
+ }
40
+ ),
41
+ !isLast && /* @__PURE__ */ jsx(
42
+ "span",
43
+ {
44
+ "aria-hidden": "true",
45
+ className: cn(
46
+ "bg-tollerud-border",
47
+ vertical ? "w-px flex-1 my-1" : "h-px flex-1",
48
+ status === "complete" && "bg-tollerud-yellow"
49
+ )
50
+ }
51
+ )
52
+ ] }),
53
+ /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", vertical && "pb-6"), children: [
54
+ /* @__PURE__ */ jsx(
55
+ "span",
56
+ {
57
+ className: cn(
58
+ "text-sm font-medium",
59
+ status === "upcoming" ? "text-tollerud-text-muted" : "text-tollerud-text-primary"
60
+ ),
61
+ children: step.label
62
+ }
63
+ ),
64
+ step.description && /* @__PURE__ */ jsx("span", { className: "text-xs text-tollerud-text-muted", children: step.description })
65
+ ] })
66
+ ]
67
+ },
68
+ i
69
+ );
70
+ })
71
+ }
72
+ );
73
+ }
74
+ );
75
+ Stepper.displayName = "Stepper";
76
+
77
+ export { Stepper };
78
+ //# sourceMappingURL=chunk-2QWKOCWF.js.map
79
+ //# sourceMappingURL=chunk-2QWKOCWF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/Stepper.tsx"],"names":[],"mappings":";;;;;AAgBA,IAAM,OAAA,GAAU,UAAA;AAAA,EACd,CAAC,EAAE,SAAA,EAAW,KAAA,EAAO,OAAA,EAAS,cAAc,YAAA,EAAc,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC5E,IAAA,MAAM,WAAW,WAAA,KAAgB,UAAA;AAEjC,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAW,EAAA,CAAG,MAAA,EAAQ,QAAA,GAAW,gBAAA,GAAmB,4BAA4B,SAAS,CAAA;AAAA,QACxF,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,KAAM;AACtB,UAAA,MAAM,SAAS,CAAA,GAAI,OAAA,GAAU,UAAA,GAAa,CAAA,KAAM,UAAU,QAAA,GAAW,UAAA;AACrE,UAAA,MAAM,MAAA,GAAS,CAAA,KAAM,KAAA,CAAM,MAAA,GAAS,CAAA;AAEpC,UAAA,uBACE,IAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAA;AAAA,gBACA,WAAW,gBAAA,GAAmB,uBAAA;AAAA,gBAC9B,CAAC,QAAA,IAAY,CAAC,MAAA,IAAU;AAAA,eAC1B;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAA,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,qBAAqB,QAAA,GAAW,UAAA,GAAa,uBAAuB,CAAA,EACrF,QAAA,EAAA;AAAA,kCAAA,GAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAW,EAAA;AAAA,wBACT,uHAAA;AAAA,wBACA,WAAW,UAAA,IAAc,6CAAA;AAAA,wBACzB,WAAW,QAAA,IAAY,sDAAA;AAAA,wBACvB,WAAW,UAAA,IAAc;AAAA,uBAC3B;AAAA,sBAEC,qBAAW,UAAA,mBAAa,GAAA,CAAC,SAAM,IAAA,EAAM,EAAA,EAAI,IAAK,CAAA,GAAI;AAAA;AAAA,mBACrD;AAAA,kBACC,CAAC,MAAA,oBACA,GAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,aAAA,EAAY,MAAA;AAAA,sBACZ,SAAA,EAAW,EAAA;AAAA,wBACT,oBAAA;AAAA,wBACA,WAAW,kBAAA,GAAqB,aAAA;AAAA,wBAChC,WAAW,UAAA,IAAc;AAAA;AAC3B;AAAA;AACF,iBAAA,EAEJ,CAAA;AAAA,qCACC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,eAAA,EAAiB,QAAA,IAAY,MAAM,CAAA,EACpD,QAAA,EAAA;AAAA,kCAAA,GAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAW,EAAA;AAAA,wBACT,qBAAA;AAAA,wBACA,MAAA,KAAW,aAAa,0BAAA,GAA6B;AAAA,uBACvD;AAAA,sBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,mBACR;AAAA,kBACC,KAAK,WAAA,oBACJ,GAAA,CAAC,UAAK,SAAA,EAAU,kCAAA,EAAoC,eAAK,WAAA,EAAY;AAAA,iBAAA,EAEzE;AAAA;AAAA,aAAA;AAAA,YAzCK;AAAA,WA0CP;AAAA,QAEJ,CAAC;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-2QWKOCWF.js","sourcesContent":["import { type HTMLAttributes, forwardRef } from 'react'\nimport { Check } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\nexport interface StepperStep {\n label: React.ReactNode\n description?: React.ReactNode\n}\n\nexport interface StepperProps extends HTMLAttributes<HTMLOListElement> {\n steps: StepperStep[]\n /** 0-indexed current step */\n current: number\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst Stepper = forwardRef<HTMLOListElement, StepperProps>(\n ({ className, steps, current, orientation = 'horizontal', ...props }, ref) => {\n const vertical = orientation === 'vertical'\n\n return (\n <ol\n ref={ref}\n className={cn('flex', vertical ? 'flex-col gap-0' : 'items-start gap-0 w-full', className)}\n {...props}\n >\n {steps.map((step, i) => {\n const status = i < current ? 'complete' : i === current ? 'active' : 'upcoming'\n const isLast = i === steps.length - 1\n\n return (\n <li\n key={i}\n className={cn(\n 'flex',\n vertical ? 'flex-row gap-3' : 'flex-col flex-1 gap-2',\n !vertical && !isLast && 'pr-2'\n )}\n >\n <div className={cn('flex items-center', vertical ? 'flex-col' : 'flex-row gap-2 w-full')}>\n <span\n className={cn(\n 'flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-medium transition-colors duration-[150ms]',\n status === 'complete' && 'bg-tollerud-yellow text-tollerud-noir-black',\n status === 'active' && 'border-2 border-tollerud-yellow text-tollerud-yellow',\n status === 'upcoming' && 'border border-tollerud-border text-tollerud-text-muted'\n )}\n >\n {status === 'complete' ? <Check size={14} /> : i + 1}\n </span>\n {!isLast && (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'bg-tollerud-border',\n vertical ? 'w-px flex-1 my-1' : 'h-px flex-1',\n status === 'complete' && 'bg-tollerud-yellow'\n )}\n />\n )}\n </div>\n <div className={cn('flex flex-col', vertical && 'pb-6')}>\n <span\n className={cn(\n 'text-sm font-medium',\n status === 'upcoming' ? 'text-tollerud-text-muted' : 'text-tollerud-text-primary'\n )}\n >\n {step.label}\n </span>\n {step.description && (\n <span className=\"text-xs text-tollerud-text-muted\">{step.description}</span>\n )}\n </div>\n </li>\n )\n })}\n </ol>\n )\n }\n)\nStepper.displayName = 'Stepper'\n\nexport { Stepper }\n"]}