@keboola/design 10.1.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. package/AGENTS.md +2 -0
  2. package/dist/MermaidDiagram-ZU5KAVRT.js +18 -0
  3. package/dist/{MermaidDiagram-EOKJHQQV.js.map → MermaidDiagram-ZU5KAVRT.js.map} +1 -1
  4. package/dist/charts.d.ts +14 -8
  5. package/dist/charts.js +6 -1
  6. package/dist/charts.js.map +1 -1
  7. package/dist/chunk-2YYJDKSP.js +51 -0
  8. package/dist/chunk-2YYJDKSP.js.map +1 -0
  9. package/dist/chunk-3P5UUCFI.js +385 -0
  10. package/dist/chunk-3P5UUCFI.js.map +1 -0
  11. package/dist/chunk-3QDFDDWZ.js +99 -0
  12. package/dist/chunk-3QDFDDWZ.js.map +1 -0
  13. package/dist/chunk-3W27OLK5.js +15 -0
  14. package/dist/chunk-3W27OLK5.js.map +1 -0
  15. package/dist/chunk-4FIZZONW.js +40 -0
  16. package/dist/chunk-4FIZZONW.js.map +1 -0
  17. package/dist/chunk-4GIAXOJG.js +133 -0
  18. package/dist/chunk-4GIAXOJG.js.map +1 -0
  19. package/dist/chunk-52NDNMK7.js +99 -0
  20. package/dist/chunk-52NDNMK7.js.map +1 -0
  21. package/dist/chunk-576G5OES.js +201 -0
  22. package/dist/chunk-576G5OES.js.map +1 -0
  23. package/dist/chunk-5AIE6SET.js +659 -0
  24. package/dist/chunk-5AIE6SET.js.map +1 -0
  25. package/dist/chunk-5FTNAZRW.js +327 -0
  26. package/dist/chunk-5FTNAZRW.js.map +1 -0
  27. package/dist/chunk-5IG2S7ZY.js +70 -0
  28. package/dist/chunk-5IG2S7ZY.js.map +1 -0
  29. package/dist/chunk-5QCXHNCW.js +404 -0
  30. package/dist/chunk-5QCXHNCW.js.map +1 -0
  31. package/dist/chunk-6DUMGC7Y.js +105 -0
  32. package/dist/chunk-6DUMGC7Y.js.map +1 -0
  33. package/dist/chunk-6J25CVST.js +174 -0
  34. package/dist/chunk-6J25CVST.js.map +1 -0
  35. package/dist/chunk-6NN35XOP.js +120 -0
  36. package/dist/chunk-6NN35XOP.js.map +1 -0
  37. package/dist/chunk-6NZBVA4T.js +24 -0
  38. package/dist/chunk-6NZBVA4T.js.map +1 -0
  39. package/dist/chunk-6W5BHRCL.js +295 -0
  40. package/dist/chunk-6W5BHRCL.js.map +1 -0
  41. package/dist/chunk-72BKRCEG.js +409 -0
  42. package/dist/chunk-72BKRCEG.js.map +1 -0
  43. package/dist/{chunk-Q7NWXLCT.js → chunk-7GTI3PPI.js} +53 -48
  44. package/dist/chunk-7GTI3PPI.js.map +1 -0
  45. package/dist/chunk-7P6PLZ4B.js +74 -0
  46. package/dist/chunk-7P6PLZ4B.js.map +1 -0
  47. package/dist/chunk-7WZWY5IA.js +46 -0
  48. package/dist/chunk-7WZWY5IA.js.map +1 -0
  49. package/dist/chunk-AIYO2632.js +489 -0
  50. package/dist/chunk-AIYO2632.js.map +1 -0
  51. package/dist/chunk-ANFZWPNE.js +112 -0
  52. package/dist/chunk-ANFZWPNE.js.map +1 -0
  53. package/dist/chunk-ANZTVAJU.js +73 -0
  54. package/dist/chunk-ANZTVAJU.js.map +1 -0
  55. package/dist/chunk-BD5BTJKX.js +166 -0
  56. package/dist/chunk-BD5BTJKX.js.map +1 -0
  57. package/dist/chunk-BHGIDSRJ.js +140 -0
  58. package/dist/chunk-BHGIDSRJ.js.map +1 -0
  59. package/dist/chunk-BSQWZITZ.js +507 -0
  60. package/dist/chunk-BSQWZITZ.js.map +1 -0
  61. package/dist/chunk-D3LAIK62.js +23 -0
  62. package/dist/chunk-D3LAIK62.js.map +1 -0
  63. package/dist/chunk-DODCR43C.js +155 -0
  64. package/dist/chunk-DODCR43C.js.map +1 -0
  65. package/dist/chunk-EEK5NGZF.js +40 -0
  66. package/dist/chunk-EEK5NGZF.js.map +1 -0
  67. package/dist/chunk-ENRG7TXA.js +11 -0
  68. package/dist/chunk-ENRG7TXA.js.map +1 -0
  69. package/dist/chunk-EQRMGIGY.js +239 -0
  70. package/dist/chunk-EQRMGIGY.js.map +1 -0
  71. package/dist/{chunk-XV3UUOYF.js → chunk-ERAHK5YQ.js} +9 -359
  72. package/dist/chunk-ERAHK5YQ.js.map +1 -0
  73. package/dist/chunk-F3FOFY2P.js +124 -0
  74. package/dist/chunk-F3FOFY2P.js.map +1 -0
  75. package/dist/chunk-F6BTWFOC.js +507 -0
  76. package/dist/chunk-F6BTWFOC.js.map +1 -0
  77. package/dist/chunk-F6J6NNAL.js +34 -0
  78. package/dist/chunk-F6J6NNAL.js.map +1 -0
  79. package/dist/chunk-FCHJ7D5O.js +59 -0
  80. package/dist/chunk-FCHJ7D5O.js.map +1 -0
  81. package/dist/chunk-FFJTEQCC.js +80 -0
  82. package/dist/chunk-FFJTEQCC.js.map +1 -0
  83. package/dist/chunk-FUFMVW7O.js +64 -0
  84. package/dist/chunk-FUFMVW7O.js.map +1 -0
  85. package/dist/chunk-FVPGQ6UE.js +25 -0
  86. package/dist/chunk-FVPGQ6UE.js.map +1 -0
  87. package/dist/{chunk-JP7PNHLH.js → chunk-G3PMV62Z.js} +3 -10
  88. package/dist/chunk-G3PMV62Z.js.map +1 -0
  89. package/dist/chunk-GACFOW3E.js +51 -0
  90. package/dist/chunk-GACFOW3E.js.map +1 -0
  91. package/dist/chunk-GDT6HQMK.js +42 -0
  92. package/dist/chunk-GDT6HQMK.js.map +1 -0
  93. package/dist/chunk-HLGU22C6.js +2589 -0
  94. package/dist/chunk-HLGU22C6.js.map +1 -0
  95. package/dist/chunk-HPMYYGP7.js +134 -0
  96. package/dist/chunk-HPMYYGP7.js.map +1 -0
  97. package/dist/chunk-I2UCOD45.js +197 -0
  98. package/dist/chunk-I2UCOD45.js.map +1 -0
  99. package/dist/chunk-IEGDZUVM.js +75 -0
  100. package/dist/chunk-IEGDZUVM.js.map +1 -0
  101. package/dist/chunk-IIS7INHF.js +47 -0
  102. package/dist/chunk-IIS7INHF.js.map +1 -0
  103. package/dist/chunk-ITELSEFU.js +256 -0
  104. package/dist/chunk-ITELSEFU.js.map +1 -0
  105. package/dist/{chunk-CTCFYWJC.js → chunk-IXAYNBOY.js} +6 -6
  106. package/dist/{chunk-CTCFYWJC.js.map → chunk-IXAYNBOY.js.map} +1 -1
  107. package/dist/chunk-JUW2ETEI.js +191 -0
  108. package/dist/chunk-JUW2ETEI.js.map +1 -0
  109. package/dist/chunk-K65C7CVE.js +127 -0
  110. package/dist/chunk-K65C7CVE.js.map +1 -0
  111. package/dist/chunk-KDI64MCY.js +189 -0
  112. package/dist/chunk-KDI64MCY.js.map +1 -0
  113. package/dist/chunk-KN4ASMH5.js +160 -0
  114. package/dist/chunk-KN4ASMH5.js.map +1 -0
  115. package/dist/chunk-KQW7QNTU.js +1549 -0
  116. package/dist/chunk-KQW7QNTU.js.map +1 -0
  117. package/dist/chunk-KR7NXXHC.js +66 -0
  118. package/dist/chunk-KR7NXXHC.js.map +1 -0
  119. package/dist/chunk-KRZKIVMA.js +142 -0
  120. package/dist/chunk-KRZKIVMA.js.map +1 -0
  121. package/dist/{chunk-C3L3TBBT.js → chunk-KTTLLKGQ.js} +6 -63
  122. package/dist/chunk-KTTLLKGQ.js.map +1 -0
  123. package/dist/chunk-KWKSHPDP.js +234 -0
  124. package/dist/chunk-KWKSHPDP.js.map +1 -0
  125. package/dist/chunk-KZVC7OYG.js +57 -0
  126. package/dist/chunk-KZVC7OYG.js.map +1 -0
  127. package/dist/chunk-L5DHUN2V.js +204 -0
  128. package/dist/chunk-L5DHUN2V.js.map +1 -0
  129. package/dist/chunk-LCTGEH57.js +1376 -0
  130. package/dist/chunk-LCTGEH57.js.map +1 -0
  131. package/dist/chunk-LXLIQ2D6.js +12 -0
  132. package/dist/chunk-LXLIQ2D6.js.map +1 -0
  133. package/dist/chunk-M4CTURKX.js +84 -0
  134. package/dist/chunk-M4CTURKX.js.map +1 -0
  135. package/dist/chunk-M6LTUPVP.js +301 -0
  136. package/dist/chunk-M6LTUPVP.js.map +1 -0
  137. package/dist/chunk-MA6RRHDT.js +291 -0
  138. package/dist/chunk-MA6RRHDT.js.map +1 -0
  139. package/dist/chunk-MODE4QIA.js +6 -0
  140. package/dist/chunk-MODE4QIA.js.map +1 -0
  141. package/dist/chunk-MVILMVGG.js +118 -0
  142. package/dist/chunk-MVILMVGG.js.map +1 -0
  143. package/dist/chunk-MWS4VCLV.js +17 -0
  144. package/dist/chunk-MWS4VCLV.js.map +1 -0
  145. package/dist/chunk-NEUX74SO.js +315 -0
  146. package/dist/chunk-NEUX74SO.js.map +1 -0
  147. package/dist/chunk-NFHKYBRD.js +156 -0
  148. package/dist/chunk-NFHKYBRD.js.map +1 -0
  149. package/dist/chunk-NHJNNXD3.js +89 -0
  150. package/dist/chunk-NHJNNXD3.js.map +1 -0
  151. package/dist/chunk-O2BF3HZL.js +33 -0
  152. package/dist/chunk-O2BF3HZL.js.map +1 -0
  153. package/dist/chunk-OANXCZYD.js +212 -0
  154. package/dist/chunk-OANXCZYD.js.map +1 -0
  155. package/dist/chunk-ODJF7YIP.js +230 -0
  156. package/dist/chunk-ODJF7YIP.js.map +1 -0
  157. package/dist/chunk-ON4BJTHI.js +101 -0
  158. package/dist/chunk-ON4BJTHI.js.map +1 -0
  159. package/dist/{chunk-VMFSRV5H.js → chunk-OTL5WXIJ.js} +2 -2
  160. package/dist/{chunk-VMFSRV5H.js.map → chunk-OTL5WXIJ.js.map} +1 -1
  161. package/dist/{chunk-VPPM7UUQ.js → chunk-PACNBKJV.js} +3 -3
  162. package/dist/{chunk-VPPM7UUQ.js.map → chunk-PACNBKJV.js.map} +1 -1
  163. package/dist/{chunk-ESBL3IPF.js → chunk-PROCA7K7.js} +2 -2
  164. package/dist/{chunk-ESBL3IPF.js.map → chunk-PROCA7K7.js.map} +1 -1
  165. package/dist/chunk-QGMIPA67.js +85 -0
  166. package/dist/chunk-QGMIPA67.js.map +1 -0
  167. package/dist/chunk-QQA37LFB.js +190 -0
  168. package/dist/chunk-QQA37LFB.js.map +1 -0
  169. package/dist/chunk-QZAWRSEB.js +61 -0
  170. package/dist/chunk-QZAWRSEB.js.map +1 -0
  171. package/dist/chunk-R74KGWNS.js +699 -0
  172. package/dist/chunk-R74KGWNS.js.map +1 -0
  173. package/dist/chunk-RFDLHMKL.js +110 -0
  174. package/dist/chunk-RFDLHMKL.js.map +1 -0
  175. package/dist/chunk-RL64HN7S.js +40 -0
  176. package/dist/chunk-RL64HN7S.js.map +1 -0
  177. package/dist/chunk-RMRQKPL7.js +115 -0
  178. package/dist/chunk-RMRQKPL7.js.map +1 -0
  179. package/dist/{chunk-BOHNXTMM.js → chunk-RQVK4IYC.js} +3 -3
  180. package/dist/{chunk-BOHNXTMM.js.map → chunk-RQVK4IYC.js.map} +1 -1
  181. package/dist/chunk-RTW56PWZ.js +59 -0
  182. package/dist/chunk-RTW56PWZ.js.map +1 -0
  183. package/dist/chunk-RUTPQNLR.js +266 -0
  184. package/dist/chunk-RUTPQNLR.js.map +1 -0
  185. package/dist/chunk-S6TAF63G.js +25 -0
  186. package/dist/chunk-S6TAF63G.js.map +1 -0
  187. package/dist/chunk-SBGAUGXY.js +224 -0
  188. package/dist/chunk-SBGAUGXY.js.map +1 -0
  189. package/dist/chunk-SC275NHZ.js +407 -0
  190. package/dist/chunk-SC275NHZ.js.map +1 -0
  191. package/dist/chunk-SCQPU4UE.js +97 -0
  192. package/dist/chunk-SCQPU4UE.js.map +1 -0
  193. package/dist/chunk-SFFF2WQP.js +8 -0
  194. package/dist/chunk-SFFF2WQP.js.map +1 -0
  195. package/dist/chunk-SJYMHZKA.js +36 -0
  196. package/dist/chunk-SJYMHZKA.js.map +1 -0
  197. package/dist/chunk-SLCCUJVN.js +125 -0
  198. package/dist/chunk-SLCCUJVN.js.map +1 -0
  199. package/dist/{chunk-IJTHFNNJ.js → chunk-SVBSNSD4.js} +10 -12
  200. package/dist/chunk-SVBSNSD4.js.map +1 -0
  201. package/dist/chunk-SVPLTL35.js +62 -0
  202. package/dist/chunk-SVPLTL35.js.map +1 -0
  203. package/dist/{chunk-63NSN2VL.js → chunk-SWQFYNYG.js} +115 -51
  204. package/dist/chunk-SWQFYNYG.js.map +1 -0
  205. package/dist/chunk-THHB4EWS.js +72 -0
  206. package/dist/chunk-THHB4EWS.js.map +1 -0
  207. package/dist/chunk-TUCDD33E.js +246 -0
  208. package/dist/chunk-TUCDD33E.js.map +1 -0
  209. package/dist/chunk-TV4WAP2R.js +14 -0
  210. package/dist/chunk-TV4WAP2R.js.map +1 -0
  211. package/dist/chunk-U3A6YBTZ.js +134 -0
  212. package/dist/chunk-U3A6YBTZ.js.map +1 -0
  213. package/dist/chunk-UGT6DKWM.js +95 -0
  214. package/dist/chunk-UGT6DKWM.js.map +1 -0
  215. package/dist/chunk-VSERHUWD.js +212 -0
  216. package/dist/chunk-VSERHUWD.js.map +1 -0
  217. package/dist/chunk-VYG7BDXC.js +49 -0
  218. package/dist/chunk-VYG7BDXC.js.map +1 -0
  219. package/dist/chunk-WETKNYZX.js +52 -0
  220. package/dist/chunk-WETKNYZX.js.map +1 -0
  221. package/dist/chunk-WGG4AML3.js +216 -0
  222. package/dist/chunk-WGG4AML3.js.map +1 -0
  223. package/dist/chunk-WKAUEL6I.js +30 -0
  224. package/dist/chunk-WKAUEL6I.js.map +1 -0
  225. package/dist/chunk-WPOLA5CG.js +81 -0
  226. package/dist/chunk-WPOLA5CG.js.map +1 -0
  227. package/dist/chunk-WPVETCGJ.js +254 -0
  228. package/dist/chunk-WPVETCGJ.js.map +1 -0
  229. package/dist/chunk-WTSM3A7E.js +13 -0
  230. package/dist/chunk-WTSM3A7E.js.map +1 -0
  231. package/dist/chunk-WU3F2K3T.js +148 -0
  232. package/dist/chunk-WU3F2K3T.js.map +1 -0
  233. package/dist/chunk-WZZK2DTZ.js +39 -0
  234. package/dist/chunk-WZZK2DTZ.js.map +1 -0
  235. package/dist/chunk-X4IHLKRD.js +42 -0
  236. package/dist/chunk-X4IHLKRD.js.map +1 -0
  237. package/dist/chunk-XAHEXZJC.js +80 -0
  238. package/dist/chunk-XAHEXZJC.js.map +1 -0
  239. package/dist/chunk-XCYGJDUX.js +31 -0
  240. package/dist/chunk-XCYGJDUX.js.map +1 -0
  241. package/dist/chunk-Y4W3JORC.js +104 -0
  242. package/dist/chunk-Y4W3JORC.js.map +1 -0
  243. package/dist/{chunk-7PUUHEJQ.js → chunk-YFZJ3ZLG.js} +26 -42
  244. package/dist/chunk-YFZJ3ZLG.js.map +1 -0
  245. package/dist/{chunk-6FPEI4EM.js → chunk-YI3WLXEN.js} +27 -2323
  246. package/dist/chunk-YI3WLXEN.js.map +1 -0
  247. package/dist/chunk-ZBKFSPD3.js +29 -0
  248. package/dist/chunk-ZBKFSPD3.js.map +1 -0
  249. package/dist/chunk-ZOERRQ6A.js +79 -0
  250. package/dist/chunk-ZOERRQ6A.js.map +1 -0
  251. package/dist/chunk-ZSTGUKHU.js +10 -0
  252. package/dist/chunk-ZSTGUKHU.js.map +1 -0
  253. package/dist/chunk-ZUEHDL27.js +65 -0
  254. package/dist/chunk-ZUEHDL27.js.map +1 -0
  255. package/dist/editors.js +22 -14
  256. package/dist/editors.js.map +1 -1
  257. package/dist/icons.js +7 -2
  258. package/dist/index.d.ts +8 -18
  259. package/dist/index.js +121 -15800
  260. package/dist/index.js.map +1 -1
  261. package/dist/internal/blocks/AIKit.js +30 -0
  262. package/dist/internal/blocks/AIKit.js.map +1 -0
  263. package/dist/internal/blocks/AppShell.js +11 -0
  264. package/dist/internal/blocks/AppShell.js.map +1 -0
  265. package/dist/internal/blocks/AutoSaveTextarea.js +14 -0
  266. package/dist/internal/blocks/AutoSaveTextarea.js.map +1 -0
  267. package/dist/internal/blocks/BrandEditor.js +23 -0
  268. package/dist/internal/blocks/BrandEditor.js.map +1 -0
  269. package/dist/internal/blocks/ChartPanel.js +10 -0
  270. package/dist/internal/blocks/ChartPanel.js.map +1 -0
  271. package/dist/internal/blocks/ClipboardButton.js +12 -0
  272. package/dist/internal/blocks/ClipboardButton.js.map +1 -0
  273. package/dist/internal/blocks/ColorInput.js +13 -0
  274. package/dist/internal/blocks/ColorInput.js.map +1 -0
  275. package/dist/internal/blocks/ColorModeSwitch.js +13 -0
  276. package/dist/internal/blocks/ColorModeSwitch.js.map +1 -0
  277. package/dist/internal/blocks/Command.js +15 -0
  278. package/dist/internal/blocks/Command.js.map +1 -0
  279. package/dist/internal/blocks/CopyField.js +11 -0
  280. package/dist/internal/blocks/CopyField.js.map +1 -0
  281. package/dist/internal/blocks/DashboardHero.js +9 -0
  282. package/dist/internal/blocks/DashboardHero.js.map +1 -0
  283. package/dist/internal/blocks/DateInput.js +16 -0
  284. package/dist/internal/blocks/DateInput.js.map +1 -0
  285. package/dist/internal/blocks/DateRangeInput.js +16 -0
  286. package/dist/internal/blocks/DateRangeInput.js.map +1 -0
  287. package/dist/internal/blocks/EmptyConfigurationActionCard.js +10 -0
  288. package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -0
  289. package/dist/internal/blocks/EmptyState.js +4 -0
  290. package/dist/internal/blocks/EmptyState.js.map +1 -0
  291. package/dist/internal/blocks/ErrorState.js +5 -0
  292. package/dist/internal/blocks/ErrorState.js.map +1 -0
  293. package/dist/internal/blocks/ExportMenu.js +13 -0
  294. package/dist/internal/blocks/ExportMenu.js.map +1 -0
  295. package/dist/internal/blocks/Form.js +29 -0
  296. package/dist/internal/blocks/Form.js.map +1 -0
  297. package/dist/internal/blocks/FormGroup.js +18 -0
  298. package/dist/internal/blocks/FormGroup.js.map +1 -0
  299. package/dist/internal/blocks/GoogleButton.js +10 -0
  300. package/dist/internal/blocks/GoogleButton.js.map +1 -0
  301. package/dist/internal/blocks/MicrosoftButton.js +10 -0
  302. package/dist/internal/blocks/MicrosoftButton.js.map +1 -0
  303. package/dist/internal/blocks/MultiActionButtonGroup.js +12 -0
  304. package/dist/internal/blocks/MultiActionButtonGroup.js.map +1 -0
  305. package/dist/internal/blocks/MultiCombobox.js +14 -0
  306. package/dist/internal/blocks/MultiCombobox.js.map +1 -0
  307. package/dist/internal/blocks/NumberInput.js +12 -0
  308. package/dist/internal/blocks/NumberInput.js.map +1 -0
  309. package/dist/internal/blocks/OtpInput.js +10 -0
  310. package/dist/internal/blocks/OtpInput.js.map +1 -0
  311. package/dist/internal/blocks/PageHeader.js +9 -0
  312. package/dist/internal/blocks/PageHeader.js.map +1 -0
  313. package/dist/internal/blocks/PageLayout.js +9 -0
  314. package/dist/internal/blocks/PageLayout.js.map +1 -0
  315. package/dist/internal/blocks/PageToolbar.js +13 -0
  316. package/dist/internal/blocks/PageToolbar.js.map +1 -0
  317. package/dist/internal/blocks/PasswordInput.js +13 -0
  318. package/dist/internal/blocks/PasswordInput.js.map +1 -0
  319. package/dist/internal/blocks/SearchInput.js +12 -0
  320. package/dist/internal/blocks/SearchInput.js.map +1 -0
  321. package/dist/internal/blocks/SearchInputWithNavigation.js +16 -0
  322. package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -0
  323. package/dist/internal/blocks/SectionNav.js +15 -0
  324. package/dist/internal/blocks/SectionNav.js.map +1 -0
  325. package/dist/internal/blocks/SplitButton.js +14 -0
  326. package/dist/internal/blocks/SplitButton.js.map +1 -0
  327. package/dist/internal/blocks/StatCard.js +10 -0
  328. package/dist/internal/blocks/StatCard.js.map +1 -0
  329. package/dist/internal/blocks/TextInput.js +13 -0
  330. package/dist/internal/blocks/TextInput.js.map +1 -0
  331. package/dist/internal/blocks/Textarea.js +13 -0
  332. package/dist/internal/blocks/Textarea.js.map +1 -0
  333. package/dist/internal/blocks/TimeInput.js +17 -0
  334. package/dist/internal/blocks/TimeInput.js.map +1 -0
  335. package/dist/internal/components/Alert.js +11 -0
  336. package/dist/internal/components/Alert.js.map +1 -0
  337. package/dist/internal/components/AlertModal.js +11 -0
  338. package/dist/internal/components/AlertModal.js.map +1 -0
  339. package/dist/internal/components/Avatar.js +9 -0
  340. package/dist/internal/components/Avatar.js.map +1 -0
  341. package/dist/internal/components/Badge.js +9 -0
  342. package/dist/internal/components/Badge.js.map +1 -0
  343. package/dist/internal/components/BrandLogo.js +11 -0
  344. package/dist/internal/components/BrandLogo.js.map +1 -0
  345. package/dist/internal/components/Breadcrumb.js +14 -0
  346. package/dist/internal/components/Breadcrumb.js.map +1 -0
  347. package/dist/internal/components/Button.js +10 -0
  348. package/dist/internal/components/Button.js.map +1 -0
  349. package/dist/internal/components/ButtonGroup.js +9 -0
  350. package/dist/internal/components/ButtonGroup.js.map +1 -0
  351. package/dist/internal/components/Calendar.js +9 -0
  352. package/dist/internal/components/Calendar.js.map +1 -0
  353. package/dist/internal/components/Card.js +9 -0
  354. package/dist/internal/components/Card.js.map +1 -0
  355. package/dist/internal/components/Checkbox.js +11 -0
  356. package/dist/internal/components/Checkbox.js.map +1 -0
  357. package/dist/internal/components/Clipboard.js +9 -0
  358. package/dist/internal/components/Clipboard.js.map +1 -0
  359. package/dist/internal/components/Collapsible.js +9 -0
  360. package/dist/internal/components/Collapsible.js.map +1 -0
  361. package/dist/internal/components/CollapsiblePanel.js +11 -0
  362. package/dist/internal/components/CollapsiblePanel.js.map +1 -0
  363. package/dist/internal/components/Combobox.js +13 -0
  364. package/dist/internal/components/Combobox.js.map +1 -0
  365. package/dist/internal/components/DatePicker.js +11 -0
  366. package/dist/internal/components/DatePicker.js.map +1 -0
  367. package/dist/internal/components/DateRangePicker.js +17 -0
  368. package/dist/internal/components/DateRangePicker.js.map +1 -0
  369. package/dist/internal/components/DiffView.js +9 -0
  370. package/dist/internal/components/DiffView.js.map +1 -0
  371. package/dist/internal/components/DotsLoader.js +5 -0
  372. package/dist/internal/components/DotsLoader.js.map +1 -0
  373. package/dist/internal/components/DropdownMenu.js +11 -0
  374. package/dist/internal/components/DropdownMenu.js.map +1 -0
  375. package/dist/internal/components/EmptySearchContent.js +4 -0
  376. package/dist/internal/components/EmptySearchContent.js.map +1 -0
  377. package/dist/internal/components/FileUpload.js +11 -0
  378. package/dist/internal/components/FileUpload.js.map +1 -0
  379. package/dist/internal/components/FullScreenModal.js +12 -0
  380. package/dist/internal/components/FullScreenModal.js.map +1 -0
  381. package/dist/internal/components/HelpBlock.js +4 -0
  382. package/dist/internal/components/HelpBlock.js.map +1 -0
  383. package/dist/internal/components/HoverCard.js +9 -0
  384. package/dist/internal/components/HoverCard.js.map +1 -0
  385. package/dist/internal/components/InputGroup.js +11 -0
  386. package/dist/internal/components/InputGroup.js.map +1 -0
  387. package/dist/internal/components/Kbd.js +9 -0
  388. package/dist/internal/components/Kbd.js.map +1 -0
  389. package/dist/internal/components/Label.js +9 -0
  390. package/dist/internal/components/Label.js.map +1 -0
  391. package/dist/internal/components/Link.js +9 -0
  392. package/dist/internal/components/Link.js.map +1 -0
  393. package/dist/internal/components/MarkedText.js +5 -0
  394. package/dist/internal/components/MarkedText.js.map +1 -0
  395. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +10 -0
  396. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -0
  397. package/dist/internal/components/MergeEditor/PaneHeader.js +4 -0
  398. package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -0
  399. package/dist/internal/components/MergeEditor/constants.js +4 -0
  400. package/dist/internal/components/MergeEditor/constants.js.map +1 -0
  401. package/dist/internal/components/MergeEditor/useMergeDiff.js +5 -0
  402. package/dist/internal/components/MergeEditor/useMergeDiff.js.map +1 -0
  403. package/dist/internal/components/Modal.js +13 -0
  404. package/dist/internal/components/Modal.js.map +1 -0
  405. package/dist/internal/components/Navbar.js +14 -0
  406. package/dist/internal/components/Navbar.js.map +1 -0
  407. package/dist/internal/components/Pagination.js +11 -0
  408. package/dist/internal/components/Pagination.js.map +1 -0
  409. package/dist/internal/components/PanelWithDetails.js +11 -0
  410. package/dist/internal/components/PanelWithDetails.js.map +1 -0
  411. package/dist/internal/components/Popconfirm.js +12 -0
  412. package/dist/internal/components/Popconfirm.js.map +1 -0
  413. package/dist/internal/components/Popover.js +9 -0
  414. package/dist/internal/components/Popover.js.map +1 -0
  415. package/dist/internal/components/Progress.js +9 -0
  416. package/dist/internal/components/Progress.js.map +1 -0
  417. package/dist/internal/components/RadioGroup.js +12 -0
  418. package/dist/internal/components/RadioGroup.js.map +1 -0
  419. package/dist/internal/components/Resizable.js +9 -0
  420. package/dist/internal/components/Resizable.js.map +1 -0
  421. package/dist/internal/components/ScrollArea.js +9 -0
  422. package/dist/internal/components/ScrollArea.js.map +1 -0
  423. package/dist/internal/components/Search.js +10 -0
  424. package/dist/internal/components/Search.js.map +1 -0
  425. package/dist/internal/components/Select.js +12 -0
  426. package/dist/internal/components/Select.js.map +1 -0
  427. package/dist/internal/components/Separator.js +9 -0
  428. package/dist/internal/components/Separator.js.map +1 -0
  429. package/dist/internal/components/Sheet.js +12 -0
  430. package/dist/internal/components/Sheet.js.map +1 -0
  431. package/dist/internal/components/Sidebar.js +20 -0
  432. package/dist/internal/components/Sidebar.js.map +1 -0
  433. package/dist/internal/components/Skeleton/Skeleton.js +9 -0
  434. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -0
  435. package/dist/internal/components/Skeleton/SkeletonList.js +10 -0
  436. package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -0
  437. package/dist/internal/components/Slider.js +11 -0
  438. package/dist/internal/components/Slider.js.map +1 -0
  439. package/dist/internal/components/SpotlightBackdrop.js +9 -0
  440. package/dist/internal/components/SpotlightBackdrop.js.map +1 -0
  441. package/dist/internal/components/Stepper.js +10 -0
  442. package/dist/internal/components/Stepper.js.map +1 -0
  443. package/dist/internal/components/Switch.js +10 -0
  444. package/dist/internal/components/Switch.js.map +1 -0
  445. package/dist/internal/components/Table.js +10 -0
  446. package/dist/internal/components/Table.js.map +1 -0
  447. package/dist/internal/components/Tabs.js +12 -0
  448. package/dist/internal/components/Tabs.js.map +1 -0
  449. package/dist/internal/components/ThemeProvider.js +10 -0
  450. package/dist/internal/components/ThemeProvider.js.map +1 -0
  451. package/dist/internal/components/TimePicker.js +12 -0
  452. package/dist/internal/components/TimePicker.js.map +1 -0
  453. package/dist/internal/components/Timeline.js +10 -0
  454. package/dist/internal/components/Timeline.js.map +1 -0
  455. package/dist/internal/components/Toast.js +11 -0
  456. package/dist/internal/components/Toast.js.map +1 -0
  457. package/dist/internal/components/Toggle.js +9 -0
  458. package/dist/internal/components/Toggle.js.map +1 -0
  459. package/dist/internal/components/ToggleGroup.js +9 -0
  460. package/dist/internal/components/ToggleGroup.js.map +1 -0
  461. package/dist/internal/components/Tooltip.js +8 -0
  462. package/dist/internal/components/Tooltip.js.map +1 -0
  463. package/dist/internal/components/Truncated.js +9 -0
  464. package/dist/internal/components/Truncated.js.map +1 -0
  465. package/dist/internal/components/Workbench.js +11 -0
  466. package/dist/internal/components/Workbench.js.map +1 -0
  467. package/dist/internal/components/ZoomableSvg.js +13 -0
  468. package/dist/internal/components/ZoomableSvg.js.map +1 -0
  469. package/dist/internal/hooks/useAutosizeInput.js +4 -0
  470. package/dist/internal/hooks/useAutosizeInput.js.map +1 -0
  471. package/dist/internal/hooks/useScrollbarPosition.js +5 -0
  472. package/dist/internal/hooks/useScrollbarPosition.js.map +1 -0
  473. package/dist/internal/hooks/useStableCallback.js +4 -0
  474. package/dist/internal/hooks/useStableCallback.js.map +1 -0
  475. package/dist/internal/utils/mergeRefs.js +4 -0
  476. package/dist/internal/utils/mergeRefs.js.map +1 -0
  477. package/dist/internal/utils.js +8 -0
  478. package/dist/internal/utils.js.map +1 -0
  479. package/dist/markdown-editor.js +23 -9
  480. package/dist/markdown-editor.js.map +1 -1
  481. package/dist/mermaid.js +16 -8
  482. package/dist/rjsf.js +102 -29
  483. package/dist/rjsf.js.map +1 -1
  484. package/dist/styles.css +1 -1
  485. package/dist/testing.js +8 -3
  486. package/dist/testing.js.map +1 -1
  487. package/package.json +9 -8
  488. package/src/styles.css +35 -7
  489. package/src/theme.css +64 -0
  490. package/dist/MermaidDiagram-EOKJHQQV.js +0 -10
  491. package/dist/chunk-63NSN2VL.js.map +0 -1
  492. package/dist/chunk-6FPEI4EM.js.map +0 -1
  493. package/dist/chunk-7PUUHEJQ.js.map +0 -1
  494. package/dist/chunk-C3L3TBBT.js.map +0 -1
  495. package/dist/chunk-IJTHFNNJ.js.map +0 -1
  496. package/dist/chunk-JP7PNHLH.js.map +0 -1
  497. package/dist/chunk-KPNAW5MU.js +0 -229
  498. package/dist/chunk-KPNAW5MU.js.map +0 -1
  499. package/dist/chunk-L37JJ6MR.js +0 -152
  500. package/dist/chunk-L37JJ6MR.js.map +0 -1
  501. package/dist/chunk-Q7NWXLCT.js.map +0 -1
  502. package/dist/chunk-SYIEF644.js +0 -1016
  503. package/dist/chunk-SYIEF644.js.map +0 -1
  504. package/dist/chunk-XV3UUOYF.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Toast/ToastAction.tsx","../src/components/Toast/ToastDescription.tsx","../src/components/Toast/ToastDismiss.tsx","../src/components/Toast/ToastDuration.tsx","../src/components/Toast/ToastTitle.tsx","../src/components/Toast/ToastRoot.tsx","../src/components/Toast/toast.tsx"],"names":["jsx","sonnerToast","jsxs","toast"],"mappings":"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","file":"chunk-6W5BHRCL.js","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'button'>;\n\nexport const ToastAction = ({ ref, className, ...rest }: Props) => (\n <button\n {...rest}\n ref={ref}\n data-slot=\"toast-action\"\n type=\"button\"\n className={cn(\n // layout\n 'tw:col-start-3',\n 'tw:row-start-1',\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n\n // font\n 'tw:text-xs',\n 'tw:font-medium',\n 'tw:text-primary',\n\n // sizing\n 'tw:px-2',\n 'tw:h-6',\n\n // styles\n 'tw:bg-primary-foreground',\n 'tw:rounded',\n className,\n )}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const ToastDescription = ({ ref, className, children, ...rest }: Props) => (\n <div\n ref={ref}\n data-slot=\"toast-description\"\n className={cn(\n 'tw:col-start-2',\n 'tw:font-normal',\n 'tw:break-words',\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:text-muted-foreground',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentProps } from 'react';\n\nimport { X } from '../../icons';\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'button'>;\n\nexport const ToastDismiss = ({ ref, className, ...rest }: Props) => (\n <button\n ref={ref}\n data-slot=\"toast-dismiss\"\n className={cn(\n 'tw:flex',\n 'tw:justify-center',\n 'tw:col-start-4',\n 'tw:row-start-1',\n 'tailwindcss-preflight',\n 'tw:[&_svg]:aspect-square',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-4',\n 'tw:[&_svg]:m-1',\n\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:[&_svg]:text-popover-foreground',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:[&_svg]:text-foreground',\n className,\n )}\n type=\"button\"\n {...rest}\n >\n <X />\n <span className=\"tw:sr-only\">Dismiss</span>\n </button>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype ToastDurationProps = ComponentProps<'span'> & {\n duration: number;\n};\n\nexport const ToastDuration = ({ ref, duration, className, style, ...rest }: ToastDurationProps) => (\n <span\n {...rest}\n ref={ref}\n className={cn(\n 'tw:bg-white/30',\n 'tw:group-data-[variant=default]/toast:bg-popover-foreground/20',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:bg-foreground/20',\n 'tw:rounded-bl-lg',\n 'tw:mx-px',\n\n // positioning\n 'tw:absolute',\n 'tw:bottom-0',\n 'tw:left-0',\n\n // sizing\n 'tw:h-1',\n\n // animation\n 'tw:animate-toast-progress',\n 'tw:group-hover/toast:[animation-play-state:paused]',\n className,\n )}\n style={{\n animationDuration: `${duration}ms`,\n ...style,\n }}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const ToastTitle = ({ ref, className, children, ...rest }: Props) => (\n <div\n ref={ref}\n data-slot=\"toast-title\"\n className={cn(\n 'tw:col-start-2',\n 'tw:text-sm',\n 'tw:leading-6',\n 'tw:min-h-6',\n 'tw:self-center',\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:text-popover-foreground',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground',\n\n 'tw:break-words',\n 'tw:font-medium',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { MouseEventHandler, ReactNode } from 'react';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\nimport { type Action, toast as sonnerToast } from 'sonner';\n\nimport { AlertCircle, AlertTriangle, CircleCheck, Info, Loader2 } from '../../icons';\nimport { cn } from '../../utils';\nimport { useArgoDesign } from '../ThemeProvider/context';\n\nimport { ToastAction } from './ToastAction';\nimport { ToastDescription } from './ToastDescription';\nimport { ToastDismiss } from './ToastDismiss';\nimport { ToastDuration } from './ToastDuration';\nimport { ToastTitle } from './ToastTitle';\n\nconst variants = cva(\n [\n 'tailwindcss-preflight',\n 'tw:group/toast',\n 'tw:relative',\n\n // layout\n 'tw:grid',\n 'tw:grid-cols-[0_1fr_auto_auto]',\n 'tw:items-start',\n 'tw:has-[[data-slot=toast-description]]:grid-rows-[auto_auto]',\n 'tw:has-[[data-slot=toast-icon]]:grid-cols-[auto_1fr_auto_auto]',\n 'tw:[&_[data-slot=toast-icon]]:mr-2',\n 'tw:[&_[data-slot=toast-title]]:mr-2.5',\n 'tw:[&_[data-slot=toast-description]]:mr-2.5',\n 'tw:[&_[data-slot=toast-action]]:mr-2',\n 'tw:[&_[data-slot=toast-description]]:col-end-3',\n 'tw:gap-y-0',\n\n // styles\n 'tw:p-4',\n 'tw:rounded-lg',\n 'tw:shadow-md',\n ],\n {\n defaultVariants: {\n variant: 'info',\n },\n variants: {\n variant: {\n default: 'tw:border tw:border-border tw:bg-popover',\n error: 'tw:bg-error-550',\n info: 'tw:bg-blue-600',\n success: 'tw:bg-green-700',\n warning: 'tw:bg-warning-550',\n },\n },\n },\n);\n\ntype Variants = VariantProps<typeof variants>;\ntype Variant = NonNullable<Variants['variant']>;\ntype VariantIcon = Exclude<Variant, 'default'>;\n\ntype Props = {\n id: string | number;\n title: ReactNode;\n icon?: ReactNode;\n description?: ReactNode;\n action?: Action;\n loading?: boolean;\n duration?: number;\n // offset?: number;\n} & Variants;\n\nconst DEFAULT_VARIANT_ICON: Record<VariantIcon, ReactNode> = {\n error: <AlertTriangle />,\n info: <Info />,\n success: <CircleCheck />,\n warning: <AlertCircle />,\n};\n\nexport const ToastRoot = ({\n id,\n title,\n description,\n action,\n duration = Infinity,\n variant = 'info',\n loading = false,\n icon: iconProp,\n}: Props) => {\n const renderArgo = useArgoDesign();\n\n const icon: ReactNode = (() => {\n if (loading) return <Loader2 className=\"tw:animate-spin\" />;\n if (iconProp) return iconProp;\n if (variant === 'default' || variant === null) return null;\n return DEFAULT_VARIANT_ICON[variant];\n })();\n\n const handleActionClick: MouseEventHandler<HTMLButtonElement> = (event) => {\n sonnerToast.dismiss(id);\n action?.onClick(event);\n };\n\n return (\n <div\n data-variant={variant}\n data-argo={renderArgo}\n className={cn(\n variants({ variant }),\n 'tw:data-[variant=default]:data-[argo=true]:bg-background',\n )}\n >\n {icon && (\n <span\n data-slot=\"toast-icon\"\n className={cn(\n 'tw:inline-flex',\n 'tw:items-center',\n 'tw:justify-center',\n 'tw:self-center',\n 'tw:aspect-square',\n 'tw:size-5',\n 'tw:shrink-0',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-5',\n 'tw:text-white',\n 'tw:group-data-[variant=default]/toast:text-popover-foreground',\n 'tw:group-data-[variant=default]/toast:group-data-[argo=true]/toast:text-foreground',\n )}\n >\n {icon}\n </span>\n )}\n\n <ToastTitle>{title}</ToastTitle>\n {description && <ToastDescription>{description}</ToastDescription>}\n {action && (\n <ToastAction style={action?.actionButtonStyle} onClick={handleActionClick}>\n {action.label}\n </ToastAction>\n )}\n <ToastDismiss onClick={() => sonnerToast.dismiss(id)} />\n {duration !== Infinity && <ToastDuration duration={duration} />}\n </div>\n );\n};\n","import type { ComponentProps, ReactNode } from 'react';\nimport { type ExternalToast, toast as sonnerToast } from 'sonner';\n\nimport { cn } from '../../utils';\n\nimport { ToastRoot } from './ToastRoot';\n\ntype ToastProps = ComponentProps<typeof ToastRoot>;\ntype Title = ToastProps['title'] | ((opts: { dismiss: () => void }) => ReactNode);\n\nexport type ToastOptions = { id?: string | number; title: Title } & Omit<\n ToastProps,\n 'id' | 'title'\n> &\n Pick<\n ExternalToast,\n 'onAutoClose' | 'onDismiss' | 'testId' | 'toasterId' | 'dismissible' | 'position'\n >;\ntype DerivedToastOptions = Omit<ToastOptions, 'title' | 'variant'>;\n\nexport const toast = ({\n onAutoClose,\n onDismiss,\n testId,\n toasterId,\n dismissible = true,\n position,\n title: titleProp,\n ...toast\n}: ToastOptions) => {\n const duration = (() => {\n if (typeof toast.duration === 'number') return toast.duration;\n if (toast.variant === 'error' || toast.variant === 'warning') return Infinity;\n return toast.duration ?? 5000;\n })();\n\n const renderCustomToast: Parameters<typeof sonnerToast.custom>[0] = (id) => {\n const title =\n typeof titleProp === 'function'\n ? titleProp({ dismiss: () => sonnerToast.dismiss(id) })\n : titleProp;\n\n return <ToastRoot {...toast} id={id} title={title} duration={duration} />;\n };\n\n return sonnerToast.custom(renderCustomToast, {\n // toast generated by sonner will always have an id, but we want to allow users to specify their own id if they want to\n // can not pass undefined, as it will break dismiss\n ...(toast.id != null ? { id: toast.id } : {}),\n unstyled: true,\n position,\n onAutoClose,\n onDismiss,\n testId,\n toasterId,\n dismissible,\n duration,\n // override default focus-visible styles to match our design\n className: cn('tw:rounded-lg', 'tw:focus-visible:!ring-4', 'tw:focus-visible:!ring-ring/50'),\n });\n};\n\ntoast.success = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'success',\n });\n\ntoast.error = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'error',\n duration: options?.duration ?? Infinity,\n });\n\ntoast.warning = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'warning',\n duration: options?.duration ?? Infinity,\n });\n\ntoast.info = (title: Title, options?: DerivedToastOptions) =>\n toast({\n ...options,\n title,\n variant: 'info',\n });\n\ntoast.dismiss = (toastId?: ToastOptions['id']) => sonnerToast.dismiss(toastId);\ntoast.dismissAll = () => sonnerToast.dismiss();\n"]}
@@ -0,0 +1,409 @@
1
+ import { cn } from './chunk-LXLIQ2D6.js';
2
+ import { useState } from 'react';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+ import { diffLines, diffWords } from 'diff';
6
+
7
+ var variants = cva(["tw:p-0.5", "tw:text-inherit", "tw:inline-flex"], {
8
+ variants: {
9
+ diff: {
10
+ added: ["tw:bg-green-200", "tw:[[data-theme=dark]_&]:bg-green-500/40"],
11
+ removed: ["tw:bg-error-300", "tw:[[data-theme=dark]_&]:bg-error-500/40"]
12
+ }
13
+ }
14
+ });
15
+ var DiffViewMark = ({ diff, children, className, ...props }) => /* @__PURE__ */ jsx("mark", { ...props, className: cn(variants({ diff, className })), children });
16
+ var variants2 = cva(
17
+ [
18
+ // reset global styles
19
+ "tw:[&_pre]:p-0",
20
+ "tw:[&_pre]:m-0",
21
+ "tw:[&_pre]:border-none",
22
+ "tw:[&_pre]:rounded-none",
23
+ "tw:align-top",
24
+ // `bg-transparent`, not `bg-inherit`: the cell tints are translucent under
25
+ // the dark scheme, and an inherited `background-color` repaints the same
26
+ // rgba over the already-composited cell — doubling the tint.
27
+ "tw:[&_pre]:bg-transparent",
28
+ "tw:[&_pre]:text-inherit",
29
+ "tw:[&_pre]:px-2",
30
+ "tw:[&_pre]:!leading-7",
31
+ "tw:[&_pre]:text-sm",
32
+ "tw:[&_pre]:whitespace-pre-wrap"
33
+ ],
34
+ {
35
+ defaultVariants: {
36
+ variant: "default",
37
+ diff: "default"
38
+ },
39
+ variants: {
40
+ variant: {
41
+ default: [],
42
+ gutter: ["tw:w-14", "tw:text-right", "tw:whitespace-nowrap", "tw:select-none"],
43
+ code: []
44
+ },
45
+ diff: {
46
+ default: [],
47
+ added: [],
48
+ removed: []
49
+ }
50
+ },
51
+ // Added/removed rows are meaning-encoding, so they keep the fixed green /
52
+ // error ramps rather than a brand-overridable status token. Both need an
53
+ // explicit light/dark pair: the light pastel washes (`-100`/`-200`) are
54
+ // opaque, so under the dark scheme they stranded the near-white
55
+ // `foreground` on a light slab. Dark mode tints the same hue at low alpha
56
+ // over the pane surface instead, and every cell pins its own text colour —
57
+ // inheriting it left the added/removed code cells invisible in dark mode.
58
+ compoundVariants: [
59
+ {
60
+ variant: "gutter",
61
+ diff: "default",
62
+ className: ["tw:bg-muted", "tw:text-muted-foreground"]
63
+ },
64
+ {
65
+ variant: "gutter",
66
+ diff: "added",
67
+ className: [
68
+ // `green-900` (6.1:1 on `green-200`), not `green-600` — that was 2.3:1.
69
+ "tw:bg-green-200 tw:text-green-900",
70
+ "tw:[[data-theme=dark]_&]:bg-green-500/25 tw:[[data-theme=dark]_&]:text-green-300"
71
+ ]
72
+ },
73
+ {
74
+ variant: "gutter",
75
+ diff: "removed",
76
+ className: [
77
+ // `error-700` (5.4:1 on `error-200`), not `error-500` — that was 3.3:1.
78
+ "tw:bg-error-200 tw:text-error-700",
79
+ "tw:[[data-theme=dark]_&]:bg-error-500/25 tw:[[data-theme=dark]_&]:text-error-300"
80
+ ]
81
+ },
82
+ {
83
+ variant: "code",
84
+ diff: "default",
85
+ className: ["tw:bg-background", "tw:text-foreground"]
86
+ },
87
+ {
88
+ variant: "code",
89
+ diff: "added",
90
+ className: [
91
+ "tw:bg-green-100 tw:text-foreground",
92
+ "tw:[[data-theme=dark]_&]:bg-green-500/15"
93
+ ]
94
+ },
95
+ {
96
+ variant: "code",
97
+ diff: "removed",
98
+ className: [
99
+ "tw:bg-error-100 tw:text-foreground",
100
+ "tw:[[data-theme=dark]_&]:bg-error-500/15"
101
+ ]
102
+ }
103
+ ]
104
+ }
105
+ );
106
+ var DiffViewTd = ({ diff, variant = "default", children, className, ...props }) => {
107
+ const needsCodeFormatting = variant === "code" || variant === "gutter";
108
+ return /* @__PURE__ */ jsx("td", { ...props, className: cn(variants2({ variant, className, diff })), children: needsCodeFormatting ? /* @__PURE__ */ jsx("pre", { children }) : children });
109
+ };
110
+ var DiffViewTh = ({ variant = "default", children, className, ...props }) => /* @__PURE__ */ jsx(
111
+ "th",
112
+ {
113
+ ...props,
114
+ className: cn(
115
+ "tw:bg-background",
116
+ "tw:py-3",
117
+ // explicit `border-border`: v4 changed the default border color from gray-200 to
118
+ // `currentColor`, so a bare `border-b` rendered a dark divider (the th's text colour)
119
+ // instead of the light-grey header rule.
120
+ "tw:border-b",
121
+ "tw:border-border",
122
+ { "tw:w-14": variant === "gutter" },
123
+ { "tw:last:pr-8": variant === "default" },
124
+ className
125
+ ),
126
+ children
127
+ }
128
+ );
129
+ var DiffType = {
130
+ DEFAULT: "default",
131
+ ADDED: "added",
132
+ REMOVED: "removed"
133
+ };
134
+ var EXTRA_LINES = 3;
135
+ var TAIL_BLOCK = Number.POSITIVE_INFINITY;
136
+ var splitLines = (value) => {
137
+ if (value === "") return [];
138
+ return value.replace(/\n$/, "").split("\n");
139
+ };
140
+ var computeWordDiff = (oldValue, newValue) => {
141
+ const result = { left: [], right: [] };
142
+ diffWords(oldValue, newValue).forEach(({ added, removed, value }) => {
143
+ if (added) {
144
+ result.right.push({ type: DiffType.ADDED, value, lineNumber: 0 });
145
+ return;
146
+ }
147
+ if (removed) {
148
+ result.left.push({ type: DiffType.REMOVED, value, lineNumber: 0 });
149
+ return;
150
+ }
151
+ const unchanged = { type: DiffType.DEFAULT, value, lineNumber: 0 };
152
+ result.right.push(unchanged);
153
+ result.left.push(unchanged);
154
+ });
155
+ return result;
156
+ };
157
+ var findPairedAddedLine = (diffArray, blockIndex, lineIndex) => {
158
+ const nextBlock = diffArray[blockIndex + 1];
159
+ if (!nextBlock?.added) return null;
160
+ return splitLines(nextBlock.value)[lineIndex] ?? null;
161
+ };
162
+ var buildUnchangedLine = (value, counters) => {
163
+ counters.left += 1;
164
+ counters.right += 1;
165
+ return {
166
+ left: { type: DiffType.DEFAULT, value, lineNumber: counters.left },
167
+ right: { type: DiffType.DEFAULT, value, lineNumber: counters.right }
168
+ };
169
+ };
170
+ var buildAddedLine = (value, counters) => {
171
+ counters.right += 1;
172
+ return {
173
+ left: {},
174
+ right: { type: DiffType.ADDED, value, lineNumber: counters.right }
175
+ };
176
+ };
177
+ var buildRemovedLine = (value, counters) => {
178
+ counters.left += 1;
179
+ return {
180
+ left: { type: DiffType.REMOVED, value: value || " ", lineNumber: counters.left },
181
+ right: {}
182
+ };
183
+ };
184
+ var buildModifiedLine = (leftValue, rightValue, counters) => {
185
+ counters.left += 1;
186
+ counters.right += 1;
187
+ const displayLeft = leftValue || " ";
188
+ if (displayLeft === rightValue) {
189
+ return {
190
+ line: {
191
+ left: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.left },
192
+ right: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.right }
193
+ },
194
+ isActualChange: false
195
+ };
196
+ }
197
+ const { left, right } = computeWordDiff(leftValue, rightValue);
198
+ return {
199
+ line: {
200
+ left: { type: DiffType.REMOVED, value: left, lineNumber: counters.left },
201
+ right: { type: DiffType.ADDED, value: right, lineNumber: counters.right }
202
+ },
203
+ isActualChange: true
204
+ };
205
+ };
206
+ var computeLineInformation = (oldString, newString, ignoreWhitespace) => {
207
+ const diffArray = diffLines(oldString.trimEnd(), newString.trimEnd(), { ignoreWhitespace });
208
+ const counters = { left: 0, right: 0, global: 0 };
209
+ const lineInformation = [];
210
+ const diffLineSet = /* @__PURE__ */ new Set();
211
+ const consumedAddedLines = /* @__PURE__ */ new Set();
212
+ diffArray.forEach((block, blockIndex) => {
213
+ splitLines(block.value).forEach((value, lineIndex) => {
214
+ if (consumedAddedLines.has(`${blockIndex}-${lineIndex}`)) return;
215
+ if (block.removed) {
216
+ const paired = findPairedAddedLine(diffArray, blockIndex, lineIndex);
217
+ if (paired !== null) {
218
+ consumedAddedLines.add(`${blockIndex + 1}-${lineIndex}`);
219
+ const { line, isActualChange } = buildModifiedLine(value, paired, counters);
220
+ lineInformation.push(line);
221
+ if (isActualChange) diffLineSet.add(counters.global);
222
+ } else {
223
+ lineInformation.push(buildRemovedLine(value, counters));
224
+ diffLineSet.add(counters.global);
225
+ }
226
+ } else if (block.added) {
227
+ lineInformation.push(buildAddedLine(value, counters));
228
+ diffLineSet.add(counters.global);
229
+ } else {
230
+ lineInformation.push(buildUnchangedLine(value, counters));
231
+ }
232
+ counters.global += 1;
233
+ });
234
+ });
235
+ return {
236
+ lineInformation,
237
+ diffLines: [...diffLineSet].sort((a, b) => a - b)
238
+ };
239
+ };
240
+ var toSegments = (lineInformation, diffLineSet) => {
241
+ const segments = [];
242
+ let current = null;
243
+ lineInformation.forEach((line, index) => {
244
+ const isChange = diffLineSet.has(index);
245
+ if (current === null || current.kind === "change" !== isChange) {
246
+ current = isChange ? { kind: "change", lines: [line], firstIndex: index } : { kind: "context", lines: [line], firstIndex: index };
247
+ segments.push(current);
248
+ } else {
249
+ current.lines.push(line);
250
+ }
251
+ });
252
+ return segments;
253
+ };
254
+ var normalizeSide = (side) => {
255
+ const raw = Array.isArray(side.value) ? side.value : [{ value: side.value, type: DiffType.DEFAULT, lineNumber: 0 }];
256
+ return {
257
+ type: side.type,
258
+ lineNumber: side.lineNumber,
259
+ words: raw.filter((w) => typeof w.value === "string")
260
+ };
261
+ };
262
+ var renderLineRow = (line) => ({
263
+ kind: "line",
264
+ left: normalizeSide(line.left),
265
+ right: normalizeSide(line.right),
266
+ key: `${line.left.lineNumber}-${line.right.lineNumber}`
267
+ });
268
+ var renderContextSegment = (segment, nextChangeIndex, hasPrevChange, hasNextChange, expanded) => {
269
+ if (expanded.has(nextChangeIndex)) {
270
+ return segment.lines.map(renderLineRow);
271
+ }
272
+ const total = segment.lines.length;
273
+ const trail = hasPrevChange ? Math.min(EXTRA_LINES, total) : 0;
274
+ let lead = hasNextChange ? Math.min(EXTRA_LINES, total - trail) : 0;
275
+ let foldCount = total - trail - lead;
276
+ if (!hasNextChange && foldCount === 1) {
277
+ foldCount = 0;
278
+ lead = 1;
279
+ }
280
+ const rows = [];
281
+ if (trail > 0) {
282
+ rows.push(...segment.lines.slice(0, trail).map(renderLineRow));
283
+ }
284
+ if (foldCount > 0) {
285
+ rows.push({
286
+ kind: "fold",
287
+ blockStart: nextChangeIndex,
288
+ lineCount: foldCount,
289
+ key: hasNextChange ? `fold-${nextChangeIndex}` : `fold-tail-${segment.firstIndex + total - 1}`
290
+ });
291
+ }
292
+ if (lead > 0) {
293
+ rows.push(...segment.lines.slice(trail + foldCount).map(renderLineRow));
294
+ }
295
+ return rows;
296
+ };
297
+ var computeDiffRows = (lineInformation, diffLines2, expandedBlocks) => {
298
+ const diffLineSet = new Set(diffLines2);
299
+ const expanded = new Set(expandedBlocks);
300
+ const segments = toSegments(lineInformation, diffLineSet);
301
+ const rows = [];
302
+ let hasPrevChange = false;
303
+ segments.forEach((segment, i) => {
304
+ if (segment.kind === "change") {
305
+ rows.push(...segment.lines.map(renderLineRow));
306
+ hasPrevChange = true;
307
+ return;
308
+ }
309
+ const nextChange = segments.slice(i + 1).find((s) => s.kind === "change");
310
+ const nextStart = nextChange?.firstIndex ?? TAIL_BLOCK;
311
+ rows.push(...renderContextSegment(segment, nextStart, hasPrevChange, !!nextChange, expanded));
312
+ });
313
+ return rows;
314
+ };
315
+ var DiffView = ({
316
+ leftTitle,
317
+ leftTitleGutter,
318
+ rightTitle,
319
+ rightTitleGutter,
320
+ oldValue,
321
+ newValue,
322
+ ignoreWhitespace,
323
+ className
324
+ }) => {
325
+ const [expandedBlocks, setExpandedBlocks] = useState([]);
326
+ const { lineInformation, diffLines: diffLines2 } = computeLineInformation(
327
+ oldValue,
328
+ newValue,
329
+ ignoreWhitespace
330
+ );
331
+ const rows = computeDiffRows(lineInformation, diffLines2, expandedBlocks);
332
+ const handleExpand = (blockNumber) => {
333
+ setExpandedBlocks((curr) => [...curr, blockNumber]);
334
+ };
335
+ return /* @__PURE__ */ jsx(
336
+ "div",
337
+ {
338
+ className: cn(
339
+ "tailwindcss-preflight",
340
+ "tw:bg-muted",
341
+ // Pin the text colour rather than inheriting it: the diff is routinely
342
+ // portalled into a Modal, where an inherited colour comes from whatever
343
+ // sits above the portal root instead of this surface.
344
+ "tw:text-foreground",
345
+ // explicit `border-border` — v4's default border colour is `currentColor`, so a bare
346
+ // `border` drew a dark frame instead of the light-grey outline.
347
+ "tw:border",
348
+ "tw:border-border",
349
+ "tw:rounded-2xl",
350
+ "tw:overflow-auto",
351
+ className
352
+ ),
353
+ children: /* @__PURE__ */ jsxs("table", { className: "tw:w-full tw:table-fixed tw:bg-background", children: [
354
+ /* @__PURE__ */ jsx("thead", { className: "tw:sticky tw:top-0 tw:z-10 tw:shadow-sm", children: /* @__PURE__ */ jsxs("tr", { children: [
355
+ /* @__PURE__ */ jsx(DiffViewTh, { variant: "gutter", children: leftTitleGutter }),
356
+ /* @__PURE__ */ jsx(DiffViewTh, { children: leftTitle }),
357
+ /* @__PURE__ */ jsx(DiffViewTh, { variant: "gutter", children: rightTitleGutter }),
358
+ /* @__PURE__ */ jsx(DiffViewTh, { children: rightTitle })
359
+ ] }) }),
360
+ /* @__PURE__ */ jsx("tbody", { children: rows.map((row) => {
361
+ if (row.kind === "fold")
362
+ return /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(DiffViewTd, { colSpan: 4, children: /* @__PURE__ */ jsxs(
363
+ "button",
364
+ {
365
+ type: "button",
366
+ onClick: () => handleExpand(row.blockStart),
367
+ className: cn(
368
+ "tw:w-full",
369
+ "tw:text-center",
370
+ "tw:bg-muted",
371
+ "tw:text-foreground",
372
+ "tw:hover:bg-accent",
373
+ "tw:underline",
374
+ "tw:p-2"
375
+ ),
376
+ children: [
377
+ "Expand ",
378
+ row.lineCount,
379
+ " lines ..."
380
+ ]
381
+ }
382
+ ) }) }, row.key);
383
+ return /* @__PURE__ */ jsxs("tr", { children: [
384
+ /* @__PURE__ */ jsx(DiffViewTd, { variant: "gutter", diff: row.left.type, children: row.left.lineNumber }),
385
+ /* @__PURE__ */ jsx(DiffViewTd, { variant: "code", diff: row.left.type, children: row.left.words.map((val, index) => {
386
+ if (val.type === "default") return val.value;
387
+ return (
388
+ // oxlint-disable-next-line react/no-array-index-key
389
+ /* @__PURE__ */ jsx(DiffViewMark, { diff: val.type, children: val.value }, `${val.value}-${val.type}-${index}`)
390
+ );
391
+ }) }),
392
+ /* @__PURE__ */ jsx(DiffViewTd, { variant: "gutter", diff: row.right.type, children: row.right.lineNumber }),
393
+ /* @__PURE__ */ jsx(DiffViewTd, { variant: "code", diff: row.right.type, children: row.right.words.map((val, index) => {
394
+ if (val.type === "default") return val.value;
395
+ return (
396
+ // oxlint-disable-next-line react/no-array-index-key
397
+ /* @__PURE__ */ jsx(DiffViewMark, { diff: val.type, children: val.value }, `${val.value}-${val.type}-${index}`)
398
+ );
399
+ }) })
400
+ ] }, row.key);
401
+ }) })
402
+ ] })
403
+ }
404
+ );
405
+ };
406
+
407
+ export { DiffType, DiffView, computeDiffRows, computeLineInformation };
408
+ //# sourceMappingURL=chunk-72BKRCEG.js.map
409
+ //# sourceMappingURL=chunk-72BKRCEG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/DiffView/DiffViewMark.tsx","../src/components/DiffView/DiffViewTd.tsx","../src/components/DiffView/DiffViewTh.tsx","../src/components/DiffView/util.ts","../src/components/DiffView/DiffView.tsx"],"names":["variants","cva","jsx","diffLines"],"mappings":"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","file":"chunk-72BKRCEG.js","sourcesContent":["import type { ComponentProps } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\n// `text-inherit` overrides the UA `mark` colour so the word highlight takes the\n// cell's text colour. That only works if the fill flips with the scheme too —\n// the light pastels are opaque, so under dark they put near-white text on a\n// light slab. Dark mode tints the same hue at a stronger alpha than the line\n// fill behind it, keeping the word-level mark the more prominent of the two.\nconst variants = cva(['tw:p-0.5', 'tw:text-inherit', 'tw:inline-flex'], {\n variants: {\n diff: {\n added: ['tw:bg-green-200', 'tw:[[data-theme=dark]_&]:bg-green-500/40'],\n removed: ['tw:bg-error-300', 'tw:[[data-theme=dark]_&]:bg-error-500/40'],\n },\n },\n});\n\ntype Props = ComponentProps<'span'> & VariantProps<typeof variants>;\n\nexport const DiffViewMark = ({ diff, children, className, ...props }: Props) => (\n <mark {...props} className={cn(variants({ diff, className }))}>\n {children}\n </mark>\n);\n","import type { ComponentProps } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\nconst variants = cva(\n [\n // reset global styles\n 'tw:[&_pre]:p-0',\n 'tw:[&_pre]:m-0',\n 'tw:[&_pre]:border-none',\n 'tw:[&_pre]:rounded-none',\n\n 'tw:align-top',\n // `bg-transparent`, not `bg-inherit`: the cell tints are translucent under\n // the dark scheme, and an inherited `background-color` repaints the same\n // rgba over the already-composited cell — doubling the tint.\n 'tw:[&_pre]:bg-transparent',\n 'tw:[&_pre]:text-inherit',\n 'tw:[&_pre]:px-2',\n 'tw:[&_pre]:!leading-7',\n 'tw:[&_pre]:text-sm',\n 'tw:[&_pre]:whitespace-pre-wrap',\n ],\n {\n defaultVariants: {\n variant: 'default',\n diff: 'default',\n },\n variants: {\n variant: {\n default: [],\n gutter: ['tw:w-14', 'tw:text-right', 'tw:whitespace-nowrap', 'tw:select-none'],\n code: [],\n },\n diff: {\n default: [],\n added: [],\n removed: [],\n },\n },\n // Added/removed rows are meaning-encoding, so they keep the fixed green /\n // error ramps rather than a brand-overridable status token. Both need an\n // explicit light/dark pair: the light pastel washes (`-100`/`-200`) are\n // opaque, so under the dark scheme they stranded the near-white\n // `foreground` on a light slab. Dark mode tints the same hue at low alpha\n // over the pane surface instead, and every cell pins its own text colour —\n // inheriting it left the added/removed code cells invisible in dark mode.\n compoundVariants: [\n {\n variant: 'gutter',\n diff: 'default',\n className: ['tw:bg-muted', 'tw:text-muted-foreground'],\n },\n {\n variant: 'gutter',\n diff: 'added',\n className: [\n // `green-900` (6.1:1 on `green-200`), not `green-600` — that was 2.3:1.\n 'tw:bg-green-200 tw:text-green-900',\n 'tw:[[data-theme=dark]_&]:bg-green-500/25 tw:[[data-theme=dark]_&]:text-green-300',\n ],\n },\n {\n variant: 'gutter',\n diff: 'removed',\n className: [\n // `error-700` (5.4:1 on `error-200`), not `error-500` — that was 3.3:1.\n 'tw:bg-error-200 tw:text-error-700',\n 'tw:[[data-theme=dark]_&]:bg-error-500/25 tw:[[data-theme=dark]_&]:text-error-300',\n ],\n },\n {\n variant: 'code',\n diff: 'default',\n className: ['tw:bg-background', 'tw:text-foreground'],\n },\n {\n variant: 'code',\n diff: 'added',\n className: [\n 'tw:bg-green-100 tw:text-foreground',\n 'tw:[[data-theme=dark]_&]:bg-green-500/15',\n ],\n },\n {\n variant: 'code',\n diff: 'removed',\n className: [\n 'tw:bg-error-100 tw:text-foreground',\n 'tw:[[data-theme=dark]_&]:bg-error-500/15',\n ],\n },\n ],\n },\n);\n\ntype Props = ComponentProps<'td'> & VariantProps<typeof variants>;\n\nexport const DiffViewTd = ({ diff, variant = 'default', children, className, ...props }: Props) => {\n const needsCodeFormatting = variant === 'code' || variant === 'gutter';\n\n return (\n <td {...props} className={cn(variants({ variant, className, diff }))}>\n {needsCodeFormatting ? <pre>{children}</pre> : children}\n </td>\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'th'> & {\n variant?: 'default' | 'gutter';\n};\n\nexport const DiffViewTh = ({ variant = 'default', children, className, ...props }: Props) => (\n <th\n {...props}\n className={cn(\n 'tw:bg-background',\n 'tw:py-3',\n // explicit `border-border`: v4 changed the default border color from gray-200 to\n // `currentColor`, so a bare `border-b` rendered a dark divider (the th's text colour)\n // instead of the light-grey header rule.\n 'tw:border-b',\n 'tw:border-border',\n { 'tw:w-14': variant === 'gutter' },\n { 'tw:last:pr-8': variant === 'default' },\n className,\n )}\n >\n {children}\n </th>\n);\n","import { diffLines, diffWords } from 'diff';\n\nexport const DiffType = {\n DEFAULT: 'default',\n ADDED: 'added',\n REMOVED: 'removed',\n} as const;\n\ntype DiffTypeValue = (typeof DiffType)[keyof typeof DiffType];\n\nexport type DiffInformation = {\n value: string | DiffInformation[];\n lineNumber: number;\n type: DiffTypeValue;\n};\n\nexport type LineInformation = {\n left: DiffInformation;\n right: DiffInformation;\n};\n\ntype ComputedLineInformation = {\n lineInformation: LineInformation[];\n diffLines: number[];\n};\n\ntype SidedDiffInformation = {\n left: DiffInformation[];\n right: DiffInformation[];\n};\n\nexport type WordInformation = {\n value: string;\n type: DiffTypeValue;\n lineNumber: number;\n};\n\nexport type SideInformation = {\n type: DiffTypeValue;\n lineNumber: number;\n words: WordInformation[];\n};\n\nexport type DiffRow =\n | { kind: 'fold'; blockStart: number; lineCount: number; key: string }\n | { kind: 'line'; left: SideInformation; right: SideInformation; key: string };\n\nconst EXTRA_LINES = 3;\n\n// Sentinel blockStart for the region after the last diff; keeps distance checks\n// inert and lets `expandedBlocks` key on a real value.\nconst TAIL_BLOCK = Number.POSITIVE_INFINITY;\n\ntype Counters = {\n left: number;\n right: number;\n global: number;\n};\n\ntype DiffChunk = ReturnType<typeof diffLines>[number];\n\nconst splitLines = (value: string): string[] => {\n if (value === '') return [];\n return value.replace(/\\n$/, '').split('\\n');\n};\n\nconst computeWordDiff = (oldValue: string, newValue: string): SidedDiffInformation => {\n const result: SidedDiffInformation = { left: [], right: [] };\n\n diffWords(oldValue, newValue).forEach(({ added, removed, value }) => {\n if (added) {\n result.right.push({ type: DiffType.ADDED, value, lineNumber: 0 });\n return;\n }\n if (removed) {\n result.left.push({ type: DiffType.REMOVED, value, lineNumber: 0 });\n return;\n }\n const unchanged: DiffInformation = { type: DiffType.DEFAULT, value, lineNumber: 0 };\n result.right.push(unchanged);\n result.left.push(unchanged);\n });\n\n return result;\n};\n\n// Look ahead one chunk in the diff array and return the paired added-line string,\n// or null if there isn't one at the same lineIndex position.\nconst findPairedAddedLine = (\n diffArray: DiffChunk[],\n blockIndex: number,\n lineIndex: number,\n): string | null => {\n const nextBlock = diffArray[blockIndex + 1];\n if (!nextBlock?.added) return null;\n return splitLines(nextBlock.value)[lineIndex] ?? null;\n};\n\nconst buildUnchangedLine = (value: string, counters: Counters): LineInformation => {\n counters.left += 1;\n counters.right += 1;\n return {\n left: { type: DiffType.DEFAULT, value, lineNumber: counters.left },\n right: { type: DiffType.DEFAULT, value, lineNumber: counters.right },\n };\n};\n\nconst buildAddedLine = (value: string, counters: Counters): LineInformation => {\n counters.right += 1;\n return {\n left: {} as DiffInformation,\n right: { type: DiffType.ADDED, value, lineNumber: counters.right },\n };\n};\n\nconst buildRemovedLine = (value: string, counters: Counters): LineInformation => {\n counters.left += 1;\n return {\n left: { type: DiffType.REMOVED, value: value || ' ', lineNumber: counters.left },\n right: {} as DiffInformation,\n };\n};\n\n// Removed + paired added → one modification row with word-level diff.\n// Returns `isActualChange: false` for the quirky case where the two sides\n// resolve to the same string; the caller then omits it from diffLines.\nconst buildModifiedLine = (\n leftValue: string,\n rightValue: string,\n counters: Counters,\n): { line: LineInformation; isActualChange: boolean } => {\n counters.left += 1;\n counters.right += 1;\n const displayLeft = leftValue || ' ';\n\n if (displayLeft === rightValue) {\n return {\n line: {\n left: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.left },\n right: { type: DiffType.DEFAULT, value: rightValue, lineNumber: counters.right },\n },\n isActualChange: false,\n };\n }\n\n const { left, right } = computeWordDiff(leftValue, rightValue);\n return {\n line: {\n left: { type: DiffType.REMOVED, value: left, lineNumber: counters.left },\n right: { type: DiffType.ADDED, value: right, lineNumber: counters.right },\n },\n isActualChange: true,\n };\n};\n\nexport const computeLineInformation = (\n oldString: string,\n newString: string,\n ignoreWhitespace?: boolean,\n): ComputedLineInformation => {\n const diffArray = diffLines(oldString.trimEnd(), newString.trimEnd(), { ignoreWhitespace });\n const counters: Counters = { left: 0, right: 0, global: 0 };\n const lineInformation: LineInformation[] = [];\n const diffLineSet = new Set<number>();\n const consumedAddedLines = new Set<string>();\n\n diffArray.forEach((block, blockIndex) => {\n splitLines(block.value).forEach((value, lineIndex) => {\n if (consumedAddedLines.has(`${blockIndex}-${lineIndex}`)) return;\n\n if (block.removed) {\n const paired = findPairedAddedLine(diffArray, blockIndex, lineIndex);\n if (paired !== null) {\n consumedAddedLines.add(`${blockIndex + 1}-${lineIndex}`);\n const { line, isActualChange } = buildModifiedLine(value, paired, counters);\n lineInformation.push(line);\n if (isActualChange) diffLineSet.add(counters.global);\n } else {\n lineInformation.push(buildRemovedLine(value, counters));\n diffLineSet.add(counters.global);\n }\n } else if (block.added) {\n lineInformation.push(buildAddedLine(value, counters));\n diffLineSet.add(counters.global);\n } else {\n lineInformation.push(buildUnchangedLine(value, counters));\n }\n\n counters.global += 1;\n });\n });\n\n return {\n lineInformation,\n diffLines: [...diffLineSet].sort((a, b) => a - b),\n };\n};\n\ntype ContextSegment = { kind: 'context'; lines: LineInformation[]; firstIndex: number };\ntype ChangeSegment = { kind: 'change'; lines: LineInformation[]; firstIndex: number };\ntype Segment = ContextSegment | ChangeSegment;\n\nconst toSegments = (\n lineInformation: LineInformation[],\n diffLineSet: ReadonlySet<number>,\n): Segment[] => {\n const segments: Segment[] = [];\n let current: Segment | null = null;\n\n lineInformation.forEach((line, index) => {\n const isChange = diffLineSet.has(index);\n if (current === null || (current.kind === 'change') !== isChange) {\n current = isChange\n ? { kind: 'change', lines: [line], firstIndex: index }\n : { kind: 'context', lines: [line], firstIndex: index };\n segments.push(current);\n } else {\n current.lines.push(line);\n }\n });\n\n return segments;\n};\n\nconst normalizeSide = (side: DiffInformation): SideInformation => {\n const raw = Array.isArray(side.value)\n ? side.value\n : [{ value: side.value, type: DiffType.DEFAULT, lineNumber: 0 }];\n\n return {\n type: side.type,\n lineNumber: side.lineNumber,\n words: raw.filter((w): w is WordInformation => typeof w.value === 'string'),\n };\n};\n\nconst renderLineRow = (line: LineInformation): DiffRow => ({\n kind: 'line',\n left: normalizeSide(line.left),\n right: normalizeSide(line.right),\n key: `${line.left.lineNumber}-${line.right.lineNumber}`,\n});\n\nconst renderContextSegment = (\n segment: ContextSegment,\n nextChangeIndex: number,\n hasPrevChange: boolean,\n hasNextChange: boolean,\n expanded: ReadonlySet<number>,\n): DiffRow[] => {\n if (expanded.has(nextChangeIndex)) {\n return segment.lines.map(renderLineRow);\n }\n\n const total = segment.lines.length;\n const trail = hasPrevChange ? Math.min(EXTRA_LINES, total) : 0;\n let lead = hasNextChange ? Math.min(EXTRA_LINES, total - trail) : 0;\n let foldCount = total - trail - lead;\n\n // Quirk from the original: a single trailing unchanged line is always rendered\n // (no one-line fold at the tail). Absorb it into the lead slice.\n if (!hasNextChange && foldCount === 1) {\n foldCount = 0;\n lead = 1;\n }\n\n const rows: DiffRow[] = [];\n if (trail > 0) {\n rows.push(...segment.lines.slice(0, trail).map(renderLineRow));\n }\n if (foldCount > 0) {\n rows.push({\n kind: 'fold',\n blockStart: nextChangeIndex,\n lineCount: foldCount,\n key: hasNextChange\n ? `fold-${nextChangeIndex}`\n : `fold-tail-${segment.firstIndex + total - 1}`,\n });\n }\n if (lead > 0) {\n rows.push(...segment.lines.slice(trail + foldCount).map(renderLineRow));\n }\n return rows;\n};\n\nexport const computeDiffRows = (\n lineInformation: LineInformation[],\n diffLines: number[],\n expandedBlocks: number[],\n): DiffRow[] => {\n const diffLineSet = new Set(diffLines);\n const expanded = new Set(expandedBlocks);\n const segments = toSegments(lineInformation, diffLineSet);\n\n const rows: DiffRow[] = [];\n let hasPrevChange = false;\n\n segments.forEach((segment, i) => {\n if (segment.kind === 'change') {\n rows.push(...segment.lines.map(renderLineRow));\n hasPrevChange = true;\n return;\n }\n const nextChange = segments.slice(i + 1).find((s) => s.kind === 'change');\n const nextStart = nextChange?.firstIndex ?? TAIL_BLOCK;\n rows.push(...renderContextSegment(segment, nextStart, hasPrevChange, !!nextChange, expanded));\n });\n\n return rows;\n};\n","import { useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '../../utils';\n\nimport { DiffViewMark } from './DiffViewMark';\nimport { DiffViewTd } from './DiffViewTd';\nimport { DiffViewTh } from './DiffViewTh';\nimport { computeDiffRows, computeLineInformation } from './util';\n\ntype Props = {\n oldValue: string;\n newValue: string;\n ignoreWhitespace?: boolean;\n className?: string;\n\n leftTitleGutter?: ReactNode;\n leftTitle: ReactNode;\n rightTitle: ReactNode;\n rightTitleGutter?: ReactNode;\n};\n\nexport const DiffView = ({\n leftTitle,\n leftTitleGutter,\n rightTitle,\n rightTitleGutter,\n oldValue,\n newValue,\n ignoreWhitespace,\n className,\n}: Props) => {\n const [expandedBlocks, setExpandedBlocks] = useState<number[]>([]);\n const { lineInformation, diffLines } = computeLineInformation(\n oldValue,\n newValue,\n ignoreWhitespace,\n );\n const rows = computeDiffRows(lineInformation, diffLines, expandedBlocks);\n\n const handleExpand = (blockNumber: number) => {\n setExpandedBlocks((curr) => [...curr, blockNumber]);\n };\n\n return (\n <div\n className={cn(\n 'tailwindcss-preflight',\n 'tw:bg-muted',\n // Pin the text colour rather than inheriting it: the diff is routinely\n // portalled into a Modal, where an inherited colour comes from whatever\n // sits above the portal root instead of this surface.\n 'tw:text-foreground',\n // explicit `border-border` — v4's default border colour is `currentColor`, so a bare\n // `border` drew a dark frame instead of the light-grey outline.\n 'tw:border',\n 'tw:border-border',\n 'tw:rounded-2xl',\n 'tw:overflow-auto',\n className,\n )}\n >\n <table className=\"tw:w-full tw:table-fixed tw:bg-background\">\n {/* Not v4's `shadow-xs`: `tailwind-config`'s `boxShadow.sm` fallback still carries\n the v3 value, and only `shadow-sm` reads `--shadow-sm` from a brand's\n `theme.shadows` — `shadow-xs` has no token and would opt this header out. */}\n <thead className=\"tw:sticky tw:top-0 tw:z-10 tw:shadow-sm\">\n <tr>\n <DiffViewTh variant=\"gutter\">{leftTitleGutter}</DiffViewTh>\n <DiffViewTh>{leftTitle}</DiffViewTh>\n <DiffViewTh variant=\"gutter\">{rightTitleGutter}</DiffViewTh>\n <DiffViewTh>{rightTitle}</DiffViewTh>\n </tr>\n </thead>\n\n <tbody>\n {rows.map((row) => {\n if (row.kind === 'fold')\n return (\n <tr key={row.key}>\n <DiffViewTd colSpan={4}>\n <button\n type=\"button\"\n onClick={() => handleExpand(row.blockStart)}\n className={cn(\n 'tw:w-full',\n 'tw:text-center',\n 'tw:bg-muted',\n 'tw:text-foreground',\n 'tw:hover:bg-accent',\n 'tw:underline',\n 'tw:p-2',\n )}\n >\n Expand {row.lineCount} lines ...\n </button>\n </DiffViewTd>\n </tr>\n );\n\n return (\n <tr key={row.key}>\n <DiffViewTd variant=\"gutter\" diff={row.left.type}>\n {row.left.lineNumber}\n </DiffViewTd>\n\n <DiffViewTd variant=\"code\" diff={row.left.type}>\n {row.left.words.map((val, index) => {\n if (val.type === 'default') return val.value;\n return (\n // oxlint-disable-next-line react/no-array-index-key\n <DiffViewMark key={`${val.value}-${val.type}-${index}`} diff={val.type}>\n {val.value}\n </DiffViewMark>\n );\n })}\n </DiffViewTd>\n\n <DiffViewTd variant=\"gutter\" diff={row.right.type}>\n {row.right.lineNumber}\n </DiffViewTd>\n\n <DiffViewTd variant=\"code\" diff={row.right.type}>\n {row.right.words.map((val, index) => {\n if (val.type === 'default') return val.value;\n\n return (\n // oxlint-disable-next-line react/no-array-index-key\n <DiffViewMark key={`${val.value}-${val.type}-${index}`} diff={val.type}>\n {val.value}\n </DiffViewMark>\n );\n })}\n </DiffViewTd>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n};\n"]}
@@ -1,22 +1,30 @@
1
- import { cn } from './chunk-JP7PNHLH.js';
2
- import { cva } from 'class-variance-authority';
3
- import { useRef, useLayoutEffect, useCallback, Children, Fragment } from 'react';
1
+ import { isMac } from './chunk-SWQFYNYG.js';
2
+ import { cn } from './chunk-LXLIQ2D6.js';
3
+ import { Children, Fragment } from 'react';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
5
+ import { cva } from 'class-variance-authority';
5
6
 
6
- // src/utils/isMac.ts
7
- var getIsMac = () => {
8
- if (typeof navigator !== "undefined" && "userAgentData" in navigator) {
9
- const platform = navigator.userAgentData.platform;
10
- if (typeof platform === "string") {
11
- return platform.toLowerCase() === "macos";
7
+ var KbdSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, className: cn("tw:text-xs tw:text-muted-foreground", className) });
8
+ var KbdGroup = ({ ref, className, children, separator, ...props }) => {
9
+ return /* @__PURE__ */ jsx(
10
+ "kbd",
11
+ {
12
+ ...props,
13
+ ref,
14
+ className: cn("tw:inline-flex", "tw:items-center", "tw:gap-1", className),
15
+ children: separator ? (
16
+ // oxlint-disable-next-line react-x/no-children-to-array
17
+ Children.toArray(children).map((child, index) => (
18
+ // oxlint-disable-next-line
19
+ /* @__PURE__ */ jsxs(Fragment, { children: [
20
+ index > 0 && /* @__PURE__ */ jsx(KbdSeparator, { children: separator }),
21
+ child
22
+ ] }, index)
23
+ ))
24
+ ) : children
12
25
  }
13
- }
14
- if (typeof navigator !== "undefined" && typeof navigator.platform === "string") {
15
- return navigator.platform.toUpperCase().indexOf("MAC") >= 0;
16
- }
17
- return false;
26
+ );
18
27
  };
19
- var isMac = getIsMac();
20
28
  var kbdVariants = cva(
21
29
  [
22
30
  "tailwindcss-preflight",
@@ -50,41 +58,38 @@ var kbdVariants = cva(
50
58
  }
51
59
  }
52
60
  );
53
-
54
- // src/utils/escapeStringRegexp.ts
55
- var escapeStringRegexp = (string) => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
56
- var KbdSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { ...props, className: cn("tw:text-xs tw:text-muted-foreground", className) });
57
- var KbdGroup = ({ ref, className, children, separator, ...props }) => {
58
- return /* @__PURE__ */ jsx(
59
- "kbd",
60
- {
61
- ...props,
62
- ref,
63
- className: cn("tw:inline-flex", "tw:items-center", "tw:gap-1", className),
64
- children: separator ? (
65
- // oxlint-disable-next-line react-x/no-children-to-array
66
- Children.toArray(children).map((child, index) => (
67
- // oxlint-disable-next-line
68
- /* @__PURE__ */ jsxs(Fragment, { children: [
69
- index > 0 && /* @__PURE__ */ jsx(KbdSeparator, { children: separator }),
70
- child
71
- ] }, index)
72
- ))
73
- ) : children
74
- }
75
- );
76
- };
77
61
  var Kbd = ({ children, className, variant, ...rest }) => /* @__PURE__ */ jsx("kbd", { ...rest, className: kbdVariants({ className, variant }), children });
78
62
  Kbd.Group = KbdGroup;
79
63
  Kbd.Separator = KbdSeparator;
80
- var useStableCallback = (callback) => {
81
- const latestRef = useRef(callback);
82
- useLayoutEffect(() => {
83
- latestRef.current = callback;
84
- }, [callback]);
85
- return useCallback((...args) => latestRef.current(...args), []);
64
+
65
+ // src/components/Kbd/keyboardKeys.ts
66
+ var KEY_DEFINITIONS = {
67
+ mod: {
68
+ mac: { symbol: "\u2318", text: "Command" },
69
+ windows: { symbol: "Ctrl", text: "Ctrl" }
70
+ },
71
+ option: {
72
+ mac: { symbol: "\u2325", text: "Option" },
73
+ windows: { symbol: "Alt", text: "Alt" }
74
+ },
75
+ shift: {
76
+ mac: { symbol: "\u21E7", text: "Shift" },
77
+ windows: { symbol: "\u21E7", text: "Shift" }
78
+ },
79
+ enter: {
80
+ mac: { symbol: "\u23CE", text: "Enter" },
81
+ windows: { symbol: "\u23CE", text: "Enter" }
82
+ }
83
+ };
84
+ var createKeyboardKeys = () => {
85
+ const keysObj = {};
86
+ for (const keyName of Object.keys(KEY_DEFINITIONS)) {
87
+ keysObj[keyName] = KEY_DEFINITIONS[keyName][isMac ? "mac" : "windows"];
88
+ }
89
+ return keysObj;
86
90
  };
91
+ var keys = createKeyboardKeys();
87
92
 
88
- export { Kbd, escapeStringRegexp, isMac, kbdVariants, useStableCallback };
89
- //# sourceMappingURL=chunk-Q7NWXLCT.js.map
90
- //# sourceMappingURL=chunk-Q7NWXLCT.js.map
93
+ export { Kbd, kbdVariants, keys };
94
+ //# sourceMappingURL=chunk-7GTI3PPI.js.map
95
+ //# sourceMappingURL=chunk-7GTI3PPI.js.map