@parto-system-design/ui 1.1.5 → 1.1.8

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-2ACKKPWA.cjs +112 -0
  5. package/dist/chunk-2ACKKPWA.cjs.map +1 -0
  6. package/dist/chunk-2UD3LGVX.cjs +316 -0
  7. package/dist/chunk-2UD3LGVX.cjs.map +1 -0
  8. package/dist/chunk-3QYYPPFJ.js +269 -0
  9. package/dist/chunk-3QYYPPFJ.js.map +1 -0
  10. package/dist/chunk-4SVQNEVH.js +173 -0
  11. package/dist/chunk-4SVQNEVH.js.map +1 -0
  12. package/dist/chunk-4WONHORR.cjs +152 -0
  13. package/dist/chunk-4WONHORR.cjs.map +1 -0
  14. package/dist/chunk-5HCXH6GS.js +409 -0
  15. package/dist/chunk-5HCXH6GS.js.map +1 -0
  16. package/dist/chunk-5JJSRGJD.js +31 -0
  17. package/dist/chunk-5JJSRGJD.js.map +1 -0
  18. package/dist/chunk-5K6E4ZSW.cjs +77 -0
  19. package/dist/chunk-5K6E4ZSW.cjs.map +1 -0
  20. package/dist/chunk-5NY26ULO.js +89 -0
  21. package/dist/chunk-5NY26ULO.js.map +1 -0
  22. package/dist/chunk-7RVPG3LE.cjs +231 -0
  23. package/dist/chunk-7RVPG3LE.cjs.map +1 -0
  24. package/dist/chunk-AYEK3WOM.js +207 -0
  25. package/dist/chunk-AYEK3WOM.js.map +1 -0
  26. package/dist/chunk-BRMBLIQG.js +53 -0
  27. package/dist/chunk-BRMBLIQG.js.map +1 -0
  28. package/dist/chunk-CAJKSTXX.cjs +54 -0
  29. package/dist/chunk-CAJKSTXX.cjs.map +1 -0
  30. package/dist/chunk-CKFWMHQU.js +401 -0
  31. package/dist/chunk-CKFWMHQU.js.map +1 -0
  32. package/dist/chunk-CV3N3HVK.js +672 -0
  33. package/dist/chunk-CV3N3HVK.js.map +1 -0
  34. package/dist/chunk-D2EBLE2B.cjs +220 -0
  35. package/dist/chunk-D2EBLE2B.cjs.map +1 -0
  36. package/dist/chunk-GCZ6YATL.js +940 -0
  37. package/dist/chunk-GCZ6YATL.js.map +1 -0
  38. package/dist/chunk-GKRAZGDI.cjs +84 -0
  39. package/dist/chunk-GKRAZGDI.cjs.map +1 -0
  40. package/dist/chunk-GPYJ66CG.js +45 -0
  41. package/dist/chunk-GPYJ66CG.js.map +1 -0
  42. package/dist/chunk-HF6XU5NI.js +84 -0
  43. package/dist/chunk-HF6XU5NI.js.map +1 -0
  44. package/dist/chunk-HJPDZOMJ.cjs +87 -0
  45. package/dist/chunk-HJPDZOMJ.cjs.map +1 -0
  46. package/dist/chunk-HS3XI3CC.cjs +69 -0
  47. package/dist/chunk-HS3XI3CC.cjs.map +1 -0
  48. package/dist/chunk-HUCC3QH5.cjs +53 -0
  49. package/dist/chunk-HUCC3QH5.cjs.map +1 -0
  50. package/dist/chunk-HYZ6BQPS.cjs +425 -0
  51. package/dist/chunk-HYZ6BQPS.cjs.map +1 -0
  52. package/dist/chunk-ISCSZMYW.cjs +106 -0
  53. package/dist/chunk-ISCSZMYW.cjs.map +1 -0
  54. package/dist/chunk-IXFEFIDO.js +82 -0
  55. package/dist/chunk-IXFEFIDO.js.map +1 -0
  56. package/dist/chunk-JCJLN437.js +108 -0
  57. package/dist/chunk-JCJLN437.js.map +1 -0
  58. package/dist/chunk-JMKNNH63.cjs +982 -0
  59. package/dist/chunk-JMKNNH63.cjs.map +1 -0
  60. package/dist/chunk-JUBHQAA2.js +53 -0
  61. package/dist/chunk-JUBHQAA2.js.map +1 -0
  62. package/dist/chunk-K6G63EED.cjs +41 -0
  63. package/dist/chunk-K6G63EED.cjs.map +1 -0
  64. package/dist/chunk-KCWRCSI7.js +62 -0
  65. package/dist/chunk-KCWRCSI7.js.map +1 -0
  66. package/dist/chunk-KYM7NIJO.cjs +433 -0
  67. package/dist/chunk-KYM7NIJO.cjs.map +1 -0
  68. package/dist/chunk-L2L5CKC2.js +291 -0
  69. package/dist/chunk-L2L5CKC2.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-MEK4RSGC.js +65 -0
  73. package/dist/chunk-MEK4RSGC.js.map +1 -0
  74. package/dist/chunk-MEKWH3GS.js +89 -0
  75. package/dist/chunk-MEKWH3GS.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-MMC6M35Q.cjs +272 -0
  79. package/dist/chunk-MMC6M35Q.cjs.map +1 -0
  80. package/dist/chunk-NMH43BDC.js +130 -0
  81. package/dist/chunk-NMH43BDC.js.map +1 -0
  82. package/dist/chunk-NORDUD2T.cjs +135 -0
  83. package/dist/chunk-NORDUD2T.cjs.map +1 -0
  84. package/dist/chunk-NV4JOKWL.cjs +197 -0
  85. package/dist/chunk-NV4JOKWL.cjs.map +1 -0
  86. package/dist/chunk-O2JG7WY5.cjs +121 -0
  87. package/dist/chunk-O2JG7WY5.cjs.map +1 -0
  88. package/dist/chunk-ONO2FTV4.cjs +68 -0
  89. package/dist/chunk-ONO2FTV4.cjs.map +1 -0
  90. package/dist/chunk-OQB6HIUL.cjs +108 -0
  91. package/dist/chunk-OQB6HIUL.cjs.map +1 -0
  92. package/dist/chunk-OS6CMYAS.cjs +79 -0
  93. package/dist/chunk-OS6CMYAS.cjs.map +1 -0
  94. package/dist/chunk-PYURPUTV.js +402 -0
  95. package/dist/chunk-PYURPUTV.js.map +1 -0
  96. package/dist/chunk-RJ3HYZ7S.js +44 -0
  97. package/dist/chunk-RJ3HYZ7S.js.map +1 -0
  98. package/dist/chunk-RZNRIOLT.js +128 -0
  99. package/dist/chunk-RZNRIOLT.js.map +1 -0
  100. package/dist/chunk-S3T2L6NA.js +38 -0
  101. package/dist/chunk-S3T2L6NA.js.map +1 -0
  102. package/dist/chunk-S5IPJQZ3.cjs +161 -0
  103. package/dist/chunk-S5IPJQZ3.cjs.map +1 -0
  104. package/dist/chunk-SB5DSYR5.js +211 -0
  105. package/dist/chunk-SB5DSYR5.js.map +1 -0
  106. package/dist/chunk-SFXV2DUH.js +106 -0
  107. package/dist/chunk-SFXV2DUH.js.map +1 -0
  108. package/dist/chunk-SXEPGD4Z.cjs +152 -0
  109. package/dist/chunk-SXEPGD4Z.cjs.map +1 -0
  110. package/dist/chunk-SXWSOU3Y.js +89 -0
  111. package/dist/chunk-SXWSOU3Y.js.map +1 -0
  112. package/dist/chunk-SZMVOHT7.cjs +107 -0
  113. package/dist/chunk-SZMVOHT7.cjs.map +1 -0
  114. package/dist/chunk-TWJXOV4C.js +145 -0
  115. package/dist/chunk-TWJXOV4C.js.map +1 -0
  116. package/dist/chunk-U3ADRIVO.cjs +434 -0
  117. package/dist/chunk-U3ADRIVO.cjs.map +1 -0
  118. package/dist/chunk-U5FLLCGC.cjs +151 -0
  119. package/dist/chunk-U5FLLCGC.cjs.map +1 -0
  120. package/dist/chunk-UOZN45G4.cjs +130 -0
  121. package/dist/chunk-UOZN45G4.cjs.map +1 -0
  122. package/dist/chunk-VHLDOG74.cjs +167 -0
  123. package/dist/chunk-VHLDOG74.cjs.map +1 -0
  124. package/dist/chunk-YC5KLN6I.js +139 -0
  125. package/dist/chunk-YC5KLN6I.js.map +1 -0
  126. package/dist/chunk-YENXXYUV.cjs +111 -0
  127. package/dist/chunk-YENXXYUV.cjs.map +1 -0
  128. package/dist/chunk-YFQWC2PW.js +113 -0
  129. package/dist/chunk-YFQWC2PW.js.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-ZBZDR4ZC.js +106 -0
  135. package/dist/chunk-ZBZDR4ZC.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 +53 -0
  139. package/dist/components/charts/PartoAreaChart.d.ts +53 -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 +61 -0
  145. package/dist/components/charts/PartoBarChart.d.ts +61 -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 +57 -0
  151. package/dist/components/charts/PartoLineChart.d.ts +57 -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 +52 -0
  157. package/dist/components/charts/PartoPieChart.d.ts +52 -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 +12195 -13224
  291. package/dist/index.cjs.map +1 -1
  292. package/dist/index.css +490 -34
  293. package/dist/index.d.cts +1635 -1263
  294. package/dist/index.d.ts +1635 -1263
  295. package/dist/index.js +10693 -12364
  296. package/dist/index.js.map +1 -1
  297. package/dist/page-card-CmShVqG-.d.cts +100 -0
  298. package/dist/page-card-HBn-cy4J.d.ts +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 @@
1
+ {"version":3,"sources":["../src/components/ui/saved-query-card.tsx"],"names":[],"mappings":"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","file":"chunk-SXWSOU3Y.js","sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { Search, Play, Star, Clock } from 'lucide-react'\nimport { cn, convertToLocalNumbers, type SupportedLocale } from '@/lib/utils'\nimport { Button } from './button'\n\n/**\n * SavedQueryCard — saved-search tile for analyst dashboards. Shows query\n * description + filter summary chips, run count, last-run timestamp, and a\n * one-click \"run again\" action button. Optional star/favorite toggle.\n */\n\nexport interface SavedQueryFilter {\n /** Filter label (e.g., \"احساس\") */\n label: React.ReactNode\n /** Filter value (e.g., \"منفی\") */\n value: React.ReactNode\n}\n\nexport interface SavedQueryCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Saved query name */\n name: React.ReactNode\n /** Optional 1-line description */\n description?: React.ReactNode\n /** Filter chips (label + value pairs) */\n filters?: SavedQueryFilter[]\n /** Total run count */\n runCount?: number\n /** Last-run display (e.g., \"۲ روز پیش\") */\n lastRun?: React.ReactNode\n /** Run-now callback */\n onRun?: () => void\n /** Run button label override */\n runLabel?: React.ReactNode\n /** Favorite/star state. When set, renders the star toggle */\n favorite?: {\n starred: boolean\n onChange: (next: boolean) => void\n }\n /** Locale @default 'fa' */\n locale?: SupportedLocale\n}\n\nconst STRINGS: Record<SupportedLocale, { run: string; runs: string; star: string; unstar: string }> = {\n fa: { run: 'اجرا', runs: 'اجرا', star: 'علاقه‌مندی', unstar: 'حذف از علاقه‌مندی‌ها' },\n ar: { run: 'تشغيل', runs: 'تشغيل', star: 'مفضلة', unstar: 'إزالة من المفضلة' },\n en: { run: 'Run', runs: 'runs', star: 'Favorite', unstar: 'Unfavorite' },\n}\n\nconst SavedQueryCard = React.forwardRef<HTMLDivElement, SavedQueryCardProps>(\n (\n { className, name, description, filters, runCount, lastRun, onRun, runLabel, favorite, locale = 'fa', ...props },\n ref\n ) => {\n const t = STRINGS[locale] ?? STRINGS.fa\n return (\n <div\n ref={ref}\n data-slot=\"saved-query-card\"\n className={cn('flex flex-col gap-3 rounded-lg border border-border bg-background p-4', className)}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-start gap-3\">\n <Search className=\"size-4 mt-0.5 shrink-0 text-foreground-lighter\" aria-hidden=\"true\" />\n <div className=\"flex-1 min-w-0\">\n <h3 className=\"text-sm font-semibold text-foreground truncate\">{name}</h3>\n {description && <p className=\"mt-0.5 text-xs text-foreground-lighter line-clamp-2\">{description}</p>}\n </div>\n {favorite && (\n <button\n type=\"button\"\n onClick={() => favorite.onChange(!favorite.starred)}\n className=\"shrink-0 inline-flex size-7 items-center justify-center rounded text-foreground-lighter hover:bg-surface-100 hover:text-foreground transition-colors\"\n aria-label={favorite.starred ? t.unstar : t.star}\n aria-pressed={favorite.starred}\n data-slot=\"saved-query-card-favorite\"\n >\n <Star\n className={cn('size-4', favorite.starred && 'fill-warning-default text-warning-default')}\n aria-hidden=\"true\"\n />\n </button>\n )}\n </div>\n\n {/* Filter chips */}\n {filters && filters.length > 0 && (\n <div className=\"flex flex-wrap gap-1.5\">\n {filters.map((f, i) => (\n <span\n key={i}\n className=\"inline-flex items-center gap-1 rounded-md border border-border bg-background-muted/40 px-2 py-0.5 text-2xs\"\n data-slot=\"saved-query-card-filter\"\n >\n <span className=\"text-foreground-lighter\">{f.label}:</span>\n <span className=\"text-foreground font-medium\">{f.value}</span>\n </span>\n ))}\n </div>\n )}\n\n {/* Footer — meta + run button */}\n <div className=\"flex items-center justify-between gap-2 pt-2 border-t border-border\">\n <div className=\"flex items-center gap-3 text-2xs text-foreground-lighter\">\n {typeof runCount === 'number' && (\n <span className=\"tabular-nums\">\n {convertToLocalNumbers(runCount, locale)} {t.runs}\n </span>\n )}\n {lastRun && (\n <span className=\"inline-flex items-center gap-1\">\n <Clock className=\"size-3\" aria-hidden=\"true\" />\n {lastRun}\n </span>\n )}\n </div>\n {onRun && (\n <Button size=\"sm\" variant=\"outline\" onClick={onRun} className=\"gap-1.5\" data-slot=\"saved-query-card-run\">\n <Play className=\"size-3\" aria-hidden=\"true\" />\n {runLabel ?? t.run}\n </Button>\n )}\n </div>\n </div>\n )\n }\n)\nSavedQueryCard.displayName = 'SavedQueryCard'\n\nexport { SavedQueryCard }\n"]}
@@ -0,0 +1,107 @@
1
+ 'use strict';
2
+
3
+ var chunkNV4JOKWL_cjs = require('./chunk-NV4JOKWL.cjs');
4
+ var React = require('react');
5
+ var SeparatorPrimitive = require('@radix-ui/react-separator');
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
+ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
28
+
29
+ var Separator = React__namespace.forwardRef(
30
+ ({ className, orientation = "horizontal", decorative = true, children, ...props }, ref) => {
31
+ if (!children) {
32
+ return /* @__PURE__ */ jsxRuntime.jsx(
33
+ SeparatorPrimitive__namespace.Root,
34
+ {
35
+ ref,
36
+ "data-slot": "separator",
37
+ decorative,
38
+ orientation,
39
+ className: chunkNV4JOKWL_cjs.cn(
40
+ "shrink-0 bg-border",
41
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
42
+ className
43
+ ),
44
+ ...props
45
+ }
46
+ );
47
+ }
48
+ if (orientation === "horizontal") {
49
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, "data-slot": "separator", className: chunkNV4JOKWL_cjs.cn("relative flex items-center w-full", className), ...props, children: [
50
+ /* @__PURE__ */ jsxRuntime.jsx(
51
+ SeparatorPrimitive__namespace.Root,
52
+ {
53
+ "data-slot": "separator-line",
54
+ decorative,
55
+ orientation: "horizontal",
56
+ className: "flex-1 h-[1px] bg-border"
57
+ }
58
+ ),
59
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "data-slot": "separator-content", className: "px-3 text-sm text-muted-foreground whitespace-nowrap", children }),
60
+ /* @__PURE__ */ jsxRuntime.jsx(
61
+ SeparatorPrimitive__namespace.Root,
62
+ {
63
+ "data-slot": "separator-line",
64
+ decorative,
65
+ orientation: "horizontal",
66
+ className: "flex-1 h-[1px] bg-border"
67
+ }
68
+ )
69
+ ] });
70
+ }
71
+ return /* @__PURE__ */ jsxRuntime.jsxs(
72
+ "div",
73
+ {
74
+ ref,
75
+ "data-slot": "separator",
76
+ className: chunkNV4JOKWL_cjs.cn("relative flex flex-col items-center h-full", className),
77
+ ...props,
78
+ children: [
79
+ /* @__PURE__ */ jsxRuntime.jsx(
80
+ SeparatorPrimitive__namespace.Root,
81
+ {
82
+ "data-slot": "separator-line",
83
+ decorative,
84
+ orientation: "vertical",
85
+ className: "flex-1 w-[1px] bg-border"
86
+ }
87
+ ),
88
+ /* @__PURE__ */ jsxRuntime.jsx("span", { "data-slot": "separator-content", className: "py-3 text-sm text-muted-foreground", children }),
89
+ /* @__PURE__ */ jsxRuntime.jsx(
90
+ SeparatorPrimitive__namespace.Root,
91
+ {
92
+ "data-slot": "separator-line",
93
+ decorative,
94
+ orientation: "vertical",
95
+ className: "flex-1 w-[1px] bg-border"
96
+ }
97
+ )
98
+ ]
99
+ }
100
+ );
101
+ }
102
+ );
103
+ Separator.displayName = SeparatorPrimitive__namespace.Root.displayName;
104
+
105
+ exports.Separator = Separator;
106
+ //# sourceMappingURL=chunk-SZMVOHT7.cjs.map
107
+ //# sourceMappingURL=chunk-SZMVOHT7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/separator.tsx"],"names":["React","jsx","SeparatorPrimitive","cn","jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAM,SAAA,GAAkBA,gBAAA,CAAA,UAAA;AAAA,EACtB,CAAC,EAAE,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,UAAA,GAAa,IAAA,EAAM,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAEzF,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,uBACEC,cAAA;AAAA,QAAoBC,6BAAA,CAAA,IAAA;AAAA,QAAnB;AAAA,UACC,GAAA;AAAA,UACA,WAAA,EAAU,WAAA;AAAA,UACV,UAAA;AAAA,UACA,WAAA;AAAA,UACA,SAAA,EAAWC,oBAAA;AAAA,YACT,oBAAA;AAAA,YACA,WAAA,KAAgB,eAAe,gBAAA,GAAmB,gBAAA;AAAA,YAClD;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA,OACN;AAAA,IAEJ;AAGA,IAAA,IAAI,gBAAgB,YAAA,EAAc;AAChC,MAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAU,WAAA,EAAU,WAAA,EAAY,SAAA,EAAWD,oBAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA,EAAI,GAAG,KAAA,EACtG,QAAA,EAAA;AAAA,wBAAAF,cAAA;AAAA,UAAoBC,6BAAA,CAAA,IAAA;AAAA,UAAnB;AAAA,YACC,WAAA,EAAU,gBAAA;AAAA,YACV,UAAA;AAAA,YACA,WAAA,EAAY,YAAA;AAAA,YACZ,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,uCACC,MAAA,EAAA,EAAK,WAAA,EAAU,mBAAA,EAAoB,SAAA,EAAU,wDAC3C,QAAA,EACH,CAAA;AAAA,wBACAD,cAAA;AAAA,UAAoBC,6BAAA,CAAA,IAAA;AAAA,UAAnB;AAAA,YACC,WAAA,EAAU,gBAAA;AAAA,YACV,UAAA;AAAA,YACA,WAAA,EAAY,YAAA;AAAA,YACZ,SAAA,EAAU;AAAA;AAAA;AACZ,OAAA,EACF,CAAA;AAAA,IAEJ;AAGA,IAAA,uBACEE,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAA,EAAU,WAAA;AAAA,QACV,SAAA,EAAWD,oBAAA,CAAG,4CAAA,EAA8C,SAAS,CAAA;AAAA,QACpE,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAF,cAAA;AAAA,YAAoBC,6BAAA,CAAA,IAAA;AAAA,YAAnB;AAAA,cACC,WAAA,EAAU,gBAAA;AAAA,cACV,UAAA;AAAA,cACA,WAAA,EAAY,UAAA;AAAA,cACZ,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,yCACC,MAAA,EAAA,EAAK,WAAA,EAAU,mBAAA,EAAoB,SAAA,EAAU,sCAC3C,QAAA,EACH,CAAA;AAAA,0BACAD,cAAA;AAAA,YAAoBC,6BAAA,CAAA,IAAA;AAAA,YAAnB;AAAA,cACC,WAAA,EAAU,gBAAA;AAAA,cACV,UAAA;AAAA,cACA,WAAA,EAAY,UAAA;AAAA,cACZ,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;AACA,SAAA,CAAU,cAAiCA,6BAAA,CAAA,IAAA,CAAK,WAAA","file":"chunk-SZMVOHT7.cjs","sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '@/lib/utils'\n\ninterface SeparatorProps extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {\n children?: React.ReactNode\n}\n\nconst Separator = React.forwardRef<React.ElementRef<typeof SeparatorPrimitive.Root>, SeparatorProps>(\n ({ className, orientation = 'horizontal', decorative = true, children, ...props }, ref) => {\n // If there's no children, render the default separator\n if (!children) {\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n }\n\n // If there are children (text), render separator with text\n if (orientation === 'horizontal') {\n return (\n <div ref={ref} data-slot=\"separator\" className={cn('relative flex items-center w-full', className)} {...props}>\n <SeparatorPrimitive.Root\n data-slot=\"separator-line\"\n decorative={decorative}\n orientation=\"horizontal\"\n className=\"flex-1 h-[1px] bg-border\"\n />\n <span data-slot=\"separator-content\" className=\"px-3 text-sm text-muted-foreground whitespace-nowrap\">\n {children}\n </span>\n <SeparatorPrimitive.Root\n data-slot=\"separator-line\"\n decorative={decorative}\n orientation=\"horizontal\"\n className=\"flex-1 h-[1px] bg-border\"\n />\n </div>\n )\n }\n\n // For vertical orientation with text (less common)\n return (\n <div\n ref={ref}\n data-slot=\"separator\"\n className={cn('relative flex flex-col items-center h-full', className)}\n {...props}\n >\n <SeparatorPrimitive.Root\n data-slot=\"separator-line\"\n decorative={decorative}\n orientation=\"vertical\"\n className=\"flex-1 w-[1px] bg-border\"\n />\n <span data-slot=\"separator-content\" className=\"py-3 text-sm text-muted-foreground\">\n {children}\n </span>\n <SeparatorPrimitive.Root\n data-slot=\"separator-line\"\n decorative={decorative}\n orientation=\"vertical\"\n className=\"flex-1 w-[1px] bg-border\"\n />\n </div>\n )\n }\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n"]}
@@ -0,0 +1,145 @@
1
+ import { useChartTheme, localeAwareCategoryTick, localeAwareNumberTick, ChartLoadingSkeleton, ChartContainer, ChartTooltip, ChartLegend } from './chunk-PYURPUTV.js';
2
+ import * as React from 'react';
3
+ import { ResponsiveContainer, BarChart, CartesianGrid, XAxis, YAxis, Tooltip, Bar } from 'recharts';
4
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
+
6
+ var PartoBarChart = React.forwardRef(function PartoBarChart2({
7
+ data,
8
+ keys,
9
+ indexBy,
10
+ groupMode = "grouped",
11
+ layout = "vertical",
12
+ margin = { top: 20, right: 20, bottom: 50, left: 50 },
13
+ barCategoryGap = "35%",
14
+ barGap = 2,
15
+ radius = [6, 6, 0, 0],
16
+ enableGridY = true,
17
+ enableGridX = false,
18
+ enableLabel = false,
19
+ axisBottom,
20
+ axisLeft,
21
+ tooltipFormatter,
22
+ locale = "fa",
23
+ className,
24
+ isLoading = false,
25
+ ariaLabel,
26
+ chartProps,
27
+ legend = false
28
+ }, ref) {
29
+ const { chartColors, axisTickStyle, gridStyle, tooltipStyle } = useChartTheme();
30
+ const categoryTick = React.useMemo(() => localeAwareCategoryTick(locale), [locale]);
31
+ const numberTick = React.useMemo(() => localeAwareNumberTick(locale), [locale]);
32
+ if (isLoading) {
33
+ return /* @__PURE__ */ jsx(ChartLoadingSkeleton, { className });
34
+ }
35
+ const rechartsLayout = layout === "horizontal" ? "vertical" : "horizontal";
36
+ const stackId = groupMode === "stacked" ? "stack" : void 0;
37
+ const legendItems = legend ? keys.map((key, i) => ({
38
+ key,
39
+ label: key,
40
+ color: chartColors[i % chartColors.length],
41
+ shape: "bar"
42
+ })) : [];
43
+ return /* @__PURE__ */ jsx(ChartContainer, { ref, className, dataSlot: "bar-chart", ariaLabel, children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", width: "100%", height: "100%" }, children: [
44
+ /* @__PURE__ */ jsx("div", { style: { flex: 1, minHeight: 0 }, children: /* @__PURE__ */ jsx(ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs(
45
+ BarChart,
46
+ {
47
+ data,
48
+ layout: rechartsLayout,
49
+ margin,
50
+ barCategoryGap,
51
+ barGap,
52
+ ...chartProps,
53
+ children: [
54
+ (enableGridX || enableGridY) && /* @__PURE__ */ jsx(
55
+ CartesianGrid,
56
+ {
57
+ horizontal: enableGridY,
58
+ vertical: enableGridX,
59
+ stroke: gridStyle.stroke,
60
+ strokeDasharray: gridStyle.strokeDasharray,
61
+ strokeOpacity: gridStyle.strokeOpacity
62
+ }
63
+ ),
64
+ rechartsLayout === "horizontal" ? /* @__PURE__ */ jsxs(Fragment, { children: [
65
+ axisBottom !== null && /* @__PURE__ */ jsx(
66
+ XAxis,
67
+ {
68
+ dataKey: indexBy,
69
+ tick: axisTickStyle,
70
+ tickLine: false,
71
+ axisLine: false,
72
+ tickMargin: 12,
73
+ tickFormatter: categoryTick,
74
+ ...axisBottom
75
+ }
76
+ ),
77
+ axisLeft !== null && /* @__PURE__ */ jsx(
78
+ YAxis,
79
+ {
80
+ tick: axisTickStyle,
81
+ tickLine: false,
82
+ axisLine: false,
83
+ tickMargin: 12,
84
+ tickFormatter: numberTick,
85
+ ...axisLeft
86
+ }
87
+ )
88
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
89
+ axisLeft !== null && /* @__PURE__ */ jsx(
90
+ YAxis,
91
+ {
92
+ dataKey: indexBy,
93
+ type: "category",
94
+ tick: axisTickStyle,
95
+ tickLine: false,
96
+ axisLine: false,
97
+ tickMargin: 12,
98
+ tickFormatter: categoryTick,
99
+ ...axisLeft
100
+ }
101
+ ),
102
+ axisBottom !== null && /* @__PURE__ */ jsx(
103
+ XAxis,
104
+ {
105
+ type: "number",
106
+ tick: axisTickStyle,
107
+ tickLine: false,
108
+ axisLine: false,
109
+ tickMargin: 12,
110
+ tickFormatter: numberTick,
111
+ ...axisBottom
112
+ }
113
+ )
114
+ ] }),
115
+ /* @__PURE__ */ jsx(
116
+ Tooltip,
117
+ {
118
+ cursor: { fill: "hsl(0 0% 50% / 0.05)" },
119
+ content: /* @__PURE__ */ jsx(ChartTooltip, { tooltipStyle, formatter: tooltipFormatter, locale })
120
+ }
121
+ ),
122
+ keys.map((key, i) => /* @__PURE__ */ jsx(
123
+ Bar,
124
+ {
125
+ dataKey: key,
126
+ fill: chartColors[i % chartColors.length],
127
+ radius,
128
+ stackId,
129
+ label: enableLabel ? { position: "top", style: axisTickStyle } : false,
130
+ animationDuration: 800,
131
+ animationEasing: "ease-out"
132
+ },
133
+ key
134
+ ))
135
+ ]
136
+ }
137
+ ) }) }),
138
+ legend && /* @__PURE__ */ jsx(ChartLegend, { items: legendItems, style: { paddingTop: 12 } })
139
+ ] }) });
140
+ });
141
+ PartoBarChart.displayName = "PartoBarChart";
142
+
143
+ export { PartoBarChart };
144
+ //# sourceMappingURL=chunk-TWJXOV4C.js.map
145
+ //# sourceMappingURL=chunk-TWJXOV4C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/charts/PartoBarChart.tsx"],"names":["PartoBarChart"],"mappings":"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","file":"chunk-TWJXOV4C.js","sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { BarChart, Bar, 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 ChartLegend,\n ChartLoadingSkeleton,\n ChartTooltip,\n localeAwareCategoryTick,\n localeAwareNumberTick,\n type ChartLegendItem,\n} from './chart-utils'\n\nexport interface PartoBarChartProps {\n /** Chart data — row-oriented array of objects */\n data: Array<Record<string, any>>\n /** Data keys to render as bars (e.g. ['فروش', 'هزینه']) */\n keys: string[]\n /** Field name used for X axis categories (e.g. 'ماه') */\n indexBy: string\n /** Stacked or grouped layout */\n groupMode?: 'grouped' | 'stacked'\n /** Bar layout direction */\n layout?: 'vertical' | 'horizontal'\n /** Chart margins */\n margin?: { top?: number; right?: number; bottom?: number; left?: number }\n /** Gap between category groups as percentage */\n barCategoryGap?: string | number\n /** Gap between bars within a group */\n barGap?: number\n /** Border radius for bar tops [topLeft, topRight, bottomRight, bottomLeft] */\n radius?: [number, number, number, number]\n /** Show horizontal grid lines */\n enableGridY?: boolean\n /** Show vertical grid lines */\n enableGridX?: boolean\n /** Show labels inside bars */\n enableLabel?: boolean\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 BarChart props */\n chartProps?: Record<string, any>\n /**\n * Render a legend below the chart that names each series with a colored\n * marker. Strongly recommended for grouped or stacked layouts where\n * series identity is otherwise color-only. @default `false`\n */\n legend?: boolean\n}\n\nexport const PartoBarChart = React.forwardRef<HTMLDivElement, PartoBarChartProps>(function PartoBarChart(\n {\n data,\n keys,\n indexBy,\n groupMode = 'grouped',\n layout = 'vertical',\n margin = { top: 20, right: 20, bottom: 50, left: 50 },\n barCategoryGap = '35%',\n barGap = 2,\n radius = [6, 6, 0, 0],\n enableGridY = true,\n enableGridX = false,\n enableLabel = false,\n axisBottom,\n axisLeft,\n tooltipFormatter,\n locale = 'fa',\n className,\n isLoading = false,\n ariaLabel,\n chartProps,\n legend = false,\n },\n ref\n) {\n const { chartColors, axisTickStyle, gridStyle, tooltipStyle } = useChartTheme()\n const categoryTick = React.useMemo(() => localeAwareCategoryTick(locale), [locale])\n const numberTick = React.useMemo(() => localeAwareNumberTick(locale), [locale])\n\n if (isLoading) {\n return <ChartLoadingSkeleton className={className} />\n }\n\n // Recharts uses \"horizontal\" for standard vertical bars and \"vertical\" for horizontal bars\n const rechartsLayout = layout === 'horizontal' ? 'vertical' : 'horizontal'\n const stackId = groupMode === 'stacked' ? 'stack' : undefined\n\n const legendItems: ChartLegendItem[] = legend\n ? keys.map((key, i) => ({\n key,\n label: key,\n color: chartColors[i % chartColors.length],\n shape: 'bar',\n }))\n : []\n\n return (\n <ChartContainer ref={ref} className={className} dataSlot=\"bar-chart\" ariaLabel={ariaLabel}>\n <div style={{ display: 'flex', flexDirection: 'column', width: '100%', height: '100%' }}>\n <div style={{ flex: 1, minHeight: 0 }}>\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <BarChart\n data={data}\n layout={rechartsLayout}\n margin={margin}\n barCategoryGap={barCategoryGap}\n barGap={barGap}\n {...chartProps}\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 {rechartsLayout === 'horizontal' ? (\n <>\n {axisBottom !== null && (\n <XAxis\n dataKey={indexBy}\n tick={axisTickStyle}\n tickLine={false}\n axisLine={false}\n tickMargin={12}\n tickFormatter={categoryTick}\n {...axisBottom}\n />\n )}\n {axisLeft !== null && (\n <YAxis\n tick={axisTickStyle}\n tickLine={false}\n axisLine={false}\n tickMargin={12}\n tickFormatter={numberTick}\n {...axisLeft}\n />\n )}\n </>\n ) : (\n <>\n {axisLeft !== null && (\n <YAxis\n dataKey={indexBy}\n type=\"category\"\n tick={axisTickStyle}\n tickLine={false}\n axisLine={false}\n tickMargin={12}\n tickFormatter={categoryTick}\n {...axisLeft}\n />\n )}\n {axisBottom !== null && (\n <XAxis\n type=\"number\"\n tick={axisTickStyle}\n tickLine={false}\n axisLine={false}\n tickMargin={12}\n tickFormatter={numberTick}\n {...axisBottom}\n />\n )}\n </>\n )}\n\n <Tooltip\n cursor={{ fill: 'hsl(0 0% 50% / 0.05)' }}\n content={<ChartTooltip tooltipStyle={tooltipStyle} formatter={tooltipFormatter} locale={locale} />}\n />\n\n {keys.map((key, i) => (\n <Bar\n key={key}\n dataKey={key}\n fill={chartColors[i % chartColors.length]}\n radius={radius}\n stackId={stackId}\n label={enableLabel ? { position: 'top', style: axisTickStyle } : false}\n animationDuration={800}\n animationEasing=\"ease-out\"\n />\n ))}\n </BarChart>\n </ResponsiveContainer>\n </div>\n {legend && <ChartLegend items={legendItems} style={{ paddingTop: 12 }} />}\n </div>\n </ChartContainer>\n )\n})\nPartoBarChart.displayName = 'PartoBarChart'\n"]}