@keboola/design 10.1.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (504) hide show
  1. package/AGENTS.md +2 -0
  2. package/dist/MermaidDiagram-ZU5KAVRT.js +18 -0
  3. package/dist/{MermaidDiagram-EOKJHQQV.js.map → MermaidDiagram-ZU5KAVRT.js.map} +1 -1
  4. package/dist/charts.d.ts +14 -8
  5. package/dist/charts.js +6 -1
  6. package/dist/charts.js.map +1 -1
  7. package/dist/chunk-2YYJDKSP.js +51 -0
  8. package/dist/chunk-2YYJDKSP.js.map +1 -0
  9. package/dist/chunk-3P5UUCFI.js +385 -0
  10. package/dist/chunk-3P5UUCFI.js.map +1 -0
  11. package/dist/chunk-3QDFDDWZ.js +99 -0
  12. package/dist/chunk-3QDFDDWZ.js.map +1 -0
  13. package/dist/chunk-3W27OLK5.js +15 -0
  14. package/dist/chunk-3W27OLK5.js.map +1 -0
  15. package/dist/chunk-4FIZZONW.js +40 -0
  16. package/dist/chunk-4FIZZONW.js.map +1 -0
  17. package/dist/chunk-4GIAXOJG.js +133 -0
  18. package/dist/chunk-4GIAXOJG.js.map +1 -0
  19. package/dist/chunk-52NDNMK7.js +99 -0
  20. package/dist/chunk-52NDNMK7.js.map +1 -0
  21. package/dist/chunk-576G5OES.js +201 -0
  22. package/dist/chunk-576G5OES.js.map +1 -0
  23. package/dist/chunk-5AIE6SET.js +659 -0
  24. package/dist/chunk-5AIE6SET.js.map +1 -0
  25. package/dist/chunk-5FTNAZRW.js +327 -0
  26. package/dist/chunk-5FTNAZRW.js.map +1 -0
  27. package/dist/chunk-5IG2S7ZY.js +70 -0
  28. package/dist/chunk-5IG2S7ZY.js.map +1 -0
  29. package/dist/chunk-5QCXHNCW.js +404 -0
  30. package/dist/chunk-5QCXHNCW.js.map +1 -0
  31. package/dist/chunk-6DUMGC7Y.js +105 -0
  32. package/dist/chunk-6DUMGC7Y.js.map +1 -0
  33. package/dist/chunk-6J25CVST.js +174 -0
  34. package/dist/chunk-6J25CVST.js.map +1 -0
  35. package/dist/chunk-6NN35XOP.js +120 -0
  36. package/dist/chunk-6NN35XOP.js.map +1 -0
  37. package/dist/chunk-6NZBVA4T.js +24 -0
  38. package/dist/chunk-6NZBVA4T.js.map +1 -0
  39. package/dist/chunk-6W5BHRCL.js +295 -0
  40. package/dist/chunk-6W5BHRCL.js.map +1 -0
  41. package/dist/chunk-72BKRCEG.js +409 -0
  42. package/dist/chunk-72BKRCEG.js.map +1 -0
  43. package/dist/{chunk-Q7NWXLCT.js → chunk-7GTI3PPI.js} +53 -48
  44. package/dist/chunk-7GTI3PPI.js.map +1 -0
  45. package/dist/chunk-7P6PLZ4B.js +74 -0
  46. package/dist/chunk-7P6PLZ4B.js.map +1 -0
  47. package/dist/chunk-7WZWY5IA.js +46 -0
  48. package/dist/chunk-7WZWY5IA.js.map +1 -0
  49. package/dist/chunk-AIYO2632.js +489 -0
  50. package/dist/chunk-AIYO2632.js.map +1 -0
  51. package/dist/chunk-ANFZWPNE.js +112 -0
  52. package/dist/chunk-ANFZWPNE.js.map +1 -0
  53. package/dist/chunk-ANZTVAJU.js +73 -0
  54. package/dist/chunk-ANZTVAJU.js.map +1 -0
  55. package/dist/chunk-BD5BTJKX.js +166 -0
  56. package/dist/chunk-BD5BTJKX.js.map +1 -0
  57. package/dist/chunk-BHGIDSRJ.js +140 -0
  58. package/dist/chunk-BHGIDSRJ.js.map +1 -0
  59. package/dist/chunk-BSQWZITZ.js +507 -0
  60. package/dist/chunk-BSQWZITZ.js.map +1 -0
  61. package/dist/chunk-D3LAIK62.js +23 -0
  62. package/dist/chunk-D3LAIK62.js.map +1 -0
  63. package/dist/chunk-DODCR43C.js +155 -0
  64. package/dist/chunk-DODCR43C.js.map +1 -0
  65. package/dist/chunk-EEK5NGZF.js +40 -0
  66. package/dist/chunk-EEK5NGZF.js.map +1 -0
  67. package/dist/chunk-ENRG7TXA.js +11 -0
  68. package/dist/chunk-ENRG7TXA.js.map +1 -0
  69. package/dist/chunk-EQRMGIGY.js +239 -0
  70. package/dist/chunk-EQRMGIGY.js.map +1 -0
  71. package/dist/{chunk-XV3UUOYF.js → chunk-ERAHK5YQ.js} +9 -359
  72. package/dist/chunk-ERAHK5YQ.js.map +1 -0
  73. package/dist/chunk-F3FOFY2P.js +124 -0
  74. package/dist/chunk-F3FOFY2P.js.map +1 -0
  75. package/dist/chunk-F6BTWFOC.js +507 -0
  76. package/dist/chunk-F6BTWFOC.js.map +1 -0
  77. package/dist/chunk-F6J6NNAL.js +34 -0
  78. package/dist/chunk-F6J6NNAL.js.map +1 -0
  79. package/dist/chunk-FCHJ7D5O.js +59 -0
  80. package/dist/chunk-FCHJ7D5O.js.map +1 -0
  81. package/dist/chunk-FFJTEQCC.js +80 -0
  82. package/dist/chunk-FFJTEQCC.js.map +1 -0
  83. package/dist/chunk-FUFMVW7O.js +64 -0
  84. package/dist/chunk-FUFMVW7O.js.map +1 -0
  85. package/dist/chunk-FVPGQ6UE.js +25 -0
  86. package/dist/chunk-FVPGQ6UE.js.map +1 -0
  87. package/dist/{chunk-JP7PNHLH.js → chunk-G3PMV62Z.js} +3 -10
  88. package/dist/chunk-G3PMV62Z.js.map +1 -0
  89. package/dist/chunk-GACFOW3E.js +51 -0
  90. package/dist/chunk-GACFOW3E.js.map +1 -0
  91. package/dist/chunk-GDT6HQMK.js +42 -0
  92. package/dist/chunk-GDT6HQMK.js.map +1 -0
  93. package/dist/chunk-HLGU22C6.js +2589 -0
  94. package/dist/chunk-HLGU22C6.js.map +1 -0
  95. package/dist/chunk-HPMYYGP7.js +134 -0
  96. package/dist/chunk-HPMYYGP7.js.map +1 -0
  97. package/dist/chunk-I2UCOD45.js +197 -0
  98. package/dist/chunk-I2UCOD45.js.map +1 -0
  99. package/dist/chunk-IEGDZUVM.js +75 -0
  100. package/dist/chunk-IEGDZUVM.js.map +1 -0
  101. package/dist/chunk-IIS7INHF.js +47 -0
  102. package/dist/chunk-IIS7INHF.js.map +1 -0
  103. package/dist/chunk-ITELSEFU.js +256 -0
  104. package/dist/chunk-ITELSEFU.js.map +1 -0
  105. package/dist/{chunk-CTCFYWJC.js → chunk-IXAYNBOY.js} +6 -6
  106. package/dist/{chunk-CTCFYWJC.js.map → chunk-IXAYNBOY.js.map} +1 -1
  107. package/dist/chunk-JUW2ETEI.js +191 -0
  108. package/dist/chunk-JUW2ETEI.js.map +1 -0
  109. package/dist/chunk-K65C7CVE.js +127 -0
  110. package/dist/chunk-K65C7CVE.js.map +1 -0
  111. package/dist/chunk-KDI64MCY.js +189 -0
  112. package/dist/chunk-KDI64MCY.js.map +1 -0
  113. package/dist/chunk-KN4ASMH5.js +160 -0
  114. package/dist/chunk-KN4ASMH5.js.map +1 -0
  115. package/dist/chunk-KQW7QNTU.js +1549 -0
  116. package/dist/chunk-KQW7QNTU.js.map +1 -0
  117. package/dist/chunk-KR7NXXHC.js +66 -0
  118. package/dist/chunk-KR7NXXHC.js.map +1 -0
  119. package/dist/chunk-KRZKIVMA.js +142 -0
  120. package/dist/chunk-KRZKIVMA.js.map +1 -0
  121. package/dist/{chunk-C3L3TBBT.js → chunk-KTTLLKGQ.js} +6 -63
  122. package/dist/chunk-KTTLLKGQ.js.map +1 -0
  123. package/dist/chunk-KWKSHPDP.js +234 -0
  124. package/dist/chunk-KWKSHPDP.js.map +1 -0
  125. package/dist/chunk-KZVC7OYG.js +57 -0
  126. package/dist/chunk-KZVC7OYG.js.map +1 -0
  127. package/dist/chunk-L5DHUN2V.js +204 -0
  128. package/dist/chunk-L5DHUN2V.js.map +1 -0
  129. package/dist/chunk-LCTGEH57.js +1376 -0
  130. package/dist/chunk-LCTGEH57.js.map +1 -0
  131. package/dist/chunk-LXLIQ2D6.js +12 -0
  132. package/dist/chunk-LXLIQ2D6.js.map +1 -0
  133. package/dist/chunk-M4CTURKX.js +84 -0
  134. package/dist/chunk-M4CTURKX.js.map +1 -0
  135. package/dist/chunk-M6LTUPVP.js +301 -0
  136. package/dist/chunk-M6LTUPVP.js.map +1 -0
  137. package/dist/chunk-MA6RRHDT.js +291 -0
  138. package/dist/chunk-MA6RRHDT.js.map +1 -0
  139. package/dist/chunk-MODE4QIA.js +6 -0
  140. package/dist/chunk-MODE4QIA.js.map +1 -0
  141. package/dist/chunk-MVILMVGG.js +118 -0
  142. package/dist/chunk-MVILMVGG.js.map +1 -0
  143. package/dist/chunk-MWS4VCLV.js +17 -0
  144. package/dist/chunk-MWS4VCLV.js.map +1 -0
  145. package/dist/chunk-NEUX74SO.js +315 -0
  146. package/dist/chunk-NEUX74SO.js.map +1 -0
  147. package/dist/chunk-NFHKYBRD.js +156 -0
  148. package/dist/chunk-NFHKYBRD.js.map +1 -0
  149. package/dist/chunk-NHJNNXD3.js +89 -0
  150. package/dist/chunk-NHJNNXD3.js.map +1 -0
  151. package/dist/chunk-O2BF3HZL.js +33 -0
  152. package/dist/chunk-O2BF3HZL.js.map +1 -0
  153. package/dist/chunk-OANXCZYD.js +212 -0
  154. package/dist/chunk-OANXCZYD.js.map +1 -0
  155. package/dist/chunk-ODJF7YIP.js +230 -0
  156. package/dist/chunk-ODJF7YIP.js.map +1 -0
  157. package/dist/chunk-ON4BJTHI.js +101 -0
  158. package/dist/chunk-ON4BJTHI.js.map +1 -0
  159. package/dist/{chunk-VMFSRV5H.js → chunk-OTL5WXIJ.js} +2 -2
  160. package/dist/{chunk-VMFSRV5H.js.map → chunk-OTL5WXIJ.js.map} +1 -1
  161. package/dist/{chunk-VPPM7UUQ.js → chunk-PACNBKJV.js} +3 -3
  162. package/dist/{chunk-VPPM7UUQ.js.map → chunk-PACNBKJV.js.map} +1 -1
  163. package/dist/{chunk-ESBL3IPF.js → chunk-PROCA7K7.js} +2 -2
  164. package/dist/{chunk-ESBL3IPF.js.map → chunk-PROCA7K7.js.map} +1 -1
  165. package/dist/chunk-QGMIPA67.js +85 -0
  166. package/dist/chunk-QGMIPA67.js.map +1 -0
  167. package/dist/chunk-QQA37LFB.js +190 -0
  168. package/dist/chunk-QQA37LFB.js.map +1 -0
  169. package/dist/chunk-QZAWRSEB.js +61 -0
  170. package/dist/chunk-QZAWRSEB.js.map +1 -0
  171. package/dist/chunk-R74KGWNS.js +699 -0
  172. package/dist/chunk-R74KGWNS.js.map +1 -0
  173. package/dist/chunk-RFDLHMKL.js +110 -0
  174. package/dist/chunk-RFDLHMKL.js.map +1 -0
  175. package/dist/chunk-RL64HN7S.js +40 -0
  176. package/dist/chunk-RL64HN7S.js.map +1 -0
  177. package/dist/chunk-RMRQKPL7.js +115 -0
  178. package/dist/chunk-RMRQKPL7.js.map +1 -0
  179. package/dist/{chunk-BOHNXTMM.js → chunk-RQVK4IYC.js} +3 -3
  180. package/dist/{chunk-BOHNXTMM.js.map → chunk-RQVK4IYC.js.map} +1 -1
  181. package/dist/chunk-RTW56PWZ.js +59 -0
  182. package/dist/chunk-RTW56PWZ.js.map +1 -0
  183. package/dist/chunk-RUTPQNLR.js +266 -0
  184. package/dist/chunk-RUTPQNLR.js.map +1 -0
  185. package/dist/chunk-S6TAF63G.js +25 -0
  186. package/dist/chunk-S6TAF63G.js.map +1 -0
  187. package/dist/chunk-SBGAUGXY.js +224 -0
  188. package/dist/chunk-SBGAUGXY.js.map +1 -0
  189. package/dist/chunk-SC275NHZ.js +407 -0
  190. package/dist/chunk-SC275NHZ.js.map +1 -0
  191. package/dist/chunk-SCQPU4UE.js +97 -0
  192. package/dist/chunk-SCQPU4UE.js.map +1 -0
  193. package/dist/chunk-SFFF2WQP.js +8 -0
  194. package/dist/chunk-SFFF2WQP.js.map +1 -0
  195. package/dist/chunk-SJYMHZKA.js +36 -0
  196. package/dist/chunk-SJYMHZKA.js.map +1 -0
  197. package/dist/chunk-SLCCUJVN.js +125 -0
  198. package/dist/chunk-SLCCUJVN.js.map +1 -0
  199. package/dist/{chunk-IJTHFNNJ.js → chunk-SVBSNSD4.js} +10 -12
  200. package/dist/chunk-SVBSNSD4.js.map +1 -0
  201. package/dist/chunk-SVPLTL35.js +62 -0
  202. package/dist/chunk-SVPLTL35.js.map +1 -0
  203. package/dist/{chunk-63NSN2VL.js → chunk-SWQFYNYG.js} +115 -51
  204. package/dist/chunk-SWQFYNYG.js.map +1 -0
  205. package/dist/chunk-THHB4EWS.js +72 -0
  206. package/dist/chunk-THHB4EWS.js.map +1 -0
  207. package/dist/chunk-TUCDD33E.js +246 -0
  208. package/dist/chunk-TUCDD33E.js.map +1 -0
  209. package/dist/chunk-TV4WAP2R.js +14 -0
  210. package/dist/chunk-TV4WAP2R.js.map +1 -0
  211. package/dist/chunk-U3A6YBTZ.js +134 -0
  212. package/dist/chunk-U3A6YBTZ.js.map +1 -0
  213. package/dist/chunk-UGT6DKWM.js +95 -0
  214. package/dist/chunk-UGT6DKWM.js.map +1 -0
  215. package/dist/chunk-VSERHUWD.js +212 -0
  216. package/dist/chunk-VSERHUWD.js.map +1 -0
  217. package/dist/chunk-VYG7BDXC.js +49 -0
  218. package/dist/chunk-VYG7BDXC.js.map +1 -0
  219. package/dist/chunk-WETKNYZX.js +52 -0
  220. package/dist/chunk-WETKNYZX.js.map +1 -0
  221. package/dist/chunk-WGG4AML3.js +216 -0
  222. package/dist/chunk-WGG4AML3.js.map +1 -0
  223. package/dist/chunk-WKAUEL6I.js +30 -0
  224. package/dist/chunk-WKAUEL6I.js.map +1 -0
  225. package/dist/chunk-WPOLA5CG.js +81 -0
  226. package/dist/chunk-WPOLA5CG.js.map +1 -0
  227. package/dist/chunk-WPVETCGJ.js +254 -0
  228. package/dist/chunk-WPVETCGJ.js.map +1 -0
  229. package/dist/chunk-WTSM3A7E.js +13 -0
  230. package/dist/chunk-WTSM3A7E.js.map +1 -0
  231. package/dist/chunk-WU3F2K3T.js +148 -0
  232. package/dist/chunk-WU3F2K3T.js.map +1 -0
  233. package/dist/chunk-WZZK2DTZ.js +39 -0
  234. package/dist/chunk-WZZK2DTZ.js.map +1 -0
  235. package/dist/chunk-X4IHLKRD.js +42 -0
  236. package/dist/chunk-X4IHLKRD.js.map +1 -0
  237. package/dist/chunk-XAHEXZJC.js +80 -0
  238. package/dist/chunk-XAHEXZJC.js.map +1 -0
  239. package/dist/chunk-XCYGJDUX.js +31 -0
  240. package/dist/chunk-XCYGJDUX.js.map +1 -0
  241. package/dist/chunk-Y4W3JORC.js +104 -0
  242. package/dist/chunk-Y4W3JORC.js.map +1 -0
  243. package/dist/{chunk-7PUUHEJQ.js → chunk-YFZJ3ZLG.js} +26 -42
  244. package/dist/chunk-YFZJ3ZLG.js.map +1 -0
  245. package/dist/{chunk-6FPEI4EM.js → chunk-YI3WLXEN.js} +27 -2323
  246. package/dist/chunk-YI3WLXEN.js.map +1 -0
  247. package/dist/chunk-ZBKFSPD3.js +29 -0
  248. package/dist/chunk-ZBKFSPD3.js.map +1 -0
  249. package/dist/chunk-ZOERRQ6A.js +79 -0
  250. package/dist/chunk-ZOERRQ6A.js.map +1 -0
  251. package/dist/chunk-ZSTGUKHU.js +10 -0
  252. package/dist/chunk-ZSTGUKHU.js.map +1 -0
  253. package/dist/chunk-ZUEHDL27.js +65 -0
  254. package/dist/chunk-ZUEHDL27.js.map +1 -0
  255. package/dist/editors.js +22 -14
  256. package/dist/editors.js.map +1 -1
  257. package/dist/icons.js +7 -2
  258. package/dist/index.d.ts +8 -18
  259. package/dist/index.js +121 -15800
  260. package/dist/index.js.map +1 -1
  261. package/dist/internal/blocks/AIKit.js +30 -0
  262. package/dist/internal/blocks/AIKit.js.map +1 -0
  263. package/dist/internal/blocks/AppShell.js +11 -0
  264. package/dist/internal/blocks/AppShell.js.map +1 -0
  265. package/dist/internal/blocks/AutoSaveTextarea.js +14 -0
  266. package/dist/internal/blocks/AutoSaveTextarea.js.map +1 -0
  267. package/dist/internal/blocks/BrandEditor.js +23 -0
  268. package/dist/internal/blocks/BrandEditor.js.map +1 -0
  269. package/dist/internal/blocks/ChartPanel.js +10 -0
  270. package/dist/internal/blocks/ChartPanel.js.map +1 -0
  271. package/dist/internal/blocks/ClipboardButton.js +12 -0
  272. package/dist/internal/blocks/ClipboardButton.js.map +1 -0
  273. package/dist/internal/blocks/ColorInput.js +13 -0
  274. package/dist/internal/blocks/ColorInput.js.map +1 -0
  275. package/dist/internal/blocks/ColorModeSwitch.js +13 -0
  276. package/dist/internal/blocks/ColorModeSwitch.js.map +1 -0
  277. package/dist/internal/blocks/Command.js +15 -0
  278. package/dist/internal/blocks/Command.js.map +1 -0
  279. package/dist/internal/blocks/CopyField.js +11 -0
  280. package/dist/internal/blocks/CopyField.js.map +1 -0
  281. package/dist/internal/blocks/DashboardHero.js +9 -0
  282. package/dist/internal/blocks/DashboardHero.js.map +1 -0
  283. package/dist/internal/blocks/DateInput.js +16 -0
  284. package/dist/internal/blocks/DateInput.js.map +1 -0
  285. package/dist/internal/blocks/DateRangeInput.js +16 -0
  286. package/dist/internal/blocks/DateRangeInput.js.map +1 -0
  287. package/dist/internal/blocks/EmptyConfigurationActionCard.js +10 -0
  288. package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -0
  289. package/dist/internal/blocks/EmptyState.js +4 -0
  290. package/dist/internal/blocks/EmptyState.js.map +1 -0
  291. package/dist/internal/blocks/ErrorState.js +5 -0
  292. package/dist/internal/blocks/ErrorState.js.map +1 -0
  293. package/dist/internal/blocks/ExportMenu.js +13 -0
  294. package/dist/internal/blocks/ExportMenu.js.map +1 -0
  295. package/dist/internal/blocks/Form.js +29 -0
  296. package/dist/internal/blocks/Form.js.map +1 -0
  297. package/dist/internal/blocks/FormGroup.js +18 -0
  298. package/dist/internal/blocks/FormGroup.js.map +1 -0
  299. package/dist/internal/blocks/GoogleButton.js +10 -0
  300. package/dist/internal/blocks/GoogleButton.js.map +1 -0
  301. package/dist/internal/blocks/MicrosoftButton.js +10 -0
  302. package/dist/internal/blocks/MicrosoftButton.js.map +1 -0
  303. package/dist/internal/blocks/MultiActionButtonGroup.js +12 -0
  304. package/dist/internal/blocks/MultiActionButtonGroup.js.map +1 -0
  305. package/dist/internal/blocks/MultiCombobox.js +14 -0
  306. package/dist/internal/blocks/MultiCombobox.js.map +1 -0
  307. package/dist/internal/blocks/NumberInput.js +12 -0
  308. package/dist/internal/blocks/NumberInput.js.map +1 -0
  309. package/dist/internal/blocks/OtpInput.js +10 -0
  310. package/dist/internal/blocks/OtpInput.js.map +1 -0
  311. package/dist/internal/blocks/PageHeader.js +9 -0
  312. package/dist/internal/blocks/PageHeader.js.map +1 -0
  313. package/dist/internal/blocks/PageLayout.js +9 -0
  314. package/dist/internal/blocks/PageLayout.js.map +1 -0
  315. package/dist/internal/blocks/PageToolbar.js +13 -0
  316. package/dist/internal/blocks/PageToolbar.js.map +1 -0
  317. package/dist/internal/blocks/PasswordInput.js +13 -0
  318. package/dist/internal/blocks/PasswordInput.js.map +1 -0
  319. package/dist/internal/blocks/SearchInput.js +12 -0
  320. package/dist/internal/blocks/SearchInput.js.map +1 -0
  321. package/dist/internal/blocks/SearchInputWithNavigation.js +16 -0
  322. package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -0
  323. package/dist/internal/blocks/SectionNav.js +15 -0
  324. package/dist/internal/blocks/SectionNav.js.map +1 -0
  325. package/dist/internal/blocks/SplitButton.js +14 -0
  326. package/dist/internal/blocks/SplitButton.js.map +1 -0
  327. package/dist/internal/blocks/StatCard.js +10 -0
  328. package/dist/internal/blocks/StatCard.js.map +1 -0
  329. package/dist/internal/blocks/TextInput.js +13 -0
  330. package/dist/internal/blocks/TextInput.js.map +1 -0
  331. package/dist/internal/blocks/Textarea.js +13 -0
  332. package/dist/internal/blocks/Textarea.js.map +1 -0
  333. package/dist/internal/blocks/TimeInput.js +17 -0
  334. package/dist/internal/blocks/TimeInput.js.map +1 -0
  335. package/dist/internal/components/Alert.js +11 -0
  336. package/dist/internal/components/Alert.js.map +1 -0
  337. package/dist/internal/components/AlertModal.js +11 -0
  338. package/dist/internal/components/AlertModal.js.map +1 -0
  339. package/dist/internal/components/Avatar.js +9 -0
  340. package/dist/internal/components/Avatar.js.map +1 -0
  341. package/dist/internal/components/Badge.js +9 -0
  342. package/dist/internal/components/Badge.js.map +1 -0
  343. package/dist/internal/components/BrandLogo.js +11 -0
  344. package/dist/internal/components/BrandLogo.js.map +1 -0
  345. package/dist/internal/components/Breadcrumb.js +14 -0
  346. package/dist/internal/components/Breadcrumb.js.map +1 -0
  347. package/dist/internal/components/Button.js +10 -0
  348. package/dist/internal/components/Button.js.map +1 -0
  349. package/dist/internal/components/ButtonGroup.js +9 -0
  350. package/dist/internal/components/ButtonGroup.js.map +1 -0
  351. package/dist/internal/components/Calendar.js +9 -0
  352. package/dist/internal/components/Calendar.js.map +1 -0
  353. package/dist/internal/components/Card.js +9 -0
  354. package/dist/internal/components/Card.js.map +1 -0
  355. package/dist/internal/components/Checkbox.js +11 -0
  356. package/dist/internal/components/Checkbox.js.map +1 -0
  357. package/dist/internal/components/Clipboard.js +9 -0
  358. package/dist/internal/components/Clipboard.js.map +1 -0
  359. package/dist/internal/components/Collapsible.js +9 -0
  360. package/dist/internal/components/Collapsible.js.map +1 -0
  361. package/dist/internal/components/CollapsiblePanel.js +11 -0
  362. package/dist/internal/components/CollapsiblePanel.js.map +1 -0
  363. package/dist/internal/components/Combobox.js +13 -0
  364. package/dist/internal/components/Combobox.js.map +1 -0
  365. package/dist/internal/components/DatePicker.js +11 -0
  366. package/dist/internal/components/DatePicker.js.map +1 -0
  367. package/dist/internal/components/DateRangePicker.js +17 -0
  368. package/dist/internal/components/DateRangePicker.js.map +1 -0
  369. package/dist/internal/components/DiffView.js +9 -0
  370. package/dist/internal/components/DiffView.js.map +1 -0
  371. package/dist/internal/components/DotsLoader.js +5 -0
  372. package/dist/internal/components/DotsLoader.js.map +1 -0
  373. package/dist/internal/components/DropdownMenu.js +11 -0
  374. package/dist/internal/components/DropdownMenu.js.map +1 -0
  375. package/dist/internal/components/EmptySearchContent.js +4 -0
  376. package/dist/internal/components/EmptySearchContent.js.map +1 -0
  377. package/dist/internal/components/FileUpload.js +11 -0
  378. package/dist/internal/components/FileUpload.js.map +1 -0
  379. package/dist/internal/components/FullScreenModal.js +12 -0
  380. package/dist/internal/components/FullScreenModal.js.map +1 -0
  381. package/dist/internal/components/HelpBlock.js +4 -0
  382. package/dist/internal/components/HelpBlock.js.map +1 -0
  383. package/dist/internal/components/HoverCard.js +9 -0
  384. package/dist/internal/components/HoverCard.js.map +1 -0
  385. package/dist/internal/components/InputGroup.js +11 -0
  386. package/dist/internal/components/InputGroup.js.map +1 -0
  387. package/dist/internal/components/Kbd.js +9 -0
  388. package/dist/internal/components/Kbd.js.map +1 -0
  389. package/dist/internal/components/Label.js +9 -0
  390. package/dist/internal/components/Label.js.map +1 -0
  391. package/dist/internal/components/Link.js +9 -0
  392. package/dist/internal/components/Link.js.map +1 -0
  393. package/dist/internal/components/MarkedText.js +5 -0
  394. package/dist/internal/components/MarkedText.js.map +1 -0
  395. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +10 -0
  396. package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -0
  397. package/dist/internal/components/MergeEditor/PaneHeader.js +4 -0
  398. package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -0
  399. package/dist/internal/components/MergeEditor/constants.js +4 -0
  400. package/dist/internal/components/MergeEditor/constants.js.map +1 -0
  401. package/dist/internal/components/MergeEditor/useMergeDiff.js +5 -0
  402. package/dist/internal/components/MergeEditor/useMergeDiff.js.map +1 -0
  403. package/dist/internal/components/Modal.js +13 -0
  404. package/dist/internal/components/Modal.js.map +1 -0
  405. package/dist/internal/components/Navbar.js +14 -0
  406. package/dist/internal/components/Navbar.js.map +1 -0
  407. package/dist/internal/components/Pagination.js +11 -0
  408. package/dist/internal/components/Pagination.js.map +1 -0
  409. package/dist/internal/components/PanelWithDetails.js +11 -0
  410. package/dist/internal/components/PanelWithDetails.js.map +1 -0
  411. package/dist/internal/components/Popconfirm.js +12 -0
  412. package/dist/internal/components/Popconfirm.js.map +1 -0
  413. package/dist/internal/components/Popover.js +9 -0
  414. package/dist/internal/components/Popover.js.map +1 -0
  415. package/dist/internal/components/Progress.js +9 -0
  416. package/dist/internal/components/Progress.js.map +1 -0
  417. package/dist/internal/components/RadioGroup.js +12 -0
  418. package/dist/internal/components/RadioGroup.js.map +1 -0
  419. package/dist/internal/components/Resizable.js +9 -0
  420. package/dist/internal/components/Resizable.js.map +1 -0
  421. package/dist/internal/components/ScrollArea.js +9 -0
  422. package/dist/internal/components/ScrollArea.js.map +1 -0
  423. package/dist/internal/components/Search.js +10 -0
  424. package/dist/internal/components/Search.js.map +1 -0
  425. package/dist/internal/components/Select.js +12 -0
  426. package/dist/internal/components/Select.js.map +1 -0
  427. package/dist/internal/components/Separator.js +9 -0
  428. package/dist/internal/components/Separator.js.map +1 -0
  429. package/dist/internal/components/Sheet.js +12 -0
  430. package/dist/internal/components/Sheet.js.map +1 -0
  431. package/dist/internal/components/Sidebar.js +20 -0
  432. package/dist/internal/components/Sidebar.js.map +1 -0
  433. package/dist/internal/components/Skeleton/Skeleton.js +9 -0
  434. package/dist/internal/components/Skeleton/Skeleton.js.map +1 -0
  435. package/dist/internal/components/Skeleton/SkeletonList.js +10 -0
  436. package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -0
  437. package/dist/internal/components/Slider.js +11 -0
  438. package/dist/internal/components/Slider.js.map +1 -0
  439. package/dist/internal/components/SpotlightBackdrop.js +9 -0
  440. package/dist/internal/components/SpotlightBackdrop.js.map +1 -0
  441. package/dist/internal/components/Stepper.js +10 -0
  442. package/dist/internal/components/Stepper.js.map +1 -0
  443. package/dist/internal/components/Switch.js +10 -0
  444. package/dist/internal/components/Switch.js.map +1 -0
  445. package/dist/internal/components/Table.js +10 -0
  446. package/dist/internal/components/Table.js.map +1 -0
  447. package/dist/internal/components/Tabs.js +12 -0
  448. package/dist/internal/components/Tabs.js.map +1 -0
  449. package/dist/internal/components/ThemeProvider.js +10 -0
  450. package/dist/internal/components/ThemeProvider.js.map +1 -0
  451. package/dist/internal/components/TimePicker.js +12 -0
  452. package/dist/internal/components/TimePicker.js.map +1 -0
  453. package/dist/internal/components/Timeline.js +10 -0
  454. package/dist/internal/components/Timeline.js.map +1 -0
  455. package/dist/internal/components/Toast.js +11 -0
  456. package/dist/internal/components/Toast.js.map +1 -0
  457. package/dist/internal/components/Toggle.js +9 -0
  458. package/dist/internal/components/Toggle.js.map +1 -0
  459. package/dist/internal/components/ToggleGroup.js +9 -0
  460. package/dist/internal/components/ToggleGroup.js.map +1 -0
  461. package/dist/internal/components/Tooltip.js +8 -0
  462. package/dist/internal/components/Tooltip.js.map +1 -0
  463. package/dist/internal/components/Truncated.js +9 -0
  464. package/dist/internal/components/Truncated.js.map +1 -0
  465. package/dist/internal/components/Workbench.js +11 -0
  466. package/dist/internal/components/Workbench.js.map +1 -0
  467. package/dist/internal/components/ZoomableSvg.js +13 -0
  468. package/dist/internal/components/ZoomableSvg.js.map +1 -0
  469. package/dist/internal/hooks/useAutosizeInput.js +4 -0
  470. package/dist/internal/hooks/useAutosizeInput.js.map +1 -0
  471. package/dist/internal/hooks/useScrollbarPosition.js +5 -0
  472. package/dist/internal/hooks/useScrollbarPosition.js.map +1 -0
  473. package/dist/internal/hooks/useStableCallback.js +4 -0
  474. package/dist/internal/hooks/useStableCallback.js.map +1 -0
  475. package/dist/internal/utils/mergeRefs.js +4 -0
  476. package/dist/internal/utils/mergeRefs.js.map +1 -0
  477. package/dist/internal/utils.js +8 -0
  478. package/dist/internal/utils.js.map +1 -0
  479. package/dist/markdown-editor.js +23 -9
  480. package/dist/markdown-editor.js.map +1 -1
  481. package/dist/mermaid.js +16 -8
  482. package/dist/rjsf.js +102 -29
  483. package/dist/rjsf.js.map +1 -1
  484. package/dist/styles.css +1 -1
  485. package/dist/testing.js +8 -3
  486. package/dist/testing.js.map +1 -1
  487. package/package.json +9 -8
  488. package/src/styles.css +35 -7
  489. package/src/theme.css +64 -0
  490. package/dist/MermaidDiagram-EOKJHQQV.js +0 -10
  491. package/dist/chunk-63NSN2VL.js.map +0 -1
  492. package/dist/chunk-6FPEI4EM.js.map +0 -1
  493. package/dist/chunk-7PUUHEJQ.js.map +0 -1
  494. package/dist/chunk-C3L3TBBT.js.map +0 -1
  495. package/dist/chunk-IJTHFNNJ.js.map +0 -1
  496. package/dist/chunk-JP7PNHLH.js.map +0 -1
  497. package/dist/chunk-KPNAW5MU.js +0 -229
  498. package/dist/chunk-KPNAW5MU.js.map +0 -1
  499. package/dist/chunk-L37JJ6MR.js +0 -152
  500. package/dist/chunk-L37JJ6MR.js.map +0 -1
  501. package/dist/chunk-Q7NWXLCT.js.map +0 -1
  502. package/dist/chunk-SYIEF644.js +0 -1016
  503. package/dist/chunk-SYIEF644.js.map +0 -1
  504. package/dist/chunk-XV3UUOYF.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Breadcrumb/BreadcrumbDropdownContext.ts","../src/components/Breadcrumb/BreadcrumbDropdownGroup.tsx","../src/components/Breadcrumb/BreadcrumbDropdownItem.tsx","../src/components/Breadcrumb/BreadcrumbLink.tsx","../src/components/Breadcrumb/BreadcrumbDropdown.tsx","../src/components/Breadcrumb/BreadcrumbEllipsis.tsx","../src/components/Breadcrumb/BreadcrumbItem.tsx","../src/components/Breadcrumb/BreadcrumbList.tsx","../src/components/Breadcrumb/BreadcrumbPage.tsx","../src/components/Breadcrumb/BreadcrumbSeparator.tsx","../src/components/Breadcrumb/Breadcrumb.tsx"],"names":["useState","useMemo","use","useId","useEffect","jsx","Slot","useCallback","jsxs"],"mappings":"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","file":"chunk-AIYO2632.js","sourcesContent":["import { createContext, isValidElement, useCallback, useMemo, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nexport type BreadcrumbDropdownContextValue = {\n /** Current (trimmed, lowercased) filter query. Empty string = no filtering. */\n query: string;\n /** An ancestor group's label matched the query — descendants render regardless of their own match. */\n forceVisible: boolean;\n /** Filtering is off (`filter={false}` or `shouldFilter={false}`) — items never self-hide. */\n filterDisabled: boolean;\n /** Report this node's visibility to the parent scope. Returns the unregister cleanup. */\n register: (id: string, visible: boolean) => () => void;\n /** Close the panel (fired by items on select). */\n close: () => void;\n};\n\nexport const BreadcrumbDropdownContext = createContext<BreadcrumbDropdownContextValue | null>(null);\n\nexport const matchesQuery = (text: string, query: string) => text.toLowerCase().includes(query);\n\n/** Text content of a React tree — the default filter text when no `textValue` is given. */\nexport const getNodeText = (node: ReactNode): string => {\n if (typeof node === 'string' || typeof node === 'number') return String(node);\n if (Array.isArray(node)) return node.map(getNodeText).join('');\n if (isValidElement<{ children?: ReactNode }>(node)) return getNodeText(node.props.children);\n return '';\n};\n\nexport const normalizeQuery = (query: string) => query.trim().toLowerCase();\n\n/**\n * Visibility registry for one filtering scope (the panel root, or one group). Items and groups\n * report their visibility here; `anyVisible` drives the group header / empty-state rendering.\n */\nexport const useMatchRegistry = () => {\n const [matches, setMatches] = useState<ReadonlyMap<string, boolean>>(new Map());\n\n const register = useCallback((id: string, visible: boolean) => {\n setMatches((prev) => (prev.get(id) === visible ? prev : new Map(prev).set(id, visible)));\n return () => {\n setMatches((prev) => {\n if (!prev.has(id)) return prev;\n const next = new Map(prev);\n next.delete(id);\n return next;\n });\n };\n }, []);\n\n const anyVisible = useMemo(() => [...matches.values()].some(Boolean), [matches]);\n\n return { register, anyVisible };\n};\n","import { Children, use, useEffect, useId, useMemo, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { ChevronDown, ChevronRight } from '../../icons';\nimport { cn } from '../../utils';\n\nimport {\n BreadcrumbDropdownContext,\n getNodeText,\n matchesQuery,\n useMatchRegistry,\n} from './BreadcrumbDropdownContext';\n\nconst headerClass = cn(\n // layout\n 'tw:flex',\n 'tw:w-full',\n 'tw:items-center',\n 'tw:gap-2',\n 'tw:box-border',\n\n 'tw:rounded-md',\n 'tw:border-none',\n 'tw:bg-transparent',\n 'tw:px-2',\n 'tw:py-1.5',\n 'tw:text-left',\n\n // font — single line; wrap the label in `Truncated` (design system) for ellipsis + tooltip\n 'tw:text-sm',\n 'tw:font-medium',\n 'tw:text-foreground',\n 'tw:min-w-0',\n 'tw:overflow-hidden',\n\n // icons\n \"tw:[&_svg:not([class*='tw:size-'])]:size-4\",\n 'tw:[&_svg]:shrink-0',\n);\n\nconst collapsibleHeaderClass = cn(\n 'tw:cursor-pointer',\n 'tw:hover:bg-accent',\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n);\n\ntype BreadcrumbDropdownGroupProps = {\n /** Group header (e.g. bucket name + stage badge). */\n label: ReactNode;\n /**\n * Text the built-in filter matches against. When the group label matches, all its items stay\n * visible. Defaults to the label's rendered text content.\n */\n textValue?: string;\n /** Render the header as a toggle that expands / collapses the group's items. Default `false`. */\n collapsible?: boolean;\n /** Initial expanded state for `collapsible` groups. Default `true`. */\n defaultExpanded?: boolean;\n className?: string;\n children: ReactNode;\n};\n\n/**\n * A labelled group of `Breadcrumb.Dropdown.Item`s (e.g. one bucket with its tables). The group\n * hides itself when neither its label nor any child matches the filter query; an active query\n * force-expands collapsible groups. Non-empty `collapsible` groups toggle their items behind the\n * header with an animated expand / collapse; a `collapsible` group with no items renders a\n * non-interactive, greyed header that can't toggle.\n */\nexport const BreadcrumbDropdownGroup = ({\n label,\n textValue,\n collapsible = false,\n defaultExpanded = true,\n className,\n children,\n}: BreadcrumbDropdownGroupProps) => {\n const parent = use(BreadcrumbDropdownContext);\n if (!parent) {\n throw new Error('Breadcrumb.Dropdown.Group must be rendered inside Breadcrumb.Dropdown');\n }\n const id = useId();\n const { register: registerChild, anyVisible } = useMatchRegistry();\n const [expanded, setExpanded] = useState(defaultExpanded);\n\n const text = textValue ?? getNodeText(label);\n const filtering = !parent.filterDisabled && !!parent.query;\n const labelMatched = filtering && matchesQuery(text, parent.query);\n const visible = !filtering || parent.forceVisible || labelMatched || anyVisible;\n\n useEffect(() => parent.register(id, visible), [parent, id, visible]);\n\n const childContext = useMemo(\n () => ({\n query: parent.query,\n forceVisible: parent.forceVisible || labelMatched,\n filterDisabled: parent.filterDisabled,\n register: registerChild,\n close: parent.close,\n }),\n [parent, labelMatched, registerChild],\n );\n\n // An active query force-expands the group so matches are never hidden behind a collapsed header.\n const isExpanded = !collapsible || expanded || filtering;\n // A collapsible group with no items has nothing to toggle — render a non-interactive header.\n // oxlint-disable-next-line react-x/no-children-count -- emptiness check, no child transformation\n const isEmpty = Children.count(children) === 0;\n\n return (\n <div\n className={cn('tw:flex tw:flex-col', className)}\n style={visible ? undefined : { display: 'none' }}\n >\n {collapsible && isEmpty ? (\n <span\n aria-disabled\n className={cn(\n headerClass,\n 'tw:text-muted-foreground',\n // Fade just the leading chevron lighter than the label text.\n 'tw:[&>svg:first-child]:opacity-50',\n )}\n >\n <ChevronRight />\n {label}\n </span>\n ) : collapsible && !isEmpty ? (\n <button\n type=\"button\"\n aria-expanded={isExpanded}\n className={cn(headerClass, collapsibleHeaderClass)}\n onClick={() => setExpanded((prev) => !prev)}\n >\n {isExpanded ? <ChevronDown /> : <ChevronRight />}\n {label}\n </button>\n ) : (\n <span className={headerClass}>{label}</span>\n )}\n <BreadcrumbDropdownContext value={childContext}>\n {collapsible && !isEmpty ? (\n // Animated expand / collapse via a CSS grid-rows transition (0fr ↔ 1fr). The children stay\n // mounted while collapsed so the filter registry keeps receiving their visibility; `inert`\n // + `aria-hidden` take the collapsed content out of the a11y tree and tab order. An active\n // filter query force-expands (`isExpanded` includes `filtering`).\n <div\n className={cn(\n 'tw:grid tw:transition-[grid-template-rows] tw:duration-200 tw:ease-out',\n 'tw:motion-reduce:transition-none',\n isExpanded ? 'tw:grid-rows-[1fr]' : 'tw:grid-rows-[0fr]',\n )}\n >\n <div\n className=\"tw:overflow-hidden\"\n inert={!isExpanded}\n aria-hidden={isExpanded ? undefined : true}\n >\n <div className=\"tw:flex tw:flex-col tw:pl-6\">{children}</div>\n </div>\n </div>\n ) : (\n <div\n className=\"tw:flex tw:flex-col tw:pl-6\"\n style={isExpanded ? undefined : { display: 'none' }}\n >\n {children}\n </div>\n )}\n </BreadcrumbDropdownContext>\n </div>\n );\n};\n","import { use, useEffect, useId } from 'react';\nimport type { ComponentProps } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '../../utils';\n\nimport { BreadcrumbDropdownContext, getNodeText, matchesQuery } from './BreadcrumbDropdownContext';\n\nconst itemClass = cn(\n // layout\n 'tw:flex',\n 'tw:w-full',\n 'tw:items-center',\n 'tw:gap-2',\n 'tw:box-border',\n\n 'tw:rounded-md',\n 'tw:border-none',\n 'tw:bg-transparent',\n 'tw:px-2',\n 'tw:py-1.5',\n 'tw:cursor-pointer',\n 'tw:text-left',\n\n // font — single line; wrap the label in `Truncated` (design system) for ellipsis + tooltip\n 'tw:text-sm',\n 'tw:font-normal',\n 'tw:text-foreground',\n 'tw:no-underline',\n 'tw:min-w-0',\n 'tw:overflow-hidden',\n\n // hover / active entity\n 'tw:hover:bg-accent',\n 'tw:data-[active]:bg-accent',\n 'tw:data-[active]:font-medium',\n\n // focus\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n\n // icons\n \"tw:[&_svg:not([class*='tw:size-'])]:size-4\",\n 'tw:[&_svg]:shrink-0',\n);\n\ntype BreadcrumbDropdownItemProps = ComponentProps<'button'> & {\n /** Render the consumer's element (typically a router link) instead of a `button`. */\n asChild?: boolean;\n /**\n * Text the built-in filter matches against. Defaults to the item's rendered text content\n * (extracted recursively, so `asChild` links with icons work out of the box).\n */\n textValue?: string;\n /** Marks the currently open entity (highlight + `aria-current`). */\n active?: boolean;\n /** Close the panel when the item is selected. Default `true`. */\n closeOnSelect?: boolean;\n};\n\n/**\n * One selectable entity row inside `Breadcrumb.Dropdown`. Self-hides when it doesn't match the\n * panel's filter query and closes the panel on select. Use `asChild` to render a router link.\n */\nexport const BreadcrumbDropdownItem = ({\n ref,\n asChild = false,\n textValue,\n active = false,\n closeOnSelect = true,\n className,\n children,\n onClick,\n ...props\n}: BreadcrumbDropdownItemProps) => {\n const context = use(BreadcrumbDropdownContext);\n if (!context) {\n throw new Error('Breadcrumb.Dropdown.Item must be rendered inside Breadcrumb.Dropdown');\n }\n const id = useId();\n\n const text = textValue ?? getNodeText(children);\n const visible =\n context.filterDisabled ||\n !context.query ||\n context.forceVisible ||\n matchesQuery(text, context.query);\n\n useEffect(() => context.register(id, visible), [context, id, visible]);\n\n if (!visible) return null;\n\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n ref={ref}\n {...(asChild ? {} : { type: 'button' as const })}\n data-active={active || undefined}\n aria-current={active || undefined}\n className={cn(itemClass, className)}\n onClick={(event) => {\n onClick?.(event);\n if (closeOnSelect && !event.defaultPrevented) {\n context.close();\n }\n }}\n {...props}\n >\n {children}\n </Comp>\n );\n};\n","import type { ComponentProps } from 'react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'a'> & {\n asChild?: boolean;\n};\n\nexport const BreadcrumbLink = ({ ref, asChild = false, className, ...props }: Props) => {\n const Comp = asChild ? Slot : 'a';\n return (\n <Comp\n ref={ref}\n className={cn(\n 'tw:flex',\n 'tw:items-center',\n 'tw:gap-1.5',\n // font\n 'tw:text-muted-foreground',\n 'tw:font-normal',\n 'tw:no-underline',\n\n // hover\n 'tw:hover:text-foreground',\n\n // focus\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n 'tw:focus-visible:rounded-sm',\n\n // Icon\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-3.5',\n\n // transition\n 'tw:transition-colors',\n className,\n )}\n {...props}\n />\n );\n};\n","import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentRef, ReactNode } from 'react';\n\nimport { SearchInput } from '../../blocks/SearchInput';\nimport { ChevronDown } from '../../icons';\nimport { cn } from '../../utils';\nimport { Popover } from '../Popover';\n\nimport {\n BreadcrumbDropdownContext,\n normalizeQuery,\n useMatchRegistry,\n} from './BreadcrumbDropdownContext';\nimport { BreadcrumbDropdownGroup } from './BreadcrumbDropdownGroup';\nimport { BreadcrumbDropdownItem } from './BreadcrumbDropdownItem';\nimport { BreadcrumbLink } from './BreadcrumbLink';\n\n// Chevron trigger — the only button in the crumb. It sits tight next to the label so it reads as\n// grouped with it, with no persistent outline: it's a button purely via the hover / open background\n// + colour lift. Used on its own next to a link label (`splitTrigger`) or after a plain label.\nconst chevronButtonClass = cn(\n // layout\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n\n 'tw:rounded-md',\n 'tw:border-none',\n 'tw:bg-transparent',\n 'tw:cursor-pointer',\n // compact square hit target that stays snug against the label\n 'tw:size-5',\n 'tw:text-muted-foreground',\n 'tw:transition-colors',\n 'tw:hover:bg-accent',\n 'tw:hover:text-foreground',\n 'tw:data-[state=open]:bg-accent',\n 'tw:data-[state=open]:text-foreground',\n\n // focus\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n\n // chevron rotation while open\n 'tw:[&_svg]:transition-transform',\n 'tw:[&[data-state=open]_svg]:rotate-180',\n);\n\n// Plain (non-link) label — same typography as `BreadcrumbLink` but no hover/focus treatment, since\n// it isn't interactive: only the chevron opens the panel.\nconst plainLabelClass = cn(\n 'tw:flex',\n 'tw:items-center',\n 'tw:gap-1.5',\n 'tw:text-muted-foreground',\n 'tw:font-normal',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-3.5',\n);\n\n// Fixed panel width per `size` (default `medium`). Long names truncate rather than wrap or widen\n// the panel. Width still clamps to the viewport via min(); height is clamped the same way.\nconst PANEL_BASE = 'tw:max-h-[min(640px,var(--radix-popover-content-available-height))]';\n\nconst PANEL_WIDTH = {\n small: 'tw:w-[min(360px,var(--radix-popover-content-available-width))]',\n medium: 'tw:w-[min(440px,var(--radix-popover-content-available-width))]',\n large: 'tw:w-[min(560px,var(--radix-popover-content-available-width))]',\n} as const;\n\ntype PanelSize = keyof typeof PANEL_WIDTH;\n\n/**\n * Props for `Breadcrumb.Dropdown`. The panel chrome (trigger typography, popover sizing, pinned\n * filter input) is owned by the component — consumers supply the label and the panel content,\n * composed from `Breadcrumb.Dropdown.Group` / `Breadcrumb.Dropdown.Item`.\n */\ntype BreadcrumbDropdownProps = {\n /**\n * Crumb label, shown next to the chevron button that opens the panel — the label itself is never\n * the trigger. With `splitTrigger`, pass an anchor-like element (e.g. a router link) so the label\n * also navigates; otherwise it renders as a plain, non-navigational crumb label.\n */\n label: ReactNode;\n /**\n * When `true`, the label is a navigable link (pass an anchor-like `label` element, rendered through\n * `Breadcrumb.Link asChild`). Default `false` — the label is plain text. Either way only the\n * chevron button opens the panel; it always sits grouped tight to the label.\n */\n splitTrigger?: boolean;\n /**\n * Accessible name for the chevron trigger button. Defaults to `\"${label} menu\"` when `label` is\n * a plain string, otherwise `\"Open menu\"` — pass explicitly when `label` is a non-string node.\n */\n triggerLabel?: string;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /**\n * Fixed panel width: `small` (360px), `medium` (440px, default), or `large` (560px). Names that\n * exceed the width truncate with an ellipsis (hover shows the full name). Clamps to the viewport.\n */\n size?: PanelSize;\n /**\n * Pinned filter input at the top of the panel, focused on open. On by default — items and groups\n * that don't match the query hide themselves (matched against their `textValue` / string\n * content). Set to `false` to opt out of the input entirely.\n */\n filter?: boolean;\n /**\n * Set to `false` to keep the filter input but disable the built-in matching — the consumer\n * filters the content it renders (e.g. server-side or custom matching). Default `true`.\n */\n shouldFilter?: boolean;\n /** Controlled filter value. Omit to let the component manage the query internally. */\n searchValue?: string;\n onSearchChange?: (value: string) => void;\n searchPlaceholder?: string;\n /** Rendered when the built-in filter hides everything. Default `\"No results.\"`. */\n emptyMessage?: ReactNode;\n /** Panel content — `Breadcrumb.Dropdown.Group` / `Breadcrumb.Dropdown.Item` elements. */\n children: ReactNode;\n};\n\n/**\n * Breadcrumb segment that opens a standardized switcher panel — a filterable list / tree of\n * sibling entities the user can jump between (e.g. the Storage bucket/table tree on a table\n * detail page).\n *\n * **When to use:** on the leftmost breadcrumb segment that has siblings / children worth switching\n * between. Use at most one dropdown segment per breadcrumb.\n * **When NOT to use:** for tertiary actions on the breadcrumbs row use the `overflowActions` slot of\n * `PageHeader.Detail`; for a collapsed middle of a long breadcrumb use `Breadcrumb.Ellipsis`.\n * **Composition:** render inside `Breadcrumb.Item` in place of `Breadcrumb.Link`. Compose the panel\n * from `Breadcrumb.Dropdown.Group` and `Breadcrumb.Dropdown.Item` — the built-in filter matches\n * and hides them automatically.\n */\nexport const BreadcrumbDropdown = ({\n label,\n splitTrigger = false,\n triggerLabel,\n open,\n defaultOpen = false,\n onOpenChange,\n size = 'medium',\n filter = true,\n shouldFilter = true,\n searchValue,\n onSearchChange,\n searchPlaceholder = 'Search…',\n emptyMessage = 'No results.',\n children,\n}: BreadcrumbDropdownProps) => {\n const searchRef = useRef<ComponentRef<'input'>>(null);\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const [internalQuery, setInternalQuery] = useState('');\n const { register, anyVisible } = useMatchRegistry();\n\n const isOpen = open ?? internalOpen;\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n setInternalOpen(nextOpen);\n if (!nextOpen) setInternalQuery('');\n onOpenChange?.(nextOpen);\n },\n [onOpenChange],\n );\n const close = useCallback(() => handleOpenChange(false), [handleOpenChange]);\n\n const effectiveTriggerLabel =\n triggerLabel ?? (typeof label === 'string' ? `${label} menu` : 'Open menu');\n\n const rawQuery = searchValue ?? internalQuery;\n const filterDisabled = !filter || !shouldFilter;\n const query = filterDisabled ? '' : normalizeQuery(rawQuery);\n\n const contextValue = useMemo(\n () => ({ query, forceVisible: false, filterDisabled, register, close }),\n [query, filterDisabled, register, close],\n );\n\n return (\n <Popover open={isOpen} onOpenChange={handleOpenChange}>\n <span className=\"tw:flex tw:items-center tw:gap-0.5\">\n {splitTrigger ? (\n <BreadcrumbLink asChild>{label}</BreadcrumbLink>\n ) : (\n <span className={plainLabelClass}>{label}</span>\n )}\n <Popover.Trigger asChild>\n <button type=\"button\" aria-label={effectiveTriggerLabel} className={chevronButtonClass}>\n <ChevronDown className=\"tw:size-3.5\" />\n </button>\n </Popover.Trigger>\n </span>\n <Popover.Content\n align=\"start\"\n sideOffset={8}\n collisionPadding={16}\n data-size={size}\n className={cn('tw:overflow-hidden tw:p-0', PANEL_BASE, PANEL_WIDTH[size])}\n onOpenAutoFocus={\n filter\n ? (event) => {\n event.preventDefault();\n searchRef.current?.focus();\n }\n : undefined\n }\n >\n {filter && (\n <div className=\"tw:shrink-0 tw:border-0 tw:border-b tw:border-solid tw:border-border tw:p-2\">\n <SearchInput\n ref={searchRef}\n value={rawQuery}\n onValueChange={(value) => {\n setInternalQuery(value);\n onSearchChange?.(value);\n }}\n placeholder={searchPlaceholder}\n allowClear\n // Built-in matching is client-side and cheap — filter on every keystroke. Keep the\n // debounce only when the consumer filters itself (shouldFilter={false}, e.g. server-side).\n disableDebounce={shouldFilter}\n />\n </div>\n )}\n <div className=\"tw:flex tw:flex-1 tw:flex-col tw:overflow-y-auto tw:p-2\">\n <BreadcrumbDropdownContext value={contextValue}>{children}</BreadcrumbDropdownContext>\n {!filterDisabled && !!query && !anyVisible && (\n <span className=\"tw:px-2 tw:py-1.5 tw:text-sm tw:text-muted-foreground\">\n {emptyMessage}\n </span>\n )}\n </div>\n </Popover.Content>\n </Popover>\n );\n};\n\nBreadcrumbDropdown.Item = BreadcrumbDropdownItem;\nBreadcrumbDropdown.Group = BreadcrumbDropdownGroup;\n","import type { ComponentProps } from 'react';\n\nimport { Ellipsis } from '../../icons';\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'button'>;\n\nexport const BreadcrumbEllipsis = ({ ref, className, ...props }: Props) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n // layout\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n\n 'tw:rounded-md',\n 'tw:border-none',\n 'tw:bg-transparent',\n 'tw:cursor-pointer',\n 'tw:text-muted-foreground',\n 'tw:transition-colors',\n // Match the Breadcrumb.Dropdown chevron trigger: background + colour lift on hover / while the\n // menu is open, so the two interactive breadcrumb affordances read consistently.\n 'tw:hover:bg-accent',\n 'tw:hover:text-foreground',\n 'tw:data-[state=open]:bg-accent',\n 'tw:data-[state=open]:text-foreground',\n\n // focus\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n\n 'tw:p-1',\n className,\n )}\n {...props}\n >\n <Ellipsis className=\"tw:size-4\" />\n <span className=\"tw:sr-only\">More</span>\n </button>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'li'>;\n\nexport const BreadcrumbItem = ({ className, ...props }: Props) => (\n <li className={cn('tw:inline-flex', 'tw:items-center', className)} {...props} />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'ol'>;\n\nexport const BreadcrumbList = ({ className, ...props }: Props) => (\n <ol\n className={cn(\n // layout\n 'tw:flex',\n 'tw:flex-wrap',\n 'tw:items-center',\n 'tw:gap-2',\n 'tw:m-0',\n 'tw:p-0',\n\n // font\n 'tw:break-words',\n 'tw:text-sm',\n 'tw:text-muted-foreground',\n className,\n )}\n {...props}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'span'>;\n\nexport const BreadcrumbPage = ({ ref, className, ...props }: Props) => (\n <span\n ref={ref}\n // Do not use the anchor, as this item is not clickable\n // oxlint-disable-next-line jsx_a11y/prefer-tag-over-role\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('tw:font-medium', 'tw:text-foreground', className)}\n {...props}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'li'>;\n\nexport const BreadcrumbSeparator = ({ children, className, ...props }: Props) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n // layout\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n\n 'tw:aspect-square',\n 'tw:size-[15px]',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-2.5',\n 'tw:text-muted-foreground',\n className,\n )}\n {...props}\n >\n {children ?? <span className=\"tw:select-none tw:text-sm tw:text-muted-foreground/50\">/</span>}\n </li>\n);\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\nimport { BreadcrumbDropdown } from './BreadcrumbDropdown';\nimport { BreadcrumbEllipsis } from './BreadcrumbEllipsis';\nimport { BreadcrumbItem } from './BreadcrumbItem';\nimport { BreadcrumbLink } from './BreadcrumbLink';\nimport { BreadcrumbList } from './BreadcrumbList';\nimport { BreadcrumbPage } from './BreadcrumbPage';\nimport { BreadcrumbSeparator } from './BreadcrumbSeparator';\n\ntype Props = ComponentProps<'nav'>;\n\nexport const Breadcrumb = ({ className, ...props }: Props) => (\n <nav aria-label=\"breadcrumb\" className={cn('tailwindcss-preflight', className)} {...props} />\n);\n\nBreadcrumb.List = BreadcrumbList;\nBreadcrumb.Item = BreadcrumbItem;\nBreadcrumb.Link = BreadcrumbLink;\nBreadcrumb.Page = BreadcrumbPage;\nBreadcrumb.Separator = BreadcrumbSeparator;\nBreadcrumb.Ellipsis = BreadcrumbEllipsis;\nBreadcrumb.Dropdown = BreadcrumbDropdown;\n"]}
@@ -0,0 +1,112 @@
1
+ import { cn } from './chunk-LXLIQ2D6.js';
2
+ import { useId, useState, useLayoutEffect } from 'react';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ var SpotlightBackdrop = ({ rect, padding = 8, radius = 8, className, onClick }) => {
6
+ const maskId = useId();
7
+ const cutout = rect ? {
8
+ x: rect.left - padding,
9
+ y: rect.top - padding,
10
+ width: rect.width + padding * 2,
11
+ height: rect.height + padding * 2
12
+ } : null;
13
+ return (
14
+ // Sits above the standard portalled surface tier (z 1055) so stray popovers
15
+ // can't punch through the dim; the anchored callout must set a higher z.
16
+ // The wrapper ignores pointer events and only the painted dim (the masked
17
+ // rect) captures them, bubbling to the wrapper's `onClick`. A click inside
18
+ // the masked-out cut-out isn't painted, so it falls through to the target.
19
+ /* @__PURE__ */ jsx(
20
+ "div",
21
+ {
22
+ "aria-hidden": true,
23
+ onClick,
24
+ className: cn("tw:pointer-events-none tw:fixed tw:inset-0 tw:z-[1056]", className),
25
+ children: /* @__PURE__ */ jsxs("svg", { width: "100%", height: "100%", className: "tw:size-full", children: [
26
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs("mask", { id: maskId, children: [
27
+ /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: "100%", height: "100%", fill: "white" }),
28
+ cutout && /* @__PURE__ */ jsx(
29
+ "rect",
30
+ {
31
+ x: cutout.x,
32
+ y: cutout.y,
33
+ width: cutout.width,
34
+ height: cutout.height,
35
+ rx: radius,
36
+ ry: radius,
37
+ fill: "black"
38
+ }
39
+ )
40
+ ] }) }),
41
+ /* @__PURE__ */ jsx(
42
+ "rect",
43
+ {
44
+ x: "0",
45
+ y: "0",
46
+ width: "100%",
47
+ height: "100%",
48
+ mask: `url(#${maskId})`,
49
+ className: "tw:pointer-events-auto tw:fill-foreground/50"
50
+ }
51
+ )
52
+ ] })
53
+ }
54
+ )
55
+ );
56
+ };
57
+ var resolveElement = (target) => {
58
+ if (!target) return null;
59
+ if (typeof target !== "string") return target.current;
60
+ try {
61
+ return document.querySelector(target);
62
+ } catch (error) {
63
+ console.error(`useTargetRect: invalid target selector "${target}"`, error);
64
+ return null;
65
+ }
66
+ };
67
+ var useTargetRect = (target, enabled) => {
68
+ const [rect, setRect] = useState(null);
69
+ useLayoutEffect(() => {
70
+ if (!enabled || !target) {
71
+ setRect(null);
72
+ return;
73
+ }
74
+ let frame = 0;
75
+ let attemptsLeft = 60;
76
+ const same = (a, b) => {
77
+ if (a === null) return false;
78
+ return a.top === b.top && a.left === b.left && a.width === b.width && a.height === b.height;
79
+ };
80
+ const measure = () => {
81
+ const element = resolveElement(target);
82
+ if (!element) {
83
+ setRect(null);
84
+ if (attemptsLeft > 0) {
85
+ attemptsLeft -= 1;
86
+ frame = requestAnimationFrame(measure);
87
+ }
88
+ return;
89
+ }
90
+ const box = element.getBoundingClientRect();
91
+ const next = { top: box.top, left: box.left, width: box.width, height: box.height };
92
+ setRect((prev) => same(prev, next) ? prev : next);
93
+ };
94
+ const scheduleMeasure = () => {
95
+ cancelAnimationFrame(frame);
96
+ frame = requestAnimationFrame(measure);
97
+ };
98
+ measure();
99
+ window.addEventListener("resize", scheduleMeasure, { passive: true });
100
+ window.addEventListener("scroll", scheduleMeasure, { capture: true, passive: true });
101
+ return () => {
102
+ cancelAnimationFrame(frame);
103
+ window.removeEventListener("resize", scheduleMeasure);
104
+ window.removeEventListener("scroll", scheduleMeasure, true);
105
+ };
106
+ }, [target, enabled]);
107
+ return rect;
108
+ };
109
+
110
+ export { SpotlightBackdrop, useTargetRect };
111
+ //# sourceMappingURL=chunk-ANFZWPNE.js.map
112
+ //# sourceMappingURL=chunk-ANFZWPNE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/SpotlightBackdrop/SpotlightBackdrop.tsx","../src/components/SpotlightBackdrop/useTargetRect.ts"],"names":[],"mappings":"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","file":"chunk-ANFZWPNE.js","sourcesContent":["import { type MouseEventHandler, useId } from 'react';\n\nimport { cn } from '../../utils';\n\nimport type { TargetRect } from './useTargetRect';\n\ntype Props = {\n /** Target box to cut out of the dim layer, or `null` for a full dim (no highlight). */\n rect: TargetRect | null;\n /** Padding around the target inside the cut-out, in px. */\n padding?: number;\n /** Corner radius of the cut-out, in px. */\n radius?: number;\n className?: string;\n /** Fired when the dim layer is clicked (e.g. to dismiss). Receives the click event. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n};\n\n/**\n * Full-viewport dimmed layer with an SVG-mask cut-out around a target rect,\n * producing a spotlight highlight. With `rect={null}` it dims the whole viewport\n * (no cut-out). The dim tone uses the semantic `foreground` token, so it re-skins\n * with the active brand.\n *\n * **Presentational primitive** — pass a `rect` from `useTargetRect`, and compose\n * with `Popover` for an anchored callout. Tour / coachmark orchestration\n * (steps, next/prev, \"seen\" persistence) is intentionally app-owned; see the\n * \"Guided tour (recipe)\" story for the composition.\n */\nexport const SpotlightBackdrop = ({ rect, padding = 8, radius = 8, className, onClick }: Props) => {\n const maskId = useId();\n\n const cutout = rect\n ? {\n x: rect.left - padding,\n y: rect.top - padding,\n width: rect.width + padding * 2,\n height: rect.height + padding * 2,\n }\n : null;\n\n return (\n // Sits above the standard portalled surface tier (z 1055) so stray popovers\n // can't punch through the dim; the anchored callout must set a higher z.\n // The wrapper ignores pointer events and only the painted dim (the masked\n // rect) captures them, bubbling to the wrapper's `onClick`. A click inside\n // the masked-out cut-out isn't painted, so it falls through to the target.\n <div\n aria-hidden\n onClick={onClick}\n className={cn('tw:pointer-events-none tw:fixed tw:inset-0 tw:z-[1056]', className)}\n >\n <svg width=\"100%\" height=\"100%\" className=\"tw:size-full\">\n <defs>\n <mask id={maskId}>\n <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"white\" />\n {cutout && (\n <rect\n x={cutout.x}\n y={cutout.y}\n width={cutout.width}\n height={cutout.height}\n rx={radius}\n ry={radius}\n fill=\"black\"\n />\n )}\n </mask>\n </defs>\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n mask={`url(#${maskId})`}\n className=\"tw:pointer-events-auto tw:fill-foreground/50\"\n />\n </svg>\n </div>\n );\n};\n","import { type RefObject, useLayoutEffect, useState } from 'react';\n\n/** Viewport-relative box of the highlighted target. */\nexport type TargetRect = {\n top: number;\n left: number;\n width: number;\n height: number;\n};\n\n/** Element to track: a CSS selector, a React ref, or nothing (centered/no target). */\nexport type SpotlightTarget = string | RefObject<Element | null> | undefined;\n\nconst resolveElement = (target: SpotlightTarget): Element | null => {\n if (!target) return null;\n if (typeof target !== 'string') return target.current;\n try {\n return document.querySelector(target);\n } catch (error) {\n // An invalid selector throws a DOMException; don't crash the render.\n console.error(`useTargetRect: invalid target selector \"${target}\"`, error);\n return null;\n }\n};\n\n/**\n * Resolves a `target` (CSS selector or React ref) to a live viewport rect and\n * keeps it in sync while `enabled` — re-measuring on resize and scroll so an\n * anchored overlay (e.g. `SpotlightBackdrop` + `Popover`) follows the element.\n * Returns `null` when disabled or the target is absent, so callers can fall\n * back to a centered/full-dim layout.\n */\nexport const useTargetRect = (target: SpotlightTarget, enabled: boolean): TargetRect | null => {\n const [rect, setRect] = useState<TargetRect | null>(null);\n\n useLayoutEffect(() => {\n if (!enabled || !target) {\n setRect(null);\n return;\n }\n\n let frame = 0;\n // Cap the lazy-mount poll so a permanently-absent target settles on `null`\n // instead of spinning a frame forever. ~1s at 60fps is ample for a target\n // that mounts a tick or two after the overlay opens.\n let attemptsLeft = 60;\n\n const same = (a: TargetRect | null, b: TargetRect) => {\n if (a === null) return false;\n return a.top === b.top && a.left === b.left && a.width === b.width && a.height === b.height;\n };\n\n // Re-resolve on every measure: the target may mount lazily after the overlay\n // opens, so we poll (rAF) until it appears — up to `attemptsLeft` frames —\n // then track it on resize/scroll. Until then `rect` stays `null` and the\n // caller falls back to a centered/full-dim layout. State only updates when\n // the rect actually changed, avoiding needless re-renders.\n const measure = () => {\n const element = resolveElement(target);\n if (!element) {\n setRect(null);\n if (attemptsLeft > 0) {\n attemptsLeft -= 1;\n frame = requestAnimationFrame(measure);\n }\n return;\n }\n const box = element.getBoundingClientRect();\n const next = { top: box.top, left: box.left, width: box.width, height: box.height };\n setRect((prev) => (same(prev, next) ? prev : next));\n };\n\n // Coalesce scroll/resize bursts to at most one measure per animation frame.\n const scheduleMeasure = () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(measure);\n };\n\n measure();\n window.addEventListener('resize', scheduleMeasure, { passive: true });\n window.addEventListener('scroll', scheduleMeasure, { capture: true, passive: true });\n\n return () => {\n cancelAnimationFrame(frame);\n window.removeEventListener('resize', scheduleMeasure);\n window.removeEventListener('scroll', scheduleMeasure, true);\n };\n }, [target, enabled]);\n\n return rect;\n};\n"]}
@@ -0,0 +1,73 @@
1
+ import { cn } from './chunk-LXLIQ2D6.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ var buttonGroupVariant = cva(
6
+ ["tailwindcss-preflight", "tw:inline-flex", "tw:items-center", "tw:group/button-group"],
7
+ {
8
+ defaultVariants: {
9
+ variant: "inline",
10
+ space: "small"
11
+ },
12
+ variants: {
13
+ variant: {
14
+ inline: [],
15
+ block: [
16
+ "tw:w-full",
17
+ "tw:flex-col",
18
+ "tw:sm:flex-row",
19
+ "tw:[&_a]:flex-1",
20
+ "tw:[&>button:not([data-icon-only=true])]:flex-1"
21
+ ]
22
+ },
23
+ space: {
24
+ "extra-small": "tw:gap-1",
25
+ "little-small": "tw:gap-2",
26
+ small: "tw:gap-3",
27
+ medium: "tw:gap-4",
28
+ large: "tw:gap-6",
29
+ compact: [
30
+ "tw:border-collapse",
31
+ "tw:!gap-0",
32
+ // ensure that focus visible outline is at the top
33
+ "tw:[&>*:focus-visible]:!z-10",
34
+ "tw:[&>*:not(:first-child)]:rounded-l-none",
35
+ "tw:[&>*:not(:last-child)]:rounded-r-none",
36
+ "tw:[&>*:not(:last-child)]:border-r-0",
37
+ "tw:[&>*:not(:first-child)]:border-l-0",
38
+ // separator
39
+ "tw:[&>*:not(:first-child)]:before:content",
40
+ "tw:[&>*:not(:first-child)]:before:absolute",
41
+ "tw:[&>*:not(:first-child)]:before:left-0",
42
+ "tw:[&>*:not(:first-child)]:before:h-full",
43
+ "tw:[&>*:not(:first-child)]:before:w-px",
44
+ "tw:[&>*:not(:first-child)]:before:bg-black/10"
45
+ ]
46
+ }
47
+ }
48
+ }
49
+ );
50
+ var ButtonGroup = ({
51
+ ref,
52
+ children,
53
+ space = "small",
54
+ className,
55
+ variant,
56
+ ...rest
57
+ }) => {
58
+ return /* @__PURE__ */ jsx(
59
+ "div",
60
+ {
61
+ ref,
62
+ ...rest,
63
+ role: "group",
64
+ "data-variant": variant,
65
+ className: cn(buttonGroupVariant({ variant, space }), className),
66
+ children
67
+ }
68
+ );
69
+ };
70
+
71
+ export { ButtonGroup };
72
+ //# sourceMappingURL=chunk-ANZTVAJU.js.map
73
+ //# sourceMappingURL=chunk-ANZTVAJU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":";;;;AAMA,IAAM,kBAAA,GAAqB,GAAA;AAAA,EACzB,CAAC,uBAAA,EAAyB,gBAAA,EAAkB,iBAAA,EAAmB,uBAAuB,CAAA;AAAA,EACtF;AAAA,IACE,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,QAAA;AAAA,MACT,KAAA,EAAO;AAAA,KACT;AAAA,IACA,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,QAAQ,EAAC;AAAA,QACT,KAAA,EAAO;AAAA,UACL,WAAA;AAAA,UACA,aAAA;AAAA,UACA,gBAAA;AAAA,UACA,iBAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,aAAA,EAAe,UAAA;AAAA,QACf,cAAA,EAAgB,UAAA;AAAA,QAChB,KAAA,EAAO,UAAA;AAAA,QACP,MAAA,EAAQ,UAAA;AAAA,QACR,KAAA,EAAO,UAAA;AAAA,QACP,OAAA,EAAS;AAAA,UACP,oBAAA;AAAA,UACA,WAAA;AAAA;AAAA,UAGA,8BAAA;AAAA,UAEA,2CAAA;AAAA,UACA,0CAAA;AAAA,UACA,sCAAA;AAAA,UACA,uCAAA;AAAA;AAAA,UAGA,2CAAA;AAAA,UACA,4CAAA;AAAA,UACA,0CAAA;AAAA,UACA,0CAAA;AAAA,UACA,wCAAA;AAAA,UACA;AAAA;AACF;AACF;AACF;AAEJ,CAAA;AAQO,IAAM,cAAc,CAAC;AAAA,EAC1B,GAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,OAAA;AAAA,EACR,SAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAa;AACX,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,IAAA;AAAA,MACJ,IAAA,EAAK,OAAA;AAAA,MACL,cAAA,EAAc,OAAA;AAAA,MAKd,SAAA,EAAW,GAAG,kBAAA,CAAmB,EAAE,SAAS,KAAA,EAAO,GAAG,SAAS,CAAA;AAAA,MAE9D;AAAA;AAAA,GACH;AAEJ","file":"chunk-ANZTVAJU.js","sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\nconst buttonGroupVariant = cva(\n ['tailwindcss-preflight', 'tw:inline-flex', 'tw:items-center', 'tw:group/button-group'],\n {\n defaultVariants: {\n variant: 'inline',\n space: 'small',\n },\n variants: {\n variant: {\n inline: [],\n block: [\n 'tw:w-full',\n 'tw:flex-col',\n 'tw:sm:flex-row',\n 'tw:[&_a]:flex-1',\n 'tw:[&>button:not([data-icon-only=true])]:flex-1',\n ],\n },\n space: {\n 'extra-small': 'tw:gap-1',\n 'little-small': 'tw:gap-2',\n small: 'tw:gap-3',\n medium: 'tw:gap-4',\n large: 'tw:gap-6',\n compact: [\n 'tw:border-collapse',\n 'tw:!gap-0',\n\n // ensure that focus visible outline is at the top\n 'tw:[&>*:focus-visible]:!z-10',\n\n 'tw:[&>*:not(:first-child)]:rounded-l-none',\n 'tw:[&>*:not(:last-child)]:rounded-r-none',\n 'tw:[&>*:not(:last-child)]:border-r-0',\n 'tw:[&>*:not(:first-child)]:border-l-0',\n\n // separator\n 'tw:[&>*:not(:first-child)]:before:content',\n 'tw:[&>*:not(:first-child)]:before:absolute',\n 'tw:[&>*:not(:first-child)]:before:left-0',\n 'tw:[&>*:not(:first-child)]:before:h-full',\n 'tw:[&>*:not(:first-child)]:before:w-px',\n 'tw:[&>*:not(:first-child)]:before:bg-black/10',\n ],\n },\n },\n },\n);\n\ntype Props = {\n children: ReactNode;\n className?: string;\n} & VariantProps<typeof buttonGroupVariant> &\n ComponentProps<'div'>;\n\nexport const ButtonGroup = ({\n ref,\n children,\n space = 'small',\n className,\n variant,\n ...rest\n}: Props) => {\n return (\n <div\n ref={ref}\n {...rest}\n role=\"group\"\n data-variant={variant}\n // cn (tailwind-merge), not cva's raw className append: a caller passing e.g.\n // `tw:hidden` must override the base `tw:inline-flex`. cva only concatenates, so both\n // land on the element and the winner is decided by CSS source order — which flipped in\n // v4 (`inline-flex` now sorts after `hidden`), leaving hover-reveal groups always visible.\n className={cn(buttonGroupVariant({ variant, space }), className)}\n >\n {children}\n </div>\n );\n};\n"]}
@@ -0,0 +1,166 @@
1
+ import { ModalTitle, ModalDescription, ModalOverlay } from './chunk-KZVC7OYG.js';
2
+ import { Button } from './chunk-IXAYNBOY.js';
3
+ import { X } from './chunk-RQVK4IYC.js';
4
+ import { useArgoDesign } from './chunk-WETKNYZX.js';
5
+ import { cn } from './chunk-LXLIQ2D6.js';
6
+ import { Root, Close, Trigger, Portal, Content, Title } from '@radix-ui/react-dialog';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+ import { cva } from 'class-variance-authority';
9
+
10
+ var SheetBody = ({ className, ...rest }) => /* @__PURE__ */ jsx(
11
+ "div",
12
+ {
13
+ ...rest,
14
+ className: cn("tw:flex", "tw:flex-col", "tw:overflow-x-hidden", "tw:px-4", className)
15
+ }
16
+ );
17
+ var SheetOverlay = ({ ref, ...props }) => /* @__PURE__ */ jsx(ModalOverlay, { ref, ...props });
18
+ var sheetContentVariants = cva(
19
+ [
20
+ // reset
21
+ "tailwindcss-preflight",
22
+ // positioning
23
+ "tw:fixed",
24
+ // Use standard tailwindcss class when, global override in tooltip.less file is removed.
25
+ "tw:z-[1051]",
26
+ "tw:flex",
27
+ "tw:flex-col",
28
+ "tw:bg-card",
29
+ "tw:text-card-foreground",
30
+ "tw:shadow-lg",
31
+ // argo chrome overrides
32
+ "tw:data-[argo=true]:border",
33
+ "tw:data-[argo=true]:border-border",
34
+ "tw:data-[argo=true]:focus-visible:outline-hidden",
35
+ "tw:data-[argo=true]:focus-visible:ring-2",
36
+ "tw:data-[argo=true]:focus-visible:ring-ring/50",
37
+ "tw:ease-in-out",
38
+ // opening animation
39
+ "tw:data-[state=open]:duration-200",
40
+ // close animation
41
+ "tw:data-[state=closed]:duration-200"
42
+ ],
43
+ {
44
+ defaultVariants: {
45
+ side: "right",
46
+ disableTransition: false
47
+ },
48
+ variants: {
49
+ disableTransition: {
50
+ true: [],
51
+ false: ["tw:data-[state=open]:animate-in", "tw:data-[state=closed]:animate-out"]
52
+ },
53
+ side: {
54
+ top: [
55
+ "tw:inset-x-0",
56
+ "tw:top-0",
57
+ "tw:h-auto",
58
+ "tw:data-[state=closed]:slide-out-to-top",
59
+ "tw:data-[state=open]:slide-in-from-top",
60
+ "tw:data-[argo=true]:rounded-b-lg"
61
+ ],
62
+ right: [
63
+ "tw:inset-y-0",
64
+ "tw:right-0",
65
+ "tw:h-full",
66
+ "tw:data-[state=closed]:slide-out-to-right",
67
+ "tw:data-[state=open]:slide-in-from-right",
68
+ "tw:data-[argo=true]:rounded-l-lg"
69
+ ],
70
+ bottom: [
71
+ "tw:inset-x-0",
72
+ "tw:bottom-0",
73
+ "tw:h-auto",
74
+ "tw:data-[state=closed]:slide-out-to-bottom",
75
+ "tw:data-[state=open]:slide-in-from-bottom",
76
+ "tw:drop-shadow-2xl",
77
+ // standard tailwindcss shadow is invisible for a bottom sheet because of positioning
78
+ "tw:data-[argo=true]:rounded-t-lg"
79
+ ],
80
+ left: [
81
+ "tw:inset-y-0",
82
+ "tw:left-0",
83
+ "tw:h-full",
84
+ "tw:data-[state=closed]:slide-out-to-left",
85
+ "tw:data-[state=open]:slide-in-from-left",
86
+ "tw:data-[argo=true]:rounded-r-lg"
87
+ ]
88
+ }
89
+ }
90
+ }
91
+ );
92
+ var SheetContent = ({
93
+ className,
94
+ children,
95
+ side = "right",
96
+ disableTransition = false,
97
+ hideOverlay = false,
98
+ keepOpenOnPointerDownOutside = false,
99
+ onPointerDownOutside,
100
+ onInteractOutside,
101
+ container,
102
+ ...props
103
+ }) => {
104
+ const renderArgo = useArgoDesign();
105
+ const handleOnPointerDownOutside = (event) => {
106
+ if (keepOpenOnPointerDownOutside) event.preventDefault();
107
+ onPointerDownOutside?.(event);
108
+ };
109
+ const handleOnInteractOutside = (event) => {
110
+ if (keepOpenOnPointerDownOutside) event.preventDefault();
111
+ onInteractOutside?.(event);
112
+ };
113
+ return /* @__PURE__ */ jsxs(Portal, { container, children: [
114
+ !hideOverlay && /* @__PURE__ */ jsx(SheetOverlay, { disableTransition: disableTransition ?? false }),
115
+ /* @__PURE__ */ jsx(
116
+ Content,
117
+ {
118
+ ...props,
119
+ "aria-describedby": void 0,
120
+ className: cn(sheetContentVariants({ side, className, disableTransition })),
121
+ onPointerDownOutside: handleOnPointerDownOutside,
122
+ onInteractOutside: handleOnInteractOutside,
123
+ "data-side": side,
124
+ "data-argo": renderArgo,
125
+ children
126
+ }
127
+ )
128
+ ] });
129
+ };
130
+ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4", className), ...props });
131
+ var SheetHeader = ({
132
+ className,
133
+ children,
134
+ hideCloseIcon = false,
135
+ title,
136
+ description,
137
+ ...props
138
+ }) => {
139
+ const isHeaderRendered = title || description || !hideCloseIcon;
140
+ return /* @__PURE__ */ jsxs("div", { className: cn("tw:flex", "tw:flex-col", "tw:gap-1.5", "tw:p-4", className), ...props, children: [
141
+ isHeaderRendered && /* @__PURE__ */ jsxs("div", { className: "tw:flex tw:flex-col", children: [
142
+ /* @__PURE__ */ jsxs("div", { className: "tw:flex tw:justify-end tw:gap-2", children: [
143
+ title && /* @__PURE__ */ jsx(ModalTitle, { children: title }),
144
+ !hideCloseIcon && /* @__PURE__ */ jsx(Close, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "invisible", size: "icon-sm", children: [
145
+ /* @__PURE__ */ jsx(X, {}),
146
+ /* @__PURE__ */ jsx("span", { className: "tw:sr-only", children: "Close" })
147
+ ] }) })
148
+ ] }),
149
+ description && /* @__PURE__ */ jsx(ModalDescription, { children: description })
150
+ ] }),
151
+ children
152
+ ] });
153
+ };
154
+ var SheetTitle = ({ className, visuallyHidden = false, ...props }) => /* @__PURE__ */ jsx(Title, { className: cn({ "tw:sr-only": visuallyHidden }, className), ...props });
155
+ var Sheet = (props) => /* @__PURE__ */ jsx(Root, { ...props });
156
+ Sheet.Close = Close;
157
+ Sheet.Trigger = Trigger;
158
+ Sheet.Content = SheetContent;
159
+ Sheet.Title = SheetTitle;
160
+ Sheet.Header = SheetHeader;
161
+ Sheet.Footer = SheetFooter;
162
+ Sheet.Body = SheetBody;
163
+
164
+ export { Sheet };
165
+ //# sourceMappingURL=chunk-BD5BTJKX.js.map
166
+ //# sourceMappingURL=chunk-BD5BTJKX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Sheet/SheetBody.tsx","../src/components/Sheet/SheetOverlay.tsx","../src/components/Sheet/SheetContent.tsx","../src/components/Sheet/SheetFooter.tsx","../src/components/Sheet/SheetHeader.tsx","../src/components/Sheet/SheetTitle.tsx","../src/components/Sheet/Sheet.tsx"],"names":["jsx","jsxs","Close"],"mappings":"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","file":"chunk-BD5BTJKX.js","sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const SheetBody = ({ className, ...rest }: Props) => (\n <div\n {...rest}\n className={cn('tw:flex', 'tw:flex-col', 'tw:overflow-x-hidden', 'tw:px-4', className)}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { ModalOverlay } from '../Modal/ModalOverlay';\n\ntype Props = ComponentProps<typeof ModalOverlay>;\n\n// Assuming it should have the same style as standard modal, if not remove the modal dependency and style it separately.\nexport const SheetOverlay = ({ ref, ...props }: Props) => <ModalOverlay ref={ref} {...props} />;\n","import type { ComponentProps } from 'react';\nimport { Content, Portal } from '@radix-ui/react-dialog';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\nimport { useArgoDesign } from '../ThemeProvider/context';\n\nimport { SheetOverlay } from './SheetOverlay';\n\nconst sheetContentVariants = cva(\n [\n // reset\n 'tailwindcss-preflight',\n\n // positioning\n 'tw:fixed',\n\n // Use standard tailwindcss class when, global override in tooltip.less file is removed.\n 'tw:z-[1051]',\n\n 'tw:flex',\n 'tw:flex-col',\n\n 'tw:bg-card',\n 'tw:text-card-foreground',\n 'tw:shadow-lg',\n\n // argo chrome overrides\n 'tw:data-[argo=true]:border',\n 'tw:data-[argo=true]:border-border',\n 'tw:data-[argo=true]:focus-visible:outline-hidden',\n 'tw:data-[argo=true]:focus-visible:ring-2',\n 'tw:data-[argo=true]:focus-visible:ring-ring/50',\n\n 'tw:ease-in-out',\n // opening animation\n 'tw:data-[state=open]:duration-200',\n\n // close animation\n 'tw:data-[state=closed]:duration-200',\n ],\n {\n defaultVariants: {\n side: 'right',\n disableTransition: false,\n },\n variants: {\n disableTransition: {\n true: [],\n false: ['tw:data-[state=open]:animate-in', 'tw:data-[state=closed]:animate-out'],\n },\n side: {\n top: [\n 'tw:inset-x-0',\n 'tw:top-0',\n 'tw:h-auto',\n 'tw:data-[state=closed]:slide-out-to-top',\n 'tw:data-[state=open]:slide-in-from-top',\n 'tw:data-[argo=true]:rounded-b-lg',\n ],\n right: [\n 'tw:inset-y-0',\n 'tw:right-0',\n 'tw:h-full',\n 'tw:data-[state=closed]:slide-out-to-right',\n 'tw:data-[state=open]:slide-in-from-right',\n 'tw:data-[argo=true]:rounded-l-lg',\n ],\n\n bottom: [\n 'tw:inset-x-0',\n 'tw:bottom-0',\n 'tw:h-auto',\n 'tw:data-[state=closed]:slide-out-to-bottom',\n 'tw:data-[state=open]:slide-in-from-bottom',\n 'tw:drop-shadow-2xl', // standard tailwindcss shadow is invisible for a bottom sheet because of positioning\n 'tw:data-[argo=true]:rounded-t-lg',\n ],\n\n left: [\n 'tw:inset-y-0',\n 'tw:left-0',\n 'tw:h-full',\n 'tw:data-[state=closed]:slide-out-to-left',\n 'tw:data-[state=open]:slide-in-from-left',\n 'tw:data-[argo=true]:rounded-r-lg',\n ],\n },\n },\n },\n);\n\ntype Props = ComponentProps<typeof Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n hideOverlay?: boolean;\n keepOpenOnPointerDownOutside?: boolean;\n} & VariantProps<typeof sheetContentVariants> &\n Pick<ComponentProps<typeof Portal>, 'container'>;\n\nexport const SheetContent = ({\n className,\n children,\n side = 'right',\n disableTransition = false,\n hideOverlay = false,\n keepOpenOnPointerDownOutside = false,\n onPointerDownOutside,\n onInteractOutside,\n container,\n ...props\n}: Props) => {\n const renderArgo = useArgoDesign();\n\n const handleOnPointerDownOutside: ComponentProps<typeof Content>['onPointerDownOutside'] = (\n event,\n ) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onPointerDownOutside?.(event);\n };\n\n const handleOnInteractOutside: ComponentProps<typeof Content>['onInteractOutside'] = (event) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onInteractOutside?.(event);\n };\n\n return (\n <Portal container={container}>\n {!hideOverlay && <SheetOverlay disableTransition={disableTransition ?? false} />}\n <Content\n {...props}\n /**\n * Intentionally set undefined to avoid warning as suggested in docs, (https://www.radix-ui.com/primitives/docs/components/dialog#description)\n * as of now we don't use modal description anywhere, if we decide to fix this issue, we fix it everywhere at once.\n */\n aria-describedby={undefined}\n className={cn(sheetContentVariants({ side, className, disableTransition }))}\n onPointerDownOutside={handleOnPointerDownOutside}\n onInteractOutside={handleOnInteractOutside}\n data-side={side}\n data-argo={renderArgo}\n >\n {children}\n </Content>\n </Portal>\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const SheetFooter = ({ className, ...props }: Props) => (\n <div className={cn('tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4', className)} {...props} />\n);\n","import type { ComponentProps, ReactNode } from 'react';\nimport { Close } from '@radix-ui/react-dialog';\n\nimport { X } from '../../icons';\nimport { cn } from '../../utils';\nimport { Button } from '../Button';\nimport { ModalDescription } from '../Modal/ModalDescription';\nimport { ModalTitle } from '../Modal/ModalTitle';\n\ntype Props = {\n title?: ReactNode;\n description?: ReactNode;\n hideCloseIcon?: boolean;\n} & ComponentProps<'div'>;\n\nexport const SheetHeader = ({\n className,\n children,\n hideCloseIcon = false,\n title,\n description,\n ...props\n}: Props) => {\n const isHeaderRendered = title || description || !hideCloseIcon;\n\n return (\n <div className={cn('tw:flex', 'tw:flex-col', 'tw:gap-1.5', 'tw:p-4', className)} {...props}>\n {isHeaderRendered && (\n <div className=\"tw:flex tw:flex-col\">\n <div className=\"tw:flex tw:justify-end tw:gap-2\">\n {title && <ModalTitle>{title}</ModalTitle>}\n {!hideCloseIcon && (\n <Close asChild>\n <Button variant=\"invisible\" size=\"icon-sm\">\n <X />\n <span className=\"tw:sr-only\">Close</span>\n </Button>\n </Close>\n )}\n </div>\n {description && <ModalDescription>{description}</ModalDescription>}\n </div>\n )}\n\n {children}\n </div>\n );\n};\n","import type { ComponentProps } from 'react';\nimport { Title } from '@radix-ui/react-dialog';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof Title> & {\n visuallyHidden?: boolean;\n};\n\nexport const SheetTitle = ({ className, visuallyHidden = false, ...props }: Props) => (\n <Title className={cn({ 'tw:sr-only': visuallyHidden }, className)} {...props} />\n);\n","import type { ComponentProps } from 'react';\nimport { Close, Root, Trigger } from '@radix-ui/react-dialog';\n\nimport { SheetBody } from './SheetBody';\nimport { SheetContent } from './SheetContent';\nimport { SheetFooter } from './SheetFooter';\nimport { SheetHeader } from './SheetHeader';\nimport { SheetTitle } from './SheetTitle';\n\ntype Props = ComponentProps<typeof Root>;\n\nexport const Sheet = (props: Props) => <Root {...props} />;\n\nSheet.Close = Close;\nSheet.Trigger = Trigger;\nSheet.Content = SheetContent;\nSheet.Title = SheetTitle;\n\nSheet.Header = SheetHeader;\nSheet.Footer = SheetFooter;\nSheet.Body = SheetBody;\n"]}