@epilot/spark-ui 0.10.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 (629) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +2 -0
  3. package/README.md +32 -0
  4. package/dist/chunk-DY84GLCh.cjs +29 -0
  5. package/dist/components/accordion.cjs +57 -0
  6. package/dist/components/accordion.cjs.map +1 -0
  7. package/dist/components/accordion.d.cts +44 -0
  8. package/dist/components/accordion.d.ts +44 -0
  9. package/dist/components/accordion.js +51 -0
  10. package/dist/components/accordion.js.map +1 -0
  11. package/dist/components/alert-dialog.cjs +137 -0
  12. package/dist/components/alert-dialog.cjs.map +1 -0
  13. package/dist/components/alert-dialog.d.cts +62 -0
  14. package/dist/components/alert-dialog.d.ts +62 -0
  15. package/dist/components/alert-dialog.js +123 -0
  16. package/dist/components/alert-dialog.js.map +1 -0
  17. package/dist/components/attachment.cjs +119 -0
  18. package/dist/components/attachment.cjs.map +1 -0
  19. package/dist/components/attachment.d.cts +65 -0
  20. package/dist/components/attachment.d.ts +65 -0
  21. package/dist/components/attachment.js +108 -0
  22. package/dist/components/attachment.js.map +1 -0
  23. package/dist/components/avatar.cjs +56 -0
  24. package/dist/components/avatar.cjs.map +1 -0
  25. package/dist/components/avatar.d.cts +26 -0
  26. package/dist/components/avatar.d.ts +26 -0
  27. package/dist/components/avatar.js +52 -0
  28. package/dist/components/avatar.js.map +1 -0
  29. package/dist/components/badge.cjs +25 -0
  30. package/dist/components/badge.cjs.map +1 -0
  31. package/dist/components/badge.d.cts +16 -0
  32. package/dist/components/badge.d.ts +16 -0
  33. package/dist/components/badge.js +22 -0
  34. package/dist/components/badge.js.map +1 -0
  35. package/dist/components/bar-chart.cjs +584 -0
  36. package/dist/components/bar-chart.cjs.map +1 -0
  37. package/dist/components/bar-chart.d.cts +102 -0
  38. package/dist/components/bar-chart.d.ts +102 -0
  39. package/dist/components/bar-chart.js +583 -0
  40. package/dist/components/bar-chart.js.map +1 -0
  41. package/dist/components/battery-progress-row.cjs +133 -0
  42. package/dist/components/battery-progress-row.cjs.map +1 -0
  43. package/dist/components/battery-progress-row.d.cts +77 -0
  44. package/dist/components/battery-progress-row.d.ts +77 -0
  45. package/dist/components/battery-progress-row.js +123 -0
  46. package/dist/components/battery-progress-row.js.map +1 -0
  47. package/dist/components/breadcrumbs.cjs +64 -0
  48. package/dist/components/breadcrumbs.cjs.map +1 -0
  49. package/dist/components/breadcrumbs.d.cts +42 -0
  50. package/dist/components/breadcrumbs.d.ts +42 -0
  51. package/dist/components/breadcrumbs.js +58 -0
  52. package/dist/components/breadcrumbs.js.map +1 -0
  53. package/dist/components/bubble.cjs +84 -0
  54. package/dist/components/bubble.cjs.map +1 -0
  55. package/dist/components/bubble.d.cts +39 -0
  56. package/dist/components/bubble.d.ts +39 -0
  57. package/dist/components/bubble.js +78 -0
  58. package/dist/components/bubble.js.map +1 -0
  59. package/dist/components/button-group.cjs +72 -0
  60. package/dist/components/button-group.cjs.map +1 -0
  61. package/dist/components/button-group.d.cts +29 -0
  62. package/dist/components/button-group.d.ts +29 -0
  63. package/dist/components/button-group.js +64 -0
  64. package/dist/components/button-group.js.map +1 -0
  65. package/dist/components/button.cjs +58 -0
  66. package/dist/components/button.cjs.map +1 -0
  67. package/dist/components/button.d.cts +29 -0
  68. package/dist/components/button.d.ts +29 -0
  69. package/dist/components/button.js +54 -0
  70. package/dist/components/button.js.map +1 -0
  71. package/dist/components/calendar.cjs +59 -0
  72. package/dist/components/calendar.cjs.map +1 -0
  73. package/dist/components/calendar.d.cts +20 -0
  74. package/dist/components/calendar.d.ts +20 -0
  75. package/dist/components/calendar.js +56 -0
  76. package/dist/components/calendar.js.map +1 -0
  77. package/dist/components/callout.cjs +95 -0
  78. package/dist/components/callout.cjs.map +1 -0
  79. package/dist/components/callout.d.cts +42 -0
  80. package/dist/components/callout.d.ts +42 -0
  81. package/dist/components/callout.js +88 -0
  82. package/dist/components/callout.js.map +1 -0
  83. package/dist/components/card.cjs +100 -0
  84. package/dist/components/card.cjs.map +1 -0
  85. package/dist/components/card.d.cts +34 -0
  86. package/dist/components/card.d.ts +34 -0
  87. package/dist/components/card.js +90 -0
  88. package/dist/components/card.js.map +1 -0
  89. package/dist/components/chart.cjs +110 -0
  90. package/dist/components/chart.cjs.map +1 -0
  91. package/dist/components/chart.d.cts +92 -0
  92. package/dist/components/chart.d.ts +92 -0
  93. package/dist/components/chart.js +104 -0
  94. package/dist/components/chart.js.map +1 -0
  95. package/dist/components/checkbox.cjs +44 -0
  96. package/dist/components/checkbox.cjs.map +1 -0
  97. package/dist/components/checkbox.d.cts +26 -0
  98. package/dist/components/checkbox.d.ts +26 -0
  99. package/dist/components/checkbox.js +41 -0
  100. package/dist/components/checkbox.js.map +1 -0
  101. package/dist/components/circular-gauge.cjs +74 -0
  102. package/dist/components/circular-gauge.cjs.map +1 -0
  103. package/dist/components/circular-gauge.d.cts +37 -0
  104. package/dist/components/circular-gauge.d.ts +37 -0
  105. package/dist/components/circular-gauge.js +71 -0
  106. package/dist/components/circular-gauge.js.map +1 -0
  107. package/dist/components/day-of-week-picker.cjs +123 -0
  108. package/dist/components/day-of-week-picker.cjs.map +1 -0
  109. package/dist/components/day-of-week-picker.d.cts +39 -0
  110. package/dist/components/day-of-week-picker.d.ts +39 -0
  111. package/dist/components/day-of-week-picker.js +119 -0
  112. package/dist/components/day-of-week-picker.js.map +1 -0
  113. package/dist/components/device-card.cjs +118 -0
  114. package/dist/components/device-card.cjs.map +1 -0
  115. package/dist/components/device-card.d.cts +70 -0
  116. package/dist/components/device-card.d.ts +70 -0
  117. package/dist/components/device-card.js +104 -0
  118. package/dist/components/device-card.js.map +1 -0
  119. package/dist/components/dialog.cjs +115 -0
  120. package/dist/components/dialog.cjs.map +1 -0
  121. package/dist/components/dialog.d.cts +44 -0
  122. package/dist/components/dialog.d.ts +44 -0
  123. package/dist/components/dialog.js +103 -0
  124. package/dist/components/dialog.js.map +1 -0
  125. package/dist/components/donut-chart.cjs +70 -0
  126. package/dist/components/donut-chart.cjs.map +1 -0
  127. package/dist/components/donut-chart.d.cts +20 -0
  128. package/dist/components/donut-chart.d.ts +20 -0
  129. package/dist/components/donut-chart.js +69 -0
  130. package/dist/components/donut-chart.js.map +1 -0
  131. package/dist/components/drawer.cjs +95 -0
  132. package/dist/components/drawer.cjs.map +1 -0
  133. package/dist/components/drawer.d.cts +45 -0
  134. package/dist/components/drawer.d.ts +45 -0
  135. package/dist/components/drawer.js +83 -0
  136. package/dist/components/drawer.js.map +1 -0
  137. package/dist/components/dropdown-menu.cjs +165 -0
  138. package/dist/components/dropdown-menu.cjs.map +1 -0
  139. package/dist/components/dropdown-menu.d.cts +92 -0
  140. package/dist/components/dropdown-menu.d.ts +92 -0
  141. package/dist/components/dropdown-menu.js +148 -0
  142. package/dist/components/dropdown-menu.js.map +1 -0
  143. package/dist/components/empty-state.cjs +41 -0
  144. package/dist/components/empty-state.cjs.map +1 -0
  145. package/dist/components/empty-state.d.cts +26 -0
  146. package/dist/components/empty-state.d.ts +26 -0
  147. package/dist/components/empty-state.js +41 -0
  148. package/dist/components/empty-state.js.map +1 -0
  149. package/dist/components/energy-bar-chart.cjs +23 -0
  150. package/dist/components/energy-bar-chart.cjs.map +1 -0
  151. package/dist/components/energy-bar-chart.d.cts +43 -0
  152. package/dist/components/energy-bar-chart.d.ts +43 -0
  153. package/dist/components/energy-bar-chart.js +22 -0
  154. package/dist/components/energy-bar-chart.js.map +1 -0
  155. package/dist/components/energy-breakdown.cjs +80 -0
  156. package/dist/components/energy-breakdown.cjs.map +1 -0
  157. package/dist/components/energy-breakdown.d.cts +24 -0
  158. package/dist/components/energy-breakdown.d.ts +24 -0
  159. package/dist/components/energy-breakdown.js +79 -0
  160. package/dist/components/energy-breakdown.js.map +1 -0
  161. package/dist/components/energy-history-chart.cjs +63 -0
  162. package/dist/components/energy-history-chart.cjs.map +1 -0
  163. package/dist/components/energy-history-chart.d.cts +64 -0
  164. package/dist/components/energy-history-chart.d.ts +64 -0
  165. package/dist/components/energy-history-chart.js +62 -0
  166. package/dist/components/energy-history-chart.js.map +1 -0
  167. package/dist/components/feed-in-hero.cjs +55 -0
  168. package/dist/components/feed-in-hero.cjs.map +1 -0
  169. package/dist/components/feed-in-hero.d.cts +32 -0
  170. package/dist/components/feed-in-hero.d.ts +32 -0
  171. package/dist/components/feed-in-hero.js +51 -0
  172. package/dist/components/feed-in-hero.js.map +1 -0
  173. package/dist/components/field.cjs +257 -0
  174. package/dist/components/field.cjs.map +1 -0
  175. package/dist/components/field.d.cts +103 -0
  176. package/dist/components/field.d.ts +103 -0
  177. package/dist/components/field.js +243 -0
  178. package/dist/components/field.js.map +1 -0
  179. package/dist/components/icon.cjs +35 -0
  180. package/dist/components/icon.cjs.map +1 -0
  181. package/dist/components/icon.d.cts +26 -0
  182. package/dist/components/icon.d.ts +26 -0
  183. package/dist/components/icon.js +32 -0
  184. package/dist/components/icon.js.map +1 -0
  185. package/dist/components/info-block.cjs +75 -0
  186. package/dist/components/info-block.cjs.map +1 -0
  187. package/dist/components/info-block.d.cts +19 -0
  188. package/dist/components/info-block.d.ts +19 -0
  189. package/dist/components/info-block.js +65 -0
  190. package/dist/components/info-block.js.map +1 -0
  191. package/dist/components/input-group.cjs +165 -0
  192. package/dist/components/input-group.cjs.map +1 -0
  193. package/dist/components/input-group.d.cts +27 -0
  194. package/dist/components/input-group.d.ts +27 -0
  195. package/dist/components/input-group.js +159 -0
  196. package/dist/components/input-group.js.map +1 -0
  197. package/dist/components/input-otp.cjs +112 -0
  198. package/dist/components/input-otp.cjs.map +1 -0
  199. package/dist/components/input-otp.d.cts +24 -0
  200. package/dist/components/input-otp.d.ts +24 -0
  201. package/dist/components/input-otp.js +111 -0
  202. package/dist/components/input-otp.js.map +1 -0
  203. package/dist/components/input.cjs +113 -0
  204. package/dist/components/input.cjs.map +1 -0
  205. package/dist/components/input.d.cts +14 -0
  206. package/dist/components/input.d.ts +14 -0
  207. package/dist/components/input.js +110 -0
  208. package/dist/components/input.js.map +1 -0
  209. package/dist/components/label.cjs +18 -0
  210. package/dist/components/label.cjs.map +1 -0
  211. package/dist/components/label.d.cts +10 -0
  212. package/dist/components/label.d.ts +10 -0
  213. package/dist/components/label.js +15 -0
  214. package/dist/components/label.js.map +1 -0
  215. package/dist/components/layout.cjs +14 -0
  216. package/dist/components/layout.cjs.map +1 -0
  217. package/dist/components/layout.d.cts +11 -0
  218. package/dist/components/layout.d.ts +12 -0
  219. package/dist/components/layout.js +14 -0
  220. package/dist/components/layout.js.map +1 -0
  221. package/dist/components/line-chart.cjs +538 -0
  222. package/dist/components/line-chart.cjs.map +1 -0
  223. package/dist/components/line-chart.d.cts +90 -0
  224. package/dist/components/line-chart.d.ts +90 -0
  225. package/dist/components/line-chart.js +536 -0
  226. package/dist/components/line-chart.js.map +1 -0
  227. package/dist/components/list.cjs +132 -0
  228. package/dist/components/list.cjs.map +1 -0
  229. package/dist/components/list.d.cts +71 -0
  230. package/dist/components/list.d.ts +71 -0
  231. package/dist/components/list.js +122 -0
  232. package/dist/components/list.js.map +1 -0
  233. package/dist/components/marker.cjs +52 -0
  234. package/dist/components/marker.cjs.map +1 -0
  235. package/dist/components/marker.d.cts +27 -0
  236. package/dist/components/marker.d.ts +27 -0
  237. package/dist/components/marker.js +46 -0
  238. package/dist/components/marker.js.map +1 -0
  239. package/dist/components/message-scroller.cjs +73 -0
  240. package/dist/components/message-scroller.cjs.map +1 -0
  241. package/dist/components/message-scroller.d.cts +38 -0
  242. package/dist/components/message-scroller.d.ts +38 -0
  243. package/dist/components/message-scroller.js +62 -0
  244. package/dist/components/message-scroller.js.map +1 -0
  245. package/dist/components/message.cjs +60 -0
  246. package/dist/components/message.cjs.map +1 -0
  247. package/dist/components/message.d.cts +35 -0
  248. package/dist/components/message.d.ts +35 -0
  249. package/dist/components/message.js +52 -0
  250. package/dist/components/message.js.map +1 -0
  251. package/dist/components/metering-row.cjs +42 -0
  252. package/dist/components/metering-row.cjs.map +1 -0
  253. package/dist/components/metering-row.d.cts +31 -0
  254. package/dist/components/metering-row.d.ts +31 -0
  255. package/dist/components/metering-row.js +38 -0
  256. package/dist/components/metering-row.js.map +1 -0
  257. package/dist/components/money-saved-block.cjs +86 -0
  258. package/dist/components/money-saved-block.cjs.map +1 -0
  259. package/dist/components/money-saved-block.d.cts +55 -0
  260. package/dist/components/money-saved-block.d.ts +55 -0
  261. package/dist/components/money-saved-block.js +79 -0
  262. package/dist/components/money-saved-block.js.map +1 -0
  263. package/dist/components/number-flow.cjs +44 -0
  264. package/dist/components/number-flow.cjs.map +1 -0
  265. package/dist/components/number-flow.d.cts +4 -0
  266. package/dist/components/number-flow.d.ts +4 -0
  267. package/dist/components/number-flow.js +42 -0
  268. package/dist/components/number-flow.js.map +1 -0
  269. package/dist/components/on-off-button.cjs +35 -0
  270. package/dist/components/on-off-button.cjs.map +1 -0
  271. package/dist/components/on-off-button.d.cts +18 -0
  272. package/dist/components/on-off-button.d.ts +18 -0
  273. package/dist/components/on-off-button.js +34 -0
  274. package/dist/components/on-off-button.js.map +1 -0
  275. package/dist/components/onboarding-layout.cjs +67 -0
  276. package/dist/components/onboarding-layout.cjs.map +1 -0
  277. package/dist/components/onboarding-layout.d.cts +44 -0
  278. package/dist/components/onboarding-layout.d.ts +44 -0
  279. package/dist/components/onboarding-layout.js +60 -0
  280. package/dist/components/onboarding-layout.js.map +1 -0
  281. package/dist/components/page-header.cjs +50 -0
  282. package/dist/components/page-header.cjs.map +1 -0
  283. package/dist/components/page-header.d.cts +25 -0
  284. package/dist/components/page-header.d.ts +25 -0
  285. package/dist/components/page-header.js +44 -0
  286. package/dist/components/page-header.js.map +1 -0
  287. package/dist/components/page-spinner.cjs +18 -0
  288. package/dist/components/page-spinner.cjs.map +1 -0
  289. package/dist/components/page-spinner.d.cts +12 -0
  290. package/dist/components/page-spinner.d.ts +12 -0
  291. package/dist/components/page-spinner.js +17 -0
  292. package/dist/components/page-spinner.js.map +1 -0
  293. package/dist/components/period-tabs.cjs +78 -0
  294. package/dist/components/period-tabs.cjs.map +1 -0
  295. package/dist/components/period-tabs.d.cts +50 -0
  296. package/dist/components/period-tabs.d.ts +50 -0
  297. package/dist/components/period-tabs.js +73 -0
  298. package/dist/components/period-tabs.js.map +1 -0
  299. package/dist/components/pill.cjs +62 -0
  300. package/dist/components/pill.cjs.map +1 -0
  301. package/dist/components/pill.d.cts +29 -0
  302. package/dist/components/pill.d.ts +29 -0
  303. package/dist/components/pill.js +59 -0
  304. package/dist/components/pill.js.map +1 -0
  305. package/dist/components/popover.cjs +62 -0
  306. package/dist/components/popover.cjs.map +1 -0
  307. package/dist/components/popover.d.cts +28 -0
  308. package/dist/components/popover.d.ts +28 -0
  309. package/dist/components/popover.js +56 -0
  310. package/dist/components/popover.js.map +1 -0
  311. package/dist/components/power-history-chart.cjs +498 -0
  312. package/dist/components/power-history-chart.cjs.map +1 -0
  313. package/dist/components/power-history-chart.d.cts +71 -0
  314. package/dist/components/power-history-chart.d.ts +71 -0
  315. package/dist/components/power-history-chart.js +496 -0
  316. package/dist/components/power-history-chart.js.map +1 -0
  317. package/dist/components/power-history.cjs +114 -0
  318. package/dist/components/power-history.cjs.map +1 -0
  319. package/dist/components/power-history.d.cts +40 -0
  320. package/dist/components/power-history.d.ts +41 -0
  321. package/dist/components/power-history.js +114 -0
  322. package/dist/components/power-history.js.map +1 -0
  323. package/dist/components/power-network.cjs +562 -0
  324. package/dist/components/power-network.cjs.map +1 -0
  325. package/dist/components/power-network.d.cts +80 -0
  326. package/dist/components/power-network.d.ts +80 -0
  327. package/dist/components/power-network.js +556 -0
  328. package/dist/components/power-network.js.map +1 -0
  329. package/dist/components/progress.cjs +34 -0
  330. package/dist/components/progress.cjs.map +1 -0
  331. package/dist/components/progress.d.cts +17 -0
  332. package/dist/components/progress.d.ts +17 -0
  333. package/dist/components/progress.js +31 -0
  334. package/dist/components/progress.js.map +1 -0
  335. package/dist/components/radio-card-group.cjs +94 -0
  336. package/dist/components/radio-card-group.cjs.map +1 -0
  337. package/dist/components/radio-card-group.d.cts +21 -0
  338. package/dist/components/radio-card-group.d.ts +21 -0
  339. package/dist/components/radio-card-group.js +90 -0
  340. package/dist/components/radio-card-group.js.map +1 -0
  341. package/dist/components/radio.cjs +41 -0
  342. package/dist/components/radio.cjs.map +1 -0
  343. package/dist/components/radio.d.cts +32 -0
  344. package/dist/components/radio.d.ts +32 -0
  345. package/dist/components/radio.js +37 -0
  346. package/dist/components/radio.js.map +1 -0
  347. package/dist/components/reparent.cjs +55 -0
  348. package/dist/components/reparent.cjs.map +1 -0
  349. package/dist/components/reparent.d.cts +28 -0
  350. package/dist/components/reparent.d.ts +28 -0
  351. package/dist/components/reparent.js +49 -0
  352. package/dist/components/reparent.js.map +1 -0
  353. package/dist/components/sankey-chart.cjs +187 -0
  354. package/dist/components/sankey-chart.cjs.map +1 -0
  355. package/dist/components/sankey-chart.d.cts +66 -0
  356. package/dist/components/sankey-chart.d.ts +66 -0
  357. package/dist/components/sankey-chart.js +185 -0
  358. package/dist/components/sankey-chart.js.map +1 -0
  359. package/dist/components/schedule-editor.cjs +82 -0
  360. package/dist/components/schedule-editor.cjs.map +1 -0
  361. package/dist/components/schedule-editor.d.cts +25 -0
  362. package/dist/components/schedule-editor.d.ts +25 -0
  363. package/dist/components/schedule-editor.js +72 -0
  364. package/dist/components/schedule-editor.js.map +1 -0
  365. package/dist/components/schedule-list.cjs +110 -0
  366. package/dist/components/schedule-list.cjs.map +1 -0
  367. package/dist/components/schedule-list.d.cts +29 -0
  368. package/dist/components/schedule-list.d.ts +29 -0
  369. package/dist/components/schedule-list.js +99 -0
  370. package/dist/components/schedule-list.js.map +1 -0
  371. package/dist/components/scroll-area.cjs +53 -0
  372. package/dist/components/scroll-area.cjs.map +1 -0
  373. package/dist/components/scroll-area.d.cts +24 -0
  374. package/dist/components/scroll-area.d.ts +24 -0
  375. package/dist/components/scroll-area.js +44 -0
  376. package/dist/components/scroll-area.js.map +1 -0
  377. package/dist/components/segmented-control.cjs +44 -0
  378. package/dist/components/segmented-control.cjs.map +1 -0
  379. package/dist/components/segmented-control.d.cts +32 -0
  380. package/dist/components/segmented-control.d.ts +32 -0
  381. package/dist/components/segmented-control.js +40 -0
  382. package/dist/components/segmented-control.js.map +1 -0
  383. package/dist/components/select.cjs +136 -0
  384. package/dist/components/select.cjs.map +1 -0
  385. package/dist/components/select.d.cts +62 -0
  386. package/dist/components/select.d.ts +62 -0
  387. package/dist/components/select.js +124 -0
  388. package/dist/components/select.js.map +1 -0
  389. package/dist/components/separator.cjs +38 -0
  390. package/dist/components/separator.cjs.map +1 -0
  391. package/dist/components/separator.d.cts +13 -0
  392. package/dist/components/separator.d.ts +13 -0
  393. package/dist/components/separator.js +35 -0
  394. package/dist/components/separator.js.map +1 -0
  395. package/dist/components/series-legend.cjs +38 -0
  396. package/dist/components/series-legend.cjs.map +1 -0
  397. package/dist/components/series-legend.d.cts +29 -0
  398. package/dist/components/series-legend.d.ts +29 -0
  399. package/dist/components/series-legend.js +37 -0
  400. package/dist/components/series-legend.js.map +1 -0
  401. package/dist/components/sheet.cjs +102 -0
  402. package/dist/components/sheet.cjs.map +1 -0
  403. package/dist/components/sheet.d.cts +45 -0
  404. package/dist/components/sheet.d.ts +45 -0
  405. package/dist/components/sheet.js +90 -0
  406. package/dist/components/sheet.js.map +1 -0
  407. package/dist/components/skeleton.cjs +23 -0
  408. package/dist/components/skeleton.cjs.map +1 -0
  409. package/dist/components/skeleton.d.cts +23 -0
  410. package/dist/components/skeleton.d.ts +23 -0
  411. package/dist/components/skeleton.js +21 -0
  412. package/dist/components/skeleton.js.map +1 -0
  413. package/dist/components/slider.cjs +263 -0
  414. package/dist/components/slider.cjs.map +1 -0
  415. package/dist/components/slider.d.cts +136 -0
  416. package/dist/components/slider.d.ts +136 -0
  417. package/dist/components/slider.js +253 -0
  418. package/dist/components/slider.js.map +1 -0
  419. package/dist/components/smart-toggle-button.cjs +27 -0
  420. package/dist/components/smart-toggle-button.cjs.map +1 -0
  421. package/dist/components/smart-toggle-button.d.cts +16 -0
  422. package/dist/components/smart-toggle-button.d.ts +16 -0
  423. package/dist/components/smart-toggle-button.js +26 -0
  424. package/dist/components/smart-toggle-button.js.map +1 -0
  425. package/dist/components/solar-forecast-chart.cjs +109 -0
  426. package/dist/components/solar-forecast-chart.cjs.map +1 -0
  427. package/dist/components/solar-forecast-chart.d.cts +77 -0
  428. package/dist/components/solar-forecast-chart.d.ts +77 -0
  429. package/dist/components/solar-forecast-chart.js +104 -0
  430. package/dist/components/solar-forecast-chart.js.map +1 -0
  431. package/dist/components/sortable-list.cjs +68 -0
  432. package/dist/components/sortable-list.cjs.map +1 -0
  433. package/dist/components/sortable-list.d.cts +45 -0
  434. package/dist/components/sortable-list.d.ts +45 -0
  435. package/dist/components/sortable-list.js +67 -0
  436. package/dist/components/sortable-list.js.map +1 -0
  437. package/dist/components/spinner.cjs +42 -0
  438. package/dist/components/spinner.cjs.map +1 -0
  439. package/dist/components/spinner.d.cts +15 -0
  440. package/dist/components/spinner.d.ts +15 -0
  441. package/dist/components/spinner.js +39 -0
  442. package/dist/components/spinner.js.map +1 -0
  443. package/dist/components/stat-card.cjs +57 -0
  444. package/dist/components/stat-card.cjs.map +1 -0
  445. package/dist/components/stat-card.d.cts +34 -0
  446. package/dist/components/stat-card.d.ts +34 -0
  447. package/dist/components/stat-card.js +50 -0
  448. package/dist/components/stat-card.js.map +1 -0
  449. package/dist/components/stepper.cjs +79 -0
  450. package/dist/components/stepper.cjs.map +1 -0
  451. package/dist/components/stepper.d.cts +33 -0
  452. package/dist/components/stepper.d.ts +33 -0
  453. package/dist/components/stepper.js +76 -0
  454. package/dist/components/stepper.js.map +1 -0
  455. package/dist/components/switch.cjs +26 -0
  456. package/dist/components/switch.cjs.map +1 -0
  457. package/dist/components/switch.d.cts +32 -0
  458. package/dist/components/switch.d.ts +32 -0
  459. package/dist/components/switch.js +25 -0
  460. package/dist/components/switch.js.map +1 -0
  461. package/dist/components/tabs.cjs +178 -0
  462. package/dist/components/tabs.cjs.map +1 -0
  463. package/dist/components/tabs.d.cts +44 -0
  464. package/dist/components/tabs.d.ts +44 -0
  465. package/dist/components/tabs.js +170 -0
  466. package/dist/components/tabs.js.map +1 -0
  467. package/dist/components/textarea.cjs +128 -0
  468. package/dist/components/textarea.cjs.map +1 -0
  469. package/dist/components/textarea.d.cts +15 -0
  470. package/dist/components/textarea.d.ts +15 -0
  471. package/dist/components/textarea.js +125 -0
  472. package/dist/components/textarea.js.map +1 -0
  473. package/dist/components/theme.cjs +122 -0
  474. package/dist/components/theme.cjs.map +1 -0
  475. package/dist/components/theme.d.cts +36 -0
  476. package/dist/components/theme.d.ts +36 -0
  477. package/dist/components/theme.js +118 -0
  478. package/dist/components/theme.js.map +1 -0
  479. package/dist/components/thumbnail.cjs +54 -0
  480. package/dist/components/thumbnail.cjs.map +1 -0
  481. package/dist/components/thumbnail.d.cts +33 -0
  482. package/dist/components/thumbnail.d.ts +33 -0
  483. package/dist/components/thumbnail.js +51 -0
  484. package/dist/components/thumbnail.js.map +1 -0
  485. package/dist/components/time-picker.cjs +105 -0
  486. package/dist/components/time-picker.cjs.map +1 -0
  487. package/dist/components/time-picker.d.cts +43 -0
  488. package/dist/components/time-picker.d.ts +43 -0
  489. package/dist/components/time-picker.js +101 -0
  490. package/dist/components/time-picker.js.map +1 -0
  491. package/dist/components/toast.cjs +192 -0
  492. package/dist/components/toast.cjs.map +1 -0
  493. package/dist/components/toast.d.cts +59 -0
  494. package/dist/components/toast.d.ts +59 -0
  495. package/dist/components/toast.js +188 -0
  496. package/dist/components/toast.js.map +1 -0
  497. package/dist/components/tooltip.cjs +85 -0
  498. package/dist/components/tooltip.cjs.map +1 -0
  499. package/dist/components/tooltip.d.cts +48 -0
  500. package/dist/components/tooltip.d.ts +48 -0
  501. package/dist/components/tooltip.js +77 -0
  502. package/dist/components/tooltip.js.map +1 -0
  503. package/dist/components/typography.cjs +51 -0
  504. package/dist/components/typography.cjs.map +1 -0
  505. package/dist/components/typography.d.cts +30 -0
  506. package/dist/components/typography.d.ts +30 -0
  507. package/dist/components/typography.js +45 -0
  508. package/dist/components/typography.js.map +1 -0
  509. package/dist/generate-radix-colors-Bw-RYaV4.d.cts +33 -0
  510. package/dist/generate-radix-colors-Bw-RYaV4.d.ts +33 -0
  511. package/dist/hooks/use-chart-zoom.cjs +236 -0
  512. package/dist/hooks/use-chart-zoom.cjs.map +1 -0
  513. package/dist/hooks/use-chart-zoom.d.cts +53 -0
  514. package/dist/hooks/use-chart-zoom.d.ts +53 -0
  515. package/dist/hooks/use-chart-zoom.js +234 -0
  516. package/dist/hooks/use-chart-zoom.js.map +1 -0
  517. package/dist/hooks/use-container-width.cjs +21 -0
  518. package/dist/hooks/use-container-width.cjs.map +1 -0
  519. package/dist/hooks/use-container-width.d.cts +7 -0
  520. package/dist/hooks/use-container-width.d.ts +7 -0
  521. package/dist/hooks/use-container-width.js +20 -0
  522. package/dist/hooks/use-container-width.js.map +1 -0
  523. package/dist/hooks/use-reduced-motion.cjs +21 -0
  524. package/dist/hooks/use-reduced-motion.cjs.map +1 -0
  525. package/dist/hooks/use-reduced-motion.d.cts +7 -0
  526. package/dist/hooks/use-reduced-motion.d.ts +7 -0
  527. package/dist/hooks/use-reduced-motion.js +20 -0
  528. package/dist/hooks/use-reduced-motion.js.map +1 -0
  529. package/dist/icons/index.cjs +7 -0
  530. package/dist/icons/index.d.cts +4 -0
  531. package/dist/icons/index.d.ts +4 -0
  532. package/dist/icons/index.js +3 -0
  533. package/dist/icons/material-symbol.cjs +104 -0
  534. package/dist/icons/material-symbol.cjs.map +1 -0
  535. package/dist/icons/material-symbol.d.cts +21 -0
  536. package/dist/icons/material-symbol.d.ts +21 -0
  537. package/dist/icons/material-symbol.js +100 -0
  538. package/dist/icons/material-symbol.js.map +1 -0
  539. package/dist/lib/accent-colors.cjs +14 -0
  540. package/dist/lib/accent-colors.cjs.map +1 -0
  541. package/dist/lib/accent-colors.d.cts +8 -0
  542. package/dist/lib/accent-colors.d.ts +8 -0
  543. package/dist/lib/accent-colors.js +13 -0
  544. package/dist/lib/accent-colors.js.map +1 -0
  545. package/dist/lib/accent-theme.cjs +130 -0
  546. package/dist/lib/accent-theme.cjs.map +1 -0
  547. package/dist/lib/accent-theme.d.cts +35 -0
  548. package/dist/lib/accent-theme.d.ts +35 -0
  549. package/dist/lib/accent-theme.js +122 -0
  550. package/dist/lib/accent-theme.js.map +1 -0
  551. package/dist/lib/generate-radix-colors.cjs +364 -0
  552. package/dist/lib/generate-radix-colors.cjs.map +1 -0
  553. package/dist/lib/generate-radix-colors.d.cts +4 -0
  554. package/dist/lib/generate-radix-colors.d.ts +4 -0
  555. package/dist/lib/generate-radix-colors.js +357 -0
  556. package/dist/lib/generate-radix-colors.js.map +1 -0
  557. package/dist/lib/input-box-variants.cjs +30 -0
  558. package/dist/lib/input-box-variants.cjs.map +1 -0
  559. package/dist/lib/input-box-variants.d.cts +10 -0
  560. package/dist/lib/input-box-variants.d.ts +10 -0
  561. package/dist/lib/input-box-variants.js +28 -0
  562. package/dist/lib/input-box-variants.js.map +1 -0
  563. package/dist/lib/theme-types.cjs +1 -0
  564. package/dist/lib/theme-types.d.cts +4 -0
  565. package/dist/lib/theme-types.d.ts +4 -0
  566. package/dist/lib/theme-types.js +2 -0
  567. package/dist/lib/tones.cjs +14 -0
  568. package/dist/lib/tones.cjs.map +1 -0
  569. package/dist/lib/tones.d.cts +8 -0
  570. package/dist/lib/tones.d.ts +8 -0
  571. package/dist/lib/tones.js +13 -0
  572. package/dist/lib/tones.js.map +1 -0
  573. package/dist/number-flow-Bch81ixZ.d.cts +14 -0
  574. package/dist/number-flow-Bch81ixZ.d.ts +14 -0
  575. package/dist/styles/index.css +447 -0
  576. package/dist/styles/internal.css +5 -0
  577. package/dist/styles/material-symbol.css +22 -0
  578. package/dist/styles/spark-default.css +980 -0
  579. package/dist/styles/theme.css +623 -0
  580. package/dist/styles/utilities.css +557 -0
  581. package/dist/theme-types-8wjgiNA_.d.cts +29 -0
  582. package/dist/theme-types-8wjgiNA_.d.ts +29 -0
  583. package/dist/utils/build-sankey-nodes.cjs +72 -0
  584. package/dist/utils/build-sankey-nodes.cjs.map +1 -0
  585. package/dist/utils/build-sankey-nodes.d.cts +27 -0
  586. package/dist/utils/build-sankey-nodes.d.ts +27 -0
  587. package/dist/utils/build-sankey-nodes.js +71 -0
  588. package/dist/utils/build-sankey-nodes.js.map +1 -0
  589. package/dist/utils/chars.cjs +18 -0
  590. package/dist/utils/chars.cjs.map +1 -0
  591. package/dist/utils/chars.d.cts +10 -0
  592. package/dist/utils/chars.d.ts +10 -0
  593. package/dist/utils/chars.js +14 -0
  594. package/dist/utils/chars.js.map +1 -0
  595. package/dist/utils/chart-scale.cjs +54 -0
  596. package/dist/utils/chart-scale.cjs.map +1 -0
  597. package/dist/utils/chart-scale.d.cts +29 -0
  598. package/dist/utils/chart-scale.d.ts +29 -0
  599. package/dist/utils/chart-scale.js +51 -0
  600. package/dist/utils/chart-scale.js.map +1 -0
  601. package/dist/utils/chart-time-ticks.cjs +35 -0
  602. package/dist/utils/chart-time-ticks.cjs.map +1 -0
  603. package/dist/utils/chart-time-ticks.d.cts +7 -0
  604. package/dist/utils/chart-time-ticks.d.ts +7 -0
  605. package/dist/utils/chart-time-ticks.js +34 -0
  606. package/dist/utils/chart-time-ticks.js.map +1 -0
  607. package/dist/utils/chart-zoom.cjs +84 -0
  608. package/dist/utils/chart-zoom.cjs.map +1 -0
  609. package/dist/utils/chart-zoom.d.cts +14 -0
  610. package/dist/utils/chart-zoom.d.ts +14 -0
  611. package/dist/utils/chart-zoom.js +77 -0
  612. package/dist/utils/chart-zoom.js.map +1 -0
  613. package/dist/utils/cn.cjs +9 -0
  614. package/dist/utils/cn.d.cts +4 -0
  615. package/dist/utils/cn.d.ts +4 -0
  616. package/dist/utils/cn.js +3 -0
  617. package/dist/utils/date-mask.cjs +45 -0
  618. package/dist/utils/date-mask.cjs.map +1 -0
  619. package/dist/utils/date-mask.d.cts +17 -0
  620. package/dist/utils/date-mask.d.ts +17 -0
  621. package/dist/utils/date-mask.js +41 -0
  622. package/dist/utils/date-mask.js.map +1 -0
  623. package/dist/utils/format.cjs +57 -0
  624. package/dist/utils/format.cjs.map +1 -0
  625. package/dist/utils/format.d.cts +23 -0
  626. package/dist/utils/format.d.ts +23 -0
  627. package/dist/utils/format.js +47 -0
  628. package/dist/utils/format.js.map +1 -0
  629. package/package.json +109 -0
@@ -0,0 +1,70 @@
1
+ "use client";
2
+
3
+ import { MaterialSymbolIconName } from "../icons/material-symbol.js";
4
+ import { Tone } from "../lib/tones.js";
5
+ import * as React$1 from "react";
6
+
7
+ //#region src/components/device-card.d.ts
8
+ declare const DeviceCard: ({
9
+ className,
10
+ ...rest
11
+ }: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
12
+ declare const DeviceCardBody: ({
13
+ className,
14
+ active,
15
+ ...rest
16
+ }: React$1.ComponentProps<"button"> & {
17
+ active?: boolean;
18
+ }) => import("react/jsx-runtime").JSX.Element;
19
+ declare const DeviceCardHeader: ({
20
+ className,
21
+ ...rest
22
+ }: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
23
+ declare const DeviceCardMeters: ({
24
+ className,
25
+ ...rest
26
+ }: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
27
+ declare const DeviceCardIcon: ({
28
+ className,
29
+ icon,
30
+ tone,
31
+ ...rest
32
+ }: React$1.ComponentProps<"span"> & {
33
+ icon: MaterialSymbolIconName;
34
+ tone?: Tone;
35
+ }) => import("react/jsx-runtime").JSX.Element;
36
+ declare const DeviceCardTitleColumn: ({
37
+ className,
38
+ ...rest
39
+ }: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
40
+ declare const DeviceCardTitle: ({
41
+ className,
42
+ ...rest
43
+ }: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
44
+ declare const DeviceCardState: ({
45
+ className,
46
+ tone,
47
+ children,
48
+ ...rest
49
+ }: React$1.ComponentProps<"span"> & {
50
+ tone?: Tone;
51
+ }) => import("react/jsx-runtime").JSX.Element;
52
+ declare const DeviceCardDetail: ({
53
+ className,
54
+ ...rest
55
+ }: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
56
+ declare const DeviceCardPower: ({
57
+ className,
58
+ ...rest
59
+ }: React$1.ComponentProps<"span">) => import("react/jsx-runtime").JSX.Element;
60
+ declare const DeviceCardControls: ({
61
+ className,
62
+ ...rest
63
+ }: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
64
+ declare const DeviceCardFooter: ({
65
+ className,
66
+ ...rest
67
+ }: React$1.ComponentProps<"div">) => import("react/jsx-runtime").JSX.Element;
68
+ //#endregion
69
+ export { DeviceCard, DeviceCardBody, DeviceCardControls, DeviceCardDetail, DeviceCardFooter, DeviceCardHeader, DeviceCardIcon, DeviceCardMeters, DeviceCardPower, DeviceCardState, DeviceCardTitle, DeviceCardTitleColumn };
70
+ //# sourceMappingURL=device-card.d.ts.map
@@ -0,0 +1,104 @@
1
+ "use client";
2
+ import { cn } from "../utils/cn.js";
3
+ import { MaterialSymbol } from "../icons/material-symbol.js";
4
+ import "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { cva } from "class-variance-authority";
7
+ //#region src/components/device-card.tsx
8
+ const DeviceCard = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
9
+ className: cn("flex flex-col overflow-hidden rounded-2xl border border-gray bg-(--spark-background)", className),
10
+ ...rest
11
+ });
12
+ const DeviceCardBody = ({ className, active, ...rest }) => /* @__PURE__ */ jsx("button", {
13
+ type: "button",
14
+ className: cn("flex w-full cursor-pointer flex-col gap-3 p-4 text-left transition-colors hover:bg-gray-a2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent-focus", active && "bg-linear-to-br from-spark-9/10 to-spark-1/5 to-20%", className),
15
+ ...rest
16
+ });
17
+ const DeviceCardHeader = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
18
+ className: cn("flex w-full items-center gap-3", className),
19
+ ...rest
20
+ });
21
+ const DeviceCardMeters = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
22
+ className: cn("flex flex-col gap-2 border-t border-gray pt-3", className),
23
+ ...rest
24
+ });
25
+ const iconToneVariants = cva("flex size-11 shrink-0 items-center justify-center rounded-xl", {
26
+ variants: { tone: {
27
+ success: "bg-base-success-soft text-success",
28
+ warning: "bg-base-warning-soft text-warning",
29
+ error: "bg-base-error-soft text-error",
30
+ accent: "bg-base-accent-soft text-accent",
31
+ neutral: "bg-base-gray-soft text-gray"
32
+ } },
33
+ defaultVariants: { tone: "neutral" }
34
+ });
35
+ const DeviceCardIcon = ({ className, icon, tone, ...rest }) => /* @__PURE__ */ jsx("span", {
36
+ className: iconToneVariants({
37
+ tone,
38
+ className
39
+ }),
40
+ ...rest,
41
+ children: /* @__PURE__ */ jsx(MaterialSymbol, {
42
+ className: "text-[18px]",
43
+ name: icon
44
+ })
45
+ });
46
+ const DeviceCardTitleColumn = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
47
+ className: cn("flex min-w-0 flex-1 flex-col gap-0.5", className),
48
+ ...rest
49
+ });
50
+ const DeviceCardTitle = ({ className, ...rest }) => /* @__PURE__ */ jsx("span", {
51
+ className: cn("truncate text-sm font-bold text-gray", className),
52
+ ...rest
53
+ });
54
+ const stateToneVariants = cva("inline-flex items-center gap-1.5 text-xs font-medium", {
55
+ variants: { tone: {
56
+ success: "text-success",
57
+ warning: "text-warning",
58
+ error: "text-error",
59
+ accent: "text-accent",
60
+ neutral: "text-gray-light"
61
+ } },
62
+ defaultVariants: { tone: "neutral" }
63
+ });
64
+ const dotToneVariants = cva("size-1.5 shrink-0 rounded-full", {
65
+ variants: { tone: {
66
+ success: "bg-base-success-solid",
67
+ warning: "bg-base-warning-solid",
68
+ error: "bg-base-error-solid",
69
+ accent: "bg-base-accent-solid",
70
+ neutral: "bg-base-gray-solid"
71
+ } },
72
+ defaultVariants: { tone: "neutral" }
73
+ });
74
+ const DeviceCardState = ({ className, tone, children, ...rest }) => /* @__PURE__ */ jsxs("span", {
75
+ className: stateToneVariants({
76
+ tone,
77
+ className
78
+ }),
79
+ ...rest,
80
+ children: [/* @__PURE__ */ jsx("span", { className: dotToneVariants({ tone }) }), /* @__PURE__ */ jsx("span", {
81
+ className: "truncate",
82
+ children
83
+ })]
84
+ });
85
+ const DeviceCardDetail = ({ className, ...rest }) => /* @__PURE__ */ jsx("span", {
86
+ className: cn("truncate text-xs text-gray-light tabular-nums", className),
87
+ ...rest
88
+ });
89
+ const DeviceCardPower = ({ className, ...rest }) => /* @__PURE__ */ jsx("span", {
90
+ className: cn("ms-2 shrink-0 self-center text-lg leading-tight font-bold text-gray tabular-nums", className),
91
+ ...rest
92
+ });
93
+ const DeviceCardControls = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
94
+ className: cn("flex items-center gap-3 border-t border-gray bg-base-gray-surface px-4 py-3", className),
95
+ ...rest
96
+ });
97
+ const DeviceCardFooter = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
98
+ className: cn("flex items-center justify-center gap-1.5 border-t border-gray bg-base-gray-surface px-4 py-2 text-xs text-gray-light", className),
99
+ ...rest
100
+ });
101
+ //#endregion
102
+ export { DeviceCard, DeviceCardBody, DeviceCardControls, DeviceCardDetail, DeviceCardFooter, DeviceCardHeader, DeviceCardIcon, DeviceCardMeters, DeviceCardPower, DeviceCardState, DeviceCardTitle, DeviceCardTitleColumn };
103
+
104
+ //# sourceMappingURL=device-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-card.js","names":[],"sources":["../../src/components/device-card.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport * as React from 'react'\nimport {\n MaterialSymbol,\n type MaterialSymbolIconName,\n} from '../icons/material-symbol'\nimport type { Tone } from '../lib/tones'\nimport { cn } from '../utils/cn'\n\nconst DeviceCard = ({ className, ...rest }: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex flex-col overflow-hidden rounded-2xl border border-gray bg-(--spark-background)',\n className,\n )}\n {...rest}\n />\n)\n\nconst DeviceCardBody = ({\n className,\n active,\n ...rest\n}: React.ComponentProps<'button'> & { active?: boolean }) => (\n <button\n type=\"button\"\n className={cn(\n 'flex w-full cursor-pointer flex-col gap-3 p-4 text-left transition-colors hover:bg-gray-a2 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-accent-focus',\n active && 'bg-linear-to-br from-spark-9/10 to-spark-1/5 to-20%',\n className,\n )}\n {...rest}\n />\n)\n\nconst DeviceCardHeader = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div className={cn('flex w-full items-center gap-3', className)} {...rest} />\n)\n\nconst DeviceCardMeters = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn('flex flex-col gap-2 border-t border-gray pt-3', className)}\n {...rest}\n />\n)\n\nconst iconToneVariants = cva(\n 'flex size-11 shrink-0 items-center justify-center rounded-xl',\n {\n variants: {\n tone: {\n success: 'bg-base-success-soft text-success',\n warning: 'bg-base-warning-soft text-warning',\n error: 'bg-base-error-soft text-error',\n accent: 'bg-base-accent-soft text-accent',\n neutral: 'bg-base-gray-soft text-gray',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n)\n\nconst DeviceCardIcon = ({\n className,\n icon,\n tone,\n ...rest\n}: React.ComponentProps<'span'> & {\n icon: MaterialSymbolIconName\n tone?: Tone\n}) => (\n <span className={iconToneVariants({ tone, className })} {...rest}>\n <MaterialSymbol className=\"text-[18px]\" name={icon} />\n </span>\n)\n\nconst DeviceCardTitleColumn = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn('flex min-w-0 flex-1 flex-col gap-0.5', className)}\n {...rest}\n />\n)\n\nconst DeviceCardTitle = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn('truncate text-sm font-bold text-gray', className)}\n {...rest}\n />\n)\n\nconst stateToneVariants = cva(\n 'inline-flex items-center gap-1.5 text-xs font-medium',\n {\n variants: {\n tone: {\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error',\n accent: 'text-accent',\n neutral: 'text-gray-light',\n },\n },\n defaultVariants: { tone: 'neutral' },\n },\n)\n\nconst dotToneVariants = cva('size-1.5 shrink-0 rounded-full', {\n variants: {\n tone: {\n success: 'bg-base-success-solid',\n warning: 'bg-base-warning-solid',\n error: 'bg-base-error-solid',\n accent: 'bg-base-accent-solid',\n neutral: 'bg-base-gray-solid',\n },\n },\n defaultVariants: { tone: 'neutral' },\n})\n\nconst DeviceCardState = ({\n className,\n tone,\n children,\n ...rest\n}: React.ComponentProps<'span'> & { tone?: Tone }) => (\n <span className={stateToneVariants({ tone, className })} {...rest}>\n <span className={dotToneVariants({ tone })} />\n <span className=\"truncate\">{children}</span>\n </span>\n)\n\nconst DeviceCardDetail = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn('truncate text-xs text-gray-light tabular-nums', className)}\n {...rest}\n />\n)\n\nconst DeviceCardPower = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => (\n <span\n className={cn(\n 'ms-2 shrink-0 self-center text-lg leading-tight font-bold text-gray tabular-nums',\n className,\n )}\n {...rest}\n />\n)\n\nconst DeviceCardControls = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex items-center gap-3 border-t border-gray bg-base-gray-surface px-4 py-3',\n className,\n )}\n {...rest}\n />\n)\n\nconst DeviceCardFooter = ({\n className,\n ...rest\n}: React.ComponentProps<'div'>) => (\n <div\n className={cn(\n 'flex items-center justify-center gap-1.5 border-t border-gray bg-base-gray-surface px-4 py-2 text-xs text-gray-light',\n className,\n )}\n {...rest}\n />\n)\n\nexport {\n DeviceCard,\n DeviceCardBody,\n DeviceCardControls,\n DeviceCardDetail,\n DeviceCardFooter,\n DeviceCardHeader,\n DeviceCardIcon,\n DeviceCardMeters,\n DeviceCardPower,\n DeviceCardState,\n DeviceCardTitle,\n DeviceCardTitleColumn,\n}\n"],"mappings":";;;;;;;AASA,MAAM,cAAc,EAAE,WAAW,GAAG,WAClC,oBAAC,OAAD;CACE,WAAW,GACT,wFACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,kBAAkB,EACtB,WACA,QACA,GAAG,WAEH,oBAAC,UAAD;CACE,MAAK;CACL,WAAW,GACT,yLACA,UAAU,uDACV,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,OAAD;CAAK,WAAW,GAAG,kCAAkC,SAAS;CAAG,GAAI;AAAO,CAAA;AAG9E,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GAAG,iDAAiD,SAAS;CACxE,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,IACvB,gEACA;CACE,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CACF;AAEA,MAAM,kBAAkB,EACtB,WACA,MACA,MACA,GAAG,WAKH,oBAAC,QAAD;CAAM,WAAW,iBAAiB;EAAE;EAAM;CAAU,CAAC;CAAG,GAAI;WAC1D,oBAAC,gBAAD;EAAgB,WAAU;EAAc,MAAM;CAAO,CAAA;AACjD,CAAA;AAGR,MAAM,yBAAyB,EAC7B,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GAAG,wCAAwC,SAAS;CAC/D,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,EACvB,WACA,GAAG,WAEH,oBAAC,QAAD;CACE,WAAW,GAAG,wCAAwC,SAAS;CAC/D,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,IACxB,wDACA;CACE,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CACF;AAEA,MAAM,kBAAkB,IAAI,kCAAkC;CAC5D,UAAU,EACR,MAAM;EACJ,SAAS;EACT,SAAS;EACT,OAAO;EACP,QAAQ;EACR,SAAS;CACX,EACF;CACA,iBAAiB,EAAE,MAAM,UAAU;AACrC,CAAC;AAED,MAAM,mBAAmB,EACvB,WACA,MACA,UACA,GAAG,WAEH,qBAAC,QAAD;CAAM,WAAW,kBAAkB;EAAE;EAAM;CAAU,CAAC;CAAG,GAAI;WAA7D,CACE,oBAAC,QAAD,EAAM,WAAW,gBAAgB,EAAE,KAAK,CAAC,EAAI,CAAA,GAC7C,oBAAC,QAAD;EAAM,WAAU;EAAY;CAAe,CAAA,CACvC;;AAGR,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,QAAD;CACE,WAAW,GAAG,iDAAiD,SAAS;CACxE,GAAI;AACL,CAAA;AAGH,MAAM,mBAAmB,EACvB,WACA,GAAG,WAEH,oBAAC,QAAD;CACE,WAAW,GACT,oFACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,sBAAsB,EAC1B,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GACT,+EACA,SACF;CACA,GAAI;AACL,CAAA;AAGH,MAAM,oBAAoB,EACxB,WACA,GAAG,WAEH,oBAAC,OAAD;CACE,WAAW,GACT,wHACA,SACF;CACA,GAAI;AACL,CAAA"}
@@ -0,0 +1,115 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require_chunk = require("../chunk-DY84GLCh.cjs");
4
+ const require_icons_material_symbol = require("../icons/material-symbol.cjs");
5
+ const require_components_button = require("./button.cjs");
6
+ let react = require("react");
7
+ react = require_chunk.__toESM(react);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ let _base_ui_react_dialog = require("@base-ui/react/dialog");
10
+ let cnfast = require("cnfast");
11
+ //#region src/components/dialog.tsx
12
+ function isBackdropPress(event) {
13
+ const target = event?.target;
14
+ return target instanceof HTMLElement && (target.dataset.overlay === "true" || target.hasAttribute("data-base-ui-inert"));
15
+ }
16
+ function Dialog({ onOpenChange, ...props }) {
17
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Root, {
18
+ ...props,
19
+ onOpenChange: (open, eventDetails) => {
20
+ if (!open && eventDetails.reason === "outside-press" && !isBackdropPress(eventDetails.event)) {
21
+ eventDetails.cancel();
22
+ return;
23
+ }
24
+ onOpenChange?.(open, eventDetails);
25
+ }
26
+ });
27
+ }
28
+ function DialogTrigger(props) {
29
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Trigger, {
30
+ "data-slot": "dialog-trigger",
31
+ ...props
32
+ });
33
+ }
34
+ function DialogPortal(props) {
35
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Portal, {
36
+ "data-slot": "dialog-portal",
37
+ ...props
38
+ });
39
+ }
40
+ function DialogClose({ className, children, ...props }) {
41
+ if (children || props.render) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Close, {
42
+ "data-slot": "dialog-close",
43
+ className,
44
+ ...props,
45
+ children
46
+ });
47
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Close, {
48
+ "data-slot": "dialog-close",
49
+ className: (0, cnfast.cn)(require_components_button.buttonVariants({
50
+ size: "icon",
51
+ variant: "tertiary"
52
+ }), "absolute top-2.5 right-3 rounded-full", className),
53
+ ...props,
54
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_material_symbol.MaterialSymbol, {
55
+ className: "[--spark-icon-size:calc(20px*var(--spark-scaling,1))]",
56
+ name: "close"
57
+ })
58
+ });
59
+ }
60
+ function DialogOverlay({ className, ...props }) {
61
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Backdrop, {
62
+ "data-slot": "dialog-overlay",
63
+ className: (0, cnfast.cn)("fixed top-(--spark-viewport-top,0) right-0 left-0 z-50 h-(--spark-viewport-height,100%) bg-(--color-overlay) transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs motion-reduce:transition-none", className),
64
+ "data-overlay": "true",
65
+ ...props
66
+ });
67
+ }
68
+ function DialogContent({ className, ...props }) {
69
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Popup, {
70
+ "data-slot": "dialog-content",
71
+ className: (0, cnfast.cn)("fixed top-(--spark-viewport-center-y,50%) left-[50%] z-50 grid w-[90%] max-w-lg min-w-80 translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg bg-gray-1 p-4 text-gray shadow-lg transition-[top,opacity,translate,scale] duration-200 motion-reduce:transition-none sm:w-1/2", "data-starting-style:translate-y-[-52%] data-starting-style:scale-95 data-starting-style:opacity-0", "data-ending-style:translate-y-[-52%] data-ending-style:scale-95 data-ending-style:opacity-0", className),
72
+ ...props
73
+ });
74
+ }
75
+ function DialogHeader({ className, ...props }) {
76
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
77
+ "data-slot": "dialog-header",
78
+ className: (0, cnfast.cn)("flex flex-col gap-1", className),
79
+ ...props
80
+ });
81
+ }
82
+ function DialogFooter({ className, ...props }) {
83
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
84
+ "data-slot": "dialog-footer",
85
+ className: (0, cnfast.cn)("flex flex-col-reverse gap-4 sm:flex-row sm:justify-end", className),
86
+ ...props
87
+ });
88
+ }
89
+ function DialogTitle({ className, ...props }) {
90
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Title, {
91
+ "data-slot": "dialog-title",
92
+ className: (0, cnfast.cn)("text-lg font-bold text-gray", className),
93
+ ...props
94
+ });
95
+ }
96
+ function DialogDescription({ className, ...props }) {
97
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_dialog.Dialog.Description, {
98
+ "data-slot": "dialog-description",
99
+ className: (0, cnfast.cn)("text-sm text-gray-light", className),
100
+ ...props
101
+ });
102
+ }
103
+ //#endregion
104
+ exports.Dialog = Dialog;
105
+ exports.DialogClose = DialogClose;
106
+ exports.DialogContent = DialogContent;
107
+ exports.DialogDescription = DialogDescription;
108
+ exports.DialogFooter = DialogFooter;
109
+ exports.DialogHeader = DialogHeader;
110
+ exports.DialogOverlay = DialogOverlay;
111
+ exports.DialogPortal = DialogPortal;
112
+ exports.DialogTitle = DialogTitle;
113
+ exports.DialogTrigger = DialogTrigger;
114
+
115
+ //# sourceMappingURL=dialog.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.cjs","names":["DialogPrimitive","buttonVariants","MaterialSymbol"],"sources":["../../src/components/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\n// Our dialogs contain interactive elements that are mounted outside of the dialog\n// Browser extensions like password managers or grammar checkers are also mounted outside\n// We still dismiss on a click/tap outside: a genuine outside press lands on a\n// backdrop (our styled one, or Base UI's internal inert backdrop when modal)\nfunction isBackdropPress(event: Event | undefined) {\n const target = event?.target\n return (\n target instanceof HTMLElement &&\n (target.dataset.overlay === 'true' ||\n target.hasAttribute('data-base-ui-inert'))\n )\n}\n\nfunction Dialog({\n onOpenChange,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n {...props}\n onOpenChange={(open, eventDetails) => {\n if (\n !open &&\n eventDetails.reason === 'outside-press' &&\n !isBackdropPress(eventDetails.event)\n ) {\n eventDetails.cancel()\n return\n }\n onOpenChange?.(open, eventDetails)\n }}\n />\n )\n}\n\nfunction DialogTrigger(\n props: React.ComponentProps<typeof DialogPrimitive.Trigger>,\n) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal(\n props: React.ComponentProps<typeof DialogPrimitive.Portal>,\n) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\n// bare = the ready-made corner X (label is the consumer's, via aria-label);\n// with children or a render prop it stays the bare primitive (footer buttons, custom closes)\nfunction DialogClose({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n if (children || props.render) {\n return (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={className}\n {...props}\n >\n {children}\n </DialogPrimitive.Close>\n )\n }\n\n return (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-2.5 right-3 rounded-full',\n className,\n )}\n {...props}\n >\n <MaterialSymbol\n className=\"[--spark-icon-size:calc(20px*var(--spark-scaling,1))]\"\n name=\"close\"\n />\n </DialogPrimitive.Close>\n )\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Backdrop>) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed top-(--spark-viewport-top,0) right-0 left-0 z-50 h-(--spark-viewport-height,100%) bg-(--color-overlay) transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs motion-reduce:transition-none',\n className,\n )}\n data-overlay=\"true\"\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Popup>) {\n return (\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-(--spark-viewport-center-y,50%) left-[50%] z-50 grid w-[90%] max-w-lg min-w-80 translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg bg-gray-1 p-4 text-gray shadow-lg transition-[top,opacity,translate,scale] duration-200 motion-reduce:transition-none sm:w-1/2',\n // enter/exit: fade + zoom + a slight upward offset (was animate-in/out)\n 'data-starting-style:translate-y-[-52%] data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-ending-style:translate-y-[-52%] data-ending-style:scale-95 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-1', className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-4 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-lg font-bold text-gray', className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-sm text-gray-light', className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAS,gBAAgB,OAA0B;CACjD,MAAM,SAAS,OAAO;CACtB,OACE,kBAAkB,gBACjB,OAAO,QAAQ,YAAY,UAC1B,OAAO,aAAa,oBAAoB;AAE9C;AAEA,SAAS,OAAO,EACd,cACA,GAAG,SACiD;CACpD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,MAAjB;EACE,GAAI;EACJ,eAAe,MAAM,iBAAiB;GACpC,IACE,CAAC,QACD,aAAa,WAAW,mBACxB,CAAC,gBAAgB,aAAa,KAAK,GACnC;IACA,aAAa,OAAO;IACpB;GACF;GACA,eAAe,MAAM,YAAY;EACnC;CACD,CAAA;AAEL;AAEA,SAAS,cACP,OACA;CACA,OAAO,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE;AAEA,SAAS,aACP,OACA;CACA,OAAO,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;CAAQ,CAAA;AACvE;AAIA,SAAS,YAAY,EACnB,WACA,UACA,GAAG,SACkD;CACrD,IAAI,YAAY,MAAM,QACpB,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACC;EACX,GAAI;EAEH;CACoB,CAAA;CAI3B,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IACEC,0BAAAA,eAAe;GAAE,MAAM;GAAQ,SAAS;EAAW,CAAC,GACpD,yCACA,SACF;EACA,GAAI;YAEJ,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;GACE,WAAU;GACV,MAAK;EACN,CAAA;CACoB,CAAA;AAE3B;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACqD;CACxD,OACE,iBAAA,GAAA,kBAAA,KAACF,sBAAAA,OAAgB,UAAjB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IACE,kRACA,SACF;EACA,gBAAa;EACb,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACkD;CACrD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IACE,kRAEA,qGACA,+FACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IAAc,uBAAuB,SAAS;EAC9C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IACE,0DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;CACrD,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,OAAjB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IAAc,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;CAC3D,OACE,iBAAA,GAAA,kBAAA,KAACA,sBAAAA,OAAgB,aAAjB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IAAc,2BAA2B,SAAS;EAClD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,44 @@
1
+ "use client";
2
+
3
+ import * as React$1 from "react";
4
+ import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
5
+
6
+ //#region src/components/dialog.d.ts
7
+ declare function Dialog({
8
+ onOpenChange,
9
+ ...props
10
+ }: React$1.ComponentProps<typeof Dialog$1.Root>): import("react/jsx-runtime").JSX.Element;
11
+ declare function DialogTrigger(props: React$1.ComponentProps<typeof Dialog$1.Trigger>): import("react/jsx-runtime").JSX.Element;
12
+ declare function DialogPortal(props: React$1.ComponentProps<typeof Dialog$1.Portal>): import("react/jsx-runtime").JSX.Element;
13
+ declare function DialogClose({
14
+ className,
15
+ children,
16
+ ...props
17
+ }: React$1.ComponentProps<typeof Dialog$1.Close>): import("react/jsx-runtime").JSX.Element;
18
+ declare function DialogOverlay({
19
+ className,
20
+ ...props
21
+ }: React$1.ComponentProps<typeof Dialog$1.Backdrop>): import("react/jsx-runtime").JSX.Element;
22
+ declare function DialogContent({
23
+ className,
24
+ ...props
25
+ }: React$1.ComponentProps<typeof Dialog$1.Popup>): import("react/jsx-runtime").JSX.Element;
26
+ declare function DialogHeader({
27
+ className,
28
+ ...props
29
+ }: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
30
+ declare function DialogFooter({
31
+ className,
32
+ ...props
33
+ }: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
34
+ declare function DialogTitle({
35
+ className,
36
+ ...props
37
+ }: React$1.ComponentProps<typeof Dialog$1.Title>): import("react/jsx-runtime").JSX.Element;
38
+ declare function DialogDescription({
39
+ className,
40
+ ...props
41
+ }: React$1.ComponentProps<typeof Dialog$1.Description>): import("react/jsx-runtime").JSX.Element;
42
+ //#endregion
43
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
44
+ //# sourceMappingURL=dialog.d.cts.map
@@ -0,0 +1,44 @@
1
+ "use client";
2
+
3
+ import * as React$1 from "react";
4
+ import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
5
+
6
+ //#region src/components/dialog.d.ts
7
+ declare function Dialog({
8
+ onOpenChange,
9
+ ...props
10
+ }: React$1.ComponentProps<typeof Dialog$1.Root>): import("react/jsx-runtime").JSX.Element;
11
+ declare function DialogTrigger(props: React$1.ComponentProps<typeof Dialog$1.Trigger>): import("react/jsx-runtime").JSX.Element;
12
+ declare function DialogPortal(props: React$1.ComponentProps<typeof Dialog$1.Portal>): import("react/jsx-runtime").JSX.Element;
13
+ declare function DialogClose({
14
+ className,
15
+ children,
16
+ ...props
17
+ }: React$1.ComponentProps<typeof Dialog$1.Close>): import("react/jsx-runtime").JSX.Element;
18
+ declare function DialogOverlay({
19
+ className,
20
+ ...props
21
+ }: React$1.ComponentProps<typeof Dialog$1.Backdrop>): import("react/jsx-runtime").JSX.Element;
22
+ declare function DialogContent({
23
+ className,
24
+ ...props
25
+ }: React$1.ComponentProps<typeof Dialog$1.Popup>): import("react/jsx-runtime").JSX.Element;
26
+ declare function DialogHeader({
27
+ className,
28
+ ...props
29
+ }: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
30
+ declare function DialogFooter({
31
+ className,
32
+ ...props
33
+ }: React$1.ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
34
+ declare function DialogTitle({
35
+ className,
36
+ ...props
37
+ }: React$1.ComponentProps<typeof Dialog$1.Title>): import("react/jsx-runtime").JSX.Element;
38
+ declare function DialogDescription({
39
+ className,
40
+ ...props
41
+ }: React$1.ComponentProps<typeof Dialog$1.Description>): import("react/jsx-runtime").JSX.Element;
42
+ //#endregion
43
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
44
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1,103 @@
1
+ "use client";
2
+ import { cn } from "../utils/cn.js";
3
+ import { MaterialSymbol } from "../icons/material-symbol.js";
4
+ import { buttonVariants } from "./button.js";
5
+ import "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+ import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
8
+ //#region src/components/dialog.tsx
9
+ function isBackdropPress(event) {
10
+ const target = event?.target;
11
+ return target instanceof HTMLElement && (target.dataset.overlay === "true" || target.hasAttribute("data-base-ui-inert"));
12
+ }
13
+ function Dialog({ onOpenChange, ...props }) {
14
+ return /* @__PURE__ */ jsx(Dialog$1.Root, {
15
+ ...props,
16
+ onOpenChange: (open, eventDetails) => {
17
+ if (!open && eventDetails.reason === "outside-press" && !isBackdropPress(eventDetails.event)) {
18
+ eventDetails.cancel();
19
+ return;
20
+ }
21
+ onOpenChange?.(open, eventDetails);
22
+ }
23
+ });
24
+ }
25
+ function DialogTrigger(props) {
26
+ return /* @__PURE__ */ jsx(Dialog$1.Trigger, {
27
+ "data-slot": "dialog-trigger",
28
+ ...props
29
+ });
30
+ }
31
+ function DialogPortal(props) {
32
+ return /* @__PURE__ */ jsx(Dialog$1.Portal, {
33
+ "data-slot": "dialog-portal",
34
+ ...props
35
+ });
36
+ }
37
+ function DialogClose({ className, children, ...props }) {
38
+ if (children || props.render) return /* @__PURE__ */ jsx(Dialog$1.Close, {
39
+ "data-slot": "dialog-close",
40
+ className,
41
+ ...props,
42
+ children
43
+ });
44
+ return /* @__PURE__ */ jsx(Dialog$1.Close, {
45
+ "data-slot": "dialog-close",
46
+ className: cn(buttonVariants({
47
+ size: "icon",
48
+ variant: "tertiary"
49
+ }), "absolute top-2.5 right-3 rounded-full", className),
50
+ ...props,
51
+ children: /* @__PURE__ */ jsx(MaterialSymbol, {
52
+ className: "[--spark-icon-size:calc(20px*var(--spark-scaling,1))]",
53
+ name: "close"
54
+ })
55
+ });
56
+ }
57
+ function DialogOverlay({ className, ...props }) {
58
+ return /* @__PURE__ */ jsx(Dialog$1.Backdrop, {
59
+ "data-slot": "dialog-overlay",
60
+ className: cn("fixed top-(--spark-viewport-top,0) right-0 left-0 z-50 h-(--spark-viewport-height,100%) bg-(--color-overlay) transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs motion-reduce:transition-none", className),
61
+ "data-overlay": "true",
62
+ ...props
63
+ });
64
+ }
65
+ function DialogContent({ className, ...props }) {
66
+ return /* @__PURE__ */ jsx(Dialog$1.Popup, {
67
+ "data-slot": "dialog-content",
68
+ className: cn("fixed top-(--spark-viewport-center-y,50%) left-[50%] z-50 grid w-[90%] max-w-lg min-w-80 translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg bg-gray-1 p-4 text-gray shadow-lg transition-[top,opacity,translate,scale] duration-200 motion-reduce:transition-none sm:w-1/2", "data-starting-style:translate-y-[-52%] data-starting-style:scale-95 data-starting-style:opacity-0", "data-ending-style:translate-y-[-52%] data-ending-style:scale-95 data-ending-style:opacity-0", className),
69
+ ...props
70
+ });
71
+ }
72
+ function DialogHeader({ className, ...props }) {
73
+ return /* @__PURE__ */ jsx("div", {
74
+ "data-slot": "dialog-header",
75
+ className: cn("flex flex-col gap-1", className),
76
+ ...props
77
+ });
78
+ }
79
+ function DialogFooter({ className, ...props }) {
80
+ return /* @__PURE__ */ jsx("div", {
81
+ "data-slot": "dialog-footer",
82
+ className: cn("flex flex-col-reverse gap-4 sm:flex-row sm:justify-end", className),
83
+ ...props
84
+ });
85
+ }
86
+ function DialogTitle({ className, ...props }) {
87
+ return /* @__PURE__ */ jsx(Dialog$1.Title, {
88
+ "data-slot": "dialog-title",
89
+ className: cn("text-lg font-bold text-gray", className),
90
+ ...props
91
+ });
92
+ }
93
+ function DialogDescription({ className, ...props }) {
94
+ return /* @__PURE__ */ jsx(Dialog$1.Description, {
95
+ "data-slot": "dialog-description",
96
+ className: cn("text-sm text-gray-light", className),
97
+ ...props
98
+ });
99
+ }
100
+ //#endregion
101
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
102
+
103
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","names":["DialogPrimitive"],"sources":["../../src/components/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\n// Our dialogs contain interactive elements that are mounted outside of the dialog\n// Browser extensions like password managers or grammar checkers are also mounted outside\n// We still dismiss on a click/tap outside: a genuine outside press lands on a\n// backdrop (our styled one, or Base UI's internal inert backdrop when modal)\nfunction isBackdropPress(event: Event | undefined) {\n const target = event?.target\n return (\n target instanceof HTMLElement &&\n (target.dataset.overlay === 'true' ||\n target.hasAttribute('data-base-ui-inert'))\n )\n}\n\nfunction Dialog({\n onOpenChange,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return (\n <DialogPrimitive.Root\n {...props}\n onOpenChange={(open, eventDetails) => {\n if (\n !open &&\n eventDetails.reason === 'outside-press' &&\n !isBackdropPress(eventDetails.event)\n ) {\n eventDetails.cancel()\n return\n }\n onOpenChange?.(open, eventDetails)\n }}\n />\n )\n}\n\nfunction DialogTrigger(\n props: React.ComponentProps<typeof DialogPrimitive.Trigger>,\n) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal(\n props: React.ComponentProps<typeof DialogPrimitive.Portal>,\n) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\n// bare = the ready-made corner X (label is the consumer's, via aria-label);\n// with children or a render prop it stays the bare primitive (footer buttons, custom closes)\nfunction DialogClose({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n if (children || props.render) {\n return (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={className}\n {...props}\n >\n {children}\n </DialogPrimitive.Close>\n )\n }\n\n return (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-2.5 right-3 rounded-full',\n className,\n )}\n {...props}\n >\n <MaterialSymbol\n className=\"[--spark-icon-size:calc(20px*var(--spark-scaling,1))]\"\n name=\"close\"\n />\n </DialogPrimitive.Close>\n )\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Backdrop>) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n 'fixed top-(--spark-viewport-top,0) right-0 left-0 z-50 h-(--spark-viewport-height,100%) bg-(--color-overlay) transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs motion-reduce:transition-none',\n className,\n )}\n data-overlay=\"true\"\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Popup>) {\n return (\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n 'fixed top-(--spark-viewport-center-y,50%) left-[50%] z-50 grid w-[90%] max-w-lg min-w-80 translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg bg-gray-1 p-4 text-gray shadow-lg transition-[top,opacity,translate,scale] duration-200 motion-reduce:transition-none sm:w-1/2',\n // enter/exit: fade + zoom + a slight upward offset (was animate-in/out)\n 'data-starting-style:translate-y-[-52%] data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-ending-style:translate-y-[-52%] data-ending-style:scale-95 data-ending-style:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-1', className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-4 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-lg font-bold text-gray', className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-sm text-gray-light', className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n"],"mappings":";;;;;;;;AAUA,SAAS,gBAAgB,OAA0B;CACjD,MAAM,SAAS,OAAO;CACtB,OACE,kBAAkB,gBACjB,OAAO,QAAQ,YAAY,UAC1B,OAAO,aAAa,oBAAoB;AAE9C;AAEA,SAAS,OAAO,EACd,cACA,GAAG,SACiD;CACpD,OACE,oBAACA,SAAgB,MAAjB;EACE,GAAI;EACJ,eAAe,MAAM,iBAAiB;GACpC,IACE,CAAC,QACD,aAAa,WAAW,mBACxB,CAAC,gBAAgB,aAAa,KAAK,GACnC;IACA,aAAa,OAAO;IACpB;GACF;GACA,eAAe,MAAM,YAAY;EACnC;CACD,CAAA;AAEL;AAEA,SAAS,cACP,OACA;CACA,OAAO,oBAACA,SAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE;AAEA,SAAS,aACP,OACA;CACA,OAAO,oBAACA,SAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;CAAQ,CAAA;AACvE;AAIA,SAAS,YAAY,EACnB,WACA,UACA,GAAG,SACkD;CACrD,IAAI,YAAY,MAAM,QACpB,OACE,oBAACA,SAAgB,OAAjB;EACE,aAAU;EACC;EACX,GAAI;EAEH;CACoB,CAAA;CAI3B,OACE,oBAACA,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GACT,eAAe;GAAE,MAAM;GAAQ,SAAS;EAAW,CAAC,GACpD,yCACA,SACF;EACA,GAAI;YAEJ,oBAAC,gBAAD;GACE,WAAU;GACV,MAAK;EACN,CAAA;CACoB,CAAA;AAE3B;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACqD;CACxD,OACE,oBAACA,SAAgB,UAAjB;EACE,aAAU;EACV,WAAW,GACT,kRACA,SACF;EACA,gBAAa;EACb,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACkD;CACrD,OACE,oBAACA,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GACT,kRAEA,qGACA,+FACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,uBAAuB,SAAS;EAC9C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,0DACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;CACrD,OACE,oBAACA,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;CAC3D,OACE,oBAACA,SAAgB,aAAjB;EACE,aAAU;EACV,WAAW,GAAG,2BAA2B,SAAS;EAClD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ //#region src/components/donut-chart.tsx
5
+ const RADIUS = 66;
6
+ const STROKE = 14;
7
+ const SIZE = 180;
8
+ const CIRCUMFERENCE = 2 * Math.PI * RADIUS;
9
+ function DonutChart({ centerLabel, centerSub, segments }) {
10
+ const total = segments.reduce((sum, seg) => sum + seg.value, 0);
11
+ let offset = 0;
12
+ const arcs = segments.map((seg) => {
13
+ const dash = total > 0 ? seg.value / total * CIRCUMFERENCE : 0;
14
+ const arc = {
15
+ color: seg.color,
16
+ dash,
17
+ gap: CIRCUMFERENCE - dash,
18
+ offset
19
+ };
20
+ offset += dash;
21
+ return arc;
22
+ });
23
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
24
+ width: SIZE,
25
+ height: SIZE,
26
+ viewBox: `0 0 ${SIZE} ${SIZE}`,
27
+ children: [
28
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
29
+ cx: SIZE / 2,
30
+ cy: SIZE / 2,
31
+ r: RADIUS,
32
+ fill: "none",
33
+ stroke: "var(--neutral-a3)",
34
+ strokeWidth: STROKE
35
+ }),
36
+ arcs.map((arc, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
37
+ cx: SIZE / 2,
38
+ cy: SIZE / 2,
39
+ r: RADIUS,
40
+ fill: "none",
41
+ stroke: arc.color,
42
+ strokeWidth: STROKE,
43
+ strokeDasharray: `${arc.dash} ${arc.gap}`,
44
+ strokeDashoffset: CIRCUMFERENCE / 4 - arc.offset,
45
+ strokeLinecap: "butt"
46
+ }, i)),
47
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("text", {
48
+ x: SIZE / 2,
49
+ y: SIZE / 2 - 5,
50
+ textAnchor: "middle",
51
+ fontSize: 20,
52
+ fontWeight: 700,
53
+ fill: "var(--neutral-12)",
54
+ children: centerLabel
55
+ }),
56
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("text", {
57
+ x: SIZE / 2,
58
+ y: 104,
59
+ textAnchor: "middle",
60
+ fontSize: 12,
61
+ fill: "var(--neutral-a11)",
62
+ children: centerSub
63
+ })
64
+ ]
65
+ });
66
+ }
67
+ //#endregion
68
+ exports.DonutChart = DonutChart;
69
+
70
+ //# sourceMappingURL=donut-chart.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"donut-chart.cjs","names":[],"sources":["../../src/components/donut-chart.tsx"],"sourcesContent":["interface DonutSegment {\n value: number\n color: string\n}\n\ninterface DonutChartProps {\n segments: DonutSegment[]\n centerLabel: string\n centerSub: string\n}\n\nconst RADIUS = 66\nconst STROKE = 14\nconst SIZE = 180\nconst CIRCUMFERENCE = 2 * Math.PI * RADIUS\n\nexport function DonutChart({\n centerLabel,\n centerSub,\n segments,\n}: DonutChartProps) {\n const total = segments.reduce((sum, seg) => sum + seg.value, 0)\n\n let offset = 0\n const arcs = segments.map((seg) => {\n const dash = total > 0 ? (seg.value / total) * CIRCUMFERENCE : 0\n const arc = {\n color: seg.color,\n dash,\n gap: CIRCUMFERENCE - dash,\n offset,\n }\n offset += dash\n return arc\n })\n\n return (\n <svg width={SIZE} height={SIZE} viewBox={`0 0 ${SIZE} ${SIZE}`}>\n <circle\n cx={SIZE / 2}\n cy={SIZE / 2}\n r={RADIUS}\n fill=\"none\"\n stroke=\"var(--neutral-a3)\"\n strokeWidth={STROKE}\n />\n {arcs.map((arc, i) => (\n <circle\n key={i}\n cx={SIZE / 2}\n cy={SIZE / 2}\n r={RADIUS}\n fill=\"none\"\n stroke={arc.color}\n strokeWidth={STROKE}\n strokeDasharray={`${arc.dash} ${arc.gap}`}\n strokeDashoffset={CIRCUMFERENCE / 4 - arc.offset}\n strokeLinecap=\"butt\"\n />\n ))}\n <text\n x={SIZE / 2}\n y={SIZE / 2 - 5}\n textAnchor=\"middle\"\n fontSize={20}\n fontWeight={700}\n fill=\"var(--neutral-12)\"\n >\n {centerLabel}\n </text>\n <text\n x={SIZE / 2}\n y={SIZE / 2 + 14}\n textAnchor=\"middle\"\n fontSize={12}\n fill=\"var(--neutral-a11)\"\n >\n {centerSub}\n </text>\n </svg>\n )\n}\n"],"mappings":";;;;AAWA,MAAM,SAAS;AACf,MAAM,SAAS;AACf,MAAM,OAAO;AACb,MAAM,gBAAgB,IAAI,KAAK,KAAK;AAEpC,SAAgB,WAAW,EACzB,aACA,WACA,YACkB;CAClB,MAAM,QAAQ,SAAS,QAAQ,KAAK,QAAQ,MAAM,IAAI,OAAO,CAAC;CAE9D,IAAI,SAAS;CACb,MAAM,OAAO,SAAS,KAAK,QAAQ;EACjC,MAAM,OAAO,QAAQ,IAAK,IAAI,QAAQ,QAAS,gBAAgB;EAC/D,MAAM,MAAM;GACV,OAAO,IAAI;GACX;GACA,KAAK,gBAAgB;GACrB;EACF;EACA,UAAU;EACV,OAAO;CACT,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,MAAC,OAAD;EAAK,OAAO;EAAM,QAAQ;EAAM,SAAS,OAAO,KAAK,GAAG;YAAxD;GACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;IACE,IAAI,OAAO;IACX,IAAI,OAAO;IACX,GAAG;IACH,MAAK;IACL,QAAO;IACP,aAAa;GACd,CAAA;GACA,KAAK,KAAK,KAAK,MACd,iBAAA,GAAA,kBAAA,KAAC,UAAD;IAEE,IAAI,OAAO;IACX,IAAI,OAAO;IACX,GAAG;IACH,MAAK;IACL,QAAQ,IAAI;IACZ,aAAa;IACb,iBAAiB,GAAG,IAAI,KAAK,GAAG,IAAI;IACpC,kBAAkB,gBAAgB,IAAI,IAAI;IAC1C,eAAc;GACf,GAVM,CAUN,CACF;GACD,iBAAA,GAAA,kBAAA,KAAC,QAAD;IACE,GAAG,OAAO;IACV,GAAG,OAAO,IAAI;IACd,YAAW;IACX,UAAU;IACV,YAAY;IACZ,MAAK;cAEJ;GACG,CAAA;GACN,iBAAA,GAAA,kBAAA,KAAC,QAAD;IACE,GAAG,OAAO;IACV,GAAG;IACH,YAAW;IACX,UAAU;IACV,MAAK;cAEJ;GACG,CAAA;EACH;;AAET"}
@@ -0,0 +1,20 @@
1
+ "use client";
2
+
3
+ //#region src/components/donut-chart.d.ts
4
+ interface DonutSegment {
5
+ value: number;
6
+ color: string;
7
+ }
8
+ interface DonutChartProps {
9
+ segments: DonutSegment[];
10
+ centerLabel: string;
11
+ centerSub: string;
12
+ }
13
+ declare function DonutChart({
14
+ centerLabel,
15
+ centerSub,
16
+ segments
17
+ }: DonutChartProps): import("react/jsx-runtime").JSX.Element;
18
+ //#endregion
19
+ export { DonutChart };
20
+ //# sourceMappingURL=donut-chart.d.cts.map
@@ -0,0 +1,20 @@
1
+ "use client";
2
+
3
+ //#region src/components/donut-chart.d.ts
4
+ interface DonutSegment {
5
+ value: number;
6
+ color: string;
7
+ }
8
+ interface DonutChartProps {
9
+ segments: DonutSegment[];
10
+ centerLabel: string;
11
+ centerSub: string;
12
+ }
13
+ declare function DonutChart({
14
+ centerLabel,
15
+ centerSub,
16
+ segments
17
+ }: DonutChartProps): import("react/jsx-runtime").JSX.Element;
18
+ //#endregion
19
+ export { DonutChart };
20
+ //# sourceMappingURL=donut-chart.d.ts.map