@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
@@ -1,251 +1,7 @@
1
- import { InputGroup, useControllableState, mergeRefs, createChangeInputEvent, ScrollArea } from './chunk-SYIEF644.js';
2
- import { Button } from './chunk-CTCFYWJC.js';
3
- import { Check, Minus, X, ChevronDown, Plus, Calendar, ArrowBigUpDash, EyeOff, Eye, Circle, CircleCheck, AlertTriangle, Info } from './chunk-BOHNXTMM.js';
4
- import { useArgoDesign, Tooltip, keyCodes } from './chunk-63NSN2VL.js';
5
- import { __export, cn } from './chunk-JP7PNHLH.js';
6
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
- import * as RSeparator from '@radix-ui/react-separator';
8
- import { cva } from 'class-variance-authority';
9
- import { Root, Trigger, Close, Portal, Content } from '@radix-ui/react-popover';
10
- import React26, { createContext, useCallback, useContext, useId, useRef, useState, useEffect, useMemo, useLayoutEffect, use } from 'react';
11
- import * as RRadioGroup from '@radix-ui/react-radio-group';
12
- import { Item, Indicator as Indicator$1 } from '@radix-ui/react-radio-group';
13
- import { Root as Root$1, Indicator } from '@radix-ui/react-checkbox';
14
- import { Slot } from '@radix-ui/react-slot';
15
- import { Combobox as Combobox$1 } from '@base-ui/react/combobox';
16
- import { useVirtualizer } from '@tanstack/react-virtual';
17
- import { Root as Root$2, CollapsibleTrigger, Content as Content$1 } from '@radix-ui/react-collapsible';
18
- import * as RadixTabs from '@radix-ui/react-tabs';
19
-
20
- // src/utils/debounce.ts
21
- var debounce = (fn, delay) => {
22
- let timeoutId;
23
- const debounced = (...args) => {
24
- clearTimeout(timeoutId);
25
- timeoutId = setTimeout(() => fn(...args), delay);
26
- };
27
- debounced.cancel = () => clearTimeout(timeoutId);
28
- return debounced;
29
- };
30
- var Link = ({
31
- ref,
32
- children,
33
- target = "_blank",
34
- rel = "noopener noreferrer",
35
- onClick,
36
- className,
37
- ...rest
38
- }) => {
39
- const handleOnClick = (event) => {
40
- event.stopPropagation();
41
- onClick?.(event);
42
- };
43
- return (
44
- // oxlint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
45
- /* @__PURE__ */ jsx(
46
- "a",
47
- {
48
- ...rest,
49
- ref,
50
- target,
51
- rel,
52
- onClick: handleOnClick,
53
- className: cn(
54
- "tw:text-primary tw:underline tw:hover:text-primary/90 tw:hover:no-underline",
55
- className
56
- ),
57
- children
58
- }
59
- )
60
- );
61
- };
62
- var separatorVariants = cva(
63
- [
64
- // position
65
- "tw:flex",
66
- "tw:items-center",
67
- "tw:justify-center",
68
- "tw:self-stretch",
69
- // before
70
- "tw:before:content-['']",
71
- "tw:before:bg-border"
72
- ],
73
- {
74
- defaultVariants: {
75
- orientation: "vertical",
76
- size: "full"
77
- },
78
- compoundVariants: [
79
- {
80
- orientation: "horizontal",
81
- size: "full",
82
- className: ["tw:before:w-full"]
83
- },
84
- {
85
- orientation: "horizontal",
86
- size: "1/2",
87
- className: ["tw:before:w-1/2"]
88
- },
89
- {
90
- orientation: "horizontal",
91
- size: "3/4",
92
- className: ["tw:before:w-3/4"]
93
- },
94
- {
95
- orientation: "vertical",
96
- size: "full",
97
- className: ["tw:before:h-full"]
98
- },
99
- {
100
- orientation: "vertical",
101
- size: "1/2",
102
- className: ["tw:before:h-1/2"]
103
- },
104
- {
105
- orientation: "vertical",
106
- size: "3/4",
107
- className: ["tw:before:h-3/4"]
108
- }
109
- ],
110
- variants: {
111
- size: {
112
- full: ["tw:before:h-full"],
113
- "1/2": [],
114
- "3/4": []
115
- },
116
- orientation: {
117
- vertical: ["tw:before:w-px"],
118
- horizontal: ["tw:before:h-px"]
119
- }
120
- }
121
- }
122
- );
123
- var Separator = ({
124
- className,
125
- orientation = "vertical",
126
- size = "full",
127
- label,
128
- ...props
129
- }) => {
130
- if (label != null && label !== false) {
131
- return /* @__PURE__ */ jsx(
132
- RSeparator.Root,
133
- {
134
- ...props,
135
- decorative: true,
136
- orientation: "horizontal",
137
- className: cn(
138
- "tw:flex tw:w-full tw:items-center tw:gap-3 tw:self-stretch",
139
- "tw:text-xs tw:font-medium tw:text-muted-foreground",
140
- "tw:before:content-[''] tw:before:h-px tw:before:flex-1 tw:before:bg-border",
141
- "tw:after:content-[''] tw:after:h-px tw:after:flex-1 tw:after:bg-border",
142
- className
143
- ),
144
- children: label
145
- }
146
- );
147
- }
148
- return /* @__PURE__ */ jsx(
149
- RSeparator.Root,
150
- {
151
- ...props,
152
- decorative: true,
153
- orientation,
154
- className: separatorVariants({ size, orientation, className })
155
- }
156
- );
157
- };
158
- var variants = cva(
159
- [
160
- "tailwindcss-preflight",
161
- "tw:group/popover-content",
162
- "tw:z-[1055]",
163
- "tw:focus-visible:outline-hidden",
164
- // An open Radix Dialog locks `pointer-events: none` on <body>. Popover content
165
- // is portalled to <body> as a sibling of the dialog, so it inherits the lock
166
- // and clicks fall through — re-enable pointer events on the content itself
167
- // (dismiss-on-outside-click still works, it listens on document).
168
- "tw:pointer-events-auto",
169
- // sizing
170
- "tw:min-w-32",
171
- "tw:max-h-[var(--radix-popover-content-available-height)]",
172
- "tw:origin-(--radix-popover-content-transform-origin)",
173
- // layout
174
- "tw:flex",
175
- "tw:flex-col",
176
- "tw:overflow-y-auto",
177
- // border
178
- "tw:box-border",
179
- "tw:border",
180
- "tw:border-solid",
181
- "tw:shadow-lg",
182
- // open animation
183
- "tw:data-[state=open]:animate-in",
184
- "tw:data-[state=open]:fade-in-0",
185
- "tw:data-[state=open]:zoom-in-95",
186
- // closed animation
187
- "tw:data-[state=closed]:animate-out",
188
- "tw:data-[state=closed]:fade-out-0",
189
- "tw:data-[state=closed]:zoom-out-95",
190
- // position animation
191
- "tw:data-[side=bottom]:slide-in-from-top-2",
192
- "tw:data-[side=left]:slide-in-from-right-2",
193
- "tw:data-[side=right]:slide-in-from-left-2",
194
- "tw:data-[side=top]:slide-in-from-bottom-2",
195
- // Default size for nested Lucide icons; callers can override on the icon.
196
- "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
197
- "tw:[&_svg]:shrink-0"
198
- ],
199
- {
200
- defaultVariants: {
201
- matchTriggerWidth: false,
202
- variant: "default"
203
- },
204
- variants: {
205
- variant: {
206
- // Legacy surface — fixed white panel.
207
- default: ["tw:rounded-md", "tw:border-neutral-100", "tw:bg-white", "tw:text-neutral-800"],
208
- // Argo surface — semantic popover tokens (brand + dark aware).
209
- argo: ["tw:rounded-2xl", "tw:border-border", "tw:bg-popover", "tw:text-popover-foreground"]
210
- },
211
- matchTriggerWidth: {
212
- true: ["tw:w-[var(--radix-popover-trigger-width)]"],
213
- false: []
214
- }
215
- }
216
- }
217
- );
218
- var PopoverContent = ({
219
- ref,
220
- className,
221
- align = "center",
222
- sideOffset = 4,
223
- matchTriggerWidth = false,
224
- children,
225
- onEscapeKeyDown,
226
- ...props
227
- }) => {
228
- const effectiveVariant = useArgoDesign() ? "argo" : "default";
229
- return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
230
- Content,
231
- {
232
- ref,
233
- align: matchTriggerWidth ? "start" : align,
234
- sideOffset,
235
- className: cn(variants({ className, matchTriggerWidth, variant: effectiveVariant })),
236
- onEscapeKeyDown: (event) => {
237
- event.stopPropagation();
238
- onEscapeKeyDown?.(event);
239
- },
240
- ...props,
241
- children
242
- }
243
- ) });
244
- };
245
- var Popover = (props) => /* @__PURE__ */ jsx(Root, { ...props });
246
- Popover.Content = PopoverContent;
247
- Popover.Trigger = Trigger;
248
- Popover.Close = Close;
1
+ import { cn } from './chunk-LXLIQ2D6.js';
2
+ import { __export } from './chunk-G3PMV62Z.js';
3
+ import React26, { createContext, useCallback, useContext, useMemo, useRef, useEffect, useState, useLayoutEffect } from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
249
5
 
250
6
  // ../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzName/index.js
251
7
  function tzName(timeZone, date, format2 = "long") {
@@ -2308,13 +2064,13 @@ var enUS2 = {
2308
2064
  ...enUS,
2309
2065
  labels: {
2310
2066
  labelDayButton: (date, modifiers, options, dateLib) => {
2311
- let formatDate2;
2067
+ let formatDate;
2312
2068
  if (dateLib && typeof dateLib.format === "function") {
2313
- formatDate2 = dateLib.format.bind(dateLib);
2069
+ formatDate = dateLib.format.bind(dateLib);
2314
2070
  } else {
2315
- formatDate2 = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2071
+ formatDate = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2316
2072
  }
2317
- let label = formatDate2(date, "PPPP");
2073
+ let label = formatDate(date, "PPPP");
2318
2074
  if (modifiers.today)
2319
2075
  label = `Today, ${label}`;
2320
2076
  if (modifiers.selected)
@@ -2327,22 +2083,22 @@ var enUS2 = {
2327
2083
  labelWeekNumber: (weekNumber) => `Week ${weekNumber}`,
2328
2084
  labelYearDropdown: "Choose the Year",
2329
2085
  labelGrid: (date, options, dateLib) => {
2330
- let formatDate2;
2086
+ let formatDate;
2331
2087
  if (dateLib && typeof dateLib.format === "function") {
2332
- formatDate2 = dateLib.format.bind(dateLib);
2088
+ formatDate = dateLib.format.bind(dateLib);
2333
2089
  } else {
2334
- formatDate2 = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2090
+ formatDate = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2335
2091
  }
2336
- return formatDate2(date, "LLLL yyyy");
2092
+ return formatDate(date, "LLLL yyyy");
2337
2093
  },
2338
2094
  labelGridcell: (date, modifiers, options, dateLib) => {
2339
- let formatDate2;
2095
+ let formatDate;
2340
2096
  if (dateLib && typeof dateLib.format === "function") {
2341
- formatDate2 = dateLib.format.bind(dateLib);
2097
+ formatDate = dateLib.format.bind(dateLib);
2342
2098
  } else {
2343
- formatDate2 = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2099
+ formatDate = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2344
2100
  }
2345
- let label = formatDate2(date, "PPPP");
2101
+ let label = formatDate(date, "PPPP");
2346
2102
  if (modifiers?.today) {
2347
2103
  label = `Today, ${label}`;
2348
2104
  }
@@ -2351,13 +2107,13 @@ var enUS2 = {
2351
2107
  labelNav: "Navigation bar",
2352
2108
  labelWeekNumberHeader: "Week Number",
2353
2109
  labelWeekday: (date, options, dateLib) => {
2354
- let formatDate2;
2110
+ let formatDate;
2355
2111
  if (dateLib && typeof dateLib.format === "function") {
2356
- formatDate2 = dateLib.format.bind(dateLib);
2112
+ formatDate = dateLib.format.bind(dateLib);
2357
2113
  } else {
2358
- formatDate2 = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2114
+ formatDate = (d, pattern) => format(d, pattern, { locale: enUS, ...options });
2359
2115
  }
2360
- return formatDate2(date, "cccc");
2116
+ return formatDate(date, "cccc");
2361
2117
  }
2362
2118
  }
2363
2119
  };
@@ -2662,7 +2418,7 @@ __export(custom_components_exports, {
2662
2418
  NextMonthButton: () => NextMonthButton,
2663
2419
  Option: () => Option,
2664
2420
  PreviousMonthButton: () => PreviousMonthButton,
2665
- Root: () => Root3,
2421
+ Root: () => Root,
2666
2422
  Select: () => Select,
2667
2423
  Week: () => Week,
2668
2424
  WeekNumber: () => WeekNumber,
@@ -2842,7 +2598,7 @@ function Option(props) {
2842
2598
  function PreviousMonthButton(props) {
2843
2599
  return React26.createElement("button", { ...props });
2844
2600
  }
2845
- function Root3(props) {
2601
+ function Root(props) {
2846
2602
  const { rootRef, ...rest } = props;
2847
2603
  return React26.createElement("div", { ...rest, ref: rootRef });
2848
2604
  }
@@ -4602,7 +4358,7 @@ var rangePickerClassNames = {
4602
4358
  selected: `tw:font-medium tw:rounded`,
4603
4359
  range_middle: `tw:bg-accent tw:border-accent tw:text-accent-foreground tw:rounded-none tw:font-medium`
4604
4360
  };
4605
- var Calendar2 = ({ className, classNames, ...props }) => {
4361
+ var Calendar = ({ className, classNames, ...props }) => {
4606
4362
  const defaultClassNames = getDefaultClassNames();
4607
4363
  return /* @__PURE__ */ jsx(
4608
4364
  DayPicker,
@@ -4624,2060 +4380,8 @@ var Calendar2 = ({ className, classNames, ...props }) => {
4624
4380
  }
4625
4381
  );
4626
4382
  };
4627
- Calendar2.displayName = "Calendar";
4628
- var DatePicker = ({
4629
- align = "end",
4630
- alignOffset = -18,
4631
- children,
4632
- defaultOpen,
4633
- onOpenChange,
4634
- open,
4635
- sideOffset = 12,
4636
- ...calendarProps
4637
- }) => /* @__PURE__ */ jsxs(Popover, { defaultOpen, open, onOpenChange, children: [
4638
- /* @__PURE__ */ jsx(Popover.Trigger, { asChild: true, children }),
4639
- /* @__PURE__ */ jsx(
4640
- Popover.Content,
4641
- {
4642
- align,
4643
- alignOffset,
4644
- className: "tw:w-auto tw:p-0",
4645
- sideOffset,
4646
- children: /* @__PURE__ */ jsx(Calendar2, { ...calendarProps })
4647
- }
4648
- )
4649
- ] });
4650
- DatePicker.displayName = "DatePicker";
4651
- var RadioGroupContext = createContext({
4652
- variant: "radio",
4653
- orientation: "horizontal"
4654
- });
4655
- var RadioGroupProvider = RadioGroupContext;
4656
- var useRadioGroupContext = () => use(RadioGroupContext);
4657
- var FieldBoxDescription = ({ className, ...props }) => /* @__PURE__ */ jsx(
4658
- "span",
4659
- {
4660
- ...props,
4661
- "data-slot": "field-box-description",
4662
- className: cn(
4663
- "tw:text-xs",
4664
- "tw:text-muted-foreground",
4665
- "tw:group-has-[:disabled]/field-box:opacity-50",
4666
- className
4667
- )
4668
- }
4669
- );
4670
- var FieldBoxTitle = ({ className, ...props }) => /* @__PURE__ */ jsx(
4671
- "span",
4672
- {
4673
- ...props,
4674
- "data-slot": "field-box-title",
4675
- className: cn(
4676
- "tw:text-sm",
4677
- "tw:font-medium",
4678
- "tw:text-foreground",
4679
- "tw:group-has-[:disabled]/field-box:cursor-not-allowed",
4680
- "tw:group-has-[:disabled]/field-box:opacity-50",
4681
- className
4682
- )
4683
- }
4684
- );
4685
- var fieldBoxVariants = cva(
4686
- [
4687
- "tw:group/field-box",
4688
- "tw:m-0",
4689
- "tw:inline-flex",
4690
- "tw:gap-3",
4691
- "tw:items-start",
4692
- "tw:cursor-pointer",
4693
- "tw:select-none",
4694
- "tw:has-[:disabled]:cursor-not-allowed"
4695
- ],
4696
- {
4697
- variants: {
4698
- variant: {
4699
- default: [],
4700
- boxed: [
4701
- "tw:rounded-lg",
4702
- "tw:border",
4703
- "tw:border-solid",
4704
- "tw:border-border",
4705
- "tw:p-3",
4706
- "tw:transition-colors",
4707
- "tw:has-[[data-state=checked]]:border-primary",
4708
- "tw:has-[[data-state=checked]]:bg-accent",
4709
- "tw:has-[[data-state=indeterminate]]:border-primary",
4710
- "tw:has-[[data-state=indeterminate]]:bg-accent"
4711
- ]
4712
- }
4713
- },
4714
- defaultVariants: {
4715
- variant: "default"
4716
- }
4717
- }
4718
- );
4719
- var FieldBoxRoot = ({
4720
- ref,
4721
- className,
4722
- variant,
4723
- position = "start",
4724
- control,
4725
- children,
4726
- ...rest
4727
- }) => /* @__PURE__ */ jsxs(
4728
- "label",
4729
- {
4730
- ...rest,
4731
- ref,
4732
- className: cn(
4733
- fieldBoxVariants({ variant, className }),
4734
- position === "end" && "tw:flex-row-reverse"
4735
- ),
4736
- children: [
4737
- /* @__PURE__ */ jsx("span", { className: "tw:inline-flex tw:min-h-5 tw:shrink-0 tw:items-center tw:group-has-[[data-slot=field-box-description]]/field-box:mt-0.5", children: control }),
4738
- children != null && /* @__PURE__ */ jsx("span", { className: "tw:flex tw:flex-1 tw:flex-col tw:gap-0.5", children })
4739
- ]
4740
- }
4741
- );
4742
- var FieldBox = Object.assign(FieldBoxRoot, {
4743
- Title: FieldBoxTitle,
4744
- Description: FieldBoxDescription
4745
- });
4746
- var radioVariants = cva(
4747
- [
4748
- // reset
4749
- "tw:bg-transparent",
4750
- "tw:p-0",
4751
- "tw:peer",
4752
- "tw:cursor-pointer",
4753
- "tw:whitespace-nowrap",
4754
- "tw:shrink-0",
4755
- // position
4756
- "tw:flex",
4757
- "tw:items-center",
4758
- "tw:justify-center",
4759
- "tw:disabled:cursor-not-allowed",
4760
- "tw:size-4",
4761
- // border
4762
- "tw:rounded-full",
4763
- "tw:border",
4764
- "tw:border-solid"
4765
- ],
4766
- {
4767
- defaultVariants: {
4768
- variant: "default"
4769
- },
4770
- variants: {
4771
- variant: {
4772
- default: [
4773
- "tw:disabled:opacity-40",
4774
- "tw:data-[state=checked]:border-primary",
4775
- "tw:data-[state=unchecked]:border-neutral-200",
4776
- "tw:data-[state=unchecked]:hover:border-primary",
4777
- "tw:data-[state=unchecked]:disabled:hover:border-neutral-200",
4778
- "tw:focus-visible:ring-2",
4779
- "tw:focus-visible:ring-ring/30"
4780
- ],
4781
- argo: [
4782
- "tw:disabled:opacity-50",
4783
- "tw:border-input",
4784
- "tw:transition-colors",
4785
- "tw:data-[state=checked]:bg-primary",
4786
- "tw:data-[state=checked]:border-primary",
4787
- "tw:data-[state=unchecked]:not-disabled:hover:bg-accent",
4788
- "tw:data-[state=checked]:not-disabled:hover:bg-primary",
4789
- "tw:focus-visible:outline-hidden",
4790
- "tw:focus-visible:border-primary",
4791
- "tw:focus-visible:ring-2",
4792
- "tw:focus-visible:ring-ring/50"
4793
- ]
4794
- }
4795
- }
4796
- }
4797
- );
4798
- var radioIndicatorVariants = cva(["tw:size-2.5", "tw:fill-current"], {
4799
- defaultVariants: {
4800
- variant: "default"
4801
- },
4802
- variants: {
4803
- variant: {
4804
- default: ["tw:text-primary"],
4805
- argo: ["tw:text-primary-foreground"]
4806
- }
4807
- }
4808
- });
4809
- var radioItemButtonVariants = cva(
4810
- [
4811
- // reset
4812
- "tw:bg-transparent",
4813
- "tw:p-0",
4814
- "tw:peer",
4815
- "tw:cursor-pointer",
4816
- "tw:whitespace-nowrap",
4817
- // position
4818
- "tw:flex",
4819
- "tw:items-center",
4820
- "tw:justify-center",
4821
- "tw:disabled:cursor-not-allowed",
4822
- // layouts
4823
- "tw:w-full",
4824
- "tw:px-2",
4825
- "tw:py-1.5",
4826
- // fonts
4827
- "tw:uppercase",
4828
- "tw:font-semibold",
4829
- "tw:font-sans",
4830
- "tw:text-[11px]",
4831
- "tw:whitespace-nowrap",
4832
- "tw:tracking-widest",
4833
- "tw:leading-[18px]",
4834
- // border
4835
- "tw:border",
4836
- "tw:border-solid",
4837
- "tw:rounded"
4838
- ],
4839
- {
4840
- defaultVariants: {
4841
- variant: "default"
4842
- },
4843
- variants: {
4844
- variant: {
4845
- default: [
4846
- "tw:disabled:opacity-40",
4847
- "tw:text-secondary-600",
4848
- "tw:border-secondary-500",
4849
- "tw:data-[state=unchecked]:hover:bg-secondary-500",
4850
- "tw:data-[state=unchecked]:hover:text-white",
4851
- "tw:data-[state=unchecked]:disabled:hover:bg-white",
4852
- "tw:data-[state=unchecked]:disabled:hover:text-secondary-500",
4853
- "tw:data-[state=checked]:disabled:cursor-not-allowed",
4854
- "tw:data-[state=unchecked]:bg-white",
4855
- "tw:data-[state=checked]:bg-secondary-500",
4856
- "tw:data-[state=checked]:text-white",
4857
- "tw:data-[state=checked]:cursor-default",
4858
- "tw:focus-visible:outline",
4859
- "tw:focus-visible:outline-ring",
4860
- "tw:focus-visible:ring-4",
4861
- "tw:focus-visible:ring-ring/30"
4862
- ],
4863
- argo: [
4864
- "tw:disabled:opacity-50",
4865
- "tw:text-foreground",
4866
- "tw:border-input",
4867
- "tw:transition-colors",
4868
- // muted filled control surface — gray, distinct from white containers; not the app-background token
4869
- "tw:data-[state=unchecked]:bg-muted",
4870
- "tw:data-[state=unchecked]:not-disabled:hover:bg-accent",
4871
- "tw:data-[state=unchecked]:not-disabled:hover:text-accent-foreground",
4872
- "tw:data-[state=checked]:bg-primary",
4873
- "tw:data-[state=checked]:border-primary",
4874
- "tw:data-[state=checked]:text-primary-foreground",
4875
- "tw:data-[state=checked]:not-disabled:cursor-default",
4876
- "tw:focus-visible:outline-hidden",
4877
- "tw:focus-visible:border-primary",
4878
- "tw:focus-visible:ring-2",
4879
- "tw:focus-visible:ring-ring/50"
4880
- ]
4881
- }
4882
- }
4883
- }
4884
- );
4885
- var Radio = ({ className, styleVariant = "default", ...props }) => /* @__PURE__ */ jsx(Item, { ...props, className: cn(radioVariants({ variant: styleVariant }), className), children: /* @__PURE__ */ jsx(Indicator$1, { className: cn("tw:flex", "tw:items-center", "tw:justify-center"), children: /* @__PURE__ */ jsx(Circle, { className: radioIndicatorVariants({ variant: styleVariant }) }) }) });
4886
- var RadioGroupItemButton = ({
4887
- ref,
4888
- className,
4889
- children,
4890
- styleVariant = "default",
4891
- ...props
4892
- }) => /* @__PURE__ */ jsx(
4893
- Item,
4894
- {
4895
- ref,
4896
- ...props,
4897
- className: cn(radioItemButtonVariants({ variant: styleVariant }), className),
4898
- children
4899
- }
4900
- );
4901
- var RadioGroupItem = ({
4902
- children,
4903
- className,
4904
- tooltip,
4905
- tooltipVariant,
4906
- tooltipPlacement,
4907
- description,
4908
- ...props
4909
- }) => {
4910
- const { variant } = useRadioGroupContext();
4911
- const styleVariant = useArgoDesign() ? "argo" : "default";
4912
- const id = useId();
4913
- const item = (() => {
4914
- if (variant === "button")
4915
- return /* @__PURE__ */ jsx(RadioGroupItemButton, { styleVariant, ...props, className, children });
4916
- return /* @__PURE__ */ jsxs(
4917
- FieldBox,
4918
- {
4919
- variant: variant === "radio-block" ? "boxed" : "default",
4920
- htmlFor: id,
4921
- control: /* @__PURE__ */ jsx(Radio, { styleVariant, ...props, id }),
4922
- className: cn(variant === "radio-block" && "tw:flex-1", className),
4923
- children: [
4924
- /* @__PURE__ */ jsx(FieldBox.Title, { children }),
4925
- description && /* @__PURE__ */ jsx(FieldBox.Description, { children: description })
4926
- ]
4927
- }
4928
- );
4929
- })();
4930
- if (!tooltip) {
4931
- return item;
4932
- }
4933
- return /* @__PURE__ */ jsx(Tooltip, { tooltip, variant: tooltipVariant, placement: tooltipPlacement, triggerAsChild: true, children: item });
4934
- };
4935
- var RadioGroupSeparator = () => {
4936
- const { orientation } = useRadioGroupContext();
4937
- const invertedOrientation = orientation === "horizontal" ? "vertical" : "horizontal";
4938
- const size = orientation === "horizontal" ? "1/2" : "full";
4939
- const className = orientation === "horizontal" ? "tw:mx-2" : "tw:my-2";
4940
- return /* @__PURE__ */ jsx(Separator, { orientation: invertedOrientation, size, className });
4941
- };
4942
- var radioGroupVariants = cva(["tw:flex"], {
4943
- variants: {
4944
- orientation: {
4945
- horizontal: ["tw:gap-2"],
4946
- vertical: ["tw:flex-col", "tw:gap-3"]
4947
- },
4948
- variant: {
4949
- button: [],
4950
- radio: [],
4951
- "radio-block": ["tw:w-full"]
4952
- }
4953
- }
4954
- });
4955
- var RadioGroup = ({
4956
- variant = "radio",
4957
- className,
4958
- disabled = false,
4959
- orientation = "horizontal",
4960
- onValueChange,
4961
- children,
4962
- value,
4963
- defaultValue,
4964
- ...props
4965
- }) => /* @__PURE__ */ jsx(
4966
- RRadioGroup.Root,
4967
- {
4968
- ...props,
4969
- onValueChange,
4970
- orientation,
4971
- className: cn(radioGroupVariants({ orientation, variant, className })),
4972
- disabled,
4973
- value: value ?? void 0,
4974
- defaultValue: defaultValue ?? void 0,
4975
- children: /* @__PURE__ */ jsx(RadioGroupProvider, { value: { variant, orientation }, children })
4976
- }
4977
- );
4978
- RadioGroup.Item = RadioGroupItem;
4979
- RadioGroup.Separator = RadioGroupSeparator;
4980
- var rootVariants = cva(
4981
- [
4982
- // reset
4983
- "tailwindcss-preflight",
4984
- // position
4985
- "tw:flex",
4986
- "tw:items-center",
4987
- "tw:justify-center",
4988
- "tw:peer",
4989
- "tw:size-4",
4990
- "tw:shrink-0",
4991
- "tw:cursor-pointer",
4992
- // border
4993
- "tw:border",
4994
- "tw:border-solid",
4995
- // disabled
4996
- "tw:disabled:opacity-50",
4997
- "tw:disabled:cursor-not-allowed"
4998
- ],
4999
- {
5000
- defaultVariants: {
5001
- variant: "default"
5002
- },
5003
- variants: {
5004
- variant: {
5005
- default: [
5006
- "tw:rounded",
5007
- "tw:border-neutral-200",
5008
- "tw:data-[state=checked]:bg-primary",
5009
- "tw:data-[state=checked]:border-primary",
5010
- "tw:data-[state=indeterminate]:bg-white",
5011
- "tw:data-[state=indeterminate]:border-neutral-200"
5012
- ],
5013
- argo: [
5014
- "tw:rounded",
5015
- "tw:border-input",
5016
- "tw:transition-colors",
5017
- "tw:data-[state=checked]:bg-primary",
5018
- "tw:data-[state=checked]:border-primary",
5019
- "tw:data-[state=indeterminate]:bg-primary",
5020
- "tw:data-[state=indeterminate]:border-primary",
5021
- // focus
5022
- "tw:focus-visible:outline-hidden",
5023
- "tw:focus-visible:border-primary",
5024
- "tw:focus-visible:ring-2",
5025
- "tw:focus-visible:ring-ring/50"
5026
- ]
5027
- }
5028
- }
5029
- }
5030
- );
5031
- var indicatorVariants = cva(["tw:group", "tw:flex", "tw:items-center"], {
5032
- defaultVariants: {
5033
- variant: "default"
5034
- },
5035
- variants: {
5036
- variant: {
5037
- default: [
5038
- "tw:data-[state=checked]:text-primary-foreground",
5039
- "tw:data-[state=indeterminate]:text-neutral-200"
5040
- ],
5041
- argo: ["tw:text-primary-foreground"]
5042
- }
5043
- }
5044
- });
5045
- function Checkbox({
5046
- className,
5047
- id: idProp,
5048
- children,
5049
- description,
5050
- variant,
5051
- position,
5052
- tooltip,
5053
- tooltipPlacement = "top",
5054
- ...rest
5055
- }) {
5056
- const fallbackId = useId();
5057
- const id = idProp?.toString() ?? fallbackId;
5058
- const styleVariant = useArgoDesign() ? "argo" : "default";
5059
- const checkboxElement = /* @__PURE__ */ jsx(Root$1, { id, ...rest, className: cn(rootVariants({ variant: styleVariant, className })), children: /* @__PURE__ */ jsxs(Indicator, { className: cn(indicatorVariants({ variant: styleVariant })), children: [
5060
- /* @__PURE__ */ jsx(Check, { className: "tw:hidden tw:size-3 tw:stroke-[4px] tw:group-data-[state=checked]:block" }),
5061
- /* @__PURE__ */ jsx(Minus, { className: "tw:hidden tw:size-3 tw:stroke-[4px] tw:group-data-[state=indeterminate]:block" })
5062
- ] }) });
5063
- const rendered = !children ? checkboxElement : /* @__PURE__ */ jsxs(FieldBox, { htmlFor: id, variant, position, control: checkboxElement, children: [
5064
- /* @__PURE__ */ jsx(FieldBox.Title, { children }),
5065
- description && /* @__PURE__ */ jsx(FieldBox.Description, { children: description })
5066
- ] });
5067
- if (!tooltip) return rendered;
5068
- return /* @__PURE__ */ jsx(Tooltip, { tooltip, placement: tooltipPlacement, triggerAsChild: !!children, children: rendered });
5069
- }
5070
- var addonVariants = cva(
5071
- [
5072
- "tw:flex",
5073
- "tw:items-center",
5074
- "tw:shrink-0",
5075
- "tw:bg-inherit",
5076
- "tw:self-stretch",
5077
- "tw:px-1",
5078
- "tw:has-[button]:px-0",
5079
- 'tw:[&_svg:not([class*="tw:size-"])]:size-3'
5080
- ],
5081
- {
5082
- defaultVariants: {
5083
- align: "inline-end",
5084
- variant: "inline"
5085
- },
5086
- variants: {
5087
- align: {
5088
- "inline-start": ["tw:order-first"],
5089
- "inline-end": ["tw:order-last"]
5090
- },
5091
- variant: {
5092
- inline: [],
5093
- floating: [
5094
- "tw:hidden",
5095
- "tw:group-hover/badge:flex",
5096
- "tw:absolute",
5097
- "tw:top-0",
5098
- "tw:bottom-0",
5099
- "tw:focus-within:flex"
5100
- ]
5101
- }
5102
- },
5103
- compoundVariants: [
5104
- { variant: "floating", align: "inline-end", className: ["tw:right-0"] },
5105
- { variant: "floating", align: "inline-start", className: ["tw:left-0"] }
5106
- ]
5107
- }
5108
- );
5109
- var BadgeAddon = ({
5110
- ref,
5111
- align = "inline-end",
5112
- variant = "inline",
5113
- className,
5114
- ...rest
5115
- }) => /* @__PURE__ */ jsx(
5116
- "div",
5117
- {
5118
- ...rest,
5119
- ref,
5120
- "data-align": align,
5121
- "data-variant": variant,
5122
- className: cn(addonVariants({ align, variant, className }))
5123
- }
5124
- );
5125
- var BadgeButton = ({ ref, className, type = "button", children, ...rest }) => /* @__PURE__ */ jsx(
5126
- "button",
5127
- {
5128
- ...rest,
5129
- ref,
5130
- type,
5131
- className: cn(
5132
- "tailwindcss-preflight",
5133
- "tw:inline-flex",
5134
- "tw:items-center",
5135
- "tw:justify-center",
5136
- "tw:cursor-pointer",
5137
- "tw:bg-inherit",
5138
- "tw:text-inherit",
5139
- "tw:hover:brightness-95",
5140
- "tw:px-1",
5141
- // Default sizing for Lucide-icon children (which ship at 24×24); keeps
5142
- // the visual baseline aligned with the previous FA-icon API and other
5143
- // icon-wrapper components (ItemIcon, SidebarMenuIcon).
5144
- 'tw:[&_svg:not([class*="tw:size-"])]:size-3',
5145
- className
5146
- ),
5147
- children
5148
- }
5149
- );
5150
- var BadgeLabel = ({ ref, className, asChild = false, ...rest }) => {
5151
- const Comp = asChild ? Slot : "span";
5152
- return /* @__PURE__ */ jsx(
5153
- Comp,
5154
- {
5155
- ...rest,
5156
- ref,
5157
- "data-slot": "badge-label",
5158
- className: cn(
5159
- "tw:max-w-56",
5160
- "tw:truncate",
5161
- "tw:px-2",
5162
- "tw:py-0.5",
5163
- // Drop side padding only when an *inline* addon is present —
5164
- // floating addons overlay the label without taking layout space,
5165
- // so the label still needs full padding behind them.
5166
- "tw:group-has-[[data-align=inline-start][data-variant=inline]:not(:empty)]/badge:pl-0",
5167
- "tw:group-has-[[data-align=inline-end][data-variant=inline]:not(:empty)]/badge:pr-0",
5168
- className
5169
- )
5170
- }
5171
- );
5172
- };
5173
- var badgeColors = {
5174
- gray: "tw:bg-neutral-400 tw:text-white tw:decoration-neutral-400",
5175
- "gray-darker": "tw:bg-neutral-500 tw:text-white tw:decoration-neutral-500",
5176
- "gray-inverse": "tw:bg-neutral-100 tw:text-neutral-500 tw:decoration-neutral-100 tw:[[data-theme=dark]_&]:bg-neutral-700 tw:[[data-theme=dark]_&]:text-neutral-300 tw:[[data-theme=dark]_&]:decoration-neutral-700",
5177
- green: "tw:bg-green-500 tw:text-white tw:decoration-green-500",
5178
- "green-darker": "tw:bg-green-600 tw:text-white tw:decoration-green-600",
5179
- "green-inverse": "tw:bg-green-100 tw:text-green-900 tw:decoration-green-100 tw:[[data-theme=dark]_&]:bg-green-900 tw:[[data-theme=dark]_&]:text-green-200 tw:[[data-theme=dark]_&]:decoration-green-900",
5180
- blue: "tw:bg-blue-500 tw:text-white tw:decoration-blue-500",
5181
- "blue-inverse": "tw:bg-blue-100 tw:text-blue-600 tw:decoration-blue-100 tw:[[data-theme=dark]_&]:bg-blue-900 tw:[[data-theme=dark]_&]:text-blue-200 tw:[[data-theme=dark]_&]:decoration-blue-900",
5182
- red: "tw:bg-error-500 tw:text-white tw:decoration-error-500",
5183
- orange: "tw:bg-warning-500 tw:text-white tw:decoration-warning-500",
5184
- "orange-inverse": "tw:bg-warning-100 tw:text-warning-500 tw:decoration-warning-100 tw:[[data-theme=dark]_&]:bg-warning-900 tw:[[data-theme=dark]_&]:text-warning-200 tw:[[data-theme=dark]_&]:decoration-warning-900",
5185
- amber: "tw:bg-warning-300 tw:text-warning-800 tw:decoration-warning-300",
5186
- "amber-inverse": "tw:bg-warning-100 tw:text-warning-700 tw:decoration-warning-100",
5187
- teal: "tw:bg-teal-500 tw:text-white tw:decoration-teal-500",
5188
- "teal-inverse": "tw:bg-teal-100 tw:text-teal-800 tw:decoration-teal-100 tw:[[data-theme=dark]_&]:bg-teal-900 tw:[[data-theme=dark]_&]:text-teal-200 tw:[[data-theme=dark]_&]:decoration-teal-900",
5189
- purple: "tw:bg-purple-500 tw:text-white tw:decoration-purple-500",
5190
- "purple-inverse": "tw:bg-purple-100 tw:text-purple-800 tw:decoration-purple-100 tw:[[data-theme=dark]_&]:bg-purple-900 tw:[[data-theme=dark]_&]:text-purple-200 tw:[[data-theme=dark]_&]:decoration-purple-900",
5191
- cyan: "tw:bg-cyan-500 tw:text-white tw:decoration-cyan-500",
5192
- "cyan-inverse": "tw:bg-cyan-100 tw:text-cyan-800 tw:decoration-cyan-100 tw:[[data-theme=dark]_&]:bg-cyan-900 tw:[[data-theme=dark]_&]:text-cyan-200 tw:[[data-theme=dark]_&]:decoration-cyan-900",
5193
- "sidebar-primary": "tw:bg-sidebar-primary tw:text-white tw:decoration-sidebar-primary",
5194
- white: "tw:bg-white/90 tw:text-neutral-600 tw:decoration-white/90"
5195
- };
5196
- var badgeRootVariants = cva(
5197
- [
5198
- "tailwindcss-preflight",
5199
- "tw:group/badge",
5200
- // display
5201
- "tw:relative",
5202
- "tw:inline-flex",
5203
- "tw:justify-center",
5204
- "tw:items-center",
5205
- "tw:min-h-5",
5206
- "tw:h-fit",
5207
- "tw:shrink-0",
5208
- "tw:overflow-hidden",
5209
- // text — chrome weight/tracking are brand-overridable tokens
5210
- // (`--font-weight-medium` / `--letter-spacing-chrome`); casing lives on the
5211
- // `default` variant below via `tw:uppercase`.
5212
- "tw:whitespace-pre-wrap",
5213
- "tw:break-normal",
5214
- "tw:text-xs",
5215
- "tw:font-medium",
5216
- "tw:tracking-chrome",
5217
- "tw:text-center",
5218
- "tw:underline",
5219
- // content
5220
- "tw:border-none",
5221
- "tw:[&>svg]:self-center",
5222
- "tw:[button&]:cursor-pointer",
5223
- // focus
5224
- "tw:focus-visible:outline-hidden",
5225
- "tw:focus-visible:ring-2",
5226
- "tw:focus-visible:ring-inset",
5227
- "tw:focus-visible:ring-ring"
5228
- ],
5229
- {
5230
- defaultVariants: {
5231
- color: "gray",
5232
- variant: "default"
5233
- },
5234
- variants: {
5235
- variant: {
5236
- // Legacy chrome uppercases the default badge; the Keboola V2 brand
5237
- // (`data-brand="keboola"`) renders it in standard case instead.
5238
- default: [
5239
- "tw:rounded tw:uppercase",
5240
- "tw:[[data-brand=keboola]_&]:normal-case tw:[[data-brand=keboola]_&]:tracking-normal"
5241
- ],
5242
- tag: ["tw:rounded tw:normal-case"],
5243
- pill: ["tw:min-w-5 tw:rounded-full tw:normal-case tw:tracking-normal"]
5244
- },
5245
- color: badgeColors
5246
- }
5247
- }
5248
- );
5249
- var BadgeRoot = ({ ref, variant, color, className, children, ...rest }) => /* @__PURE__ */ jsx(
5250
- "div",
5251
- {
5252
- ...rest,
5253
- ref,
5254
- "data-slot": "badge",
5255
- className: cn(badgeRootVariants({ variant, color, className })),
5256
- children
5257
- }
5258
- );
5259
- var BadgeInner = ({
5260
- ref,
5261
- // root props
5262
- variant,
5263
- color,
5264
- // custom props
5265
- prefix,
5266
- prefixVariant = "inline",
5267
- suffix,
5268
- suffixVariant = "inline",
5269
- className,
5270
- labelClassName,
5271
- ...labelProps
5272
- }) => /* @__PURE__ */ jsxs(BadgeRoot, { className, variant, color, children: [
5273
- prefix && /* @__PURE__ */ jsx(BadgeAddon, { align: "inline-start", variant: prefixVariant, children: prefix }),
5274
- /* @__PURE__ */ jsx(BadgeLabel, { ...labelProps, ref, className: labelClassName }),
5275
- suffix && /* @__PURE__ */ jsx(BadgeAddon, { align: "inline-end", variant: suffixVariant, children: suffix })
5276
- ] });
5277
- var Badge = Object.assign(BadgeInner, {
5278
- Root: BadgeRoot,
5279
- Button: BadgeButton,
5280
- Label: BadgeLabel,
5281
- Addon: BadgeAddon
5282
- });
5283
-
5284
- // src/components/Combobox/utils.ts
5285
- var isPlainObject = (item) => item !== null && typeof item === "object";
5286
- var isNumber = (item) => typeof item === "number";
5287
- var isString = (item) => typeof item === "string";
5288
- var isLabeledItem = (item) => isPlainObject(item) && Reflect.has(item, "label") && Reflect.has(item, "value");
5289
- var isInternalItem = (item) => isLabeledItem(item) && "__marker" in item;
5290
- var isCreatableItem = (item) => {
5291
- return isInternalItem(item) && item.__marker === "creatable";
5292
- };
5293
- var isGroupItem = (itemOrGroup) => itemOrGroup !== null && typeof itemOrGroup === "object" && Reflect.has(itemOrGroup, "items");
5294
- var isGroupItems = (items) => {
5295
- if (!Array.isArray(items)) return false;
5296
- if (items.length === 0) return false;
5297
- return isGroupItem(items[0]);
5298
- };
5299
- var defaultItemToLabel = (item) => {
5300
- if (isNumber(item) || isString(item)) return item;
5301
- if (!isLabeledItem(item))
5302
- throw new Error(
5303
- "Combobox: Item does not have a `label` field. Pass `itemToLabel` for custom item shapes."
5304
- );
5305
- return item.label;
5306
- };
5307
- var toLabel = (item) => {
5308
- if (isString(item)) return item;
5309
- if (isLabeledItem(item)) {
5310
- if (item.label) return item.label;
5311
- if (item.value) return item.value;
5312
- }
5313
- return String(item);
5314
- };
5315
- var toValueKey = (item) => {
5316
- if (isString(item)) return item;
5317
- if (isLabeledItem(item)) {
5318
- if (item.value) return item.value;
5319
- if (item.label) return item.label;
5320
- }
5321
- return String(item);
5322
- };
5323
- var defaultItemToIcon = (item) => isLabeledItem(item) ? item.icon : void 0;
5324
- var defaultItemToDisabled = (item) => isLabeledItem(item) ? item.disabled ?? false : false;
5325
- var defaultGroupToLabel = () => void 0;
5326
- var createCreatableItem = (query) => ({
5327
- __marker: "creatable",
5328
- value: query,
5329
- label: query
5330
- });
5331
- var defaultToCreateValue = (query, value, queryToCreateValue) => {
5332
- if (queryToCreateValue) return queryToCreateValue(query);
5333
- if (value === void 0) return query;
5334
- if (isString(value)) return query;
5335
- if (isLabeledItem(value)) return { value: query, label: query };
5336
- throw new Error(
5337
- "Combobox: Cannot infer item shape for `allowCreate`. Pass `queryToCreateValue` for custom item shapes."
5338
- );
5339
- };
5340
- var defaultQueryToCreateLabel = (query) => `Create "${query}"`;
5341
- var ComboboxChips = ({
5342
- maxVisible = 3,
5343
- itemToChipLabel = defaultItemToLabel,
5344
- itemToChipColor,
5345
- variant = "pill"
5346
- }) => /* @__PURE__ */ jsx(Combobox$1.Value, { children: (values) => {
5347
- if (!values.length) return null;
5348
- const visible = values.slice(0, maxVisible);
5349
- const overflow = values.slice(maxVisible);
5350
- return /* @__PURE__ */ jsxs(Fragment, { children: [
5351
- visible.map((value, index) => /* @__PURE__ */ jsxs(
5352
- Combobox$1.Chip,
5353
- {
5354
- render: /* @__PURE__ */ jsx(
5355
- Badge.Root,
5356
- {
5357
- color: itemToChipColor?.(value),
5358
- className: "tw:max-w-40",
5359
- variant
5360
- }
5361
- ),
5362
- children: [
5363
- /* @__PURE__ */ jsx(Badge.Label, { children: itemToChipLabel(value) }),
5364
- /* @__PURE__ */ jsx(Badge.Addon, { variant: "inline", align: "inline-end", children: /* @__PURE__ */ jsx(
5365
- Combobox$1.ChipRemove,
5366
- {
5367
- render: /* @__PURE__ */ jsx(Badge.Button, { "aria-label": "Remove value", children: /* @__PURE__ */ jsx(X, { className: "tw:size-3" }) })
5368
- }
5369
- ) })
5370
- ]
5371
- },
5372
- index
5373
- )),
5374
- overflow.length > 0 && /* @__PURE__ */ jsx(Badge.Root, { variant: "pill", children: /* @__PURE__ */ jsxs(Badge.Label, { children: [
5375
- "+",
5376
- overflow.length
5377
- ] }) })
5378
- ] });
5379
- } });
5380
- var ComboboxContent = ({
5381
- ref,
5382
- align = "start",
5383
- side = "bottom",
5384
- sideOffset = 4,
5385
- alignOffset,
5386
- anchor,
5387
- container,
5388
- className,
5389
- children,
5390
- ...popupProps
5391
- }) => {
5392
- const effectiveVariant = useArgoDesign() ? "argo" : "default";
5393
- return /* @__PURE__ */ jsx(Combobox$1.Portal, { container, children: /* @__PURE__ */ jsx(
5394
- Combobox$1.Positioner,
5395
- {
5396
- align,
5397
- side,
5398
- sideOffset,
5399
- alignOffset,
5400
- anchor,
5401
- className: "tw:isolate tw:z-[1055] tailwindcss-preflight",
5402
- children: /* @__PURE__ */ jsx(
5403
- Combobox$1.Popup,
5404
- {
5405
- ref,
5406
- "data-chips": !!anchor,
5407
- "data-variant": effectiveVariant,
5408
- className: cn(
5409
- "tw:!pointer-events-auto",
5410
- "tw:group/combobox-content",
5411
- "tw:relative",
5412
- "tw:flex tw:flex-col tw:overflow-hidden",
5413
- // sizing
5414
- "tw:max-h-[var(--available-height)]",
5415
- "tw:w-[var(--anchor-width)]",
5416
- "tw:max-w-[var(--available-width)]",
5417
- "tw:origin-[var(--transform-origin)]",
5418
- "tw:data-[chips=true]:min-w-[var(--anchor-width)]",
5419
- // appearance
5420
- "tw:rounded-lg",
5421
- "tw:data-[variant=default]:rounded",
5422
- "tw:bg-popover",
5423
- "tw:text-popover-foreground",
5424
- "tw:shadow-md",
5425
- "tw:ring-1",
5426
- "tw:ring-foreground/10",
5427
- "tw:duration-100",
5428
- // open animation
5429
- "data-open:animate-in",
5430
- "data-open:fade-in-0",
5431
- "data-open:zoom-in-95",
5432
- // closed animation
5433
- "data-closed:animate-out",
5434
- "data-closed:fade-out-0",
5435
- "data-closed:zoom-out-95",
5436
- // position animations
5437
- "tw:data-[side=bottom]:slide-in-from-top-2",
5438
- "tw:data-[side=top]:slide-in-from-bottom-2",
5439
- "tw:data-[side=left]:slide-in-from-right-2",
5440
- "tw:data-[side=right]:slide-in-from-left-2",
5441
- "tw:data-[side=inline-start]:slide-in-from-right-2",
5442
- "tw:data-[side=inline-end]:slide-in-from-left-2",
5443
- className
5444
- ),
5445
- ...popupProps,
5446
- children
5447
- }
5448
- )
5449
- }
5450
- ) });
5451
- };
5452
- var ComboboxEmpty = ({ ref, className, ...props }) => /* @__PURE__ */ jsx(
5453
- Combobox$1.Empty,
5454
- {
5455
- ref,
5456
- className: cn(
5457
- "tw:hidden",
5458
- "tw:group-data-[empty]/combobox-content:flex",
5459
- "tw:justify-center",
5460
- "tw:items-center",
5461
- "tw:text-center",
5462
- "tw:px-2",
5463
- "tw:text-muted-foreground",
5464
- "tw:py-6",
5465
- className
5466
- ),
5467
- ...props
5468
- }
5469
- );
5470
- var ComboboxInput = ({ ref, ...props }) => /* @__PURE__ */ jsx(Combobox$1.Input, { ...props, ref, render: /* @__PURE__ */ jsx(InputGroup.Input, {}) });
5471
- var ComboboxInputGroup = ({
5472
- ref,
5473
- state,
5474
- variant,
5475
- sizing,
5476
- focusVariant,
5477
- className,
5478
- ...props
5479
- }) => /* @__PURE__ */ jsx(
5480
- Combobox$1.InputGroup,
5481
- {
5482
- ...props,
5483
- ref,
5484
- render: /* @__PURE__ */ jsx(
5485
- InputGroup,
5486
- {
5487
- state,
5488
- variant,
5489
- focusVariant,
5490
- sizing,
5491
- className
5492
- }
5493
- )
5494
- }
5495
- );
5496
- var ComboboxItemIndicator = ({ ref, className, variant = "check", ...props }) => {
5497
- if (variant === "checkbox") {
5498
- return /* @__PURE__ */ jsx(
5499
- Combobox$1.ItemIndicator,
5500
- {
5501
- ref,
5502
- keepMounted: true,
5503
- className: cn(
5504
- "tw:group/combobox-item-indicator",
5505
- "tw:inline-flex",
5506
- "tw:items-center",
5507
- "tw:justify-center",
5508
- "tw:size-4",
5509
- "tw:shrink-0",
5510
- "tw:rounded",
5511
- "tw:border",
5512
- "tw:border-input",
5513
- "tw:bg-background",
5514
- "tw:data-[selected]:bg-primary",
5515
- "tw:data-[selected]:border-primary",
5516
- className
5517
- ),
5518
- ...props,
5519
- children: /* @__PURE__ */ jsx(
5520
- Check,
5521
- {
5522
- className: cn(
5523
- "tw:hidden",
5524
- "tw:size-3",
5525
- "tw:stroke-[4px]",
5526
- "tw:!text-primary-foreground",
5527
- "tw:group-data-[selected]/combobox-item-indicator:block"
5528
- )
5529
- }
5530
- )
5531
- }
5532
- );
5533
- }
5534
- return /* @__PURE__ */ jsx(
5535
- Combobox$1.ItemIndicator,
5536
- {
5537
- ...props,
5538
- ref,
5539
- className: cn(
5540
- "tw:pointer-events-none",
5541
- "tw:absolute",
5542
- "tw:right-2",
5543
- "tw:group-data-[variant=default]/combobox-content:right-4",
5544
- // `render={<Check />}` makes the icon the indicator element itself (not a descendant), so a
5545
- // `[&_svg]` rule never matches it — size it directly or Lucide renders at its 24px default.
5546
- "tw:size-4",
5547
- "tw:group-data-[highlighted]/combobox-item:text-accent-foreground",
5548
- "tw:group-data-[variant=default]/combobox-content:group-data-[highlighted]/combobox-item:text-foreground",
5549
- className
5550
- ),
5551
- render: /* @__PURE__ */ jsx(Check, {})
5552
- }
5553
- );
5554
- };
5555
- var ComboboxItem = ({
5556
- ref,
5557
- className,
5558
- children,
5559
- icon,
5560
- indicator: variant = "check",
5561
- ...props
5562
- }) => /* @__PURE__ */ jsxs(
5563
- Combobox$1.Item,
5564
- {
5565
- ...props,
5566
- ref,
5567
- "data-slot": "combobox-item",
5568
- className: cn(
5569
- "tw:group/combobox-item",
5570
- // layout
5571
- "tw:relative",
5572
- "tw:flex",
5573
- "tw:flex-1",
5574
- "tw:items-center",
5575
- "tw:gap-2",
5576
- // spacing
5577
- "tw:py-2",
5578
- "tw:px-2",
5579
- "tw:group-data-[variant=default]/combobox-content:px-4",
5580
- "tw:rounded-lg",
5581
- "tw:group-data-[variant=default]/combobox-content:rounded-none",
5582
- // typography
5583
- "tw:text-sm",
5584
- "tw:select-none",
5585
- "tw:cursor-default",
5586
- "tw:outline-hidden",
5587
- // highlighted (keyboard / hover)
5588
- "tw:data-[highlighted]:bg-accent",
5589
- "tw:group-data-[variant=default]/combobox-content:data-[highlighted]:bg-neutral-100",
5590
- "tw:data-[highlighted]:text-accent-foreground",
5591
- "tw:group-data-[variant=default]/combobox-content:data-[highlighted]:text-foreground",
5592
- // disabled
5593
- "tw:data-disabled:pointer-events-none",
5594
- "tw:data-disabled:opacity-50",
5595
- // child svg defaults
5596
- "tw:[&_svg]:pointer-events-none",
5597
- "tw:[&_svg]:shrink-0",
5598
- "tw:[&_svg]:text-muted-foreground",
5599
- "tw:[&_svg:not([class*='size-'])]:size-4",
5600
- className
5601
- ),
5602
- children: [
5603
- /* @__PURE__ */ jsx(ComboboxItemIndicator, { variant }),
5604
- icon,
5605
- /* @__PURE__ */ jsx("span", { className: "tw:truncate", children })
5606
- ]
5607
- }
5608
- );
5609
- var ComboboxList = ({ ref, className, ...props }) => /* @__PURE__ */ jsx(
5610
- Combobox$1.List,
5611
- {
5612
- ref,
5613
- className: cn(
5614
- "tw:no-scrollbar",
5615
- "tw:scroll-py-1",
5616
- "tw:overflow-y-auto",
5617
- "tw:overscroll-contain",
5618
- "tw:min-h-0",
5619
- "tw:flex-1",
5620
- "tw:p-2",
5621
- "tw:data-[empty]:p-0",
5622
- "tw:group-data-[variant=default]/combobox-content:p-0",
5623
- className
5624
- ),
5625
- ...props
5626
- }
5627
- );
5628
- var ComboboxRoot = (props) => /* @__PURE__ */ jsx(Combobox$1.Root, { ...props });
5629
- var ComboboxSeparator = ({ ref, className, ...props }) => /* @__PURE__ */ jsx(
5630
- Combobox$1.Separator,
5631
- {
5632
- ref,
5633
- className: cn("tw:mx-2 tw:my-1 tw:h-px tw:bg-border", className),
5634
- ...props
5635
- }
5636
- );
5637
- var ComboboxGroup = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx(
5638
- Combobox$1.Group,
5639
- {
5640
- ref,
5641
- className: cn("tw:flex tw:flex-col tw:gap-0.5", className),
5642
- ...props,
5643
- children
5644
- }
5645
- );
5646
- var ComboboxGroupLabel = ({ ref, className, ...props }) => /* @__PURE__ */ jsx(
5647
- Combobox$1.GroupLabel,
5648
- {
5649
- ...props,
5650
- ref,
5651
- className: cn(
5652
- // Base (argo variant) — soft gray section label.
5653
- "tw:px-2",
5654
- "tw:py-1.5",
5655
- "tw:text-xs",
5656
- "tw:font-medium",
5657
- "tw:leading-none",
5658
- "tw:text-muted-foreground",
5659
- "tw:group-data-[variant=default]/combobox-content:uppercase",
5660
- "tw:group-data-[variant=default]/combobox-content:font-semibold",
5661
- "tw:group-data-[variant=default]/combobox-content:tracking-wider",
5662
- "tw:group-data-[variant=default]/combobox-content:text-[11px]",
5663
- "tw:group-data-[variant=default]/combobox-content:text-black",
5664
- "tw:group-data-[variant=default]/combobox-content:pt-2",
5665
- "tw:group-data-[variant=default]/combobox-content:px-4",
5666
- className
5667
- )
5668
- }
5669
- );
5670
- var ComboboxCollection = ({ ...props }) => /* @__PURE__ */ jsx(Combobox$1.Collection, { "data-slot": "combobox-collection", ...props });
5671
- var VIRTUALIZE_THRESHOLD = 30;
5672
- var ESTIMATED_ROW_HEIGHT = 40;
5673
- var ESTIMATED_LIST_HEIGHT = 320;
5674
- var Combobox = ({
5675
- // root props
5676
- items: _itemsProp,
5677
- value,
5678
- defaultValue,
5679
- onValueChange,
5680
- itemToStringLabel: itemToStringLabelProp,
5681
- itemToStringValue,
5682
- disabled,
5683
- filter,
5684
- inputRef,
5685
- onOpenChangeComplete,
5686
- isItemEqualToValue: isItemEqualToValueProp,
5687
- // input props
5688
- variant,
5689
- sizing,
5690
- focusVariant,
5691
- state,
5692
- placeholder,
5693
- allowClear,
5694
- id,
5695
- className,
5696
- // own props
5697
- empty = "No items",
5698
- indicator,
5699
- prefix,
5700
- virtualized = false,
5701
- // creatable
5702
- allowCreate,
5703
- queryToCreateValue,
5704
- queryToCreateLabel = defaultQueryToCreateLabel,
5705
- // own item props
5706
- itemToDisabled = defaultItemToDisabled,
5707
- itemToLabel = defaultItemToLabel,
5708
- itemToIcon = defaultItemToIcon,
5709
- groupToLabel = defaultGroupToLabel
5710
- }) => {
5711
- const closeReasonRef = useRef(
5712
- "none"
5713
- );
5714
- const [inputValue, setInputValue] = useState(() => {
5715
- const initial = value !== void 0 ? value : defaultValue;
5716
- if (initial == null) return "";
5717
- return itemToStringLabelProp?.(initial) ?? toLabel(initial);
5718
- });
5719
- useEffect(() => {
5720
- if (value === void 0) return;
5721
- const label = value === null ? "" : itemToStringLabelProp?.(value) ?? toLabel(value);
5722
- setInputValue((prev) => prev === label ? prev : label);
5723
- }, [value]);
5724
- const selectedLabel = value == null ? void 0 : itemToStringLabelProp?.(value) ?? toLabel(value);
5725
- const isShowingSelection = selectedLabel !== void 0 && inputValue === selectedLabel;
5726
- const query = (isShowingSelection ? "" : inputValue).trim();
5727
- const queryLower = query.toLowerCase();
5728
- const itemsProp = _itemsProp ?? [];
5729
- const sampleItem = itemsProp.flatMap((item) => isGroupItem(item) ? item.items : [item])[0];
5730
- const [createdItems, setCreatedItems] = useState([]);
5731
- const allItems = (() => {
5732
- if (createdItems.length === 0) return itemsProp;
5733
- if (isGroupItems(itemsProp))
5734
- return [...itemsProp, { items: createdItems }];
5735
- return [...itemsProp, ...createdItems];
5736
- })();
5737
- const items = (() => {
5738
- if (!allowCreate || disabled) return allItems;
5739
- if (!query) return allItems;
5740
- const exactMatch = allItems.flatMap((item) => isGroupItem(item) ? item.items : [item]).some(
5741
- (item) => (itemToStringLabelProp?.(item) ?? toLabel(item)).toLowerCase() === queryLower
5742
- );
5743
- if (exactMatch) return allItems;
5744
- const creatable = isGroupItems(itemsProp) ? [{ items: [createCreatableItem(query)] }] : [createCreatableItem(query)];
5745
- return [...allItems, ...creatable];
5746
- })();
5747
- const itemToStringLabel = (value2) => {
5748
- if (isCreatableItem(value2)) return value2.value;
5749
- return itemToStringLabelProp?.(value2) ?? toLabel(value2);
5750
- };
5751
- const wrappedFilter = isShowingSelection ? () => true : !allowCreate || !filter ? filter : (item, ...args) => isCreatableItem(item) || filter(item, ...args);
5752
- const wrappedItemToStringValue = !allowCreate || !itemToStringValue ? itemToStringValue : (item) => isCreatableItem(item) ? item.value : itemToStringValue(item);
5753
- const isItemEqualToValue = (a, b) => {
5754
- if (isCreatableItem(a) || isCreatableItem(b)) return toValueKey(a) === toValueKey(b);
5755
- return isItemEqualToValueProp?.(a, b) ?? Object.is(a, b);
5756
- };
5757
- const handleInputValueChange = (value2, { reason }) => {
5758
- if (["input-clear", "none"].includes(reason) && ["item-press", "creatable-item-press"].includes(closeReasonRef.current)) {
5759
- closeReasonRef.current = "none";
5760
- return;
5761
- }
5762
- if (reason === "none" && closeReasonRef.current == "outside-click") {
5763
- closeReasonRef.current = "none";
5764
- setInputValue(value2);
5765
- return;
5766
- }
5767
- setInputValue(value2);
5768
- };
5769
- const handleOnOpenChangeComplete = (open) => {
5770
- onOpenChangeComplete?.(open);
5771
- if (open) return;
5772
- if (closeReasonRef.current !== "none") return;
5773
- closeReasonRef.current = "outside-click";
5774
- };
5775
- const handleOnValueChange = (next, event) => {
5776
- if (isCreatableItem(next)) {
5777
- const newValue = defaultToCreateValue(next.value, sampleItem, queryToCreateValue);
5778
- closeReasonRef.current = "creatable-item-press";
5779
- setCreatedItems((prev) => [...prev, newValue]);
5780
- onValueChange?.(newValue, event);
5781
- return;
5782
- }
5783
- closeReasonRef.current = "item-press";
5784
- onValueChange?.(next, event);
5785
- };
5786
- const [listElement, setListElement] = useState(null);
5787
- const isGrouped = isGroupItems(allItems);
5788
- const shouldVirtualize = !isGrouped && (virtualized === true || virtualized === "auto" && allItems.length > VIRTUALIZE_THRESHOLD);
5789
- const matchesQuery = (item) => {
5790
- if (isCreatableItem(item)) return true;
5791
- if (!query) return true;
5792
- if (filter) return !!filter(item, query, (value2) => itemToStringLabel(value2) ?? toLabel(value2));
5793
- return (itemToStringLabel(item) ?? toLabel(item)).toLowerCase().includes(queryLower);
5794
- };
5795
- const virtualItems = shouldVirtualize ? items.filter(matchesQuery) : [];
5796
- const virtualizer = useVirtualizer({
5797
- count: virtualItems.length,
5798
- getScrollElement: () => listElement,
5799
- estimateSize: () => ESTIMATED_ROW_HEIGHT,
5800
- overscan: 12,
5801
- enabled: shouldVirtualize,
5802
- // Seed a viewport height so rows paint on the first frame. Without it the list measures 0 until
5803
- // the ResizeObserver fires (a frame later), which renders an empty popup on open.
5804
- initialRect: { width: 0, height: ESTIMATED_LIST_HEIGHT }
5805
- });
5806
- const renderItem = (item, index) => {
5807
- if (isCreatableItem(item)) {
5808
- return /* @__PURE__ */ jsx(Combobox.Item, { index, value: item, icon: /* @__PURE__ */ jsx(Plus, {}), children: queryToCreateLabel(item.value) });
5809
- }
5810
- return /* @__PURE__ */ jsx(
5811
- Combobox.Item,
5812
- {
5813
- index,
5814
- value: item,
5815
- indicator,
5816
- icon: itemToIcon(item),
5817
- disabled: itemToDisabled(item),
5818
- children: itemToLabel(item)
5819
- }
5820
- );
5821
- };
5822
- const rowStyle = (offset) => ({
5823
- position: "absolute",
5824
- top: 0,
5825
- left: 0,
5826
- width: "100%",
5827
- transform: `translateY(${offset}px)`
5828
- });
5829
- return /* @__PURE__ */ jsxs(
5830
- Combobox$1.Root,
5831
- {
5832
- items: shouldVirtualize ? virtualItems : items,
5833
- value,
5834
- defaultValue,
5835
- filter: shouldVirtualize ? null : wrappedFilter,
5836
- onValueChange: handleOnValueChange,
5837
- itemToStringLabel,
5838
- isItemEqualToValue,
5839
- itemToStringValue: wrappedItemToStringValue,
5840
- onOpenChangeComplete: handleOnOpenChangeComplete,
5841
- disabled,
5842
- inputRef,
5843
- inputValue,
5844
- onInputValueChange: handleInputValueChange,
5845
- virtualized: shouldVirtualize,
5846
- onItemHighlighted: (_, details) => {
5847
- if (shouldVirtualize && details.reason === "keyboard") {
5848
- virtualizer.scrollToIndex(details.index);
5849
- }
5850
- },
5851
- children: [
5852
- /* @__PURE__ */ jsxs(
5853
- ComboboxInputGroup,
5854
- {
5855
- variant,
5856
- sizing,
5857
- state,
5858
- focusVariant,
5859
- className,
5860
- children: [
5861
- prefix && /* @__PURE__ */ jsx(InputGroup.Addon, { align: "inline-start", children: prefix }),
5862
- /* @__PURE__ */ jsx(ComboboxInput, { id, placeholder, disabled }),
5863
- /* @__PURE__ */ jsxs(InputGroup.Addon, { align: "inline-end", children: [
5864
- allowClear && /* @__PURE__ */ jsx(InputGroup.Button, { asChild: true, "aria-label": "Clear", disabled, children: /* @__PURE__ */ jsx(Combobox$1.Clear, { children: /* @__PURE__ */ jsx(X, { className: "tw:size-4" }) }) }),
5865
- /* @__PURE__ */ jsx(InputGroup.Button, { disabled, asChild: true, "aria-label": "Open combobox", children: /* @__PURE__ */ jsx(Combobox$1.Trigger, { children: /* @__PURE__ */ jsx(ChevronDown, { className: "tw:size-4" }) }) })
5866
- ] })
5867
- ]
5868
- }
5869
- ),
5870
- /* @__PURE__ */ jsxs(ComboboxContent, { children: [
5871
- /* @__PURE__ */ jsx(ComboboxEmpty, { children: empty }),
5872
- shouldVirtualize ? /* @__PURE__ */ jsx(ComboboxList, { ref: setListElement, children: /* @__PURE__ */ jsx(
5873
- "div",
5874
- {
5875
- style: {
5876
- position: "relative",
5877
- width: "100%",
5878
- height: `${virtualizer.getTotalSize()}px`
5879
- },
5880
- children: virtualizer.getVirtualItems().map((row) => {
5881
- const item = virtualItems[row.index];
5882
- if (item === void 0) return null;
5883
- return /* @__PURE__ */ jsx(
5884
- "div",
5885
- {
5886
- "data-index": row.index,
5887
- ref: virtualizer.measureElement,
5888
- style: rowStyle(row.start),
5889
- children: renderItem(item, row.index)
5890
- },
5891
- row.key
5892
- );
5893
- })
5894
- }
5895
- ) }) : /* @__PURE__ */ jsx(ComboboxList, { children: (itemOrGroup) => {
5896
- if (isCreatableItem(itemOrGroup))
5897
- return /* @__PURE__ */ jsx(Combobox.Item, { value: itemOrGroup, icon: /* @__PURE__ */ jsx(Plus, {}), children: queryToCreateLabel(itemOrGroup.value) });
5898
- if (isGroupItem(itemOrGroup)) {
5899
- const maybeCreatable = itemOrGroup.items[0];
5900
- if (isCreatableItem(maybeCreatable)) {
5901
- return /* @__PURE__ */ jsx(Combobox.Item, { value: maybeCreatable, icon: /* @__PURE__ */ jsx(Plus, {}), children: queryToCreateLabel(maybeCreatable.value) });
5902
- }
5903
- const groupLabel = groupToLabel(itemOrGroup);
5904
- return /* @__PURE__ */ jsxs(Combobox.Group, { items: itemOrGroup.items, children: [
5905
- groupLabel && /* @__PURE__ */ jsx(Combobox.GroupLabel, { children: groupLabel }),
5906
- /* @__PURE__ */ jsx(Combobox.GroupList, { children: (item) => renderItem(item) })
5907
- ] });
5908
- }
5909
- return renderItem(itemOrGroup);
5910
- } })
5911
- ] })
5912
- ]
5913
- }
5914
- );
5915
- };
5916
- Combobox.Root = ComboboxRoot;
5917
- Combobox.InputGroup = ComboboxInputGroup;
5918
- Combobox.Input = ComboboxInput;
5919
- Combobox.Content = ComboboxContent;
5920
- Combobox.List = ComboboxList;
5921
- Combobox.Item = ComboboxItem;
5922
- Combobox.Empty = ComboboxEmpty;
5923
- Combobox.Value = Combobox$1.Value;
5924
- Combobox.Separator = ComboboxSeparator;
5925
- Combobox.Group = ComboboxGroup;
5926
- Combobox.GroupLabel = ComboboxGroupLabel;
5927
- Combobox.GroupList = ComboboxCollection;
5928
- Combobox.Chips = ComboboxChips;
5929
-
5930
- // src/blocks/DateInput/helpers.ts
5931
- var formatDate = (date, inputValue) => {
5932
- if (!date) {
5933
- return inputValue;
5934
- }
5935
- return date.toLocaleDateString();
5936
- };
5937
- var datePartOrder = new Intl.DateTimeFormat().formatToParts(new Date(2e3, 0, 2)).filter(
5938
- (p) => p.type === "day" || p.type === "month" || p.type === "year"
5939
- ).map((p) => p.type);
5940
- var parseDate = (value) => {
5941
- if (!value.trim()) return null;
5942
- const nums = value.match(/\d+/g)?.map(Number);
5943
- if (nums && nums.length >= 3) {
5944
- const parts = Object.fromEntries(datePartOrder.map((type, i) => [type, nums[i]]));
5945
- const year = parts.year;
5946
- const month = parts.month;
5947
- const day = parts.day;
5948
- if (year != null && month != null && day != null && month >= 1 && month <= 12 && day >= 1 && day <= 31) {
5949
- const date = new Date(year, month - 1, day);
5950
- if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {
5951
- return date;
5952
- }
5953
- }
5954
- }
5955
- const isoMatch = value.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);
5956
- if (isoMatch) {
5957
- const y = Number(isoMatch[1]);
5958
- const m = Number(isoMatch[2]) - 1;
5959
- const d = Number(isoMatch[3]);
5960
- const date = new Date(y, m, d);
5961
- if (date.getFullYear() === y && date.getMonth() === m && date.getDate() === d) {
5962
- return date;
5963
- }
5964
- return null;
5965
- }
5966
- const fallback = new Date(value);
5967
- return isNaN(fallback.getTime()) ? null : fallback;
5968
- };
5969
- var DateInput = ({
5970
- ref,
5971
- // group props
5972
- state,
5973
- variant,
5974
- focusVariant,
5975
- sizing,
5976
- className,
5977
- // own props
5978
- value,
5979
- defaultValue,
5980
- onValueChange,
5981
- onValueBlur,
5982
- onChange,
5983
- onBlur,
5984
- onFocus,
5985
- allowClear = false,
5986
- disabledDays,
5987
- endMonth,
5988
- startMonth,
5989
- // input props
5990
- disabled,
5991
- readOnly,
5992
- placeholder = "Select a date",
5993
- ...restInputProps
5994
- }) => {
5995
- const inputRef = useRef(null);
5996
- const [inputValue, setInputValue] = useState("");
5997
- const [hasFocus, setHasFocus] = useState(false);
5998
- const [isOpen, setIsOpen] = useState(false);
5999
- const [month, setMonth2] = useState(/* @__PURE__ */ new Date());
6000
- const [currentValue, setCurrentValue] = useControllableState({
6001
- prop: value,
6002
- defaultProp: defaultValue ?? null
6003
- });
6004
- const canClear = allowClear && !!currentValue && !disabled && !readOnly;
6005
- const showPicker = !disabled && !readOnly;
6006
- const handleChange = (event) => {
6007
- const newValue = event.target.value;
6008
- setInputValue(newValue);
6009
- onChange?.(event);
6010
- const parsedDate = parseDate(newValue);
6011
- if (parsedDate !== null || !newValue.trim()) {
6012
- onValueChange?.(parsedDate);
6013
- }
6014
- };
6015
- const handleFocus = (event) => {
6016
- const formatted = formatDate(currentValue, "");
6017
- setInputValue(formatted);
6018
- setHasFocus(true);
6019
- onFocus?.(event);
6020
- };
6021
- const handleBlur = (event) => {
6022
- setHasFocus(false);
6023
- onBlur?.(event);
6024
- const text = event.target.value;
6025
- const parsedDate = text === formatDate(currentValue, "") ? currentValue : parseDate(text);
6026
- onValueBlur?.(parsedDate);
6027
- setCurrentValue(parsedDate);
6028
- };
6029
- const handleDatePickerChange = (newValue) => {
6030
- const dateValue = newValue ?? null;
6031
- setCurrentValue(dateValue);
6032
- onValueChange?.(dateValue);
6033
- setHasFocus(false);
6034
- setIsOpen(false);
6035
- };
6036
- const handleClear = () => {
6037
- if (!inputRef.current) return;
6038
- inputRef.current.value = "";
6039
- setInputValue("");
6040
- setCurrentValue(null);
6041
- onValueChange?.(null);
6042
- onChange?.(createChangeInputEvent(inputRef.current));
6043
- };
6044
- const handleOpenChange = (open) => {
6045
- if (open) {
6046
- setMonth2(currentValue ?? /* @__PURE__ */ new Date());
6047
- }
6048
- setIsOpen(open);
6049
- };
6050
- const displayValue = hasFocus ? inputValue : formatDate(currentValue, "");
6051
- return /* @__PURE__ */ jsxs(
6052
- InputGroup,
6053
- {
6054
- state,
6055
- variant,
6056
- sizing,
6057
- focusVariant,
6058
- className,
6059
- children: [
6060
- /* @__PURE__ */ jsx(
6061
- InputGroup.Input,
6062
- {
6063
- ...restInputProps,
6064
- ref: mergeRefs(ref ?? null, inputRef),
6065
- type: "text",
6066
- value: displayValue,
6067
- placeholder,
6068
- onChange: handleChange,
6069
- onFocus: handleFocus,
6070
- onBlur: handleBlur,
6071
- disabled,
6072
- readOnly
6073
- }
6074
- ),
6075
- (canClear || showPicker) && /* @__PURE__ */ jsxs(InputGroup.Addon, { align: "inline-end", children: [
6076
- canClear && /* @__PURE__ */ jsx(
6077
- InputGroup.Button,
6078
- {
6079
- "aria-label": "Clear date",
6080
- onMouseDown: (event) => event.preventDefault(),
6081
- onClick: handleClear,
6082
- children: /* @__PURE__ */ jsx(X, { className: "tw:size-4" })
6083
- }
6084
- ),
6085
- showPicker && /* @__PURE__ */ jsx(
6086
- DatePicker,
6087
- {
6088
- disabled: disabledDays,
6089
- endMonth,
6090
- mode: "single",
6091
- month,
6092
- onMonthChange: setMonth2,
6093
- onOpenChange: handleOpenChange,
6094
- onSelect: handleDatePickerChange,
6095
- open: isOpen,
6096
- selected: currentValue ?? void 0,
6097
- startMonth,
6098
- children: /* @__PURE__ */ jsx(InputGroup.Button, { "aria-label": "Select Date", children: /* @__PURE__ */ jsx(Calendar, { className: "tw:size-4" }) })
6099
- }
6100
- )
6101
- ] })
6102
- ]
6103
- }
6104
- );
6105
- };
6106
- var PasswordInput = ({
6107
- ref,
6108
- // group props
6109
- state,
6110
- variant,
6111
- focusVariant,
6112
- sizing,
6113
- className,
6114
- // own props
6115
- value: valueProp,
6116
- defaultValue,
6117
- onValueChange,
6118
- onValueBlur,
6119
- onChange,
6120
- onBlur,
6121
- onKeyDown,
6122
- onKeyUp,
6123
- onMouseDown,
6124
- allowClear = false,
6125
- allowPasswordToggle = false,
6126
- passwordToggleLabel,
6127
- autoComplete = "new-password",
6128
- defaultPasswordVisibility = false,
6129
- // input props
6130
- disabled,
6131
- readOnly,
6132
- ...restInputProps
6133
- }) => {
6134
- const inputRef = useRef(null);
6135
- const [value, setValue] = useControllableState({
6136
- // A `null` controlled value stays controlled (coerced to ''); `undefined` is uncontrolled.
6137
- prop: valueProp === null ? "" : valueProp,
6138
- defaultProp: defaultValue ?? "",
6139
- onChange: onValueChange
6140
- });
6141
- const [capsLock, setCapsLock] = useState(false);
6142
- const [isPasswordVisible, setIsPasswordVisible] = useState(defaultPasswordVisibility);
6143
- const canClear = allowClear && !!value && !disabled && !readOnly;
6144
- const handleChange = (event) => {
6145
- setValue(event.target.value);
6146
- onChange?.(event);
6147
- };
6148
- const handleBlur = (event) => {
6149
- if (capsLock) setCapsLock(false);
6150
- onValueBlur?.(event.target.value);
6151
- onBlur?.(event);
6152
- };
6153
- const handleKeyDown = (event) => {
6154
- const isOn = event.getModifierState("CapsLock");
6155
- if (isOn !== capsLock) setCapsLock(isOn);
6156
- onKeyDown?.(event);
6157
- };
6158
- const handleKeyUp = (event) => {
6159
- const isOn = event.getModifierState("CapsLock");
6160
- if (isOn !== capsLock) setCapsLock(isOn);
6161
- onKeyUp?.(event);
6162
- };
6163
- const handleMouseDown = (event) => {
6164
- const isOn = event.getModifierState("CapsLock");
6165
- if (isOn !== capsLock) setCapsLock(isOn);
6166
- onMouseDown?.(event);
6167
- };
6168
- const handleClear = () => {
6169
- if (!inputRef.current) return;
6170
- inputRef.current.value = "";
6171
- setValue("");
6172
- onChange?.(createChangeInputEvent(inputRef.current));
6173
- };
6174
- const handleTogglePasswordVisibility = () => {
6175
- setIsPasswordVisible((prev) => !prev);
6176
- };
6177
- return /* @__PURE__ */ jsxs(
6178
- InputGroup,
6179
- {
6180
- state,
6181
- variant,
6182
- sizing,
6183
- focusVariant,
6184
- className,
6185
- children: [
6186
- /* @__PURE__ */ jsx(
6187
- InputGroup.Input,
6188
- {
6189
- ...restInputProps,
6190
- ref: mergeRefs(ref ?? null, inputRef),
6191
- type: isPasswordVisible ? "text" : "password",
6192
- autoComplete,
6193
- value,
6194
- onChange: handleChange,
6195
- onBlur: handleBlur,
6196
- onKeyDown: handleKeyDown,
6197
- onKeyUp: handleKeyUp,
6198
- onMouseDown: handleMouseDown,
6199
- disabled,
6200
- readOnly
6201
- }
6202
- ),
6203
- (capsLock || canClear || allowPasswordToggle) && /* @__PURE__ */ jsxs(InputGroup.Addon, { align: "inline-end", children: [
6204
- capsLock && /* @__PURE__ */ jsx(ArrowBigUpDash, { className: "tw:size-4 tw:text-primary", children: /* @__PURE__ */ jsx("title", { children: "Caps Lock is on" }) }),
6205
- canClear && /* @__PURE__ */ jsx(
6206
- InputGroup.Button,
6207
- {
6208
- "aria-label": "Clear password",
6209
- onMouseDown: (event) => event.preventDefault(),
6210
- onClick: handleClear,
6211
- children: /* @__PURE__ */ jsx(X, { className: "tw:size-4" })
6212
- }
6213
- ),
6214
- allowPasswordToggle && /* @__PURE__ */ jsx(
6215
- InputGroup.Button,
6216
- {
6217
- "aria-label": `${isPasswordVisible ? "Hide password" : "Show password"}${passwordToggleLabel ? `: ${passwordToggleLabel}` : ""}`,
6218
- onMouseDown: (event) => event.preventDefault(),
6219
- onClick: handleTogglePasswordVisibility,
6220
- children: isPasswordVisible ? /* @__PURE__ */ jsx(EyeOff, { className: "tw:size-4" }) : /* @__PURE__ */ jsx(Eye, { className: "tw:size-4" })
6221
- }
6222
- )
6223
- ] })
6224
- ]
6225
- }
6226
- );
6227
- };
6228
- var CollapsibleContent = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsx(
6229
- Content$1,
6230
- {
6231
- ref,
6232
- className: cn(
6233
- "tw:data-[state=closed]:animate-collapsible-up",
6234
- "tw:data-[state=open]:animate-collapsible-down",
6235
- className
6236
- ),
6237
- ...props,
6238
- children
6239
- }
6240
- );
6241
- var Collapsible = (props) => /* @__PURE__ */ jsx(Root$2, { ...props });
6242
- Collapsible.Trigger = CollapsibleTrigger;
6243
- Collapsible.Content = CollapsibleContent;
6244
- var AlertAction = ({ ref, className, asChild = false, ...props }) => {
6245
- const Comp = asChild ? Slot : "div";
6246
- return /* @__PURE__ */ jsx(
6247
- Comp,
6248
- {
6249
- ...props,
6250
- ref,
6251
- className: cn(
6252
- "tw:col-start-3",
6253
- "tw:row-start-1",
6254
- "tw:self-start",
6255
- "tw:flex",
6256
- "tw:gap-2",
6257
- className
6258
- )
6259
- }
6260
- );
6261
- };
6262
- var AlertCollapsibleIcon = ({ open }) => /* @__PURE__ */ jsx(Tooltip, { placement: "top", tooltip: open ? "Collapse alert" : "Expand alert", triggerAsChild: true, children: /* @__PURE__ */ jsx(
6263
- ChevronDown,
6264
- {
6265
- className: cn(
6266
- "tw:mt-px",
6267
- "tw:size-5",
6268
- "tw:text-neutral-400",
6269
- "tw:group-data-[state=open]/alert:rotate-180",
6270
- // Legacy uses the fixed categorical hover scales; argo uses the themeable status tokens.
6271
- "tw:group-data-[variant=info]/alert:group-hover:text-blue-600",
6272
- "tw:group-data-[variant=info]/alert:group-data-[argo=true]/alert:group-hover:text-info",
6273
- "tw:group-data-[variant=warning]/alert:group-hover:text-warning-600",
6274
- "tw:group-data-[variant=warning]/alert:group-data-[argo=true]/alert:group-hover:text-warning",
6275
- "tw:group-data-[variant=error]/alert:group-hover:text-error-600",
6276
- "tw:group-data-[variant=error]/alert:group-data-[argo=true]/alert:group-hover:text-destructive",
6277
- "tw:group-data-[variant=success]/alert:group-hover:text-green-600",
6278
- "tw:group-data-[variant=success]/alert:group-data-[argo=true]/alert:group-hover:text-success"
6279
- )
6280
- }
6281
- ) });
6282
- var AlertDescription = ({ ref, children, className, ...rest }) => /* @__PURE__ */ jsx(
6283
- "div",
6284
- {
6285
- ...rest,
6286
- ref,
6287
- className: cn(
6288
- "tw:col-start-2",
6289
- "tw:group-has-[[data-slot=alert-title]]/alert:col-end-[-1]",
6290
- // spacer before description when a title exists (pseudo-element so it animates with Collapsible)
6291
- "tw:group-has-[[data-slot=alert-title]]/alert:before:block",
6292
- "tw:group-has-[[data-slot=alert-title]]/alert:before:h-4",
6293
- "tw:group-has-[[data-slot=alert-title]]/alert:before:content-['']",
6294
- "tw:break-anywhere",
6295
- // Default size for nested Lucide icons; callers can override on the icon.
6296
- "tw:[&_svg.lucide:not([class*='tw:size-'])]:size-4",
6297
- "tw:[&_svg]:shrink-0",
6298
- className
6299
- ),
6300
- children
6301
- }
6302
- );
6303
- var VARIANT_ICONS = {
6304
- info: /* @__PURE__ */ jsx(Info, {}),
6305
- warning: /* @__PURE__ */ jsx(AlertTriangle, {}),
6306
- error: /* @__PURE__ */ jsx(AlertTriangle, {}),
6307
- success: /* @__PURE__ */ jsx(CircleCheck, {})
6308
- };
6309
- var AlertIcon = ({ variant, icon, className, ...rest }) => /* @__PURE__ */ jsx(
6310
- "span",
6311
- {
6312
- ...rest,
6313
- "data-slot": "alert-icon",
6314
- className: cn(
6315
- "tw:inline-flex",
6316
- "tw:items-center",
6317
- "tw:justify-center",
6318
- "tw:self-start",
6319
- "tw:p-0.5",
6320
- 'tw:[&_svg:not([class*="tw:size-"])]:size-4',
6321
- // Legacy uses the fixed categorical icon scales; argo uses the themeable status tokens.
6322
- "tw:group-data-[variant=info]/alert:text-blue-500",
6323
- "tw:group-data-[variant=info]/alert:group-data-[argo=true]/alert:text-info",
6324
- "tw:group-data-[variant=warning]/alert:text-warning-500",
6325
- "tw:group-data-[variant=warning]/alert:group-data-[argo=true]/alert:text-warning",
6326
- "tw:group-data-[variant=error]/alert:text-error-500",
6327
- "tw:group-data-[variant=error]/alert:group-data-[argo=true]/alert:text-destructive",
6328
- "tw:group-data-[variant=success]/alert:text-green-500",
6329
- "tw:group-data-[variant=success]/alert:group-data-[argo=true]/alert:text-success",
6330
- className
6331
- ),
6332
- children: icon ?? VARIANT_ICONS[variant]
6333
- }
6334
- );
6335
- var AlertRoot = ({ ref, children, className, variant, ...rest }) => {
6336
- const renderArgo = useArgoDesign();
6337
- return /* @__PURE__ */ jsx(
6338
- "div",
6339
- {
6340
- ...rest,
6341
- ref,
6342
- "data-variant": variant,
6343
- "data-argo": renderArgo,
6344
- className: cn(
6345
- "tw:group/alert",
6346
- // layout
6347
- "tw:grid",
6348
- "tw:grid-cols-[0_1fr_auto]",
6349
- "tw:has-[[data-slot=alert-icon]]:grid-cols-[auto_1fr_auto]",
6350
- "tw:has-[[data-slot=alert-icon]]:gap-x-2",
6351
- // fonts
6352
- "tw:text-sm",
6353
- // Legacy keeps the fixed neutral text; argo uses the semantic foreground
6354
- // so the alert flips with the brand's light/dark palette (the categorical
6355
- // variant tint stays — only the text token becomes brand-aware).
6356
- "tw:text-neutral-800",
6357
- "tw:data-[argo=true]:text-foreground",
6358
- "tw:text-left",
6359
- "tw:p-4",
6360
- // border — legacy keeps a fixed radius; argo follows the brand radius token.
6361
- "tw:rounded",
6362
- "tw:data-[argo=true]:rounded-[var(--radius-lg,0.25rem)]",
6363
- "tw:border",
6364
- "tw:border-solid",
6365
- // Variant tint + border. Legacy keeps the fixed categorical scales (solid
6366
- // pastel tint); argo uses the brand-overridable status tokens (bg at 10%,
6367
- // border at 25%) so status re-skins with the brand. The argo tokens carry
6368
- // AA-legible defaults, so the variant icon (AlertIcon, full-strength
6369
- // `tw:text-<role>`) clears ≥4.5:1 on the tint in both light and dark.
6370
- "tw:data-[variant=info]:bg-blue-100",
6371
- "tw:data-[variant=info]:border-blue-200",
6372
- "tw:data-[variant=info]:data-[argo=true]:bg-info/10",
6373
- "tw:data-[variant=info]:data-[argo=true]:border-info/25",
6374
- "tw:data-[variant=warning]:bg-warning-100",
6375
- "tw:data-[variant=warning]:border-warning-300",
6376
- "tw:data-[variant=warning]:data-[argo=true]:bg-warning/10",
6377
- "tw:data-[variant=warning]:data-[argo=true]:border-warning/25",
6378
- "tw:data-[variant=error]:bg-error-100",
6379
- "tw:data-[variant=error]:border-error-200",
6380
- "tw:data-[variant=error]:data-[argo=true]:bg-destructive/10",
6381
- "tw:data-[variant=error]:data-[argo=true]:border-destructive/25",
6382
- "tw:data-[variant=success]:bg-green-100",
6383
- "tw:data-[variant=success]:border-green-200",
6384
- "tw:data-[variant=success]:data-[argo=true]:bg-success/10",
6385
- "tw:data-[variant=success]:data-[argo=true]:border-success/25",
6386
- className
6387
- ),
6388
- children
6389
- }
6390
- );
6391
- };
6392
- var AlertTitle = ({ ref, className, ...props }) => /* @__PURE__ */ jsx(
6393
- "div",
6394
- {
6395
- ...props,
6396
- ref,
6397
- "data-slot": "alert-title",
6398
- className: cn(
6399
- "tw:group/alert-title",
6400
- "tw:flex",
6401
- "tw:col-start-2",
6402
- "tw:font-medium",
6403
- "tw:items-center",
6404
- className
6405
- )
6406
- }
6407
- );
6408
- var Alert = ({
6409
- title,
6410
- variant = "info",
6411
- children,
6412
- hideIcon = false,
6413
- icon,
6414
- className,
6415
- actions,
6416
- mode = "default",
6417
- // collapsible props
6418
- defaultOpen = true,
6419
- open: openProp,
6420
- onOpenChange: onOpenChangeProp,
6421
- ...rest
6422
- }) => {
6423
- const isControlled = openProp !== void 0;
6424
- const [innerOpen, setInnerOpen] = useState(defaultOpen);
6425
- const open = isControlled ? openProp : innerOpen;
6426
- const handleOpenChange = (nextOpen) => {
6427
- if (!isControlled) {
6428
- setInnerOpen(nextOpen);
6429
- }
6430
- onOpenChangeProp?.(nextOpen);
6431
- };
6432
- const isCollapsible = mode === "collapsible" && !!title && !!children && !actions;
6433
- if (isCollapsible)
6434
- return /* @__PURE__ */ jsx(Collapsible, { open, onOpenChange: handleOpenChange, asChild: true, children: /* @__PURE__ */ jsxs(AlertRoot, { ...rest, variant, className, children: [
6435
- /* @__PURE__ */ jsxs(
6436
- Collapsible.Trigger,
6437
- {
6438
- className: cn(
6439
- "tailwindcss-preflight",
6440
- "tw:group",
6441
- "tw:col-span-full",
6442
- "tw:grid",
6443
- "tw:grid-cols-subgrid",
6444
- "tw:rounded-sm",
6445
- "tw:focus-visible:outline",
6446
- "tw:focus-visible:outline-2",
6447
- "tw:focus-visible:outline-ring"
6448
- ),
6449
- children: [
6450
- !hideIcon && /* @__PURE__ */ jsx(AlertIcon, { variant, icon }),
6451
- /* @__PURE__ */ jsx(AlertTitle, { children: title }),
6452
- /* @__PURE__ */ jsx(AlertCollapsibleIcon, { open })
6453
- ]
6454
- }
6455
- ),
6456
- /* @__PURE__ */ jsx(Collapsible.Content, { asChild: true, children: /* @__PURE__ */ jsx(AlertDescription, { children }) })
6457
- ] }) });
6458
- return /* @__PURE__ */ jsxs(AlertRoot, { ...rest, variant, className, children: [
6459
- !hideIcon && /* @__PURE__ */ jsx(AlertIcon, { variant, icon }),
6460
- title && /* @__PURE__ */ jsx(AlertTitle, { children: title }),
6461
- children && /* @__PURE__ */ jsx(AlertDescription, { children }),
6462
- actions && /* @__PURE__ */ jsx(AlertAction, { children: actions })
6463
- ] });
6464
- };
6465
- var Collapse = ({
6466
- open,
6467
- header,
6468
- className,
6469
- bodyClassName,
6470
- children,
6471
- onClick,
6472
- animationClassName,
6473
- hidden,
6474
- ...rest
6475
- }) => {
6476
- return /* @__PURE__ */ jsxs(
6477
- "div",
6478
- {
6479
- ...rest,
6480
- hidden,
6481
- role: onClick && "button",
6482
- tabIndex: onClick ? 0 : void 0,
6483
- onClick,
6484
- onKeyDown: (e) => {
6485
- if (onClick && (e.key === "Enter" || e.key === " ")) {
6486
- onClick();
6487
- }
6488
- },
6489
- "data-state": open ? "open" : "closed",
6490
- className: cn("tw:group tw:flex tw:flex-col", className, {
6491
- "tw:cursor-pointer": onClick,
6492
- "tw:hidden": hidden
6493
- }),
6494
- children: [
6495
- header,
6496
- /* @__PURE__ */ jsx(
6497
- "div",
6498
- {
6499
- className: cn(
6500
- "tw:grid tw:duration-300",
6501
- open ? "tw:grid-rows-[1fr]" : "tw:grid-rows-[0fr]",
6502
- animationClassName
6503
- ),
6504
- children: /* @__PURE__ */ jsx("div", { className: cn("tw:overflow-hidden", open && "tw:animate-collapseDown", bodyClassName), children })
6505
- }
6506
- )
6507
- ]
6508
- }
6509
- );
6510
- };
6511
- var headerVariants = cva(
6512
- "tw:flex tw:flex-1 tw:items-center tw:gap-2 tw:rounded tw:px-4 tw:py-2.5 tw:text-sm tw:text-muted-foreground",
6513
- {
6514
- variants: {
6515
- variant: {
6516
- default: "tw:bg-muted",
6517
- white: "tw:bg-card"
6518
- },
6519
- isDisabled: {
6520
- true: "tw:cursor-not-allowed tw:opacity-50",
6521
- false: ""
6522
- },
6523
- hasEnforcedState: {
6524
- true: "",
6525
- false: ""
6526
- }
6527
- },
6528
- compoundVariants: [
6529
- {
6530
- isDisabled: false,
6531
- hasEnforcedState: false,
6532
- class: "tw:cursor-pointer tw:hover:text-primary"
6533
- }
6534
- ],
6535
- defaultVariants: {
6536
- variant: "default",
6537
- isDisabled: false,
6538
- hasEnforcedState: false
6539
- }
6540
- }
6541
- );
6542
- var CollapsiblePanel = ({
6543
- header,
6544
- className,
6545
- bodyClassName,
6546
- headerClassName,
6547
- defaultExpanded = false,
6548
- isDisabled = false,
6549
- children,
6550
- isOpen,
6551
- onToggle,
6552
- variant = "default"
6553
- }) => {
6554
- const [isUncontrolledOpen, setIsUncontrolledOpen] = useState(defaultExpanded);
6555
- const open = isOpen ?? isUncontrolledOpen;
6556
- const hasEnforcedState = isOpen !== void 0 && onToggle === void 0;
6557
- const handleCollapse = (event) => {
6558
- if (event) {
6559
- event.stopPropagation();
6560
- }
6561
- if (!isDisabled) {
6562
- setIsUncontrolledOpen(!isUncontrolledOpen);
6563
- }
6564
- };
6565
- const handleClick = (e) => {
6566
- if (onToggle) {
6567
- onToggle(e);
6568
- return;
6569
- }
6570
- handleCollapse(e);
6571
- };
6572
- const handleKeyUp = (e) => {
6573
- if ([keyCodes.ENTER, keyCodes.SPACE].includes(e.key)) {
6574
- handleClick(e);
6575
- }
6576
- };
6577
- return /* @__PURE__ */ jsx(
6578
- Collapse,
6579
- {
6580
- open,
6581
- className: cn(
6582
- "tw:rounded tw:!border tw:!border-solid tw:!border-border tw:bg-card",
6583
- className
6584
- ),
6585
- header: /* @__PURE__ */ jsxs(
6586
- "div",
6587
- {
6588
- className: cn(headerVariants({ variant, isDisabled, hasEnforcedState }), headerClassName),
6589
- ...!hasEnforcedState && !isDisabled && {
6590
- role: "button",
6591
- tabIndex: 0,
6592
- onClick: handleClick,
6593
- onKeyUp: handleKeyUp
6594
- },
6595
- children: [
6596
- /* @__PURE__ */ jsx("div", { className: "tw:flex tw:flex-1 tw:items-center tw:gap-2 tw:py-px tw:text-sm tw:font-medium tw:text-foreground", children: header }),
6597
- !isDisabled && /* @__PURE__ */ jsx("div", { className: "tw:ml-auto tw:shrink-0", children: /* @__PURE__ */ jsx(ChevronDown, { className: cn("tw:size-5 tw:group-data-[state=open]:rotate-180") }) })
6598
- ]
6599
- }
6600
- ),
6601
- children: /* @__PURE__ */ jsx("div", { className: cn("tw:px-4 tw:py-3", bodyClassName), children })
6602
- }
6603
- );
6604
- };
6605
-
6606
- // src/components/Tabs/styles.ts
6607
- var tabsListWrapperClass = "tw:shrink-0 tw:border-t-0 tw:border-x-0 tw:border-b tw:border-solid tw:border-border";
6608
- var tabsListClass = "tw:flex tw:gap-8 tw:shrink-0 tw:w-max";
6609
- var tabsTriggerGroupClass = "tw:group/tab-trigger-group tw:flex tw:shrink-0 tw:items-center";
6610
- var tabsTriggerClass = "tw:focus-visible:outline-hidden tw:focus-visible:ring-2 tw:focus-visible:ring-inset tw:focus-visible:ring-ring tw:flex tw:justify-center tw:items-center tw:gap-1.5 tw:bg-transparent tw:shrink-0 tw:border-t-0 tw:border-x-0 tw:border-b-[3px] tw:border-solid tw:border-transparent tw:pt-2.5 tw:pb-5 tw:px-0 tw:m-0 tw:font-medium tw:leading-5 tw:text-muted-foreground tw:text-base tw:data-[state=active]:text-primary tw:data-[state=active]:border-primary tw:data-[disabled]:text-muted-foreground tw:data-[disabled]:opacity-50 tw:data-[disabled]:cursor-not-allowed tw:group-hover/tab-trigger-group:enabled:text-primary tw:group-hover/tab-trigger-group:enabled:border-primary tw:group-hover/tab-trigger-group:enabled:cursor-pointer";
6611
- var tabsTriggerCompactClass = "tw:text-sm tw:pb-4";
6612
- var TabsList = ({ className, children, ...rest }) => /* @__PURE__ */ jsx(ScrollArea, { orientation: "horizontal", className: tabsListWrapperClass, children: /* @__PURE__ */ jsx(RadixTabs.List, { ...rest, "data-slot": "tabs-list", className: cn(tabsListClass, className), children }) });
6613
- var TabsTrigger = ({ className, compact = false, ...rest }) => /* @__PURE__ */ jsx(
6614
- RadixTabs.Trigger,
6615
- {
6616
- "data-slot": "tabs-trigger",
6617
- ...rest,
6618
- className: cn(tabsTriggerClass, compact && tabsTriggerCompactClass, className)
6619
- }
6620
- );
6621
- var Tabs = ({
6622
- triggers,
6623
- compact = false,
6624
- children,
6625
- defaultValue,
6626
- onValueChange,
6627
- rootClassName,
6628
- listClassName,
6629
- triggerClassName,
6630
- triggerGroupClassName,
6631
- ...rest
6632
- }) => /* @__PURE__ */ jsxs(
6633
- RadixTabs.Root,
6634
- {
6635
- ...rest,
6636
- "data-slot": "tabs-root",
6637
- className: cn("tw:flex tw:flex-col tw:gap-6", rootClassName),
6638
- defaultValue: defaultValue ?? triggers[0]?.value,
6639
- onValueChange,
6640
- children: [
6641
- /* @__PURE__ */ jsx(TabsList, { className: listClassName, children: triggers.map(({ value, title, onClose, className: callerClassName, ...triggerRest }) => /* @__PURE__ */ jsxs(
6642
- "div",
6643
- {
6644
- className: cn(tabsTriggerGroupClass, triggerGroupClassName),
6645
- "data-slot": "tabs-trigger-group",
6646
- children: [
6647
- /* @__PURE__ */ jsx(
6648
- TabsTrigger,
6649
- {
6650
- value,
6651
- compact,
6652
- ...triggerRest,
6653
- className: cn(triggerClassName, callerClassName),
6654
- children: title
6655
- }
6656
- ),
6657
- onClose && /* @__PURE__ */ jsx(
6658
- Button,
6659
- {
6660
- type: "button",
6661
- variant: "inline",
6662
- size: "icon-3xs",
6663
- disabled: triggerRest.disabled,
6664
- onClick: () => onClose(value),
6665
- onMouseDown: (e) => e.preventDefault(),
6666
- className: "tw:!size-8 tw:opacity-0 tw:duration-200 tw:focus-visible:opacity-100 tw:group-focus-within/tab-trigger-group:opacity-100 tw:group-hover/tab-trigger-group:opacity-100",
6667
- "aria-label": typeof title === "string" ? `Close ${title}` : "Close tab",
6668
- children: /* @__PURE__ */ jsx(X, { className: "tw:size-4" })
6669
- }
6670
- )
6671
- ]
6672
- },
6673
- value
6674
- )) }),
6675
- children
6676
- ]
6677
- }
6678
- );
6679
- var TabsContent = (props) => /* @__PURE__ */ jsx(RadixTabs.Content, { "data-slot": "tabs-content", tabIndex: -1, ...props });
4383
+ Calendar.displayName = "Calendar";
6680
4384
 
6681
- export { Alert, Badge, Calendar2 as Calendar, Checkbox, Collapse, Collapsible, CollapsiblePanel, Combobox, DateInput, DatePicker, FieldBox, Link, PasswordInput, Popover, RadioGroup, Separator, Tabs, TabsContent, createCreatableItem, debounce, defaultGroupToLabel, defaultItemToDisabled, defaultItemToIcon, defaultItemToLabel, defaultQueryToCreateLabel, defaultToCreateValue, isCreatableItem, isGroupItem, isGroupItems, isLabeledItem, toLabel };
6682
- //# sourceMappingURL=chunk-6FPEI4EM.js.map
6683
- //# sourceMappingURL=chunk-6FPEI4EM.js.map
4385
+ export { Calendar };
4386
+ //# sourceMappingURL=chunk-YI3WLXEN.js.map
4387
+ //# sourceMappingURL=chunk-YI3WLXEN.js.map