@tollerud/ui 1.1.5 → 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 (360) 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 -21
  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 -16
  356. package/registry.json +920 -0
  357. package/tailwind.css +9 -0
  358. package/dist/index.cjs +0 -3938
  359. package/dist/index.cjs.map +0 -1
  360. package/dist/index.d.cts +0 -960
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/RollbackPlan.tsx"],"names":[],"mappings":";;;;AAuBA,IAAM,QAAA,GAA+C;AAAA,EACnD,OAAA,EAAS,QAAA;AAAA,EACT,OAAA,EAAS,QAAA;AAAA,EACT,OAAA,EAAS,QAAA;AAAA,EACT,MAAA,EAAS,QAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEA,IAAM,UAAA,GAAiD;AAAA,EACrD,OAAA,EAAU,wBAAA;AAAA,EACV,OAAA,EAAU,oCAAA;AAAA,EACV,OAAA,EAAU,uBAAA;AAAA,EACV,MAAA,EAAU,qBAAA;AAAA,EACV,OAAA,EAAU;AACZ,CAAA;AAEA,IAAM,YAAA,GAAe,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACjE,IAAA,MAAM,aAAA,GAAoD;AAAA,MACxD,OAAA,EAAS,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,SAAS,CAAA,CAAE,MAAA;AAAA,MACrD,OAAA,EAAS,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,SAAS,CAAA,CAAE,MAAA;AAAA,MACrD,OAAA,EAAS,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,SAAS,CAAA,CAAE,MAAA;AAAA,MACrD,MAAA,EAAS,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,QAAQ,CAAA,CAAE,MAAA;AAAA,MACpD,OAAA,EAAS,MAAM,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,SAAS,CAAA,CAAE;AAAA,KACvD;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,qEAAA;AAAA,UACA,OAAA,IAAW,eAAA;AAAA,UACX;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAGJ,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6EAAA,EACb,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gDAAA,EAAkD,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,cACtE,SAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8DAA6D,QAAA,EAAA,iBAAA,EAAU;AAAA,aAAA,EAE3F,CAAA;AAAA,4BACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8DAAA,EACZ,QAAA,EAAA;AAAA,cAAA,aAAA,CAAc,OAAA,GAAU,CAAA,oBAAK,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,uBAAA,EAAyB,QAAA,EAAA;AAAA,gBAAA,aAAA,CAAc,OAAA;AAAA,gBAAQ;AAAA,eAAA,EAAK,CAAA;AAAA,cACjG,cAAc,MAAA,GAAS,CAAA,oBAAK,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,qBAAA,EAAuB,QAAA,EAAA;AAAA,gBAAA,aAAA,CAAc,MAAA;AAAA,gBAAO;AAAA,eAAA,EAAO,CAAA;AAAA,cAC/F,cAAc,OAAA,GAAU,CAAA,oBAAK,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,sBAAA,EAAwB,QAAA,EAAA;AAAA,gBAAA,aAAA,CAAc,OAAA;AAAA,gBAAQ;AAAA,eAAA,EAAQ;AAAA,aAAA,EACtG;AAAA,WAAA,EACF,CAAA;AAAA,8BAGC,KAAA,EAAA,EAAI,SAAA,EAAU,OACZ,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACV,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cAEC,SAAA,EAAW,EAAA;AAAA,gBACT,6CAAA;AAAA,gBACA,oCAAA;AAAA,gBACA,IAAA,CAAK,WAAW,QAAA,IAAY,qBAAA;AAAA,gBAC5B,IAAA,CAAK,WAAW,SAAA,IAAa;AAAA,eAC/B;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,wCAAA,EAA0C,UAAA,CAAW,IAAA,CAAK,MAAM,CAAC,CAAA,EAClF,QAAA,EAAA,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA,EACvB,CAAA;AAAA,gCACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACb,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA;AAAA,oBACf,qBAAA;AAAA,oBACA,IAAA,CAAK,MAAA,KAAW,SAAA,GAAY,uBAAA,GAC5B,IAAA,CAAK,MAAA,KAAW,QAAA,GAAW,qBAAA,GAC3B,IAAA,CAAK,MAAA,KAAW,SAAA,GAAY,wBAAA,GAC5B;AAAA,mBACF,EACG,eAAK,KAAA,EACR,CAAA;AAAA,kBACC,KAAK,WAAA,oBACJ,GAAA,CAAC,OAAE,SAAA,EAAU,6CAAA,EAA+C,eAAK,WAAA,EAAY;AAAA,iBAAA,EAEjF,CAAA;AAAA,gCACA,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA;AAAA,kBACf,mDAAA;AAAA,kBACA,UAAA,CAAW,KAAK,MAAM;AAAA,iBACxB,EACG,eAAK,MAAA,EACR;AAAA;AAAA,aAAA;AAAA,YA9BK,IAAA,CAAK;AAAA,WAgCb,CAAA,EACH;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,YAAA,CAAa,WAAA,GAAc,cAAA","file":"chunk-WDANALHD.js","sourcesContent":["import { type HTMLAttributes, forwardRef } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport type RollbackStepStatus = 'pending' | 'running' | 'success' | 'failed' | 'skipped'\n\nexport interface RollbackStep {\n id: string\n label: string\n description?: string\n status: RollbackStepStatus\n}\n\nexport interface RollbackPlanProps extends HTMLAttributes<HTMLDivElement> {\n /** Name/identifier for the plan */\n name: string\n /** Rollback steps */\n steps: RollbackStep[]\n /** Whether the plan is executing */\n executing?: boolean\n /** Whether the plan is loading */\n loading?: boolean\n}\n\nconst stepIcon: Record<RollbackStepStatus, string> = {\n pending: '○',\n running: '◉',\n success: '●',\n failed: '✕',\n skipped: '—',\n}\n\nconst stepStyles: Record<RollbackStepStatus, string> = {\n pending: 'text-tollerud-noir-400',\n running: 'text-tollerud-yellow animate-pulse',\n success: 'text-tollerud-success',\n failed: 'text-tollerud-error',\n skipped: 'text-tollerud-noir-500',\n}\n\nconst RollbackPlan = forwardRef<HTMLDivElement, RollbackPlanProps>(\n ({ className, name, steps, executing, loading, ...props }, ref) => {\n const statusSummary: Record<RollbackStepStatus, number> = {\n pending: steps.filter((s) => s.status === 'pending').length,\n running: steps.filter((s) => s.status === 'running').length,\n success: steps.filter((s) => s.status === 'success').length,\n failed: steps.filter((s) => s.status === 'failed').length,\n skipped: steps.filter((s) => s.status === 'skipped').length,\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-tollerud-border bg-tollerud-surface-raised',\n loading && 'animate-pulse',\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between px-4 py-3 border-b border-tollerud-border\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-semibold text-tollerud-foreground\">{name}</span>\n {executing && (\n <span className=\"text-[11px] text-tollerud-yellow font-medium animate-pulse\">Executing…</span>\n )}\n </div>\n <div className=\"flex items-center gap-2 text-[11px] text-tollerud-text-muted\">\n {statusSummary.success > 0 && <span className=\"text-tollerud-success\">{statusSummary.success} done</span>}\n {statusSummary.failed > 0 && <span className=\"text-tollerud-error\">{statusSummary.failed} failed</span>}\n {statusSummary.running > 0 && <span className=\"text-tollerud-yellow\">{statusSummary.running} running</span>}\n </div>\n </div>\n\n {/* Steps */}\n <div className=\"p-1\">\n {steps.map((step) => (\n <div\n key={step.id}\n className={cn(\n 'flex items-start gap-3 px-3 py-2 rounded-md',\n 'transition-colors duration-[150ms]',\n step.status === 'failed' && 'bg-tollerud-error/5',\n step.status === 'running' && 'bg-tollerud-yellow/5'\n )}\n >\n <span className={cn('font-mono text-sm mt-0.5 flex-shrink-0', stepStyles[step.status])}>\n {stepIcon[step.status]}\n </span>\n <div className=\"flex-1 min-w-0\">\n <span className={cn(\n 'text-xs font-medium',\n step.status === 'success' ? 'text-tollerud-success' :\n step.status === 'failed' ? 'text-tollerud-error' :\n step.status === 'skipped' ? 'text-tollerud-noir-500' :\n 'text-tollerud-foreground'\n )}>\n {step.label}\n </span>\n {step.description && (\n <p className=\"text-[11px] text-tollerud-text-muted mt-0.5\">{step.description}</p>\n )}\n </div>\n <span className={cn(\n 'text-[10px] uppercase font-semibold flex-shrink-0',\n stepStyles[step.status]\n )}>\n {step.status}\n </span>\n </div>\n ))}\n </div>\n </div>\n )\n }\n)\nRollbackPlan.displayName = 'RollbackPlan'\n\nexport { RollbackPlan }"]}
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { clsx } from 'clsx';
3
+ import { twMerge } from 'tailwind-merge';
4
+
5
+ // lib/utils.ts
6
+ function cn(...inputs) {
7
+ return twMerge(clsx(inputs));
8
+ }
9
+
10
+ export { cn };
11
+ //# sourceMappingURL=chunk-WSQNPRGN.js.map
12
+ //# sourceMappingURL=chunk-WSQNPRGN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../lib/utils.ts"],"names":[],"mappings":";;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-WSQNPRGN.js","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"]}
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ import { Button } from './chunk-RWJELAS6.js';
3
+ import { cn } from './chunk-WSQNPRGN.js';
4
+ import { forwardRef } from 'react';
5
+ import { Check } from 'lucide-react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ var PricingCard = forwardRef(
9
+ ({
10
+ className,
11
+ name,
12
+ price,
13
+ period,
14
+ description,
15
+ features = [],
16
+ ctaLabel = "Get started",
17
+ onCtaClick,
18
+ featured,
19
+ badge,
20
+ ...props
21
+ }, ref) => {
22
+ return /* @__PURE__ */ jsxs(
23
+ "div",
24
+ {
25
+ ref,
26
+ className: cn(
27
+ "flex flex-col gap-5 rounded-xl border p-6",
28
+ featured ? "border-tollerud-yellow bg-tollerud-yellow/[0.04] shadow-[0_0_0_1px_rgba(255,255,0,0.15)]" : "border-tollerud-border bg-tollerud-surface",
29
+ className
30
+ ),
31
+ ...props,
32
+ children: [
33
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
34
+ badge && /* @__PURE__ */ jsx("span", { className: "inline-flex w-fit items-center rounded-full bg-tollerud-yellow/15 px-2.5 py-0.5 text-xs font-medium text-tollerud-yellow", children: badge }),
35
+ /* @__PURE__ */ jsx("h3", { className: "text-base font-medium text-tollerud-text-primary", children: name }),
36
+ description && /* @__PURE__ */ jsx("p", { className: "text-sm text-tollerud-text-muted", children: description })
37
+ ] }),
38
+ /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-1", children: [
39
+ /* @__PURE__ */ jsx("span", { className: "text-3xl font-semibold tracking-tight text-tollerud-text-primary", children: price }),
40
+ period && /* @__PURE__ */ jsx("span", { className: "text-sm text-tollerud-text-muted", children: period })
41
+ ] }),
42
+ features.length > 0 && /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-2.5", children: features.map((feature, i) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2.5 text-sm text-tollerud-text-secondary", children: [
43
+ /* @__PURE__ */ jsx(Check, { size: 16, className: "mt-0.5 shrink-0 text-tollerud-yellow" }),
44
+ /* @__PURE__ */ jsx("span", { children: feature })
45
+ ] }, i)) }),
46
+ /* @__PURE__ */ jsx(Button, { variant: featured ? "primary" : "secondary", onClick: onCtaClick, className: "mt-auto w-full", children: ctaLabel })
47
+ ]
48
+ }
49
+ );
50
+ }
51
+ );
52
+ PricingCard.displayName = "PricingCard";
53
+
54
+ export { PricingCard };
55
+ //# sourceMappingURL=chunk-XR5QBVEV.js.map
56
+ //# sourceMappingURL=chunk-XR5QBVEV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/PricingCard.tsx"],"names":[],"mappings":";;;;;;AAoBA,IAAM,WAAA,GAAc,UAAA;AAAA,EAClB,CACE;AAAA,IACE,SAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAW,EAAC;AAAA,IACZ,QAAA,GAAW,aAAA;AAAA,IACX,UAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,2CAAA;AAAA,UACA,WACI,0FAAA,GACA,4CAAA;AAAA,UACJ;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,YAAA,KAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0HAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,4BAEF,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kDAAA,EAAoD,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,YACtE,WAAA,oBAAe,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAoC,QAAA,EAAA,WAAA,EAAY;AAAA,WAAA,EAC/E,CAAA;AAAA,0BAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kEAAA,EAAoE,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,YACzF,MAAA,oBAAU,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAoC,QAAA,EAAA,MAAA,EAAO;AAAA,WAAA,EACxE,CAAA;AAAA,UAEC,QAAA,CAAS,MAAA,GAAS,CAAA,oBACjB,GAAA,CAAC,QAAG,SAAA,EAAU,uBAAA,EACX,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAS,CAAA,qBACtB,IAAA,CAAC,IAAA,EAAA,EAAW,WAAU,+DAAA,EACpB,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAM,EAAA,EAAI,SAAA,EAAU,sCAAA,EAAuC,CAAA;AAAA,4BAClE,GAAA,CAAC,UAAM,QAAA,EAAA,OAAA,EAAQ;AAAA,WAAA,EAAA,EAFR,CAGT,CACD,CAAA,EACH,CAAA;AAAA,0BAGF,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAS,QAAA,GAAW,SAAA,GAAY,aAAa,OAAA,EAAS,UAAA,EAAY,SAAA,EAAU,gBAAA,EACjF,QAAA,EAAA,QAAA,EACH;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-XR5QBVEV.js","sourcesContent":["import { type HTMLAttributes, forwardRef } from 'react'\nimport { Check } from 'lucide-react'\nimport { cn } from '@/lib/utils'\nimport { Button } from './Button'\n\nexport interface PricingCardProps extends HTMLAttributes<HTMLDivElement> {\n name: React.ReactNode\n price: React.ReactNode\n /** Rendered after the price, e.g. \"/month\" */\n period?: React.ReactNode\n description?: React.ReactNode\n features?: React.ReactNode[]\n ctaLabel?: React.ReactNode\n onCtaClick?: () => void\n /** Visually highlights this plan as the recommended/featured option */\n featured?: boolean\n /** Small label shown above the price when featured, e.g. \"Most popular\" */\n badge?: React.ReactNode\n}\n\nconst PricingCard = forwardRef<HTMLDivElement, PricingCardProps>(\n (\n {\n className,\n name,\n price,\n period,\n description,\n features = [],\n ctaLabel = 'Get started',\n onCtaClick,\n featured,\n badge,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col gap-5 rounded-xl border p-6',\n featured\n ? 'border-tollerud-yellow bg-tollerud-yellow/[0.04] shadow-[0_0_0_1px_rgba(255,255,0,0.15)]'\n : 'border-tollerud-border bg-tollerud-surface',\n className\n )}\n {...props}\n >\n <div className=\"flex flex-col gap-1\">\n {badge && (\n <span className=\"inline-flex w-fit items-center rounded-full bg-tollerud-yellow/15 px-2.5 py-0.5 text-xs font-medium text-tollerud-yellow\">\n {badge}\n </span>\n )}\n <h3 className=\"text-base font-medium text-tollerud-text-primary\">{name}</h3>\n {description && <p className=\"text-sm text-tollerud-text-muted\">{description}</p>}\n </div>\n\n <div className=\"flex items-baseline gap-1\">\n <span className=\"text-3xl font-semibold tracking-tight text-tollerud-text-primary\">{price}</span>\n {period && <span className=\"text-sm text-tollerud-text-muted\">{period}</span>}\n </div>\n\n {features.length > 0 && (\n <ul className=\"flex flex-col gap-2.5\">\n {features.map((feature, i) => (\n <li key={i} className=\"flex items-start gap-2.5 text-sm text-tollerud-text-secondary\">\n <Check size={16} className=\"mt-0.5 shrink-0 text-tollerud-yellow\" />\n <span>{feature}</span>\n </li>\n ))}\n </ul>\n )}\n\n <Button variant={featured ? 'primary' : 'secondary'} onClick={onCtaClick} className=\"mt-auto w-full\">\n {ctaLabel}\n </Button>\n </div>\n )\n }\n)\nPricingCard.displayName = 'PricingCard'\n\nexport { PricingCard }\n"]}
@@ -0,0 +1,111 @@
1
+ 'use client';
2
+ import { cn } from './chunk-WSQNPRGN.js';
3
+ import { createContext, forwardRef, useState, useId, useContext } from 'react';
4
+ import { ChevronDown } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var AccordionContext = createContext(null);
8
+ function useAccordionContext(component) {
9
+ const ctx = useContext(AccordionContext);
10
+ if (!ctx) throw new Error(`<${component}> must be used within <Accordion>`);
11
+ return ctx;
12
+ }
13
+ var Accordion = forwardRef(
14
+ ({ className, multiple = false, defaultOpen, children, ...props }, ref) => {
15
+ const [openItems, setOpenItems] = useState(() => {
16
+ if (!defaultOpen) return /* @__PURE__ */ new Set();
17
+ return new Set(Array.isArray(defaultOpen) ? defaultOpen : [defaultOpen]);
18
+ });
19
+ const toggle = (value) => {
20
+ setOpenItems((prev) => {
21
+ const next = multiple ? new Set(prev) : /* @__PURE__ */ new Set();
22
+ if (prev.has(value)) {
23
+ next.delete(value);
24
+ } else {
25
+ next.add(value);
26
+ }
27
+ return next;
28
+ });
29
+ };
30
+ return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: { openItems, toggle }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col divide-y divide-tollerud-border rounded-lg border border-tollerud-border", className), ...props, children }) });
31
+ }
32
+ );
33
+ Accordion.displayName = "Accordion";
34
+ var AccordionItemContext = createContext(null);
35
+ var AccordionItem = forwardRef(
36
+ ({ className, value, children, ...props }, ref) => {
37
+ const { openItems } = useAccordionContext("AccordionItem");
38
+ const autoId = useId();
39
+ const open = openItems.has(value);
40
+ return /* @__PURE__ */ jsx(
41
+ AccordionItemContext.Provider,
42
+ {
43
+ value: { value, open, triggerId: `${autoId}-trigger`, contentId: `${autoId}-content` },
44
+ children: /* @__PURE__ */ jsx("div", { ref, className: cn("first:rounded-t-lg last:rounded-b-lg", className), ...props, children })
45
+ }
46
+ );
47
+ }
48
+ );
49
+ AccordionItem.displayName = "AccordionItem";
50
+ function useAccordionItemContext(component) {
51
+ const ctx = useContext(AccordionItemContext);
52
+ if (!ctx) throw new Error(`<${component}> must be used within <AccordionItem>`);
53
+ return ctx;
54
+ }
55
+ var AccordionTrigger = forwardRef(
56
+ ({ className, children, ...props }, ref) => {
57
+ const { toggle } = useAccordionContext("AccordionTrigger");
58
+ const { value, open, triggerId, contentId } = useAccordionItemContext("AccordionTrigger");
59
+ return /* @__PURE__ */ jsxs(
60
+ "button",
61
+ {
62
+ ref,
63
+ id: triggerId,
64
+ type: "button",
65
+ "aria-expanded": open,
66
+ "aria-controls": contentId,
67
+ onClick: () => toggle(value),
68
+ className: cn(
69
+ "flex w-full items-center justify-between gap-4 px-4 py-3.5 text-left text-sm font-medium",
70
+ "text-tollerud-text-primary hover:bg-tollerud-surface-hover transition-colors duration-[150ms]",
71
+ className
72
+ ),
73
+ ...props,
74
+ children: [
75
+ children,
76
+ /* @__PURE__ */ jsx(
77
+ ChevronDown,
78
+ {
79
+ size: 16,
80
+ className: cn("shrink-0 text-tollerud-text-muted transition-transform duration-[200ms]", open && "rotate-180")
81
+ }
82
+ )
83
+ ]
84
+ }
85
+ );
86
+ }
87
+ );
88
+ AccordionTrigger.displayName = "AccordionTrigger";
89
+ var AccordionContent = forwardRef(
90
+ ({ className, children, ...props }, ref) => {
91
+ const { open, triggerId, contentId } = useAccordionItemContext("AccordionContent");
92
+ return /* @__PURE__ */ jsx(
93
+ "div",
94
+ {
95
+ ref,
96
+ id: contentId,
97
+ role: "region",
98
+ "aria-labelledby": triggerId,
99
+ hidden: !open,
100
+ className: cn("px-4 pb-4 text-sm text-tollerud-text-secondary", className),
101
+ ...props,
102
+ children
103
+ }
104
+ );
105
+ }
106
+ );
107
+ AccordionContent.displayName = "AccordionContent";
108
+
109
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
110
+ //# sourceMappingURL=chunk-YYWODLER.js.map
111
+ //# sourceMappingURL=chunk-YYWODLER.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/Accordion.tsx"],"names":[],"mappings":"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","file":"chunk-YYWODLER.js","sourcesContent":["'use client'\n\nimport { type HTMLAttributes, createContext, forwardRef, useContext, useId, useState } from 'react'\nimport { ChevronDown } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\ninterface AccordionContextValue {\n openItems: Set<string>\n toggle: (value: string) => void\n}\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null)\n\nfunction useAccordionContext(component: string) {\n const ctx = useContext(AccordionContext)\n if (!ctx) throw new Error(`<${component}> must be used within <Accordion>`)\n return ctx\n}\n\nexport interface AccordionProps extends HTMLAttributes<HTMLDivElement> {\n /** Allow multiple items to be open at once */\n multiple?: boolean\n /** Initially open item value(s) */\n defaultOpen?: string | string[]\n}\n\nconst Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, multiple = false, defaultOpen, children, ...props }, ref) => {\n const [openItems, setOpenItems] = useState<Set<string>>(() => {\n if (!defaultOpen) return new Set()\n return new Set(Array.isArray(defaultOpen) ? defaultOpen : [defaultOpen])\n })\n\n const toggle = (value: string) => {\n setOpenItems((prev) => {\n const next = multiple ? new Set(prev) : new Set<string>()\n if (prev.has(value)) {\n next.delete(value)\n } else {\n next.add(value)\n }\n return next\n })\n }\n\n return (\n <AccordionContext.Provider value={{ openItems, toggle }}>\n <div ref={ref} className={cn('flex flex-col divide-y divide-tollerud-border rounded-lg border border-tollerud-border', className)} {...props}>\n {children}\n </div>\n </AccordionContext.Provider>\n )\n }\n)\nAccordion.displayName = 'Accordion'\n\ninterface AccordionItemContextValue {\n value: string\n open: boolean\n triggerId: string\n contentId: string\n}\n\nconst AccordionItemContext = createContext<AccordionItemContextValue | null>(null)\n\nexport interface AccordionItemProps extends HTMLAttributes<HTMLDivElement> {\n value: string\n}\n\nconst AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ className, value, children, ...props }, ref) => {\n const { openItems } = useAccordionContext('AccordionItem')\n const autoId = useId()\n const open = openItems.has(value)\n\n return (\n <AccordionItemContext.Provider\n value={{ value, open, triggerId: `${autoId}-trigger`, contentId: `${autoId}-content` }}\n >\n <div ref={ref} className={cn('first:rounded-t-lg last:rounded-b-lg', className)} {...props}>\n {children}\n </div>\n </AccordionItemContext.Provider>\n )\n }\n)\nAccordionItem.displayName = 'AccordionItem'\n\nfunction useAccordionItemContext(component: string) {\n const ctx = useContext(AccordionItemContext)\n if (!ctx) throw new Error(`<${component}> must be used within <AccordionItem>`)\n return ctx\n}\n\nexport type AccordionTriggerProps = HTMLAttributes<HTMLButtonElement>\n\nconst AccordionTrigger = forwardRef<HTMLButtonElement, AccordionTriggerProps>(\n ({ className, children, ...props }, ref) => {\n const { toggle } = useAccordionContext('AccordionTrigger')\n const { value, open, triggerId, contentId } = useAccordionItemContext('AccordionTrigger')\n\n return (\n <button\n ref={ref}\n id={triggerId}\n type=\"button\"\n aria-expanded={open}\n aria-controls={contentId}\n onClick={() => toggle(value)}\n className={cn(\n 'flex w-full items-center justify-between gap-4 px-4 py-3.5 text-left text-sm font-medium',\n 'text-tollerud-text-primary hover:bg-tollerud-surface-hover transition-colors duration-[150ms]',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown\n size={16}\n className={cn('shrink-0 text-tollerud-text-muted transition-transform duration-[200ms]', open && 'rotate-180')}\n />\n </button>\n )\n }\n)\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nexport type AccordionContentProps = HTMLAttributes<HTMLDivElement>\n\nconst AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, triggerId, contentId } = useAccordionItemContext('AccordionContent')\n\n return (\n <div\n ref={ref}\n id={contentId}\n role=\"region\"\n aria-labelledby={triggerId}\n hidden={!open}\n className={cn('px-4 pb-4 text-sm text-tollerud-text-secondary', className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nAccordionContent.displayName = 'AccordionContent'\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"]}
@@ -0,0 +1,50 @@
1
+ 'use client';
2
+ import { cn } from './chunk-WSQNPRGN.js';
3
+ import { useRef, useState } from 'react';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ function GlowCard({
7
+ children,
8
+ className,
9
+ glowColor = "var(--tollerud-accent, #FFFF00)",
10
+ intensity = 0.15
11
+ }) {
12
+ const ref = useRef(null);
13
+ const [pos, setPos] = useState({ x: 0, y: 0 });
14
+ const [isHovered, setIsHovered] = useState(false);
15
+ const handleMouseMove = (e) => {
16
+ if (!ref.current) return;
17
+ const rect = ref.current.getBoundingClientRect();
18
+ setPos({
19
+ x: (e.clientX - rect.left) / rect.width * 100,
20
+ y: (e.clientY - rect.top) / rect.height * 100
21
+ });
22
+ };
23
+ return /* @__PURE__ */ jsxs(
24
+ "div",
25
+ {
26
+ ref,
27
+ className: cn("relative overflow-hidden", className),
28
+ onMouseMove: handleMouseMove,
29
+ onMouseEnter: () => setIsHovered(true),
30
+ onMouseLeave: () => setIsHovered(false),
31
+ children: [
32
+ /* @__PURE__ */ jsx(
33
+ "div",
34
+ {
35
+ className: "pointer-events-none absolute inset-0 transition-opacity duration-300",
36
+ style: {
37
+ opacity: isHovered ? 1 : 0,
38
+ background: `radial-gradient(600px circle at ${pos.x}% ${pos.y}%, ${glowColor} ${intensity * 100}%, transparent 70%)`
39
+ }
40
+ }
41
+ ),
42
+ /* @__PURE__ */ jsx("div", { className: "relative z-10", children })
43
+ ]
44
+ }
45
+ );
46
+ }
47
+
48
+ export { GlowCard };
49
+ //# sourceMappingURL=chunk-ZOXO3G3I.js.map
50
+ //# sourceMappingURL=chunk-ZOXO3G3I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../components/GlowCard.tsx"],"names":[],"mappings":";;;;AAgBA,SAAS,QAAA,CAAS;AAAA,EAChB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA,GAAY,iCAAA;AAAA,EACZ,SAAA,GAAY;AACd,CAAA,EAAkB;AAChB,EAAA,MAAM,GAAA,GAAM,OAAuB,IAAI,CAAA;AACvC,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAI,QAAA,CAAS,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA;AAC7C,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAEhD,EAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAAwC;AAC/D,IAAA,IAAI,CAAC,IAAI,OAAA,EAAS;AAClB,IAAA,MAAM,IAAA,GAAO,GAAA,CAAI,OAAA,CAAQ,qBAAA,EAAsB;AAC/C,IAAA,MAAA,CAAO;AAAA,MACL,IAAK,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,IAAA,IAAQ,KAAK,KAAA,GAAS,GAAA;AAAA,MAC5C,IAAK,CAAA,CAAE,OAAA,GAAU,IAAA,CAAK,GAAA,IAAO,KAAK,MAAA,GAAU;AAAA,KAC7C,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,MACnD,WAAA,EAAa,eAAA;AAAA,MACb,YAAA,EAAc,MAAM,YAAA,CAAa,IAAI,CAAA;AAAA,MACrC,YAAA,EAAc,MAAM,YAAA,CAAa,KAAK,CAAA;AAAA,MAGtC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,sEAAA;AAAA,YACV,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,YAAY,CAAA,GAAI,CAAA;AAAA,cACzB,UAAA,EAAY,CAAA,gCAAA,EAAmC,GAAA,CAAI,CAAC,CAAA,EAAA,EAAK,GAAA,CAAI,CAAC,CAAA,GAAA,EAAM,SAAS,CAAA,CAAA,EAAI,SAAA,GAAY,GAAG,CAAA,mBAAA;AAAA;AAClG;AAAA,SACF;AAAA,wBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,eAAA,EAAiB,QAAA,EAAS;AAAA;AAAA;AAAA,GAC3C;AAEJ","file":"chunk-ZOXO3G3I.js","sourcesContent":["'use client'\n\nimport { useRef, useState, type ReactNode } from 'react'\nimport { cn } from '@/lib/utils'\n\n/* ──────────────────── GlowCard (cursor-follow glow wrapper) ──────────────────── */\n\nexport interface GlowCardProps {\n children: ReactNode\n className?: string\n /** Color of the glow. Default: accent yellow */\n glowColor?: string\n /** Glow intensity (0–1). Default: 0.15 */\n intensity?: number\n}\n\nfunction GlowCard({\n children,\n className,\n glowColor = 'var(--tollerud-accent, #FFFF00)',\n intensity = 0.15,\n}: GlowCardProps) {\n const ref = useRef<HTMLDivElement>(null)\n const [pos, setPos] = useState({ x: 0, y: 0 })\n const [isHovered, setIsHovered] = useState(false)\n\n const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!ref.current) return\n const rect = ref.current.getBoundingClientRect()\n setPos({\n x: ((e.clientX - rect.left) / rect.width) * 100,\n y: ((e.clientY - rect.top) / rect.height) * 100,\n })\n }\n\n return (\n <div\n ref={ref}\n className={cn('relative overflow-hidden', className)}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {/* Follow-cursor glow */}\n <div\n className=\"pointer-events-none absolute inset-0 transition-opacity duration-300\"\n style={{\n opacity: isHovered ? 1 : 0,\n background: `radial-gradient(600px circle at ${pos.x}% ${pos.y}%, ${glowColor} ${intensity * 100}%, transparent 70%)`,\n }}\n />\n {/* Content */}\n <div className=\"relative z-10\">{children}</div>\n </div>\n )\n}\n\nexport { GlowCard }\nexport default GlowCard"]}
@@ -0,0 +1,14 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface CodeBlockProps extends HTMLAttributes<HTMLPreElement> {
5
+ /** Optional string content to render inside <code> tags */
6
+ code?: string;
7
+ /** When true, prepends a prompt symbol ($) before text content */
8
+ promptPrefix?: boolean;
9
+ /** When false, hides the copy-to-clipboard button (default: true) */
10
+ showCopy?: boolean;
11
+ }
12
+ declare const CodeBlock: react.ForwardRefExoticComponent<CodeBlockProps & react.RefAttributes<HTMLPreElement>>;
13
+
14
+ export { CodeBlock, type CodeBlockProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { CodeBlock } from './chunk-DRCMGIQ6.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=code-block.js.map
5
+ //# sourceMappingURL=code-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"code-block.js"}
@@ -0,0 +1,26 @@
1
+ import * as react from 'react';
2
+
3
+ interface ComboboxOption {
4
+ value: string;
5
+ label: string;
6
+ disabled?: boolean;
7
+ }
8
+ interface ComboboxProps {
9
+ options: ComboboxOption[];
10
+ value?: string;
11
+ defaultValue?: string;
12
+ onChange?: (value: string) => void;
13
+ placeholder?: string;
14
+ label?: string;
15
+ error?: string;
16
+ /** Filter predicate, defaults to a case-insensitive substring match on the label */
17
+ filter?: (option: ComboboxOption, query: string) => boolean;
18
+ className?: string;
19
+ disabled?: boolean;
20
+ }
21
+ declare function Combobox({ options, value: valueProp, defaultValue, onChange, placeholder, label, error, filter, className, disabled, }: ComboboxProps): react.JSX.Element;
22
+ declare namespace Combobox {
23
+ var displayName: string;
24
+ }
25
+
26
+ export { Combobox, type ComboboxOption, type ComboboxProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Combobox } from './chunk-H3ZVGTJM.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=combobox.js.map
5
+ //# sourceMappingURL=combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"combobox.js"}
@@ -0,0 +1,52 @@
1
+ import * as react from 'react';
2
+ import { ActionItem } from './action-row.js';
3
+
4
+ interface CommandGroup {
5
+ /** Group label (e.g. "Servers", "Actions") */
6
+ label: string;
7
+ /** Items in this group */
8
+ items: ActionItem[];
9
+ }
10
+ interface CommandMenuProps {
11
+ /** Whether the menu is open */
12
+ open: boolean;
13
+ /** Called when menu should close */
14
+ onOpenChange: (open: boolean) => void;
15
+ /** Command groups to display */
16
+ groups: CommandGroup[];
17
+ /** Placeholder text for the search input */
18
+ placeholder?: string;
19
+ /** Empty state message when no results */
20
+ emptyMessage?: string;
21
+ /** Custom class for the overlay */
22
+ className?: string;
23
+ /** Keyboard shortcut to toggle (default: "⌘K") */
24
+ toggleShortcut?: string;
25
+ /** Custom search filter override. Return filtered groups. */
26
+ filter?: (query: string, groups: CommandGroup[]) => CommandGroup[];
27
+ /** Callback when an action runs */
28
+ onAction?: (action: ActionItem) => void;
29
+ }
30
+ /**
31
+ * Command palette — a Raycast-inspired global command menu.
32
+ *
33
+ * ```tsx
34
+ * const [open, setOpen] = useState(false)
35
+ *
36
+ * <CommandMenu
37
+ * open={open}
38
+ * onOpenChange={setOpen}
39
+ * groups={[
40
+ * {
41
+ * label: 'Servers',
42
+ * items: [
43
+ * { id: 'emma', label: 'Emma', icon: <Server />, onSelect: () => {} },
44
+ * ],
45
+ * },
46
+ * ]}
47
+ * />
48
+ * ```
49
+ */
50
+ declare const CommandMenu: react.ForwardRefExoticComponent<CommandMenuProps & react.RefAttributes<HTMLDivElement>>;
51
+
52
+ export { type CommandGroup, CommandMenu, type CommandMenuProps };
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ export { CommandMenu } from './chunk-RQ3RXKAZ.js';
3
+ import './chunk-OGVSZ7NV.js';
4
+ import './chunk-HWAWUEHC.js';
5
+ import './chunk-WSQNPRGN.js';
6
+ //# sourceMappingURL=command-menu.js.map
7
+ //# sourceMappingURL=command-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"command-menu.js"}
@@ -0,0 +1,9 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface ContainerProps extends HTMLAttributes<HTMLDivElement> {
5
+ as?: 'div' | 'section' | 'article' | 'main' | 'header' | 'footer';
6
+ }
7
+ declare const Container: react.ForwardRefExoticComponent<ContainerProps & react.RefAttributes<HTMLDivElement>>;
8
+
9
+ export { Container, type ContainerProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Container } from './chunk-DNJI65VQ.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=container.js.map
5
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"container.js"}
@@ -0,0 +1,12 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface CTABandProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
5
+ title: React.ReactNode;
6
+ description?: React.ReactNode;
7
+ actions?: React.ReactNode;
8
+ accentBar?: boolean;
9
+ }
10
+ declare const CTABand: react.ForwardRefExoticComponent<CTABandProps & react.RefAttributes<HTMLDivElement>>;
11
+
12
+ export { CTABand, type CTABandProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { CTABand } from './chunk-VTRUUT5K.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=cta-band.js.map
5
+ //# sourceMappingURL=cta-band.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"cta-band.js"}
@@ -0,0 +1,58 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface Column<T> {
5
+ key: string;
6
+ label: string;
7
+ sortable?: boolean;
8
+ filterable?: boolean;
9
+ align?: 'left' | 'center' | 'right';
10
+ width?: string;
11
+ render?: (value: unknown, row: T) => ReactNode;
12
+ }
13
+ interface DataTableFilter {
14
+ key: string;
15
+ options?: string[];
16
+ allLabel?: string;
17
+ }
18
+ interface DataTableBulkAction {
19
+ label: string;
20
+ variant?: 'primary' | 'secondary' | 'ghost' | 'destructive' | 'terminal';
21
+ icon?: ReactNode;
22
+ onRun: (selectedIds: (string | number)[], clearSelection: () => void) => void;
23
+ }
24
+ interface DataTableRowMenuItem {
25
+ label: string;
26
+ onSelect?: () => void;
27
+ icon?: ReactNode;
28
+ sep?: boolean;
29
+ heading?: boolean;
30
+ }
31
+ interface DataTableProps<T extends Record<string, unknown>> {
32
+ columns: Column<T>[];
33
+ /** Row data — use `data` or `rows` (alias). */
34
+ data?: T[];
35
+ rows?: T[];
36
+ /** Row key extractor — defaults to `row.id` or `row.key` */
37
+ rowKey?: keyof T | ((row: T) => string | number);
38
+ onRowClick?: (row: T) => void;
39
+ className?: string;
40
+ emptyMessage?: string;
41
+ /** Global search across `searchKeys` (or all column keys). */
42
+ searchable?: boolean;
43
+ searchKeys?: (keyof T | string)[];
44
+ searchPlaceholder?: string;
45
+ /** Segmented filter on a single column value. */
46
+ filter?: DataTableFilter;
47
+ selectable?: boolean;
48
+ pageSize?: number;
49
+ bulkActions?: DataTableBulkAction[];
50
+ rowMenu?: (row: T) => DataTableRowMenuItem[];
51
+ toolbarRight?: ReactNode;
52
+ emptyState?: ReactNode;
53
+ loading?: boolean;
54
+ skeletonRows?: number;
55
+ }
56
+ declare const DataTable: react.ForwardRefExoticComponent<DataTableProps<Record<string, unknown>> & react.RefAttributes<HTMLDivElement>>;
57
+
58
+ export { type Column, DataTable, type DataTableBulkAction, type DataTableFilter, type DataTableProps, type DataTableRowMenuItem };
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ export { DataTable } from './chunk-3TGMGBKM.js';
3
+ import './chunk-NSMU66ZX.js';
4
+ import './chunk-FGXOV2QH.js';
5
+ import './chunk-RJTDQOT2.js';
6
+ import './chunk-435JHF7G.js';
7
+ import './chunk-T3TQPOVM.js';
8
+ import './chunk-QEHTPQHL.js';
9
+ import './chunk-RWJELAS6.js';
10
+ import './chunk-WSQNPRGN.js';
11
+ //# sourceMappingURL=data-table.js.map
12
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"data-table.js"}
@@ -0,0 +1,20 @@
1
+ import * as react from 'react';
2
+
3
+ interface DatePickerProps {
4
+ value?: Date | null;
5
+ defaultValue?: Date | null;
6
+ onChange?: (date: Date | null) => void;
7
+ label?: string;
8
+ error?: string;
9
+ placeholder?: string;
10
+ /** Format a date for display in the input (defaults to locale short date) */
11
+ formatDate?: (date: Date) => string;
12
+ className?: string;
13
+ disabled?: boolean;
14
+ }
15
+ declare function DatePicker({ value: valueProp, defaultValue, onChange, label, error, placeholder, formatDate, className, disabled, }: DatePickerProps): react.JSX.Element;
16
+ declare namespace DatePicker {
17
+ var displayName: string;
18
+ }
19
+
20
+ export { DatePicker, type DatePickerProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { DatePicker } from './chunk-V3P5QLLX.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=date-picker.js.map
5
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"date-picker.js"}
@@ -0,0 +1,21 @@
1
+ import * as react from 'react';
2
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
3
+
4
+ declare const Dialog: react.FC<DialogPrimitive.DialogProps>;
5
+ declare const DialogTrigger: react.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
6
+ declare const DialogPortal: react.FC<DialogPrimitive.DialogPortalProps>;
7
+ declare const DialogClose: react.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
8
+ declare const DialogOverlay: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
9
+ declare const DialogContent: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
10
+ declare const DialogHeader: {
11
+ ({ className, ...props }: react.HTMLAttributes<HTMLDivElement>): react.JSX.Element;
12
+ displayName: string;
13
+ };
14
+ declare const DialogFooter: {
15
+ ({ className, ...props }: react.HTMLAttributes<HTMLDivElement>): react.JSX.Element;
16
+ displayName: string;
17
+ };
18
+ declare const DialogTitle: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & react.RefAttributes<HTMLHeadingElement>, "ref"> & react.RefAttributes<HTMLHeadingElement>>;
19
+ declare const DialogDescription: react.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & react.RefAttributes<HTMLParagraphElement>, "ref"> & react.RefAttributes<HTMLParagraphElement>>;
20
+
21
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
package/dist/dialog.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-KI6OTVID.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=dialog.js.map
5
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"dialog.js"}
@@ -0,0 +1,12 @@
1
+ import * as react from 'react';
2
+ import { HTMLAttributes } from 'react';
3
+
4
+ interface DividerProps extends HTMLAttributes<HTMLDivElement> {
5
+ /** Layout direction */
6
+ orientation?: 'horizontal' | 'vertical';
7
+ /** Optional label rendered inline (horizontal orientation only) */
8
+ label?: React.ReactNode;
9
+ }
10
+ declare const Divider: react.ForwardRefExoticComponent<DividerProps & react.RefAttributes<HTMLDivElement>>;
11
+
12
+ export { Divider, type DividerProps };
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ export { Divider } from './chunk-CKNWXYMA.js';
3
+ import './chunk-WSQNPRGN.js';
4
+ //# sourceMappingURL=divider.js.map
5
+ //# sourceMappingURL=divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"divider.js"}