@elabs-ai/components-ui 4.1.0 → 5.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 (1547) hide show
  1. package/README.md +2 -1
  2. package/dist/chunk-22Z735L6.js +18 -0
  3. package/dist/chunk-22Z735L6.js.map +1 -0
  4. package/dist/chunk-23E62DNM.js +2 -0
  5. package/dist/chunk-23E62DNM.js.map +1 -0
  6. package/dist/chunk-2AABRSIN.js +2 -0
  7. package/dist/chunk-2AABRSIN.js.map +1 -0
  8. package/dist/chunk-2HXVFC4B.js +44 -0
  9. package/dist/chunk-2HXVFC4B.js.map +1 -0
  10. package/dist/chunk-2SBYBN45.js +2 -0
  11. package/dist/chunk-2SBYBN45.js.map +1 -0
  12. package/dist/chunk-333EWYWL.js +385 -0
  13. package/dist/chunk-333EWYWL.js.map +1 -0
  14. package/dist/chunk-35DUHYPC.js +59 -0
  15. package/dist/chunk-35DUHYPC.js.map +1 -0
  16. package/dist/chunk-35ZTVB35.js +76 -0
  17. package/dist/chunk-35ZTVB35.js.map +1 -0
  18. package/dist/chunk-36VULFFV.js +2 -0
  19. package/dist/chunk-36VULFFV.js.map +1 -0
  20. package/dist/chunk-3B7W334A.js +229 -0
  21. package/dist/chunk-3B7W334A.js.map +1 -0
  22. package/dist/chunk-3EKVSKGJ.js +256 -0
  23. package/dist/chunk-3EKVSKGJ.js.map +1 -0
  24. package/dist/chunk-3JAEQNCB.js +60 -0
  25. package/dist/chunk-3JAEQNCB.js.map +1 -0
  26. package/dist/chunk-3LWAAK3J.js +140 -0
  27. package/dist/chunk-3LWAAK3J.js.map +1 -0
  28. package/dist/chunk-3OSGTUN2.js +2 -0
  29. package/dist/chunk-3OSGTUN2.js.map +1 -0
  30. package/dist/chunk-3P7SRCDB.js +23 -0
  31. package/dist/chunk-3P7SRCDB.js.map +1 -0
  32. package/dist/chunk-45ICJ3EV.js +2 -0
  33. package/dist/chunk-45ICJ3EV.js.map +1 -0
  34. package/dist/chunk-4ACT7RLU.js +2 -0
  35. package/dist/chunk-4ACT7RLU.js.map +1 -0
  36. package/dist/chunk-4E73UAFA.js +296 -0
  37. package/dist/chunk-4E73UAFA.js.map +1 -0
  38. package/dist/chunk-4GQFIJAE.js +197 -0
  39. package/dist/chunk-4GQFIJAE.js.map +1 -0
  40. package/dist/chunk-4HTVJZVG.js +2 -0
  41. package/dist/chunk-4HTVJZVG.js.map +1 -0
  42. package/dist/chunk-4KDA5MDC.js +2 -0
  43. package/dist/chunk-4KDA5MDC.js.map +1 -0
  44. package/dist/chunk-4PITSMJ3.js +52 -0
  45. package/dist/chunk-4PITSMJ3.js.map +1 -0
  46. package/dist/chunk-4PXDZR2W.js +2 -0
  47. package/dist/chunk-4PXDZR2W.js.map +1 -0
  48. package/dist/chunk-4UWOADYM.js +2 -0
  49. package/dist/chunk-4UWOADYM.js.map +1 -0
  50. package/dist/chunk-4W3MVVKN.js +66 -0
  51. package/dist/chunk-4W3MVVKN.js.map +1 -0
  52. package/dist/chunk-4YOFSGHD.js +2 -0
  53. package/dist/chunk-4YOFSGHD.js.map +1 -0
  54. package/dist/chunk-533R5EKD.js +87 -0
  55. package/dist/chunk-533R5EKD.js.map +1 -0
  56. package/dist/chunk-545HI223.js +2 -0
  57. package/dist/chunk-545HI223.js.map +1 -0
  58. package/dist/chunk-57C25JYV.js +170 -0
  59. package/dist/chunk-57C25JYV.js.map +1 -0
  60. package/dist/chunk-5AWXGBSH.js +82 -0
  61. package/dist/chunk-5AWXGBSH.js.map +1 -0
  62. package/dist/chunk-5G2DDMHR.js +2 -0
  63. package/dist/chunk-5G2DDMHR.js.map +1 -0
  64. package/dist/chunk-5HBMI2DO.js +42 -0
  65. package/dist/chunk-5HBMI2DO.js.map +1 -0
  66. package/dist/chunk-5LCN5Q2L.js +23 -0
  67. package/dist/chunk-5LCN5Q2L.js.map +1 -0
  68. package/dist/chunk-5P4BSHIG.js +2 -0
  69. package/dist/chunk-5P4BSHIG.js.map +1 -0
  70. package/dist/chunk-5RC32MZH.js +161 -0
  71. package/dist/chunk-5RC32MZH.js.map +1 -0
  72. package/dist/chunk-5SHHIQVA.js +22 -0
  73. package/dist/chunk-5SHHIQVA.js.map +1 -0
  74. package/dist/chunk-5V5J7APL.js +27 -0
  75. package/dist/chunk-5V5J7APL.js.map +1 -0
  76. package/dist/chunk-5YZLOAKR.js +2 -0
  77. package/dist/chunk-5YZLOAKR.js.map +1 -0
  78. package/dist/chunk-5Z55AFOW.js +128 -0
  79. package/dist/chunk-5Z55AFOW.js.map +1 -0
  80. package/dist/chunk-653ZIWX6.js +2 -0
  81. package/dist/chunk-653ZIWX6.js.map +1 -0
  82. package/dist/chunk-6DHG7JVP.js +2 -0
  83. package/dist/chunk-6DHG7JVP.js.map +1 -0
  84. package/dist/chunk-6HGS5Z2Z.js +110 -0
  85. package/dist/chunk-6HGS5Z2Z.js.map +1 -0
  86. package/dist/chunk-6NKILKS6.js +35 -0
  87. package/dist/chunk-6NKILKS6.js.map +1 -0
  88. package/dist/chunk-6OFWWIEG.js +50 -0
  89. package/dist/chunk-6OFWWIEG.js.map +1 -0
  90. package/dist/chunk-6OPDRLMU.js +158 -0
  91. package/dist/chunk-6OPDRLMU.js.map +1 -0
  92. package/dist/chunk-6QU7OVFA.js +357 -0
  93. package/dist/chunk-6QU7OVFA.js.map +1 -0
  94. package/dist/chunk-6ROQKB4U.js +2 -0
  95. package/dist/chunk-6ROQKB4U.js.map +1 -0
  96. package/dist/chunk-6S43VAN7.js +2 -0
  97. package/dist/chunk-6S43VAN7.js.map +1 -0
  98. package/dist/chunk-6TJVJPNU.js +1321 -0
  99. package/dist/chunk-6TJVJPNU.js.map +1 -0
  100. package/dist/chunk-6VLJL7Q4.js +2 -0
  101. package/dist/chunk-6VLJL7Q4.js.map +1 -0
  102. package/dist/chunk-7G63B2B7.js +189 -0
  103. package/dist/chunk-7G63B2B7.js.map +1 -0
  104. package/dist/chunk-7P24I5OL.js +23 -0
  105. package/dist/chunk-7P24I5OL.js.map +1 -0
  106. package/dist/chunk-7PS5MKVH.js +97 -0
  107. package/dist/chunk-7PS5MKVH.js.map +1 -0
  108. package/dist/chunk-7WIHVGYL.js +2 -0
  109. package/dist/chunk-7WIHVGYL.js.map +1 -0
  110. package/dist/chunk-7WXDSTNR.js +62 -0
  111. package/dist/chunk-7WXDSTNR.js.map +1 -0
  112. package/dist/chunk-A43B4IT7.js +395 -0
  113. package/dist/chunk-A43B4IT7.js.map +1 -0
  114. package/dist/chunk-A47AZPCL.js +35 -0
  115. package/dist/chunk-A47AZPCL.js.map +1 -0
  116. package/dist/chunk-AA3SPDJU.js +2 -0
  117. package/dist/chunk-AA3SPDJU.js.map +1 -0
  118. package/dist/chunk-AC7X3D2M.js +2 -0
  119. package/dist/chunk-AC7X3D2M.js.map +1 -0
  120. package/dist/chunk-AE6UDP36.js +2 -0
  121. package/dist/chunk-AE6UDP36.js.map +1 -0
  122. package/dist/chunk-AFEFAGPW.js +2 -0
  123. package/dist/chunk-AFEFAGPW.js.map +1 -0
  124. package/dist/chunk-AFJCS2WV.js +95 -0
  125. package/dist/chunk-AFJCS2WV.js.map +1 -0
  126. package/dist/chunk-AQNLEP5F.js +2 -0
  127. package/dist/chunk-AQNLEP5F.js.map +1 -0
  128. package/dist/chunk-AUQVJ7KO.js +2 -0
  129. package/dist/chunk-AUQVJ7KO.js.map +1 -0
  130. package/dist/chunk-AXKZBRZK.js +32 -0
  131. package/dist/chunk-AXKZBRZK.js.map +1 -0
  132. package/dist/chunk-AZEABCK4.js +30 -0
  133. package/dist/chunk-AZEABCK4.js.map +1 -0
  134. package/dist/chunk-B23VW24W.js +2 -0
  135. package/dist/chunk-B23VW24W.js.map +1 -0
  136. package/dist/chunk-B2RSOLLO.js +2 -0
  137. package/dist/chunk-B2RSOLLO.js.map +1 -0
  138. package/dist/chunk-B5QQLMEE.js +31 -0
  139. package/dist/chunk-B5QQLMEE.js.map +1 -0
  140. package/dist/chunk-BLNXHETI.js +163 -0
  141. package/dist/chunk-BLNXHETI.js.map +1 -0
  142. package/dist/chunk-BM6NGS3A.js +201 -0
  143. package/dist/chunk-BM6NGS3A.js.map +1 -0
  144. package/dist/chunk-BN4CKDFU.js +989 -0
  145. package/dist/chunk-BN4CKDFU.js.map +1 -0
  146. package/dist/chunk-BPXLHGWI.js +54 -0
  147. package/dist/chunk-BPXLHGWI.js.map +1 -0
  148. package/dist/chunk-BTBYNKT4.js +2 -0
  149. package/dist/chunk-BTBYNKT4.js.map +1 -0
  150. package/dist/chunk-BWL7HWEF.js +325 -0
  151. package/dist/chunk-BWL7HWEF.js.map +1 -0
  152. package/dist/chunk-BZQF5QCN.js +18 -0
  153. package/dist/chunk-BZQF5QCN.js.map +1 -0
  154. package/dist/chunk-C2AQEEFB.js +2 -0
  155. package/dist/chunk-C2AQEEFB.js.map +1 -0
  156. package/dist/chunk-C753P3VJ.js +2 -0
  157. package/dist/chunk-C753P3VJ.js.map +1 -0
  158. package/dist/chunk-CDE74W6O.js +2 -0
  159. package/dist/chunk-CDE74W6O.js.map +1 -0
  160. package/dist/chunk-CEQER4CV.js +2 -0
  161. package/dist/chunk-CEQER4CV.js.map +1 -0
  162. package/dist/chunk-CQ5CH3SB.js +55 -0
  163. package/dist/chunk-CQ5CH3SB.js.map +1 -0
  164. package/dist/chunk-CRGGGHAM.js +2 -0
  165. package/dist/chunk-CRGGGHAM.js.map +1 -0
  166. package/dist/chunk-CRVB4SLG.js +2 -0
  167. package/dist/chunk-CRVB4SLG.js.map +1 -0
  168. package/dist/chunk-CT6XJIPY.js +2 -0
  169. package/dist/chunk-CT6XJIPY.js.map +1 -0
  170. package/dist/chunk-CY624JOL.js +2 -0
  171. package/dist/chunk-CY624JOL.js.map +1 -0
  172. package/dist/chunk-D3C3VVCX.js +38 -0
  173. package/dist/chunk-D3C3VVCX.js.map +1 -0
  174. package/dist/chunk-D53EN4Q6.js +2 -0
  175. package/dist/chunk-D53EN4Q6.js.map +1 -0
  176. package/dist/chunk-DCHYNTHI.js +11 -0
  177. package/dist/chunk-DCHYNTHI.js.map +1 -0
  178. package/dist/chunk-DCI6IOJX.js +236 -0
  179. package/dist/chunk-DCI6IOJX.js.map +1 -0
  180. package/dist/chunk-DFYPQ52O.js +476 -0
  181. package/dist/chunk-DFYPQ52O.js.map +1 -0
  182. package/dist/chunk-DIQJODQR.js +2 -0
  183. package/dist/chunk-DIQJODQR.js.map +1 -0
  184. package/dist/chunk-DSGTH6JW.js +2 -0
  185. package/dist/chunk-DSGTH6JW.js.map +1 -0
  186. package/dist/chunk-DT6RNLCP.js +32 -0
  187. package/dist/chunk-DT6RNLCP.js.map +1 -0
  188. package/dist/chunk-DU6ITAJL.js +2 -0
  189. package/dist/chunk-DU6ITAJL.js.map +1 -0
  190. package/dist/chunk-DUF2VZON.js +36 -0
  191. package/dist/chunk-DUF2VZON.js.map +1 -0
  192. package/dist/chunk-DXDLTYTT.js +2 -0
  193. package/dist/chunk-DXDLTYTT.js.map +1 -0
  194. package/dist/chunk-E3ES2KR6.js +55 -0
  195. package/dist/chunk-E3ES2KR6.js.map +1 -0
  196. package/dist/chunk-EAFPUZ46.js +2 -0
  197. package/dist/chunk-EAFPUZ46.js.map +1 -0
  198. package/dist/chunk-EBDOKU5K.js +2 -0
  199. package/dist/chunk-EBDOKU5K.js.map +1 -0
  200. package/dist/chunk-ECCNRCC4.js +74 -0
  201. package/dist/chunk-ECCNRCC4.js.map +1 -0
  202. package/dist/chunk-EDE73Q6Z.js +2 -0
  203. package/dist/chunk-EDE73Q6Z.js.map +1 -0
  204. package/dist/chunk-EHGIW7GA.js +190 -0
  205. package/dist/chunk-EHGIW7GA.js.map +1 -0
  206. package/dist/chunk-EJQYE4MY.js +100 -0
  207. package/dist/chunk-EJQYE4MY.js.map +1 -0
  208. package/dist/chunk-EKY3A5LO.js +133 -0
  209. package/dist/chunk-EKY3A5LO.js.map +1 -0
  210. package/dist/chunk-EL3OXVOW.js +31 -0
  211. package/dist/chunk-EL3OXVOW.js.map +1 -0
  212. package/dist/chunk-EP3U7OQ3.js +18 -0
  213. package/dist/chunk-EP3U7OQ3.js.map +1 -0
  214. package/dist/chunk-EY2PGOG3.js +246 -0
  215. package/dist/chunk-EY2PGOG3.js.map +1 -0
  216. package/dist/chunk-FAOX6A5D.js +2 -0
  217. package/dist/chunk-FAOX6A5D.js.map +1 -0
  218. package/dist/chunk-FBJ2JSRA.js +47 -0
  219. package/dist/chunk-FBJ2JSRA.js.map +1 -0
  220. package/dist/chunk-FDJ77DTR.js +2 -0
  221. package/dist/chunk-FDJ77DTR.js.map +1 -0
  222. package/dist/chunk-FDPONOOT.js +93 -0
  223. package/dist/chunk-FDPONOOT.js.map +1 -0
  224. package/dist/chunk-FHDJKH2A.js +2 -0
  225. package/dist/chunk-FHDJKH2A.js.map +1 -0
  226. package/dist/chunk-FINAKMC6.js +796 -0
  227. package/dist/chunk-FINAKMC6.js.map +1 -0
  228. package/dist/chunk-FKUP7QRJ.js +54 -0
  229. package/dist/chunk-FKUP7QRJ.js.map +1 -0
  230. package/dist/chunk-FPLZ24MK.js +2 -0
  231. package/dist/chunk-FPLZ24MK.js.map +1 -0
  232. package/dist/chunk-FRFSDZIN.js +2 -0
  233. package/dist/chunk-FRFSDZIN.js.map +1 -0
  234. package/dist/chunk-FYCCNQXQ.js +173 -0
  235. package/dist/chunk-FYCCNQXQ.js.map +1 -0
  236. package/dist/chunk-G3OTDYCD.js +53 -0
  237. package/dist/chunk-G3OTDYCD.js.map +1 -0
  238. package/dist/chunk-G72UOVKS.js +2 -0
  239. package/dist/chunk-G72UOVKS.js.map +1 -0
  240. package/dist/chunk-GAI4NEPU.js +151 -0
  241. package/dist/chunk-GAI4NEPU.js.map +1 -0
  242. package/dist/chunk-GRWGNWIJ.js +187 -0
  243. package/dist/chunk-GRWGNWIJ.js.map +1 -0
  244. package/dist/chunk-GV6GQXKX.js +176 -0
  245. package/dist/chunk-GV6GQXKX.js.map +1 -0
  246. package/dist/chunk-H5UA5JW4.js +140 -0
  247. package/dist/chunk-H5UA5JW4.js.map +1 -0
  248. package/dist/chunk-H5XSI63P.js +2 -0
  249. package/dist/chunk-H5XSI63P.js.map +1 -0
  250. package/dist/chunk-HANBQNW3.js +1498 -0
  251. package/dist/chunk-HANBQNW3.js.map +1 -0
  252. package/dist/chunk-HCU2JHPH.js +169 -0
  253. package/dist/chunk-HCU2JHPH.js.map +1 -0
  254. package/dist/chunk-HDDXP2J7.js +2 -0
  255. package/dist/chunk-HDDXP2J7.js.map +1 -0
  256. package/dist/chunk-HDS64Z5L.js +54 -0
  257. package/dist/chunk-HDS64Z5L.js.map +1 -0
  258. package/dist/chunk-HHVULJGX.js +2 -0
  259. package/dist/chunk-HHVULJGX.js.map +1 -0
  260. package/dist/chunk-HLMFRCFE.js +2 -0
  261. package/dist/chunk-HLMFRCFE.js.map +1 -0
  262. package/dist/chunk-HPUPDT4Q.js +2 -0
  263. package/dist/chunk-HPUPDT4Q.js.map +1 -0
  264. package/dist/chunk-HRYH7XQP.js +209 -0
  265. package/dist/chunk-HRYH7XQP.js.map +1 -0
  266. package/dist/chunk-HVFYAQLK.js +101 -0
  267. package/dist/chunk-HVFYAQLK.js.map +1 -0
  268. package/dist/chunk-HZPNST7D.js +2 -0
  269. package/dist/chunk-HZPNST7D.js.map +1 -0
  270. package/dist/chunk-I6O6ACCH.js +2 -0
  271. package/dist/chunk-I6O6ACCH.js.map +1 -0
  272. package/dist/chunk-IGP5E4FC.js +201 -0
  273. package/dist/chunk-IGP5E4FC.js.map +1 -0
  274. package/dist/chunk-IHMFEPIT.js +123 -0
  275. package/dist/chunk-IHMFEPIT.js.map +1 -0
  276. package/dist/chunk-IM5VJP6T.js +2 -0
  277. package/dist/chunk-IM5VJP6T.js.map +1 -0
  278. package/dist/chunk-IRUZDWJ3.js +218 -0
  279. package/dist/chunk-IRUZDWJ3.js.map +1 -0
  280. package/dist/chunk-ISWUCXEZ.js +2 -0
  281. package/dist/chunk-ISWUCXEZ.js.map +1 -0
  282. package/dist/chunk-ITFDGFOT.js +31 -0
  283. package/dist/chunk-ITFDGFOT.js.map +1 -0
  284. package/dist/chunk-IUQ474IC.js +2 -0
  285. package/dist/chunk-IUQ474IC.js.map +1 -0
  286. package/dist/chunk-IY23F2Y5.js +2 -0
  287. package/dist/chunk-IY23F2Y5.js.map +1 -0
  288. package/dist/chunk-IZJOZJDL.js +75 -0
  289. package/dist/chunk-IZJOZJDL.js.map +1 -0
  290. package/dist/chunk-J2P4YZLC.js +85 -0
  291. package/dist/chunk-J2P4YZLC.js.map +1 -0
  292. package/dist/chunk-JCRBDA66.js +2 -0
  293. package/dist/chunk-JCRBDA66.js.map +1 -0
  294. package/dist/chunk-JGS2IHER.js +140 -0
  295. package/dist/chunk-JGS2IHER.js.map +1 -0
  296. package/dist/chunk-JNWXHPZG.js +24 -0
  297. package/dist/chunk-JNWXHPZG.js.map +1 -0
  298. package/dist/chunk-JWWJ2Z5C.js +2 -0
  299. package/dist/chunk-JWWJ2Z5C.js.map +1 -0
  300. package/dist/chunk-K2GLXCTG.js +2 -0
  301. package/dist/chunk-K2GLXCTG.js.map +1 -0
  302. package/dist/chunk-K6YRTASS.js +55 -0
  303. package/dist/chunk-K6YRTASS.js.map +1 -0
  304. package/dist/chunk-KAAJL2HA.js +327 -0
  305. package/dist/chunk-KAAJL2HA.js.map +1 -0
  306. package/dist/chunk-KBNWM27Q.js +48 -0
  307. package/dist/chunk-KBNWM27Q.js.map +1 -0
  308. package/dist/chunk-KOVHUAHG.js +164 -0
  309. package/dist/chunk-KOVHUAHG.js.map +1 -0
  310. package/dist/chunk-KRVSD4OK.js +2 -0
  311. package/dist/chunk-KRVSD4OK.js.map +1 -0
  312. package/dist/chunk-KTH3GWAL.js +116 -0
  313. package/dist/chunk-KTH3GWAL.js.map +1 -0
  314. package/dist/chunk-KUAVM54Y.js +30 -0
  315. package/dist/chunk-KUAVM54Y.js.map +1 -0
  316. package/dist/chunk-KWQ6HV5Z.js +97 -0
  317. package/dist/chunk-KWQ6HV5Z.js.map +1 -0
  318. package/dist/chunk-KZWC6JCI.js +177 -0
  319. package/dist/chunk-KZWC6JCI.js.map +1 -0
  320. package/dist/chunk-L37QZALU.js +17 -0
  321. package/dist/chunk-L37QZALU.js.map +1 -0
  322. package/dist/chunk-L3SHPHLK.js +35 -0
  323. package/dist/chunk-L3SHPHLK.js.map +1 -0
  324. package/dist/chunk-L66VJIRD.js +2 -0
  325. package/dist/chunk-L66VJIRD.js.map +1 -0
  326. package/dist/chunk-LDOCY4SU.js +68 -0
  327. package/dist/chunk-LDOCY4SU.js.map +1 -0
  328. package/dist/chunk-LJGWA2XL.js +2 -0
  329. package/dist/chunk-LJGWA2XL.js.map +1 -0
  330. package/dist/chunk-LLQWLZ75.js +2 -0
  331. package/dist/chunk-LLQWLZ75.js.map +1 -0
  332. package/dist/chunk-LMO3QK7Q.js +137 -0
  333. package/dist/chunk-LMO3QK7Q.js.map +1 -0
  334. package/dist/chunk-LOSXINSS.js +100 -0
  335. package/dist/chunk-LOSXINSS.js.map +1 -0
  336. package/dist/chunk-LR2CU7HK.js +41 -0
  337. package/dist/chunk-LR2CU7HK.js.map +1 -0
  338. package/dist/chunk-LSYVAOSH.js +2 -0
  339. package/dist/chunk-LSYVAOSH.js.map +1 -0
  340. package/dist/chunk-LVRULYU4.js +400 -0
  341. package/dist/chunk-LVRULYU4.js.map +1 -0
  342. package/dist/chunk-LXW3GNF7.js +201 -0
  343. package/dist/chunk-LXW3GNF7.js.map +1 -0
  344. package/dist/chunk-LYVBDMDQ.js +2 -0
  345. package/dist/chunk-LYVBDMDQ.js.map +1 -0
  346. package/dist/chunk-M3WSUFD4.js +2 -0
  347. package/dist/chunk-M3WSUFD4.js.map +1 -0
  348. package/dist/chunk-MGAXCPT7.js +87 -0
  349. package/dist/chunk-MGAXCPT7.js.map +1 -0
  350. package/dist/chunk-MIXCXZWT.js +2 -0
  351. package/dist/chunk-MIXCXZWT.js.map +1 -0
  352. package/dist/chunk-MLGBLKUH.js +2 -0
  353. package/dist/chunk-MLGBLKUH.js.map +1 -0
  354. package/dist/chunk-MNS2VWHD.js +2 -0
  355. package/dist/chunk-MNS2VWHD.js.map +1 -0
  356. package/dist/chunk-MPMMU3QI.js +2 -0
  357. package/dist/chunk-MPMMU3QI.js.map +1 -0
  358. package/dist/chunk-MRWOHWEH.js +2 -0
  359. package/dist/chunk-MRWOHWEH.js.map +1 -0
  360. package/dist/chunk-MZDL7N52.js +2 -0
  361. package/dist/chunk-MZDL7N52.js.map +1 -0
  362. package/dist/chunk-N44PNGDS.js +169 -0
  363. package/dist/chunk-N44PNGDS.js.map +1 -0
  364. package/dist/chunk-N7PJTMRL.js +2 -0
  365. package/dist/chunk-N7PJTMRL.js.map +1 -0
  366. package/dist/chunk-NBMF7SIS.js +35 -0
  367. package/dist/chunk-NBMF7SIS.js.map +1 -0
  368. package/dist/chunk-NJAGSGPF.js +245 -0
  369. package/dist/chunk-NJAGSGPF.js.map +1 -0
  370. package/dist/chunk-NMGNXW3J.js +98 -0
  371. package/dist/chunk-NMGNXW3J.js.map +1 -0
  372. package/dist/chunk-NQY3QNLR.js +80 -0
  373. package/dist/chunk-NQY3QNLR.js.map +1 -0
  374. package/dist/chunk-NRNIUM75.js +2 -0
  375. package/dist/chunk-NRNIUM75.js.map +1 -0
  376. package/dist/chunk-NRSSSVWB.js +61 -0
  377. package/dist/chunk-NRSSSVWB.js.map +1 -0
  378. package/dist/chunk-NTTSHOOK.js +78 -0
  379. package/dist/chunk-NTTSHOOK.js.map +1 -0
  380. package/dist/chunk-O3JWMB6O.js +20 -0
  381. package/dist/chunk-O3JWMB6O.js.map +1 -0
  382. package/dist/chunk-OBEJUAN6.js +246 -0
  383. package/dist/chunk-OBEJUAN6.js.map +1 -0
  384. package/dist/chunk-OEPN373X.js +2 -0
  385. package/dist/chunk-OEPN373X.js.map +1 -0
  386. package/dist/chunk-OITCRC5D.js +2 -0
  387. package/dist/chunk-OITCRC5D.js.map +1 -0
  388. package/dist/chunk-OKV3N7QK.js +2 -0
  389. package/dist/chunk-OKV3N7QK.js.map +1 -0
  390. package/dist/chunk-ON2E7XHD.js +51 -0
  391. package/dist/chunk-ON2E7XHD.js.map +1 -0
  392. package/dist/chunk-OPMMD25Z.js +218 -0
  393. package/dist/chunk-OPMMD25Z.js.map +1 -0
  394. package/dist/chunk-OR4NVFPH.js +2 -0
  395. package/dist/chunk-OR4NVFPH.js.map +1 -0
  396. package/dist/chunk-OV4GQOLC.js +73 -0
  397. package/dist/chunk-OV4GQOLC.js.map +1 -0
  398. package/dist/chunk-OYKS7YHE.js +2 -0
  399. package/dist/chunk-OYKS7YHE.js.map +1 -0
  400. package/dist/chunk-OYM3NHSD.js +74 -0
  401. package/dist/chunk-OYM3NHSD.js.map +1 -0
  402. package/dist/chunk-OZTM6PYF.js +30 -0
  403. package/dist/chunk-OZTM6PYF.js.map +1 -0
  404. package/dist/chunk-PHAENHGL.js +19 -0
  405. package/dist/chunk-PHAENHGL.js.map +1 -0
  406. package/dist/chunk-PLCQZBZS.js +63 -0
  407. package/dist/chunk-PLCQZBZS.js.map +1 -0
  408. package/dist/chunk-PP7POY7C.js +110 -0
  409. package/dist/chunk-PP7POY7C.js.map +1 -0
  410. package/dist/chunk-PSBNQZB4.js +2 -0
  411. package/dist/chunk-PSBNQZB4.js.map +1 -0
  412. package/dist/chunk-PYPNGKRD.js +355 -0
  413. package/dist/chunk-PYPNGKRD.js.map +1 -0
  414. package/dist/chunk-QDJHUNBQ.js +2 -0
  415. package/dist/chunk-QDJHUNBQ.js.map +1 -0
  416. package/dist/chunk-QDTGDYMM.js +77 -0
  417. package/dist/chunk-QDTGDYMM.js.map +1 -0
  418. package/dist/chunk-QF6UWWDY.js +125 -0
  419. package/dist/chunk-QF6UWWDY.js.map +1 -0
  420. package/dist/chunk-QGX37P5L.js +24 -0
  421. package/dist/chunk-QGX37P5L.js.map +1 -0
  422. package/dist/chunk-QNEOO22E.js +75 -0
  423. package/dist/chunk-QNEOO22E.js.map +1 -0
  424. package/dist/chunk-QODOFLHL.js +2 -0
  425. package/dist/chunk-QODOFLHL.js.map +1 -0
  426. package/dist/chunk-QRGYKV4J.js +2 -0
  427. package/dist/chunk-QRGYKV4J.js.map +1 -0
  428. package/dist/chunk-QTIKGWU4.js +91 -0
  429. package/dist/chunk-QTIKGWU4.js.map +1 -0
  430. package/dist/chunk-R3SYH7RG.js +782 -0
  431. package/dist/chunk-R3SYH7RG.js.map +1 -0
  432. package/dist/chunk-R5JYMCEA.js +2 -0
  433. package/dist/chunk-R5JYMCEA.js.map +1 -0
  434. package/dist/chunk-R7DDZIE3.js +232 -0
  435. package/dist/chunk-R7DDZIE3.js.map +1 -0
  436. package/dist/chunk-RB5AWLDJ.js +26 -0
  437. package/dist/chunk-RB5AWLDJ.js.map +1 -0
  438. package/dist/chunk-RF7JSNXJ.js +2 -0
  439. package/dist/chunk-RF7JSNXJ.js.map +1 -0
  440. package/dist/chunk-RHXVQZOW.js +2 -0
  441. package/dist/chunk-RHXVQZOW.js.map +1 -0
  442. package/dist/chunk-RM5JIUVW.js +74 -0
  443. package/dist/chunk-RM5JIUVW.js.map +1 -0
  444. package/dist/chunk-RMSMTLXH.js +2 -0
  445. package/dist/chunk-RMSMTLXH.js.map +1 -0
  446. package/dist/chunk-RNC4M6SG.js +85 -0
  447. package/dist/chunk-RNC4M6SG.js.map +1 -0
  448. package/dist/chunk-RRYWMYGI.js +14 -0
  449. package/dist/chunk-RRYWMYGI.js.map +1 -0
  450. package/dist/chunk-RRZUMIYG.js +93 -0
  451. package/dist/chunk-RRZUMIYG.js.map +1 -0
  452. package/dist/chunk-RTHCX2TG.js +59 -0
  453. package/dist/chunk-RTHCX2TG.js.map +1 -0
  454. package/dist/chunk-RWUKMJYA.js +39 -0
  455. package/dist/chunk-RWUKMJYA.js.map +1 -0
  456. package/dist/chunk-SMTAPQEQ.js +2 -0
  457. package/dist/chunk-SMTAPQEQ.js.map +1 -0
  458. package/dist/chunk-SS6EOZKZ.js +2 -0
  459. package/dist/chunk-SS6EOZKZ.js.map +1 -0
  460. package/dist/chunk-T2XEMEN2.js +2 -0
  461. package/dist/chunk-T2XEMEN2.js.map +1 -0
  462. package/dist/chunk-T4JNXV75.js +125 -0
  463. package/dist/chunk-T4JNXV75.js.map +1 -0
  464. package/dist/chunk-T7JOWG2A.js +10 -0
  465. package/dist/chunk-T7JOWG2A.js.map +1 -0
  466. package/dist/chunk-TAQI4JTE.js +12 -0
  467. package/dist/chunk-TAQI4JTE.js.map +1 -0
  468. package/dist/chunk-TEKBTTP2.js +27 -0
  469. package/dist/chunk-TEKBTTP2.js.map +1 -0
  470. package/dist/chunk-TNOANK34.js +4483 -0
  471. package/dist/chunk-TNOANK34.js.map +1 -0
  472. package/dist/chunk-TU24Y4HN.js +178 -0
  473. package/dist/chunk-TU24Y4HN.js.map +1 -0
  474. package/dist/chunk-U26XDHMX.js +726 -0
  475. package/dist/chunk-U26XDHMX.js.map +1 -0
  476. package/dist/chunk-U4LHV5DS.js +36 -0
  477. package/dist/chunk-U4LHV5DS.js.map +1 -0
  478. package/dist/chunk-U7QYCYHC.js +2 -0
  479. package/dist/chunk-U7QYCYHC.js.map +1 -0
  480. package/dist/chunk-UANAVLMS.js +2 -0
  481. package/dist/chunk-UANAVLMS.js.map +1 -0
  482. package/dist/chunk-UCEVPLR5.js +2 -0
  483. package/dist/chunk-UCEVPLR5.js.map +1 -0
  484. package/dist/chunk-UCQDLRHR.js +31 -0
  485. package/dist/chunk-UCQDLRHR.js.map +1 -0
  486. package/dist/chunk-UFF7LLGU.js +2 -0
  487. package/dist/chunk-UFF7LLGU.js.map +1 -0
  488. package/dist/chunk-UG5TKXTK.js +2 -0
  489. package/dist/chunk-UG5TKXTK.js.map +1 -0
  490. package/dist/chunk-ULIDYFM7.js +192 -0
  491. package/dist/chunk-ULIDYFM7.js.map +1 -0
  492. package/dist/chunk-UPEMEBWH.js +186 -0
  493. package/dist/chunk-UPEMEBWH.js.map +1 -0
  494. package/dist/chunk-UQHWOPUY.js +61 -0
  495. package/dist/chunk-UQHWOPUY.js.map +1 -0
  496. package/dist/chunk-UQRYTMR7.js +2 -0
  497. package/dist/chunk-UQRYTMR7.js.map +1 -0
  498. package/dist/chunk-URVAZW44.js +323 -0
  499. package/dist/chunk-URVAZW44.js.map +1 -0
  500. package/dist/chunk-USI4LB3N.js +2 -0
  501. package/dist/chunk-USI4LB3N.js.map +1 -0
  502. package/dist/chunk-UXSV6RVS.js +31 -0
  503. package/dist/chunk-UXSV6RVS.js.map +1 -0
  504. package/dist/chunk-V2S5DINS.js +2 -0
  505. package/dist/chunk-V2S5DINS.js.map +1 -0
  506. package/dist/chunk-V3EQ6ACC.js +2 -0
  507. package/dist/chunk-V3EQ6ACC.js.map +1 -0
  508. package/dist/chunk-V4DDHF7S.js +147 -0
  509. package/dist/chunk-V4DDHF7S.js.map +1 -0
  510. package/dist/chunk-VA2OONPE.js +77 -0
  511. package/dist/chunk-VA2OONPE.js.map +1 -0
  512. package/dist/chunk-VFF3AN4Y.js +90 -0
  513. package/dist/chunk-VFF3AN4Y.js.map +1 -0
  514. package/dist/chunk-VH7GG77B.js +2 -0
  515. package/dist/chunk-VH7GG77B.js.map +1 -0
  516. package/dist/chunk-VHLPJ4XW.js +2 -0
  517. package/dist/chunk-VHLPJ4XW.js.map +1 -0
  518. package/dist/chunk-VLE5THFD.js +2 -0
  519. package/dist/chunk-VLE5THFD.js.map +1 -0
  520. package/dist/chunk-VORFRWM5.js +2 -0
  521. package/dist/chunk-VORFRWM5.js.map +1 -0
  522. package/dist/chunk-VQ2T3OEC.js +27 -0
  523. package/dist/chunk-VQ2T3OEC.js.map +1 -0
  524. package/dist/chunk-VRIAWF3A.js +25 -0
  525. package/dist/chunk-VRIAWF3A.js.map +1 -0
  526. package/dist/chunk-W6HCXQBH.js +198 -0
  527. package/dist/chunk-W6HCXQBH.js.map +1 -0
  528. package/dist/chunk-W7I2X6VI.js +2 -0
  529. package/dist/chunk-W7I2X6VI.js.map +1 -0
  530. package/dist/chunk-WCCCW4KD.js +140 -0
  531. package/dist/chunk-WCCCW4KD.js.map +1 -0
  532. package/dist/chunk-WNIVCHDP.js +2 -0
  533. package/dist/chunk-WNIVCHDP.js.map +1 -0
  534. package/dist/chunk-WOMO5CZ7.js +2 -0
  535. package/dist/chunk-WOMO5CZ7.js.map +1 -0
  536. package/dist/chunk-WTB4DDZP.js +163 -0
  537. package/dist/chunk-WTB4DDZP.js.map +1 -0
  538. package/dist/chunk-WW3CD7AU.js +118 -0
  539. package/dist/chunk-WW3CD7AU.js.map +1 -0
  540. package/dist/chunk-WX3LWMVU.js +81 -0
  541. package/dist/chunk-WX3LWMVU.js.map +1 -0
  542. package/dist/chunk-WYENWW3Y.js +2 -0
  543. package/dist/chunk-WYENWW3Y.js.map +1 -0
  544. package/dist/chunk-WZTFU6FJ.js +69 -0
  545. package/dist/chunk-WZTFU6FJ.js.map +1 -0
  546. package/dist/chunk-X4FE7UKP.js +2 -0
  547. package/dist/chunk-X4FE7UKP.js.map +1 -0
  548. package/dist/chunk-X6J4KKZZ.js +126 -0
  549. package/dist/chunk-X6J4KKZZ.js.map +1 -0
  550. package/dist/chunk-XAFRTZQF.js +56 -0
  551. package/dist/chunk-XAFRTZQF.js.map +1 -0
  552. package/dist/chunk-XGX3UFLD.js +2 -0
  553. package/dist/chunk-XGX3UFLD.js.map +1 -0
  554. package/dist/chunk-XGXCMA5M.js +2 -0
  555. package/dist/chunk-XGXCMA5M.js.map +1 -0
  556. package/dist/chunk-XJQADN6S.js +41 -0
  557. package/dist/chunk-XJQADN6S.js.map +1 -0
  558. package/dist/chunk-XMZ5LXL4.js +68 -0
  559. package/dist/chunk-XMZ5LXL4.js.map +1 -0
  560. package/dist/chunk-XONGYCW3.js +637 -0
  561. package/dist/chunk-XONGYCW3.js.map +1 -0
  562. package/dist/chunk-XYACSO57.js +36 -0
  563. package/dist/chunk-XYACSO57.js.map +1 -0
  564. package/dist/chunk-XYFEQHEM.js +2 -0
  565. package/dist/chunk-XYFEQHEM.js.map +1 -0
  566. package/dist/chunk-XZ23AFOP.js +26 -0
  567. package/dist/chunk-XZ23AFOP.js.map +1 -0
  568. package/dist/chunk-YACASX6X.js +54 -0
  569. package/dist/chunk-YACASX6X.js.map +1 -0
  570. package/dist/chunk-YCFOFNQF.js +28 -0
  571. package/dist/chunk-YCFOFNQF.js.map +1 -0
  572. package/dist/chunk-YIFB24WW.js +37 -0
  573. package/dist/chunk-YIFB24WW.js.map +1 -0
  574. package/dist/chunk-YIVL6HWS.js +68 -0
  575. package/dist/chunk-YIVL6HWS.js.map +1 -0
  576. package/dist/chunk-YK4H7VWM.js +2 -0
  577. package/dist/chunk-YK4H7VWM.js.map +1 -0
  578. package/dist/chunk-YL7VBHPZ.js +100 -0
  579. package/dist/chunk-YL7VBHPZ.js.map +1 -0
  580. package/dist/chunk-YMFEBGTU.js +2 -0
  581. package/dist/chunk-YMFEBGTU.js.map +1 -0
  582. package/dist/chunk-YPLKH5H4.js +226 -0
  583. package/dist/chunk-YPLKH5H4.js.map +1 -0
  584. package/dist/chunk-YWB7HLL7.js +126 -0
  585. package/dist/chunk-YWB7HLL7.js.map +1 -0
  586. package/dist/chunk-YXHHUJOZ.js +235 -0
  587. package/dist/chunk-YXHHUJOZ.js.map +1 -0
  588. package/dist/chunk-YZVXIPBC.js +2 -0
  589. package/dist/chunk-YZVXIPBC.js.map +1 -0
  590. package/dist/chunk-Z44RRTMX.js +2 -0
  591. package/dist/chunk-Z44RRTMX.js.map +1 -0
  592. package/dist/chunk-Z4CYBG3H.js +2 -0
  593. package/dist/chunk-Z4CYBG3H.js.map +1 -0
  594. package/dist/chunk-ZE2H4J3P.js +2 -0
  595. package/dist/chunk-ZE2H4J3P.js.map +1 -0
  596. package/dist/chunk-ZEMTALKO.js +2 -0
  597. package/dist/chunk-ZEMTALKO.js.map +1 -0
  598. package/dist/chunk-ZI2OXD6L.js +244 -0
  599. package/dist/chunk-ZI2OXD6L.js.map +1 -0
  600. package/dist/chunk-ZNFHDBUW.js +266 -0
  601. package/dist/chunk-ZNFHDBUW.js.map +1 -0
  602. package/dist/chunk-ZXBUOHCR.js +111 -0
  603. package/dist/chunk-ZXBUOHCR.js.map +1 -0
  604. package/dist/chunk-ZXVPEQM5.js +2 -0
  605. package/dist/chunk-ZXVPEQM5.js.map +1 -0
  606. package/dist/components/accordion/accordion.js +16 -0
  607. package/dist/components/accordion/accordion.js.map +1 -0
  608. package/dist/components/accordion/index.js +17 -0
  609. package/dist/components/accordion/index.js.map +1 -0
  610. package/dist/components/advanced-group/advanced-group.js +18 -0
  611. package/dist/components/advanced-group/advanced-group.js.map +1 -0
  612. package/dist/components/advanced-group/index.js +18 -0
  613. package/dist/components/advanced-group/index.js.map +1 -0
  614. package/dist/components/alert/alert.js +16 -0
  615. package/dist/components/alert/alert.js.map +1 -0
  616. package/dist/components/alert/index.js +17 -0
  617. package/dist/components/alert/index.js.map +1 -0
  618. package/dist/components/alert-dialog/alert-dialog.js +30 -0
  619. package/dist/components/alert-dialog/alert-dialog.js.map +1 -0
  620. package/dist/components/alert-dialog/index.js +31 -0
  621. package/dist/components/alert-dialog/index.js.map +1 -0
  622. package/dist/components/ambient-field/ambient-field.css +59 -0
  623. package/dist/components/ambient-field/ambient-field.css.map +1 -0
  624. package/dist/components/ambient-field/ambient-field.js +15 -0
  625. package/dist/components/ambient-field/ambient-field.js.map +1 -0
  626. package/dist/components/ambient-field/index.css +59 -0
  627. package/dist/components/ambient-field/index.css.map +1 -0
  628. package/dist/components/ambient-field/index.js +16 -0
  629. package/dist/components/ambient-field/index.js.map +1 -0
  630. package/dist/components/app-shell/app-shell.js +14 -0
  631. package/dist/components/app-shell/app-shell.js.map +1 -0
  632. package/dist/components/app-shell/index.js +15 -0
  633. package/dist/components/app-shell/index.js.map +1 -0
  634. package/dist/components/app-sidebar/app-sidebar.js +31 -0
  635. package/dist/components/app-sidebar/app-sidebar.js.map +1 -0
  636. package/dist/components/app-sidebar/index.js +31 -0
  637. package/dist/components/app-sidebar/index.js.map +1 -0
  638. package/dist/components/aspect-ratio/aspect-ratio.js +9 -0
  639. package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -0
  640. package/dist/components/aspect-ratio/index.js +10 -0
  641. package/dist/components/aspect-ratio/index.js.map +1 -0
  642. package/dist/components/attribution-panel/attribution-panel.js +24 -0
  643. package/dist/components/attribution-panel/attribution-panel.js.map +1 -0
  644. package/dist/components/attribution-panel/attribution-types.js +2 -0
  645. package/dist/components/attribution-panel/attribution-types.js.map +1 -0
  646. package/dist/components/attribution-panel/attributions.generated.js +9 -0
  647. package/dist/components/attribution-panel/attributions.generated.js.map +1 -0
  648. package/dist/components/attribution-panel/index.js +24 -0
  649. package/dist/components/attribution-panel/index.js.map +1 -0
  650. package/dist/components/avatar/avatar.js +14 -0
  651. package/dist/components/avatar/avatar.js.map +1 -0
  652. package/dist/components/avatar/index.js +15 -0
  653. package/dist/components/avatar/index.js.map +1 -0
  654. package/dist/components/badge/badge.js +16 -0
  655. package/dist/components/badge/badge.js.map +1 -0
  656. package/dist/components/badge/index.js +13 -0
  657. package/dist/components/badge/index.js.map +1 -0
  658. package/dist/components/bento-grid/bento-grid.js +16 -0
  659. package/dist/components/bento-grid/bento-grid.js.map +1 -0
  660. package/dist/components/bento-grid/index.js +16 -0
  661. package/dist/components/bento-grid/index.js.map +1 -0
  662. package/dist/components/bounded-number/bounded-number.js +24 -0
  663. package/dist/components/bounded-number/bounded-number.js.map +1 -0
  664. package/dist/components/bounded-number/index.js +24 -0
  665. package/dist/components/bounded-number/index.js.map +1 -0
  666. package/dist/components/breadcrumb/breadcrumb.js +28 -0
  667. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  668. package/dist/components/breadcrumb/index.js +26 -0
  669. package/dist/components/breadcrumb/index.js.map +1 -0
  670. package/dist/components/button/button.js +12 -0
  671. package/dist/components/button/button.js.map +1 -0
  672. package/dist/components/button/index.js +13 -0
  673. package/dist/components/button/index.js.map +1 -0
  674. package/dist/components/button-group/button-group.js +18 -0
  675. package/dist/components/button-group/button-group.js.map +1 -0
  676. package/dist/components/button-group/index.js +19 -0
  677. package/dist/components/button-group/index.js.map +1 -0
  678. package/dist/components/calendar/calendar.js +12 -0
  679. package/dist/components/calendar/calendar.js.map +1 -0
  680. package/dist/components/calendar/index.js +13 -0
  681. package/dist/components/calendar/index.js.map +1 -0
  682. package/dist/components/card/card.js +27 -0
  683. package/dist/components/card/card.js.map +1 -0
  684. package/dist/components/card/index.js +27 -0
  685. package/dist/components/card/index.js.map +1 -0
  686. package/dist/components/carousel/carousel.js +24 -0
  687. package/dist/components/carousel/carousel.js.map +1 -0
  688. package/dist/components/carousel/index.js +24 -0
  689. package/dist/components/carousel/index.js.map +1 -0
  690. package/dist/components/change-review/change-review.js +34 -0
  691. package/dist/components/change-review/change-review.js.map +1 -0
  692. package/dist/components/change-review/index.js +34 -0
  693. package/dist/components/change-review/index.js.map +1 -0
  694. package/dist/components/checkbox/checkbox.js +10 -0
  695. package/dist/components/checkbox/checkbox.js.map +1 -0
  696. package/dist/components/checkbox/index.js +11 -0
  697. package/dist/components/checkbox/index.js.map +1 -0
  698. package/dist/components/collapsible/collapsible.js +14 -0
  699. package/dist/components/collapsible/collapsible.js.map +1 -0
  700. package/dist/components/collapsible/index.js +15 -0
  701. package/dist/components/collapsible/index.js.map +1 -0
  702. package/dist/components/collapsible-panel/index.js +11 -0
  703. package/dist/components/collapsible-panel/index.js.map +1 -0
  704. package/dist/components/collapsible-panel/use-collapsible-panel.js +11 -0
  705. package/dist/components/collapsible-panel/use-collapsible-panel.js.map +1 -0
  706. package/dist/components/color-picker/color-picker.js +18 -0
  707. package/dist/components/color-picker/color-picker.js.map +1 -0
  708. package/dist/components/color-picker/index.js +18 -0
  709. package/dist/components/color-picker/index.js.map +1 -0
  710. package/dist/components/combobox/combobox.js +28 -0
  711. package/dist/components/combobox/combobox.js.map +1 -0
  712. package/dist/components/combobox/index.js +28 -0
  713. package/dist/components/combobox/index.js.map +1 -0
  714. package/dist/components/command/command.js +39 -0
  715. package/dist/components/command/command.js.map +1 -0
  716. package/dist/components/command/index.js +39 -0
  717. package/dist/components/command/index.js.map +1 -0
  718. package/dist/components/command-chip/command-chip.js +17 -0
  719. package/dist/components/command-chip/command-chip.js.map +1 -0
  720. package/dist/components/command-chip/index.js +17 -0
  721. package/dist/components/command-chip/index.js.map +1 -0
  722. package/dist/components/command-trigger/command-trigger.js +12 -0
  723. package/dist/components/command-trigger/command-trigger.js.map +1 -0
  724. package/dist/components/command-trigger/index.js +13 -0
  725. package/dist/components/command-trigger/index.js.map +1 -0
  726. package/dist/components/confirm-dialog/confirm-dialog.js +20 -0
  727. package/dist/components/confirm-dialog/confirm-dialog.js.map +1 -0
  728. package/dist/components/confirm-dialog/index.js +20 -0
  729. package/dist/components/confirm-dialog/index.js.map +1 -0
  730. package/dist/components/context-menu/context-menu.js +36 -0
  731. package/dist/components/context-menu/context-menu.js.map +1 -0
  732. package/dist/components/context-menu/index.js +37 -0
  733. package/dist/components/context-menu/index.js.map +1 -0
  734. package/dist/components/context-rail/context-rail.js +35 -0
  735. package/dist/components/context-rail/context-rail.js.map +1 -0
  736. package/dist/components/context-rail/index.js +35 -0
  737. package/dist/components/context-rail/index.js.map +1 -0
  738. package/dist/components/copyable-value/copyable-value.js +19 -0
  739. package/dist/components/copyable-value/copyable-value.js.map +1 -0
  740. package/dist/components/copyable-value/index.js +17 -0
  741. package/dist/components/copyable-value/index.js.map +1 -0
  742. package/dist/components/date-picker/date-picker.js +21 -0
  743. package/dist/components/date-picker/date-picker.js.map +1 -0
  744. package/dist/components/date-picker/index.js +21 -0
  745. package/dist/components/date-picker/index.js.map +1 -0
  746. package/dist/components/date-range-picker/date-range-picker.js +22 -0
  747. package/dist/components/date-range-picker/date-range-picker.js.map +1 -0
  748. package/dist/components/date-range-picker/index.js +22 -0
  749. package/dist/components/date-range-picker/index.js.map +1 -0
  750. package/dist/components/descriptions/descriptions.js +12 -0
  751. package/dist/components/descriptions/descriptions.js.map +1 -0
  752. package/dist/components/descriptions/index.js +13 -0
  753. package/dist/components/descriptions/index.js.map +1 -0
  754. package/dist/components/dialog/dialog.js +41 -0
  755. package/dist/components/dialog/dialog.js.map +1 -0
  756. package/dist/components/dialog/index.js +45 -0
  757. package/dist/components/dialog/index.js.map +1 -0
  758. package/dist/components/dialog/use-dialog-dismiss-guard.js +10 -0
  759. package/dist/components/dialog/use-dialog-dismiss-guard.js.map +1 -0
  760. package/dist/components/drawer/drawer.js +26 -0
  761. package/dist/components/drawer/drawer.js.map +1 -0
  762. package/dist/components/drawer/index.js +27 -0
  763. package/dist/components/drawer/index.js.map +1 -0
  764. package/dist/components/dropdown-menu/dropdown-menu.js +38 -0
  765. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
  766. package/dist/components/dropdown-menu/index.js +39 -0
  767. package/dist/components/dropdown-menu/index.js.map +1 -0
  768. package/dist/components/empty-state/empty-state.js +15 -0
  769. package/dist/components/empty-state/empty-state.js.map +1 -0
  770. package/dist/components/empty-state/index.js +16 -0
  771. package/dist/components/empty-state/index.js.map +1 -0
  772. package/dist/components/error-state/error-state.js +15 -0
  773. package/dist/components/error-state/error-state.js.map +1 -0
  774. package/dist/components/error-state/index.js +16 -0
  775. package/dist/components/error-state/index.js.map +1 -0
  776. package/dist/components/expand-dialog/expand-dialog.js +28 -0
  777. package/dist/components/expand-dialog/expand-dialog.js.map +1 -0
  778. package/dist/components/expand-dialog/index.js +28 -0
  779. package/dist/components/expand-dialog/index.js.map +1 -0
  780. package/dist/components/field/field-context.js +11 -0
  781. package/dist/components/field/field-context.js.map +1 -0
  782. package/dist/components/field/field.js +23 -0
  783. package/dist/components/field/field.js.map +1 -0
  784. package/dist/components/field/index.js +23 -0
  785. package/dist/components/field/index.js.map +1 -0
  786. package/dist/components/field-row/field-row.js +14 -0
  787. package/dist/components/field-row/field-row.js.map +1 -0
  788. package/dist/components/field-row/index.js +14 -0
  789. package/dist/components/field-row/index.js.map +1 -0
  790. package/dist/components/file-upload/file-upload.js +28 -0
  791. package/dist/components/file-upload/file-upload.js.map +1 -0
  792. package/dist/components/file-upload/index.js +26 -0
  793. package/dist/components/file-upload/index.js.map +1 -0
  794. package/dist/components/form/form.js +27 -0
  795. package/dist/components/form/form.js.map +1 -0
  796. package/dist/components/hover-card/hover-card.js +14 -0
  797. package/dist/components/hover-card/hover-card.js.map +1 -0
  798. package/dist/components/hover-card/index.js +15 -0
  799. package/dist/components/hover-card/index.js.map +1 -0
  800. package/dist/components/icon-button/icon-button.js +14 -0
  801. package/dist/components/icon-button/icon-button.js.map +1 -0
  802. package/dist/components/icon-button/index.js +15 -0
  803. package/dist/components/icon-button/index.js.map +1 -0
  804. package/dist/components/input/index.js +11 -0
  805. package/dist/components/input/index.js.map +1 -0
  806. package/dist/components/input/input.js +10 -0
  807. package/dist/components/input/input.js.map +1 -0
  808. package/dist/components/input-group/index.js +31 -0
  809. package/dist/components/input-group/index.js.map +1 -0
  810. package/dist/components/input-group/input-group.js +30 -0
  811. package/dist/components/input-group/input-group.js.map +1 -0
  812. package/dist/components/input-otp/index.js +17 -0
  813. package/dist/components/input-otp/index.js.map +1 -0
  814. package/dist/components/input-otp/input-otp.js +17 -0
  815. package/dist/components/input-otp/input-otp.js.map +1 -0
  816. package/dist/components/install-tabs/index.js +28 -0
  817. package/dist/components/install-tabs/index.js.map +1 -0
  818. package/dist/components/install-tabs/install-tabs.js +28 -0
  819. package/dist/components/install-tabs/install-tabs.js.map +1 -0
  820. package/dist/components/integration-matrix/index.js +26 -0
  821. package/dist/components/integration-matrix/index.js.map +1 -0
  822. package/dist/components/integration-matrix/integration-matrix.js +26 -0
  823. package/dist/components/integration-matrix/integration-matrix.js.map +1 -0
  824. package/dist/components/kbd/index.js +11 -0
  825. package/dist/components/kbd/index.js.map +1 -0
  826. package/dist/components/kbd/kbd.js +10 -0
  827. package/dist/components/kbd/kbd.js.map +1 -0
  828. package/dist/components/key-value-editor/index.js +18 -0
  829. package/dist/components/key-value-editor/index.js.map +1 -0
  830. package/dist/components/key-value-editor/key-value-editor.js +18 -0
  831. package/dist/components/key-value-editor/key-value-editor.js.map +1 -0
  832. package/dist/components/keyboard-shortcuts/index.js +25 -0
  833. package/dist/components/keyboard-shortcuts/index.js.map +1 -0
  834. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.js +25 -0
  835. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.js.map +1 -0
  836. package/dist/components/label/index.js +11 -0
  837. package/dist/components/label/index.js.map +1 -0
  838. package/dist/components/label/label.js +10 -0
  839. package/dist/components/label/label.js.map +1 -0
  840. package/dist/components/link-preview/index.js +14 -0
  841. package/dist/components/link-preview/index.js.map +1 -0
  842. package/dist/components/link-preview/link-preview.js +14 -0
  843. package/dist/components/link-preview/link-preview.js.map +1 -0
  844. package/dist/components/list-editor/index.js +18 -0
  845. package/dist/components/list-editor/index.js.map +1 -0
  846. package/dist/components/list-editor/list-editor.js +18 -0
  847. package/dist/components/list-editor/list-editor.js.map +1 -0
  848. package/dist/components/loading-state/index.js +16 -0
  849. package/dist/components/loading-state/index.js.map +1 -0
  850. package/dist/components/loading-state/loading-state.js +15 -0
  851. package/dist/components/loading-state/loading-state.js.map +1 -0
  852. package/dist/components/locale-provider/index.js +16 -0
  853. package/dist/components/locale-provider/index.js.map +1 -0
  854. package/dist/components/locale-provider/locale-provider.js +13 -0
  855. package/dist/components/locale-provider/locale-provider.js.map +1 -0
  856. package/dist/components/locale-provider/messages.js +10 -0
  857. package/dist/components/locale-provider/messages.js.map +1 -0
  858. package/dist/components/match-highlight/index.js +15 -0
  859. package/dist/components/match-highlight/index.js.map +1 -0
  860. package/dist/components/match-highlight/match-highlight.js +14 -0
  861. package/dist/components/match-highlight/match-highlight.js.map +1 -0
  862. package/dist/components/mention-input/index.js +46 -0
  863. package/dist/components/mention-input/index.js.map +1 -0
  864. package/dist/components/mention-input/mention-input.js +33 -0
  865. package/dist/components/mention-input/mention-input.js.map +1 -0
  866. package/dist/components/mention-input/mention-value.js +20 -0
  867. package/dist/components/mention-input/mention-value.js.map +1 -0
  868. package/dist/components/menubar/index.js +39 -0
  869. package/dist/components/menubar/index.js.map +1 -0
  870. package/dist/components/menubar/menubar.js +38 -0
  871. package/dist/components/menubar/menubar.js.map +1 -0
  872. package/dist/components/meter/index.js +15 -0
  873. package/dist/components/meter/index.js.map +1 -0
  874. package/dist/components/meter/meter.js +15 -0
  875. package/dist/components/meter/meter.js.map +1 -0
  876. package/dist/components/metric-card/index.js +24 -0
  877. package/dist/components/metric-card/index.js.map +1 -0
  878. package/dist/components/metric-card/metric-card.js +24 -0
  879. package/dist/components/metric-card/metric-card.js.map +1 -0
  880. package/dist/components/model-picker/index.js +37 -0
  881. package/dist/components/model-picker/index.js.map +1 -0
  882. package/dist/components/model-picker/model-picker-state.js +13 -0
  883. package/dist/components/model-picker/model-picker-state.js.map +1 -0
  884. package/dist/components/model-picker/model-picker.js +37 -0
  885. package/dist/components/model-picker/model-picker.js.map +1 -0
  886. package/dist/components/nav-main/index.js +33 -0
  887. package/dist/components/nav-main/index.js.map +1 -0
  888. package/dist/components/nav-main/nav-main.js +33 -0
  889. package/dist/components/nav-main/nav-main.js.map +1 -0
  890. package/dist/components/nav-notifications/index.js +20 -0
  891. package/dist/components/nav-notifications/index.js.map +1 -0
  892. package/dist/components/nav-notifications/nav-notifications.js +20 -0
  893. package/dist/components/nav-notifications/nav-notifications.js.map +1 -0
  894. package/dist/components/nav-user/index.js +35 -0
  895. package/dist/components/nav-user/index.js.map +1 -0
  896. package/dist/components/nav-user/nav-user.js +35 -0
  897. package/dist/components/nav-user/nav-user.js.map +1 -0
  898. package/dist/components/navigation-menu/index.js +25 -0
  899. package/dist/components/navigation-menu/index.js.map +1 -0
  900. package/dist/components/navigation-menu/navigation-menu.js +25 -0
  901. package/dist/components/navigation-menu/navigation-menu.js.map +1 -0
  902. package/dist/components/number-input/index.js +22 -0
  903. package/dist/components/number-input/index.js.map +1 -0
  904. package/dist/components/number-input/number-input.js +22 -0
  905. package/dist/components/number-input/number-input.js.map +1 -0
  906. package/dist/components/page-shell/index.js +11 -0
  907. package/dist/components/page-shell/index.js.map +1 -0
  908. package/dist/components/page-shell/page-shell.js +10 -0
  909. package/dist/components/page-shell/page-shell.js.map +1 -0
  910. package/dist/components/pagination/index.js +28 -0
  911. package/dist/components/pagination/index.js.map +1 -0
  912. package/dist/components/pagination/pagination.js +28 -0
  913. package/dist/components/pagination/pagination.js.map +1 -0
  914. package/dist/components/parallax-plane/index.css +17 -0
  915. package/dist/components/parallax-plane/index.css.map +1 -0
  916. package/dist/components/parallax-plane/index.js +18 -0
  917. package/dist/components/parallax-plane/index.js.map +1 -0
  918. package/dist/components/parallax-plane/parallax-plane.css +17 -0
  919. package/dist/components/parallax-plane/parallax-plane.css.map +1 -0
  920. package/dist/components/parallax-plane/parallax-plane.js +18 -0
  921. package/dist/components/parallax-plane/parallax-plane.js.map +1 -0
  922. package/dist/components/popover/index.js +17 -0
  923. package/dist/components/popover/index.js.map +1 -0
  924. package/dist/components/popover/popover.js +16 -0
  925. package/dist/components/popover/popover.js.map +1 -0
  926. package/dist/components/progress/index.js +13 -0
  927. package/dist/components/progress/index.js.map +1 -0
  928. package/dist/components/progress/progress.js +12 -0
  929. package/dist/components/progress/progress.js.map +1 -0
  930. package/dist/components/radio-group/index.js +13 -0
  931. package/dist/components/radio-group/index.js.map +1 -0
  932. package/dist/components/radio-group/radio-group.js +12 -0
  933. package/dist/components/radio-group/radio-group.js.map +1 -0
  934. package/dist/components/rating/index.js +11 -0
  935. package/dist/components/rating/index.js.map +1 -0
  936. package/dist/components/rating/rating.js +11 -0
  937. package/dist/components/rating/rating.js.map +1 -0
  938. package/dist/components/resizable/index.js +15 -0
  939. package/dist/components/resizable/index.js.map +1 -0
  940. package/dist/components/resizable/resizable.js +14 -0
  941. package/dist/components/resizable/resizable.js.map +1 -0
  942. package/dist/components/reveal/index.js +15 -0
  943. package/dist/components/reveal/index.js.map +1 -0
  944. package/dist/components/reveal/reveal.js +14 -0
  945. package/dist/components/reveal/reveal.js.map +1 -0
  946. package/dist/components/reveal-on-enter/index.css +21 -0
  947. package/dist/components/reveal-on-enter/index.css.map +1 -0
  948. package/dist/components/reveal-on-enter/index.js +12 -0
  949. package/dist/components/reveal-on-enter/index.js.map +1 -0
  950. package/dist/components/reveal-on-enter/reveal-on-enter.css +21 -0
  951. package/dist/components/reveal-on-enter/reveal-on-enter.css.map +1 -0
  952. package/dist/components/reveal-on-enter/reveal-on-enter.js +12 -0
  953. package/dist/components/reveal-on-enter/reveal-on-enter.js.map +1 -0
  954. package/dist/components/revision-timeline/index.js +18 -0
  955. package/dist/components/revision-timeline/index.js.map +1 -0
  956. package/dist/components/revision-timeline/revision-timeline.js +18 -0
  957. package/dist/components/revision-timeline/revision-timeline.js.map +1 -0
  958. package/dist/components/schema-form/from-json-schema.js +13 -0
  959. package/dist/components/schema-form/from-json-schema.js.map +1 -0
  960. package/dist/components/schema-form/index.js +140 -0
  961. package/dist/components/schema-form/index.js.map +1 -0
  962. package/dist/components/schema-form/schema-form-spec.js +63 -0
  963. package/dist/components/schema-form/schema-form-spec.js.map +1 -0
  964. package/dist/components/schema-form/schema-form-store.js +21 -0
  965. package/dist/components/schema-form/schema-form-store.js.map +1 -0
  966. package/dist/components/schema-form/schema-form.js +77 -0
  967. package/dist/components/schema-form/schema-form.js.map +1 -0
  968. package/dist/components/scroll-area/index.js +13 -0
  969. package/dist/components/scroll-area/index.js.map +1 -0
  970. package/dist/components/scroll-area/scroll-area.js +12 -0
  971. package/dist/components/scroll-area/scroll-area.js.map +1 -0
  972. package/dist/components/section-header/index.js +11 -0
  973. package/dist/components/section-header/index.js.map +1 -0
  974. package/dist/components/section-header/section-header.js +10 -0
  975. package/dist/components/section-header/section-header.js.map +1 -0
  976. package/dist/components/segmented-field/index.js +17 -0
  977. package/dist/components/segmented-field/index.js.map +1 -0
  978. package/dist/components/segmented-field/segmented-field.js +17 -0
  979. package/dist/components/segmented-field/segmented-field.js.map +1 -0
  980. package/dist/components/select/index.js +26 -0
  981. package/dist/components/select/index.js.map +1 -0
  982. package/dist/components/select/select.js +26 -0
  983. package/dist/components/select/select.js.map +1 -0
  984. package/dist/components/separator/index.js +11 -0
  985. package/dist/components/separator/index.js.map +1 -0
  986. package/dist/components/separator/separator.js +10 -0
  987. package/dist/components/separator/separator.js.map +1 -0
  988. package/dist/components/sheet/index.js +30 -0
  989. package/dist/components/sheet/index.js.map +1 -0
  990. package/dist/components/sheet/sheet.js +30 -0
  991. package/dist/components/sheet/sheet.js.map +1 -0
  992. package/dist/components/side-dock/index.js +20 -0
  993. package/dist/components/side-dock/index.js.map +1 -0
  994. package/dist/components/side-dock/side-dock.js +20 -0
  995. package/dist/components/side-dock/side-dock.js.map +1 -0
  996. package/dist/components/sidebar/index.js +77 -0
  997. package/dist/components/sidebar/index.js.map +1 -0
  998. package/dist/components/sidebar/sidebar.js +77 -0
  999. package/dist/components/sidebar/sidebar.js.map +1 -0
  1000. package/dist/components/skeleton/index.js +11 -0
  1001. package/dist/components/skeleton/index.js.map +1 -0
  1002. package/dist/components/skeleton/skeleton.js +10 -0
  1003. package/dist/components/skeleton/skeleton.js.map +1 -0
  1004. package/dist/components/skip-link/index.js +11 -0
  1005. package/dist/components/skip-link/index.js.map +1 -0
  1006. package/dist/components/skip-link/skip-link.js +10 -0
  1007. package/dist/components/skip-link/skip-link.js.map +1 -0
  1008. package/dist/components/slider/index.js +11 -0
  1009. package/dist/components/slider/index.js.map +1 -0
  1010. package/dist/components/slider/slider.js +10 -0
  1011. package/dist/components/slider/slider.js.map +1 -0
  1012. package/dist/components/slider-number/index.js +26 -0
  1013. package/dist/components/slider-number/index.js.map +1 -0
  1014. package/dist/components/slider-number/slider-number.js +26 -0
  1015. package/dist/components/slider-number/slider-number.js.map +1 -0
  1016. package/dist/components/sonner/index.js +13 -0
  1017. package/dist/components/sonner/index.js.map +1 -0
  1018. package/dist/components/sonner/sonner.js +13 -0
  1019. package/dist/components/sonner/sonner.js.map +1 -0
  1020. package/dist/components/spec-playground/index.js +23 -0
  1021. package/dist/components/spec-playground/index.js.map +1 -0
  1022. package/dist/components/spec-playground/locate-json-path.js +17 -0
  1023. package/dist/components/spec-playground/locate-json-path.js.map +1 -0
  1024. package/dist/components/spec-playground/spec-playground.js +23 -0
  1025. package/dist/components/spec-playground/spec-playground.js.map +1 -0
  1026. package/dist/components/spinner/index.js +14 -0
  1027. package/dist/components/spinner/index.js.map +1 -0
  1028. package/dist/components/spinner/spinner.js +14 -0
  1029. package/dist/components/spinner/spinner.js.map +1 -0
  1030. package/dist/components/split-panel/index.js +13 -0
  1031. package/dist/components/split-panel/index.js.map +1 -0
  1032. package/dist/components/split-panel/split-panel.js +12 -0
  1033. package/dist/components/split-panel/split-panel.js.map +1 -0
  1034. package/dist/components/state-panel/index.js +17 -0
  1035. package/dist/components/state-panel/index.js.map +1 -0
  1036. package/dist/components/state-panel/state-panel.js +17 -0
  1037. package/dist/components/state-panel/state-panel.js.map +1 -0
  1038. package/dist/components/status-badge/index.js +30 -0
  1039. package/dist/components/status-badge/index.js.map +1 -0
  1040. package/dist/components/status-badge/status-badge.js +29 -0
  1041. package/dist/components/status-badge/status-badge.js.map +1 -0
  1042. package/dist/components/surface-tour/index.css +21 -0
  1043. package/dist/components/surface-tour/index.css.map +1 -0
  1044. package/dist/components/surface-tour/index.js +36 -0
  1045. package/dist/components/surface-tour/index.js.map +1 -0
  1046. package/dist/components/surface-tour/surface-tour.css +21 -0
  1047. package/dist/components/surface-tour/surface-tour.css.map +1 -0
  1048. package/dist/components/surface-tour/surface-tour.js +36 -0
  1049. package/dist/components/surface-tour/surface-tour.js.map +1 -0
  1050. package/dist/components/switch/index.js +11 -0
  1051. package/dist/components/switch/index.js.map +1 -0
  1052. package/dist/components/switch/switch.js +10 -0
  1053. package/dist/components/switch/switch.js.map +1 -0
  1054. package/dist/components/table/index.js +28 -0
  1055. package/dist/components/table/index.js.map +1 -0
  1056. package/dist/components/table/table.js +28 -0
  1057. package/dist/components/table/table.js.map +1 -0
  1058. package/dist/components/tabs/index.js +22 -0
  1059. package/dist/components/tabs/index.js.map +1 -0
  1060. package/dist/components/tabs/tabs.js +22 -0
  1061. package/dist/components/tabs/tabs.js.map +1 -0
  1062. package/dist/components/tag-input/index.js +21 -0
  1063. package/dist/components/tag-input/index.js.map +1 -0
  1064. package/dist/components/tag-input/tag-input.js +21 -0
  1065. package/dist/components/tag-input/tag-input.js.map +1 -0
  1066. package/dist/components/team-switcher/index.js +33 -0
  1067. package/dist/components/team-switcher/index.js.map +1 -0
  1068. package/dist/components/team-switcher/team-switcher.js +33 -0
  1069. package/dist/components/team-switcher/team-switcher.js.map +1 -0
  1070. package/dist/components/textarea/index.js +11 -0
  1071. package/dist/components/textarea/index.js.map +1 -0
  1072. package/dist/components/textarea/textarea.js +10 -0
  1073. package/dist/components/textarea/textarea.js.map +1 -0
  1074. package/dist/components/theme-family-switch/index.js +19 -0
  1075. package/dist/components/theme-family-switch/index.js.map +1 -0
  1076. package/dist/components/theme-family-switch/theme-family-switch.js +19 -0
  1077. package/dist/components/theme-family-switch/theme-family-switch.js.map +1 -0
  1078. package/dist/components/theme-switcher/index.js +24 -0
  1079. package/dist/components/theme-switcher/index.js.map +1 -0
  1080. package/dist/components/theme-switcher/theme-switcher.js +21 -0
  1081. package/dist/components/theme-switcher/theme-switcher.js.map +1 -0
  1082. package/dist/components/theme-switcher/use-theme-transition.js +10 -0
  1083. package/dist/components/theme-switcher/use-theme-transition.js.map +1 -0
  1084. package/dist/components/timeline/index.js +18 -0
  1085. package/dist/components/timeline/index.js.map +1 -0
  1086. package/dist/components/timeline/timeline.js +19 -0
  1087. package/dist/components/timeline/timeline.js.map +1 -0
  1088. package/dist/components/toggle/index.js +13 -0
  1089. package/dist/components/toggle/index.js.map +1 -0
  1090. package/dist/components/toggle/toggle.js +12 -0
  1091. package/dist/components/toggle/toggle.js.map +1 -0
  1092. package/dist/components/toggle-group/index.js +15 -0
  1093. package/dist/components/toggle-group/index.js.map +1 -0
  1094. package/dist/components/toggle-group/toggle-group.js +15 -0
  1095. package/dist/components/toggle-group/toggle-group.js.map +1 -0
  1096. package/dist/components/token-spotlight/index.css +25 -0
  1097. package/dist/components/token-spotlight/index.css.map +1 -0
  1098. package/dist/components/token-spotlight/index.js +23 -0
  1099. package/dist/components/token-spotlight/index.js.map +1 -0
  1100. package/dist/components/token-spotlight/token-spotlight.css +25 -0
  1101. package/dist/components/token-spotlight/token-spotlight.css.map +1 -0
  1102. package/dist/components/token-spotlight/token-spotlight.js +23 -0
  1103. package/dist/components/token-spotlight/token-spotlight.js.map +1 -0
  1104. package/dist/components/token-spotlight/token-value-format.js +11 -0
  1105. package/dist/components/token-spotlight/token-value-format.js.map +1 -0
  1106. package/dist/components/toolbar/index.js +27 -0
  1107. package/dist/components/toolbar/index.js.map +1 -0
  1108. package/dist/components/toolbar/toolbar.js +27 -0
  1109. package/dist/components/toolbar/toolbar.js.map +1 -0
  1110. package/dist/components/tooltip/index.js +17 -0
  1111. package/dist/components/tooltip/index.js.map +1 -0
  1112. package/dist/components/tooltip/tooltip.js +16 -0
  1113. package/dist/components/tooltip/tooltip.js.map +1 -0
  1114. package/dist/components/top-nav/index.js +11 -0
  1115. package/dist/components/top-nav/index.js.map +1 -0
  1116. package/dist/components/top-nav/top-nav.js +10 -0
  1117. package/dist/components/top-nav/top-nav.js.map +1 -0
  1118. package/dist/components/transfer/index.js +26 -0
  1119. package/dist/components/transfer/index.js.map +1 -0
  1120. package/dist/components/transfer/transfer.js +26 -0
  1121. package/dist/components/transfer/transfer.js.map +1 -0
  1122. package/dist/components/tree/index.js +21 -0
  1123. package/dist/components/tree/index.js.map +1 -0
  1124. package/dist/components/tree/tree.js +18 -0
  1125. package/dist/components/tree/tree.js.map +1 -0
  1126. package/dist/components/tree/use-tree-keyboard.js +14 -0
  1127. package/dist/components/tree/use-tree-keyboard.js.map +1 -0
  1128. package/dist/components/tree-select/index.js +26 -0
  1129. package/dist/components/tree-select/index.js.map +1 -0
  1130. package/dist/components/tree-select/tree-select.js +26 -0
  1131. package/dist/components/tree-select/tree-select.js.map +1 -0
  1132. package/dist/components/typography/index.js +41 -0
  1133. package/dist/components/typography/index.js.map +1 -0
  1134. package/dist/components/typography/prose.js +29 -0
  1135. package/dist/components/typography/prose.js.map +1 -0
  1136. package/dist/components/typography/typography.js +18 -0
  1137. package/dist/components/typography/typography.js.map +1 -0
  1138. package/dist/components/view-toolbar/index.js +27 -0
  1139. package/dist/components/view-toolbar/index.js.map +1 -0
  1140. package/dist/components/view-toolbar/view-toolbar.js +27 -0
  1141. package/dist/components/view-toolbar/view-toolbar.js.map +1 -0
  1142. package/dist/components/virtual-select/index.js +26 -0
  1143. package/dist/components/virtual-select/index.js.map +1 -0
  1144. package/dist/components/virtual-select/use-virtual-listbox.js +10 -0
  1145. package/dist/components/virtual-select/use-virtual-listbox.js.map +1 -0
  1146. package/dist/components/virtual-select/virtual-select.js +23 -0
  1147. package/dist/components/virtual-select/virtual-select.js.map +1 -0
  1148. package/dist/components/wizard/index.js +19 -0
  1149. package/dist/components/wizard/index.js.map +1 -0
  1150. package/dist/components/wizard/wizard.js +19 -0
  1151. package/dist/components/wizard/wizard.js.map +1 -0
  1152. package/dist/components/workspace-picker/index.js +38 -0
  1153. package/dist/components/workspace-picker/index.js.map +1 -0
  1154. package/dist/components/workspace-picker/workspace-picker-state.js +9 -0
  1155. package/dist/components/workspace-picker/workspace-picker-state.js.map +1 -0
  1156. package/dist/components/workspace-picker/workspace-picker.js +35 -0
  1157. package/dist/components/workspace-picker/workspace-picker.js.map +1 -0
  1158. package/dist/form.js +13 -110
  1159. package/dist/form.js.map +1 -1
  1160. package/dist/illustrations/empty-list-illustration.js +11 -0
  1161. package/dist/illustrations/empty-list-illustration.js.map +1 -0
  1162. package/dist/illustrations/error-illustration.js +11 -0
  1163. package/dist/illustrations/error-illustration.js.map +1 -0
  1164. package/dist/illustrations/first-run-illustration.js +11 -0
  1165. package/dist/illustrations/first-run-illustration.js.map +1 -0
  1166. package/dist/illustrations/illustration-base.js +16 -0
  1167. package/dist/illustrations/illustration-base.js.map +1 -0
  1168. package/dist/illustrations/index.js +41 -0
  1169. package/dist/illustrations/index.js.map +1 -0
  1170. package/dist/illustrations/no-access-illustration.js +11 -0
  1171. package/dist/illustrations/no-access-illustration.js.map +1 -0
  1172. package/dist/illustrations/no-results-illustration.js +11 -0
  1173. package/dist/illustrations/no-results-illustration.js.map +1 -0
  1174. package/dist/illustrations/offline-illustration.js +11 -0
  1175. package/dist/illustrations/offline-illustration.js.map +1 -0
  1176. package/dist/illustrations/success-illustration.js +11 -0
  1177. package/dist/illustrations/success-illustration.js.map +1 -0
  1178. package/dist/index.css +122 -0
  1179. package/dist/index.css.map +1 -0
  1180. package/dist/index.d.ts +1390 -146
  1181. package/dist/index.js +997 -22676
  1182. package/dist/index.js.map +1 -1
  1183. package/dist/lib/agent-event-model.js +9 -0
  1184. package/dist/lib/agent-event-model.js.map +1 -0
  1185. package/dist/lib/approval-option.js +9 -0
  1186. package/dist/lib/approval-option.js.map +1 -0
  1187. package/dist/lib/check-result.js +3 -0
  1188. package/dist/lib/check-result.js.map +1 -0
  1189. package/dist/lib/cn.js +28 -3
  1190. package/dist/lib/cn.js.map +1 -1
  1191. package/dist/lib/color-scale.js +11 -0
  1192. package/dist/lib/color-scale.js.map +1 -0
  1193. package/dist/lib/compact-number.js +21 -0
  1194. package/dist/lib/compact-number.js.map +1 -0
  1195. package/dist/lib/csv.js +11 -0
  1196. package/dist/lib/csv.js.map +1 -0
  1197. package/dist/lib/diff-line.js +11 -0
  1198. package/dist/lib/diff-line.js.map +1 -0
  1199. package/dist/lib/diff-rows.js +12 -0
  1200. package/dist/lib/diff-rows.js.map +1 -0
  1201. package/dist/lib/document-address.js +13 -0
  1202. package/dist/lib/document-address.js.map +1 -0
  1203. package/dist/lib/download.js +11 -0
  1204. package/dist/lib/download.js.map +1 -0
  1205. package/dist/lib/file-icon.js +12 -0
  1206. package/dist/lib/file-icon.js.map +1 -0
  1207. package/dist/lib/file-kind.js +13 -0
  1208. package/dist/lib/file-kind.js.map +1 -0
  1209. package/dist/lib/file-source.js +10 -0
  1210. package/dist/lib/file-source.js.map +1 -0
  1211. package/dist/lib/format-duration.js +9 -0
  1212. package/dist/lib/format-duration.js.map +1 -0
  1213. package/dist/lib/has-renderable-content.js +9 -0
  1214. package/dist/lib/has-renderable-content.js.map +1 -0
  1215. package/dist/lib/merge-refs.js +10 -0
  1216. package/dist/lib/merge-refs.js.map +1 -0
  1217. package/dist/lib/operating-mode.js +9 -0
  1218. package/dist/lib/operating-mode.js.map +1 -0
  1219. package/dist/lib/optional-peer.js +11 -0
  1220. package/dist/lib/optional-peer.js.map +1 -0
  1221. package/dist/lib/session-launch.js +3 -0
  1222. package/dist/lib/session-launch.js.map +1 -0
  1223. package/dist/lib/slash-command.js +11 -0
  1224. package/dist/lib/slash-command.js.map +1 -0
  1225. package/dist/lib/streamdown-translations.js +15 -0
  1226. package/dist/lib/streamdown-translations.js.map +1 -0
  1227. package/dist/lib/trigger-query.js +11 -0
  1228. package/dist/lib/trigger-query.js.map +1 -0
  1229. package/dist/lib/use-controllable-state.js +10 -0
  1230. package/dist/lib/use-controllable-state.js.map +1 -0
  1231. package/dist/lib/use-copy-to-clipboard.js +12 -0
  1232. package/dist/lib/use-copy-to-clipboard.js.map +1 -0
  1233. package/dist/lib/use-mobile.js +10 -0
  1234. package/dist/lib/use-mobile.js.map +1 -0
  1235. package/dist/lib/use-scroll-progress.js +18 -0
  1236. package/dist/lib/use-scroll-progress.js.map +1 -0
  1237. package/package.json +12 -5
  1238. package/src/__contract__/ambient-field.contract.test.tsx +49 -0
  1239. package/src/__contract__/attribution-panel.contract.test.tsx +49 -0
  1240. package/src/__contract__/badge.contract.test.tsx +49 -0
  1241. package/src/__contract__/bounded-number.contract.test.tsx +49 -0
  1242. package/src/__contract__/button.contract.test.tsx +49 -0
  1243. package/src/__contract__/color-picker.contract.test.tsx +49 -0
  1244. package/src/__contract__/combobox.contract.test.tsx +49 -0
  1245. package/src/__contract__/command-chip.contract.test.tsx +49 -0
  1246. package/src/__contract__/command-trigger.contract.test.tsx +49 -0
  1247. package/src/__contract__/copyable-value.contract.test.tsx +49 -0
  1248. package/src/__contract__/date-picker.contract.test.tsx +49 -0
  1249. package/src/__contract__/date-range-picker.contract.test.tsx +49 -0
  1250. package/src/__contract__/empty-state.contract.test.tsx +49 -0
  1251. package/src/__contract__/error-state.contract.test.tsx +49 -0
  1252. package/src/__contract__/icon-button.contract.test.tsx +49 -0
  1253. package/src/__contract__/input.contract.test.tsx +49 -0
  1254. package/src/__contract__/install-tabs.contract.test.tsx +49 -0
  1255. package/src/__contract__/integration-matrix.contract.test.tsx +49 -0
  1256. package/src/__contract__/key-value-editor.contract.test.tsx +49 -0
  1257. package/src/__contract__/list-editor.contract.test.tsx +49 -0
  1258. package/src/__contract__/loading-state.contract.test.tsx +49 -0
  1259. package/src/__contract__/meter.contract.test.tsx +49 -0
  1260. package/src/__contract__/metric-card.contract.test.tsx +49 -0
  1261. package/src/__contract__/model-picker.contract.test.tsx +49 -0
  1262. package/src/__contract__/nav-notifications.contract.test.tsx +49 -0
  1263. package/src/__contract__/number-input.contract.test.tsx +49 -0
  1264. package/src/__contract__/parallax-plane.contract.test.tsx +49 -0
  1265. package/src/__contract__/rating.contract.test.tsx +49 -0
  1266. package/src/__contract__/reveal-on-enter.contract.test.tsx +49 -0
  1267. package/src/__contract__/schema-form.contract.test.tsx +49 -0
  1268. package/src/__contract__/section-header.contract.test.tsx +49 -0
  1269. package/src/__contract__/segmented-field.contract.test.tsx +49 -0
  1270. package/src/__contract__/slider-number.contract.test.tsx +49 -0
  1271. package/src/__contract__/spec-playground.contract.test.tsx +49 -0
  1272. package/src/__contract__/status-badge.contract.test.tsx +49 -0
  1273. package/src/__contract__/surface-tour.contract.test.tsx +49 -0
  1274. package/src/__contract__/tag-input.contract.test.tsx +49 -0
  1275. package/src/__contract__/text.contract.test.tsx +49 -0
  1276. package/src/__contract__/textarea.contract.test.tsx +49 -0
  1277. package/src/__contract__/theme-family-switch.contract.test.tsx +49 -0
  1278. package/src/__contract__/timeline.contract.test.tsx +49 -0
  1279. package/src/__contract__/toggle.contract.test.tsx +49 -0
  1280. package/src/__contract__/token-spotlight.contract.test.tsx +49 -0
  1281. package/src/__contract__/transfer.contract.test.tsx +49 -0
  1282. package/src/__contract__/tree-select.contract.test.tsx +49 -0
  1283. package/src/__contract__/tree.contract.test.tsx +49 -0
  1284. package/src/__contract__/virtual-select.contract.test.tsx +49 -0
  1285. package/src/__contract__/workspace-picker.contract.test.tsx +49 -0
  1286. package/src/blocks-comparison-table.stories.tsx +1 -1
  1287. package/src/components/accordion/accordion.tsx +41 -16
  1288. package/src/components/advanced-group/advanced-group.stories.tsx +2 -0
  1289. package/src/components/alert/alert.tsx +24 -8
  1290. package/src/components/alert-dialog/alert-dialog.test.tsx +32 -0
  1291. package/src/components/alert-dialog/alert-dialog.tsx +28 -6
  1292. package/src/components/ambient-field/ambient-field.css +98 -0
  1293. package/src/components/ambient-field/ambient-field.stories.tsx +75 -0
  1294. package/src/components/ambient-field/ambient-field.test.tsx +28 -0
  1295. package/src/components/ambient-field/ambient-field.tsx +69 -0
  1296. package/src/components/ambient-field/index.ts +7 -0
  1297. package/src/components/app-shell/app-shell.stories.tsx +344 -1
  1298. package/src/components/app-shell/app-shell.test.tsx +266 -0
  1299. package/src/components/app-shell/app-shell.tsx +147 -14
  1300. package/src/components/app-shell/index.ts +1 -1
  1301. package/src/components/attribution-panel/attribution-panel.tsx +2 -0
  1302. package/src/components/attribution-panel/attributions.generated.ts +79 -6
  1303. package/src/components/avatar/avatar.tsx +4 -1
  1304. package/src/components/badge/badge.stories.tsx +62 -0
  1305. package/src/components/badge/badge.test.tsx +29 -0
  1306. package/src/components/badge/badge.tsx +101 -11
  1307. package/src/components/bento-grid/bento-grid.test.tsx +23 -2
  1308. package/src/components/bento-grid/bento-grid.tsx +10 -0
  1309. package/src/components/bounded-number/bounded-number.test.tsx +1 -1
  1310. package/src/components/bounded-number/bounded-number.tsx +78 -75
  1311. package/src/components/breadcrumb/breadcrumb.stories.tsx +1 -1
  1312. package/src/components/breadcrumb/breadcrumb.tsx +5 -2
  1313. package/src/components/button/button.stories.tsx +5 -1
  1314. package/src/components/button/button.tsx +37 -20
  1315. package/src/components/button-group/button-group.tsx +1 -1
  1316. package/src/components/calendar/calendar.tsx +9 -3
  1317. package/src/components/card/card.stories.tsx +73 -1
  1318. package/src/components/card/card.test.tsx +53 -4
  1319. package/src/components/card/card.tsx +122 -17
  1320. package/src/components/card/index.ts +2 -0
  1321. package/src/components/carousel/carousel.test.tsx +169 -0
  1322. package/src/components/carousel/carousel.tsx +93 -32
  1323. package/src/components/change-review/change-review.tsx +39 -30
  1324. package/src/components/checkbox/checkbox.tsx +1 -0
  1325. package/src/components/collapsible-panel/index.ts +1 -0
  1326. package/src/components/collapsible-panel/use-collapsible-panel.ts +21 -5
  1327. package/src/components/color-picker/color-picker.tsx +20 -14
  1328. package/src/components/combobox/combobox.stories.tsx +10 -0
  1329. package/src/components/combobox/combobox.test.tsx +54 -0
  1330. package/src/components/combobox/combobox.tsx +25 -11
  1331. package/src/components/command/command.stories.tsx +64 -1
  1332. package/src/components/command/command.test.tsx +88 -0
  1333. package/src/components/command/command.tsx +81 -8
  1334. package/src/components/command-chip/command-chip.stories.tsx +78 -0
  1335. package/src/components/command-chip/command-chip.test.tsx +57 -0
  1336. package/src/components/command-chip/command-chip.tsx +168 -0
  1337. package/src/components/command-chip/index.ts +7 -0
  1338. package/src/components/command-trigger/command-trigger.tsx +1 -1
  1339. package/src/components/confirm-dialog/confirm-dialog.stories.tsx +2 -0
  1340. package/src/components/context-menu/context-menu.stories.tsx +26 -0
  1341. package/src/components/context-menu/context-menu.tsx +17 -8
  1342. package/src/components/context-rail/context-rail.tsx +26 -8
  1343. package/src/components/copyable-value/copyable-value.stories.tsx +10 -0
  1344. package/src/components/copyable-value/copyable-value.test.tsx +28 -1
  1345. package/src/components/copyable-value/copyable-value.tsx +12 -1
  1346. package/src/components/date-picker/date-picker.stories.tsx +9 -0
  1347. package/src/components/date-picker/date-picker.test.tsx +52 -0
  1348. package/src/components/date-picker/date-picker.tsx +15 -15
  1349. package/src/components/date-range-picker/date-range-picker.stories.tsx +9 -0
  1350. package/src/components/date-range-picker/date-range-picker.test.tsx +76 -1
  1351. package/src/components/date-range-picker/date-range-picker.tsx +39 -28
  1352. package/src/components/descriptions/descriptions.stories.tsx +6 -0
  1353. package/src/components/descriptions/descriptions.test.tsx +18 -0
  1354. package/src/components/descriptions/descriptions.tsx +34 -6
  1355. package/src/components/descriptions/index.ts +1 -0
  1356. package/src/components/dialog/dialog.stories.tsx +5 -0
  1357. package/src/components/dialog/dialog.test.tsx +8 -3
  1358. package/src/components/dialog/dialog.tsx +13 -5
  1359. package/src/components/drawer/drawer.tsx +23 -6
  1360. package/src/components/dropdown-menu/dropdown-menu.stories.tsx +37 -0
  1361. package/src/components/dropdown-menu/dropdown-menu.tsx +17 -9
  1362. package/src/components/expand-dialog/expand-dialog.test.tsx +47 -0
  1363. package/src/components/expand-dialog/expand-dialog.tsx +20 -5
  1364. package/src/components/field/field.tsx +2 -0
  1365. package/src/components/field-row/field-row.tsx +2 -0
  1366. package/src/components/file-upload/file-upload.test.tsx +83 -10
  1367. package/src/components/file-upload/file-upload.tsx +150 -28
  1368. package/src/components/form/form.tsx +4 -2
  1369. package/src/components/hover-card/hover-card.tsx +2 -1
  1370. package/src/components/icon-button/icon-button.tsx +1 -1
  1371. package/src/components/input/input.stories.tsx +17 -0
  1372. package/src/components/input/input.tsx +8 -4
  1373. package/src/components/input-group/input-group.stories.tsx +43 -6
  1374. package/src/components/input-group/input-group.tsx +10 -7
  1375. package/src/components/input-otp/input-otp.tsx +7 -3
  1376. package/src/components/install-tabs/index.ts +8 -0
  1377. package/src/components/install-tabs/install-tabs.stories.tsx +147 -0
  1378. package/src/components/install-tabs/install-tabs.test.tsx +120 -0
  1379. package/src/components/install-tabs/install-tabs.tsx +238 -0
  1380. package/src/components/integration-matrix/index.ts +10 -0
  1381. package/src/components/integration-matrix/integration-matrix.stories.tsx +171 -0
  1382. package/src/components/integration-matrix/integration-matrix.test.tsx +89 -0
  1383. package/src/components/integration-matrix/integration-matrix.tsx +237 -0
  1384. package/src/components/keyboard-shortcuts/keyboard-shortcuts.tsx +2 -2
  1385. package/src/components/label/label.tsx +1 -1
  1386. package/src/components/list-editor/list-editor.test.tsx +24 -0
  1387. package/src/components/list-editor/list-editor.tsx +126 -52
  1388. package/src/components/locale-provider/locale-keys.test.ts +134 -0
  1389. package/src/components/locale-provider/messages.ts +573 -0
  1390. package/src/components/mention-input/mention-input.stories.tsx +3 -3
  1391. package/src/components/mention-input/mention-input.test.tsx +51 -1
  1392. package/src/components/mention-input/mention-input.tsx +59 -9
  1393. package/src/components/menubar/menubar.stories.tsx +25 -0
  1394. package/src/components/menubar/menubar.tsx +18 -8
  1395. package/src/components/meter/index.ts +1 -0
  1396. package/src/components/meter/meter.stories.tsx +102 -0
  1397. package/src/components/meter/meter.test.tsx +61 -0
  1398. package/src/components/meter/meter.tsx +173 -0
  1399. package/src/components/metric-card/index.ts +6 -1
  1400. package/src/components/metric-card/metric-card.stories.tsx +63 -0
  1401. package/src/components/metric-card/metric-card.test.tsx +83 -0
  1402. package/src/components/metric-card/metric-card.tsx +97 -14
  1403. package/src/components/nav-main/nav-main.tsx +7 -3
  1404. package/src/components/nav-notifications/nav-notifications.test.tsx +11 -0
  1405. package/src/components/nav-notifications/nav-notifications.tsx +11 -5
  1406. package/src/components/nav-user/nav-user.test.tsx +23 -1
  1407. package/src/components/nav-user/nav-user.tsx +68 -53
  1408. package/src/components/navigation-menu/navigation-menu.stories.tsx +42 -0
  1409. package/src/components/navigation-menu/navigation-menu.tsx +16 -4
  1410. package/src/components/number-input/number-input.stories.tsx +7 -3
  1411. package/src/components/number-input/number-input.test.tsx +47 -0
  1412. package/src/components/number-input/number-input.tsx +65 -24
  1413. package/src/components/page-shell/page-shell.stories.tsx +1 -1
  1414. package/src/components/page-shell/page-shell.tsx +3 -2
  1415. package/src/components/pagination/pagination.test.tsx +20 -1
  1416. package/src/components/pagination/pagination.tsx +20 -14
  1417. package/src/components/parallax-plane/index.ts +8 -0
  1418. package/src/components/parallax-plane/parallax-plane.css +26 -0
  1419. package/src/components/parallax-plane/parallax-plane.stories.tsx +88 -0
  1420. package/src/components/parallax-plane/parallax-plane.test.tsx +57 -0
  1421. package/src/components/parallax-plane/parallax-plane.tsx +80 -0
  1422. package/src/components/popover/popover.tsx +2 -1
  1423. package/src/components/progress/progress.stories.tsx +85 -0
  1424. package/src/components/progress/progress.test.tsx +47 -0
  1425. package/src/components/progress/progress.tsx +59 -3
  1426. package/src/components/rating/rating.tsx +2 -0
  1427. package/src/components/resizable/resizable.test.tsx +76 -0
  1428. package/src/components/resizable/resizable.tsx +31 -5
  1429. package/src/components/reveal-on-enter/index.ts +5 -0
  1430. package/src/components/reveal-on-enter/reveal-on-enter.css +32 -0
  1431. package/src/components/reveal-on-enter/reveal-on-enter.stories.tsx +100 -0
  1432. package/src/components/reveal-on-enter/reveal-on-enter.test.tsx +87 -0
  1433. package/src/components/reveal-on-enter/reveal-on-enter.tsx +75 -0
  1434. package/src/components/revision-timeline/revision-timeline.tsx +8 -5
  1435. package/src/components/schema-form/index.ts +2 -0
  1436. package/src/components/schema-form/schema-form-spec.ts +36 -0
  1437. package/src/components/schema-form/schema-form-store.ts +506 -0
  1438. package/src/components/schema-form/schema-form.stories.tsx +33 -0
  1439. package/src/components/schema-form/schema-form.test.tsx +165 -1
  1440. package/src/components/schema-form/schema-form.tsx +271 -328
  1441. package/src/components/scroll-area/index.ts +1 -1
  1442. package/src/components/scroll-area/scroll-area.tsx +47 -18
  1443. package/src/components/section-header/section-header.tsx +2 -4
  1444. package/src/components/select/select.stories.tsx +17 -0
  1445. package/src/components/select/select.test.tsx +28 -1
  1446. package/src/components/select/select.tsx +9 -7
  1447. package/src/components/separator/separator.tsx +1 -0
  1448. package/src/components/sheet/sheet.test.tsx +39 -0
  1449. package/src/components/sheet/sheet.tsx +40 -9
  1450. package/src/components/side-dock/side-dock.stories.tsx +83 -0
  1451. package/src/components/side-dock/side-dock.test.tsx +26 -0
  1452. package/src/components/side-dock/side-dock.tsx +65 -18
  1453. package/src/components/sidebar/sidebar.stories.tsx +3 -3
  1454. package/src/components/sidebar/sidebar.test.tsx +66 -2
  1455. package/src/components/sidebar/sidebar.tsx +54 -13
  1456. package/src/components/skeleton/skeleton.tsx +1 -0
  1457. package/src/components/skip-link/skip-link.stories.tsx +1 -0
  1458. package/src/components/slider/slider.stories.tsx +13 -77
  1459. package/src/components/slider-number/slider-number.stories.tsx +4 -1
  1460. package/src/components/slider-number/slider-number.test.tsx +1 -1
  1461. package/src/components/sonner/sonner.tsx +2 -0
  1462. package/src/components/spec-playground/index.ts +10 -0
  1463. package/src/components/spec-playground/locate-json-path.ts +144 -0
  1464. package/src/components/spec-playground/spec-playground.stories.tsx +156 -0
  1465. package/src/components/spec-playground/spec-playground.test.tsx +106 -0
  1466. package/src/components/spec-playground/spec-playground.tsx +351 -0
  1467. package/src/components/spinner/spinner.test.tsx +18 -0
  1468. package/src/components/spinner/spinner.tsx +14 -4
  1469. package/src/components/state-panel/state-panel.stories.tsx +4 -2
  1470. package/src/components/state-panel/state-panel.test.tsx +3 -3
  1471. package/src/components/state-panel/state-panel.tsx +16 -9
  1472. package/src/components/status-badge/status-badge.stories.tsx +53 -0
  1473. package/src/components/status-badge/status-badge.test.tsx +37 -0
  1474. package/src/components/status-badge/status-badge.tsx +75 -13
  1475. package/src/components/surface-tour/index.ts +11 -0
  1476. package/src/components/surface-tour/surface-tour.stories.tsx +150 -0
  1477. package/src/components/surface-tour/surface-tour.test.tsx +117 -0
  1478. package/src/components/surface-tour/surface-tour.tsx +456 -0
  1479. package/src/components/switch/switch.tsx +2 -0
  1480. package/src/components/table/table.stories.tsx +3 -1
  1481. package/src/components/table/table.test.tsx +9 -2
  1482. package/src/components/table/table.tsx +22 -9
  1483. package/src/components/tabs/index.ts +10 -1
  1484. package/src/components/tabs/tabs.stories.tsx +95 -1
  1485. package/src/components/tabs/tabs.test.tsx +93 -0
  1486. package/src/components/tabs/tabs.tsx +215 -77
  1487. package/src/components/tag-input/tag-input.tsx +4 -2
  1488. package/src/components/team-switcher/team-switcher.tsx +3 -3
  1489. package/src/components/textarea/textarea.tsx +2 -2
  1490. package/src/components/theme-family-switch/index.ts +10 -0
  1491. package/src/components/theme-family-switch/theme-family-switch.stories.tsx +97 -0
  1492. package/src/components/theme-family-switch/theme-family-switch.test.tsx +85 -0
  1493. package/src/components/theme-family-switch/theme-family-switch.tsx +166 -0
  1494. package/src/components/theme-switcher/theme-switcher.stories.tsx +76 -0
  1495. package/src/components/theme-switcher/theme-switcher.test.tsx +182 -0
  1496. package/src/components/theme-switcher/theme-switcher.tsx +144 -13
  1497. package/src/components/timeline/timeline.tsx +0 -3
  1498. package/src/components/toggle/toggle.tsx +7 -2
  1499. package/src/components/toggle-group/toggle-group.tsx +2 -0
  1500. package/src/components/token-spotlight/index.ts +11 -0
  1501. package/src/components/token-spotlight/token-spotlight.css +32 -0
  1502. package/src/components/token-spotlight/token-spotlight.stories.tsx +161 -0
  1503. package/src/components/token-spotlight/token-spotlight.test.tsx +323 -0
  1504. package/src/components/token-spotlight/token-spotlight.tsx +379 -0
  1505. package/src/components/token-spotlight/token-value-format.ts +205 -0
  1506. package/src/components/tooltip/tooltip.tsx +2 -1
  1507. package/src/components/top-nav/top-nav.test.tsx +59 -0
  1508. package/src/components/top-nav/top-nav.tsx +37 -7
  1509. package/src/components/transfer/transfer.tsx +35 -30
  1510. package/src/components/tree/tree.stories.tsx +1 -1
  1511. package/src/components/tree/tree.test.tsx +45 -4
  1512. package/src/components/tree/tree.tsx +81 -26
  1513. package/src/components/tree/use-tree-keyboard.ts +37 -14
  1514. package/src/components/tree-select/tree-select.stories.tsx +9 -0
  1515. package/src/components/tree-select/tree-select.test.tsx +5 -0
  1516. package/src/components/tree-select/tree-select.tsx +11 -14
  1517. package/src/components/typography/prose.test.tsx +3 -2
  1518. package/src/components/typography/prose.tsx +3 -3
  1519. package/src/components/typography/typography.stories.tsx +7 -2
  1520. package/src/components/typography/typography.tsx +8 -0
  1521. package/src/components/view-toolbar/view-toolbar.stories.tsx +2 -1
  1522. package/src/components/view-toolbar/view-toolbar.tsx +2 -2
  1523. package/src/components/virtual-select/virtual-select.stories.tsx +9 -0
  1524. package/src/components/virtual-select/virtual-select.test.tsx +28 -2
  1525. package/src/components/virtual-select/virtual-select.tsx +56 -18
  1526. package/src/components/wizard/wizard.test.tsx +9 -0
  1527. package/src/components/wizard/wizard.tsx +12 -4
  1528. package/src/decoration.stories.tsx +213 -2
  1529. package/src/index.ts +51 -0
  1530. package/src/lib/cn.test.ts +20 -0
  1531. package/src/lib/cn.ts +36 -2
  1532. package/src/lib/color-scale.test.ts +386 -0
  1533. package/src/lib/color-scale.ts +628 -0
  1534. package/src/lib/compact-number.ts +118 -28
  1535. package/src/lib/csv.ts +48 -0
  1536. package/src/lib/diff-rows.ts +2 -0
  1537. package/src/lib/merge-refs.ts +2 -0
  1538. package/src/lib/use-controllable-state.ts +47 -0
  1539. package/src/lib/use-mobile.test.tsx +47 -0
  1540. package/src/lib/use-mobile.ts +26 -10
  1541. package/src/lib/use-scroll-progress.ts +103 -0
  1542. package/src/motion.stories.tsx +1 -0
  1543. package/src/templates-object-detail-hub.stories.tsx +8 -8
  1544. package/src/templates-screen-states.stories.tsx +1 -1
  1545. package/src/templates-settings.stories.tsx +8 -3
  1546. package/dist/chunk-JKPPTL63.js +0 -48
  1547. package/dist/chunk-JKPPTL63.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/color-scale.ts"],"sourcesContent":["/**\n * color-scale.ts — `colorScaleFor(values, spec)`: the one value → colour\n * decision behind every thematic encoding (RM-124). A choropleth fill\n * (`charts`), a DataTable heatmap cell (`data`) and a map symbol or legend ramp\n * (`maps`) all ask the same question, and those three packages depend on `ui`\n * but never on each other — so the answer lives here, once.\n *\n * Pure: no React, no DOM. It returns data a renderer paints.\n *\n * ## Colours are token REFERENCES\n *\n * Every colour this module hands back is a `var(--chart-…)` reference — the\n * `--chart-seq-*` ramp, the `--chart-div-*` ramp or the `--chart-1…12`\n * categorical set — never a literal. The result re-colours on a theme flip with\n * no re-render, and the on-mark ink seam (`charts`' `on-mark-ink.ts`) can\n * resolve every step it paints.\n *\n * The price: nothing here can MIX two steps, because their values are unknown\n * until the browser resolves the active theme. So:\n *\n * - a **continuous** scale snaps each value to the nearest ramp step (7\n * sequential, 5 diverging). {@link ColorScale.positionOf} gives the exact,\n * unsnapped ramp position (a legend marker) and {@link ColorScale.stops} the\n * value at which each step is exact (a gradient's colour stops);\n * - a **stepped** scale is CLAMPED to its ramp: ask for more classes than the\n * ramp has tokens (7 sequential, 5 diverging) and you get the ramp's length,\n * because two classes painted the same colour are one class. `steps` is a\n * ceiling, never a promise; read `scale.steps.length` for what was painted.\n * (`method: \"custom\"` keeps every break the host named.)\n *\n * ## Step membership\n *\n * A step is `(from, to]`: the upper bound is inclusive and the first step also\n * includes its `from`. Jenks breaks are class UPPER bounds, so a published\n * break list reads straight across. Values outside the domain clamp into the\n * end steps, the way a map never shows a hole for an outlier.\n */\n\n/** A smooth ramp, or countable classes. */\nexport type ColorScaleType = \"continuous\" | \"stepped\";\n\n/**\n * Where a continuous ramp's stops sit. `linear` spreads them evenly from min\n * to max; `median`, `quartiles`, `quintiles` and `deciles` pin them to those\n * quantiles of the data; `natural` pins them to the Jenks breaks.\n */\nexport type ContinuousColorScaleMethod =\n | \"linear\"\n | \"median\"\n | \"quartiles\"\n | \"quintiles\"\n | \"deciles\"\n | \"natural\";\n\n/**\n * How a stepped scale cuts its classes. `equidistant` makes equal widths;\n * `rounded` makes equal widths whose inner breaks round to the step's leading\n * power of ten; `quantile` makes equal counts; `jenks` minimises the variance\n * inside each class; `custom` uses {@link SteppedColorScaleSpec.breaks}.\n */\nexport type SteppedColorScaleMethod = \"equidistant\" | \"rounded\" | \"quantile\" | \"jenks\" | \"custom\";\n\nexport type ColorScaleMethod = ContinuousColorScaleMethod | SteppedColorScaleMethod;\n\n/**\n * Which token set paints the scale. `sequential` answers \"how much\",\n * `diverging` answers \"how far from the centre, and on which side\", and\n * `categorical` gives each distinct value its own colour.\n */\nexport type ColorScalePalette = \"sequential\" | \"diverging\" | \"categorical\";\n\n/** `[min, max]`, or `[min, center, max]` to pin the ramp's middle colour. */\nexport type ColorScaleDomain =\n | readonly [min: number, max: number]\n | readonly [min: number, center: number, max: number];\n\ninterface ColorScaleSpecBase {\n /**\n * Fixed ends instead of the data's own min / max, so two maps share one\n * scale. A middle entry is the CENTRE: the value that paints the ramp's\n * middle colour.\n */\n domain?: ColorScaleDomain;\n /**\n * Default: `\"diverging\"` when `domain` has a centre, else `\"sequential\"`. A\n * diverging scale without a centre centres on 0 when the domain spans 0, and\n * on the domain's midpoint otherwise.\n */\n palette?: ColorScalePalette;\n}\n\nexport interface ContinuousColorScaleSpec extends ColorScaleSpecBase {\n type: \"continuous\";\n /** Default `\"linear\"`. */\n method?: ContinuousColorScaleMethod;\n /** `method: \"natural\"` only: how many Jenks classes place the stops. Default 5. */\n steps?: number;\n}\n\nexport interface SteppedColorScaleSpec extends ColorScaleSpecBase {\n type: \"stepped\";\n /** Default `\"equidistant\"`. */\n method?: SteppedColorScaleMethod;\n /**\n * How many classes. Default 5. Ignored by `custom`. `quantile` and `jenks`\n * can return fewer when the data has fewer distinct values.\n */\n steps?: number;\n /**\n * `method: \"custom\"` only: the inner thresholds, ascending. The scale's ends\n * widen to include them, so the same breaks give the same colours on every\n * dataset.\n */\n breaks?: readonly number[];\n}\n\n/** What to build. The feature / column the values come from is the caller's business. */\nexport type ColorScaleSpec = ContinuousColorScaleSpec | SteppedColorScaleSpec;\n\n/**\n * One input value. Numeric scales read finite numbers only; categorical scales\n * read non-empty strings and finite numbers. Everything else is \"no data\".\n */\nexport type ColorScaleValue = number | string | null | undefined;\n\n/** One class of the scale, low → high. See the module docblock for membership. */\nexport interface ColorScaleStep {\n from: number;\n to: number;\n /** A `var(--chart-…)` reference. */\n color: string;\n}\n\n/** The value at which one ramp token is exact: a gradient's colour stop. */\nexport interface ColorScaleStop {\n value: number;\n /** A `var(--chart-…)` reference. */\n color: string;\n}\n\n/** One category of a categorical scale, in first-seen order. */\nexport interface ColorScaleCategory {\n value: string | number;\n /** A `var(--chart-…)` reference. */\n color: string;\n}\n\n/** The resolved scale. Every colour in it is a `var(--chart-…)` reference. */\nexport interface ColorScale {\n type: ColorScaleType;\n /** The method actually used (a data-driven method with no data falls back to linear / equidistant). */\n method: ColorScaleMethod;\n palette: ColorScalePalette;\n /** The resolved `[lo, hi]`; `null` for a categorical scale or when there is nothing to scale. */\n domain: readonly [number, number] | null;\n /** The value that paints the ramp's middle colour, or `null` when none applies. */\n center: number | null;\n /**\n * The classes a value can land in, low → high. Continuous: one per ramp\n * token (the value band that snaps to it). Categorical: empty.\n */\n steps: readonly ColorScaleStep[];\n /** Continuous only: one per ramp token. Stepped and categorical: empty. */\n stops: readonly ColorScaleStop[];\n /** Categorical only: one per distinct value. Otherwise empty. */\n categories: readonly ColorScaleCategory[];\n /** The colour for a value, or `null` for no data (and for an unseen category). */\n colorOf(value: ColorScaleValue): string | null;\n /** The index into `steps` (or `categories`) a value lands in; `-1` for no data. */\n indexOf(value: ColorScaleValue): number;\n /**\n * Where a value sits on a key whose tokens (continuous) or swatches (stepped)\n * are drawn evenly: `0` = the start of the strip, `1` = the end. `null` for\n * no data and for categorical scales.\n */\n positionOf(value: ColorScaleValue): number | null;\n}\n\n/** `--chart-seq-1` (quietest) … `--chart-seq-7` (boldest), in every theme. */\nconst SEQUENTIAL_RAMP = [\n \"var(--chart-seq-1)\",\n \"var(--chart-seq-2)\",\n \"var(--chart-seq-3)\",\n \"var(--chart-seq-4)\",\n \"var(--chart-seq-5)\",\n \"var(--chart-seq-6)\",\n \"var(--chart-seq-7)\",\n] as const;\n\n/** Far-negative → neutral → far-positive. */\nconst DIVERGING_RAMP = [\n \"var(--chart-div-neg-2)\",\n \"var(--chart-div-neg-1)\",\n \"var(--chart-div-mid)\",\n \"var(--chart-div-pos-1)\",\n \"var(--chart-div-pos-2)\",\n] as const;\n\n/** The twelve series colours. Past twelve categories they repeat. */\nconst CATEGORICAL_SET = Array.from({ length: 12 }, (_, i) => `var(--chart-${i + 1})`);\n\nconst DEFAULT_STEPS = 5;\n\nconst CONTINUOUS_METHODS: ReadonlySet<string> = new Set<ContinuousColorScaleMethod>([\n \"linear\",\n \"median\",\n \"quartiles\",\n \"quintiles\",\n \"deciles\",\n \"natural\",\n]);\n\nconst STEPPED_METHODS: ReadonlySet<string> = new Set<SteppedColorScaleMethod>([\n \"equidistant\",\n \"rounded\",\n \"quantile\",\n \"jenks\",\n \"custom\",\n]);\n\n/** How many equal-count intervals each quantile-based continuous method cuts the data into. */\nconst QUANTILE_STOPS: Partial<Record<ContinuousColorScaleMethod, number>> = {\n median: 2,\n quartiles: 4,\n quintiles: 5,\n deciles: 10,\n};\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === \"number\" && Number.isFinite(value);\n}\n\nfunction clamp(value: number, lo: number, hi: number): number {\n return Math.min(hi, Math.max(lo, value));\n}\n\nfunction stepCount(steps: number | undefined, fallback: number): number {\n return isFiniteNumber(steps) && steps >= 1 ? Math.floor(steps) : fallback;\n}\n\n/**\n * `n` entries spread evenly across `ramp`, INCLUDING both ends, so two scales\n * with different step counts still start quiet and end bold. `n === 1` is the\n * boldest step: one class means \"the value\", and a lone pale fill reads as no\n * data. Past the ramp's length, entries repeat (see the module docblock).\n */\nfunction spread(ramp: readonly string[], n: number): string[] {\n if (n <= 0) return [];\n const last = ramp.length - 1;\n if (n === 1) return [ramp[last] as string];\n return Array.from({ length: n }, (_, i) => ramp[Math.round((i * last) / (n - 1))] as string);\n}\n\n/** The `p`-quantile of an ascending array, linearly interpolated (R type 7, as d3). */\nfunction quantileSorted(sorted: readonly number[], p: number): number {\n const h = (sorted.length - 1) * p;\n const below = Math.floor(h);\n const lower = sorted[below] as number;\n const upper = sorted[Math.min(sorted.length - 1, below + 1)] as number;\n return lower + (upper - lower) * (h - below);\n}\n\n/**\n * Jenks natural breaks: the partition of `values` into `classes` contiguous\n * classes with the smallest summed squared deviation from each class mean.\n *\n * Returns `[min, upper bound of class 1, …, upper bound of class k − 1, max]`\n * — the format published implementations (jenkspy, geostats) return. Runs on\n * the distinct values weighted by their counts, so equal values never split\n * across two classes; `classes` is capped at the distinct-value count. The\n * dynamic programme uses the divide-and-conquer speed-up that the monotone\n * split points of 1-D least squares allow (Wang & Song, Ckmeans.1d.dp), so a\n * 10 000-row column stays fast.\n */\nexport function jenksBreaks(values: readonly number[], classes: number): number[] {\n const sorted = values.filter(isFiniteNumber).sort((a, b) => a - b);\n if (sorted.length === 0) return [];\n const xs: number[] = [];\n const counts: number[] = [];\n for (const value of sorted) {\n if (xs.length > 0 && xs[xs.length - 1] === value) counts[counts.length - 1]! += 1;\n else {\n xs.push(value);\n counts.push(1);\n }\n }\n const d = xs.length;\n const first = xs[0] as number;\n const last = xs[d - 1] as number;\n const k = Math.min(stepCount(classes, 1), d);\n if (k === 1) return [first, last];\n\n // Prefix sums of weight, value and value², shifted by a middle value so the\n // subtraction below stays well-conditioned for large magnitudes.\n const shift = xs[Math.floor(d / 2)] as number;\n const w = new Float64Array(d + 1);\n const s1 = new Float64Array(d + 1);\n const s2 = new Float64Array(d + 1);\n for (let i = 0; i < d; i++) {\n const x = (xs[i] as number) - shift;\n const c = counts[i] as number;\n w[i + 1] = (w[i] as number) + c;\n s1[i + 1] = (s1[i] as number) + c * x;\n s2[i + 1] = (s2[i] as number) + c * x * x;\n }\n /** Summed squared deviation of distinct values `a..b` (inclusive). */\n const ssd = (a: number, b: number): number => {\n const weight = (w[b + 1] as number) - (w[a] as number);\n const sum = (s1[b + 1] as number) - (s1[a] as number);\n return Math.max(0, (s2[b + 1] as number) - (s2[a] as number) - (sum * sum) / weight);\n };\n\n let previous = Float64Array.from({ length: d }, (_, i) => ssd(0, i));\n const splits: Int32Array[] = [];\n for (let j = 1; j < k; j++) {\n const prior = previous;\n const current = new Float64Array(d).fill(Number.POSITIVE_INFINITY);\n const split = new Int32Array(d);\n // Class `j` covers distinct values `m..i`; the best `m` never moves left\n // as `i` grows, so each half only searches its side of the middle's `m`.\n const solve = (lo: number, hi: number, optLo: number, optHi: number): void => {\n if (lo > hi) return;\n const mid = (lo + hi) >> 1;\n let best = Number.POSITIVE_INFINITY;\n let bestM = Math.max(optLo, j);\n for (let m = Math.max(optLo, j); m <= Math.min(mid, optHi); m++) {\n const cost = (prior[m - 1] as number) + ssd(m, mid);\n if (cost < best) {\n best = cost;\n bestM = m;\n }\n }\n current[mid] = best;\n split[mid] = bestM;\n solve(lo, mid - 1, optLo, bestM);\n solve(mid + 1, hi, bestM, optHi);\n };\n solve(j, d - 1, j, d - 1);\n splits.push(split);\n previous = current;\n }\n\n const uppers: number[] = [];\n let end = d - 1;\n for (let j = k - 1; j >= 1; j--) {\n const start = (splits[j - 1] as Int32Array)[end] as number;\n uppers.push(xs[start - 1] as number);\n end = start - 1;\n }\n return [first, ...uppers.reverse(), last];\n}\n\n/** Linear interpolation through ascending `[x, y]` knots, clamped at both ends. */\nfunction interpolate(knots: readonly (readonly [number, number])[], x: number): number {\n const head = knots[0] as readonly [number, number];\n if (x <= head[0]) return head[1];\n for (let i = 1; i < knots.length; i++) {\n const [x1, y1] = knots[i] as readonly [number, number];\n if (x <= x1) {\n const [x0, y0] = knots[i - 1] as readonly [number, number];\n return x1 === x0 ? y0 : y0 + ((y1 - y0) * (x - x0)) / (x1 - x0);\n }\n }\n return (knots[knots.length - 1] as readonly [number, number])[1];\n}\n\n/** Drop interior breaks that repeat, so no class is empty by construction. */\nfunction uniqueBreaks(breaks: readonly number[]): number[] {\n const out: number[] = [];\n for (const b of breaks) if (out.length === 0 || b > (out[out.length - 1] as number)) out.push(b);\n return out.length === 1 ? [out[0] as number, out[0] as number] : out;\n}\n\nfunction roundedBreaks(lo: number, hi: number, n: number): number[] {\n const width = (hi - lo) / n;\n const exponent = Math.floor(Math.log10(width));\n // Divide by an integer power of ten below 1, so 0.3 stays 0.3 rather than 0.30000000000000004.\n const round = (x: number) =>\n exponent >= 0\n ? Math.round(x / 10 ** exponent) * 10 ** exponent\n : Math.round(x * 10 ** -exponent) / 10 ** -exponent;\n return [lo, ...Array.from({ length: n - 1 }, (_, i) => round(lo + width * (i + 1))), hi];\n}\n\n/**\n * Colours for stepped classes. No centre: spread the whole ramp. A centre:\n * classes wholly at or below it take the ramp's lower arm, classes wholly\n * above it the upper arm (each spread from the centre outwards), and a class\n * that straddles it takes the middle token — so sign never changes hue\n * inside one class.\n */\nfunction stepColors(\n bounds: readonly (readonly [number, number])[],\n ramp: readonly string[],\n center: number | null,\n): string[] {\n if (center === null) return spread(ramp, bounds.length);\n const middle = (ramp.length - 1) / 2;\n const side = bounds.map(([from, to]) =>\n from === to && from === center ? 0 : to <= center ? -1 : from >= center ? 1 : 0,\n );\n const lower = spread(ramp.slice(0, middle).reverse(), side.filter((s) => s < 0).length).reverse();\n const upper = spread(ramp.slice(middle + 1), side.filter((s) => s > 0).length);\n let l = 0;\n let u = 0;\n return side.map((s) =>\n s < 0 ? (lower[l++] as string) : s > 0 ? (upper[u++] as string) : (ramp[middle] as string),\n );\n}\n\n/** Index of the step `value` lands in: the first whose `to` is ≥ the clamped value. */\nfunction stepIndex(steps: readonly ColorScaleStep[], value: number): number {\n for (let i = 0; i < steps.length; i++) if (value <= (steps[i] as ColorScaleStep).to) return i;\n return steps.length - 1;\n}\n\nfunction categoricalScale(\n values: readonly ColorScaleValue[],\n spec: ColorScaleSpec,\n method: ColorScaleMethod,\n): ColorScale {\n const order = new Map<string | number, number>();\n for (const value of values) {\n const usable = (typeof value === \"string\" && value !== \"\") || isFiniteNumber(value);\n if (usable && !order.has(value)) order.set(value, order.size);\n }\n const categories = [...order.keys()].map((value, i) => ({\n value,\n color: CATEGORICAL_SET[i % CATEGORICAL_SET.length] as string,\n }));\n const indexOf = (value: ColorScaleValue) =>\n value === null || value === undefined ? -1 : (order.get(value) ?? -1);\n return {\n type: spec.type,\n method,\n palette: \"categorical\",\n domain: null,\n center: null,\n steps: [],\n stops: [],\n categories,\n colorOf: (value) => categories[indexOf(value)]?.color ?? null,\n indexOf,\n positionOf: () => null,\n };\n}\n\n/**\n * Build a colour scale over `values`.\n *\n * ```ts\n * const scale = colorScaleFor(rows.map((r) => r.share), {\n * type: \"stepped\",\n * method: \"quantile\",\n * steps: 5,\n * });\n * scale.colorOf(0.42); // \"var(--chart-seq-4)\"\n * scale.steps; // five { from, to, color } classes for the legend\n * ```\n */\nexport function colorScaleFor(\n values: readonly ColorScaleValue[],\n spec: ColorScaleSpec,\n): ColorScale {\n const continuous = spec.type === \"continuous\";\n let method: ColorScaleMethod =\n spec.method !== undefined &&\n (continuous ? CONTINUOUS_METHODS : STEPPED_METHODS).has(spec.method)\n ? spec.method\n : continuous\n ? \"linear\"\n : \"equidistant\";\n const domain = spec.domain?.every(isFiniteNumber) ? spec.domain : undefined;\n const palette: ColorScalePalette =\n spec.palette ?? (domain?.length === 3 ? \"diverging\" : \"sequential\");\n if (palette === \"categorical\") return categoricalScale(values, spec, method);\n\n const data = values.filter(isFiniteNumber);\n // A loop, not `Math.min(...data)`: a spread of a 100k-row column overflows the call stack.\n let lo = Number.POSITIVE_INFINITY;\n let hi = Number.NEGATIVE_INFINITY;\n for (const v of domain ? [domain[0], domain[domain.length - 1] as number] : data) {\n if (v < lo) lo = v;\n if (v > hi) hi = v;\n }\n const thresholds =\n !continuous && method === \"custom\"\n ? [...new Set((spec.breaks ?? []).filter(isFiniteNumber))].sort((a, b) => a - b)\n : [];\n if (method === \"custom\" && thresholds.length === 0) method = \"equidistant\";\n if (thresholds.length > 0) {\n lo = Math.min(lo, thresholds[0] as number);\n hi = Math.max(hi, thresholds.at(-1) as number);\n }\n\n const noData = (): ColorScale => ({\n type: spec.type,\n method,\n palette,\n domain: null,\n center: null,\n steps: [],\n stops: [],\n categories: [],\n colorOf: () => null,\n indexOf: () => -1,\n positionOf: () => null,\n });\n if (!Number.isFinite(lo) || !Number.isFinite(hi)) return noData();\n\n const center =\n domain?.length === 3\n ? (domain[1] as number)\n : palette === \"diverging\"\n ? lo < 0 && hi > 0\n ? 0\n : (lo + hi) / 2\n : null;\n const ramp: readonly string[] = palette === \"diverging\" ? DIVERGING_RAMP : SEQUENTIAL_RAMP;\n const sorted = data.map((v) => clamp(v, lo, hi)).sort((a, b) => a - b);\n const needsData =\n method === \"quantile\" || method === \"jenks\" || (continuous && method !== \"linear\");\n if (needsData && sorted.length === 0) method = continuous ? \"linear\" : \"equidistant\";\n\n let steps: ColorScaleStep[];\n let stops: ColorScaleStop[] = [];\n let positionOf: (value: number) => number;\n\n if (lo === hi) {\n // One value (or a zero-width domain): one class, painted as \"the value\".\n const color = stepColors([[lo, hi]], ramp, center)[0] as string;\n steps = [{ from: lo, to: hi, color }];\n if (continuous) stops = [{ value: lo, color }];\n const position = ramp.indexOf(color) / (ramp.length - 1);\n positionOf = () => position;\n } else if (continuous) {\n // Knots map a value to its position on the ramp: the method's stops sit at\n // evenly spaced positions, then a centre bends the map so it lands at 0.5.\n let cuts: number[];\n const quantiles = QUANTILE_STOPS[method as ContinuousColorScaleMethod];\n if (quantiles !== undefined) {\n cuts = Array.from({ length: quantiles + 1 }, (_, i) =>\n i === 0 ? lo : i === quantiles ? hi : quantileSorted(sorted, i / quantiles),\n );\n } else if (method === \"natural\") {\n const breaks = jenksBreaks(sorted, stepCount(spec.steps, DEFAULT_STEPS));\n cuts = breaks.length > 2 ? [lo, ...breaks.slice(1, -1), hi] : [lo, hi];\n } else {\n cuts = [lo, hi];\n }\n let knots: [number, number][] = cuts.map((v, i) => [v, i / (cuts.length - 1)]);\n if (center !== null) {\n const pc = interpolate(knots, clamp(center, lo, hi));\n const bend = (p: number) =>\n pc <= 0\n ? 0.5 + p / 2\n : pc >= 1\n ? p / 2\n : p <= pc\n ? (0.5 * p) / pc\n : 0.5 + (0.5 * (p - pc)) / (1 - pc);\n knots = knots.map(([v, p]) => [v, bend(p)]);\n if (center > lo && center < hi) {\n knots.push([center, 0.5]);\n knots.sort((a, b) => a[0] - b[0] || a[1] - b[1]);\n }\n }\n const inverse = knots.map(([v, p]) => [p, v] as [number, number]);\n const last = ramp.length - 1;\n const valueAt = (position: number) => interpolate(inverse, position);\n steps = ramp.map((color, j) => ({\n from: j === 0 ? lo : valueAt((j - 0.5) / last),\n to: j === last ? hi : valueAt((j + 0.5) / last),\n color,\n }));\n stops = ramp.map((color, j) => ({ value: valueAt(j / last), color }));\n positionOf = (value) => interpolate(knots, value);\n } else {\n // Clamped to the ramp: a class the reader cannot tell from its neighbour is\n // not a class. Nothing here can MIX two tokens (their values are only known\n // once the browser resolves the theme), so the ramp's length IS the largest\n // honest class count — 7 sequential, 5 diverging. `spec.steps` above that\n // used to paint identical pairs and a legend that claimed the difference.\n // `method: \"custom\"` is the one exception: the host named those breaks, so\n // they are kept even when two of them land on one colour.\n const n = Math.min(stepCount(spec.steps, DEFAULT_STEPS), ramp.length);\n let breaks: number[];\n if (method === \"custom\") breaks = [lo, ...thresholds, hi];\n else if (method === \"quantile\")\n breaks = Array.from({ length: n + 1 }, (_, i) =>\n i === 0 ? lo : i === n ? hi : quantileSorted(sorted, i / n),\n );\n else if (method === \"jenks\") {\n const natural = jenksBreaks(sorted, n);\n breaks = [lo, ...natural.slice(1, -1), hi];\n } else if (method === \"rounded\") breaks = roundedBreaks(lo, hi, n);\n else\n breaks = Array.from({ length: n + 1 }, (_, i) => (i === n ? hi : lo + ((hi - lo) * i) / n));\n const unique = uniqueBreaks(breaks);\n const bounds = unique\n .slice(1)\n .map((to, i): readonly [number, number] => [unique[i] as number, to]);\n const colors = stepColors(bounds, ramp, center);\n steps = bounds.map(([from, to], i) => ({ from, to, color: colors[i] as string }));\n positionOf = (value) => {\n const i = stepIndex(steps, value);\n const { from, to } = steps[i] as ColorScaleStep;\n const within = to === from ? 0.5 : (value - from) / (to - from);\n return (i + clamp(within, 0, 1)) / steps.length;\n };\n }\n\n const indexOf = (value: ColorScaleValue) =>\n isFiniteNumber(value) ? stepIndex(steps, clamp(value, lo, hi)) : -1;\n return {\n type: spec.type,\n method,\n palette,\n domain: [lo, hi],\n center,\n steps,\n stops,\n categories: [],\n colorOf: (value) => steps[indexOf(value)]?.color ?? null,\n indexOf,\n positionOf: (value) => (isFiniteNumber(value) ? positionOf(clamp(value, lo, hi)) : null),\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,48 @@
1
+ "use client";
2
+
3
+ // src/lib/cn.ts
4
+ import { clsx } from "clsx";
5
+ import { extendTailwindMerge } from "tailwind-merge";
6
+ var TEXT_ROLES = [
7
+ "display-lg",
8
+ "display",
9
+ "title",
10
+ "subtitle",
11
+ "body",
12
+ "caption",
13
+ "meta",
14
+ "eyebrow",
15
+ "heading-xs",
16
+ "kpi",
17
+ "kpi-sm",
18
+ "code"
19
+ ];
20
+ var isVarShorthand = (value) => /^\(--[\w-]+\)$/.test(value);
21
+ var twMerge = extendTailwindMerge({
22
+ extend: {
23
+ classGroups: {
24
+ "font-size": [{ text: [...TEXT_ROLES, "table-header"] }],
25
+ leading: [{ leading: [isVarShorthand] }],
26
+ tracking: [{ tracking: [isVarShorthand] }],
27
+ // `font-display` is the display-face seam (sibling of font-mono, #187).
28
+ "font-family": [{ font: ["display"] }],
29
+ // Theme-driven control/table/surface knobs (themes.css § CONTROL UTILITIES
30
+ // and the `@theme inline` bridge) — so a caller's `h-8` / `rounded-none` /
31
+ // `font-bold` / `shadow-none` still replaces the token default.
32
+ "font-weight": [{ font: ["control", "table-header", "tabs-active"] }],
33
+ rounded: [{ rounded: ["control", "badge"] }],
34
+ shadow: [{ shadow: ["input", "card", "popover", "dialog"] }],
35
+ h: [{ h: ["control", "control-sm", "control-lg", "header"] }],
36
+ size: [{ size: ["control", "control-sm", "control-lg"] }],
37
+ "min-w": [{ "min-w": ["control", "control-sm", "control-lg"] }]
38
+ }
39
+ }
40
+ });
41
+ function cn(...inputs) {
42
+ return twMerge(clsx(inputs));
43
+ }
44
+
45
+ export {
46
+ cn
47
+ };
48
+ //# sourceMappingURL=chunk-KBNWM27Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/**\n * The semantic type roles (`--text-<role>` tokens → `text-<role>` utilities, #187).\n * tailwind-merge doesn't know custom theme keys, so without registration it\n * classifies `text-title` as a text COLOR — and `cn(\"text-kpi\", \"text-foreground\")`\n * would silently drop the role. Registering the roles in the `font-size` class\n * group makes role-vs-role and role-vs-raw-size conflicts resolve correctly while\n * keeping role + color independent.\n */\nconst TEXT_ROLES = [\n \"display-lg\",\n \"display\",\n \"title\",\n \"subtitle\",\n \"body\",\n \"caption\",\n \"meta\",\n \"eyebrow\",\n \"heading-xs\",\n \"kpi\",\n \"kpi-sm\",\n \"code\",\n];\n\n/**\n * Tailwind v4's CSS-variable shorthand (`leading-(--card-title-leading)`).\n * tailwind-merge 2.x predates it and leaves such a class beside a caller's\n * `leading-tight`, letting stylesheet order pick the winner. A typed hint\n * (`text-(length:--x)`) is read as a variant prefix by 2.x and cannot be\n * registered — give that seam a named `@theme` utility instead\n * (`text-table-header`).\n */\nconst isVarShorthand = (value: string) => /^\\(--[\\w-]+\\)$/.test(value);\n\nconst twMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n \"font-size\": [{ text: [...TEXT_ROLES, \"table-header\"] }],\n leading: [{ leading: [isVarShorthand] }],\n tracking: [{ tracking: [isVarShorthand] }],\n // `font-display` is the display-face seam (sibling of font-mono, #187).\n \"font-family\": [{ font: [\"display\"] }],\n // Theme-driven control/table/surface knobs (themes.css § CONTROL UTILITIES\n // and the `@theme inline` bridge) — so a caller's `h-8` / `rounded-none` /\n // `font-bold` / `shadow-none` still replaces the token default.\n \"font-weight\": [{ font: [\"control\", \"table-header\", \"tabs-active\"] }],\n rounded: [{ rounded: [\"control\", \"badge\"] }],\n shadow: [{ shadow: [\"input\", \"card\", \"popover\", \"dialog\"] }],\n h: [{ h: [\"control\", \"control-sm\", \"control-lg\", \"header\"] }],\n size: [{ size: [\"control\", \"control-sm\", \"control-lg\"] }],\n \"min-w\": [{ \"min-w\": [\"control\", \"control-sm\", \"control-lg\"] }],\n },\n },\n});\n\n/**\n * Merge class names with conflict resolution. `clsx` handles conditionals;\n * `tailwind-merge` ensures later Tailwind utilities win (e.g. `p-2 p-4` -> `p-4`).\n * Use this in every component that accepts a `className` prop.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;AAAA,SAAS,YAA6B;AACtC,SAAS,2BAA2B;AAUpC,IAAM,aAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAUA,IAAM,iBAAiB,CAAC,UAAkB,iBAAiB,KAAK,KAAK;AAErE,IAAM,UAAU,oBAAoB;AAAA,EAClC,QAAQ;AAAA,IACN,aAAa;AAAA,MACX,aAAa,CAAC,EAAE,MAAM,CAAC,GAAG,YAAY,cAAc,EAAE,CAAC;AAAA,MACvD,SAAS,CAAC,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC;AAAA,MACvC,UAAU,CAAC,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC;AAAA;AAAA,MAEzC,eAAe,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA,MAIrC,eAAe,CAAC,EAAE,MAAM,CAAC,WAAW,gBAAgB,aAAa,EAAE,CAAC;AAAA,MACpE,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,OAAO,EAAE,CAAC;AAAA,MAC3C,QAAQ,CAAC,EAAE,QAAQ,CAAC,SAAS,QAAQ,WAAW,QAAQ,EAAE,CAAC;AAAA,MAC3D,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,cAAc,cAAc,QAAQ,EAAE,CAAC;AAAA,MAC5D,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,cAAc,YAAY,EAAE,CAAC;AAAA,MACxD,SAAS,CAAC,EAAE,SAAS,CAAC,WAAW,cAAc,YAAY,EAAE,CAAC;AAAA,IAChE;AAAA,EACF;AACF,CAAC;AAOM,SAAS,MAAM,QAA8B;AAClD,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;","names":[]}
@@ -0,0 +1,164 @@
1
+ "use client";
2
+ import {
3
+ Select,
4
+ SelectContent,
5
+ SelectItem,
6
+ SelectTrigger,
7
+ SelectValue
8
+ } from "./chunk-5RC32MZH.js";
9
+ import {
10
+ CommandChip
11
+ } from "./chunk-IHMFEPIT.js";
12
+ import {
13
+ useControllableState
14
+ } from "./chunk-5LCN5Q2L.js";
15
+ import {
16
+ Tooltip,
17
+ TooltipContent,
18
+ TooltipProvider,
19
+ TooltipTrigger
20
+ } from "./chunk-U4LHV5DS.js";
21
+ import {
22
+ Button
23
+ } from "./chunk-VA2OONPE.js";
24
+ import {
25
+ cn
26
+ } from "./chunk-KBNWM27Q.js";
27
+
28
+ // src/components/integration-matrix/integration-matrix.tsx
29
+ import { forwardRef } from "react";
30
+ import { ArrowRight } from "lucide-react";
31
+ import { jsx, jsxs } from "react/jsx-runtime";
32
+ var DEFAULT_INTEGRATION_MATRIX_LABELS = {
33
+ hostSelectLabel: "Show commands for",
34
+ hostSelectAriaLabel: "Host to show commands for",
35
+ unitHeading: "Unit",
36
+ givesHeading: "Gives you",
37
+ actionsHeading: "Actions",
38
+ routineHeading: "The daily routine"
39
+ };
40
+ function resolveCopyValue(value, hostId) {
41
+ if (typeof value === "string") return value;
42
+ return value[hostId] ?? Object.values(value)[0] ?? "";
43
+ }
44
+ var IntegrationMatrix = forwardRef(
45
+ function IntegrationMatrix2({
46
+ hosts,
47
+ rows,
48
+ routine,
49
+ value,
50
+ defaultValue,
51
+ onValueChange,
52
+ onCopyAction,
53
+ labels: labelsProp,
54
+ className,
55
+ ...props
56
+ }, ref) {
57
+ const labels = { ...DEFAULT_INTEGRATION_MATRIX_LABELS, ...labelsProp };
58
+ const [hostId, setHostId] = useControllableState(
59
+ value,
60
+ defaultValue ?? hosts[0]?.id ?? "",
61
+ onValueChange
62
+ );
63
+ return /* @__PURE__ */ jsxs(
64
+ "div",
65
+ {
66
+ ref,
67
+ "data-slot": "integration-matrix",
68
+ className: cn("flex flex-col gap-6", className),
69
+ ...props,
70
+ children: [
71
+ hosts.length > 1 ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
72
+ /* @__PURE__ */ jsx("span", { className: "text-body text-muted-foreground", children: labels.hostSelectLabel }),
73
+ /* @__PURE__ */ jsxs(Select, { value: hostId, onValueChange: setHostId, children: [
74
+ /* @__PURE__ */ jsx(
75
+ SelectTrigger,
76
+ {
77
+ "data-slot": "integration-matrix-host",
78
+ "aria-label": labels.hostSelectAriaLabel,
79
+ className: "min-w-40",
80
+ children: /* @__PURE__ */ jsx(SelectValue, {})
81
+ }
82
+ ),
83
+ /* @__PURE__ */ jsx(SelectContent, { children: hosts.map((host) => /* @__PURE__ */ jsx(SelectItem, { value: host.id, children: host.label }, host.id)) })
84
+ ] })
85
+ ] }) : null,
86
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 md:gap-0", children: [
87
+ /* @__PURE__ */ jsxs("div", { className: "hidden grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1.6fr)] gap-4 border-b border-border-strong pb-2 md:grid", children: [
88
+ /* @__PURE__ */ jsx("span", { className: "text-caption font-semibold text-muted-foreground", children: labels.unitHeading }),
89
+ /* @__PURE__ */ jsx("span", { className: "text-caption font-semibold text-muted-foreground", children: labels.givesHeading }),
90
+ /* @__PURE__ */ jsx("span", { className: "text-caption font-semibold text-muted-foreground", children: labels.actionsHeading })
91
+ ] }),
92
+ rows.map((row) => /* @__PURE__ */ jsxs(
93
+ "div",
94
+ {
95
+ "data-slot": "integration-matrix-row",
96
+ className: "grid grid-cols-1 gap-3 border-b py-4 last:border-b-0 md:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1.6fr)] md:items-center md:gap-4",
97
+ children: [
98
+ /* @__PURE__ */ jsx("span", { className: "text-body font-medium text-foreground", children: row.unit }),
99
+ /* @__PURE__ */ jsx("span", { className: "text-body text-muted-foreground", children: row.gives }),
100
+ /* @__PURE__ */ jsx(
101
+ "div",
102
+ {
103
+ "data-slot": "integration-matrix-actions",
104
+ className: "flex flex-wrap items-center gap-2",
105
+ children: row.actions.map(
106
+ (action) => action.kind === "copy" ? /* @__PURE__ */ jsx(
107
+ CommandChip,
108
+ {
109
+ className: "max-w-full",
110
+ hosts: [
111
+ {
112
+ id: "value",
113
+ label: action.label,
114
+ command: resolveCopyValue(action.value, hostId)
115
+ }
116
+ ],
117
+ onCopyCommand: (text, copied) => onCopyAction?.(row.id, action.label, text, copied)
118
+ },
119
+ action.label
120
+ ) : /* @__PURE__ */ jsx(Button, { variant: "link", size: "sm", asChild: true, children: /* @__PURE__ */ jsx("a", { href: resolveCopyValue(action.value, hostId), children: action.label }) }, action.label)
121
+ )
122
+ }
123
+ )
124
+ ]
125
+ },
126
+ row.id
127
+ ))
128
+ ] }),
129
+ routine && routine.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3", children: [
130
+ /* @__PURE__ */ jsx("h3", { className: "text-caption font-semibold text-muted-foreground", children: labels.routineHeading }),
131
+ /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(
132
+ "div",
133
+ {
134
+ "data-slot": "integration-matrix-routine",
135
+ className: "flex flex-wrap items-center gap-2",
136
+ children: routine.map((step, index) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
137
+ /* @__PURE__ */ jsxs(Tooltip, { children: [
138
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
139
+ "span",
140
+ {
141
+ "data-slot": "integration-matrix-routine-step",
142
+ tabIndex: 0,
143
+ className: "inline-flex items-center rounded-md border border-input bg-card px-2.5 py-1 font-mono text-code text-foreground focus-ring",
144
+ children: step.verb
145
+ }
146
+ ) }),
147
+ /* @__PURE__ */ jsx(TooltipContent, { children: step.does })
148
+ ] }),
149
+ index < routine.length - 1 ? /* @__PURE__ */ jsx(ArrowRight, { "aria-hidden": "true", className: "size-4 text-muted-foreground" }) : null
150
+ ] }, step.verb))
151
+ }
152
+ ) })
153
+ ] }) : null
154
+ ]
155
+ }
156
+ );
157
+ }
158
+ );
159
+
160
+ export {
161
+ DEFAULT_INTEGRATION_MATRIX_LABELS,
162
+ IntegrationMatrix
163
+ };
164
+ //# sourceMappingURL=chunk-KOVHUAHG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/integration-matrix/integration-matrix.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * IntegrationMatrix — every agent-facing integration unit, as installable rows.\n *\n * Ships no site copy, no URL and no install command of its own (`i18n-strings`,\n * `remote-origins`): every string, host and command text is a prop. A single host\n * selector at the top swaps every row's copy action at once, so a visitor picks\n * their tool once instead of re-reading each row for it.\n */\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { ArrowRight } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nimport { useControllableState } from \"../../lib/use-controllable-state\";\nimport { Button } from \"../button\";\nimport { CommandChip } from \"../command-chip\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"../select\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\n\n/** One host the visitor can pick — the selection swaps every row's copy action. */\nexport interface IntegrationMatrixHost {\n /** Stable id, matched against each action's `value` map. */\n id: string;\n /** Shown in the selector. */\n label: string;\n}\n\n/** One action a row offers: copy a command, or follow a link. */\nexport interface IntegrationMatrixAction {\n /** Shown on the link button, or as the copy button's accessible name suffix. */\n label: string;\n kind: \"copy\" | \"link\";\n /**\n * `kind: \"copy\"` — the exact text per host id (a row that never changes by host\n * repeats the same string under every id). `kind: \"link\"` — a single href string.\n */\n value: string | Record<string, string>;\n}\n\n/** One installable unit — hosted MCP, local MCP + CLI, the plugin, `llms.txt`, … */\nexport interface IntegrationMatrixRow {\n id: string;\n unit: string;\n gives: string;\n actions: IntegrationMatrixAction[];\n}\n\n/** One step of the routine line below the matrix (`info → search → docs → …`). */\nexport interface IntegrationMatrixRoutineStep {\n verb: string;\n /** Tooltip body — what the verb does. */\n does: string;\n}\n\nexport interface IntegrationMatrixLabels {\n /** Visible label beside the host selector. */\n hostSelectLabel: string;\n /** `aria-label` of the host `Select` trigger. */\n hostSelectAriaLabel: string;\n unitHeading: string;\n givesHeading: string;\n actionsHeading: string;\n /** Heading above the routine chips. */\n routineHeading: string;\n}\n\nexport const DEFAULT_INTEGRATION_MATRIX_LABELS: IntegrationMatrixLabels = {\n hostSelectLabel: \"Show commands for\",\n hostSelectAriaLabel: \"Host to show commands for\",\n unitHeading: \"Unit\",\n givesHeading: \"Gives you\",\n actionsHeading: \"Actions\",\n routineHeading: \"The daily routine\",\n};\n\nexport interface IntegrationMatrixProps extends HTMLAttributes<HTMLDivElement> {\n hosts: IntegrationMatrixHost[];\n rows: IntegrationMatrixRow[];\n /** The routine strip below the matrix; omitted entirely when empty. */\n routine?: IntegrationMatrixRoutineStep[];\n /** Selected host id (controlled). */\n value?: string;\n /** Initially selected host id (uncontrolled). Default: the first host. */\n defaultValue?: string;\n /** Fires when the visitor picks another host. */\n onValueChange?: (id: string) => void;\n /** Fires after a copy attempt with the row id, the action label and the text. */\n onCopyAction?: (rowId: string, actionLabel: string, text: string, copied: boolean) => void;\n labels?: Partial<IntegrationMatrixLabels>;\n}\n\nfunction resolveCopyValue(value: string | Record<string, string>, hostId: string): string {\n if (typeof value === \"string\") return value;\n return value[hostId] ?? Object.values(value)[0] ?? \"\";\n}\n\nexport const IntegrationMatrix = forwardRef<HTMLDivElement, IntegrationMatrixProps>(\n function IntegrationMatrix(\n {\n hosts,\n rows,\n routine,\n value,\n defaultValue,\n onValueChange,\n onCopyAction,\n labels: labelsProp,\n className,\n ...props\n },\n ref,\n ) {\n const labels = { ...DEFAULT_INTEGRATION_MATRIX_LABELS, ...labelsProp };\n const [hostId, setHostId] = useControllableState(\n value,\n defaultValue ?? hosts[0]?.id ?? \"\",\n onValueChange,\n );\n\n return (\n <div\n ref={ref}\n data-slot=\"integration-matrix\"\n className={cn(\"flex flex-col gap-6\", className)}\n {...props}\n >\n {hosts.length > 1 ? (\n <div className=\"flex items-center gap-3\">\n <span className=\"text-body text-muted-foreground\">{labels.hostSelectLabel}</span>\n <Select value={hostId} onValueChange={setHostId}>\n <SelectTrigger\n data-slot=\"integration-matrix-host\"\n aria-label={labels.hostSelectAriaLabel}\n className=\"min-w-40\"\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {hosts.map((host) => (\n <SelectItem key={host.id} value={host.id}>\n {host.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n ) : null}\n\n {/* md+: a 3-column grid with a header row. Below md: stacked cards, one per row. */}\n <div className=\"flex flex-col gap-4 md:gap-0\">\n <div className=\"hidden grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1.6fr)] gap-4 border-b border-border-strong pb-2 md:grid\">\n <span className=\"text-caption font-semibold text-muted-foreground\">\n {labels.unitHeading}\n </span>\n <span className=\"text-caption font-semibold text-muted-foreground\">\n {labels.givesHeading}\n </span>\n <span className=\"text-caption font-semibold text-muted-foreground\">\n {labels.actionsHeading}\n </span>\n </div>\n {rows.map((row) => (\n <div\n key={row.id}\n data-slot=\"integration-matrix-row\"\n className=\"grid grid-cols-1 gap-3 border-b py-4 last:border-b-0 md:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)_minmax(0,1.6fr)] md:items-center md:gap-4\"\n >\n <span className=\"text-body font-medium text-foreground\">{row.unit}</span>\n <span className=\"text-body text-muted-foreground\">{row.gives}</span>\n <div\n data-slot=\"integration-matrix-actions\"\n className=\"flex flex-wrap items-center gap-2\"\n >\n {row.actions.map((action) =>\n action.kind === \"copy\" ? (\n <CommandChip\n key={action.label}\n className=\"max-w-full\"\n hosts={[\n {\n id: \"value\",\n label: action.label,\n command: resolveCopyValue(action.value, hostId),\n },\n ]}\n onCopyCommand={(text, copied) =>\n onCopyAction?.(row.id, action.label, text, copied)\n }\n />\n ) : (\n <Button key={action.label} variant=\"link\" size=\"sm\" asChild>\n <a href={resolveCopyValue(action.value, hostId)}>{action.label}</a>\n </Button>\n ),\n )}\n </div>\n </div>\n ))}\n </div>\n\n {routine && routine.length > 0 ? (\n <div className=\"flex flex-col gap-3\">\n <h3 className=\"text-caption font-semibold text-muted-foreground\">\n {labels.routineHeading}\n </h3>\n <TooltipProvider>\n <div\n data-slot=\"integration-matrix-routine\"\n className=\"flex flex-wrap items-center gap-2\"\n >\n {routine.map((step, index) => (\n <div key={step.verb} className=\"flex items-center gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n data-slot=\"integration-matrix-routine-step\"\n tabIndex={0}\n className=\"inline-flex items-center rounded-md border border-input bg-card px-2.5 py-1 font-mono text-code text-foreground focus-ring\"\n >\n {step.verb}\n </span>\n </TooltipTrigger>\n <TooltipContent>{step.does}</TooltipContent>\n </Tooltip>\n {index < routine.length - 1 ? (\n <ArrowRight aria-hidden=\"true\" className=\"size-4 text-muted-foreground\" />\n ) : null}\n </div>\n ))}\n </div>\n </TooltipProvider>\n </div>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":"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","names":["IntegrationMatrix"]}
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ //# sourceMappingURL=chunk-KRVSD4OK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,116 @@
1
+ "use client";
2
+ import {
3
+ ScrollArea
4
+ } from "./chunk-UQHWOPUY.js";
5
+ import {
6
+ ATTRIBUTIONS
7
+ } from "./chunk-HANBQNW3.js";
8
+ import {
9
+ Badge
10
+ } from "./chunk-ECCNRCC4.js";
11
+ import {
12
+ useLocale
13
+ } from "./chunk-EJQYE4MY.js";
14
+ import {
15
+ cn
16
+ } from "./chunk-KBNWM27Q.js";
17
+
18
+ // src/components/attribution-panel/attribution-panel.tsx
19
+ import { forwardRef, useId, useMemo } from "react";
20
+ import { jsx, jsxs } from "react/jsx-runtime";
21
+ var CATEGORY_ORDER = ["data", "source", "font", "dependency"];
22
+ var CATEGORY_LABEL = {
23
+ data: "Map data & tiles",
24
+ source: "Adapted source",
25
+ font: "Fonts",
26
+ dependency: "Open-source dependencies"
27
+ };
28
+ function groupAttributions(attributions, {
29
+ categories,
30
+ packages,
31
+ requiredOnly
32
+ }) {
33
+ const order = categories ?? CATEGORY_ORDER;
34
+ const visible = attributions.filter(
35
+ (a) => order.includes(a.category) && (!requiredOnly || a.required) && (!packages || a.usedBy.some((p) => packages.includes(p)))
36
+ );
37
+ return order.map((category) => ({ category, items: visible.filter((a) => a.category === category) })).filter((group) => group.items.length > 0);
38
+ }
39
+ function AttributionItem({ item, requiredLabel }) {
40
+ return /* @__PURE__ */ jsxs("li", { "data-slot": "attribution-panel-item", className: "flex flex-col gap-0.5 py-2", children: [
41
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
42
+ item.url ? /* @__PURE__ */ jsx(
43
+ "a",
44
+ {
45
+ href: item.url,
46
+ target: "_blank",
47
+ rel: "noopener noreferrer",
48
+ className: "text-body font-medium underline underline-offset-2 focus-ring rounded-xs",
49
+ children: item.name
50
+ }
51
+ ) : /* @__PURE__ */ jsx("span", { className: "text-body font-medium", children: item.name }),
52
+ item.version ? /* @__PURE__ */ jsx("span", { className: "text-meta text-muted-foreground tabular-nums", children: item.version }) : null,
53
+ /* @__PURE__ */ jsx("span", { className: "text-meta text-muted-foreground", children: item.license }),
54
+ item.required ? (
55
+ // Not colour-only: the badge carries the word itself (WCAG 1.4.1).
56
+ /* @__PURE__ */ jsx(Badge, { variant: "outline", className: "text-meta", children: requiredLabel })
57
+ ) : null
58
+ ] }),
59
+ item.copyright ? /* @__PURE__ */ jsx("p", { className: "text-meta text-muted-foreground break-words", children: item.copyright }) : null,
60
+ item.note ? /* @__PURE__ */ jsx("p", { className: "text-meta text-muted-foreground", children: item.note }) : null
61
+ ] });
62
+ }
63
+ var AttributionPanel = forwardRef(
64
+ function AttributionPanel2({
65
+ attributions = ATTRIBUTIONS,
66
+ categories,
67
+ packages,
68
+ requiredOnly,
69
+ maxHeight,
70
+ className,
71
+ ...props
72
+ }, ref) {
73
+ const { t } = useLocale();
74
+ const baseId = useId();
75
+ const groups = useMemo(
76
+ () => groupAttributions(attributions, { categories, packages, requiredOnly }),
77
+ [attributions, categories, packages, requiredOnly]
78
+ );
79
+ const body = /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-6", children: groups.map(({ category, items }) => /* @__PURE__ */ jsxs(
80
+ "section",
81
+ {
82
+ "data-slot": "attribution-panel-section",
83
+ "aria-labelledby": `${baseId}-${category}`,
84
+ children: [
85
+ /* @__PURE__ */ jsx("h3", { id: `${baseId}-${category}`, className: "text-subtitle text-foreground mb-1", children: CATEGORY_LABEL[category] }),
86
+ /* @__PURE__ */ jsx("ul", { className: "divide-y divide-border", children: items.map((item) => /* @__PURE__ */ jsx(
87
+ AttributionItem,
88
+ {
89
+ item,
90
+ requiredLabel: t("ui.attributionPanel.required")
91
+ },
92
+ item.id
93
+ )) })
94
+ ]
95
+ },
96
+ category
97
+ )) });
98
+ return /* @__PURE__ */ jsx(
99
+ "section",
100
+ {
101
+ ref,
102
+ "data-slot": "attribution-panel",
103
+ "aria-label": t("ui.attributionPanel.label"),
104
+ className: cn("bg-card border border-border rounded-lg p-4", className),
105
+ ...props,
106
+ children: groups.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-body text-muted-foreground", children: t("ui.attributionPanel.empty") }) : maxHeight === void 0 ? body : /* @__PURE__ */ jsx(ScrollArea, { style: { maxHeight }, className: "pe-3", children: body })
107
+ }
108
+ );
109
+ }
110
+ );
111
+
112
+ export {
113
+ CATEGORY_LABEL,
114
+ AttributionPanel
115
+ };
116
+ //# sourceMappingURL=chunk-KTH3GWAL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/attribution-panel/attribution-panel.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, useId, useMemo, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Badge } from \"../badge\";\nimport { ScrollArea } from \"../scroll-area\";\nimport { useLocale } from \"../locale-provider\";\nimport { ATTRIBUTIONS } from \"./attributions.generated\";\nimport type { Attribution, AttributionCategory } from \"./attribution-types\";\n\n/**\n * Render order + the heading each group gets. `data` first because those are the\n * notices a licence obliges us to show; `dependency` last because it is the long\n * tail nobody scrolls to but everybody must be able to reach.\n */\nconst CATEGORY_ORDER: readonly AttributionCategory[] = [\"data\", \"source\", \"font\", \"dependency\"];\n\nconst CATEGORY_LABEL: Record<AttributionCategory, string> = {\n data: \"Map data & tiles\",\n source: \"Adapted source\",\n font: \"Fonts\",\n dependency: \"Open-source dependencies\",\n};\n\nexport interface AttributionPanelProps extends HTMLAttributes<HTMLElement> {\n /**\n * The notices to render. Defaults to the GENERATED dataset\n * (`scripts/gen-attributions.mjs`), which is what keeps this panel accurate\n * without anyone maintaining a list — override only to scope or to test.\n */\n attributions?: readonly Attribution[];\n /** Restrict to these categories, in the panel's own order. Default: all. */\n categories?: readonly AttributionCategory[];\n /**\n * Restrict to notices reachable through these packages — e.g. an app that only\n * uses `…-ui` need not credit MapLibre's basemap providers. Matched against\n * each entry's `usedBy`. Default: all.\n */\n packages?: readonly string[];\n /** Show only the notices a licence obliges us to display. */\n requiredOnly?: boolean;\n /**\n * Cap the body height and scroll inside it. Omit to let the panel grow and\n * leave scrolling to the container (a Dialog body, a settings pane).\n */\n maxHeight?: number | string;\n}\n\n/** Filter + group in one pass so the render is a plain map over sections. */\nfunction groupAttributions(\n attributions: readonly Attribution[],\n {\n categories,\n packages,\n requiredOnly,\n }: Pick<AttributionPanelProps, \"categories\" | \"packages\" | \"requiredOnly\">,\n) {\n const order = categories ?? CATEGORY_ORDER;\n const visible = attributions.filter(\n (a) =>\n order.includes(a.category) &&\n (!requiredOnly || a.required) &&\n (!packages || a.usedBy.some((p) => packages.includes(p))),\n );\n return order\n .map((category) => ({ category, items: visible.filter((a) => a.category === category) }))\n .filter((group) => group.items.length > 0);\n}\n\nfunction AttributionItem({ item, requiredLabel }: { item: Attribution; requiredLabel: string }) {\n return (\n <li data-slot=\"attribution-panel-item\" className=\"flex flex-col gap-0.5 py-2\">\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {item.url ? (\n <a\n href={item.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-body font-medium underline underline-offset-2 focus-ring rounded-xs\"\n >\n {item.name}\n </a>\n ) : (\n <span className=\"text-body font-medium\">{item.name}</span>\n )}\n {item.version ? (\n <span className=\"text-meta text-muted-foreground tabular-nums\">{item.version}</span>\n ) : null}\n <span className=\"text-meta text-muted-foreground\">{item.license}</span>\n {item.required ? (\n // Not colour-only: the badge carries the word itself (WCAG 1.4.1).\n <Badge variant=\"outline\" className=\"text-meta\">\n {requiredLabel}\n </Badge>\n ) : null}\n </div>\n {item.copyright ? (\n <p className=\"text-meta text-muted-foreground break-words\">{item.copyright}</p>\n ) : null}\n {item.note ? <p className=\"text-meta text-muted-foreground\">{item.note}</p> : null}\n </li>\n );\n}\n\n/**\n * The single surface where brand-ui's third-party notices are displayed —\n * OSS dependencies, adapted source, self-hosted fonts, and the map data/tile\n * credits that a licence actually obliges the product to show.\n *\n * The content is GENERATED from the repo (`pnpm gen:attributions`, gated by\n * `pnpm attributions:check`), so it cannot drift from what is actually shipped\n * the way a hand-kept credits page does.\n *\n * **Why this exists:** `MapCanvas` disables MapLibre's in-map attribution\n * control by default, and the flow canvases hide the React Flow badge. The\n * React Flow badge is an MIT project's request and carries no condition, but the\n * default Carto basemap's OpenStreetMap data is ODbL-licensed and the credit is\n * REQUIRED — mounting this panel somewhere a user can reach (an About dialog, a\n * settings pane, a footer link) is what keeps that obligation met while the map\n * corner stays clean. Ship it, or turn the in-map control back on.\n */\nexport const AttributionPanel = forwardRef<HTMLElement, AttributionPanelProps>(\n function AttributionPanel(\n {\n attributions = ATTRIBUTIONS,\n categories,\n packages,\n requiredOnly,\n maxHeight,\n className,\n ...props\n },\n ref,\n ) {\n const { t } = useLocale();\n // Instance-scoped so two panels on one page (Storybook autodocs renders every\n // story together) can't emit the same heading id — duplicate ids break the\n // aria-labelledby target and fail axe.\n const baseId = useId();\n const groups = useMemo(\n () => groupAttributions(attributions, { categories, packages, requiredOnly }),\n [attributions, categories, packages, requiredOnly],\n );\n\n const body = (\n <div className=\"flex flex-col gap-6\">\n {groups.map(({ category, items }) => (\n <section\n key={category}\n data-slot=\"attribution-panel-section\"\n aria-labelledby={`${baseId}-${category}`}\n >\n <h3 id={`${baseId}-${category}`} className=\"text-subtitle text-foreground mb-1\">\n {CATEGORY_LABEL[category]}\n </h3>\n <ul className=\"divide-y divide-border\">\n {items.map((item) => (\n <AttributionItem\n key={item.id}\n item={item}\n requiredLabel={t(\"ui.attributionPanel.required\")}\n />\n ))}\n </ul>\n </section>\n ))}\n </div>\n );\n\n return (\n <section\n ref={ref}\n data-slot=\"attribution-panel\"\n aria-label={t(\"ui.attributionPanel.label\")}\n className={cn(\"bg-card border border-border rounded-lg p-4\", className)}\n {...props}\n >\n {groups.length === 0 ? (\n <p className=\"text-body text-muted-foreground\">{t(\"ui.attributionPanel.empty\")}</p>\n ) : maxHeight === undefined ? (\n body\n ) : (\n <ScrollArea style={{ maxHeight }} className=\"pe-3\">\n {body}\n </ScrollArea>\n )}\n </section>\n );\n },\n);\n\nexport { ATTRIBUTIONS, CATEGORY_LABEL };\nexport type { Attribution, AttributionCategory };\n"],"mappings":"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","names":["AttributionPanel"]}
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import {
3
+ cn
4
+ } from "./chunk-KBNWM27Q.js";
5
+
6
+ // src/components/textarea/textarea.tsx
7
+ import { forwardRef } from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var Textarea = forwardRef(function Textarea2({ className, ...props }, ref) {
10
+ return /* @__PURE__ */ jsx(
11
+ "textarea",
12
+ {
13
+ ref,
14
+ className: cn(
15
+ "flex min-h-20 w-full rounded-control border border-input bg-input-background px-3 py-2 text-body shadow-input transition-[color,background-color,border-color,box-shadow] duration-fast ease-standard",
16
+ "placeholder:text-muted-foreground",
17
+ "focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-input-focus",
18
+ "disabled:cursor-not-allowed disabled:opacity-50 disabled:border-border",
19
+ "aria-[invalid=true]:border-destructive aria-[invalid=true]:ring-destructive",
20
+ className
21
+ ),
22
+ ...props
23
+ }
24
+ );
25
+ });
26
+
27
+ export {
28
+ Textarea
29
+ };
30
+ //# sourceMappingURL=chunk-KUAVM54Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/textarea/textarea.tsx"],"sourcesContent":["import { forwardRef, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../lib/cn\";\n\nexport type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n { className, ...props },\n ref,\n) {\n return (\n <textarea\n ref={ref}\n className={cn(\n \"flex min-h-20 w-full rounded-control border border-input bg-input-background px-3 py-2 text-body shadow-input transition-[color,background-color,border-color,box-shadow] duration-fast ease-standard\",\n \"placeholder:text-muted-foreground\",\n \"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-input-focus\",\n \"disabled:cursor-not-allowed disabled:opacity-50 disabled:border-border\",\n \"aria-[invalid=true]:border-destructive aria-[invalid=true]:ring-destructive\",\n className,\n )}\n {...props}\n />\n );\n});\n"],"mappings":";;;;;;AAAA,SAAS,kBAA+C;AAUpD;AALG,IAAM,WAAW,WAA+C,SAASA,UAC9E,EAAE,WAAW,GAAG,MAAM,GACtB,KACA;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;","names":["Textarea"]}
@@ -0,0 +1,97 @@
1
+ "use client";
2
+ import {
3
+ NumberInput
4
+ } from "./chunk-4GQFIJAE.js";
5
+ import {
6
+ useLocale
7
+ } from "./chunk-EJQYE4MY.js";
8
+ import {
9
+ cn
10
+ } from "./chunk-KBNWM27Q.js";
11
+
12
+ // src/components/bounded-number/bounded-number.tsx
13
+ import { forwardRef, useCallback, useState } from "react";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ var BoundedNumber = forwardRef(
16
+ function BoundedNumber2({
17
+ value: valueProp,
18
+ defaultValue,
19
+ onValueChange,
20
+ emptyLabel,
21
+ onFocus,
22
+ onBlur,
23
+ className,
24
+ ...props
25
+ }, ref) {
26
+ const { t } = useLocale();
27
+ const resolvedEmptyLabel = emptyLabel ?? t("ui.boundedNumber.emptyLabel");
28
+ const isControlled = valueProp !== void 0;
29
+ const [internalValue, setInternalValue] = useState(
30
+ defaultValue !== void 0 ? defaultValue : null
31
+ );
32
+ const [focused, setFocused] = useState(false);
33
+ const currentValue = isControlled ? valueProp : internalValue;
34
+ const handleValueChange = useCallback(
35
+ (next) => {
36
+ if (!isControlled) setInternalValue(next);
37
+ onValueChange?.(next);
38
+ },
39
+ [isControlled, onValueChange]
40
+ );
41
+ const handleFocus = useCallback(
42
+ (event) => {
43
+ setFocused(true);
44
+ onFocus?.(event);
45
+ },
46
+ [onFocus]
47
+ );
48
+ const handleBlur = useCallback(
49
+ (event) => {
50
+ setFocused(false);
51
+ onBlur?.(event);
52
+ },
53
+ [onBlur]
54
+ );
55
+ const showEmptyLabel = currentValue == null && !focused;
56
+ return (
57
+ // `className` lands on the ROOT (the positioning context), not on the
58
+ // inner `NumberInput`: a width utility on the inner control would resolve
59
+ // against a shrink-to-fit wrapper and silently do nothing, so
60
+ // `className="w-full"` could never widen the field. `w-36` is this
61
+ // preset's own default width (`NumberInput` itself is unconstrained and
62
+ // fills its container) — `cn()` lets the caller override it, and the
63
+ // inner `NumberInput` simply fills the root via `className="w-full"`.
64
+ /* @__PURE__ */ jsxs("div", { className: cn("relative inline-block w-36", className), "data-slot": "bounded-number", children: [
65
+ /* @__PURE__ */ jsx(
66
+ NumberInput,
67
+ {
68
+ ref,
69
+ value: currentValue,
70
+ onValueChange: handleValueChange,
71
+ onFocus: handleFocus,
72
+ onBlur: handleBlur,
73
+ className: "w-full",
74
+ ...props
75
+ }
76
+ ),
77
+ showEmptyLabel && /* @__PURE__ */ jsx(
78
+ "span",
79
+ {
80
+ "aria-hidden": "true",
81
+ "data-slot": "bounded-number-empty-label",
82
+ className: cn(
83
+ "pointer-events-none absolute inset-0 flex items-center justify-center",
84
+ "text-body text-muted-foreground"
85
+ ),
86
+ children: resolvedEmptyLabel
87
+ }
88
+ )
89
+ ] })
90
+ );
91
+ }
92
+ );
93
+
94
+ export {
95
+ BoundedNumber
96
+ };
97
+ //# sourceMappingURL=chunk-KWQ6HV5Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/bounded-number/bounded-number.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, useCallback, useState, type FocusEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { NumberInput, type NumberInputProps } from \"../number-input\";\nimport { useLocale } from \"../locale-provider\";\n\nexport interface BoundedNumberProps extends NumberInputProps {\n /**\n * Content shown in place of the value when the field is empty (`null`) and\n * not focused — e.g. \"No limit\" for a capped setting with no cap set.\n * Defaults to \"No limit\".\n */\n emptyLabel?: ReactNode;\n}\n\n/**\n * BoundedNumber — a `NumberInput` preset for a bounded numeric where \"empty\"\n * has a semantic meaning (\"No limit\") instead of reading as a blank box.\n *\n * Written reuse verdict (see #373): this wraps `NumberInput` rather than\n * reimplementing anything. `NumberInput` already does everything the value\n * needs — blur-only clamping (`clamp`, default true) and `null` as a real,\n * distinct empty state (`commit(null)` on empty blur). The only missing\n * behaviour is rendering that empty state as a meaningful label instead of a\n * blank input, which is exactly what this preset adds: an absolutely\n * positioned, `pointer-events-none` overlay shown only while the value is\n * `null` AND the field is not focused, so the underlying input stays fully\n * clickable/typable and still round-trips to `null` on an empty blur.\n */\nexport const BoundedNumber = forwardRef<HTMLInputElement, BoundedNumberProps>(\n function BoundedNumber(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n emptyLabel,\n onFocus,\n onBlur,\n className,\n ...props\n },\n ref,\n ) {\n const { t } = useLocale();\n const resolvedEmptyLabel = emptyLabel ?? t(\"ui.boundedNumber.emptyLabel\");\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<number | null>(\n defaultValue !== undefined ? defaultValue : null,\n );\n const [focused, setFocused] = useState(false);\n const currentValue = isControlled ? valueProp : internalValue;\n\n const handleValueChange = useCallback(\n (next: number | null) => {\n if (!isControlled) setInternalValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocused(true);\n onFocus?.(event);\n },\n [onFocus],\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocused(false);\n onBlur?.(event);\n },\n [onBlur],\n );\n\n const showEmptyLabel = currentValue == null && !focused;\n\n return (\n // `className` lands on the ROOT (the positioning context), not on the\n // inner `NumberInput`: a width utility on the inner control would resolve\n // against a shrink-to-fit wrapper and silently do nothing, so\n // `className=\"w-full\"` could never widen the field. `w-36` is this\n // preset's own default width (`NumberInput` itself is unconstrained and\n // fills its container) — `cn()` lets the caller override it, and the\n // inner `NumberInput` simply fills the root via `className=\"w-full\"`.\n <div className={cn(\"relative inline-block w-36\", className)} data-slot=\"bounded-number\">\n <NumberInput\n ref={ref}\n value={currentValue}\n onValueChange={handleValueChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n className=\"w-full\"\n {...props}\n />\n {showEmptyLabel && (\n <span\n aria-hidden=\"true\"\n data-slot=\"bounded-number-empty-label\"\n className={cn(\n \"pointer-events-none absolute inset-0 flex items-center justify-center\",\n \"text-body text-muted-foreground\",\n )}\n >\n {resolvedEmptyLabel}\n </span>\n )}\n </div>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;AAEA,SAAS,YAAY,aAAa,gBAAiD;AAqF7E,SACE,KADF;AAzDC,IAAM,gBAAgB;AAAA,EAC3B,SAASA,eACP;AAAA,IACE,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,KACA;AACA,UAAM,EAAE,EAAE,IAAI,UAAU;AACxB,UAAM,qBAAqB,cAAc,EAAE,6BAA6B;AACxE,UAAM,eAAe,cAAc;AACnC,UAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,MACxC,iBAAiB,SAAY,eAAe;AAAA,IAC9C;AACA,UAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,UAAM,eAAe,eAAe,YAAY;AAEhD,UAAM,oBAAoB;AAAA,MACxB,CAAC,SAAwB;AACvB,YAAI,CAAC,aAAc,kBAAiB,IAAI;AACxC,wBAAgB,IAAI;AAAA,MACtB;AAAA,MACA,CAAC,cAAc,aAAa;AAAA,IAC9B;AAEA,UAAM,cAAc;AAAA,MAClB,CAAC,UAAsC;AACrC,mBAAW,IAAI;AACf,kBAAU,KAAK;AAAA,MACjB;AAAA,MACA,CAAC,OAAO;AAAA,IACV;AAEA,UAAM,aAAa;AAAA,MACjB,CAAC,UAAsC;AACrC,mBAAW,KAAK;AAChB,iBAAS,KAAK;AAAA,MAChB;AAAA,MACA,CAAC,MAAM;AAAA,IACT;AAEA,UAAM,iBAAiB,gBAAgB,QAAQ,CAAC;AAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQE,qBAAC,SAAI,WAAW,GAAG,8BAA8B,SAAS,GAAG,aAAU,kBACrE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,OAAO;AAAA,YACP,eAAe;AAAA,YACf,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,WAAU;AAAA,YACT,GAAG;AAAA;AAAA,QACN;AAAA,QACC,kBACC;AAAA,UAAC;AAAA;AAAA,YACC,eAAY;AAAA,YACZ,aAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,SAEJ;AAAA;AAAA,EAEJ;AACF;","names":["BoundedNumber"]}