@parto-system-design/ui 1.1.5 → 1.1.7

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 (301) hide show
  1. package/AGENTS.md +233 -0
  2. package/LICENSE +21 -0
  3. package/README.md +96 -43
  4. package/dist/chunk-2UD3LGVX.cjs +316 -0
  5. package/dist/chunk-2UD3LGVX.cjs.map +1 -0
  6. package/dist/chunk-34JUCX2G.cjs +43 -0
  7. package/dist/chunk-34JUCX2G.cjs.map +1 -0
  8. package/dist/chunk-3AIJKXBV.cjs +242 -0
  9. package/dist/chunk-3AIJKXBV.cjs.map +1 -0
  10. package/dist/chunk-4SVQNEVH.js +173 -0
  11. package/dist/chunk-4SVQNEVH.js.map +1 -0
  12. package/dist/chunk-53QY4PD3.js +908 -0
  13. package/dist/chunk-53QY4PD3.js.map +1 -0
  14. package/dist/chunk-5JJSRGJD.js +31 -0
  15. package/dist/chunk-5JJSRGJD.js.map +1 -0
  16. package/dist/chunk-5K6E4ZSW.cjs +77 -0
  17. package/dist/chunk-5K6E4ZSW.cjs.map +1 -0
  18. package/dist/chunk-5NY26ULO.js +89 -0
  19. package/dist/chunk-5NY26ULO.js.map +1 -0
  20. package/dist/chunk-7RVPG3LE.cjs +231 -0
  21. package/dist/chunk-7RVPG3LE.cjs.map +1 -0
  22. package/dist/chunk-7Y4V3R3Y.cjs +120 -0
  23. package/dist/chunk-7Y4V3R3Y.cjs.map +1 -0
  24. package/dist/chunk-AXAY64KL.js +39 -0
  25. package/dist/chunk-AXAY64KL.js.map +1 -0
  26. package/dist/chunk-AYEK3WOM.js +207 -0
  27. package/dist/chunk-AYEK3WOM.js.map +1 -0
  28. package/dist/chunk-BRMBLIQG.js +53 -0
  29. package/dist/chunk-BRMBLIQG.js.map +1 -0
  30. package/dist/chunk-CAJKSTXX.cjs +54 -0
  31. package/dist/chunk-CAJKSTXX.cjs.map +1 -0
  32. package/dist/chunk-CKFWMHQU.js +401 -0
  33. package/dist/chunk-CKFWMHQU.js.map +1 -0
  34. package/dist/chunk-CV3N3HVK.js +672 -0
  35. package/dist/chunk-CV3N3HVK.js.map +1 -0
  36. package/dist/chunk-D2EBLE2B.cjs +220 -0
  37. package/dist/chunk-D2EBLE2B.cjs.map +1 -0
  38. package/dist/chunk-D5XCQDFS.js +92 -0
  39. package/dist/chunk-D5XCQDFS.js.map +1 -0
  40. package/dist/chunk-GDHRYKVM.js +45 -0
  41. package/dist/chunk-GDHRYKVM.js.map +1 -0
  42. package/dist/chunk-GKRAZGDI.cjs +84 -0
  43. package/dist/chunk-GKRAZGDI.cjs.map +1 -0
  44. package/dist/chunk-HEYMLQOV.cjs +94 -0
  45. package/dist/chunk-HEYMLQOV.cjs.map +1 -0
  46. package/dist/chunk-HF6XU5NI.js +84 -0
  47. package/dist/chunk-HF6XU5NI.js.map +1 -0
  48. package/dist/chunk-HJPDZOMJ.cjs +87 -0
  49. package/dist/chunk-HJPDZOMJ.cjs.map +1 -0
  50. package/dist/chunk-HUCC3QH5.cjs +53 -0
  51. package/dist/chunk-HUCC3QH5.cjs.map +1 -0
  52. package/dist/chunk-HYZ6BQPS.cjs +425 -0
  53. package/dist/chunk-HYZ6BQPS.cjs.map +1 -0
  54. package/dist/chunk-IQHKJ4SS.js +213 -0
  55. package/dist/chunk-IQHKJ4SS.js.map +1 -0
  56. package/dist/chunk-ISCSZMYW.cjs +106 -0
  57. package/dist/chunk-ISCSZMYW.cjs.map +1 -0
  58. package/dist/chunk-IXFEFIDO.js +82 -0
  59. package/dist/chunk-IXFEFIDO.js.map +1 -0
  60. package/dist/chunk-JUBHQAA2.js +53 -0
  61. package/dist/chunk-JUBHQAA2.js.map +1 -0
  62. package/dist/chunk-KCWRCSI7.js +62 -0
  63. package/dist/chunk-KCWRCSI7.js.map +1 -0
  64. package/dist/chunk-L2L5CKC2.js +291 -0
  65. package/dist/chunk-L2L5CKC2.js.map +1 -0
  66. package/dist/chunk-LLJR7FV3.js +135 -0
  67. package/dist/chunk-LLJR7FV3.js.map +1 -0
  68. package/dist/chunk-LZMCMZZF.js +118 -0
  69. package/dist/chunk-LZMCMZZF.js.map +1 -0
  70. package/dist/chunk-M5CHZ5BA.js +124 -0
  71. package/dist/chunk-M5CHZ5BA.js.map +1 -0
  72. package/dist/chunk-MBCTRNTG.js +89 -0
  73. package/dist/chunk-MBCTRNTG.js.map +1 -0
  74. package/dist/chunk-MEK4RSGC.js +65 -0
  75. package/dist/chunk-MEK4RSGC.js.map +1 -0
  76. package/dist/chunk-MFTX2DDQ.js +27 -0
  77. package/dist/chunk-MFTX2DDQ.js.map +1 -0
  78. package/dist/chunk-MKYVQQBV.cjs +114 -0
  79. package/dist/chunk-MKYVQQBV.cjs.map +1 -0
  80. package/dist/chunk-MQGQVI3W.cjs +950 -0
  81. package/dist/chunk-MQGQVI3W.cjs.map +1 -0
  82. package/dist/chunk-NEFZJHE4.cjs +157 -0
  83. package/dist/chunk-NEFZJHE4.cjs.map +1 -0
  84. package/dist/chunk-NEML6RCV.js +405 -0
  85. package/dist/chunk-NEML6RCV.js.map +1 -0
  86. package/dist/chunk-NV4JOKWL.cjs +197 -0
  87. package/dist/chunk-NV4JOKWL.cjs.map +1 -0
  88. package/dist/chunk-O2JG7WY5.cjs +121 -0
  89. package/dist/chunk-O2JG7WY5.cjs.map +1 -0
  90. package/dist/chunk-OEVMKFFL.cjs +140 -0
  91. package/dist/chunk-OEVMKFFL.cjs.map +1 -0
  92. package/dist/chunk-ONO2FTV4.cjs +68 -0
  93. package/dist/chunk-ONO2FTV4.cjs.map +1 -0
  94. package/dist/chunk-OS6CMYAS.cjs +79 -0
  95. package/dist/chunk-OS6CMYAS.cjs.map +1 -0
  96. package/dist/chunk-P5XHPNJG.cjs +430 -0
  97. package/dist/chunk-P5XHPNJG.cjs.map +1 -0
  98. package/dist/chunk-QJ7UB2ZQ.js +98 -0
  99. package/dist/chunk-QJ7UB2ZQ.js.map +1 -0
  100. package/dist/chunk-RA5KZNG5.js +269 -0
  101. package/dist/chunk-RA5KZNG5.js.map +1 -0
  102. package/dist/chunk-RJ3HYZ7S.js +44 -0
  103. package/dist/chunk-RJ3HYZ7S.js.map +1 -0
  104. package/dist/chunk-RZNRIOLT.js +128 -0
  105. package/dist/chunk-RZNRIOLT.js.map +1 -0
  106. package/dist/chunk-S5IPJQZ3.cjs +161 -0
  107. package/dist/chunk-S5IPJQZ3.cjs.map +1 -0
  108. package/dist/chunk-SB5DSYR5.js +211 -0
  109. package/dist/chunk-SB5DSYR5.js.map +1 -0
  110. package/dist/chunk-SCGW2BH4.cjs +69 -0
  111. package/dist/chunk-SCGW2BH4.cjs.map +1 -0
  112. package/dist/chunk-SCX6AR53.cjs +108 -0
  113. package/dist/chunk-SCX6AR53.cjs.map +1 -0
  114. package/dist/chunk-SFXV2DUH.js +106 -0
  115. package/dist/chunk-SFXV2DUH.js.map +1 -0
  116. package/dist/chunk-SXEPGD4Z.cjs +152 -0
  117. package/dist/chunk-SXEPGD4Z.cjs.map +1 -0
  118. package/dist/chunk-SZMVOHT7.cjs +107 -0
  119. package/dist/chunk-SZMVOHT7.cjs.map +1 -0
  120. package/dist/chunk-U5FLLCGC.cjs +151 -0
  121. package/dist/chunk-U5FLLCGC.cjs.map +1 -0
  122. package/dist/chunk-VO3B75F6.cjs +111 -0
  123. package/dist/chunk-VO3B75F6.cjs.map +1 -0
  124. package/dist/chunk-YAJWTNOX.js +106 -0
  125. package/dist/chunk-YAJWTNOX.js.map +1 -0
  126. package/dist/chunk-YC5KLN6I.js +139 -0
  127. package/dist/chunk-YC5KLN6I.js.map +1 -0
  128. package/dist/chunk-YE477L2H.cjs +272 -0
  129. package/dist/chunk-YE477L2H.cjs.map +1 -0
  130. package/dist/chunk-Z2TY4A75.cjs +700 -0
  131. package/dist/chunk-Z2TY4A75.cjs.map +1 -0
  132. package/dist/chunk-Z56O7UEU.cjs +136 -0
  133. package/dist/chunk-Z56O7UEU.cjs.map +1 -0
  134. package/dist/chunk-ZZFNJR2E.js +71 -0
  135. package/dist/chunk-ZZFNJR2E.js.map +1 -0
  136. package/dist/components/charts/PartoAreaChart.cjs +15 -0
  137. package/dist/components/charts/PartoAreaChart.cjs.map +1 -0
  138. package/dist/components/charts/PartoAreaChart.d.cts +51 -0
  139. package/dist/components/charts/PartoAreaChart.d.ts +51 -0
  140. package/dist/components/charts/PartoAreaChart.js +6 -0
  141. package/dist/components/charts/PartoAreaChart.js.map +1 -0
  142. package/dist/components/charts/PartoBarChart.cjs +15 -0
  143. package/dist/components/charts/PartoBarChart.cjs.map +1 -0
  144. package/dist/components/charts/PartoBarChart.d.cts +55 -0
  145. package/dist/components/charts/PartoBarChart.d.ts +55 -0
  146. package/dist/components/charts/PartoBarChart.js +6 -0
  147. package/dist/components/charts/PartoBarChart.js.map +1 -0
  148. package/dist/components/charts/PartoLineChart.cjs +15 -0
  149. package/dist/components/charts/PartoLineChart.cjs.map +1 -0
  150. package/dist/components/charts/PartoLineChart.d.cts +49 -0
  151. package/dist/components/charts/PartoLineChart.d.ts +49 -0
  152. package/dist/components/charts/PartoLineChart.js +6 -0
  153. package/dist/components/charts/PartoLineChart.js.map +1 -0
  154. package/dist/components/charts/PartoPieChart.cjs +15 -0
  155. package/dist/components/charts/PartoPieChart.cjs.map +1 -0
  156. package/dist/components/charts/PartoPieChart.d.cts +44 -0
  157. package/dist/components/charts/PartoPieChart.d.ts +44 -0
  158. package/dist/components/charts/PartoPieChart.js +6 -0
  159. package/dist/components/charts/PartoPieChart.js.map +1 -0
  160. package/dist/components/ui/alert-rule-card.cjs +15 -0
  161. package/dist/components/ui/alert-rule-card.cjs.map +1 -0
  162. package/dist/components/ui/alert-rule-card.d.cts +38 -0
  163. package/dist/components/ui/alert-rule-card.d.ts +38 -0
  164. package/dist/components/ui/alert-rule-card.js +6 -0
  165. package/dist/components/ui/alert-rule-card.js.map +1 -0
  166. package/dist/components/ui/avatar.cjs +21 -0
  167. package/dist/components/ui/avatar.cjs.map +1 -0
  168. package/dist/components/ui/avatar.d.cts +18 -0
  169. package/dist/components/ui/avatar.d.ts +18 -0
  170. package/dist/components/ui/avatar.js +4 -0
  171. package/dist/components/ui/avatar.js.map +1 -0
  172. package/dist/components/ui/badge.cjs +17 -0
  173. package/dist/components/ui/badge.cjs.map +1 -0
  174. package/dist/components/ui/badge.d.cts +16 -0
  175. package/dist/components/ui/badge.d.ts +16 -0
  176. package/dist/components/ui/badge.js +4 -0
  177. package/dist/components/ui/badge.js.map +1 -0
  178. package/dist/components/ui/button.cjs +18 -0
  179. package/dist/components/ui/button.cjs.map +1 -0
  180. package/dist/components/ui/button.d.cts +37 -0
  181. package/dist/components/ui/button.d.ts +37 -0
  182. package/dist/components/ui/button.js +5 -0
  183. package/dist/components/ui/button.js.map +1 -0
  184. package/dist/components/ui/calendar.cjs +15 -0
  185. package/dist/components/ui/calendar.cjs.map +1 -0
  186. package/dist/components/ui/calendar.d.cts +17 -0
  187. package/dist/components/ui/calendar.d.ts +17 -0
  188. package/dist/components/ui/calendar.js +6 -0
  189. package/dist/components/ui/calendar.js.map +1 -0
  190. package/dist/components/ui/card.cjs +37 -0
  191. package/dist/components/ui/card.cjs.map +1 -0
  192. package/dist/components/ui/card.d.cts +18 -0
  193. package/dist/components/ui/card.d.ts +18 -0
  194. package/dist/components/ui/card.js +4 -0
  195. package/dist/components/ui/card.js.map +1 -0
  196. package/dist/components/ui/concept-card.cjs +18 -0
  197. package/dist/components/ui/concept-card.cjs.map +1 -0
  198. package/dist/components/ui/concept-card.d.cts +5 -0
  199. package/dist/components/ui/concept-card.d.ts +5 -0
  200. package/dist/components/ui/concept-card.js +9 -0
  201. package/dist/components/ui/concept-card.js.map +1 -0
  202. package/dist/components/ui/data-table.cjs +18 -0
  203. package/dist/components/ui/data-table.cjs.map +1 -0
  204. package/dist/components/ui/data-table.d.cts +181 -0
  205. package/dist/components/ui/data-table.d.ts +181 -0
  206. package/dist/components/ui/data-table.js +9 -0
  207. package/dist/components/ui/data-table.js.map +1 -0
  208. package/dist/components/ui/dialog.cjs +49 -0
  209. package/dist/components/ui/dialog.cjs.map +1 -0
  210. package/dist/components/ui/dialog.d.cts +22 -0
  211. package/dist/components/ui/dialog.d.ts +22 -0
  212. package/dist/components/ui/dialog.js +4 -0
  213. package/dist/components/ui/dialog.js.map +1 -0
  214. package/dist/components/ui/filter-provider.cjs +20 -0
  215. package/dist/components/ui/filter-provider.cjs.map +1 -0
  216. package/dist/components/ui/filter-provider.d.cts +49 -0
  217. package/dist/components/ui/filter-provider.d.ts +49 -0
  218. package/dist/components/ui/filter-provider.js +3 -0
  219. package/dist/components/ui/filter-provider.js.map +1 -0
  220. package/dist/components/ui/input.cjs +22 -0
  221. package/dist/components/ui/input.cjs.map +1 -0
  222. package/dist/components/ui/input.d.cts +16 -0
  223. package/dist/components/ui/input.d.ts +16 -0
  224. package/dist/components/ui/input.js +5 -0
  225. package/dist/components/ui/input.js.map +1 -0
  226. package/dist/components/ui/iran-province-heat.cjs +13 -0
  227. package/dist/components/ui/iran-province-heat.cjs.map +1 -0
  228. package/dist/components/ui/iran-province-heat.d.cts +64 -0
  229. package/dist/components/ui/iran-province-heat.d.ts +64 -0
  230. package/dist/components/ui/iran-province-heat.js +4 -0
  231. package/dist/components/ui/iran-province-heat.js.map +1 -0
  232. package/dist/components/ui/page-card.cjs +16 -0
  233. package/dist/components/ui/page-card.cjs.map +1 -0
  234. package/dist/components/ui/page-card.d.cts +6 -0
  235. package/dist/components/ui/page-card.d.ts +6 -0
  236. package/dist/components/ui/page-card.js +7 -0
  237. package/dist/components/ui/page-card.js.map +1 -0
  238. package/dist/components/ui/popover.cjs +25 -0
  239. package/dist/components/ui/popover.cjs.map +1 -0
  240. package/dist/components/ui/popover.d.cts +9 -0
  241. package/dist/components/ui/popover.d.ts +9 -0
  242. package/dist/components/ui/popover.js +4 -0
  243. package/dist/components/ui/popover.js.map +1 -0
  244. package/dist/components/ui/saved-query-card.cjs +15 -0
  245. package/dist/components/ui/saved-query-card.cjs.map +1 -0
  246. package/dist/components/ui/saved-query-card.d.cts +41 -0
  247. package/dist/components/ui/saved-query-card.d.ts +41 -0
  248. package/dist/components/ui/saved-query-card.js +6 -0
  249. package/dist/components/ui/saved-query-card.js.map +1 -0
  250. package/dist/components/ui/separator.cjs +13 -0
  251. package/dist/components/ui/separator.cjs.map +1 -0
  252. package/dist/components/ui/separator.d.cts +9 -0
  253. package/dist/components/ui/separator.d.ts +9 -0
  254. package/dist/components/ui/separator.js +4 -0
  255. package/dist/components/ui/separator.js.map +1 -0
  256. package/dist/components/ui/sheet.cjs +45 -0
  257. package/dist/components/ui/sheet.cjs.map +1 -0
  258. package/dist/components/ui/sheet.d.cts +44 -0
  259. package/dist/components/ui/sheet.d.ts +44 -0
  260. package/dist/components/ui/sheet.js +4 -0
  261. package/dist/components/ui/sheet.js.map +1 -0
  262. package/dist/components/ui/sparkline.cjs +13 -0
  263. package/dist/components/ui/sparkline.cjs.map +1 -0
  264. package/dist/components/ui/sparkline.d.cts +36 -0
  265. package/dist/components/ui/sparkline.d.ts +36 -0
  266. package/dist/components/ui/sparkline.js +4 -0
  267. package/dist/components/ui/sparkline.js.map +1 -0
  268. package/dist/components/ui/tooltip.cjs +25 -0
  269. package/dist/components/ui/tooltip.cjs.map +1 -0
  270. package/dist/components/ui/tooltip.d.cts +17 -0
  271. package/dist/components/ui/tooltip.d.ts +17 -0
  272. package/dist/components/ui/tooltip.js +4 -0
  273. package/dist/components/ui/tooltip.js.map +1 -0
  274. package/dist/concept-card-CcOBb2Nz.d.ts +83 -0
  275. package/dist/concept-card-RwPbqJ06.d.cts +83 -0
  276. package/dist/hooks/use-hotkey-registry.cjs +21 -0
  277. package/dist/hooks/use-hotkey-registry.cjs.map +1 -0
  278. package/dist/hooks/use-hotkey-registry.d.cts +65 -0
  279. package/dist/hooks/use-hotkey-registry.d.ts +65 -0
  280. package/dist/hooks/use-hotkey-registry.js +4 -0
  281. package/dist/hooks/use-hotkey-registry.js.map +1 -0
  282. package/dist/hooks/use-hotkeys.cjs +16 -0
  283. package/dist/hooks/use-hotkeys.cjs.map +1 -0
  284. package/dist/hooks/use-hotkeys.d.cts +66 -0
  285. package/dist/hooks/use-hotkeys.d.ts +66 -0
  286. package/dist/hooks/use-hotkeys.js +3 -0
  287. package/dist/hooks/use-hotkeys.js.map +1 -0
  288. package/dist/i18n-ArS3mqj0.d.ts +344 -0
  289. package/dist/i18n-CAd9wGOr.d.cts +344 -0
  290. package/dist/index.cjs +7383 -10955
  291. package/dist/index.cjs.map +1 -1
  292. package/dist/index.css +157 -0
  293. package/dist/index.d.cts +726 -1144
  294. package/dist/index.d.ts +726 -1144
  295. package/dist/index.js +6735 -10912
  296. package/dist/index.js.map +1 -1
  297. package/dist/page-card-CO92oXkc.d.ts +100 -0
  298. package/dist/page-card-DOl50DqJ.d.cts +100 -0
  299. package/dist/utils-DlXWmDZ-.d.cts +35 -0
  300. package/dist/utils-DlXWmDZ-.d.ts +35 -0
  301. package/package.json +160 -4
@@ -0,0 +1,231 @@
1
+ 'use strict';
2
+
3
+ var chunkGKRAZGDI_cjs = require('./chunk-GKRAZGDI.cjs');
4
+ var chunkNV4JOKWL_cjs = require('./chunk-NV4JOKWL.cjs');
5
+ var React = require('react');
6
+ var lucideReact = require('lucide-react');
7
+ var SwitchPrimitive = require('@radix-ui/react-switch');
8
+ var classVarianceAuthority = require('class-variance-authority');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
+ var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
31
+
32
+ var switchRootVariants = classVarianceAuthority.cva(
33
+ "peer inline-flex shrink-0 cursor-pointer items-center rounded-full border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-brand data-[state=checked]:hover:bg-brand-600/90 data-[state=unchecked]:bg-control data-[state=unchecked]:hover:bg-border",
34
+ {
35
+ variants: {
36
+ size: {
37
+ sm: "h-[16px] w-[28px]",
38
+ md: "h-[20px] w-[34px]",
39
+ lg: "h-[24px] w-[44px]",
40
+ /** @deprecated Use sm */
41
+ small: "h-[16px] w-[28px]",
42
+ /** @deprecated Use md */
43
+ medium: "h-[20px] w-[34px]",
44
+ /** @deprecated Use lg */
45
+ large: "h-[24px] w-[44px]"
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ size: "sm"
50
+ }
51
+ }
52
+ );
53
+ var switchThumbVariants = classVarianceAuthority.cva(
54
+ "pointer-events-none block rounded-full bg-foreground-lighter data-[state=checked]:bg-white shadow-lg ring-0 transition-transform",
55
+ {
56
+ variants: {
57
+ size: {
58
+ sm: "size-3",
59
+ md: "size-4",
60
+ lg: "size-[18px]",
61
+ /** @deprecated Use sm */
62
+ small: "size-3",
63
+ /** @deprecated Use md */
64
+ medium: "size-4",
65
+ /** @deprecated Use lg */
66
+ large: "size-[18px]"
67
+ }
68
+ },
69
+ defaultVariants: {
70
+ size: "sm"
71
+ }
72
+ }
73
+ );
74
+ var Switch = React__namespace.forwardRef(
75
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
76
+ SwitchPrimitive__namespace.Root,
77
+ {
78
+ "data-slot": "switch",
79
+ className: chunkNV4JOKWL_cjs.cn(switchRootVariants({ size }), className),
80
+ ...props,
81
+ ref,
82
+ children: /* @__PURE__ */ jsxRuntime.jsx(SwitchPrimitive__namespace.Thumb, { "data-slot": "switch-thumb", className: chunkNV4JOKWL_cjs.cn(switchThumbVariants({ size })) })
83
+ }
84
+ )
85
+ );
86
+ Switch.displayName = SwitchPrimitive__namespace.Root.displayName;
87
+ var CHANNEL_META = {
88
+ email: {
89
+ icon: lucideReact.Mail,
90
+ label: { fa: "\u0627\u06CC\u0645\u06CC\u0644", ar: "\u0628\u0631\u064A\u062F", en: "Email" }
91
+ },
92
+ sms: {
93
+ icon: lucideReact.MessageSquare,
94
+ label: { fa: "\u067E\u06CC\u0627\u0645\u06A9", ar: "\u0631\u0633\u0627\u0644\u0629", en: "SMS" }
95
+ },
96
+ telegram: {
97
+ icon: lucideReact.Send,
98
+ label: { fa: "\u062A\u0644\u06AF\u0631\u0627\u0645", ar: "\u062A\u064A\u0644\u064A\u062C\u0631\u0627\u0645", en: "Telegram" }
99
+ },
100
+ "in-app": {
101
+ icon: lucideReact.Bell,
102
+ label: { fa: "\u062F\u0631\u0648\u0646\u200C\u0628\u0631\u0646\u0627\u0645\u0647\u200C\u0627\u06CC", ar: "\u062F\u0627\u062E\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642", en: "In-app" }
103
+ },
104
+ webhook: {
105
+ icon: lucideReact.Send,
106
+ label: { fa: "\u0648\u0628\u200C\u0647\u0648\u06A9", ar: "\u0648\u064A\u0628 \u0647\u0648\u0643", en: "Webhook" }
107
+ }
108
+ };
109
+ var STRINGS = {
110
+ fa: {
111
+ trigger: "\u0634\u0631\u0637 \u0641\u0639\u0627\u0644\u200C\u0633\u0627\u0632\u06CC",
112
+ threshold: "\u0622\u0633\u062A\u0627\u0646\u0647",
113
+ channels: "\u06A9\u0627\u0646\u0627\u0644\u200C\u0647\u0627",
114
+ lastFired: "\u0622\u062E\u0631\u06CC\u0646 \u0641\u0639\u0627\u0644\u200C\u0633\u0627\u0632\u06CC",
115
+ fireCount: "\u062A\u0639\u062F\u0627\u062F \u0641\u0639\u0627\u0644\u200C\u0633\u0627\u0632\u06CC",
116
+ active: "\u0641\u0639\u0627\u0644"
117
+ },
118
+ ar: {
119
+ trigger: "\u0634\u0631\u0637 \u0627\u0644\u062A\u0634\u063A\u064A\u0644",
120
+ threshold: "\u0627\u0644\u0639\u062A\u0628\u0629",
121
+ channels: "\u0627\u0644\u0642\u0646\u0648\u0627\u062A",
122
+ lastFired: "\u0622\u062E\u0631 \u062A\u0634\u063A\u064A\u0644",
123
+ fireCount: "\u0639\u062F\u062F \u0627\u0644\u0645\u0631\u0627\u062A",
124
+ active: "\u0646\u0634\u0637"
125
+ },
126
+ en: {
127
+ trigger: "Trigger",
128
+ threshold: "Threshold",
129
+ channels: "Channels",
130
+ lastFired: "Last fired",
131
+ fireCount: "Fire count",
132
+ active: "Active"
133
+ }
134
+ };
135
+ var AlertRuleCard = React__namespace.forwardRef(
136
+ ({
137
+ className,
138
+ name,
139
+ trigger,
140
+ threshold,
141
+ severity,
142
+ channels,
143
+ active,
144
+ onActiveChange,
145
+ lastFired,
146
+ fireCount,
147
+ locale = "fa",
148
+ ...props
149
+ }, ref) => {
150
+ const t = STRINGS[locale] ?? STRINGS.fa;
151
+ return /* @__PURE__ */ jsxRuntime.jsxs(
152
+ "div",
153
+ {
154
+ ref,
155
+ "data-slot": "alert-rule-card",
156
+ "data-active": active || void 0,
157
+ "data-severity": severity,
158
+ className: chunkNV4JOKWL_cjs.cn(
159
+ "flex flex-col gap-3 rounded-lg border border-border bg-background p-4",
160
+ !active && "opacity-70",
161
+ className
162
+ ),
163
+ ...props,
164
+ children: [
165
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
166
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
167
+ active ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "size-4 text-brand-default", "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BellOff, { className: "size-4 text-foreground-lighter", "aria-hidden": "true" }),
168
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-foreground truncate", children: name })
169
+ ] }) }),
170
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 shrink-0", children: [
171
+ severity && /* @__PURE__ */ jsxRuntime.jsx(chunkGKRAZGDI_cjs.SeverityBadge, { severity, size: "sm", locale }),
172
+ /* @__PURE__ */ jsxRuntime.jsx(Switch, { checked: active, onCheckedChange: onActiveChange, "aria-label": t.active })
173
+ ] })
174
+ ] }),
175
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
176
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-2xs text-foreground-lighter", children: t.trigger }),
177
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground leading-relaxed", children: trigger })
178
+ ] }),
179
+ threshold && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs", children: [
180
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-foreground-lighter", children: [
181
+ t.threshold,
182
+ ":"
183
+ ] }),
184
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono tabular-nums text-foreground", "data-slot": "alert-rule-card-threshold", children: threshold })
185
+ ] }),
186
+ channels && channels.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 flex-wrap pt-2 border-t border-border", children: [
187
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-2xs text-foreground-lighter", children: [
188
+ t.channels,
189
+ ":"
190
+ ] }),
191
+ channels.map((ch) => {
192
+ const meta = CHANNEL_META[ch];
193
+ const Icon = meta.icon;
194
+ return /* @__PURE__ */ jsxRuntime.jsxs(
195
+ "span",
196
+ {
197
+ className: "inline-flex items-center gap-1 rounded-full bg-surface-200 px-2 py-0.5 text-2xs text-foreground",
198
+ "data-slot": "alert-rule-card-channel",
199
+ "data-channel": ch,
200
+ children: [
201
+ /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "size-3", "aria-hidden": "true" }),
202
+ meta.label[locale] ?? meta.label.fa
203
+ ]
204
+ },
205
+ ch
206
+ );
207
+ })
208
+ ] }),
209
+ (lastFired || typeof fireCount === "number") && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2 text-2xs text-foreground-lighter pt-1", children: [
210
+ lastFired && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
211
+ t.lastFired,
212
+ ": ",
213
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground", children: lastFired })
214
+ ] }),
215
+ typeof fireCount === "number" && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "tabular-nums", children: [
216
+ t.fireCount,
217
+ ": ",
218
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-medium", children: fireCount })
219
+ ] })
220
+ ] })
221
+ ]
222
+ }
223
+ );
224
+ }
225
+ );
226
+ AlertRuleCard.displayName = "AlertRuleCard";
227
+
228
+ exports.AlertRuleCard = AlertRuleCard;
229
+ exports.Switch = Switch;
230
+ //# sourceMappingURL=chunk-7RVPG3LE.cjs.map
231
+ //# sourceMappingURL=chunk-7RVPG3LE.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/switch.tsx","../src/components/ui/alert-rule-card.tsx"],"names":["cva","React","jsx","SwitchPrimitive","cn","Mail","MessageSquare","Send","Bell","React2","jsxs","BellOff","SeverityBadge"],"mappings":"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","file":"chunk-7RVPG3LE.cjs","sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SwitchPrimitive from '@radix-ui/react-switch'\nimport { VariantProps, cva } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst switchRootVariants = cva(\n 'peer inline-flex shrink-0 cursor-pointer items-center rounded-full border transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-brand data-[state=checked]:hover:bg-brand-600/90 data-[state=unchecked]:bg-control data-[state=unchecked]:hover:bg-border',\n {\n variants: {\n size: {\n sm: 'h-[16px] w-[28px]',\n md: 'h-[20px] w-[34px]',\n lg: 'h-[24px] w-[44px]',\n /** @deprecated Use sm */ small: 'h-[16px] w-[28px]',\n /** @deprecated Use md */ medium: 'h-[20px] w-[34px]',\n /** @deprecated Use lg */ large: 'h-[24px] w-[44px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n }\n)\n\n// data-[state=checked]:bg-white intentional: --foreground-contrast is near-black in .dark theme,\n// which would produce a near-black thumb on the colored track — bad. White thumb on brand-colored track is the design intent.\nconst switchThumbVariants = cva(\n 'pointer-events-none block rounded-full bg-foreground-lighter data-[state=checked]:bg-white shadow-lg ring-0 transition-transform',\n {\n variants: {\n size: {\n sm: 'size-3',\n md: 'size-4',\n lg: 'size-[18px]',\n /** @deprecated Use sm */ small: 'size-3',\n /** @deprecated Use md */ medium: 'size-4',\n /** @deprecated Use lg */ large: 'size-[18px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n }\n)\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, VariantProps<typeof switchRootVariants> {}\n\nconst Switch = React.forwardRef<React.ElementRef<typeof SwitchPrimitive.Root>, SwitchProps>(\n ({ className, size, ...props }, ref) => (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(switchRootVariants({ size }), className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitive.Thumb data-slot=\"switch-thumb\" className={cn(switchThumbVariants({ size }))} />\n </SwitchPrimitive.Root>\n )\n)\nSwitch.displayName = SwitchPrimitive.Root.displayName\n\nexport { Switch }\n","'use client'\n\nimport * as React from 'react'\nimport { Bell, BellOff, Mail, MessageSquare, Send } from 'lucide-react'\nimport { cn, type SupportedLocale } from '@/lib/utils'\nimport { Switch } from './switch'\nimport { SeverityBadge } from './severity-badge'\nimport type { SeverityKey } from '@/lib/i18n'\n\n/**\n * AlertRuleCard — saved alert-rule definition. Shows trigger summary,\n * threshold, severity tag, target channels, and an active/inactive toggle.\n *\n * Designed for \"Alert Rules\" management pages — a list of these cards lets\n * an analyst quickly scan + tweak which alerts are running.\n */\n\nexport type AlertChannel = 'email' | 'sms' | 'telegram' | 'in-app' | 'webhook'\n\nconst CHANNEL_META: Record<\n AlertChannel,\n {\n icon: React.ComponentType<React.SVGAttributes<SVGElement>>\n label: Record<SupportedLocale, string>\n }\n> = {\n email: {\n icon: Mail,\n label: { fa: 'ایمیل', ar: 'بريد', en: 'Email' },\n },\n sms: {\n icon: MessageSquare,\n label: { fa: 'پیامک', ar: 'رسالة', en: 'SMS' },\n },\n telegram: {\n icon: Send,\n label: { fa: 'تلگرام', ar: 'تيليجرام', en: 'Telegram' },\n },\n 'in-app': {\n icon: Bell,\n label: { fa: 'درون‌برنامه‌ای', ar: 'داخل التطبيق', en: 'In-app' },\n },\n webhook: {\n icon: Send,\n label: { fa: 'وب‌هوک', ar: 'ويب هوك', en: 'Webhook' },\n },\n}\n\nexport interface AlertRuleCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Rule name (e.g., \"افزایش ناگهانی منفی\") */\n name: React.ReactNode\n /** Trigger description in plain language (e.g., \"هرگاه نرخ منفی > ۲۰٪ شد\") */\n trigger: React.ReactNode\n /** Threshold value display (e.g., \"≥ ۲۰٪\", \"> ۱۰۰۰ mentions\") */\n threshold?: React.ReactNode\n /** Severity that this alert raises */\n severity?: SeverityKey\n /** Channels this rule fires through */\n channels?: AlertChannel[]\n /** Active state (master switch) */\n active: boolean\n /** Called when the user toggles the switch */\n onActiveChange: (next: boolean) => void\n /** Last-fired timestamp display (e.g., \"۲ ساعت پیش\") */\n lastFired?: React.ReactNode\n /** Optional total fire count */\n fireCount?: number\n /** Locale @default 'fa' */\n locale?: SupportedLocale\n}\n\nconst STRINGS: Record<\n SupportedLocale,\n { trigger: string; threshold: string; channels: string; lastFired: string; fireCount: string; active: string }\n> = {\n fa: {\n trigger: 'شرط فعال‌سازی',\n threshold: 'آستانه',\n channels: 'کانال‌ها',\n lastFired: 'آخرین فعال‌سازی',\n fireCount: 'تعداد فعال‌سازی',\n active: 'فعال',\n },\n ar: {\n trigger: 'شرط التشغيل',\n threshold: 'العتبة',\n channels: 'القنوات',\n lastFired: 'آخر تشغيل',\n fireCount: 'عدد المرات',\n active: 'نشط',\n },\n en: {\n trigger: 'Trigger',\n threshold: 'Threshold',\n channels: 'Channels',\n lastFired: 'Last fired',\n fireCount: 'Fire count',\n active: 'Active',\n },\n}\n\nconst AlertRuleCard = React.forwardRef<HTMLDivElement, AlertRuleCardProps>(\n (\n {\n className,\n name,\n trigger,\n threshold,\n severity,\n channels,\n active,\n onActiveChange,\n lastFired,\n fireCount,\n locale = 'fa',\n ...props\n },\n ref\n ) => {\n const t = STRINGS[locale] ?? STRINGS.fa\n return (\n <div\n ref={ref}\n data-slot=\"alert-rule-card\"\n data-active={active || undefined}\n data-severity={severity}\n className={cn(\n 'flex flex-col gap-3 rounded-lg border border-border bg-background p-4',\n !active && 'opacity-70',\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-start gap-3\">\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n {active ? (\n <Bell className=\"size-4 text-brand-default\" aria-hidden=\"true\" />\n ) : (\n <BellOff className=\"size-4 text-foreground-lighter\" aria-hidden=\"true\" />\n )}\n <h3 className=\"text-sm font-semibold text-foreground truncate\">{name}</h3>\n </div>\n </div>\n <div className=\"flex items-center gap-2 shrink-0\">\n {severity && <SeverityBadge severity={severity} size=\"sm\" locale={locale} />}\n <Switch checked={active} onCheckedChange={onActiveChange} aria-label={t.active} />\n </div>\n </div>\n\n {/* Trigger description */}\n <div className=\"space-y-1.5\">\n <div className=\"text-2xs text-foreground-lighter\">{t.trigger}</div>\n <p className=\"text-sm text-foreground leading-relaxed\">{trigger}</p>\n </div>\n\n {/* Threshold display */}\n {threshold && (\n <div className=\"flex items-center gap-2 text-xs\">\n <span className=\"text-foreground-lighter\">{t.threshold}:</span>\n <span className=\"font-mono tabular-nums text-foreground\" data-slot=\"alert-rule-card-threshold\">\n {threshold}\n </span>\n </div>\n )}\n\n {/* Channels */}\n {channels && channels.length > 0 && (\n <div className=\"flex items-center gap-2 flex-wrap pt-2 border-t border-border\">\n <span className=\"text-2xs text-foreground-lighter\">{t.channels}:</span>\n {channels.map((ch) => {\n const meta = CHANNEL_META[ch]\n const Icon = meta.icon\n return (\n <span\n key={ch}\n className=\"inline-flex items-center gap-1 rounded-full bg-surface-200 px-2 py-0.5 text-2xs text-foreground\"\n data-slot=\"alert-rule-card-channel\"\n data-channel={ch}\n >\n <Icon className=\"size-3\" aria-hidden=\"true\" />\n {meta.label[locale] ?? meta.label.fa}\n </span>\n )\n })}\n </div>\n )}\n\n {/* Footer — last fired + fire count */}\n {(lastFired || typeof fireCount === 'number') && (\n <div className=\"flex items-center justify-between gap-2 text-2xs text-foreground-lighter pt-1\">\n {lastFired && (\n <span>\n {t.lastFired}: <span className=\"text-foreground\">{lastFired}</span>\n </span>\n )}\n {typeof fireCount === 'number' && (\n <span className=\"tabular-nums\">\n {t.fireCount}: <span className=\"text-foreground font-medium\">{fireCount}</span>\n </span>\n )}\n </div>\n )}\n </div>\n )\n }\n)\nAlertRuleCard.displayName = 'AlertRuleCard'\n\nexport { AlertRuleCard }\n"]}
@@ -0,0 +1,120 @@
1
+ 'use strict';
2
+
3
+ var chunk3AIJKXBV_cjs = require('./chunk-3AIJKXBV.cjs');
4
+ var React = require('react');
5
+ var recharts = require('recharts');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+
26
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
27
+
28
+ var PartoAreaChart = React__namespace.forwardRef(function PartoAreaChart2({
29
+ data,
30
+ dataKeys,
31
+ xAxisKey = "name",
32
+ curve = "monotone",
33
+ strokeWidth = 2,
34
+ fillOpacity = 0.08,
35
+ showDots = false,
36
+ enableGridY = true,
37
+ enableGridX = false,
38
+ margin = { top: 20, right: 20, bottom: 50, left: 50 },
39
+ axisBottom,
40
+ axisLeft,
41
+ tooltipFormatter,
42
+ locale = "fa",
43
+ className,
44
+ isLoading = false,
45
+ ariaLabel,
46
+ chartProps
47
+ }, ref) {
48
+ const { chartColors, axisTickStyle, gridStyle, tooltipStyle, crosshairStyle } = chunk3AIJKXBV_cjs.useChartTheme();
49
+ const defaultXTick = React__namespace.useMemo(() => chunk3AIJKXBV_cjs.localeAwareCategoryTick(locale), [locale]);
50
+ const defaultYTick = React__namespace.useMemo(() => chunk3AIJKXBV_cjs.localeAwareNumberTick(locale), [locale]);
51
+ if (isLoading) {
52
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk3AIJKXBV_cjs.ChartLoadingSkeleton, { className });
53
+ }
54
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk3AIJKXBV_cjs.ChartContainer, { ref, className, dataSlot: "area-chart", ariaLabel, children: /* @__PURE__ */ jsxRuntime.jsx(recharts.ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxRuntime.jsxs(recharts.AreaChart, { data, margin, ...chartProps, children: [
55
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: dataKeys.map((key, i) => /* @__PURE__ */ jsxRuntime.jsxs("linearGradient", { id: `area-gradient-${key}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
56
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "0%", stopColor: chartColors[i % chartColors.length], stopOpacity: fillOpacity }),
57
+ /* @__PURE__ */ jsxRuntime.jsx("stop", { offset: "100%", stopColor: chartColors[i % chartColors.length], stopOpacity: 0 })
58
+ ] }, key)) }),
59
+ (enableGridX || enableGridY) && /* @__PURE__ */ jsxRuntime.jsx(
60
+ recharts.CartesianGrid,
61
+ {
62
+ horizontal: enableGridY,
63
+ vertical: enableGridX,
64
+ stroke: gridStyle.stroke,
65
+ strokeDasharray: gridStyle.strokeDasharray,
66
+ strokeOpacity: gridStyle.strokeOpacity
67
+ }
68
+ ),
69
+ axisBottom !== null && /* @__PURE__ */ jsxRuntime.jsx(
70
+ recharts.XAxis,
71
+ {
72
+ dataKey: xAxisKey,
73
+ tick: axisTickStyle,
74
+ tickLine: false,
75
+ axisLine: false,
76
+ tickMargin: 12,
77
+ tickFormatter: defaultXTick,
78
+ ...axisBottom
79
+ }
80
+ ),
81
+ axisLeft !== null && /* @__PURE__ */ jsxRuntime.jsx(
82
+ recharts.YAxis,
83
+ {
84
+ tick: axisTickStyle,
85
+ tickLine: false,
86
+ axisLine: false,
87
+ tickMargin: 12,
88
+ tickFormatter: defaultYTick,
89
+ ...axisLeft
90
+ }
91
+ ),
92
+ /* @__PURE__ */ jsxRuntime.jsx(
93
+ recharts.Tooltip,
94
+ {
95
+ cursor: crosshairStyle,
96
+ content: /* @__PURE__ */ jsxRuntime.jsx(chunk3AIJKXBV_cjs.ChartTooltip, { tooltipStyle, formatter: tooltipFormatter, locale })
97
+ }
98
+ ),
99
+ dataKeys.map((key, i) => /* @__PURE__ */ jsxRuntime.jsx(
100
+ recharts.Area,
101
+ {
102
+ type: curve,
103
+ dataKey: key,
104
+ stroke: chartColors[i % chartColors.length],
105
+ strokeWidth,
106
+ fill: `url(#area-gradient-${key})`,
107
+ dot: showDots,
108
+ activeDot: { r: 4, strokeWidth: 2 },
109
+ animationDuration: 800,
110
+ animationEasing: "ease-out"
111
+ },
112
+ key
113
+ ))
114
+ ] }) }) });
115
+ });
116
+ PartoAreaChart.displayName = "PartoAreaChart";
117
+
118
+ exports.PartoAreaChart = PartoAreaChart;
119
+ //# sourceMappingURL=chunk-7Y4V3R3Y.cjs.map
120
+ //# sourceMappingURL=chunk-7Y4V3R3Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/charts/PartoAreaChart.tsx"],"names":["React","PartoAreaChart","useChartTheme","localeAwareCategoryTick","localeAwareNumberTick","jsx","ChartLoadingSkeleton","ChartContainer","ResponsiveContainer","jsxs","AreaChart","CartesianGrid","XAxis","YAxis","Tooltip","ChartTooltip","Area"],"mappings":"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","file":"chunk-7Y4V3R3Y.cjs","sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'\n\nimport { useChartTheme } from '@/hooks/use-chart-theme'\nimport { type SupportedLocale } from '@/lib/utils'\nimport {\n ChartContainer,\n ChartLoadingSkeleton,\n ChartTooltip,\n localeAwareCategoryTick,\n localeAwareNumberTick,\n} from './chart-utils'\n\nexport interface PartoAreaChartProps {\n /** Row-oriented data: [{ name: \"فروردین\", series1: 50, series2: 30 }] */\n data: Array<Record<string, any>>\n /** Keys for each area series (e.g. ['فروش', 'سود']) */\n dataKeys: string[]\n /** Field name for X axis (default: 'name') */\n xAxisKey?: string\n /** Curve type */\n curve?: 'monotone' | 'linear' | 'natural' | 'step'\n /** Line width */\n strokeWidth?: number\n /** Area fill opacity */\n fillOpacity?: number\n /** Show dots on data points */\n showDots?: boolean\n /** Show horizontal grid lines */\n enableGridY?: boolean\n /** Show vertical grid lines */\n enableGridX?: boolean\n /** Chart margins */\n margin?: { top?: number; right?: number; bottom?: number; left?: number }\n /** Custom X axis config */\n axisBottom?: Record<string, any> | null\n /** Custom Y axis config */\n axisLeft?: Record<string, any> | null\n /** Custom tooltip formatter */\n tooltipFormatter?: (name: string, value: number) => React.ReactNode\n /**\n * Locale for digit formatting in tooltips and axis ticks. fa/ar render\n * Persian/Arabic digits with locale suffixes; en uses Latin K/M/B.\n * Default: 'fa'.\n */\n locale?: SupportedLocale\n className?: string\n isLoading?: boolean\n ariaLabel?: string\n /** Additional Recharts AreaChart props */\n chartProps?: Record<string, any>\n}\n\nexport const PartoAreaChart = React.forwardRef<HTMLDivElement, PartoAreaChartProps>(function PartoAreaChart(\n {\n data,\n dataKeys,\n xAxisKey = 'name',\n curve = 'monotone',\n strokeWidth = 2,\n fillOpacity = 0.08,\n showDots = false,\n enableGridY = true,\n enableGridX = false,\n margin = { top: 20, right: 20, bottom: 50, left: 50 },\n axisBottom,\n axisLeft,\n tooltipFormatter,\n locale = 'fa',\n className,\n isLoading = false,\n ariaLabel,\n chartProps,\n },\n ref\n) {\n const { chartColors, axisTickStyle, gridStyle, tooltipStyle, crosshairStyle } = useChartTheme()\n const defaultXTick = React.useMemo(() => localeAwareCategoryTick(locale), [locale])\n const defaultYTick = React.useMemo(() => localeAwareNumberTick(locale), [locale])\n\n if (isLoading) {\n return <ChartLoadingSkeleton className={className} />\n }\n\n return (\n <ChartContainer ref={ref} className={className} dataSlot=\"area-chart\" ariaLabel={ariaLabel}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <AreaChart data={data} margin={margin} {...chartProps}>\n <defs>\n {dataKeys.map((key, i) => (\n <linearGradient key={key} id={`area-gradient-${key}`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={chartColors[i % chartColors.length]} stopOpacity={fillOpacity} />\n <stop offset=\"100%\" stopColor={chartColors[i % chartColors.length]} stopOpacity={0} />\n </linearGradient>\n ))}\n </defs>\n\n {(enableGridX || enableGridY) && (\n <CartesianGrid\n horizontal={enableGridY}\n vertical={enableGridX}\n stroke={gridStyle.stroke}\n strokeDasharray={gridStyle.strokeDasharray}\n strokeOpacity={gridStyle.strokeOpacity}\n />\n )}\n\n {axisBottom !== null && (\n <XAxis\n dataKey={xAxisKey}\n tick={axisTickStyle}\n tickLine={false}\n axisLine={false}\n tickMargin={12}\n tickFormatter={defaultXTick}\n {...axisBottom}\n />\n )}\n\n {axisLeft !== null && (\n <YAxis\n tick={axisTickStyle}\n tickLine={false}\n axisLine={false}\n tickMargin={12}\n tickFormatter={defaultYTick}\n {...axisLeft}\n />\n )}\n\n <Tooltip\n cursor={crosshairStyle}\n content={<ChartTooltip tooltipStyle={tooltipStyle} formatter={tooltipFormatter} locale={locale} />}\n />\n\n {dataKeys.map((key, i) => (\n <Area\n key={key}\n type={curve}\n dataKey={key}\n stroke={chartColors[i % chartColors.length]}\n strokeWidth={strokeWidth}\n fill={`url(#area-gradient-${key})`}\n dot={showDots}\n activeDot={{ r: 4, strokeWidth: 2 }}\n animationDuration={800}\n animationEasing=\"ease-out\"\n />\n ))}\n </AreaChart>\n </ResponsiveContainer>\n </ChartContainer>\n )\n})\nPartoAreaChart.displayName = 'PartoAreaChart'\n"]}
@@ -0,0 +1,39 @@
1
+ // src/lib/constants.ts
2
+ function normalizeSize(size) {
3
+ return size;
4
+ }
5
+ var SIZE = {
6
+ text: {
7
+ xs: "text-xs",
8
+ sm: "text-sm leading-4",
9
+ md: "text-sm",
10
+ lg: "text-base",
11
+ xl: "text-base"
12
+ },
13
+ padding: {
14
+ xs: "px-2.5 py-1",
15
+ sm: "px-3 py-2",
16
+ md: "px-4 py-2",
17
+ lg: "px-4 py-2",
18
+ xl: "px-6 py-3"
19
+ },
20
+ height: {
21
+ xs: "h-[26px]",
22
+ sm: "h-[34px]",
23
+ md: "h-[38px]",
24
+ lg: "h-[42px]",
25
+ xl: "h-[50px]"
26
+ }
27
+ };
28
+ var SIZE_VARIANTS = {
29
+ xs: `${SIZE.text["xs"]} ${SIZE.padding["xs"]} ${SIZE.height["xs"]}`,
30
+ sm: `${SIZE.text["sm"]} ${SIZE.padding["sm"]} ${SIZE.height["sm"]}`,
31
+ md: `${SIZE.text["md"]} ${SIZE.padding["md"]} ${SIZE.height["md"]}`,
32
+ lg: `${SIZE.text["lg"]} ${SIZE.padding["lg"]} ${SIZE.height["lg"]}`,
33
+ xl: `${SIZE.text["xl"]} ${SIZE.padding["xl"]} ${SIZE.height["xl"]}`
34
+ };
35
+ var SIZE_VARIANTS_DEFAULT = "sm";
36
+
37
+ export { SIZE_VARIANTS, SIZE_VARIANTS_DEFAULT, normalizeSize };
38
+ //# sourceMappingURL=chunk-AXAY64KL.js.map
39
+ //# sourceMappingURL=chunk-AXAY64KL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/constants.ts"],"names":[],"mappings":";AAgBO,SAAS,cAAc,IAAA,EAAkC;AAC9D,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,IAAA,GAAO;AAAA,EAClB,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,mBAAA;AAAA,IACJ,EAAA,EAAI,SAAA;AAAA,IACJ,EAAA,EAAI,WAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,OAAA,EAAS;AAAA,IACP,EAAA,EAAI,aAAA;AAAA,IACJ,EAAA,EAAI,WAAA;AAAA,IACJ,EAAA,EAAI,WAAA;AAAA,IACJ,EAAA,EAAI,WAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,UAAA;AAAA,IACJ,EAAA,EAAI,UAAA;AAAA,IACJ,EAAA,EAAI,UAAA;AAAA,IACJ,EAAA,EAAI,UAAA;AAAA,IACJ,EAAA,EAAI;AAAA;AAER,CAAA;AA2BO,IAAM,aAAA,GAAgB;AAAA,EAC3B,EAAA,EAAI,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAAA,EACjE,EAAA,EAAI,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAAA,EACjE,EAAA,EAAI,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAAA,EACjE,EAAA,EAAI,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA,CAAA;AAAA,EACjE,EAAA,EAAI,CAAA,EAAG,IAAA,CAAK,IAAA,CAAK,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,CAAO,IAAI,CAAC,CAAA;AACnE;AAWO,IAAM,qBAAA,GAAwB","file":"chunk-AXAY64KL.js","sourcesContent":["/**\n * Standard size scale used across the design system.\n * Components should accept these values for their `size` prop.\n */\nexport type StandardSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\n/** @deprecated Use `StandardSize` instead — legacy names have been removed */\nexport type LegacySize = StandardSize\n\n/** @deprecated Use `StandardSize` instead */\nexport type SizeWithLegacy = StandardSize\n\n/**\n * Normalizes a size value to standard names.\n * @deprecated All sizes are standard now — this function is a no-op passthrough.\n */\nexport function normalizeSize(size: StandardSize): StandardSize {\n return size\n}\n\nexport const SIZE = {\n text: {\n xs: 'text-xs',\n sm: 'text-sm leading-4',\n md: 'text-sm',\n lg: 'text-base',\n xl: 'text-base',\n },\n padding: {\n xs: 'px-2.5 py-1',\n sm: 'px-3 py-2',\n md: 'px-4 py-2',\n lg: 'px-4 py-2',\n xl: 'px-6 py-3',\n },\n height: {\n xs: 'h-[26px]',\n sm: 'h-[34px]',\n md: 'h-[38px]',\n lg: 'h-[42px]',\n xl: 'h-[50px]',\n },\n}\n\n/** Inner sizes for nested elements (badges inside buttons, multi-select items, etc.) */\nexport const SIZE_INNER = {\n text: {\n xs: 'text-xs',\n sm: 'text-sm leading-4',\n md: 'text-sm',\n lg: 'text-base',\n xl: 'text-base',\n },\n padding: {\n xs: 'px-2.5 py-1',\n sm: 'px-3 py-2',\n md: 'px-4 py-2',\n lg: 'px-4 py-2',\n xl: 'px-6 py-3',\n },\n height: {\n xs: 'h-[24px]',\n sm: 'h-[28px]',\n md: 'h-[32px]',\n lg: 'h-[36px]',\n xl: 'h-[44px]',\n },\n}\n\nexport const SIZE_VARIANTS = {\n xs: `${SIZE.text['xs']} ${SIZE.padding['xs']} ${SIZE.height['xs']}`,\n sm: `${SIZE.text['sm']} ${SIZE.padding['sm']} ${SIZE.height['sm']}`,\n md: `${SIZE.text['md']} ${SIZE.padding['md']} ${SIZE.height['md']}`,\n lg: `${SIZE.text['lg']} ${SIZE.padding['lg']} ${SIZE.height['lg']}`,\n xl: `${SIZE.text['xl']} ${SIZE.padding['xl']} ${SIZE.height['xl']}`,\n}\n\nexport const SIZE_VARIANTS_INNER = {\n xs: `${SIZE.text['xs']} ${SIZE.padding['xs']} ${SIZE_INNER.height['xs']}`,\n sm: `${SIZE.text['sm']} ${SIZE.padding['sm']} ${SIZE_INNER.height['sm']}`,\n md: `${SIZE.text['md']} ${SIZE.padding['md']} ${SIZE_INNER.height['md']}`,\n lg: `${SIZE.text['lg']} ${SIZE.padding['lg']} ${SIZE_INNER.height['lg']}`,\n xl: `${SIZE.text['xl']} ${SIZE.padding['xl']} ${SIZE_INNER.height['xl']}`,\n}\n\n/** @deprecated Use 'sm' instead */\nexport const SIZE_VARIANTS_DEFAULT = 'sm'\n"]}