@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
package/dist/index.d.cts CHANGED
@@ -1,4 +1,7 @@
1
- import { ClassValue } from 'clsx';
1
+ import { S as SupportedLocale } from './utils-DlXWmDZ-.cjs';
2
+ export { c as cn, a as convertToLocalNumbers, e as formatAbsoluteTime, f as formatLargeNumber, b as formatNumber, d as formatRelativeTime } from './utils-DlXWmDZ-.cjs';
3
+ import { A as ActionStatusKey, a as ActionTypeKey, E as EntityHealthKey, J as JobStatusKey, S as StageStatusKey, b as EmotionKey, F as FlowKey, c as StatusKey, d as SeverityKey } from './i18n-CAd9wGOr.cjs';
4
+ export { p as ACTION_STATUS_KEYS, w as ACTION_TYPE_KEYS, f as EMOTION_KEYS, z as ENTITY_HEALTH_KEYS, h as FLOW_KEYS, m as JOB_STATUS_KEYS, L as Locale, u as STAGE_STATUS_KEYS, G as UIStringKeys, H as UIStrings, U as UI_STRINGS, q as actionStatusLabels, x as actionTypeLabels, y as actionTypeVerbs, g as emotionLabels, e as engagementUiTranslations, B as entityHealthLabels, C as entityHealthPriority, j as flowLabels, r as formatRelativeLocaleTime, t as formatTimeRemaining, I as getUIStrings, o as isActiveJobStatus, D as isCriticalEntityHealth, i as isRTL, n as jobStatusLabels, s as sentimentLabels, l as severityLabels, v as stageStatusLabels, k as statusLabels } from './i18n-CAd9wGOr.cjs';
2
5
  import * as React$1 from 'react';
3
6
  import { LucideIcon } from 'lucide-react';
4
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
@@ -6,34 +9,54 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion';
6
9
  import * as class_variance_authority_types from 'class-variance-authority/types';
7
10
  import { VariantProps } from 'class-variance-authority';
8
11
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
12
+ export { AlertChannel, AlertRuleCard, AlertRuleCardProps } from './components/ui/alert-rule-card.cjs';
9
13
  import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
10
- import * as AvatarPrimitive from '@radix-ui/react-avatar';
11
- import * as SeparatorPrimitive from '@radix-ui/react-separator';
12
- import { DayPicker, DateRange } from 'react-day-picker';
13
- import { DayPicker as DayPicker$1 } from 'react-day-picker/persian';
14
+ export { Avatar, AvatarFallback, AvatarImage } from './components/ui/avatar.cjs';
15
+ export { Badge, BadgeProps, badgeVariants } from './components/ui/badge.cjs';
16
+ import { Button, ButtonProps } from './components/ui/button.cjs';
17
+ export { ButtonVariantProps, LoadingVariantProps, buttonVariants } from './components/ui/button.cjs';
18
+ import { Separator } from './components/ui/separator.cjs';
19
+ export { Calendar, CalendarProps } from './components/ui/calendar.cjs';
20
+ export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardProps, CardTitle, cardVariants } from './components/ui/card.cjs';
14
21
  import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';
15
22
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
16
23
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
17
24
  import { Command as Command$1 } from 'cmdk';
18
- import * as DialogPrimitive from '@radix-ui/react-dialog';
25
+ import { Dialog } from './components/ui/dialog.cjs';
26
+ export { DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/ui/dialog.cjs';
27
+ import { HotkeyCombo } from './hooks/use-hotkeys.cjs';
28
+ export { UseHotkeysOptions, formatHotkey, useHotkeys } from './hooks/use-hotkeys.cjs';
19
29
  import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
30
+ import { S as SentimentData, F as FlowData } from './concept-card-RwPbqJ06.cjs';
31
+ export { C as ConceptCard, a as ConceptCardProps, b as FlowDistribution, c as FlowDistributionProps, d as SentimentDistribution, e as SentimentDistributionProps } from './concept-card-RwPbqJ06.cjs';
32
+ import { DateRange } from 'react-day-picker';
20
33
  import { Drawer as Drawer$1 } from 'vaul';
21
34
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
22
35
  import * as LabelPrimitive from '@radix-ui/react-label';
36
+ import { FilterStateShape } from './components/ui/filter-provider.cjs';
37
+ export { FilterContextValue, FilterProvider, FilterProviderProps, useFilterState, useFilterStateOptional } from './components/ui/filter-provider.cjs';
23
38
  import * as react_hook_form from 'react-hook-form';
24
39
  import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
25
40
  import { Slot } from '@radix-ui/react-slot';
26
41
  import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
42
+ import { InputProps, Input, InputVariants } from './components/ui/input.cjs';
43
+ export { inputVariants } from './components/ui/input.cjs';
44
+ export { IranProvinceCell, IranProvinceHeat, IranProvinceHeatProps, IranProvinceHeatScale } from './components/ui/iran-province-heat.cjs';
27
45
  import { OTPInput } from 'input-otp';
28
46
  import * as MenubarPrimitive from '@radix-ui/react-menubar';
29
47
  import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
30
- import * as PopoverPrimitive from '@radix-ui/react-popover';
48
+ import { S as SocialPlatform } from './page-card-DOl50DqJ.cjs';
49
+ export { f as BotDetectionData, e as BotDetectionKey, B as BotDetectionMeter, g as BotDetectionMeterProps, P as PageCard, a as PageCardContentMix, b as PageCardProps, c as SocialPlatformBadge, d as SocialPlatformBadgeProps, s as socialPlatformBadgeVariants } from './page-card-DOl50DqJ.cjs';
50
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from './components/ui/popover.cjs';
31
51
  import * as ProgressPrimitive from '@radix-ui/react-progress';
32
52
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
33
53
  import * as ResizablePrimitive from 'react-resizable-panels';
34
54
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
35
55
  import * as SelectPrimitive from '@radix-ui/react-select';
36
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
56
+ export { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from './components/ui/sheet.cjs';
57
+ import { TooltipContent } from './components/ui/tooltip.cjs';
58
+ export { Tooltip, TooltipProvider, TooltipTrigger } from './components/ui/tooltip.cjs';
59
+ export { Sparkline, SparklineProps, SparklineTrend, SparklineVariant } from './components/ui/sparkline.cjs';
37
60
  import * as SliderPrimitive from '@radix-ui/react-slider';
38
61
  import { ToasterProps } from 'sonner';
39
62
  export { toast } from 'sonner';
@@ -41,38 +64,22 @@ import * as SwitchPrimitive from '@radix-ui/react-switch';
41
64
  import * as TabsPrimitive from '@radix-ui/react-tabs';
42
65
  import * as TogglePrimitive from '@radix-ui/react-toggle';
43
66
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
44
-
45
- declare function cn(...inputs: ClassValue[]): string;
46
- type SupportedLocale = 'fa' | 'ar' | 'en';
47
- /**
48
- * Convert digits in a string to Persian/Arabic numerals based on locale.
49
- * @example convertToLocalNumbers('123', 'fa') => '۱۲۳'
50
- * @example convertToLocalNumbers('123', 'en') => '123'
51
- */
52
- declare function convertToLocalNumbers(text: string | number, locale: SupportedLocale): string;
53
- /**
54
- * Format large numbers with locale-aware suffixes (K/M/B).
55
- * @example formatLargeNumber(1500, 'fa') => '۱.۵ هزار'
56
- * @example formatLargeNumber(1500, 'en') => '1.5K'
57
- */
58
- declare function formatLargeNumber(num: number, locale: SupportedLocale): string;
59
- /**
60
- * Format number to Instagram-style short format (English only).
61
- * @example formatNumber(123456, 'short') => '123K'
62
- * @example formatNumber(123456, 'exact') => '123,456'
63
- */
64
- declare function formatNumber(num: number | undefined, format?: 'exact' | 'short'): string;
65
- /**
66
- * Format date to relative time with absolute on hover (Persian)
67
- * @example formatRelativeTime(new Date()) => '۲ ساعت پیش'
68
- */
69
- declare function formatRelativeTime(date: Date | string | number): string;
70
- /**
71
- * Format date to absolute format (Persian / Jalali)
72
- * Uses date-fns-jalali for accurate Jalali conversion.
73
- * @example formatAbsoluteTime(new Date()) => '۱۵ دی ۱۴۰۳، ۱۵:۳۰'
74
- */
75
- declare function formatAbsoluteTime(date: Date | string | number): string;
67
+ import { DataTableColumn, DataTableColumnVisibility } from './components/ui/data-table.cjs';
68
+ export { DataTable, DataTableExpansion, DataTableMultiSort, DataTablePagination, DataTableProps, DataTableSelection, DataTableSort, SortDirection, SortRule } from './components/ui/data-table.cjs';
69
+ export { SavedQueryCard, SavedQueryCardProps, SavedQueryFilter } from './components/ui/saved-query-card.cjs';
70
+ export { PartoLineChart, PartoLineChartProps } from './components/charts/PartoLineChart.cjs';
71
+ export { PartoBarChart, PartoBarChartProps } from './components/charts/PartoBarChart.cjs';
72
+ export { PartoPieChart, PartoPieChartProps } from './components/charts/PartoPieChart.cjs';
73
+ export { PartoAreaChart, PartoAreaChartProps } from './components/charts/PartoAreaChart.cjs';
74
+ import { RegisteredHotkey } from './hooks/use-hotkey-registry.cjs';
75
+ export { HotkeyProvider, HotkeyProviderProps, useHotkey, useHotkeyRegistry } from './hooks/use-hotkey-registry.cjs';
76
+ import 'clsx';
77
+ import '@radix-ui/react-avatar';
78
+ import '@radix-ui/react-separator';
79
+ import 'react-day-picker/persian';
80
+ import '@radix-ui/react-dialog';
81
+ import '@radix-ui/react-popover';
82
+ import '@radix-ui/react-tooltip';
76
83
 
77
84
  /**
78
85
  * Persian (Jalali / Solar Hijri) calendar utilities.
@@ -201,346 +208,66 @@ declare function getFollowerGroup(followers: number): FollowerGroup;
201
208
  declare function getEngagementRanges(followers: number, locale: SupportedLocale): EngagementRangeWithDisplay[];
202
209
  declare function getCurrentRangeIndex(currentRate: number, ranges: EngagementRange[]): number;
203
210
 
204
- type Locale = SupportedLocale;
205
- /**
206
- * Returns true for RTL locales (fa, ar).
207
- */
208
- declare function isRTL(locale: SupportedLocale): boolean;
209
- /**
210
- * UI string translations used by the EngagementRate component.
211
- * Centralised here to avoid duplication between components.
212
- */
213
- declare const engagementUiTranslations: Record<SupportedLocale, {
214
- yourCategory: string;
215
- influencer: string;
216
- followers: string;
217
- over: string;
218
- to: string;
219
- and: string;
220
- lessThan: string;
221
- you: string;
222
- criteria: string;
223
- }>;
224
- /**
225
- * Sentiment label translations used by the SentimentBadge component.
226
- */
227
- declare const sentimentLabels: Record<SupportedLocale, {
228
- positive: string;
229
- negative: string;
230
- neutral: string;
231
- mixed: string;
232
- }>;
233
- /**
234
- * Canonical emotion keys — 9-class advanced sentiment scale used in افکارسنجی
235
- * deep analysis. Coexists with the simple 3-class `Sentiment` above; they are
236
- * NOT interchangeable. Choose the scale based on view density.
237
- */
238
- type EmotionKey = 'anger' | 'anticipation' | 'joy' | 'trust' | 'fear' | 'surprise' | 'sadness' | 'disgust' | 'neutral';
239
- declare const EMOTION_KEYS: readonly EmotionKey[];
240
- /** Emotion label translations used by EmotionBadge / EmotionDistribution. */
241
- declare const emotionLabels: Record<SupportedLocale, Record<EmotionKey, string>>;
242
- /**
243
- * Political flow keys — 5-class classification used in افکارسنجی clustering.
244
- * A concept / post / page belongs to exactly one flow (primary) but usually
245
- * also has secondary flow composition expressed as percentages.
246
- */
247
- type FlowKey = 'pro-gov' | 'internal-critic' | 'internal-opponent' | 'external-opponent' | 'grey';
248
- declare const FLOW_KEYS: readonly FlowKey[];
249
- declare const flowLabels: Record<SupportedLocale, Record<FlowKey, string>>;
250
- /** Operational status — visual state of a tracked entity. */
251
- type StatusKey = 'critical' | 'warning' | 'normal';
252
- declare const statusLabels: Record<SupportedLocale, Record<StatusKey, string>>;
253
- /** Severity — urgency level. Independent from status. */
254
- type SeverityKey = 'urgent' | 'high' | 'medium' | 'low';
255
- declare const severityLabels: Record<SupportedLocale, Record<SeverityKey, string>>;
256
- /**
257
- * Job lifecycle — canonical states for async work (analyses, campaigns,
258
- * evaluation runs, imports, exports, report generation).
259
- *
260
- * Terminal states: completed / failed / cancelled.
261
- * Active states: queued / running / paused.
262
- */
263
- type JobStatusKey = 'queued' | 'running' | 'paused' | 'completed' | 'failed' | 'cancelled';
264
- declare const JOB_STATUS_KEYS: readonly JobStatusKey[];
265
- declare const jobStatusLabels: Record<SupportedLocale, Record<JobStatusKey, string>>;
266
- /** True iff a job is still active (not in a terminal state). */
267
- declare function isActiveJobStatus(s: JobStatusKey): boolean;
268
- /**
269
- * Action status — discrete outcome for a single completed (or in-flight)
270
- * action in an activity feed / audit timeline. Distinct from the richer
271
- * job/stage lifecycles above: each event is atomic, so no "paused" here.
272
- */
273
- type ActionStatusKey = 'success' | 'failed' | 'pending' | 'warning' | 'info';
274
- declare const ACTION_STATUS_KEYS: readonly ActionStatusKey[];
275
- declare const actionStatusLabels: Record<SupportedLocale, Record<ActionStatusKey, string>>;
276
- /**
277
- * Locale-aware relative time label producer. Used by ActionTimeline and any
278
- * other component that wants trilingual "n minutes ago" strings. For absolute
279
- * formatting see `formatAbsoluteTime`/`formatJalaliDate` in lib/utils.ts.
280
- */
281
- declare function formatRelativeLocaleTime(date: Date | string | number, locale: SupportedLocale): string;
282
- /**
283
- * Locale-aware "time remaining" label — forward-looking companion to
284
- * `formatRelativeLocaleTime`. Used by RateLimitBanner and any countdown UI.
285
- *
286
- * Input can be a Date, ISO string, or epoch ms. Past/zero remaining returns
287
- * the locale-specific "now" / "any moment" marker.
288
- */
289
- declare function formatTimeRemaining(target: Date | string | number, locale: SupportedLocale): string;
290
211
  /**
291
- * Stage status for multi-stage pipeline visualizations (StatusFlow).
212
+ * Iran's 31 provinces with trilingual labels and ISO 3166-2 codes.
292
213
  *
293
- * Distinct from `JobStatusKey`: a job has ONE status; a pipeline of stages has
294
- * a status PER stage. A `running` stage means that stage is currently active;
295
- * a `warning` stage completed but with caveats; `skipped` means it was bypassed.
296
- */
297
- type StageStatusKey = 'pending' | 'running' | 'completed' | 'failed' | 'skipped' | 'warning' | 'paused';
298
- declare const STAGE_STATUS_KEYS: readonly StageStatusKey[];
299
- declare const stageStatusLabels: Record<SupportedLocale, Record<StageStatusKey, string>>;
300
- /**
301
- * Action type — canonical set of social-media actions a worker/user can
302
- * execute. Maps 1:1 to a CSS token family (`--action-type-*`) so each action
303
- * has a distinct recognizable colour + icon across activity feeds, audit
304
- * timelines, and rate-limit dashboards.
214
+ * Use as a stable identifier source for `IranProvinceHeat`, `RegionPicker`,
215
+ * and any public-opinion dashboard scoped by استان. The slug (`code`) is the
216
+ * canonical key never rely on label string equality, since labels are
217
+ * locale-dependent and may evolve.
305
218
  *
306
- * The 7 canonical keys cover current افکارسنجی + Booster + future SRR use:
307
- * - `like` / `comment` / `save` / `follow` / `unfollow` — Booster OPERATION_TYPES
308
- * - `dm` direct message (future bulk-DM, notification replies)
309
- * - `share` — cross-post / retweet (future multi-platform)
219
+ * Codes follow ISO 3166-2:IR (e.g. 'IR-07' for Tehran). The slug is the
220
+ * lowercased, hyphenated English name without diacritics, suitable for URLs
221
+ * and CSS selectors. Use `getProvinceLabel(code, locale)` to resolve a label.
310
222
  */
311
- type ActionTypeKey = 'like' | 'comment' | 'save' | 'follow' | 'unfollow' | 'dm' | 'share';
312
- declare const ACTION_TYPE_KEYS: readonly ActionTypeKey[];
313
- declare const actionTypeLabels: Record<SupportedLocale, Record<ActionTypeKey, string>>;
223
+
224
+ interface IranProvince {
225
+ /** Stable URL-safe slug. The canonical key for province lookups. */
226
+ slug: string;
227
+ /** ISO 3166-2:IR code (e.g. 'IR-07'). */
228
+ iso: string;
229
+ /** Trilingual labels — fa is the canonical/native form. */
230
+ labels: Record<SupportedLocale, string>;
231
+ }
232
+ declare const IRAN_PROVINCES: readonly IranProvince[];
233
+ type IranProvinceSlug = (typeof IRAN_PROVINCES)[number]['slug'];
234
+ /** Look up a province by slug or ISO code. Returns undefined for unknown codes. */
235
+ declare function findProvince(codeOrSlug: string): IranProvince | undefined;
314
236
  /**
315
- * Short-form verb labels for past-tense activity phrasing ("worker X پسندید Y").
316
- * When composing "subject action object" sentences in ActivityFeed / ActionTimeline,
317
- * prefer these over `actionTypeLabels` which are noun-form.
237
+ * Resolve the locale-appropriate label for a province slug or ISO code.
238
+ * Falls back to fa for unknown locales and to the slug itself for unknown
239
+ * provinces (so the row still renders something instead of crashing).
318
240
  */
319
- declare const actionTypeVerbs: Record<SupportedLocale, Record<ActionTypeKey, string>>;
241
+ declare function getProvinceLabel(codeOrSlug: string, locale?: SupportedLocale): string;
242
+
320
243
  /**
321
- * Entity health 6-tier severity narrative for long-lived entities like
322
- * workers, tracked pages, data sources, monitored feeds. Ordered most-critical
323
- * to most-positive so components can sort "worst first" deterministically.
244
+ * Curated country list with trilingual labels + flag emoji.
324
245
  *
325
- * `banned` entity is permanently disabled / blocked upstream.
326
- * `pending`not yet evaluated (new, awaiting verification, in setup).
327
- * `at-risk` immediate intervention needed (failed checks, violations).
328
- * `warning` degrading signals, needs monitoring.
329
- * `growing` improving trajectory but not yet healthy.
330
- * `healthy` — stable, all checks pass.
246
+ * Scope: ISO 3166-1 alpha-2 codes for ~80 countries that recur in افکارسنجی
247
+ * and influencer dashboards we serve neighbors of Iran, the Gulf, MENA,
248
+ * major Western markets, and Asian/African markets relevant to Persian-
249
+ * speaking audiences. The flag emoji is the regional-indicator pair for the
250
+ * code; modern OS fonts render it as a flag.
331
251
  *
332
- * Distinct from `StatusKey` (critical/warning/normalshort-lived operational)
333
- * and `SeverityKey` (urgent/high/medium/low urgency of an action item).
334
- */
335
- type EntityHealthKey = 'banned' | 'pending' | 'at-risk' | 'warning' | 'growing' | 'healthy';
336
- declare const ENTITY_HEALTH_KEYS: readonly EntityHealthKey[];
337
- declare const entityHealthLabels: Record<SupportedLocale, Record<EntityHealthKey, string>>;
338
- /**
339
- * Priority rank of each entity health state — higher number = more severe.
340
- * Use to sort entity lists "worst first" without ad-hoc comparisons.
341
- */
342
- declare const entityHealthPriority: Record<EntityHealthKey, number>;
343
- /** True iff the entity needs immediate human attention. */
344
- declare function isCriticalEntityHealth(s: EntityHealthKey): boolean;
345
- /**
346
- * Default UI strings for components that need localized text.
347
- * Persian (fa) is the default locale for backward compatibility.
348
- */
349
- declare const UI_STRINGS: {
350
- readonly fa: {
351
- readonly noResults: "نتیجه‌ای یافت نشد";
352
- readonly suggestions: "پیشنهادها";
353
- readonly select: "انتخاب کنید";
354
- readonly noOptionsFound: "موردی یافت نشد";
355
- readonly search: "جستجو...";
356
- readonly clearAll: "پاک کردن همه";
357
- readonly selectDate: "انتخاب تاریخ";
358
- readonly selectDateRange: "انتخاب بازه تاریخ";
359
- readonly errorLoadingData: "خطا در بارگذاری داده‌ها";
360
- readonly retry: "تلاش مجدد";
361
- readonly remove: "حذف";
362
- readonly noUsersFound: "کاربری یافت نشد";
363
- readonly goToPreviousPage: "رفتن به صفحه قبلی";
364
- readonly goToNextPage: "رفتن به صفحه بعدی";
365
- readonly previous: "قبلی";
366
- readonly next: "بعدی";
367
- readonly actions: "عملیات";
368
- readonly copy: "کپی";
369
- readonly copied: "کپی شد";
370
- readonly confirm: "تایید";
371
- readonly cancel: "انصراف";
372
- readonly areYouSure: "آیا مطمئن هستید؟";
373
- readonly stepperLabel: "مراحل";
374
- readonly stepCompleted: "تکمیل شده";
375
- readonly stepCurrent: "مرحله فعلی";
376
- readonly stepPending: "در انتظار";
377
- readonly clearFilters: "پاک کردن فیلترها";
378
- readonly activeFilters: "فیلترهای فعال";
379
- readonly filters: "فیلترها";
380
- readonly applyFilters: "اعمال";
381
- readonly resetFilters: "پیش‌فرض";
382
- readonly noFiltersActive: "فیلتر فعالی نیست";
383
- readonly clearSection: "پاک کردن این بخش";
384
- readonly goBack: "بازگشت";
385
- readonly gridView: "نمای شبکه‌ای";
386
- readonly listView: "نمای لیستی";
387
- readonly loading: "در حال بارگذاری...";
388
- readonly unexpectedError: "خطای غیرمنتظره‌ای رخ داد";
389
- readonly selectAll: "انتخاب همه";
390
- readonly selectRow: "انتخاب ردیف";
391
- readonly noDataToDisplay: "داده‌ای برای نمایش وجود ندارد";
392
- readonly likesCount: "تعداد لایک";
393
- readonly commentsCount: "تعداد کامنت";
394
- readonly viewsCount: "تعداد بازدید";
395
- readonly sharesCount: "تعداد اشتراک";
396
- readonly postTypeLabel: "نوع پست";
397
- readonly postTypePhoto: "عکس";
398
- readonly postTypeVideo: "ویدیو";
399
- readonly postTypeCarousel: "اسلاید";
400
- readonly showMore: "بیشتر";
401
- readonly showLess: "کمتر";
402
- readonly noMediaAvailable: "رسانه‌ای موجود نیست";
403
- readonly commentAnalysis: "تحلیل کامنت‌ها";
404
- readonly commentAnalysisDisabled: "تحلیل کامنت‌ها (غیرفعال)";
405
- readonly booster: "بوستر";
406
- readonly boosterDisabled: "بوستر (غیرفعال)";
407
- readonly aiAnalysis: "تحلیل هوش مصنوعی";
408
- readonly aiAnalysisDisabled: "تحلیل هوش مصنوعی (غیرفعال)";
409
- readonly openOnInstagram: "باز کردن در اینستاگرام";
410
- readonly openOnInstagramDisabled: "باز کردن در اینستاگرام (غیرفعال)";
411
- };
412
- readonly ar: {
413
- readonly noResults: "لم يتم العثور على نتائج";
414
- readonly suggestions: "اقتراحات";
415
- readonly select: "اختر";
416
- readonly noOptionsFound: "لم يتم العثور على خيارات";
417
- readonly search: "بحث...";
418
- readonly clearAll: "مسح الكل";
419
- readonly selectDate: "اختر تاريخ";
420
- readonly selectDateRange: "اختر نطاق التاريخ";
421
- readonly errorLoadingData: "خطأ في تحميل البيانات";
422
- readonly retry: "إعادة المحاولة";
423
- readonly remove: "حذف";
424
- readonly noUsersFound: "لم يتم العثور على مستخدمين";
425
- readonly goToPreviousPage: "الانتقال إلى الصفحة السابقة";
426
- readonly goToNextPage: "الانتقال إلى الصفحة التالية";
427
- readonly previous: "السابق";
428
- readonly next: "التالي";
429
- readonly actions: "إجراءات";
430
- readonly copy: "نسخ";
431
- readonly copied: "تم النسخ";
432
- readonly confirm: "تأكيد";
433
- readonly cancel: "إلغاء";
434
- readonly areYouSure: "هل أنت متأكد؟";
435
- readonly stepperLabel: "الخطوات";
436
- readonly stepCompleted: "مكتمل";
437
- readonly stepCurrent: "الخطوة الحالية";
438
- readonly stepPending: "قيد الانتظار";
439
- readonly clearFilters: "مسح الفلاتر";
440
- readonly activeFilters: "الفلاتر النشطة";
441
- readonly filters: "الفلاتر";
442
- readonly applyFilters: "تطبيق";
443
- readonly resetFilters: "الافتراضي";
444
- readonly noFiltersActive: "لا توجد فلاتر نشطة";
445
- readonly clearSection: "مسح هذا القسم";
446
- readonly goBack: "رجوع";
447
- readonly gridView: "عرض شبكي";
448
- readonly listView: "عرض قائمة";
449
- readonly loading: "جارٍ التحميل...";
450
- readonly unexpectedError: "حدث خطأ غير متوقع";
451
- readonly selectAll: "تحديد الكل";
452
- readonly selectRow: "تحديد الصف";
453
- readonly noDataToDisplay: "لا توجد بيانات للعرض";
454
- readonly likesCount: "عدد الإعجابات";
455
- readonly commentsCount: "عدد التعليقات";
456
- readonly viewsCount: "عدد المشاهدات";
457
- readonly sharesCount: "عدد المشاركات";
458
- readonly postTypeLabel: "نوع المنشور";
459
- readonly postTypePhoto: "صورة";
460
- readonly postTypeVideo: "فيديو";
461
- readonly postTypeCarousel: "شرائح";
462
- readonly showMore: "المزيد";
463
- readonly showLess: "أقل";
464
- readonly noMediaAvailable: "لا توجد وسائط";
465
- readonly commentAnalysis: "تحليل التعليقات";
466
- readonly commentAnalysisDisabled: "تحليل التعليقات (معطل)";
467
- readonly booster: "تعزيز";
468
- readonly boosterDisabled: "تعزيز (معطل)";
469
- readonly aiAnalysis: "تحليل الذكاء الاصطناعي";
470
- readonly aiAnalysisDisabled: "تحليل الذكاء الاصطناعي (معطل)";
471
- readonly openOnInstagram: "فتح في إنستاجرام";
472
- readonly openOnInstagramDisabled: "فتح في إنستاجرام (معطل)";
473
- };
474
- readonly en: {
475
- readonly noResults: "No results found";
476
- readonly suggestions: "Suggestions";
477
- readonly select: "Select";
478
- readonly noOptionsFound: "No options found";
479
- readonly search: "Search...";
480
- readonly clearAll: "Clear all";
481
- readonly selectDate: "Select date";
482
- readonly selectDateRange: "Select date range";
483
- readonly errorLoadingData: "Error loading data";
484
- readonly retry: "Retry";
485
- readonly remove: "Remove";
486
- readonly noUsersFound: "No users found";
487
- readonly goToPreviousPage: "Go to previous page";
488
- readonly goToNextPage: "Go to next page";
489
- readonly previous: "Previous";
490
- readonly next: "Next";
491
- readonly actions: "Actions";
492
- readonly copy: "Copy";
493
- readonly copied: "Copied";
494
- readonly confirm: "Confirm";
495
- readonly cancel: "Cancel";
496
- readonly areYouSure: "Are you sure?";
497
- readonly stepperLabel: "Steps";
498
- readonly stepCompleted: "Completed";
499
- readonly stepCurrent: "Current step";
500
- readonly stepPending: "Pending";
501
- readonly clearFilters: "Clear filters";
502
- readonly activeFilters: "Active filters";
503
- readonly filters: "Filters";
504
- readonly applyFilters: "Apply";
505
- readonly resetFilters: "Reset";
506
- readonly noFiltersActive: "No active filters";
507
- readonly clearSection: "Clear this section";
508
- readonly goBack: "Go back";
509
- readonly gridView: "Grid view";
510
- readonly listView: "List view";
511
- readonly loading: "Loading...";
512
- readonly unexpectedError: "An unexpected error occurred";
513
- readonly selectAll: "Select all";
514
- readonly selectRow: "Select row";
515
- readonly noDataToDisplay: "No data to display";
516
- readonly likesCount: "Likes";
517
- readonly commentsCount: "Comments";
518
- readonly viewsCount: "Views";
519
- readonly sharesCount: "Shares";
520
- readonly postTypeLabel: "Post type";
521
- readonly postTypePhoto: "Photo";
522
- readonly postTypeVideo: "Video";
523
- readonly postTypeCarousel: "Carousel";
524
- readonly showMore: "More";
525
- readonly showLess: "Less";
526
- readonly noMediaAvailable: "No media available";
527
- readonly commentAnalysis: "Comment Analysis";
528
- readonly commentAnalysisDisabled: "Comment Analysis (disabled)";
529
- readonly booster: "Booster";
530
- readonly boosterDisabled: "Booster (disabled)";
531
- readonly aiAnalysis: "AI Analysis";
532
- readonly aiAnalysisDisabled: "AI Analysis (disabled)";
533
- readonly openOnInstagram: "Open on Instagram";
534
- readonly openOnInstagramDisabled: "Open on Instagram (disabled)";
535
- };
536
- };
537
- type UIStringKeys = keyof (typeof UI_STRINGS)['fa'];
538
- type UIStrings = Record<UIStringKeys, string>;
539
- /**
540
- * Get UI strings for a given locale.
541
- * Falls back to 'fa' for unknown locales.
252
+ * This is NOT an exhaustive ISO 3166 dataset for country-level analytics
253
+ * outside this scope, consumers should pass their own list to `CountryPicker`
254
+ * via the `options` prop.
542
255
  */
543
- declare function getUIStrings(locale?: SupportedLocale): UIStrings;
256
+
257
+ interface Country {
258
+ /** ISO 3166-1 alpha-2 code (uppercase). The canonical key. */
259
+ code: string;
260
+ /** Trilingual labels — fa is the canonical/native form. */
261
+ labels: Record<SupportedLocale, string>;
262
+ }
263
+ /** Convert an ISO 3166-1 alpha-2 code to its flag-emoji pair. */
264
+ declare function countryFlag(code: string): string;
265
+ declare const COUNTRIES: readonly Country[];
266
+ type CountryCode = (typeof COUNTRIES)[number]['code'];
267
+ /** Look up a country by ISO 3166-1 alpha-2 code. Returns undefined for unknown codes. */
268
+ declare function findCountry(code: string): Country | undefined;
269
+ /** Resolve the locale-appropriate label for a country code. */
270
+ declare function getCountryLabel(code: string, locale: SupportedLocale): string;
544
271
 
545
272
  /**
546
273
  * Standard size scale used across the design system.
@@ -689,38 +416,6 @@ declare function AlertDialogDescription({ className, ...props }: React$1.Compone
689
416
  declare const AlertDialogAction: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogActionProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
690
417
  declare const AlertDialogCancel: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogCancelProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
691
418
 
692
- /**
693
- * AlertRuleCard — saved alert-rule definition. Shows trigger summary,
694
- * threshold, severity tag, target channels, and an active/inactive toggle.
695
- *
696
- * Designed for "Alert Rules" management pages — a list of these cards lets
697
- * an analyst quickly scan + tweak which alerts are running.
698
- */
699
- type AlertChannel = 'email' | 'sms' | 'telegram' | 'in-app' | 'webhook';
700
- interface AlertRuleCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
701
- /** Rule name (e.g., "افزایش ناگهانی منفی") */
702
- name: React$1.ReactNode;
703
- /** Trigger description in plain language (e.g., "هرگاه نرخ منفی > ۲۰٪ شد") */
704
- trigger: React$1.ReactNode;
705
- /** Threshold value display (e.g., "≥ ۲۰٪", "> ۱۰۰۰ mentions") */
706
- threshold?: React$1.ReactNode;
707
- /** Severity that this alert raises */
708
- severity?: SeverityKey;
709
- /** Channels this rule fires through */
710
- channels?: AlertChannel[];
711
- /** Active state (master switch) */
712
- active: boolean;
713
- /** Called when the user toggles the switch */
714
- onActiveChange: (next: boolean) => void;
715
- /** Last-fired timestamp display (e.g., "۲ ساعت پیش") */
716
- lastFired?: React$1.ReactNode;
717
- /** Optional total fire count */
718
- fireCount?: number;
719
- /** Locale @default 'fa' */
720
- locale?: SupportedLocale;
721
- }
722
- declare const AlertRuleCard: React$1.ForwardRefExoticComponent<AlertRuleCardProps & React$1.RefAttributes<HTMLDivElement>>;
723
-
724
419
  interface AutocompleteItem {
725
420
  value: string;
726
421
  label: string;
@@ -956,19 +651,6 @@ declare namespace AspectRatio {
956
651
  var displayName: string;
957
652
  }
958
653
 
959
- declare function Avatar({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime.JSX.Element;
960
- declare namespace Avatar {
961
- var displayName: string;
962
- }
963
- declare function AvatarImage({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Image>): react_jsx_runtime.JSX.Element;
964
- declare namespace AvatarImage {
965
- var displayName: string;
966
- }
967
- declare function AvatarFallback({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Fallback>): react_jsx_runtime.JSX.Element;
968
- declare namespace AvatarFallback {
969
- var displayName: string;
970
- }
971
-
972
654
  declare const avatarGroupVariants: (props?: ({
973
655
  size?: "sm" | "md" | "lg" | null | undefined;
974
656
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -985,17 +667,6 @@ interface AvatarGroupProps extends React$1.HTMLAttributes<HTMLDivElement>, Varia
985
667
  }
986
668
  declare const AvatarGroup: React$1.ForwardRefExoticComponent<AvatarGroupProps & React$1.RefAttributes<HTMLDivElement>>;
987
669
 
988
- declare const badgeVariants: (props?: ({
989
- variant?: "warning" | "success" | "default" | "outline" | "destructive" | "secondary" | "brand" | null | undefined;
990
- size?: "xs" | "sm" | "md" | "lg" | "small" | "large" | "tiny" | null | undefined;
991
- dot?: boolean | null | undefined;
992
- } & class_variance_authority_types.ClassProp) | undefined) => string;
993
- interface BadgeProps extends React$1.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
994
- dot?: boolean;
995
- dotPosition?: 'start' | 'end';
996
- }
997
- declare const Badge: React$1.ForwardRefExoticComponent<BadgeProps & React$1.RefAttributes<HTMLSpanElement>>;
998
-
999
670
  declare const bannerVariants: (props?: ({
1000
671
  variant?: "neutral" | "warning" | "success" | "info" | "destructive" | null | undefined;
1001
672
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1042,43 +713,6 @@ declare namespace BreadcrumbEllipsis {
1042
713
  var displayName: string;
1043
714
  }
1044
715
 
1045
- type ButtonVariantProps = VariantProps<typeof buttonVariants>;
1046
- declare const buttonVariants: (props?: ({
1047
- variant?: "warning" | "link" | "text" | "default" | "outline" | "dashed" | "destructive" | "primary" | "secondary" | "danger" | "ghost" | null | undefined;
1048
- block?: boolean | null | undefined;
1049
- size?: "xs" | "sm" | "md" | "lg" | "xl" | "default" | "icon" | null | undefined;
1050
- disabled?: boolean | null | undefined;
1051
- rounded?: boolean | null | undefined;
1052
- } & class_variance_authority_types.ClassProp) | undefined) => string;
1053
- type LoadingVariantProps = VariantProps<typeof loadingVariants>;
1054
- declare const loadingVariants: (props?: ({
1055
- variant?: "warning" | "link" | "text" | "default" | "outline" | "dashed" | "destructive" | "primary" | "secondary" | "danger" | "ghost" | null | undefined;
1056
- loading?: boolean | "default" | null | undefined;
1057
- } & class_variance_authority_types.ClassProp) | undefined) => string;
1058
- interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'type'>, Omit<ButtonVariantProps, 'disabled'>, Omit<LoadingVariantProps, 'variant'> {
1059
- asChild?: boolean;
1060
- type?: ButtonVariantProps['variant'] | React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
1061
- htmlType?: React.ButtonHTMLAttributes<HTMLButtonElement>['type'];
1062
- icon?: React.ReactNode;
1063
- iconStart?: React.ReactNode;
1064
- iconEnd?: React.ReactNode;
1065
- /** @deprecated Use iconStart instead */
1066
- iconLeft?: React.ReactNode;
1067
- /** @deprecated Use iconEnd instead */
1068
- iconRight?: React.ReactNode;
1069
- isLoading?: boolean;
1070
- /** @deprecated Use `isLoading` instead */
1071
- loading?: boolean;
1072
- block?: boolean;
1073
- rounded?: boolean;
1074
- }
1075
- declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
1076
-
1077
- interface SeparatorProps extends React$1.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {
1078
- children?: React$1.ReactNode;
1079
- }
1080
- declare const Separator: React$1.ForwardRefExoticComponent<SeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
1081
-
1082
716
  declare const buttonGroupVariants: (props?: ({
1083
717
  orientation?: "horizontal" | "vertical" | null | undefined;
1084
718
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1097,30 +731,6 @@ declare namespace ButtonGroupSeparator {
1097
731
  var displayName: string;
1098
732
  }
1099
733
 
1100
- type CalendarProps = {
1101
- usePersianCalendar?: boolean;
1102
- className?: string;
1103
- classNames?: Partial<Record<string, string>>;
1104
- showOutsideDays?: boolean;
1105
- } & (React$1.ComponentProps<typeof DayPicker> | React$1.ComponentProps<typeof DayPicker$1>);
1106
- declare function Calendar({ className, classNames, showOutsideDays, usePersianCalendar, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
1107
- declare namespace Calendar {
1108
- var displayName: string;
1109
- }
1110
-
1111
- declare const cardVariants: (props?: ({
1112
- variant?: "default" | "outlined" | "elevated" | "interactive" | "glass" | null | undefined;
1113
- size?: "sm" | "md" | "lg" | null | undefined;
1114
- } & class_variance_authority_types.ClassProp) | undefined) => string;
1115
- interface CardProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
1116
- }
1117
- declare const Card: React$1.ForwardRefExoticComponent<CardProps & React$1.RefAttributes<HTMLDivElement>>;
1118
- declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
1119
- declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
1120
- declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
1121
- declare const CardContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
1122
- declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
1123
-
1124
734
  type CarouselApi = UseEmblaCarouselType[1];
1125
735
  type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
1126
736
  type CarouselOptions = UseCarouselParameters[0];
@@ -1187,23 +797,6 @@ declare namespace CollapsibleContent {
1187
797
  var displayName: string;
1188
798
  }
1189
799
 
1190
- declare const Dialog: React$1.FC<DialogPrimitive.DialogProps>;
1191
- declare const DialogTrigger: React$1.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
1192
- declare const DialogPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
1193
- declare const DialogClose: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
1194
- declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1195
- declare const DialogContent: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1196
- declare const DialogHeader: {
1197
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1198
- displayName: string;
1199
- };
1200
- declare const DialogFooter: {
1201
- ({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1202
- displayName: string;
1203
- };
1204
- declare const DialogTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
1205
- declare const DialogDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
1206
-
1207
800
  declare function Command({ className, ...props }: React$1.ComponentProps<typeof Command$1>): react_jsx_runtime.JSX.Element;
1208
801
  declare namespace Command {
1209
802
  var displayName: string;
@@ -1245,69 +838,6 @@ declare namespace CommandShortcut {
1245
838
  var displayName: string;
1246
839
  }
1247
840
 
1248
- /**
1249
- * Hotkey string grammar:
1250
- *
1251
- * <part>[+<part>]*
1252
- *
1253
- * where each <part> is one of:
1254
- * mod — Cmd on macOS, Ctrl on everything else (recommended)
1255
- * ctrl / cmd — explicit, cross-platform tokens
1256
- * shift | alt | meta
1257
- * <single key> — lowercase character, 'space', 'enter', 'escape', 'tab',
1258
- * arrow{up,down,left,right}, 'slash', 'backspace', etc.
1259
- *
1260
- * Examples:
1261
- * 'mod+k' — ⌘K on macOS, CtrlK elsewhere
1262
- * 'mod+shift+p'
1263
- * 'escape'
1264
- * 'ctrl+k' — explicit Ctrl (no Cmd fallback on macOS)
1265
- *
1266
- * Passing an array of strings is treated as an OR — any combo fires the handler.
1267
- */
1268
- type HotkeyCombo = string | readonly string[];
1269
- interface UseHotkeysOptions {
1270
- /**
1271
- * When true, `event.preventDefault()` is called on matched combos.
1272
- * Default: true. Useful to allow the browser's native 'mod+k' (address bar)
1273
- * to keep working — set to false if the handler only does something conditionally.
1274
- */
1275
- preventDefault?: boolean;
1276
- /**
1277
- * Skip the handler when focus is inside an editable control (input, textarea,
1278
- * contenteditable). The exception: combos that include a modifier (mod/ctrl/
1279
- * cmd/alt) still fire — they are unambiguous shortcuts, not typing.
1280
- * Default: true.
1281
- */
1282
- ignoreWhenTyping?: boolean;
1283
- /**
1284
- * When false, the hook unregisters its listener. Useful for conditionally
1285
- * enabling shortcuts (e.g., only while a panel is open).
1286
- * Default: true.
1287
- */
1288
- enabled?: boolean;
1289
- /**
1290
- * DOM target. Defaults to `document`. Pass a ref for scoped shortcuts (e.g.,
1291
- * only when a specific panel has focus within).
1292
- */
1293
- target?: React$1.RefObject<HTMLElement | null> | HTMLElement | Document | null;
1294
- }
1295
- /**
1296
- * Register a keyboard shortcut. Handler fires when the combo matches, respecting
1297
- * `ignoreWhenTyping` (default true) — except when a modifier is part of the combo,
1298
- * which always wins. Returns nothing; cleanup is automatic.
1299
- *
1300
- * @example
1301
- * useHotkeys('mod+k', () => setOpen((v) => !v))
1302
- * useHotkeys(['escape', 'mod+w'], close, { enabled: open })
1303
- */
1304
- declare function useHotkeys(combo: HotkeyCombo, handler: (event: KeyboardEvent) => void, options?: UseHotkeysOptions): void;
1305
- /**
1306
- * Render-helper: returns a platform-appropriate display string for a combo.
1307
- * 'mod+k' → '⌘K' on macOS, 'Ctrl+K' elsewhere. Useful for `<CommandShortcut>`.
1308
- */
1309
- declare function formatHotkey(combo: string): string;
1310
-
1311
841
  interface CommandPaletteItem {
1312
842
  /** Stable identifier. Used as the cmdk value and the recents key — MUST be unique across the whole items list. */
1313
843
  id: string;
@@ -1403,6 +933,11 @@ interface PartoRadarChartProps {
1403
933
  };
1404
934
  /** Custom tooltip formatter */
1405
935
  tooltipFormatter?: (name: string, value: number) => React$1.ReactNode;
936
+ /**
937
+ * Locale for digit formatting in tooltips and angle-axis labels. fa/ar
938
+ * convert embedded digits to Persian/Arabic; en uses Latin. Default: 'fa'.
939
+ */
940
+ locale?: SupportedLocale;
1406
941
  className?: string;
1407
942
  isLoading?: boolean;
1408
943
  ariaLabel?: string;
@@ -1874,84 +1409,6 @@ declare namespace ContextMenuShortcut {
1874
1409
  var displayName: string;
1875
1410
  }
1876
1411
 
1877
- type FlowData = Partial<Record<FlowKey, number>>;
1878
- interface FlowDistributionProps extends React$1.HTMLAttributes<HTMLDivElement> {
1879
- /** Flow counts (auto-normalized). Missing keys treated as 0. */
1880
- data: FlowData;
1881
- /** Display mode */
1882
- variant?: 'bars' | 'stacked' | 'compact';
1883
- /** Show numeric counts alongside percent */
1884
- showCounts?: boolean;
1885
- /** Show percentages */
1886
- showPercent?: boolean;
1887
- /** Locale */
1888
- locale?: SupportedLocale;
1889
- /** Loading skeleton */
1890
- isLoading?: boolean;
1891
- }
1892
- declare const FlowDistribution: React$1.ForwardRefExoticComponent<FlowDistributionProps & React$1.RefAttributes<HTMLDivElement>>;
1893
-
1894
- interface SentimentData {
1895
- positive: number;
1896
- negative: number;
1897
- neutral: number;
1898
- mixed?: number;
1899
- }
1900
- interface SentimentDistributionProps extends React$1.HTMLAttributes<HTMLDivElement> {
1901
- /** Sentiment counts (will be auto-normalized to 100%) */
1902
- data: SentimentData;
1903
- /** Display mode */
1904
- variant?: 'bars' | 'stacked' | 'compact';
1905
- /** Show numeric count labels */
1906
- showCounts?: boolean;
1907
- /** Show percentage labels */
1908
- showPercent?: boolean;
1909
- /** Locale for number/label formatting */
1910
- locale?: SupportedLocale;
1911
- /** Show loading skeleton */
1912
- isLoading?: boolean;
1913
- }
1914
- declare const SentimentDistribution: React$1.ForwardRefExoticComponent<SentimentDistributionProps & React$1.RefAttributes<HTMLDivElement>>;
1915
-
1916
- /**
1917
- * ConceptCard — افکارسنجی-flavored headline tile for clustering dashboards.
1918
- * Composes: status badge, severity badge, flow composition bar, sentiment
1919
- * distribution, sparkline trend, AI summary snippet, optional comparison
1920
- * checkbox. Built for government dashboards where each "concept" needs
1921
- * to fit in a card grid with rich, comparable signals.
1922
- */
1923
- interface ConceptCardProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'title'> {
1924
- /** Concept name (e.g., "افزایش قیمت بنزین") */
1925
- title: React$1.ReactNode;
1926
- /** Short subtitle (e.g., "خوشه ۴ — ۱۲۰ پست") */
1927
- subtitle?: React$1.ReactNode;
1928
- /** Operational status */
1929
- status?: StatusKey;
1930
- /** Criticality of the concept (urgent/high/medium/low) */
1931
- severity?: SeverityKey;
1932
- /** Flow composition breakdown (5-class political) */
1933
- flow?: FlowData;
1934
- /** Sentiment composition (3-class) */
1935
- sentiment?: SentimentData;
1936
- /** Trend sparkline values (e.g., last 14 days mention volume) */
1937
- trend?: number[];
1938
- /** AI-generated short summary (1-2 sentences) */
1939
- aiSummary?: React$1.ReactNode;
1940
- /** Total mentions / size — shown as a stat */
1941
- totalCount?: number;
1942
- /** Comparison checkbox state. When provided, renders the checkbox in the header */
1943
- comparison?: {
1944
- selected: boolean;
1945
- onSelectionChange: (next: boolean) => void;
1946
- label?: React$1.ReactNode;
1947
- };
1948
- /** Make the entire card clickable (cursor + hover/focus ring) */
1949
- interactive?: boolean;
1950
- /** Locale @default 'fa' */
1951
- locale?: SupportedLocale;
1952
- }
1953
- declare const ConceptCard: React$1.ForwardRefExoticComponent<ConceptCardProps & React$1.RefAttributes<HTMLDivElement>>;
1954
-
1955
1412
  interface CopyButtonProps extends Omit<ButtonProps, 'onClick'> {
1956
1413
  /** The text value to copy to clipboard */
1957
1414
  value: string;
@@ -2264,6 +1721,32 @@ declare const EmptyTitle: React$1.ForwardRefExoticComponent<Omit<React$1.Detaile
2264
1721
  declare const EmptyDescription: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
2265
1722
  declare const EmptyAction: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2266
1723
 
1724
+ /**
1725
+ * SVG illustrations for empty / error / forbidden / first-run / no-results
1726
+ * states. All use `currentColor` so consumers can color them via
1727
+ * `text-foreground-muted` (default) or any token class. RTL-safe — no
1728
+ * directional cues built in.
1729
+ *
1730
+ * Usage with the Empty primitive:
1731
+ *
1732
+ * <Empty>
1733
+ * <NoResultsIllustration className="size-32 text-foreground-muted" />
1734
+ * <EmptyTitle>نتیجه‌ای یافت نشد</EmptyTitle>
1735
+ * <EmptyDescription>عبارت دیگری امتحان کنید یا فیلترها را پاک کنید</EmptyDescription>
1736
+ * </Empty>
1737
+ *
1738
+ * The illustrations sit at ~120×120 viewBox and scale with `size-*` classes.
1739
+ * Stroke-only line work keeps them theme-agnostic (no tinting needed for
1740
+ * dark mode) and tarball-cheap (each ~600 bytes after gzip).
1741
+ */
1742
+
1743
+ type SVGProps = React$1.SVGProps<SVGSVGElement>;
1744
+ declare const NoResultsIllustration: React$1.ForwardRefExoticComponent<Omit<SVGProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1745
+ declare const NoDataIllustration: React$1.ForwardRefExoticComponent<Omit<SVGProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1746
+ declare const FirstRunIllustration: React$1.ForwardRefExoticComponent<Omit<SVGProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1747
+ declare const ErrorIllustration: React$1.ForwardRefExoticComponent<Omit<SVGProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1748
+ declare const ForbiddenIllustration: React$1.ForwardRefExoticComponent<Omit<SVGProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
1749
+
2267
1750
  interface ErrorStateProps extends React$1.HTMLAttributes<HTMLDivElement> {
2268
1751
  /** Error message displayed below the icon */
2269
1752
  message?: string;
@@ -2475,16 +1958,48 @@ declare namespace HoverCardContent {
2475
1958
  var displayName: string;
2476
1959
  }
2477
1960
 
2478
- declare const inputVariants: (props?: ({
2479
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
2480
- } & class_variance_authority_types.ClassProp) | undefined) => string;
2481
- /** @deprecated Use inputVariants instead */
2482
- declare const InputVariants: (props?: ({
2483
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
2484
- } & class_variance_authority_types.ClassProp) | undefined) => string;
2485
- interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputVariants> {
1961
+ interface NumberInputLocaleProps extends Omit<React$1.ComponentProps<'input'>, 'type' | 'value' | 'defaultValue' | 'onChange' | 'size'> {
1962
+ /** Current numeric value. Use `null` for empty. */
1963
+ value?: number | null;
1964
+ /** Initial value (uncontrolled). */
1965
+ defaultValue?: number | null;
1966
+ /** Called when the parsed numeric value changes. `null` means cleared. */
1967
+ onValueChange?: (next: number | null) => void;
1968
+ /**
1969
+ * Locale for digit display + parse. Persian/Arabic input is auto-normalised
1970
+ * to Latin before parsing; output digits match the locale.
1971
+ * @default 'fa'
1972
+ */
1973
+ locale?: SupportedLocale;
1974
+ /** Optional unit suffix shown on the inline-end side (e.g. "%", "تومان"). */
1975
+ unit?: React$1.ReactNode;
1976
+ /** Min value (inclusive). */
1977
+ min?: number;
1978
+ /** Max value (inclusive). */
1979
+ max?: number;
1980
+ /** Number of fractional digits. @default 0 (integer) */
1981
+ decimals?: number;
1982
+ /** Show grouping separator (1,234) in display. @default true */
1983
+ thousandSeparator?: boolean;
1984
+ /** Allow negative numbers. @default true */
1985
+ allowNegative?: boolean;
2486
1986
  }
2487
- declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>;
1987
+ /**
1988
+ * Locale-aware number input. Accepts Persian, Arabic, or Latin digits;
1989
+ * always emits a parsed JS `number` (or `null` for empty) via `onValueChange`.
1990
+ * Display digits match `locale` (Persian by default).
1991
+ *
1992
+ * - While the input is focused, the value renders as the user typed (raw
1993
+ * sanitized buffer), so editing mid-string doesn't snap the caret.
1994
+ * - On blur, value is re-formatted to the locale display (with thousand
1995
+ * separators + decimals padded to spec).
1996
+ * - `min`/`max` clamp on blur, never mid-edit.
1997
+ *
1998
+ * @example
1999
+ * const [n, setN] = useState<number | null>(null)
2000
+ * <NumberInputLocale value={n} onValueChange={setN} unit="تومان" thousandSeparator />
2001
+ */
2002
+ declare const NumberInputLocale: React$1.ForwardRefExoticComponent<Omit<NumberInputLocaleProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
2488
2003
 
2489
2004
  interface InputWithIconProps extends InputProps {
2490
2005
  /** Icon rendered at the start (inline-start, respects RTL) */
@@ -2515,6 +2030,45 @@ declare const TagInput: React$1.ForwardRefExoticComponent<TagInputProps & React$
2515
2030
 
2516
2031
  declare const HashtagInput: React$1.ForwardRefExoticComponent<TagInputProps & React$1.RefAttributes<HTMLDivElement>>;
2517
2032
 
2033
+ interface HashtagPerformanceData {
2034
+ /** Hashtag without the leading `#` — the component renders the marker. */
2035
+ tag: string;
2036
+ /** Mention frequency (count of posts using the tag). */
2037
+ frequency: number;
2038
+ /** Engagement rate (%) for posts that used this tag. */
2039
+ engagementRate?: number;
2040
+ /** Trend sparkline values (e.g. last 7-14 days frequency). */
2041
+ trend?: number[];
2042
+ /** Optional explicit delta (% vs previous period). When omitted, derived from `trend`. */
2043
+ delta?: number;
2044
+ }
2045
+ interface HashtagPerformanceRowProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'onClick'> {
2046
+ data: HashtagPerformanceData;
2047
+ /** Make the row clickable (opens an analytics drill-down on the consumer side). */
2048
+ onRowClick?: (data: HashtagPerformanceData) => void;
2049
+ /** Show ranking number at the start of the row (1, 2, 3, …). */
2050
+ rank?: number;
2051
+ /** Density compact (28px) vs comfortable (40px). @default 'comfortable' */
2052
+ density?: 'compact' | 'comfortable';
2053
+ /** Locale for digit + label formatting. @default 'fa' */
2054
+ locale?: SupportedLocale;
2055
+ }
2056
+ /**
2057
+ * Single row in a hashtag-performance table — hashtag + frequency +
2058
+ * engagement + sparkline trend + delta. Designed to drop straight into a
2059
+ * `<DataTable>` cell renderer or a vertical list of top hashtags.
2060
+ *
2061
+ * @example
2062
+ * <DataTable
2063
+ * columns={[{
2064
+ * id: 'hashtag', header: 'هشتگ',
2065
+ * cell: (row) => <HashtagPerformanceRow data={row} rank={row.rank} />,
2066
+ * }]}
2067
+ * data={hashtags}
2068
+ * />
2069
+ */
2070
+ declare const HashtagPerformanceRow: React$1.ForwardRefExoticComponent<HashtagPerformanceRowProps & React$1.RefAttributes<HTMLDivElement>>;
2071
+
2518
2072
  type CardSize = 'sm' | 'md' | 'lg';
2519
2073
  interface EntityHealthCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
2520
2074
  /** Current health state — drives colour, icon, and default narrative framing */
@@ -2784,6 +2338,206 @@ declare namespace KbdGroup {
2784
2338
  var displayName: string;
2785
2339
  }
2786
2340
 
2341
+ declare const labelChipVariants: (props?: ({
2342
+ tone?: "neutral" | "warning" | "success" | "destructive" | "brand" | "ai" | null | undefined;
2343
+ size?: "sm" | "md" | null | undefined;
2344
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2345
+ interface LabelChipProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, 'onClick'>, VariantProps<typeof labelChipVariants> {
2346
+ /** Visible label text. */
2347
+ children: React$1.ReactNode;
2348
+ /** When set, renders an inline pencil button that opens an editor on consumer side. */
2349
+ onEdit?: () => void;
2350
+ /** When set, renders an inline ✕ button to dismiss/remove the label. */
2351
+ onRemove?: () => void;
2352
+ /**
2353
+ * Mark the chip as AI-generated — adds a subtle ✦ prefix and the `ai` tone
2354
+ * (unless tone is explicitly overridden). Used by AI-labeled clustering
2355
+ * dashboards to distinguish auto-tagged from human-curated labels.
2356
+ */
2357
+ aiGenerated?: boolean;
2358
+ /** Confidence (0–1) for AI labels — rendered as a small `(۸۰%)` suffix when set. */
2359
+ confidence?: number;
2360
+ /** Whole chip click handler — useful for filter-by-label flows. */
2361
+ onSelect?: () => void;
2362
+ }
2363
+ declare const LabelChip: React$1.ForwardRefExoticComponent<LabelChipProps & React$1.RefAttributes<HTMLSpanElement>>;
2364
+
2365
+ interface LabelEditDialogProps {
2366
+ /** Controlled open state. */
2367
+ open: boolean;
2368
+ onOpenChange: (open: boolean) => void;
2369
+ /** Initial value of the label being edited. */
2370
+ initialValue?: string;
2371
+ /** Whether this label was originally AI-generated (controls the AI-flag toggle default). */
2372
+ aiGenerated?: boolean;
2373
+ /** Existing labels — surfaced as quick-pick suggestions during edit. */
2374
+ suggestions?: string[];
2375
+ /** Save handler. Called with the new value + the AI-generated flag (consumer persists). */
2376
+ onSave: (value: string, aiGenerated: boolean) => void;
2377
+ /**
2378
+ * Optional handler for the "Delete label" destructive action. When set, a
2379
+ * `Button variant="destructive"` shows up in the footer; omit to hide.
2380
+ */
2381
+ onDelete?: () => void;
2382
+ /** Locale for default strings. @default 'fa' */
2383
+ locale?: SupportedLocale;
2384
+ }
2385
+ /**
2386
+ * Edit dialog for AI-labeled clustering. Pairs with `<LabelChip>` — when
2387
+ * users click the pencil affordance on a chip, this dialog opens with the
2388
+ * current value pre-filled, an AI-generated toggle, and a list of
2389
+ * suggestions (typically other labels already in use).
2390
+ *
2391
+ * Stateless wrt persistence: consumer wires `onSave` to whatever backend.
2392
+ */
2393
+ declare const LabelEditDialog: React$1.ForwardRefExoticComponent<LabelEditDialogProps & React$1.RefAttributes<HTMLDivElement>>;
2394
+
2395
+ interface MarkdownRendererProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'children'> {
2396
+ /** Raw markdown source. Safe by default — raw HTML is escaped, scripts are never executed. */
2397
+ children: string;
2398
+ /**
2399
+ * Enables permissive link schemes. By default only `http`, `https`, and `mailto` are kept;
2400
+ * everything else (including `javascript:`) is dropped.
2401
+ */
2402
+ allowedLinkSchemes?: ReadonlyArray<string>;
2403
+ /** Compact density tightens vertical rhythm — useful for inline AI summaries. */
2404
+ density?: 'compact' | 'comfortable';
2405
+ }
2406
+ /**
2407
+ * Lightweight, dependency-free markdown renderer for AI narratives, report
2408
+ * sections, and bulletin bodies. Safe by default — raw HTML in the source is
2409
+ * rendered as text (never injected), and `javascript:` links are dropped.
2410
+ *
2411
+ * Supports: ATX headings (`#`..`######`), paragraphs, **bold**, *italic*,
2412
+ * ~~strike~~, `inline code`, fenced ``` code blocks ```, blockquotes, ordered
2413
+ * + unordered lists (flat), `[links](url)`, horizontal rules, hard line breaks.
2414
+ *
2415
+ * Intentional non-features (v1): tables, nested lists, footnotes, images. If
2416
+ * you need any of those, lift to a heavier renderer (TipTap / react-markdown).
2417
+ */
2418
+ declare const MarkdownRenderer: React$1.ForwardRefExoticComponent<MarkdownRendererProps & React$1.RefAttributes<HTMLDivElement>>;
2419
+
2420
+ interface TaskListGroup {
2421
+ /** Stable group identifier — used to bucket items and as a React key. */
2422
+ id: string;
2423
+ /** Heading shown above the column / group section. */
2424
+ label: React$1.ReactNode;
2425
+ /** Optional accent token CSS variable (e.g. `--status-warning`) for the column rail. */
2426
+ accent?: string;
2427
+ /** Optional override for the empty state inside this group. */
2428
+ emptyState?: React$1.ReactNode;
2429
+ }
2430
+ interface TaskListProps<T> extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'children' | 'onSelect'> {
2431
+ /** Items to render. Order is preserved within each group. */
2432
+ items: ReadonlyArray<T>;
2433
+ /**
2434
+ * Layout — `kanban` renders one column per group with horizontal scroll;
2435
+ * `flat` renders a single ordered list with sticky group headings.
2436
+ * @default 'kanban'
2437
+ */
2438
+ variant?: 'kanban' | 'flat';
2439
+ /**
2440
+ * Explicit group definitions. When omitted, groups are auto-derived from the
2441
+ * unique `groupBy(item)` values in document order. Pass an array to control
2442
+ * column ordering, labels, or to render columns with no items today.
2443
+ */
2444
+ groups?: ReadonlyArray<TaskListGroup>;
2445
+ /** Function returning the group id for an item. */
2446
+ groupBy: (item: T) => string;
2447
+ /** Renders a single item card. Receives the resolved group for context. */
2448
+ renderItem: (item: T, group: TaskListGroup) => React$1.ReactNode;
2449
+ /** Stable React key per item. */
2450
+ getItemKey: (item: T, index: number) => React$1.Key;
2451
+ /** Default empty state when a group has no items. */
2452
+ emptyState?: React$1.ReactNode;
2453
+ /**
2454
+ * Show the item count next to each group heading. @default true.
2455
+ */
2456
+ showCounts?: boolean;
2457
+ /** Locale for default empty / count strings. @default 'fa' */
2458
+ locale?: SupportedLocale;
2459
+ }
2460
+ declare const TaskList: <T>(props: TaskListProps<T> & {
2461
+ ref?: React$1.ForwardedRef<HTMLDivElement>;
2462
+ }) => React$1.ReactElement;
2463
+
2464
+ type RegionPickerKey = 'slug' | 'iso';
2465
+ interface RegionPickerProps {
2466
+ /** Selected province identifiers (slug or iso, depending on `keyBy`). */
2467
+ value?: ReadonlyArray<string>;
2468
+ onValueChange?: (next: string[]) => void;
2469
+ /**
2470
+ * Which identifier to read/write — `slug` (e.g. `tehran`) is URL-friendly,
2471
+ * `iso` (`IR-07`) is the ISO 3166-2 standard. @default 'slug'
2472
+ */
2473
+ keyBy?: RegionPickerKey;
2474
+ /** Locale for province labels + UI strings. @default 'fa' */
2475
+ locale?: SupportedLocale;
2476
+ /** Restrict the choosable list (e.g. only show provinces with bureaus). */
2477
+ includeSlugs?: ReadonlyArray<IranProvinceSlug>;
2478
+ /** Excluded slugs — applied after `includeSlugs`. */
2479
+ excludeSlugs?: ReadonlyArray<IranProvinceSlug>;
2480
+ /** Trigger placeholder. */
2481
+ placeholder?: string;
2482
+ /** Search-input placeholder. */
2483
+ searchPlaceholder?: string;
2484
+ /** Empty-state message when search yields no results. */
2485
+ emptyMessage?: string;
2486
+ /** Cap on selections — e.g. `1` to make it a single-province picker. */
2487
+ maxSelected?: number;
2488
+ /** How many selected chips to render before collapsing into a "+N" badge. */
2489
+ maxDisplayed?: number;
2490
+ disabled?: boolean;
2491
+ className?: string;
2492
+ }
2493
+ /**
2494
+ * Multi-select picker over Iran's 31 provinces. Source of truth is
2495
+ * `IRAN_PROVINCES`; the picker projects it through the active locale and
2496
+ * surfaces it via `MultiSelect`.
2497
+ *
2498
+ * Pair with `IranProvinceHeat` for province-scoped افکارسنجی dashboards. A
2499
+ * proper SVG geomap selector is deferred (Phase 5.4).
2500
+ */
2501
+ declare const RegionPicker: React$1.ForwardRefExoticComponent<RegionPickerProps & React$1.RefAttributes<HTMLDivElement>>;
2502
+
2503
+ interface CountryPickerProps {
2504
+ /** Selected ISO 3166-1 alpha-2 codes (uppercase). */
2505
+ value?: ReadonlyArray<string>;
2506
+ onValueChange?: (next: string[]) => void;
2507
+ /**
2508
+ * Override the country list. Defaults to the curated 80-country roster in
2509
+ * `lib/countries.ts`. Pass your own when you need a fuller ISO 3166 set or
2510
+ * a sub-region (e.g. only EU members).
2511
+ */
2512
+ options?: ReadonlyArray<Country>;
2513
+ /** Restrict the curated default list to these codes. */
2514
+ includeCodes?: ReadonlyArray<string>;
2515
+ /** Excluded codes — applied after `includeCodes`. */
2516
+ excludeCodes?: ReadonlyArray<string>;
2517
+ /** Show flag emoji prefix on each option. @default true */
2518
+ showFlag?: boolean;
2519
+ /** Locale for labels + UI strings. @default 'fa' */
2520
+ locale?: SupportedLocale;
2521
+ placeholder?: string;
2522
+ searchPlaceholder?: string;
2523
+ emptyMessage?: string;
2524
+ /** Cap on selections — e.g. `1` for a single-country picker. */
2525
+ maxSelected?: number;
2526
+ /** Selected chips before collapsing into "+N" badge. */
2527
+ maxDisplayed?: number;
2528
+ disabled?: boolean;
2529
+ className?: string;
2530
+ }
2531
+ /**
2532
+ * Multi-select picker over a curated country list. Defaults to the 80
2533
+ * countries that recur in افکارسنجی + influencer dashboards we serve; pass
2534
+ * `options` to replace the dataset with your own.
2535
+ *
2536
+ * Returns ISO 3166-1 alpha-2 codes (uppercase). Pair with platform tokens +
2537
+ * the audience graph for influencer geographic breakdowns.
2538
+ */
2539
+ declare const CountryPicker: React$1.ForwardRefExoticComponent<CountryPickerProps & React$1.RefAttributes<HTMLDivElement>>;
2540
+
2787
2541
  declare function Menubar({ className, ...props }: React$1.ComponentProps<typeof MenubarPrimitive.Root>): react_jsx_runtime.JSX.Element;
2788
2542
  declare namespace Menubar {
2789
2543
  var displayName: string;
@@ -2964,100 +2718,6 @@ declare namespace NavigationMenuIndicator {
2964
2718
  var displayName: string;
2965
2719
  }
2966
2720
 
2967
- type SocialPlatform = 'instagram' | 'twitter' | 'tiktok' | 'youtube' | 'linkedin' | 'telegram' | 'threads';
2968
- interface SocialPlatformBadgeProps extends React$1.HTMLAttributes<HTMLSpanElement> {
2969
- /** The social media platform to display */
2970
- platform: SocialPlatform;
2971
- /** Size of the badge */
2972
- size?: 'xs' | 'sm' | 'md' | 'lg';
2973
- /** Show the platform name label */
2974
- showLabel?: boolean;
2975
- /** Visual style of the badge */
2976
- variant?: 'flat' | 'badge';
2977
- }
2978
- declare const socialPlatformBadgeVariants: (props?: ({
2979
- size?: "xs" | "sm" | "md" | "lg" | null | undefined;
2980
- variant?: "flat" | "badge" | null | undefined;
2981
- } & class_variance_authority_types.ClassProp) | undefined) => string;
2982
- declare const SocialPlatformBadge: React$1.ForwardRefExoticComponent<SocialPlatformBadgeProps & React$1.RefAttributes<HTMLSpanElement>>;
2983
-
2984
- type BotDetectionKey = 'real' | 'suspicious' | 'bot';
2985
- interface BotDetectionData {
2986
- /** Confirmed real / human accounts */
2987
- real: number;
2988
- /** Suspicious — insufficient signal, possibly bot */
2989
- suspicious: number;
2990
- /** Confirmed bot / automated */
2991
- bot: number;
2992
- }
2993
- interface BotDetectionMeterProps extends React$1.HTMLAttributes<HTMLDivElement> {
2994
- /** Counts — auto-normalised to percentages that sum to exactly 100 */
2995
- data: BotDetectionData;
2996
- /** Display mode @default "stacked" */
2997
- variant?: 'stacked' | 'bars' | 'compact';
2998
- /** Show numeric count labels */
2999
- showCounts?: boolean;
3000
- /** Show percentage labels @default true */
3001
- showPercent?: boolean;
3002
- /** Show the top "Real-account rate" summary line (stacked variant only) @default true */
3003
- showSummary?: boolean;
3004
- /** Size of the stacked bar or individual bars */
3005
- size?: 'sm' | 'md' | 'lg';
3006
- /** Locale for digits + default labels @default "fa" */
3007
- locale?: SupportedLocale;
3008
- }
3009
- declare const BotDetectionMeter: React$1.ForwardRefExoticComponent<BotDetectionMeterProps & React$1.RefAttributes<HTMLDivElement>>;
3010
-
3011
- /**
3012
- * PageCard (government-flavor) — tracked-account tile for افکارسنجی pages
3013
- * dashboards. Composes: avatar + handle + platform badge, status (healthy/
3014
- * degrading/at-risk via StatusKey), follower trend sparkline, engagement
3015
- * stats, content-type mix, bot-detection percentages.
3016
- *
3017
- * Distinct from `ProfileCard` which is influencer-flavored (focus on
3018
- * engagement tier, follower count, avatar). PageCard is for **tracked
3019
- * accounts** in monitoring — health and trust signals matter most.
3020
- */
3021
- interface PageCardContentMix {
3022
- /** Photo posts in window (count or %) */
3023
- photo?: number;
3024
- /** Video posts in window */
3025
- video?: number;
3026
- /** Carousel posts */
3027
- carousel?: number;
3028
- /** Story / reel count */
3029
- story?: number;
3030
- }
3031
- interface PageCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
3032
- /** Account handle / display name (e.g., "@news_agency") */
3033
- handle: React$1.ReactNode;
3034
- /** Optional secondary subtitle (e.g., page category) */
3035
- subtitle?: React$1.ReactNode;
3036
- /** Avatar URL */
3037
- avatarSrc?: string;
3038
- /** Platform — drives the platform badge */
3039
- platform?: SocialPlatform;
3040
- /** Operational status (healthy/degrading/at-risk) — uses StatusKey */
3041
- status?: StatusKey;
3042
- /** Total followers (current snapshot) */
3043
- followers?: number;
3044
- /** Follower-trend sparkline values */
3045
- followerTrend?: number[];
3046
- /** Engagement rate (%) */
3047
- engagementRate?: number;
3048
- /** Posts per week (recent average) */
3049
- postsPerWeek?: number;
3050
- /** Content-type mix (counts or percents) */
3051
- contentMix?: PageCardContentMix;
3052
- /** Bot-detection breakdown (real / suspicious / bot) */
3053
- botDetection?: BotDetectionData;
3054
- /** Make the entire card clickable */
3055
- interactive?: boolean;
3056
- /** Locale @default 'fa' */
3057
- locale?: SupportedLocale;
3058
- }
3059
- declare const PageCard: React$1.ForwardRefExoticComponent<PageCardProps & React$1.RefAttributes<HTMLDivElement>>;
3060
-
3061
2721
  interface PageHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
3062
2722
  /** Page title */
3063
2723
  title: string;
@@ -3163,11 +2823,6 @@ interface PaginationControlledProps {
3163
2823
  */
3164
2824
  declare const PaginationControlled: React$1.ForwardRefExoticComponent<PaginationControlledProps & React$1.RefAttributes<HTMLElement>>;
3165
2825
 
3166
- declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
3167
- declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
3168
- declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
3169
- declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
3170
-
3171
2826
  /**
3172
2827
  * PartoHeatMap — brand-tinted heatmap with rounded cells, clean axis,
3173
2828
  * glassmorphic tooltip, and locale-aware formatting.
@@ -3603,6 +3258,61 @@ interface PostListProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'on
3603
3258
  }
3604
3259
  declare const PostList: React$1.ForwardRefExoticComponent<PostListProps & React$1.RefAttributes<HTMLDivElement>>;
3605
3260
 
3261
+ /**
3262
+ * Extended platform set: social media + government broadcast/print sources
3263
+ * (TV, Radio, Press). Use this for cross-platform feeds where a tracked
3264
+ * topic surfaces in both an Instagram post AND a TV broadcast.
3265
+ */
3266
+ type ExtendedPlatform = SocialPlatform | 'tv' | 'radio' | 'press';
3267
+ /**
3268
+ * Metrics shape varies by platform — social posts have likes/comments,
3269
+ * TV/radio clips have viewers/listeners, news articles often just have
3270
+ * a share count or comment-thread total. All optional.
3271
+ */
3272
+ interface MultiPlatformMetrics {
3273
+ likes?: number;
3274
+ comments?: number;
3275
+ shares?: number;
3276
+ views?: number;
3277
+ /** TV viewers OR radio listeners (different display label, same number type) */
3278
+ audience?: number;
3279
+ }
3280
+ interface MultiPlatformPostData {
3281
+ /** Stable id for keys + analytics */
3282
+ id: string;
3283
+ platform: ExtendedPlatform;
3284
+ /** Outlet/account display name (e.g. "BBC فارسی", "@news_ir", "صدا و سیما"). */
3285
+ sourceName: string;
3286
+ /** Optional headline — typical for news + TV/radio segments, often absent on social. */
3287
+ title?: React$1.ReactNode;
3288
+ /** Body text or transcript excerpt. */
3289
+ body: React$1.ReactNode;
3290
+ /** Publication / broadcast time. Date or ISO string. */
3291
+ publishedAt: Date | string;
3292
+ /** Optional thumbnail (post image, article hero, video still). */
3293
+ thumbnailUrl?: string;
3294
+ /**
3295
+ * Optional clip duration in **seconds** — only meaningful for TV / radio /
3296
+ * video. Rendered as `MM:SS` or `HH:MM:SS`.
3297
+ */
3298
+ durationSec?: number;
3299
+ metrics?: MultiPlatformMetrics;
3300
+ /** Optional URL to the source. When set, the card gains an "open at source" affordance. */
3301
+ sourceUrl?: string;
3302
+ /** Optional language tag for the body. Renders a small chip when set. */
3303
+ language?: string;
3304
+ }
3305
+ interface MultiPlatformPostCardProps extends Omit<React$1.HTMLAttributes<HTMLElement>, 'onClick'> {
3306
+ post: MultiPlatformPostData;
3307
+ /** Make the entire card clickable (opens sourceUrl in new tab if not custom) */
3308
+ onCardClick?: (post: MultiPlatformPostData) => void;
3309
+ /** Compact density hides body excerpt + thumbnail */
3310
+ density?: 'compact' | 'comfortable';
3311
+ /** Locale for labels + relative-time formatting */
3312
+ locale?: SupportedLocale;
3313
+ }
3314
+ declare const MultiPlatformPostCard: React$1.ForwardRefExoticComponent<MultiPlatformPostCardProps & React$1.RefAttributes<HTMLElement>>;
3315
+
3606
3316
  type PostDetailsTab = 'post' | 'comments' | 'analysis' | 'transcript';
3607
3317
  interface PostDetailsModalProps {
3608
3318
  /** Controls modal open state. */
@@ -4019,58 +3729,6 @@ declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitiv
4019
3729
  declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
4020
3730
  declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
4021
3731
 
4022
- declare function Sheet({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
4023
- declare namespace Sheet {
4024
- var displayName: string;
4025
- }
4026
- declare function SheetTrigger({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
4027
- declare namespace SheetTrigger {
4028
- var displayName: string;
4029
- }
4030
- declare function SheetClose({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Close>): react_jsx_runtime.JSX.Element;
4031
- declare namespace SheetClose {
4032
- var displayName: string;
4033
- }
4034
- declare function SheetContent({ className, children, side, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Content> & {
4035
- side?: 'top' | 'right' | 'bottom' | 'left';
4036
- }): react_jsx_runtime.JSX.Element;
4037
- declare namespace SheetContent {
4038
- var displayName: string;
4039
- }
4040
- declare function SheetHeader({ className, ...props }: React$1.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
4041
- declare namespace SheetHeader {
4042
- var displayName: string;
4043
- }
4044
- declare function SheetBody({ className, ...props }: React$1.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
4045
- declare namespace SheetBody {
4046
- var displayName: string;
4047
- }
4048
- declare function SheetFooter({ className, ...props }: React$1.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
4049
- declare namespace SheetFooter {
4050
- var displayName: string;
4051
- }
4052
- declare function SheetTitle({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
4053
- declare namespace SheetTitle {
4054
- var displayName: string;
4055
- }
4056
- declare function SheetDescription({ className, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
4057
- declare namespace SheetDescription {
4058
- var displayName: string;
4059
- }
4060
-
4061
- declare const TooltipProvider: React$1.FC<TooltipPrimitive.TooltipProviderProps>;
4062
- declare const Tooltip: React$1.FC<TooltipPrimitive.TooltipProps>;
4063
- declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
4064
- interface TooltipContentProps extends React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
4065
- /** Visual variant */
4066
- variant?: 'default' | 'light' | 'error';
4067
- /** Size */
4068
- size?: 'sm' | 'md';
4069
- /** Show arrow/caret pointing to trigger */
4070
- showArrow?: boolean;
4071
- }
4072
- declare const TooltipContent: React$1.ForwardRefExoticComponent<TooltipContentProps & React$1.RefAttributes<HTMLDivElement>>;
4073
-
4074
3732
  type SidebarContextProps = {
4075
3733
  state: 'expanded' | 'collapsed';
4076
3734
  open: boolean;
@@ -4278,39 +3936,6 @@ declare namespace FormRowSkeleton {
4278
3936
  var displayName: string;
4279
3937
  }
4280
3938
 
4281
- type SparklineTrend = 'up' | 'down' | 'neutral' | 'auto';
4282
- type SparklineVariant = 'line' | 'area' | 'bars';
4283
- interface SparklineProps extends React$1.HTMLAttributes<HTMLDivElement> {
4284
- /** Array of numeric data points. Must have at least 2 items to render line/area. */
4285
- data: number[];
4286
- /** Visual style @default "line" */
4287
- variant?: SparklineVariant;
4288
- /**
4289
- * Trend colour. `"auto"` compares first and last point:
4290
- * last > first → up, last < first → down, equal → neutral.
4291
- * Pass an explicit value to override.
4292
- * @default "auto"
4293
- */
4294
- trend?: SparklineTrend;
4295
- /** Width in px. Also used as SVG viewBox width — output scales to parent when CSS overrides. @default 80 */
4296
- width?: number;
4297
- /** Height in px @default 24 */
4298
- height?: number;
4299
- /** Line / bar stroke width @default 1.5 */
4300
- strokeWidth?: number;
4301
- /** Show a filled dot at the last point */
4302
- showEndDot?: boolean;
4303
- /** Padding inside the viewBox so strokes/dots are not clipped @default 2 */
4304
- padding?: number;
4305
- /** Override color with any CSS value (e.g. `"hsl(var(--brand))"`). Takes precedence over `trend`. */
4306
- color?: string;
4307
- /** For bars variant — gap between bars in user units @default 1 */
4308
- barGap?: number;
4309
- /** aria-label for screen readers — describe the trend / metric */
4310
- 'aria-label'?: string;
4311
- }
4312
- declare const Sparkline: React$1.ForwardRefExoticComponent<SparklineProps & React$1.RefAttributes<HTMLDivElement>>;
4313
-
4314
3939
  declare function Slider({ className, defaultValue, value, min, max, dir, ...props }: React$1.ComponentProps<typeof SliderPrimitive.Root>): react_jsx_runtime.JSX.Element;
4315
3940
  declare namespace Slider {
4316
3941
  var displayName: string;
@@ -4578,6 +4203,15 @@ interface JobWizardStep {
4578
4203
  description?: string;
4579
4204
  /** Mark step as optional — a "Skip" button appears. @default false */
4580
4205
  optional?: boolean;
4206
+ /**
4207
+ * Branching: resolve the next step id based on current data. Returning a
4208
+ * known step id navigates there (skipping any steps in between); returning
4209
+ * `null` marks the wizard as terminal (the Next button submits); returning
4210
+ * `undefined` falls back to the natural linear `currentIndex + 1`.
4211
+ *
4212
+ * Cast `data` to your wizard's data shape inside the callback.
4213
+ */
4214
+ nextStep?: (data: Partial<Record<string, unknown>>) => string | null | undefined;
4581
4215
  }
4582
4216
  /** Result of a validator — `null`/`undefined` = pass, `string` = single error, `Record<field, message>` = field errors */
4583
4217
  type JobWizardValidationResult = string | Record<string, string> | null | undefined;
@@ -4911,118 +4545,6 @@ interface ComparisonCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
4911
4545
  }
4912
4546
  declare const ComparisonCard: React$1.ForwardRefExoticComponent<ComparisonCardProps & React$1.RefAttributes<HTMLDivElement>>;
4913
4547
 
4914
- type SortDirection = 'asc' | 'desc';
4915
- interface DataTableColumn<TData> {
4916
- /** Unique key identifying the column — used for sort callbacks */
4917
- id: string;
4918
- /** Column header label */
4919
- header: React$1.ReactNode;
4920
- /** Render function for cell content */
4921
- cell: (row: TData, rowIndex: number) => React$1.ReactNode;
4922
- /** Whether this column is sortable */
4923
- sortable?: boolean;
4924
- /** Additional className for both <th> and <td> */
4925
- className?: string;
4926
- /** Column alignment */
4927
- align?: 'start' | 'center' | 'end';
4928
- /**
4929
- * Pin the column to the start (logical, RTL-aware) or end of the visible
4930
- * area. Pinned columns stay visible while horizontal scrolling. The
4931
- * selection / expansion gutter columns are pinned automatically.
4932
- */
4933
- pinned?: 'start' | 'end';
4934
- /** Optional fixed pixel width (used for pinning offset calculation) */
4935
- width?: number;
4936
- /** When false, this column is hidden via the columnVisibility map */
4937
- defaultVisible?: boolean;
4938
- }
4939
- interface DataTableColumnVisibility {
4940
- /** Map of column id → visible. Missing keys default to true. */
4941
- visible: Record<string, boolean>;
4942
- /** Called when a column toggle changes. */
4943
- onVisibilityChange: (next: Record<string, boolean>) => void;
4944
- }
4945
- interface DataTableExpansion<TData> {
4946
- /** Set of expanded row keys. */
4947
- expandedRows: Set<number>;
4948
- /** Called when expansion toggles. */
4949
- onExpandedRowsChange: (next: Set<number>) => void;
4950
- /** Render function for the expanded content (full-width row below). */
4951
- renderExpandedRow: (row: TData, rowIndex: number) => React$1.ReactNode;
4952
- }
4953
- interface DataTablePagination {
4954
- currentPage: number;
4955
- totalPages: number;
4956
- onPageChange: (page: number) => void;
4957
- }
4958
- interface DataTableSort {
4959
- column: string | null;
4960
- direction: SortDirection | null;
4961
- onSort: (column: string, direction: SortDirection) => void;
4962
- }
4963
- interface DataTableSelection<TData> {
4964
- selectedRows: Set<number>;
4965
- onSelectionChange: (selectedRows: Set<number>) => void;
4966
- /** Function to get a unique key for each row (defaults to index) */
4967
- getRowKey?: (row: TData, index: number) => number;
4968
- }
4969
- interface DataTableProps<TData> {
4970
- /** Column definitions */
4971
- columns: DataTableColumn<TData>[];
4972
- /** Data rows */
4973
- data: TData[];
4974
- /** Table size variant */
4975
- size?: 'sm' | 'md' | 'lg';
4976
- /** Show loading skeleton */
4977
- isLoading?: boolean;
4978
- /** Number of skeleton rows to show when loading */
4979
- loadingRows?: number;
4980
- /** Content to show when data is empty (not loading) */
4981
- emptyState?: React$1.ReactNode;
4982
- /** Pagination configuration */
4983
- pagination?: DataTablePagination;
4984
- /** Sort configuration */
4985
- sort?: DataTableSort;
4986
- /** Row selection configuration */
4987
- selection?: DataTableSelection<TData>;
4988
- /** Column visibility configuration (for show/hide column toggle) */
4989
- columnVisibility?: DataTableColumnVisibility;
4990
- /** Expansion configuration (for inline detail row) */
4991
- expansion?: DataTableExpansion<TData>;
4992
- /**
4993
- * Opt-in row virtualization for very long lists (1000+ rows). When set,
4994
- * the table is wrapped in a scroll container of `viewportHeight` and only
4995
- * rows in the visible window + `overscan` are rendered. Rows must have a
4996
- * predictable `rowHeight`; expanded rows + dynamic content are NOT
4997
- * supported in virtualized mode.
4998
- */
4999
- virtualize?: {
5000
- /** Pixel height of each row (must be uniform). */
5001
- rowHeight: number;
5002
- /** Container scroll-area height in px. @default 480 */
5003
- viewportHeight?: number;
5004
- /** Extra rows rendered above and below the viewport. @default 6 */
5005
- overscan?: number;
5006
- };
5007
- /** Zebra-striped rows */
5008
- striped?: boolean;
5009
- /** Bordered cells */
5010
- bordered?: boolean;
5011
- /** Sticky header */
5012
- stickyHeader?: boolean;
5013
- /** Additional className for the root wrapper */
5014
- className?: string;
5015
- /** Caption text below the table */
5016
- caption?: string;
5017
- /** Total result count shown above table (e.g. "۲۴ نتیجه") */
5018
- resultCount?: React$1.ReactNode;
5019
- /** Locale for UI strings @default 'fa' */
5020
- locale?: SupportedLocale;
5021
- }
5022
- declare const DataTable: <TData>(props: DataTableProps<TData> & {
5023
- ref?: React$1.ForwardedRef<HTMLDivElement>;
5024
- }) => React$1.ReactElement;
5025
-
5026
4548
  /**
5027
4549
  * data-table-cells — opinionated thin wrappers around DS primitives, sized
5028
4550
  * and styled for use as `DataTableColumn.cell` values. Each cell renderer
@@ -5278,42 +4800,6 @@ interface SafeImageProps extends React$1.ImgHTMLAttributes<HTMLImageElement> {
5278
4800
  }
5279
4801
  declare const SafeImage: React$1.ForwardRefExoticComponent<SafeImageProps & React$1.RefAttributes<HTMLImageElement>>;
5280
4802
 
5281
- /**
5282
- * SavedQueryCard — saved-search tile for analyst dashboards. Shows query
5283
- * description + filter summary chips, run count, last-run timestamp, and a
5284
- * one-click "run again" action button. Optional star/favorite toggle.
5285
- */
5286
- interface SavedQueryFilter {
5287
- /** Filter label (e.g., "احساس") */
5288
- label: React$1.ReactNode;
5289
- /** Filter value (e.g., "منفی") */
5290
- value: React$1.ReactNode;
5291
- }
5292
- interface SavedQueryCardProps extends React$1.HTMLAttributes<HTMLDivElement> {
5293
- /** Saved query name */
5294
- name: React$1.ReactNode;
5295
- /** Optional 1-line description */
5296
- description?: React$1.ReactNode;
5297
- /** Filter chips (label + value pairs) */
5298
- filters?: SavedQueryFilter[];
5299
- /** Total run count */
5300
- runCount?: number;
5301
- /** Last-run display (e.g., "۲ روز پیش") */
5302
- lastRun?: React$1.ReactNode;
5303
- /** Run-now callback */
5304
- onRun?: () => void;
5305
- /** Run button label override */
5306
- runLabel?: React$1.ReactNode;
5307
- /** Favorite/star state. When set, renders the star toggle */
5308
- favorite?: {
5309
- starred: boolean;
5310
- onChange: (next: boolean) => void;
5311
- };
5312
- /** Locale @default 'fa' */
5313
- locale?: SupportedLocale;
5314
- }
5315
- declare const SavedQueryCard: React$1.ForwardRefExoticComponent<SavedQueryCardProps & React$1.RefAttributes<HTMLDivElement>>;
5316
-
5317
4803
  interface ReportComposerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'title'> {
5318
4804
  /** Report title (e.g., "بولتن هفتگی — هفته ۱۴") */
5319
4805
  title?: React$1.ReactNode;
@@ -5364,6 +4850,114 @@ interface BulletinViewerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement
5364
4850
  }
5365
4851
  declare const BulletinViewer: React$1.ForwardRefExoticComponent<BulletinViewerProps & React$1.RefAttributes<HTMLDivElement>>;
5366
4852
 
4853
+ /**
4854
+ * Report section templates — thin compositions of existing primitives that
4855
+ * each render inside a `<ReportSection>` shell. They cover the 6 layouts
4856
+ * that recur across every افکارسنجی bulletin we've seen:
4857
+ *
4858
+ * 1. ExecutiveSummarySection — title + AI paragraph + tile metrics
4859
+ * 2. SentimentBreakdownSection — sentiment + optional 9-emotion side-by-side
4860
+ * 3. FlowDistributionSection — political-flow stacked bar
4861
+ * 4. TopPostsSection — compact PostList of N highlighted posts
4862
+ * 5. TimelineSection — line chart with optional sparkline summary
4863
+ * 6. SourceBreakdownSection — per-platform metric grid
4864
+ *
4865
+ * Each template is intentionally thin — props mirror the underlying
4866
+ * primitive when possible. Consumers compose these inside a
4867
+ * `<ReportComposer>`; for non-template sections, `<ReportSection>` is
4868
+ * still the building block.
4869
+ */
4870
+
4871
+ type ReportSectionShellProps = Pick<ReportSectionProps, 'enabled' | 'onEnabledChange' | 'collapsed' | 'onCollapsedChange' | 'draggable' | 'onDragHandlePointerDown' | 'onSettingsClick' | 'headerActions'>;
4872
+ interface ExecutiveSummaryMetric {
4873
+ label: string;
4874
+ value: number | string;
4875
+ /** Pre-formatted display value. When omitted, numeric `value` is locale-formatted via `formatLargeNumber`. */
4876
+ displayValue?: string;
4877
+ /** Optional delta (percent vs previous period). */
4878
+ delta?: number;
4879
+ /** Optional unit string appended to the value (e.g. ' %'). */
4880
+ unit?: string;
4881
+ }
4882
+ interface ExecutiveSummarySectionProps extends ReportSectionShellProps {
4883
+ /** Section title (e.g., "خلاصه اجرایی") */
4884
+ title?: React$1.ReactNode;
4885
+ description?: React$1.ReactNode;
4886
+ /** AI / analyst-written paragraph (1–4 sentences). */
4887
+ summary: React$1.ReactNode;
4888
+ /** Up to 4 KPIs rendered as a row of tiles. */
4889
+ metrics?: ExecutiveSummaryMetric[];
4890
+ locale?: SupportedLocale;
4891
+ }
4892
+ declare const ExecutiveSummarySection: React$1.ForwardRefExoticComponent<ExecutiveSummarySectionProps & React$1.RefAttributes<HTMLDivElement>>;
4893
+ interface SentimentBreakdownSectionProps extends ReportSectionShellProps {
4894
+ title?: React$1.ReactNode;
4895
+ description?: React$1.ReactNode;
4896
+ /** 3-class sentiment counts (auto-normalized). */
4897
+ sentiment: SentimentData;
4898
+ /** Optional 9-emotion breakdown rendered alongside. */
4899
+ emotions?: Partial<Record<EmotionKey, number>>;
4900
+ locale?: SupportedLocale;
4901
+ }
4902
+ declare const SentimentBreakdownSection: React$1.ForwardRefExoticComponent<SentimentBreakdownSectionProps & React$1.RefAttributes<HTMLDivElement>>;
4903
+ interface FlowDistributionSectionProps extends ReportSectionShellProps {
4904
+ title?: React$1.ReactNode;
4905
+ description?: React$1.ReactNode;
4906
+ /** Political-flow counts (5 keys). */
4907
+ flow: Partial<Record<FlowKey, number>>;
4908
+ locale?: SupportedLocale;
4909
+ }
4910
+ declare const FlowDistributionSection: React$1.ForwardRefExoticComponent<FlowDistributionSectionProps & React$1.RefAttributes<HTMLDivElement>>;
4911
+ interface TopPostsSectionProps extends ReportSectionShellProps {
4912
+ title?: React$1.ReactNode;
4913
+ description?: React$1.ReactNode;
4914
+ posts: PostData[];
4915
+ /** Render only the first N posts. @default 5 */
4916
+ topN?: number;
4917
+ /** Density passed through to PostList. @default 'compact' */
4918
+ density?: 'compact' | 'comfortable';
4919
+ locale?: SupportedLocale;
4920
+ }
4921
+ declare const TopPostsSection: React$1.ForwardRefExoticComponent<TopPostsSectionProps & React$1.RefAttributes<HTMLDivElement>>;
4922
+ interface TimelineSectionProps extends ReportSectionShellProps {
4923
+ title?: React$1.ReactNode;
4924
+ description?: React$1.ReactNode;
4925
+ /** Row-oriented timeline data: [{ name: '۱ فروردین', volume: 1240 }, …] */
4926
+ data: Array<Record<string, string | number>>;
4927
+ /** Series keys to plot. */
4928
+ dataKeys: string[];
4929
+ /** Pixel chart height. @default 240 */
4930
+ chartHeight?: number;
4931
+ /**
4932
+ * Optional one-line summary of the trend, rendered as a sparkline + delta
4933
+ * pair below the chart. Pass a single series name and a "from" / "to" pair
4934
+ * to highlight the period delta.
4935
+ */
4936
+ summary?: {
4937
+ seriesKey: string;
4938
+ from: number;
4939
+ to: number;
4940
+ };
4941
+ /** Custom axes (forwarded to PartoLineChart). */
4942
+ axisLeft?: Record<string, unknown>;
4943
+ axisBottom?: Record<string, unknown>;
4944
+ locale?: SupportedLocale;
4945
+ }
4946
+ declare const TimelineSection: React$1.ForwardRefExoticComponent<TimelineSectionProps & React$1.RefAttributes<HTMLDivElement>>;
4947
+ interface SourceBreakdownEntry {
4948
+ platform: SocialPlatform;
4949
+ count: number;
4950
+ /** Pre-computed share percent. When omitted, percent is computed across all entries. */
4951
+ percent?: number;
4952
+ }
4953
+ interface SourceBreakdownSectionProps extends ReportSectionShellProps {
4954
+ title?: React$1.ReactNode;
4955
+ description?: React$1.ReactNode;
4956
+ sources: SourceBreakdownEntry[];
4957
+ locale?: SupportedLocale;
4958
+ }
4959
+ declare const SourceBreakdownSection: React$1.ForwardRefExoticComponent<SourceBreakdownSectionProps & React$1.RefAttributes<HTMLDivElement>>;
4960
+
5367
4961
  declare const calloutVariants: (props?: ({
5368
4962
  variant?: "neutral" | "warning" | "success" | "info" | "destructive" | null | undefined;
5369
4963
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -5408,122 +5002,6 @@ interface SectionNavigatorProps extends React$1.HTMLAttributes<HTMLElement> {
5408
5002
  }
5409
5003
  declare const SectionNavigator: React$1.ForwardRefExoticComponent<SectionNavigatorProps & React$1.RefAttributes<HTMLElement>>;
5410
5004
 
5411
- interface PartoLineChartProps {
5412
- /** Row-oriented data: [{ name: "فروردین", series1: 50, series2: 30 }] */
5413
- data: Array<Record<string, any>>;
5414
- /** Keys for each line series (e.g. ['فروش', 'سود']) */
5415
- dataKeys: string[];
5416
- /** Field name for X axis (default: 'name') */
5417
- xAxisKey?: string;
5418
- /** Curve type */
5419
- curve?: 'monotone' | 'linear' | 'natural' | 'step';
5420
- /** Line width */
5421
- strokeWidth?: number;
5422
- /** Show dots on data points */
5423
- showDots?: boolean;
5424
- /** Show horizontal grid lines */
5425
- enableGridY?: boolean;
5426
- /** Show vertical grid lines */
5427
- enableGridX?: boolean;
5428
- /** Chart margins */
5429
- margin?: {
5430
- top?: number;
5431
- right?: number;
5432
- bottom?: number;
5433
- left?: number;
5434
- };
5435
- /** Custom X axis config */
5436
- axisBottom?: Record<string, any> | null;
5437
- /** Custom Y axis config */
5438
- axisLeft?: Record<string, any> | null;
5439
- /** Custom tooltip formatter */
5440
- tooltipFormatter?: (name: string, value: number) => React$1.ReactNode;
5441
- className?: string;
5442
- isLoading?: boolean;
5443
- ariaLabel?: string;
5444
- /** Additional Recharts LineChart props */
5445
- chartProps?: Record<string, any>;
5446
- }
5447
- declare const PartoLineChart: React$1.ForwardRefExoticComponent<PartoLineChartProps & React$1.RefAttributes<HTMLDivElement>>;
5448
-
5449
- interface PartoBarChartProps {
5450
- /** Chart data — row-oriented array of objects */
5451
- data: Array<Record<string, any>>;
5452
- /** Data keys to render as bars (e.g. ['فروش', 'هزینه']) */
5453
- keys: string[];
5454
- /** Field name used for X axis categories (e.g. 'ماه') */
5455
- indexBy: string;
5456
- /** Stacked or grouped layout */
5457
- groupMode?: 'grouped' | 'stacked';
5458
- /** Bar layout direction */
5459
- layout?: 'vertical' | 'horizontal';
5460
- /** Chart margins */
5461
- margin?: {
5462
- top?: number;
5463
- right?: number;
5464
- bottom?: number;
5465
- left?: number;
5466
- };
5467
- /** Gap between category groups as percentage */
5468
- barCategoryGap?: string | number;
5469
- /** Gap between bars within a group */
5470
- barGap?: number;
5471
- /** Border radius for bar tops [topLeft, topRight, bottomRight, bottomLeft] */
5472
- radius?: [number, number, number, number];
5473
- /** Show horizontal grid lines */
5474
- enableGridY?: boolean;
5475
- /** Show vertical grid lines */
5476
- enableGridX?: boolean;
5477
- /** Show labels inside bars */
5478
- enableLabel?: boolean;
5479
- /** Custom X axis config */
5480
- axisBottom?: Record<string, any> | null;
5481
- /** Custom Y axis config */
5482
- axisLeft?: Record<string, any> | null;
5483
- /** Custom tooltip formatter */
5484
- tooltipFormatter?: (name: string, value: number) => React$1.ReactNode;
5485
- className?: string;
5486
- isLoading?: boolean;
5487
- ariaLabel?: string;
5488
- /** Additional Recharts BarChart props */
5489
- chartProps?: Record<string, any>;
5490
- }
5491
- declare const PartoBarChart: React$1.ForwardRefExoticComponent<PartoBarChartProps & React$1.RefAttributes<HTMLDivElement>>;
5492
-
5493
- interface PartoPieChartProps {
5494
- /** Data: [{ name: "محصول A", value: 40 }] */
5495
- data: Array<{
5496
- name: string;
5497
- value: number;
5498
- [key: string]: any;
5499
- }>;
5500
- /** Inner radius — 0 for full pie, "60%" for donut */
5501
- innerRadius?: number | string;
5502
- /** Outer radius */
5503
- outerRadius?: number | string;
5504
- /** Angle between slices in degrees */
5505
- paddingAngle?: number;
5506
- /** Corner radius of arc segments */
5507
- cornerRadius?: number;
5508
- /** Show arc link labels (lines from slices to text) */
5509
- showLabels?: boolean;
5510
- /** Skip labels for slices smaller than this angle */
5511
- labelSkipAngle?: number;
5512
- /** Chart margins */
5513
- margin?: {
5514
- top?: number;
5515
- right?: number;
5516
- bottom?: number;
5517
- left?: number;
5518
- };
5519
- /** Custom tooltip formatter */
5520
- tooltipFormatter?: (name: string, value: number) => React$1.ReactNode;
5521
- className?: string;
5522
- isLoading?: boolean;
5523
- ariaLabel?: string;
5524
- }
5525
- declare const PartoPieChart: React$1.ForwardRefExoticComponent<PartoPieChartProps & React$1.RefAttributes<HTMLDivElement>>;
5526
-
5527
5005
  /**
5528
5006
  * PartoWordCloud — modern word cloud with smooth hover transitions,
5529
5007
  * glassmorphic tooltip, and brand-harmonious coloring.
@@ -5558,46 +5036,6 @@ declare namespace PartoWordCloud {
5558
5036
  var displayName: string;
5559
5037
  }
5560
5038
 
5561
- interface PartoAreaChartProps {
5562
- /** Row-oriented data: [{ name: "فروردین", series1: 50, series2: 30 }] */
5563
- data: Array<Record<string, any>>;
5564
- /** Keys for each area series (e.g. ['فروش', 'سود']) */
5565
- dataKeys: string[];
5566
- /** Field name for X axis (default: 'name') */
5567
- xAxisKey?: string;
5568
- /** Curve type */
5569
- curve?: 'monotone' | 'linear' | 'natural' | 'step';
5570
- /** Line width */
5571
- strokeWidth?: number;
5572
- /** Area fill opacity */
5573
- fillOpacity?: number;
5574
- /** Show dots on data points */
5575
- showDots?: boolean;
5576
- /** Show horizontal grid lines */
5577
- enableGridY?: boolean;
5578
- /** Show vertical grid lines */
5579
- enableGridX?: boolean;
5580
- /** Chart margins */
5581
- margin?: {
5582
- top?: number;
5583
- right?: number;
5584
- bottom?: number;
5585
- left?: number;
5586
- };
5587
- /** Custom X axis config */
5588
- axisBottom?: Record<string, any> | null;
5589
- /** Custom Y axis config */
5590
- axisLeft?: Record<string, any> | null;
5591
- /** Custom tooltip formatter */
5592
- tooltipFormatter?: (name: string, value: number) => React$1.ReactNode;
5593
- className?: string;
5594
- isLoading?: boolean;
5595
- ariaLabel?: string;
5596
- /** Additional Recharts AreaChart props */
5597
- chartProps?: Record<string, any>;
5598
- }
5599
- declare const PartoAreaChart: React$1.ForwardRefExoticComponent<PartoAreaChartProps & React$1.RefAttributes<HTMLDivElement>>;
5600
-
5601
5039
  /**
5602
5040
  * PartoScatterChart — x/y scatter with optional bubble sizing (z) and
5603
5041
  * per-point color override. Wraps Recharts ScatterChart with theme-aware
@@ -5989,8 +5427,25 @@ interface ChartTooltipProps {
5989
5427
  label?: string;
5990
5428
  tooltipStyle: React$1.CSSProperties;
5991
5429
  formatter?: (name: string, value: number) => React$1.ReactNode;
5430
+ /** Locale for the default value formatter. fa/ar render Persian/Arabic digits with thousands separators; en uses Latin. */
5431
+ locale?: SupportedLocale;
5992
5432
  }
5993
- declare function ChartTooltip({ active, payload, label, tooltipStyle, formatter }: ChartTooltipProps): react_jsx_runtime.JSX.Element | null;
5433
+ declare function ChartTooltip({ active, payload, label, tooltipStyle, formatter, locale }: ChartTooltipProps): react_jsx_runtime.JSX.Element | null;
5434
+ /**
5435
+ * Default tickFormatter for numeric chart axes (Y axis on Line/Area/Bar, both
5436
+ * axes on Scatter, radial on Radar). Renders Persian/Arabic digits + locale
5437
+ * suffix ("۱.۵ هزار", "1.5K") for fa/ar, Latin K/M/B for en.
5438
+ *
5439
+ * Pass via `axisLeft={{ tickFormatter: localeAwareNumberTick('fa') }}`, or rely
5440
+ * on the chart wrapper's `locale` prop which wires this in by default.
5441
+ */
5442
+ declare function localeAwareNumberTick(locale: SupportedLocale): (value: unknown) => string;
5443
+ /**
5444
+ * Default tickFormatter for categorical chart axes — converts embedded digits
5445
+ * to the locale's numerals (e.g. "۱۴۰۳-۰۱" for "1403-01") without altering
5446
+ * letters. Use on date/time axes whose labels carry digits.
5447
+ */
5448
+ declare function localeAwareCategoryTick(locale: SupportedLocale): (value: unknown) => string;
5994
5449
  /**
5995
5450
  * Transforms Nivo line/area data format to Recharts row-oriented format.
5996
5451
  * Useful for consumers migrating from Nivo data shape.
@@ -6019,6 +5474,46 @@ declare function transformNivoLineData(nivoData: Array<{
6019
5474
  */
6020
5475
  declare function useScrollLock(locked: boolean): void;
6021
5476
 
5477
+ interface ShortcutsCheatsheetProps {
5478
+ /** Controlled open state. If omitted, the cheatsheet manages its own open state. */
5479
+ open?: boolean;
5480
+ onOpenChange?: (open: boolean) => void;
5481
+ /**
5482
+ * Global keyboard shortcut to toggle the cheatsheet. Default: `'shift+?'`.
5483
+ * Pass `false` to disable the global listener (useful when wiring your own).
5484
+ */
5485
+ shortcut?: HotkeyCombo | false;
5486
+ /** Trigger node — when set, the cheatsheet opens on click. Otherwise opening is controlled or via shortcut. */
5487
+ trigger?: React$1.ReactNode;
5488
+ /** Custom title (defaults to a localized "Keyboard shortcuts"). */
5489
+ title?: React$1.ReactNode;
5490
+ /** Custom description shown under the title. */
5491
+ description?: React$1.ReactNode;
5492
+ /** Locale for default strings + sort tie-breaks. */
5493
+ locale?: SupportedLocale;
5494
+ /** Override which entries to show. Defaults to the active provider's full registry. */
5495
+ hotkeys?: RegisteredHotkey[];
5496
+ /** Optional empty-state customization when the registry is empty. */
5497
+ emptyState?: React$1.ReactNode;
5498
+ className?: string;
5499
+ }
5500
+ /**
5501
+ * Visual help overlay that lists every hotkey registered with the active
5502
+ * `<HotkeyProvider>`. Opens on `Shift+?` by default (configurable) or via a
5503
+ * trigger button. Renders nothing useful outside a HotkeyProvider — the
5504
+ * registry is empty and the empty state shows.
5505
+ *
5506
+ * @example
5507
+ * <HotkeyProvider>
5508
+ * <ShortcutsCheatsheet />
5509
+ * <App /> // descendants register via useHotkey()
5510
+ * </HotkeyProvider>
5511
+ *
5512
+ * Pair with `useHotkey('?', 'shift+?', () => setOpen(true))` if you prefer
5513
+ * to wire the toggle yourself; the built-in shortcut is just a convenience.
5514
+ */
5515
+ declare const ShortcutsCheatsheet: React$1.ForwardRefExoticComponent<ShortcutsCheatsheetProps & React$1.RefAttributes<HTMLDivElement>>;
5516
+
6022
5517
  /**
6023
5518
  * Fires `handler` whenever a pointer event lands outside the referenced
6024
5519
  * element. Use for closing dropdowns, popovers, dismissable cards, etc.
@@ -6128,4 +5623,91 @@ interface UseAsyncReturn<T> {
6128
5623
  }
6129
5624
  declare function useAsync<T = unknown>(initialData?: T | null): UseAsyncReturn<T>;
6130
5625
 
6131
- export { ACTION_STATUS_KEYS, ACTION_TYPE_KEYS, ACTION_TYPE_META, Accordion, AccordionContent, AccordionItem, AccordionTrigger, type ActionStatusKey, ActionTimeline, type ActionTimelineDensity, type ActionTimelineGroupBy, ActionTimelineItem, type ActionTimelineItemData, type ActionTimelineItemProps, type ActionTimelineProps, ActionTypeChip, type ActionTypeChipProps, type ActionTypeKey, ActiveFiltersBar, type ActiveFiltersBarProps, ActiveFiltersClearAll, type ActiveFiltersClearAllProps, Alert, type AlertChannel, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertRuleCard, type AlertRuleCardProps, AlertTitle, AnimatedNumber, type AnimatedNumberProps, AppBar, type AppBarProps, AppLayout, AppLayoutContent, AspectRatio, type AsyncStatus, Autocomplete, type AutocompleteItem, type AutocompleteProps, Avatar, AvatarFallback, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, AvatarImage, AvatarTextSkeleton, type AvatarTextSkeletonProps, Badge, type BadgeProps, Banner, type BannerProps, type BenchmarkMarker, type BenchmarkTier, type BotDetectionData, type BotDetectionKey, BotDetectionMeter, type BotDetectionMeterProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BulletinViewer, type BulletinViewerProps, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, type ButtonVariantProps, CHART_FONT_FAMILY, CRITERION_TIER_KEYS, Calendar, type CalendarProps, Callout, CalloutDescription, type CalloutProps, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardSkeleton, type CardSkeletonProps, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLoadingSkeleton, ChartSkeleton, type ChartSkeletonProps$1 as ChartSkeletonProps, ChartTooltip, Checkbox, CircularProgress, type CircularProgressProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandPalette, type CommandPaletteItem, type CommandPaletteProps, type CommandPaletteRecentsConfig, CommandSeparator, CommandShortcut, CommentCard, type CommentCardProps, type CommentTag, ComparisonCard, type ComparisonCardProps, type ComparisonEntity, type ComparisonMetric, ComparisonRadar, type ComparisonRadarProps, type ComparisonWinner, type CompositionScale, ConceptCard, type ConceptCardProps, type ConceptComposition, type ConceptPoint, ConceptPulseChart, type ConceptPulseChartProps, ConfirmDialog, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, type CriterionInputSpec, CriterionScoreCard, type CriterionScoreCardProps, type CriterionTierKey, type CriterionTierThresholds, type CriterionTrend, DEFAULT_CRITERION_THRESHOLDS, DEFAULT_PERIODS, DEFAULT_THRESHOLDS, DataTable, type DataTableColumn, type DataTableColumnVisibility, DataTableColumnVisibilityToggle, type DataTableColumnVisibilityToggleProps, type DataTableExpansion, DataTableExportButton, type DataTableExportButtonProps, type DataTablePagination, type DataTableProps, type DataTableSelection, type DataTableSort, DatePicker, type DatePickerProps, DateRangePicker, DateRangePickerInline, type DateRangePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type Direction, DirectionalBox, type DirectionalBoxProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EMOTION_KEYS, ENGAGEMENT_RANGES, ENTITY_HEALTH_KEYS, EmotionBadge, type EmotionBadgeProps, type EmotionData, EmotionDistribution, type EmotionDistributionProps, type EmotionKey, Empty, EmptyAction, EmptyChart, type EmptyChartProps, type EmptyChartShape, EmptyDescription, EmptyIcon, EmptyTitle, type EngagementRange, type EngagementRangeWithDisplay, EngagementRate, EngagementRateBar, type EngagementRateBarProps, EngagementRateBenchmark, type EngagementRateBenchmarkProps, type EngagementRateProps, type EngagementTier, EntityHealthCard, EntityHealthCardActions, EntityHealthCardFooter, EntityHealthCardHeader, EntityHealthCardHeaderEnd, EntityHealthCardHeaderText, EntityHealthCardMeta, EntityHealthCardMetric, type EntityHealthCardMetricProps, EntityHealthCardMetrics, type EntityHealthCardMetricsProps, EntityHealthCardNarrative, EntityHealthCardPhase, type EntityHealthCardPhaseProps, type EntityHealthCardProps, EntityHealthCardScore, type EntityHealthCardScoreProps, EntityHealthCardSeverityBadge, type EntityHealthCardSeverityBadgeProps, EntityHealthCardSubtitle, EntityHealthCardTitle, type EntityHealthCardTitleProps, EntityHealthCardTrust, type EntityHealthCardTrustProps, type EntityHealthKey, ErrorBoundary, type ErrorBoundaryProps, ErrorState, type ErrorStateProps, type ExportableColumn, FLOW_KEYS, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterBar, FilterBarActions, type FilterBarActionsProps, FilterBarActiveFilters, type FilterBarActiveFiltersProps, FilterBarClear, type FilterBarClearProps, type FilterBarProps, FilterBarRow, type FilterBarRowProps, FilterChip, FilterChipGroup, type FilterChipProps, FilterPanel, FilterPanelBody, FilterPanelClearAll, type FilterPanelClearAllProps, FilterPanelFooter, FilterPanelHeader, type FilterPanelProps, FilterPanelTitle, type FilterPanelTitleProps, FilterPanelTrigger, type FilterPanelTriggerProps, FilterSection, type FilterSectionProps, FlowBadge, type FlowBadgeProps, FlowCell, type FlowCellProps, type FlowData, FlowDistribution, type FlowDistributionProps, type FlowKey, type FollowerGroup, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormRowSkeleton, type FormRowSkeletonProps, GROUP_LABELS, HashtagInput, type TagInputProps as HashtagInputProps, type HeatMapDatum, type HeatMapRow, type HotkeyCombo, HoverCard, HoverCardContent, HoverCardTrigger, type Icon, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, InputVariants, InputWithIcon, type InputWithIconProps, JOB_STATUS_KEYS, JobCard, JobCardActions, JobCardError, JobCardHeader, JobCardHeaderActions, JobCardHeaderText, JobCardMeta, JobCardMetaItem, type JobCardMetaItemProps, JobCardProgress, type JobCardProgressProps, type JobCardProps, JobCardStat, type JobCardStatProps, JobCardStats, type JobCardStatsProps, JobCardStatusBadge, type JobCardStatusBadgeProps, JobCardSubtitle, JobCardThumbnail, type JobCardThumbnailProps, JobCardTitle, type JobCardTitleProps, type JobStatusKey, JobWizard, type JobWizardApi, JobWizardBack, type JobWizardBackProps, JobWizardBody, JobWizardCancel, type JobWizardCancelProps, JobWizardError, JobWizardFooter, JobWizardHeader, type JobWizardHeaderProps, JobWizardNext, type JobWizardNextProps, type JobWizardProps, JobWizardSkip, type JobWizardSkipProps, JobWizardSpacer, type JobWizardStep, JobWizardStepper, type JobWizardStepperProps, type JobWizardSubmitState, JobWizardSuccess, type JobWizardSuccessProps, type JobWizardValidationResult, Kbd, KbdGroup, Label, type LegacySize, type LoadingVariantProps, type Locale, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, MetricCardContent, MetricCardDifferential, MetricCardHeader, MetricCardLabel, MetricCardSkeleton, type MetricCardSkeletonProps, MetricCardSparkline, MetricCardValue, MultiSelect, type MultiSelectOption, type MultiSelectProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavGroup, type NavGroupProps, NavItem, type NavItemBaseProps, type NavItemProps, type NavMatchStrategy, NavPanel, NavPanelContent, NavPanelFooter, NavPanelHeader, NavRail, NavRailContent, NavRailFooter, NavRailHeader, NavRailItem, NavRailProvider, NavRailSeparator, NavRailTrigger, NavSeparator, NavTree, type NavTreeContextValue, NavTreeProvider, type NavTreeProviderProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NetworkLink, type NetworkNode, NotificationCenter, type NotificationCenterProps, type NotificationFilter, type NotificationItem, type NotificationSeverity, PERSIAN_MONTHS, PERSIAN_MONTHS_SHORT, PERSIAN_WEEKDAYS, PERSIAN_WEEKDAYS_SHORT, PageCard, type PageCardContentMix, type PageCardProps, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, PaginationContent, PaginationControlled, type PaginationControlledProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartoAreaChart, type PartoAreaChartProps, PartoBarChart, type PartoBarChartProps, PartoHeatMap, type PartoHeatMapProps, PartoLineChart, type PartoLineChartProps, PartoNetworkChart, type PartoNetworkChartProps, PartoPieChart, type PartoPieChartProps, PartoRadarChart, type PartoRadarChartProps, PartoSankeyChart, type PartoSankeyChartProps, PartoScatterChart, type PartoScatterChartProps, type PartoToasterProps, PartoWordCloud, type PartoWordCloudProps, type PeriodOption, PeriodSelector, type PeriodSelectorProps, type PlatformMetadata, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PostAction, PostActions, type PostActionsProps, type PostAiAnalysis, type PostAiEntity, type PostAuthor, PostBody, type PostBodyData, type PostBodyProps, PostCard, type PostCardProps, type PostComment, type PostCommentAuthor, type PostData, type PostDensity, type PostDetails, PostDetailsModal, type PostDetailsModalProps, type PostDetailsTab, type PostEmotion, type PostEnrichmentFlags, PostHeader, type PostHeaderProps, type PostIntent, PostList, type PostListProps, type PostMediaItem, PostMetadata, type PostMetadataProps, type PostMetrics, type PostPlatform, type PostSentiment, type PostingFrequencyCell, PostingFrequencyHeatmap, type PostingFrequencyHeatmapProps, type PostingFrequencySummary, type PostingWeekStart, ProfileCard, type ProfileCardProps, ProfileInfo, type ProfileInfoProps, Progress, ProgressCell, type ProgressCellProps, type ProgressProps, type QuotaLevel, QuotaProgressBar, type QuotaProgressBarProps, type QuotaThresholds, RadioCardDescription, RadioCardItem, RadioCardTitle, RadioCards, RadioGroup, RadioGroupItem, RateLimitBanner, type RateLimitBannerProps, ReportComposer, type ReportComposerProps, ReportSection, type ReportSectionProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RouteProgress, type RouteProgressHandle, type RouteProgressProps, SONNER_DEFAULT_DURATION, STAGE_STATUS_KEYS, SafeImage, type SafeImageProps, type SankeyLink, type SankeyNode, SavedQueryCard, type SavedQueryCardProps, type SavedQueryFilter, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SectionItem, SectionNavigator, type SectionNavigatorProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectTriggerVariants, SelectValue, SentimentBadge, type SentimentBadgeProps, SentimentCell, type SentimentCellProps, type SentimentData, SentimentDistribution, type SentimentDistributionProps, Separator, SeverityBadge, type SeverityBadgeProps, type SeverityKey, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteHeader, SiteHeaderActions, SiteHeaderEnd, type SiteHeaderProps, SiteHeaderSeparator, SiteHeaderStart, SiteHeaderSubtitle, SiteHeaderTitle, SiteHeaderTitleGroup, type SizeWithLegacy, Skeleton, type SkeletonProps, Slider, type SocialPlatform, SocialPlatformBadge, type SocialPlatformBadgeProps, type SortDirection, Sparkline, SparklineCell, type SparklineCellProps, type SparklineProps, type SparklineTrend, type SparklineVariant, Spinner, type SpinnerProps, type StageStatusKey, type StandardSize, StatDeltaCell, type StatDeltaCellProps, StatDisplay, type StatDisplayProps, StatusBadge, type StatusBadgeProps, StatusFlow, type StatusFlowOrientation, type StatusFlowProps, type StatusFlowSize, StatusFlowStage, type StatusFlowStageData, type StatusFlowStageProps, type StatusKey, StatusPulseCell, type StatusPulseCellProps, Step, type StepProps, Stepper, type StepperProps, type SupportedLocale, Switch, type SwitchProps, TIER_LABELS, Table, TableBody, TableCaption, TableCell, TableComparisonView, type TableComparisonViewProps, TableFooter, TableHead, TableHeader, TableRow, TableRowSkeleton, type TableRowSkeletonProps, TableSkeleton, type TableSkeletonProps, TableSortHeader, Tabs, TabsContent, TabsList, TabsTrigger, TagInput, type TagInputProps, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrendCell, type TrendCellProps, TrendIndicator, type TrendIndicatorProps, type UIStringKeys, type UIStrings, UI_STRINGS, type UseAsyncReturn, type UseClipboardOptions, type UseClipboardReturn, type UseHotkeysOptions, type UseInfiniteScrollOptions, type UseInfiniteScrollReturn, type UseJobWizardOptions, UserAutocomplete, type UserAutocompleteProps, type UserItem, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuUser, type ViewMode, ViewToggle, type ViewToggleProps, type WordData, actionStatusLabels, actionTypeChipVariants, actionTypeLabels, actionTypeVerbs, appBarVariants, avatarGroupVariants, badgeVariants, bannerVariants, buildCsv, buildPostingFrequencyRows, buildTsv, buttonGroupVariants, buttonVariants, calloutVariants, cardVariants, cn, computeComparisonWinners, convertToLocalNumbers, countComparisonWins, defaultActions as defaultPostActions, downloadFile, emotionLabels, engagementUiTranslations, entityHealthLabels, entityHealthPriority, findTierIndex, flowLabels, formatAbsoluteTime, formatHotkey, formatJalaliDate, formatLargeNumber, formatNumber, formatPersianDateRange, formatRelativeLocaleTime, formatRelativeTime, formatTimeRemaining, getCriterionTier, getCurrentRangeIndex, getEngagementRanges, getEngagementRateBenchmarkTiers, getFollowerGroup, getPersianDay, getPersianMonth, getPersianMonthName, getPersianMonthNameShort, getPersianMonthsForDropdown, getPersianWeekdayName, getPersianYear, getPersianYearsForDropdown, getScoreBenchmarkTiers, getUIStrings, tagInputVariants as hashtagInputVariants, inputVariants, isActiveJobStatus, isCriticalEntityHealth, isRTL, jalaliToGregorian, jobStatusLabels, navItemVariants, navigationMenuTriggerStyle, normalizeSize, pageLoaderVariants, postCardVariants, postHeaderVariants, profileCardVariants, resolveLevel, sentimentLabels, severityLabels, siteHeaderVariants, socialPlatformBadgeVariants, spinnerVariants, stageStatusLabels, statDisplayVariants, statusLabels, tagInputVariants, toEnglishDigits, toPersianDigits, toggleVariants, transformNivoLineData, useAsync, useBreakpoint, useChartTheme, useClipboard, useDebounce, useDocumentDirection, useFormField, useHotkeys, useInfiniteScroll, useIsMobile, useJobWizard, useJobWizardState, useLocalStorage, useMediaQuery, useNavRail, useNavTree, useOutsideClick, usePrevious, useRootStyles, useScrollLock, useSidebar };
5626
+ interface UseFilterParamsOptions<T extends FilterStateShape> {
5627
+ /**
5628
+ * Convert a state object into a flat map of URL params. Return null/undefined
5629
+ * for entries you want to omit (e.g. defaults, empty arrays, null fields).
5630
+ */
5631
+ serialize: (state: T) => Record<string, string | undefined | null>;
5632
+ /**
5633
+ * Parse the current URL params back into a partial state. Called once on
5634
+ * mount to hydrate the FilterProvider, and on browser navigation events.
5635
+ */
5636
+ parse: (params: URLSearchParams) => Partial<T>;
5637
+ /**
5638
+ * Debounce window (ms) before pushing serialized state to the URL.
5639
+ * @default 200
5640
+ */
5641
+ debounceMs?: number;
5642
+ /**
5643
+ * Use `history.pushState` instead of `replaceState`. Default replace
5644
+ * keeps the back button useful for actual page navigation rather than
5645
+ * filter tweaks.
5646
+ * @default 'replace'
5647
+ */
5648
+ history?: 'push' | 'replace';
5649
+ /** Disable the hook (e.g. while a parent is loading server-side data). */
5650
+ disabled?: boolean;
5651
+ }
5652
+ declare function normalizeUrlDigits(input: string): string;
5653
+ /**
5654
+ * Two-way bind a `<FilterProvider>`'s state with `URLSearchParams`.
5655
+ *
5656
+ * - On mount, parses `window.location.search` and merges it onto the
5657
+ * provider's initial state via `patch`.
5658
+ * - On state change, runs `serialize` and writes the result to the URL
5659
+ * (debounced 200ms, replaceState by default).
5660
+ * - Persian/Arabic digits in incoming params are normalized to Latin.
5661
+ *
5662
+ * SSR-safe — does nothing on the server. Must be used inside a
5663
+ * `<FilterProvider>`. Throws otherwise to surface wiring mistakes early.
5664
+ */
5665
+ declare function useFilterParams<T extends FilterStateShape>(options: UseFilterParamsOptions<T>): void;
5666
+
5667
+ interface FilterPreset<T extends FilterStateShape = FilterStateShape> {
5668
+ /** Stable, locally-unique id (slug or random). */
5669
+ id: string;
5670
+ /** User-visible name. */
5671
+ name: string;
5672
+ /** Snapshot of the filter state. */
5673
+ state: T;
5674
+ /** Unix timestamp (ms) of creation. */
5675
+ createdAt: number;
5676
+ /** Unix timestamp (ms) of the most recent rename / overwrite. */
5677
+ updatedAt: number;
5678
+ }
5679
+ interface UseFilterPresetsOptions {
5680
+ /** localStorage namespace (must be unique per app section). */
5681
+ storageKey: string;
5682
+ /** Soft cap on total presets retained. Oldest is dropped on overflow. @default 20 */
5683
+ maxPresets?: number;
5684
+ }
5685
+ interface UseFilterPresetsReturn<T extends FilterStateShape> {
5686
+ /** Sorted list (newest first by `updatedAt`). */
5687
+ presets: FilterPreset<T>[];
5688
+ /** Save the FilterProvider's current state under a name. Returns the new preset's id. */
5689
+ save: (name: string) => string;
5690
+ /** Apply a preset's state to the FilterProvider via `set`. */
5691
+ load: (id: string) => boolean;
5692
+ /** Remove a preset. */
5693
+ remove: (id: string) => void;
5694
+ /** Update a preset's name. */
5695
+ rename: (id: string, name: string) => boolean;
5696
+ /** Overwrite a preset with the current state. */
5697
+ overwrite: (id: string) => boolean;
5698
+ /** Clear ALL presets in this namespace. */
5699
+ clear: () => void;
5700
+ }
5701
+ /**
5702
+ * Save / load / rename / delete named presets of a `<FilterProvider>`'s
5703
+ * state in localStorage.
5704
+ *
5705
+ * Storage shape: `localStorage[storageKey] = JSON.stringify(FilterPreset[])`.
5706
+ * Presets are sorted newest-first by `updatedAt`. Soft-capped at `maxPresets`
5707
+ * (default 20) — oldest is dropped on overflow at save time.
5708
+ *
5709
+ * SSR-safe: returns an empty list on the server, hydrates on first effect.
5710
+ */
5711
+ declare function useFilterPresets<T extends FilterStateShape>(options: UseFilterPresetsOptions): UseFilterPresetsReturn<T>;
5712
+
5713
+ export { ACTION_TYPE_META, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActionStatusKey, ActionTimeline, type ActionTimelineDensity, type ActionTimelineGroupBy, ActionTimelineItem, type ActionTimelineItemData, type ActionTimelineItemProps, type ActionTimelineProps, ActionTypeChip, type ActionTypeChipProps, ActionTypeKey, ActiveFiltersBar, type ActiveFiltersBarProps, ActiveFiltersClearAll, type ActiveFiltersClearAllProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedNumber, type AnimatedNumberProps, AppBar, type AppBarProps, AppLayout, AppLayoutContent, AspectRatio, type AsyncStatus, Autocomplete, type AutocompleteItem, type AutocompleteProps, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, AvatarTextSkeleton, type AvatarTextSkeletonProps, Banner, type BannerProps, type BenchmarkMarker, type BenchmarkTier, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BulletinViewer, type BulletinViewerProps, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, ButtonProps, CHART_FONT_FAMILY, COUNTRIES, CRITERION_TIER_KEYS, Callout, CalloutDescription, type CalloutProps, CalloutTitle, CardSkeleton, type CardSkeletonProps, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLoadingSkeleton, ChartSkeleton, type ChartSkeletonProps$1 as ChartSkeletonProps, ChartTooltip, Checkbox, CircularProgress, type CircularProgressProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandPalette, type CommandPaletteItem, type CommandPaletteProps, type CommandPaletteRecentsConfig, CommandSeparator, CommandShortcut, CommentCard, type CommentCardProps, type CommentTag, ComparisonCard, type ComparisonCardProps, type ComparisonEntity, type ComparisonMetric, ComparisonRadar, type ComparisonRadarProps, type ComparisonWinner, type CompositionScale, type ConceptComposition, type ConceptPoint, ConceptPulseChart, type ConceptPulseChartProps, ConfirmDialog, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, type CopyButtonProps, type Country, type CountryCode, CountryPicker, type CountryPickerProps, type CriterionInputSpec, CriterionScoreCard, type CriterionScoreCardProps, type CriterionTierKey, type CriterionTierThresholds, type CriterionTrend, DEFAULT_CRITERION_THRESHOLDS, DEFAULT_PERIODS, DEFAULT_THRESHOLDS, DataTableColumn, DataTableColumnVisibility, DataTableColumnVisibilityToggle, type DataTableColumnVisibilityToggleProps, DataTableExportButton, type DataTableExportButtonProps, DatePicker, type DatePickerProps, DateRangePicker, DateRangePickerInline, type DateRangePickerProps, Dialog, type Direction, DirectionalBox, type DirectionalBoxProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ENGAGEMENT_RANGES, EmotionBadge, type EmotionBadgeProps, type EmotionData, EmotionDistribution, type EmotionDistributionProps, EmotionKey, Empty, EmptyAction, EmptyChart, type EmptyChartProps, type EmptyChartShape, EmptyDescription, EmptyIcon, EmptyTitle, type EngagementRange, type EngagementRangeWithDisplay, EngagementRate, EngagementRateBar, type EngagementRateBarProps, EngagementRateBenchmark, type EngagementRateBenchmarkProps, type EngagementRateProps, type EngagementTier, EntityHealthCard, EntityHealthCardActions, EntityHealthCardFooter, EntityHealthCardHeader, EntityHealthCardHeaderEnd, EntityHealthCardHeaderText, EntityHealthCardMeta, EntityHealthCardMetric, type EntityHealthCardMetricProps, EntityHealthCardMetrics, type EntityHealthCardMetricsProps, EntityHealthCardNarrative, EntityHealthCardPhase, type EntityHealthCardPhaseProps, type EntityHealthCardProps, EntityHealthCardScore, type EntityHealthCardScoreProps, EntityHealthCardSeverityBadge, type EntityHealthCardSeverityBadgeProps, EntityHealthCardSubtitle, EntityHealthCardTitle, type EntityHealthCardTitleProps, EntityHealthCardTrust, type EntityHealthCardTrustProps, EntityHealthKey, ErrorBoundary, type ErrorBoundaryProps, ErrorIllustration, ErrorState, type ErrorStateProps, type ExecutiveSummaryMetric, ExecutiveSummarySection, type ExecutiveSummarySectionProps, type ExportableColumn, type ExtendedPlatform, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FilterBar, FilterBarActions, type FilterBarActionsProps, FilterBarActiveFilters, type FilterBarActiveFiltersProps, FilterBarClear, type FilterBarClearProps, type FilterBarProps, FilterBarRow, type FilterBarRowProps, FilterChip, FilterChipGroup, type FilterChipProps, FilterPanel, FilterPanelBody, FilterPanelClearAll, type FilterPanelClearAllProps, FilterPanelFooter, FilterPanelHeader, type FilterPanelProps, FilterPanelTitle, type FilterPanelTitleProps, FilterPanelTrigger, type FilterPanelTriggerProps, type FilterPreset, FilterSection, type FilterSectionProps, FilterStateShape, FirstRunIllustration, FlowBadge, type FlowBadgeProps, FlowCell, type FlowCellProps, FlowData, FlowDistributionSection, type FlowDistributionSectionProps, FlowKey, type FollowerGroup, ForbiddenIllustration, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FormRowSkeleton, type FormRowSkeletonProps, GROUP_LABELS, HashtagInput, type TagInputProps as HashtagInputProps, type HashtagPerformanceData, HashtagPerformanceRow, type HashtagPerformanceRowProps, type HeatMapDatum, type HeatMapRow, HotkeyCombo, HoverCard, HoverCardContent, HoverCardTrigger, IRAN_PROVINCES, type Icon, Icons, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, InputProps, InputVariants, InputWithIcon, type InputWithIconProps, type IranProvince, type IranProvinceSlug, JobCard, JobCardActions, JobCardError, JobCardHeader, JobCardHeaderActions, JobCardHeaderText, JobCardMeta, JobCardMetaItem, type JobCardMetaItemProps, JobCardProgress, type JobCardProgressProps, type JobCardProps, JobCardStat, type JobCardStatProps, JobCardStats, type JobCardStatsProps, JobCardStatusBadge, type JobCardStatusBadgeProps, JobCardSubtitle, JobCardThumbnail, type JobCardThumbnailProps, JobCardTitle, type JobCardTitleProps, JobStatusKey, JobWizard, type JobWizardApi, JobWizardBack, type JobWizardBackProps, JobWizardBody, JobWizardCancel, type JobWizardCancelProps, JobWizardError, JobWizardFooter, JobWizardHeader, type JobWizardHeaderProps, JobWizardNext, type JobWizardNextProps, type JobWizardProps, JobWizardSkip, type JobWizardSkipProps, JobWizardSpacer, type JobWizardStep, JobWizardStepper, type JobWizardStepperProps, type JobWizardSubmitState, JobWizardSuccess, type JobWizardSuccessProps, type JobWizardValidationResult, Kbd, KbdGroup, Label, LabelChip, type LabelChipProps, LabelEditDialog, type LabelEditDialogProps, type LegacySize, MarkdownRenderer, type MarkdownRendererProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MetricCard, MetricCardContent, MetricCardDifferential, MetricCardHeader, MetricCardLabel, MetricCardSkeleton, type MetricCardSkeletonProps, MetricCardSparkline, MetricCardValue, type MultiPlatformMetrics, MultiPlatformPostCard, type MultiPlatformPostCardProps, type MultiPlatformPostData, MultiSelect, type MultiSelectOption, type MultiSelectProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavGroup, type NavGroupProps, NavItem, type NavItemBaseProps, type NavItemProps, type NavMatchStrategy, NavPanel, NavPanelContent, NavPanelFooter, NavPanelHeader, NavRail, NavRailContent, NavRailFooter, NavRailHeader, NavRailItem, NavRailProvider, NavRailSeparator, NavRailTrigger, NavSeparator, NavTree, type NavTreeContextValue, NavTreeProvider, type NavTreeProviderProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, type NetworkLink, type NetworkNode, NoDataIllustration, NoResultsIllustration, NotificationCenter, type NotificationCenterProps, type NotificationFilter, type NotificationItem, type NotificationSeverity, NumberInputLocale, type NumberInputLocaleProps, PERSIAN_MONTHS, PERSIAN_MONTHS_SHORT, PERSIAN_WEEKDAYS, PERSIAN_WEEKDAYS_SHORT, PageHeader, type PageHeaderProps, PageLoader, type PageLoaderProps, Pagination, PaginationContent, PaginationControlled, type PaginationControlledProps, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PartoHeatMap, type PartoHeatMapProps, PartoNetworkChart, type PartoNetworkChartProps, PartoRadarChart, type PartoRadarChartProps, PartoSankeyChart, type PartoSankeyChartProps, PartoScatterChart, type PartoScatterChartProps, type PartoToasterProps, PartoWordCloud, type PartoWordCloudProps, type PeriodOption, PeriodSelector, type PeriodSelectorProps, type PlatformMetadata, type PostAction, PostActions, type PostActionsProps, type PostAiAnalysis, type PostAiEntity, type PostAuthor, PostBody, type PostBodyData, type PostBodyProps, PostCard, type PostCardProps, type PostComment, type PostCommentAuthor, type PostData, type PostDensity, type PostDetails, PostDetailsModal, type PostDetailsModalProps, type PostDetailsTab, type PostEmotion, type PostEnrichmentFlags, PostHeader, type PostHeaderProps, type PostIntent, PostList, type PostListProps, type PostMediaItem, PostMetadata, type PostMetadataProps, type PostMetrics, type PostPlatform, type PostSentiment, type PostingFrequencyCell, PostingFrequencyHeatmap, type PostingFrequencyHeatmapProps, type PostingFrequencySummary, type PostingWeekStart, ProfileCard, type ProfileCardProps, ProfileInfo, type ProfileInfoProps, Progress, ProgressCell, type ProgressCellProps, type ProgressProps, type QuotaLevel, QuotaProgressBar, type QuotaProgressBarProps, type QuotaThresholds, RadioCardDescription, RadioCardItem, RadioCardTitle, RadioCards, RadioGroup, RadioGroupItem, RateLimitBanner, type RateLimitBannerProps, RegionPicker, type RegionPickerKey, type RegionPickerProps, RegisteredHotkey, ReportComposer, type ReportComposerProps, ReportSection, type ReportSectionProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RouteProgress, type RouteProgressHandle, type RouteProgressProps, SONNER_DEFAULT_DURATION, SafeImage, type SafeImageProps, type SankeyLink, type SankeyNode, ScrollArea, ScrollBar, SearchInput, type SearchInputProps, type SectionItem, SectionNavigator, type SectionNavigatorProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectTriggerVariants, SelectValue, SentimentBadge, type SentimentBadgeProps, SentimentBreakdownSection, type SentimentBreakdownSectionProps, SentimentCell, type SentimentCellProps, SentimentData, Separator, SeverityBadge, type SeverityBadgeProps, SeverityKey, ShortcutsCheatsheet, type ShortcutsCheatsheetProps, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteHeader, SiteHeaderActions, SiteHeaderEnd, type SiteHeaderProps, SiteHeaderSeparator, SiteHeaderStart, SiteHeaderSubtitle, SiteHeaderTitle, SiteHeaderTitleGroup, type SizeWithLegacy, Skeleton, type SkeletonProps, Slider, SocialPlatform, type SourceBreakdownEntry, SourceBreakdownSection, type SourceBreakdownSectionProps, SparklineCell, type SparklineCellProps, Spinner, type SpinnerProps, StageStatusKey, type StandardSize, StatDeltaCell, type StatDeltaCellProps, StatDisplay, type StatDisplayProps, StatusBadge, type StatusBadgeProps, StatusFlow, type StatusFlowOrientation, type StatusFlowProps, type StatusFlowSize, StatusFlowStage, type StatusFlowStageData, type StatusFlowStageProps, StatusKey, StatusPulseCell, type StatusPulseCellProps, Step, type StepProps, Stepper, type StepperProps, SupportedLocale, Switch, type SwitchProps, TIER_LABELS, Table, TableBody, TableCaption, TableCell, TableComparisonView, type TableComparisonViewProps, TableFooter, TableHead, TableHeader, TableRow, TableRowSkeleton, type TableRowSkeletonProps, TableSkeleton, type TableSkeletonProps, TableSortHeader, Tabs, TabsContent, TabsList, TabsTrigger, TagInput, type TagInputProps, TaskList, type TaskListGroup, type TaskListProps, Textarea, TimelineSection, type TimelineSectionProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, TooltipContent, TopPostsSection, type TopPostsSectionProps, TrendCell, type TrendCellProps, TrendIndicator, type TrendIndicatorProps, type UseAsyncReturn, type UseClipboardOptions, type UseClipboardReturn, type UseFilterParamsOptions, type UseFilterPresetsOptions, type UseFilterPresetsReturn, type UseInfiniteScrollOptions, type UseInfiniteScrollReturn, type UseJobWizardOptions, UserAutocomplete, type UserAutocompleteProps, type UserItem, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuUser, type ViewMode, ViewToggle, type ViewToggleProps, type WordData, actionTypeChipVariants, appBarVariants, avatarGroupVariants, bannerVariants, buildCsv, buildPostingFrequencyRows, buildTsv, buttonGroupVariants, calloutVariants, computeComparisonWinners, countComparisonWins, countryFlag, defaultActions as defaultPostActions, downloadFile, findCountry, findProvince, findTierIndex, formatJalaliDate, formatPersianDateRange, getCountryLabel, getCriterionTier, getCurrentRangeIndex, getEngagementRanges, getEngagementRateBenchmarkTiers, getFollowerGroup, getPersianDay, getPersianMonth, getPersianMonthName, getPersianMonthNameShort, getPersianMonthsForDropdown, getPersianWeekdayName, getPersianYear, getPersianYearsForDropdown, getProvinceLabel, getScoreBenchmarkTiers, tagInputVariants as hashtagInputVariants, jalaliToGregorian, labelChipVariants, localeAwareCategoryTick, localeAwareNumberTick, navItemVariants, navigationMenuTriggerStyle, normalizeSize, normalizeUrlDigits, pageLoaderVariants, postCardVariants, postHeaderVariants, profileCardVariants, resolveLevel, siteHeaderVariants, spinnerVariants, statDisplayVariants, tagInputVariants, toEnglishDigits, toPersianDigits, toggleVariants, transformNivoLineData, useAsync, useBreakpoint, useChartTheme, useClipboard, useDebounce, useDocumentDirection, useFilterParams, useFilterPresets, useFormField, useInfiniteScroll, useIsMobile, useJobWizard, useJobWizardState, useLocalStorage, useMediaQuery, useNavRail, useNavTree, useOutsideClick, usePrevious, useRootStyles, useScrollLock, useSidebar };