@parto-system-design/ui 1.1.5 → 1.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/AGENTS.md +233 -0
  2. package/LICENSE +21 -0
  3. package/README.md +96 -43
  4. package/dist/chunk-2UD3LGVX.cjs +316 -0
  5. package/dist/chunk-2UD3LGVX.cjs.map +1 -0
  6. package/dist/chunk-34JUCX2G.cjs +43 -0
  7. package/dist/chunk-34JUCX2G.cjs.map +1 -0
  8. package/dist/chunk-3AIJKXBV.cjs +242 -0
  9. package/dist/chunk-3AIJKXBV.cjs.map +1 -0
  10. package/dist/chunk-4SVQNEVH.js +173 -0
  11. package/dist/chunk-4SVQNEVH.js.map +1 -0
  12. package/dist/chunk-53QY4PD3.js +908 -0
  13. package/dist/chunk-53QY4PD3.js.map +1 -0
  14. package/dist/chunk-5JJSRGJD.js +31 -0
  15. package/dist/chunk-5JJSRGJD.js.map +1 -0
  16. package/dist/chunk-5K6E4ZSW.cjs +77 -0
  17. package/dist/chunk-5K6E4ZSW.cjs.map +1 -0
  18. package/dist/chunk-5NY26ULO.js +89 -0
  19. package/dist/chunk-5NY26ULO.js.map +1 -0
  20. package/dist/chunk-7RVPG3LE.cjs +231 -0
  21. package/dist/chunk-7RVPG3LE.cjs.map +1 -0
  22. package/dist/chunk-7Y4V3R3Y.cjs +120 -0
  23. package/dist/chunk-7Y4V3R3Y.cjs.map +1 -0
  24. package/dist/chunk-AXAY64KL.js +39 -0
  25. package/dist/chunk-AXAY64KL.js.map +1 -0
  26. package/dist/chunk-AYEK3WOM.js +207 -0
  27. package/dist/chunk-AYEK3WOM.js.map +1 -0
  28. package/dist/chunk-BRMBLIQG.js +53 -0
  29. package/dist/chunk-BRMBLIQG.js.map +1 -0
  30. package/dist/chunk-CAJKSTXX.cjs +54 -0
  31. package/dist/chunk-CAJKSTXX.cjs.map +1 -0
  32. package/dist/chunk-CKFWMHQU.js +401 -0
  33. package/dist/chunk-CKFWMHQU.js.map +1 -0
  34. package/dist/chunk-CV3N3HVK.js +672 -0
  35. package/dist/chunk-CV3N3HVK.js.map +1 -0
  36. package/dist/chunk-D2EBLE2B.cjs +220 -0
  37. package/dist/chunk-D2EBLE2B.cjs.map +1 -0
  38. package/dist/chunk-D5XCQDFS.js +92 -0
  39. package/dist/chunk-D5XCQDFS.js.map +1 -0
  40. package/dist/chunk-GDHRYKVM.js +45 -0
  41. package/dist/chunk-GDHRYKVM.js.map +1 -0
  42. package/dist/chunk-GKRAZGDI.cjs +84 -0
  43. package/dist/chunk-GKRAZGDI.cjs.map +1 -0
  44. package/dist/chunk-HEYMLQOV.cjs +94 -0
  45. package/dist/chunk-HEYMLQOV.cjs.map +1 -0
  46. package/dist/chunk-HF6XU5NI.js +84 -0
  47. package/dist/chunk-HF6XU5NI.js.map +1 -0
  48. package/dist/chunk-HJPDZOMJ.cjs +87 -0
  49. package/dist/chunk-HJPDZOMJ.cjs.map +1 -0
  50. package/dist/chunk-HUCC3QH5.cjs +53 -0
  51. package/dist/chunk-HUCC3QH5.cjs.map +1 -0
  52. package/dist/chunk-HYZ6BQPS.cjs +425 -0
  53. package/dist/chunk-HYZ6BQPS.cjs.map +1 -0
  54. package/dist/chunk-IQHKJ4SS.js +213 -0
  55. package/dist/chunk-IQHKJ4SS.js.map +1 -0
  56. package/dist/chunk-ISCSZMYW.cjs +106 -0
  57. package/dist/chunk-ISCSZMYW.cjs.map +1 -0
  58. package/dist/chunk-IXFEFIDO.js +82 -0
  59. package/dist/chunk-IXFEFIDO.js.map +1 -0
  60. package/dist/chunk-JUBHQAA2.js +53 -0
  61. package/dist/chunk-JUBHQAA2.js.map +1 -0
  62. package/dist/chunk-KCWRCSI7.js +62 -0
  63. package/dist/chunk-KCWRCSI7.js.map +1 -0
  64. package/dist/chunk-L2L5CKC2.js +291 -0
  65. package/dist/chunk-L2L5CKC2.js.map +1 -0
  66. package/dist/chunk-LLJR7FV3.js +135 -0
  67. package/dist/chunk-LLJR7FV3.js.map +1 -0
  68. package/dist/chunk-LZMCMZZF.js +118 -0
  69. package/dist/chunk-LZMCMZZF.js.map +1 -0
  70. package/dist/chunk-M5CHZ5BA.js +124 -0
  71. package/dist/chunk-M5CHZ5BA.js.map +1 -0
  72. package/dist/chunk-MBCTRNTG.js +89 -0
  73. package/dist/chunk-MBCTRNTG.js.map +1 -0
  74. package/dist/chunk-MEK4RSGC.js +65 -0
  75. package/dist/chunk-MEK4RSGC.js.map +1 -0
  76. package/dist/chunk-MFTX2DDQ.js +27 -0
  77. package/dist/chunk-MFTX2DDQ.js.map +1 -0
  78. package/dist/chunk-MKYVQQBV.cjs +114 -0
  79. package/dist/chunk-MKYVQQBV.cjs.map +1 -0
  80. package/dist/chunk-MQGQVI3W.cjs +950 -0
  81. package/dist/chunk-MQGQVI3W.cjs.map +1 -0
  82. package/dist/chunk-NEFZJHE4.cjs +157 -0
  83. package/dist/chunk-NEFZJHE4.cjs.map +1 -0
  84. package/dist/chunk-NEML6RCV.js +405 -0
  85. package/dist/chunk-NEML6RCV.js.map +1 -0
  86. package/dist/chunk-NV4JOKWL.cjs +197 -0
  87. package/dist/chunk-NV4JOKWL.cjs.map +1 -0
  88. package/dist/chunk-O2JG7WY5.cjs +121 -0
  89. package/dist/chunk-O2JG7WY5.cjs.map +1 -0
  90. package/dist/chunk-OEVMKFFL.cjs +140 -0
  91. package/dist/chunk-OEVMKFFL.cjs.map +1 -0
  92. package/dist/chunk-ONO2FTV4.cjs +68 -0
  93. package/dist/chunk-ONO2FTV4.cjs.map +1 -0
  94. package/dist/chunk-OS6CMYAS.cjs +79 -0
  95. package/dist/chunk-OS6CMYAS.cjs.map +1 -0
  96. package/dist/chunk-P5XHPNJG.cjs +430 -0
  97. package/dist/chunk-P5XHPNJG.cjs.map +1 -0
  98. package/dist/chunk-QJ7UB2ZQ.js +98 -0
  99. package/dist/chunk-QJ7UB2ZQ.js.map +1 -0
  100. package/dist/chunk-RA5KZNG5.js +269 -0
  101. package/dist/chunk-RA5KZNG5.js.map +1 -0
  102. package/dist/chunk-RJ3HYZ7S.js +44 -0
  103. package/dist/chunk-RJ3HYZ7S.js.map +1 -0
  104. package/dist/chunk-RZNRIOLT.js +128 -0
  105. package/dist/chunk-RZNRIOLT.js.map +1 -0
  106. package/dist/chunk-S5IPJQZ3.cjs +161 -0
  107. package/dist/chunk-S5IPJQZ3.cjs.map +1 -0
  108. package/dist/chunk-SB5DSYR5.js +211 -0
  109. package/dist/chunk-SB5DSYR5.js.map +1 -0
  110. package/dist/chunk-SCGW2BH4.cjs +69 -0
  111. package/dist/chunk-SCGW2BH4.cjs.map +1 -0
  112. package/dist/chunk-SCX6AR53.cjs +108 -0
  113. package/dist/chunk-SCX6AR53.cjs.map +1 -0
  114. package/dist/chunk-SFXV2DUH.js +106 -0
  115. package/dist/chunk-SFXV2DUH.js.map +1 -0
  116. package/dist/chunk-SXEPGD4Z.cjs +152 -0
  117. package/dist/chunk-SXEPGD4Z.cjs.map +1 -0
  118. package/dist/chunk-SZMVOHT7.cjs +107 -0
  119. package/dist/chunk-SZMVOHT7.cjs.map +1 -0
  120. package/dist/chunk-U5FLLCGC.cjs +151 -0
  121. package/dist/chunk-U5FLLCGC.cjs.map +1 -0
  122. package/dist/chunk-VO3B75F6.cjs +111 -0
  123. package/dist/chunk-VO3B75F6.cjs.map +1 -0
  124. package/dist/chunk-YAJWTNOX.js +106 -0
  125. package/dist/chunk-YAJWTNOX.js.map +1 -0
  126. package/dist/chunk-YC5KLN6I.js +139 -0
  127. package/dist/chunk-YC5KLN6I.js.map +1 -0
  128. package/dist/chunk-YE477L2H.cjs +272 -0
  129. package/dist/chunk-YE477L2H.cjs.map +1 -0
  130. package/dist/chunk-Z2TY4A75.cjs +700 -0
  131. package/dist/chunk-Z2TY4A75.cjs.map +1 -0
  132. package/dist/chunk-Z56O7UEU.cjs +136 -0
  133. package/dist/chunk-Z56O7UEU.cjs.map +1 -0
  134. package/dist/chunk-ZZFNJR2E.js +71 -0
  135. package/dist/chunk-ZZFNJR2E.js.map +1 -0
  136. package/dist/components/charts/PartoAreaChart.cjs +15 -0
  137. package/dist/components/charts/PartoAreaChart.cjs.map +1 -0
  138. package/dist/components/charts/PartoAreaChart.d.cts +51 -0
  139. package/dist/components/charts/PartoAreaChart.d.ts +51 -0
  140. package/dist/components/charts/PartoAreaChart.js +6 -0
  141. package/dist/components/charts/PartoAreaChart.js.map +1 -0
  142. package/dist/components/charts/PartoBarChart.cjs +15 -0
  143. package/dist/components/charts/PartoBarChart.cjs.map +1 -0
  144. package/dist/components/charts/PartoBarChart.d.cts +55 -0
  145. package/dist/components/charts/PartoBarChart.d.ts +55 -0
  146. package/dist/components/charts/PartoBarChart.js +6 -0
  147. package/dist/components/charts/PartoBarChart.js.map +1 -0
  148. package/dist/components/charts/PartoLineChart.cjs +15 -0
  149. package/dist/components/charts/PartoLineChart.cjs.map +1 -0
  150. package/dist/components/charts/PartoLineChart.d.cts +49 -0
  151. package/dist/components/charts/PartoLineChart.d.ts +49 -0
  152. package/dist/components/charts/PartoLineChart.js +6 -0
  153. package/dist/components/charts/PartoLineChart.js.map +1 -0
  154. package/dist/components/charts/PartoPieChart.cjs +15 -0
  155. package/dist/components/charts/PartoPieChart.cjs.map +1 -0
  156. package/dist/components/charts/PartoPieChart.d.cts +44 -0
  157. package/dist/components/charts/PartoPieChart.d.ts +44 -0
  158. package/dist/components/charts/PartoPieChart.js +6 -0
  159. package/dist/components/charts/PartoPieChart.js.map +1 -0
  160. package/dist/components/ui/alert-rule-card.cjs +15 -0
  161. package/dist/components/ui/alert-rule-card.cjs.map +1 -0
  162. package/dist/components/ui/alert-rule-card.d.cts +38 -0
  163. package/dist/components/ui/alert-rule-card.d.ts +38 -0
  164. package/dist/components/ui/alert-rule-card.js +6 -0
  165. package/dist/components/ui/alert-rule-card.js.map +1 -0
  166. package/dist/components/ui/avatar.cjs +21 -0
  167. package/dist/components/ui/avatar.cjs.map +1 -0
  168. package/dist/components/ui/avatar.d.cts +18 -0
  169. package/dist/components/ui/avatar.d.ts +18 -0
  170. package/dist/components/ui/avatar.js +4 -0
  171. package/dist/components/ui/avatar.js.map +1 -0
  172. package/dist/components/ui/badge.cjs +17 -0
  173. package/dist/components/ui/badge.cjs.map +1 -0
  174. package/dist/components/ui/badge.d.cts +16 -0
  175. package/dist/components/ui/badge.d.ts +16 -0
  176. package/dist/components/ui/badge.js +4 -0
  177. package/dist/components/ui/badge.js.map +1 -0
  178. package/dist/components/ui/button.cjs +18 -0
  179. package/dist/components/ui/button.cjs.map +1 -0
  180. package/dist/components/ui/button.d.cts +37 -0
  181. package/dist/components/ui/button.d.ts +37 -0
  182. package/dist/components/ui/button.js +5 -0
  183. package/dist/components/ui/button.js.map +1 -0
  184. package/dist/components/ui/calendar.cjs +15 -0
  185. package/dist/components/ui/calendar.cjs.map +1 -0
  186. package/dist/components/ui/calendar.d.cts +17 -0
  187. package/dist/components/ui/calendar.d.ts +17 -0
  188. package/dist/components/ui/calendar.js +6 -0
  189. package/dist/components/ui/calendar.js.map +1 -0
  190. package/dist/components/ui/card.cjs +37 -0
  191. package/dist/components/ui/card.cjs.map +1 -0
  192. package/dist/components/ui/card.d.cts +18 -0
  193. package/dist/components/ui/card.d.ts +18 -0
  194. package/dist/components/ui/card.js +4 -0
  195. package/dist/components/ui/card.js.map +1 -0
  196. package/dist/components/ui/concept-card.cjs +18 -0
  197. package/dist/components/ui/concept-card.cjs.map +1 -0
  198. package/dist/components/ui/concept-card.d.cts +5 -0
  199. package/dist/components/ui/concept-card.d.ts +5 -0
  200. package/dist/components/ui/concept-card.js +9 -0
  201. package/dist/components/ui/concept-card.js.map +1 -0
  202. package/dist/components/ui/data-table.cjs +18 -0
  203. package/dist/components/ui/data-table.cjs.map +1 -0
  204. package/dist/components/ui/data-table.d.cts +181 -0
  205. package/dist/components/ui/data-table.d.ts +181 -0
  206. package/dist/components/ui/data-table.js +9 -0
  207. package/dist/components/ui/data-table.js.map +1 -0
  208. package/dist/components/ui/dialog.cjs +49 -0
  209. package/dist/components/ui/dialog.cjs.map +1 -0
  210. package/dist/components/ui/dialog.d.cts +22 -0
  211. package/dist/components/ui/dialog.d.ts +22 -0
  212. package/dist/components/ui/dialog.js +4 -0
  213. package/dist/components/ui/dialog.js.map +1 -0
  214. package/dist/components/ui/filter-provider.cjs +20 -0
  215. package/dist/components/ui/filter-provider.cjs.map +1 -0
  216. package/dist/components/ui/filter-provider.d.cts +49 -0
  217. package/dist/components/ui/filter-provider.d.ts +49 -0
  218. package/dist/components/ui/filter-provider.js +3 -0
  219. package/dist/components/ui/filter-provider.js.map +1 -0
  220. package/dist/components/ui/input.cjs +22 -0
  221. package/dist/components/ui/input.cjs.map +1 -0
  222. package/dist/components/ui/input.d.cts +16 -0
  223. package/dist/components/ui/input.d.ts +16 -0
  224. package/dist/components/ui/input.js +5 -0
  225. package/dist/components/ui/input.js.map +1 -0
  226. package/dist/components/ui/iran-province-heat.cjs +13 -0
  227. package/dist/components/ui/iran-province-heat.cjs.map +1 -0
  228. package/dist/components/ui/iran-province-heat.d.cts +64 -0
  229. package/dist/components/ui/iran-province-heat.d.ts +64 -0
  230. package/dist/components/ui/iran-province-heat.js +4 -0
  231. package/dist/components/ui/iran-province-heat.js.map +1 -0
  232. package/dist/components/ui/page-card.cjs +16 -0
  233. package/dist/components/ui/page-card.cjs.map +1 -0
  234. package/dist/components/ui/page-card.d.cts +6 -0
  235. package/dist/components/ui/page-card.d.ts +6 -0
  236. package/dist/components/ui/page-card.js +7 -0
  237. package/dist/components/ui/page-card.js.map +1 -0
  238. package/dist/components/ui/popover.cjs +25 -0
  239. package/dist/components/ui/popover.cjs.map +1 -0
  240. package/dist/components/ui/popover.d.cts +9 -0
  241. package/dist/components/ui/popover.d.ts +9 -0
  242. package/dist/components/ui/popover.js +4 -0
  243. package/dist/components/ui/popover.js.map +1 -0
  244. package/dist/components/ui/saved-query-card.cjs +15 -0
  245. package/dist/components/ui/saved-query-card.cjs.map +1 -0
  246. package/dist/components/ui/saved-query-card.d.cts +41 -0
  247. package/dist/components/ui/saved-query-card.d.ts +41 -0
  248. package/dist/components/ui/saved-query-card.js +6 -0
  249. package/dist/components/ui/saved-query-card.js.map +1 -0
  250. package/dist/components/ui/separator.cjs +13 -0
  251. package/dist/components/ui/separator.cjs.map +1 -0
  252. package/dist/components/ui/separator.d.cts +9 -0
  253. package/dist/components/ui/separator.d.ts +9 -0
  254. package/dist/components/ui/separator.js +4 -0
  255. package/dist/components/ui/separator.js.map +1 -0
  256. package/dist/components/ui/sheet.cjs +45 -0
  257. package/dist/components/ui/sheet.cjs.map +1 -0
  258. package/dist/components/ui/sheet.d.cts +44 -0
  259. package/dist/components/ui/sheet.d.ts +44 -0
  260. package/dist/components/ui/sheet.js +4 -0
  261. package/dist/components/ui/sheet.js.map +1 -0
  262. package/dist/components/ui/sparkline.cjs +13 -0
  263. package/dist/components/ui/sparkline.cjs.map +1 -0
  264. package/dist/components/ui/sparkline.d.cts +36 -0
  265. package/dist/components/ui/sparkline.d.ts +36 -0
  266. package/dist/components/ui/sparkline.js +4 -0
  267. package/dist/components/ui/sparkline.js.map +1 -0
  268. package/dist/components/ui/tooltip.cjs +25 -0
  269. package/dist/components/ui/tooltip.cjs.map +1 -0
  270. package/dist/components/ui/tooltip.d.cts +17 -0
  271. package/dist/components/ui/tooltip.d.ts +17 -0
  272. package/dist/components/ui/tooltip.js +4 -0
  273. package/dist/components/ui/tooltip.js.map +1 -0
  274. package/dist/concept-card-CcOBb2Nz.d.ts +83 -0
  275. package/dist/concept-card-RwPbqJ06.d.cts +83 -0
  276. package/dist/hooks/use-hotkey-registry.cjs +21 -0
  277. package/dist/hooks/use-hotkey-registry.cjs.map +1 -0
  278. package/dist/hooks/use-hotkey-registry.d.cts +65 -0
  279. package/dist/hooks/use-hotkey-registry.d.ts +65 -0
  280. package/dist/hooks/use-hotkey-registry.js +4 -0
  281. package/dist/hooks/use-hotkey-registry.js.map +1 -0
  282. package/dist/hooks/use-hotkeys.cjs +16 -0
  283. package/dist/hooks/use-hotkeys.cjs.map +1 -0
  284. package/dist/hooks/use-hotkeys.d.cts +66 -0
  285. package/dist/hooks/use-hotkeys.d.ts +66 -0
  286. package/dist/hooks/use-hotkeys.js +3 -0
  287. package/dist/hooks/use-hotkeys.js.map +1 -0
  288. package/dist/i18n-ArS3mqj0.d.ts +344 -0
  289. package/dist/i18n-CAd9wGOr.d.cts +344 -0
  290. package/dist/index.cjs +7383 -10955
  291. package/dist/index.cjs.map +1 -1
  292. package/dist/index.css +157 -0
  293. package/dist/index.d.cts +726 -1144
  294. package/dist/index.d.ts +726 -1144
  295. package/dist/index.js +6735 -10912
  296. package/dist/index.js.map +1 -1
  297. package/dist/page-card-CO92oXkc.d.ts +100 -0
  298. package/dist/page-card-DOl50DqJ.d.cts +100 -0
  299. package/dist/utils-DlXWmDZ-.d.cts +35 -0
  300. package/dist/utils-DlXWmDZ-.d.ts +35 -0
  301. package/package.json +160 -4
@@ -0,0 +1,344 @@
1
+ import { S as SupportedLocale } from './utils-DlXWmDZ-.cjs';
2
+
3
+ type Locale = SupportedLocale;
4
+ /**
5
+ * Returns true for RTL locales (fa, ar).
6
+ */
7
+ declare function isRTL(locale: SupportedLocale): boolean;
8
+ /**
9
+ * UI string translations used by the EngagementRate component.
10
+ * Centralised here to avoid duplication between components.
11
+ */
12
+ declare const engagementUiTranslations: Record<SupportedLocale, {
13
+ yourCategory: string;
14
+ influencer: string;
15
+ followers: string;
16
+ over: string;
17
+ to: string;
18
+ and: string;
19
+ lessThan: string;
20
+ you: string;
21
+ criteria: string;
22
+ }>;
23
+ /**
24
+ * Sentiment label translations used by the SentimentBadge component.
25
+ */
26
+ declare const sentimentLabels: Record<SupportedLocale, {
27
+ positive: string;
28
+ negative: string;
29
+ neutral: string;
30
+ mixed: string;
31
+ }>;
32
+ /**
33
+ * Canonical emotion keys — 9-class advanced sentiment scale used in افکارسنجی
34
+ * deep analysis. Coexists with the simple 3-class `Sentiment` above; they are
35
+ * NOT interchangeable. Choose the scale based on view density.
36
+ */
37
+ type EmotionKey = 'anger' | 'anticipation' | 'joy' | 'trust' | 'fear' | 'surprise' | 'sadness' | 'disgust' | 'neutral';
38
+ declare const EMOTION_KEYS: readonly EmotionKey[];
39
+ /** Emotion label translations used by EmotionBadge / EmotionDistribution. */
40
+ declare const emotionLabels: Record<SupportedLocale, Record<EmotionKey, string>>;
41
+ /**
42
+ * Political flow keys — 5-class classification used in افکارسنجی clustering.
43
+ * A concept / post / page belongs to exactly one flow (primary) but usually
44
+ * also has secondary flow composition expressed as percentages.
45
+ */
46
+ type FlowKey = 'pro-gov' | 'internal-critic' | 'internal-opponent' | 'external-opponent' | 'grey';
47
+ declare const FLOW_KEYS: readonly FlowKey[];
48
+ declare const flowLabels: Record<SupportedLocale, Record<FlowKey, string>>;
49
+ /** Operational status — visual state of a tracked entity. */
50
+ type StatusKey = 'critical' | 'warning' | 'normal';
51
+ declare const statusLabels: Record<SupportedLocale, Record<StatusKey, string>>;
52
+ /** Severity — urgency level. Independent from status. */
53
+ type SeverityKey = 'urgent' | 'high' | 'medium' | 'low';
54
+ declare const severityLabels: Record<SupportedLocale, Record<SeverityKey, string>>;
55
+ /**
56
+ * Job lifecycle — canonical states for async work (analyses, campaigns,
57
+ * evaluation runs, imports, exports, report generation).
58
+ *
59
+ * Terminal states: completed / failed / cancelled.
60
+ * Active states: queued / running / paused.
61
+ */
62
+ type JobStatusKey = 'queued' | 'running' | 'paused' | 'completed' | 'failed' | 'cancelled';
63
+ declare const JOB_STATUS_KEYS: readonly JobStatusKey[];
64
+ declare const jobStatusLabels: Record<SupportedLocale, Record<JobStatusKey, string>>;
65
+ /** True iff a job is still active (not in a terminal state). */
66
+ declare function isActiveJobStatus(s: JobStatusKey): boolean;
67
+ /**
68
+ * Action status — discrete outcome for a single completed (or in-flight)
69
+ * action in an activity feed / audit timeline. Distinct from the richer
70
+ * job/stage lifecycles above: each event is atomic, so no "paused" here.
71
+ */
72
+ type ActionStatusKey = 'success' | 'failed' | 'pending' | 'warning' | 'info';
73
+ declare const ACTION_STATUS_KEYS: readonly ActionStatusKey[];
74
+ declare const actionStatusLabels: Record<SupportedLocale, Record<ActionStatusKey, string>>;
75
+ /**
76
+ * Locale-aware relative time label producer. Used by ActionTimeline and any
77
+ * other component that wants trilingual "n minutes ago" strings. For absolute
78
+ * formatting see `formatAbsoluteTime`/`formatJalaliDate` in lib/utils.ts.
79
+ */
80
+ declare function formatRelativeLocaleTime(date: Date | string | number, locale: SupportedLocale): string;
81
+ /**
82
+ * Locale-aware "time remaining" label — forward-looking companion to
83
+ * `formatRelativeLocaleTime`. Used by RateLimitBanner and any countdown UI.
84
+ *
85
+ * Input can be a Date, ISO string, or epoch ms. Past/zero remaining returns
86
+ * the locale-specific "now" / "any moment" marker.
87
+ */
88
+ declare function formatTimeRemaining(target: Date | string | number, locale: SupportedLocale): string;
89
+ /**
90
+ * Stage status — for multi-stage pipeline visualizations (StatusFlow).
91
+ *
92
+ * Distinct from `JobStatusKey`: a job has ONE status; a pipeline of stages has
93
+ * a status PER stage. A `running` stage means that stage is currently active;
94
+ * a `warning` stage completed but with caveats; `skipped` means it was bypassed.
95
+ */
96
+ type StageStatusKey = 'pending' | 'running' | 'completed' | 'failed' | 'skipped' | 'warning' | 'paused';
97
+ declare const STAGE_STATUS_KEYS: readonly StageStatusKey[];
98
+ declare const stageStatusLabels: Record<SupportedLocale, Record<StageStatusKey, string>>;
99
+ /**
100
+ * Action type — canonical set of social-media actions a worker/user can
101
+ * execute. Maps 1:1 to a CSS token family (`--action-type-*`) so each action
102
+ * has a distinct recognizable colour + icon across activity feeds, audit
103
+ * timelines, and rate-limit dashboards.
104
+ *
105
+ * The 7 canonical keys cover current افکارسنجی + Booster + future SRR use:
106
+ * - `like` / `comment` / `save` / `follow` / `unfollow` — Booster OPERATION_TYPES
107
+ * - `dm` — direct message (future bulk-DM, notification replies)
108
+ * - `share` — cross-post / retweet (future multi-platform)
109
+ */
110
+ type ActionTypeKey = 'like' | 'comment' | 'save' | 'follow' | 'unfollow' | 'dm' | 'share';
111
+ declare const ACTION_TYPE_KEYS: readonly ActionTypeKey[];
112
+ declare const actionTypeLabels: Record<SupportedLocale, Record<ActionTypeKey, string>>;
113
+ /**
114
+ * Short-form verb labels for past-tense activity phrasing ("worker X پسندید Y").
115
+ * When composing "subject action object" sentences in ActivityFeed / ActionTimeline,
116
+ * prefer these over `actionTypeLabels` which are noun-form.
117
+ */
118
+ declare const actionTypeVerbs: Record<SupportedLocale, Record<ActionTypeKey, string>>;
119
+ /**
120
+ * Entity health — 6-tier severity narrative for long-lived entities like
121
+ * workers, tracked pages, data sources, monitored feeds. Ordered most-critical
122
+ * to most-positive so components can sort "worst first" deterministically.
123
+ *
124
+ * `banned` — entity is permanently disabled / blocked upstream.
125
+ * `pending` — not yet evaluated (new, awaiting verification, in setup).
126
+ * `at-risk` — immediate intervention needed (failed checks, violations).
127
+ * `warning` — degrading signals, needs monitoring.
128
+ * `growing` — improving trajectory but not yet healthy.
129
+ * `healthy` — stable, all checks pass.
130
+ *
131
+ * Distinct from `StatusKey` (critical/warning/normal — short-lived operational)
132
+ * and `SeverityKey` (urgent/high/medium/low — urgency of an action item).
133
+ */
134
+ type EntityHealthKey = 'banned' | 'pending' | 'at-risk' | 'warning' | 'growing' | 'healthy';
135
+ declare const ENTITY_HEALTH_KEYS: readonly EntityHealthKey[];
136
+ declare const entityHealthLabels: Record<SupportedLocale, Record<EntityHealthKey, string>>;
137
+ /**
138
+ * Priority rank of each entity health state — higher number = more severe.
139
+ * Use to sort entity lists "worst first" without ad-hoc comparisons.
140
+ */
141
+ declare const entityHealthPriority: Record<EntityHealthKey, number>;
142
+ /** True iff the entity needs immediate human attention. */
143
+ declare function isCriticalEntityHealth(s: EntityHealthKey): boolean;
144
+ /**
145
+ * Default UI strings for components that need localized text.
146
+ * Persian (fa) is the default locale for backward compatibility.
147
+ */
148
+ declare const UI_STRINGS: {
149
+ readonly fa: {
150
+ readonly noResults: "نتیجه‌ای یافت نشد";
151
+ readonly suggestions: "پیشنهادها";
152
+ readonly select: "انتخاب کنید";
153
+ readonly noOptionsFound: "موردی یافت نشد";
154
+ readonly search: "جستجو...";
155
+ readonly clearAll: "پاک کردن همه";
156
+ readonly selectDate: "انتخاب تاریخ";
157
+ readonly selectDateRange: "انتخاب بازه تاریخ";
158
+ readonly errorLoadingData: "خطا در بارگذاری داده‌ها";
159
+ readonly retry: "تلاش مجدد";
160
+ readonly remove: "حذف";
161
+ readonly noUsersFound: "کاربری یافت نشد";
162
+ readonly goToPreviousPage: "رفتن به صفحه قبلی";
163
+ readonly goToNextPage: "رفتن به صفحه بعدی";
164
+ readonly previous: "قبلی";
165
+ readonly next: "بعدی";
166
+ readonly actions: "عملیات";
167
+ readonly copy: "کپی";
168
+ readonly copied: "کپی شد";
169
+ readonly confirm: "تایید";
170
+ readonly cancel: "انصراف";
171
+ readonly areYouSure: "آیا مطمئن هستید؟";
172
+ readonly stepperLabel: "مراحل";
173
+ readonly stepCompleted: "تکمیل شده";
174
+ readonly stepCurrent: "مرحله فعلی";
175
+ readonly stepPending: "در انتظار";
176
+ readonly clearFilters: "پاک کردن فیلترها";
177
+ readonly activeFilters: "فیلترهای فعال";
178
+ readonly filters: "فیلترها";
179
+ readonly applyFilters: "اعمال";
180
+ readonly resetFilters: "پیش‌فرض";
181
+ readonly noFiltersActive: "فیلتر فعالی نیست";
182
+ readonly clearSection: "پاک کردن این بخش";
183
+ readonly goBack: "بازگشت";
184
+ readonly gridView: "نمای شبکه‌ای";
185
+ readonly listView: "نمای لیستی";
186
+ readonly loading: "در حال بارگذاری...";
187
+ readonly unexpectedError: "خطای غیرمنتظره‌ای رخ داد";
188
+ readonly selectAll: "انتخاب همه";
189
+ readonly selectRow: "انتخاب ردیف";
190
+ readonly noDataToDisplay: "داده‌ای برای نمایش وجود ندارد";
191
+ readonly likesCount: "تعداد لایک";
192
+ readonly commentsCount: "تعداد کامنت";
193
+ readonly viewsCount: "تعداد بازدید";
194
+ readonly sharesCount: "تعداد اشتراک";
195
+ readonly postTypeLabel: "نوع پست";
196
+ readonly postTypePhoto: "عکس";
197
+ readonly postTypeVideo: "ویدیو";
198
+ readonly postTypeCarousel: "اسلاید";
199
+ readonly showMore: "بیشتر";
200
+ readonly showLess: "کمتر";
201
+ readonly noMediaAvailable: "رسانه‌ای موجود نیست";
202
+ readonly commentAnalysis: "تحلیل کامنت‌ها";
203
+ readonly commentAnalysisDisabled: "تحلیل کامنت‌ها (غیرفعال)";
204
+ readonly booster: "بوستر";
205
+ readonly boosterDisabled: "بوستر (غیرفعال)";
206
+ readonly aiAnalysis: "تحلیل هوش مصنوعی";
207
+ readonly aiAnalysisDisabled: "تحلیل هوش مصنوعی (غیرفعال)";
208
+ readonly openOnInstagram: "باز کردن در اینستاگرام";
209
+ readonly openOnInstagramDisabled: "باز کردن در اینستاگرام (غیرفعال)";
210
+ };
211
+ readonly ar: {
212
+ readonly noResults: "لم يتم العثور على نتائج";
213
+ readonly suggestions: "اقتراحات";
214
+ readonly select: "اختر";
215
+ readonly noOptionsFound: "لم يتم العثور على خيارات";
216
+ readonly search: "بحث...";
217
+ readonly clearAll: "مسح الكل";
218
+ readonly selectDate: "اختر تاريخ";
219
+ readonly selectDateRange: "اختر نطاق التاريخ";
220
+ readonly errorLoadingData: "خطأ في تحميل البيانات";
221
+ readonly retry: "إعادة المحاولة";
222
+ readonly remove: "حذف";
223
+ readonly noUsersFound: "لم يتم العثور على مستخدمين";
224
+ readonly goToPreviousPage: "الانتقال إلى الصفحة السابقة";
225
+ readonly goToNextPage: "الانتقال إلى الصفحة التالية";
226
+ readonly previous: "السابق";
227
+ readonly next: "التالي";
228
+ readonly actions: "إجراءات";
229
+ readonly copy: "نسخ";
230
+ readonly copied: "تم النسخ";
231
+ readonly confirm: "تأكيد";
232
+ readonly cancel: "إلغاء";
233
+ readonly areYouSure: "هل أنت متأكد؟";
234
+ readonly stepperLabel: "الخطوات";
235
+ readonly stepCompleted: "مكتمل";
236
+ readonly stepCurrent: "الخطوة الحالية";
237
+ readonly stepPending: "قيد الانتظار";
238
+ readonly clearFilters: "مسح الفلاتر";
239
+ readonly activeFilters: "الفلاتر النشطة";
240
+ readonly filters: "الفلاتر";
241
+ readonly applyFilters: "تطبيق";
242
+ readonly resetFilters: "الافتراضي";
243
+ readonly noFiltersActive: "لا توجد فلاتر نشطة";
244
+ readonly clearSection: "مسح هذا القسم";
245
+ readonly goBack: "رجوع";
246
+ readonly gridView: "عرض شبكي";
247
+ readonly listView: "عرض قائمة";
248
+ readonly loading: "جارٍ التحميل...";
249
+ readonly unexpectedError: "حدث خطأ غير متوقع";
250
+ readonly selectAll: "تحديد الكل";
251
+ readonly selectRow: "تحديد الصف";
252
+ readonly noDataToDisplay: "لا توجد بيانات للعرض";
253
+ readonly likesCount: "عدد الإعجابات";
254
+ readonly commentsCount: "عدد التعليقات";
255
+ readonly viewsCount: "عدد المشاهدات";
256
+ readonly sharesCount: "عدد المشاركات";
257
+ readonly postTypeLabel: "نوع المنشور";
258
+ readonly postTypePhoto: "صورة";
259
+ readonly postTypeVideo: "فيديو";
260
+ readonly postTypeCarousel: "شرائح";
261
+ readonly showMore: "المزيد";
262
+ readonly showLess: "أقل";
263
+ readonly noMediaAvailable: "لا توجد وسائط";
264
+ readonly commentAnalysis: "تحليل التعليقات";
265
+ readonly commentAnalysisDisabled: "تحليل التعليقات (معطل)";
266
+ readonly booster: "تعزيز";
267
+ readonly boosterDisabled: "تعزيز (معطل)";
268
+ readonly aiAnalysis: "تحليل الذكاء الاصطناعي";
269
+ readonly aiAnalysisDisabled: "تحليل الذكاء الاصطناعي (معطل)";
270
+ readonly openOnInstagram: "فتح في إنستاجرام";
271
+ readonly openOnInstagramDisabled: "فتح في إنستاجرام (معطل)";
272
+ };
273
+ readonly en: {
274
+ readonly noResults: "No results found";
275
+ readonly suggestions: "Suggestions";
276
+ readonly select: "Select";
277
+ readonly noOptionsFound: "No options found";
278
+ readonly search: "Search...";
279
+ readonly clearAll: "Clear all";
280
+ readonly selectDate: "Select date";
281
+ readonly selectDateRange: "Select date range";
282
+ readonly errorLoadingData: "Error loading data";
283
+ readonly retry: "Retry";
284
+ readonly remove: "Remove";
285
+ readonly noUsersFound: "No users found";
286
+ readonly goToPreviousPage: "Go to previous page";
287
+ readonly goToNextPage: "Go to next page";
288
+ readonly previous: "Previous";
289
+ readonly next: "Next";
290
+ readonly actions: "Actions";
291
+ readonly copy: "Copy";
292
+ readonly copied: "Copied";
293
+ readonly confirm: "Confirm";
294
+ readonly cancel: "Cancel";
295
+ readonly areYouSure: "Are you sure?";
296
+ readonly stepperLabel: "Steps";
297
+ readonly stepCompleted: "Completed";
298
+ readonly stepCurrent: "Current step";
299
+ readonly stepPending: "Pending";
300
+ readonly clearFilters: "Clear filters";
301
+ readonly activeFilters: "Active filters";
302
+ readonly filters: "Filters";
303
+ readonly applyFilters: "Apply";
304
+ readonly resetFilters: "Reset";
305
+ readonly noFiltersActive: "No active filters";
306
+ readonly clearSection: "Clear this section";
307
+ readonly goBack: "Go back";
308
+ readonly gridView: "Grid view";
309
+ readonly listView: "List view";
310
+ readonly loading: "Loading...";
311
+ readonly unexpectedError: "An unexpected error occurred";
312
+ readonly selectAll: "Select all";
313
+ readonly selectRow: "Select row";
314
+ readonly noDataToDisplay: "No data to display";
315
+ readonly likesCount: "Likes";
316
+ readonly commentsCount: "Comments";
317
+ readonly viewsCount: "Views";
318
+ readonly sharesCount: "Shares";
319
+ readonly postTypeLabel: "Post type";
320
+ readonly postTypePhoto: "Photo";
321
+ readonly postTypeVideo: "Video";
322
+ readonly postTypeCarousel: "Carousel";
323
+ readonly showMore: "More";
324
+ readonly showLess: "Less";
325
+ readonly noMediaAvailable: "No media available";
326
+ readonly commentAnalysis: "Comment Analysis";
327
+ readonly commentAnalysisDisabled: "Comment Analysis (disabled)";
328
+ readonly booster: "Booster";
329
+ readonly boosterDisabled: "Booster (disabled)";
330
+ readonly aiAnalysis: "AI Analysis";
331
+ readonly aiAnalysisDisabled: "AI Analysis (disabled)";
332
+ readonly openOnInstagram: "Open on Instagram";
333
+ readonly openOnInstagramDisabled: "Open on Instagram (disabled)";
334
+ };
335
+ };
336
+ type UIStringKeys = keyof (typeof UI_STRINGS)['fa'];
337
+ type UIStrings = Record<UIStringKeys, string>;
338
+ /**
339
+ * Get UI strings for a given locale.
340
+ * Falls back to 'fa' for unknown locales.
341
+ */
342
+ declare function getUIStrings(locale?: SupportedLocale): UIStrings;
343
+
344
+ export { type ActionStatusKey as A, entityHealthLabels as B, entityHealthPriority as C, isCriticalEntityHealth as D, type EntityHealthKey as E, type FlowKey as F, type UIStringKeys as G, type UIStrings as H, getUIStrings as I, type JobStatusKey as J, type Locale as L, type StageStatusKey as S, UI_STRINGS as U, type ActionTypeKey as a, type EmotionKey as b, type StatusKey as c, type SeverityKey as d, engagementUiTranslations as e, EMOTION_KEYS as f, emotionLabels as g, FLOW_KEYS as h, isRTL as i, flowLabels as j, statusLabels as k, severityLabels as l, JOB_STATUS_KEYS as m, jobStatusLabels as n, isActiveJobStatus as o, ACTION_STATUS_KEYS as p, actionStatusLabels as q, formatRelativeLocaleTime as r, sentimentLabels as s, formatTimeRemaining as t, STAGE_STATUS_KEYS as u, stageStatusLabels as v, ACTION_TYPE_KEYS as w, actionTypeLabels as x, actionTypeVerbs as y, ENTITY_HEALTH_KEYS as z };