@womp/kookie-ui 0.29.2 → 0.31.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 (307) hide show
  1. package/components.css +127 -0
  2. package/dist/cjs/components/_internal/navigator-host.d.ts +21 -0
  3. package/dist/cjs/components/_internal/navigator-host.d.ts.map +1 -0
  4. package/dist/cjs/components/_internal/navigator-host.js +3 -0
  5. package/dist/cjs/components/_internal/navigator-host.js.map +7 -0
  6. package/dist/cjs/components/_internal/page-scope.d.ts +48 -0
  7. package/dist/cjs/components/_internal/page-scope.d.ts.map +1 -0
  8. package/dist/cjs/components/_internal/page-scope.js +3 -0
  9. package/dist/cjs/components/_internal/page-scope.js.map +7 -0
  10. package/dist/cjs/components/_internal/portal-theme.d.ts +2 -1
  11. package/dist/cjs/components/_internal/portal-theme.d.ts.map +1 -1
  12. package/dist/cjs/components/_internal/portal-theme.js +1 -1
  13. package/dist/cjs/components/_internal/portal-theme.js.map +4 -4
  14. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  15. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  16. package/dist/cjs/components/_internal/shell-bottom.js.map +4 -4
  17. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  18. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  19. package/dist/cjs/components/_internal/shell-inspector.js.map +4 -4
  20. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  21. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  22. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  23. package/dist/cjs/components/alert-dialog.js +1 -1
  24. package/dist/cjs/components/alert-dialog.js.map +4 -4
  25. package/dist/cjs/components/button.js +1 -1
  26. package/dist/cjs/components/button.js.map +4 -4
  27. package/dist/cjs/components/chatbar.js +1 -1
  28. package/dist/cjs/components/chatbar.js.map +4 -4
  29. package/dist/cjs/components/chip.js +1 -1
  30. package/dist/cjs/components/chip.js.map +4 -4
  31. package/dist/cjs/components/combobox.js +1 -1
  32. package/dist/cjs/components/combobox.js.map +4 -4
  33. package/dist/cjs/components/context-menu.js +1 -1
  34. package/dist/cjs/components/context-menu.js.map +4 -4
  35. package/dist/cjs/components/dialog.d.ts.map +1 -1
  36. package/dist/cjs/components/dialog.js +1 -1
  37. package/dist/cjs/components/dialog.js.map +4 -4
  38. package/dist/cjs/components/dropdown-menu.js +1 -1
  39. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  40. package/dist/cjs/components/index.d.ts +2 -0
  41. package/dist/cjs/components/index.d.ts.map +1 -1
  42. package/dist/cjs/components/index.js +2 -2
  43. package/dist/cjs/components/index.js.map +4 -4
  44. package/dist/cjs/components/message-scroller.js +1 -1
  45. package/dist/cjs/components/message-scroller.js.map +4 -4
  46. package/dist/cjs/components/navigator.d.ts +103 -0
  47. package/dist/cjs/components/navigator.d.ts.map +1 -0
  48. package/dist/cjs/components/navigator.js +3 -0
  49. package/dist/cjs/components/navigator.js.map +7 -0
  50. package/dist/cjs/components/notice.js +1 -1
  51. package/dist/cjs/components/notice.js.map +4 -4
  52. package/dist/cjs/components/page.d.ts +31 -0
  53. package/dist/cjs/components/page.d.ts.map +1 -0
  54. package/dist/cjs/components/page.js +3 -0
  55. package/dist/cjs/components/page.js.map +7 -0
  56. package/dist/cjs/components/popover.d.ts.map +1 -1
  57. package/dist/cjs/components/popover.js +1 -1
  58. package/dist/cjs/components/popover.js.map +4 -4
  59. package/dist/cjs/components/select.js +1 -1
  60. package/dist/cjs/components/select.js.map +4 -4
  61. package/dist/cjs/components/sheet.d.ts.map +1 -1
  62. package/dist/cjs/components/sheet.js +1 -1
  63. package/dist/cjs/components/sheet.js.map +4 -4
  64. package/dist/cjs/components/shell.d.ts.map +1 -1
  65. package/dist/cjs/components/shell.js +1 -1
  66. package/dist/cjs/components/shell.js.map +4 -4
  67. package/dist/cjs/components/sidebar.js +1 -1
  68. package/dist/cjs/components/sidebar.js.map +4 -4
  69. package/dist/cjs/components/toggle.js +1 -1
  70. package/dist/cjs/components/toggle.js.map +4 -4
  71. package/dist/cjs/components/toolbar.d.ts +5 -1
  72. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  73. package/dist/cjs/components/toolbar.js +1 -1
  74. package/dist/cjs/components/toolbar.js.map +4 -4
  75. package/dist/cjs/components/tooltip.js +1 -1
  76. package/dist/cjs/components/tooltip.js.map +4 -4
  77. package/dist/cjs/index.js +5 -5
  78. package/dist/cjs/index.js.map +4 -4
  79. package/dist/esm/{chunk-HBO7W7SS.js → chunk-26O4RBOJ.js} +2 -2
  80. package/dist/esm/{chunk-FYTLUDL3.js → chunk-3M5ZM67R.js} +2 -2
  81. package/dist/esm/chunk-4B3S2DM7.js +3 -0
  82. package/dist/esm/chunk-4B3S2DM7.js.map +7 -0
  83. package/dist/esm/chunk-4KBKS3ZE.js +3 -0
  84. package/dist/esm/chunk-4KBKS3ZE.js.map +7 -0
  85. package/dist/esm/{chunk-2FYUM6TA.js → chunk-4ZHBNYXM.js} +2 -2
  86. package/dist/esm/{chunk-TSS4K2U5.js → chunk-5VYQDA5S.js} +2 -2
  87. package/dist/esm/chunk-65URNXF2.js +3 -0
  88. package/dist/esm/chunk-65URNXF2.js.map +7 -0
  89. package/dist/esm/chunk-6SGJWML7.js +3 -0
  90. package/dist/esm/chunk-6SGJWML7.js.map +7 -0
  91. package/dist/esm/{chunk-WAXRIARV.js → chunk-6WHKGVWY.js} +2 -2
  92. package/dist/esm/{chunk-7V6M3MIR.js → chunk-7YXHLU4C.js} +2 -2
  93. package/dist/esm/chunk-AKMRPGNP.js +3 -0
  94. package/dist/esm/chunk-AKMRPGNP.js.map +7 -0
  95. package/dist/esm/{chunk-ENQV6SEA.js → chunk-AKSAKP35.js} +2 -2
  96. package/dist/esm/{chunk-C67MM24U.js → chunk-B7STVZPU.js} +2 -2
  97. package/dist/esm/{chunk-2E57H3NH.js → chunk-BQOFHLDP.js} +2 -2
  98. package/dist/esm/{chunk-324VC67W.js → chunk-COLJWVN7.js} +2 -2
  99. package/dist/esm/{chunk-K3GDM26A.js → chunk-D42VCLKH.js} +2 -2
  100. package/dist/esm/{chunk-MGWGD6KI.js → chunk-DFQIIYLD.js} +2 -2
  101. package/dist/esm/{chunk-NWXODCTD.js → chunk-EERKYRYI.js} +2 -2
  102. package/dist/esm/{chunk-4MNRLB57.js → chunk-FICBVI4M.js} +2 -2
  103. package/dist/esm/chunk-HGF4CKRY.js +3 -0
  104. package/dist/esm/chunk-HGF4CKRY.js.map +7 -0
  105. package/dist/esm/{chunk-JD4KR6VZ.js → chunk-HVMRB3AH.js} +2 -2
  106. package/dist/esm/{chunk-HLIOHDEX.js → chunk-IFHBMTFX.js} +2 -2
  107. package/dist/esm/{chunk-J54GYD7A.js → chunk-JFJV4HL3.js} +2 -2
  108. package/dist/esm/{chunk-KJZSXLIX.js → chunk-JQMWNI62.js} +2 -2
  109. package/dist/esm/chunk-K35JUIUT.js +3 -0
  110. package/dist/esm/chunk-K35JUIUT.js.map +7 -0
  111. package/dist/esm/{chunk-67UEMB4K.js → chunk-KBSH6CBD.js} +2 -2
  112. package/dist/esm/{chunk-SUQJ7DD4.js → chunk-L7PRLW6A.js} +2 -2
  113. package/dist/esm/{chunk-D2C2A2ZK.js → chunk-LFAUMDU5.js} +2 -2
  114. package/dist/esm/{chunk-LABMK6Q7.js → chunk-LG5DPQ46.js} +2 -2
  115. package/dist/esm/{chunk-MJROOEPE.js → chunk-NFSW36RG.js} +2 -2
  116. package/dist/esm/{chunk-6YWHNLSC.js → chunk-NJ7RQYLX.js} +2 -2
  117. package/dist/esm/{chunk-WD66RYF6.js → chunk-NYIYRILR.js} +2 -2
  118. package/dist/esm/{chunk-JP36JSNP.js → chunk-OBSZOD5M.js} +2 -2
  119. package/dist/esm/{chunk-DP7MPGR7.js → chunk-OMPLFDS6.js} +2 -2
  120. package/dist/esm/{chunk-H2J25HXP.js → chunk-OPYTQ34H.js} +2 -2
  121. package/dist/esm/{chunk-REORAMUH.js → chunk-QBONJMSE.js} +2 -2
  122. package/dist/esm/chunk-QDAM2I6O.js +3 -0
  123. package/dist/esm/chunk-QDAM2I6O.js.map +7 -0
  124. package/dist/esm/chunk-RSG4XWHU.js +2 -0
  125. package/dist/esm/{chunk-2ZKEQS76.js → chunk-SGKLJDA3.js} +2 -2
  126. package/dist/esm/{chunk-676Y7ZUT.js → chunk-TMINGBSQ.js} +2 -2
  127. package/dist/esm/{chunk-2S7HPQVX.js → chunk-TRJAVWCK.js} +2 -2
  128. package/dist/esm/chunk-TUZ665BA.js +3 -0
  129. package/dist/esm/chunk-TUZ665BA.js.map +7 -0
  130. package/dist/esm/{chunk-JKQN6QCP.js → chunk-VBF3XALY.js} +2 -2
  131. package/dist/esm/chunk-VWRPVM5K.js +3 -0
  132. package/dist/esm/chunk-VWRPVM5K.js.map +7 -0
  133. package/dist/esm/{chunk-B6OFKABP.js → chunk-VYF6KKYM.js} +2 -2
  134. package/dist/esm/chunk-W35ZKQMQ.js +3 -0
  135. package/dist/esm/chunk-W35ZKQMQ.js.map +7 -0
  136. package/dist/esm/{chunk-EPGIYTFK.js → chunk-X7DGYRAY.js} +2 -2
  137. package/dist/esm/{chunk-X7JHZ3HA.js → chunk-XF6Z5NKE.js} +2 -2
  138. package/dist/esm/{chunk-K5V53KTJ.js → chunk-Y44DYJA5.js} +2 -2
  139. package/dist/esm/{chunk-MMDZBPSX.js → chunk-YOTTLPJ3.js} +2 -2
  140. package/dist/esm/chunk-ZBSGH74F.js +3 -0
  141. package/dist/esm/chunk-ZBSGH74F.js.map +7 -0
  142. package/dist/esm/chunk-ZHXEEOGI.js +3 -0
  143. package/dist/esm/chunk-ZHXEEOGI.js.map +7 -0
  144. package/dist/esm/{chunk-FMVOB367.js → chunk-ZLGOZKB3.js} +2 -2
  145. package/dist/esm/components/_internal/base-button.js +1 -1
  146. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  147. package/dist/esm/components/_internal/menu-context.js +1 -1
  148. package/dist/esm/components/_internal/navigator-host.d.ts +21 -0
  149. package/dist/esm/components/_internal/navigator-host.d.ts.map +1 -0
  150. package/dist/esm/components/_internal/navigator-host.js +3 -0
  151. package/dist/esm/components/_internal/navigator-host.js.map +7 -0
  152. package/dist/esm/components/_internal/page-scope.d.ts +48 -0
  153. package/dist/esm/components/_internal/page-scope.d.ts.map +1 -0
  154. package/dist/esm/components/_internal/page-scope.js +3 -0
  155. package/dist/esm/components/_internal/page-scope.js.map +7 -0
  156. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  157. package/dist/esm/components/_internal/portal-theme.d.ts +2 -1
  158. package/dist/esm/components/_internal/portal-theme.d.ts.map +1 -1
  159. package/dist/esm/components/_internal/portal-theme.js +1 -1
  160. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  161. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  162. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  163. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  164. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  165. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  166. package/dist/esm/components/accordion.js +1 -1
  167. package/dist/esm/components/alert-dialog.js +1 -1
  168. package/dist/esm/components/avatar.js +1 -1
  169. package/dist/esm/components/blockquote.js +1 -1
  170. package/dist/esm/components/button.js +1 -1
  171. package/dist/esm/components/card.js +1 -1
  172. package/dist/esm/components/chatbar.js +1 -1
  173. package/dist/esm/components/checkbox-group.js +1 -1
  174. package/dist/esm/components/checkbox.js +1 -1
  175. package/dist/esm/components/chip.js +1 -1
  176. package/dist/esm/components/code.js +1 -1
  177. package/dist/esm/components/combobox.js +1 -1
  178. package/dist/esm/components/context-menu.js +1 -1
  179. package/dist/esm/components/dialog.d.ts.map +1 -1
  180. package/dist/esm/components/dialog.js +1 -1
  181. package/dist/esm/components/dropdown-menu.js +1 -1
  182. package/dist/esm/components/heading.js +1 -1
  183. package/dist/esm/components/image.js +1 -1
  184. package/dist/esm/components/index.d.ts +2 -0
  185. package/dist/esm/components/index.d.ts.map +1 -1
  186. package/dist/esm/components/index.js +1 -1
  187. package/dist/esm/components/link.js +1 -1
  188. package/dist/esm/components/message-scroller.js +1 -1
  189. package/dist/esm/components/navbar.js +1 -1
  190. package/dist/esm/components/navigator.d.ts +103 -0
  191. package/dist/esm/components/navigator.d.ts.map +1 -0
  192. package/dist/esm/components/navigator.js +3 -0
  193. package/dist/esm/components/navigator.js.map +7 -0
  194. package/dist/esm/components/notice.js +1 -1
  195. package/dist/esm/components/page.d.ts +31 -0
  196. package/dist/esm/components/page.d.ts.map +1 -0
  197. package/dist/esm/components/page.js +3 -0
  198. package/dist/esm/components/page.js.map +7 -0
  199. package/dist/esm/components/popover.d.ts.map +1 -1
  200. package/dist/esm/components/popover.js +1 -1
  201. package/dist/esm/components/progress.js +1 -1
  202. package/dist/esm/components/radio-group.js +1 -1
  203. package/dist/esm/components/radio.js +1 -1
  204. package/dist/esm/components/schemas/index.js +1 -1
  205. package/dist/esm/components/scroll-area.js +1 -1
  206. package/dist/esm/components/segmented-control.js +1 -1
  207. package/dist/esm/components/select.js +1 -1
  208. package/dist/esm/components/separator.js +1 -1
  209. package/dist/esm/components/sheet.d.ts.map +1 -1
  210. package/dist/esm/components/sheet.js +1 -1
  211. package/dist/esm/components/shell.d.ts.map +1 -1
  212. package/dist/esm/components/shell.js +1 -1
  213. package/dist/esm/components/sidebar.js +1 -1
  214. package/dist/esm/components/slider.js +1 -1
  215. package/dist/esm/components/switch.js +1 -1
  216. package/dist/esm/components/table.js +1 -1
  217. package/dist/esm/components/tabs.js +1 -1
  218. package/dist/esm/components/text-area.js +1 -1
  219. package/dist/esm/components/text-field.js +1 -1
  220. package/dist/esm/components/text.js +1 -1
  221. package/dist/esm/components/toggle.js +1 -1
  222. package/dist/esm/components/toolbar.d.ts +5 -1
  223. package/dist/esm/components/toolbar.d.ts.map +1 -1
  224. package/dist/esm/components/toolbar.js +1 -1
  225. package/dist/esm/components/tooltip.js +1 -1
  226. package/dist/esm/components/virtual-menu.js +1 -1
  227. package/dist/esm/hooks/index.js +1 -1
  228. package/dist/esm/index.js +1 -1
  229. package/package.json +1 -1
  230. package/src/components/_internal/navigator-host.ts +17 -0
  231. package/src/components/_internal/page-scope.tsx +119 -0
  232. package/src/components/_internal/portal-theme.tsx +6 -2
  233. package/src/components/_internal/shell-bottom.tsx +4 -1
  234. package/src/components/_internal/shell-inspector.tsx +4 -1
  235. package/src/components/_internal/shell-sidebar.tsx +4 -1
  236. package/src/components/dialog.tsx +8 -0
  237. package/src/components/index.css +2 -0
  238. package/src/components/index.tsx +15 -0
  239. package/src/components/navigator.css +85 -0
  240. package/src/components/navigator.tsx +415 -0
  241. package/src/components/page.css +38 -0
  242. package/src/components/page.tsx +93 -0
  243. package/src/components/popover.tsx +18 -1
  244. package/src/components/sheet.tsx +8 -0
  245. package/src/components/shell.tsx +8 -2
  246. package/src/components/toolbar.css +11 -0
  247. package/src/components/toolbar.tsx +17 -5
  248. package/styles.css +127 -0
  249. package/dist/esm/chunk-4LV37PHM.js +0 -3
  250. package/dist/esm/chunk-4LV37PHM.js.map +0 -7
  251. package/dist/esm/chunk-5BX2YZV6.js +0 -3
  252. package/dist/esm/chunk-5BX2YZV6.js.map +0 -7
  253. package/dist/esm/chunk-AQKSO3SW.js +0 -3
  254. package/dist/esm/chunk-AQKSO3SW.js.map +0 -7
  255. package/dist/esm/chunk-AS2STDGA.js +0 -3
  256. package/dist/esm/chunk-AS2STDGA.js.map +0 -7
  257. package/dist/esm/chunk-HR2VHGJ5.js +0 -3
  258. package/dist/esm/chunk-HR2VHGJ5.js.map +0 -7
  259. package/dist/esm/chunk-JTMLFTNZ.js +0 -3
  260. package/dist/esm/chunk-JTMLFTNZ.js.map +0 -7
  261. package/dist/esm/chunk-MJKVVGGV.js +0 -3
  262. package/dist/esm/chunk-MJKVVGGV.js.map +0 -7
  263. package/dist/esm/chunk-NG54K6FL.js +0 -2
  264. package/dist/esm/chunk-QRV32INS.js +0 -3
  265. package/dist/esm/chunk-QRV32INS.js.map +0 -7
  266. package/dist/esm/chunk-YMUERC2J.js +0 -3
  267. package/dist/esm/chunk-YMUERC2J.js.map +0 -7
  268. /package/dist/esm/{chunk-HBO7W7SS.js.map → chunk-26O4RBOJ.js.map} +0 -0
  269. /package/dist/esm/{chunk-FYTLUDL3.js.map → chunk-3M5ZM67R.js.map} +0 -0
  270. /package/dist/esm/{chunk-2FYUM6TA.js.map → chunk-4ZHBNYXM.js.map} +0 -0
  271. /package/dist/esm/{chunk-TSS4K2U5.js.map → chunk-5VYQDA5S.js.map} +0 -0
  272. /package/dist/esm/{chunk-WAXRIARV.js.map → chunk-6WHKGVWY.js.map} +0 -0
  273. /package/dist/esm/{chunk-7V6M3MIR.js.map → chunk-7YXHLU4C.js.map} +0 -0
  274. /package/dist/esm/{chunk-ENQV6SEA.js.map → chunk-AKSAKP35.js.map} +0 -0
  275. /package/dist/esm/{chunk-C67MM24U.js.map → chunk-B7STVZPU.js.map} +0 -0
  276. /package/dist/esm/{chunk-2E57H3NH.js.map → chunk-BQOFHLDP.js.map} +0 -0
  277. /package/dist/esm/{chunk-324VC67W.js.map → chunk-COLJWVN7.js.map} +0 -0
  278. /package/dist/esm/{chunk-K3GDM26A.js.map → chunk-D42VCLKH.js.map} +0 -0
  279. /package/dist/esm/{chunk-MGWGD6KI.js.map → chunk-DFQIIYLD.js.map} +0 -0
  280. /package/dist/esm/{chunk-NWXODCTD.js.map → chunk-EERKYRYI.js.map} +0 -0
  281. /package/dist/esm/{chunk-4MNRLB57.js.map → chunk-FICBVI4M.js.map} +0 -0
  282. /package/dist/esm/{chunk-JD4KR6VZ.js.map → chunk-HVMRB3AH.js.map} +0 -0
  283. /package/dist/esm/{chunk-HLIOHDEX.js.map → chunk-IFHBMTFX.js.map} +0 -0
  284. /package/dist/esm/{chunk-J54GYD7A.js.map → chunk-JFJV4HL3.js.map} +0 -0
  285. /package/dist/esm/{chunk-KJZSXLIX.js.map → chunk-JQMWNI62.js.map} +0 -0
  286. /package/dist/esm/{chunk-67UEMB4K.js.map → chunk-KBSH6CBD.js.map} +0 -0
  287. /package/dist/esm/{chunk-SUQJ7DD4.js.map → chunk-L7PRLW6A.js.map} +0 -0
  288. /package/dist/esm/{chunk-D2C2A2ZK.js.map → chunk-LFAUMDU5.js.map} +0 -0
  289. /package/dist/esm/{chunk-LABMK6Q7.js.map → chunk-LG5DPQ46.js.map} +0 -0
  290. /package/dist/esm/{chunk-MJROOEPE.js.map → chunk-NFSW36RG.js.map} +0 -0
  291. /package/dist/esm/{chunk-6YWHNLSC.js.map → chunk-NJ7RQYLX.js.map} +0 -0
  292. /package/dist/esm/{chunk-WD66RYF6.js.map → chunk-NYIYRILR.js.map} +0 -0
  293. /package/dist/esm/{chunk-JP36JSNP.js.map → chunk-OBSZOD5M.js.map} +0 -0
  294. /package/dist/esm/{chunk-DP7MPGR7.js.map → chunk-OMPLFDS6.js.map} +0 -0
  295. /package/dist/esm/{chunk-H2J25HXP.js.map → chunk-OPYTQ34H.js.map} +0 -0
  296. /package/dist/esm/{chunk-REORAMUH.js.map → chunk-QBONJMSE.js.map} +0 -0
  297. /package/dist/esm/{chunk-NG54K6FL.js.map → chunk-RSG4XWHU.js.map} +0 -0
  298. /package/dist/esm/{chunk-2ZKEQS76.js.map → chunk-SGKLJDA3.js.map} +0 -0
  299. /package/dist/esm/{chunk-676Y7ZUT.js.map → chunk-TMINGBSQ.js.map} +0 -0
  300. /package/dist/esm/{chunk-2S7HPQVX.js.map → chunk-TRJAVWCK.js.map} +0 -0
  301. /package/dist/esm/{chunk-JKQN6QCP.js.map → chunk-VBF3XALY.js.map} +0 -0
  302. /package/dist/esm/{chunk-B6OFKABP.js.map → chunk-VYF6KKYM.js.map} +0 -0
  303. /package/dist/esm/{chunk-EPGIYTFK.js.map → chunk-X7DGYRAY.js.map} +0 -0
  304. /package/dist/esm/{chunk-X7JHZ3HA.js.map → chunk-XF6Z5NKE.js.map} +0 -0
  305. /package/dist/esm/{chunk-K5V53KTJ.js.map → chunk-Y44DYJA5.js.map} +0 -0
  306. /package/dist/esm/{chunk-MMDZBPSX.js.map → chunk-YOTTLPJ3.js.map} +0 -0
  307. /package/dist/esm/{chunk-FMVOB367.js.map → chunk-ZLGOZKB3.js.map} +0 -0
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as p,b as s,c as m,d as c}from"./chunk-UJ7JERJ5.js";import{c as r}from"./chunk-OKQAVYW4.js";import{c as t}from"./chunk-HBWBPBSA.js";import{a as e}from"./chunk-CLJ6SEGP.js";import*as o from"react";import D from"classnames";import{Slot as y}from"radix-ui";var q=["1","2","3","4","5","6","7","8","9"],f={...e,size:{type:"enum",className:"kui-r-size",values:q,responsive:!0},...c,...t,...p,...m,...s};var d=o.forwardRef((i,l)=>{let{asChild:a,className:u,color:n,...P}=r(i,f),k=a?y.Root:"blockquote";return o.createElement(k,{"data-accent-color":n,...P,ref:l,className:D("kui-Text","kui-Blockquote",u)})});d.displayName="Blockquote";export{d as a};
3
- //# sourceMappingURL=chunk-HLIOHDEX.js.map
2
+ import{a as p,b as s,c as m,d as c}from"./chunk-UJ7JERJ5.js";import{c as t}from"./chunk-HBWBPBSA.js";import{c as r}from"./chunk-OKQAVYW4.js";import{a as e}from"./chunk-CLJ6SEGP.js";import*as o from"react";import D from"classnames";import{Slot as y}from"radix-ui";var q=["1","2","3","4","5","6","7","8","9"],f={...e,size:{type:"enum",className:"kui-r-size",values:q,responsive:!0},...c,...t,...p,...m,...s};var d=o.forwardRef((i,l)=>{let{asChild:a,className:u,color:n,...P}=r(i,f),k=a?y.Root:"blockquote";return o.createElement(k,{"data-accent-color":n,...P,ref:l,className:D("kui-Text","kui-Blockquote",u)})});d.displayName="Blockquote";export{d as a};
3
+ //# sourceMappingURL=chunk-IFHBMTFX.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{b as a}from"./chunk-6YWHNLSC.js";import{c as s}from"./chunk-OKQAVYW4.js";import{e as r}from"./chunk-HBWBPBSA.js";import{b as i}from"./chunk-XU74PNM2.js";import{a as p}from"./chunk-CLJ6SEGP.js";import*as o from"react";import g from"classnames";import{Slot as x}from"radix-ui";var R=["1","2","3","4"],N=["raised","solid","soft","surface","outline","ghost"],n={...p,size:{type:"enum",className:"kui-r-size",values:R,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:N,default:"raised"},...r,...i};var T=o.forwardRef((l,m)=>{let{asChild:f,className:c,children:d,color:h,radius:u,tooltip:e,tooltipSide:P="top",tooltipAlign:C="center",tooltipDelayDuration:y,tooltipDisableHoverableContent:D,...b}=s(l,n),v=f?x.Root:"span",t=o.createElement(v,{"data-accent-color":h,"data-radius":u,tabIndex:e?0:void 0,...b,ref:m,className:g("kui-reset","kui-Chip",c)},d);return e?o.createElement(a,{content:e,side:P,align:C,delayDuration:y,disableHoverableContent:D},t):t});T.displayName="Chip";export{T as a};
3
- //# sourceMappingURL=chunk-J54GYD7A.js.map
2
+ import{b as a}from"./chunk-NJ7RQYLX.js";import{e as r}from"./chunk-HBWBPBSA.js";import{b as i}from"./chunk-XU74PNM2.js";import{c as s}from"./chunk-OKQAVYW4.js";import{a as p}from"./chunk-CLJ6SEGP.js";import*as o from"react";import g from"classnames";import{Slot as x}from"radix-ui";var R=["1","2","3","4"],N=["raised","solid","soft","surface","outline","ghost"],n={...p,size:{type:"enum",className:"kui-r-size",values:R,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:N,default:"raised"},...r,...i};var T=o.forwardRef((l,m)=>{let{asChild:f,className:c,children:d,color:h,radius:u,tooltip:e,tooltipSide:P="top",tooltipAlign:C="center",tooltipDelayDuration:y,tooltipDisableHoverableContent:D,...b}=s(l,n),v=f?x.Root:"span",t=o.createElement(v,{"data-accent-color":h,"data-radius":u,tabIndex:e?0:void 0,...b,ref:m,className:g("kui-reset","kui-Chip",c)},d);return e?o.createElement(a,{content:e,side:P,align:C,delayDuration:y,disableHoverableContent:D},t):t});T.displayName="Chip";export{T as a};
3
+ //# sourceMappingURL=chunk-JFJV4HL3.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as c}from"./chunk-Y2DBXOLT.js";import{b as p}from"./chunk-6YWHNLSC.js";import{a as u}from"./chunk-2ZKEQS76.js";import*as t from"react";import O from"classnames";var C={loud:"solid",medium:"raised",quiet:"ghost"};function T(e){if(e["aria-label"]||e["aria-labelledby"])return;console.error("Button: an `iconOnly` button must have an accessible name. Pass `aria-label`, or `aria-labelledby` referencing a label element.")}var w=t.forwardRef(({className:e,style:a,tooltip:r,tooltipSide:d="top",tooltipAlign:m="center",tooltipDelayDuration:B,tooltipDisableHoverableContent:b,iconOnly:s=!1,emphasis:n,variant:i,...o},y)=>{let{tooltipId:f,hasTooltip:P,accessibilityProps:R}=c(r);s&&(T(o),o.fullWidth=!1);let h=n!==void 0?C[n]:i,g=o["aria-describedby"],v=R["aria-describedby"],E=[g,v].filter(Boolean).join(" ")||void 0,l=t.createElement(u,{...o,variant:h,"aria-describedby":E,ref:y,"data-icon-only":s||void 0,className:O("kui-Button",e),style:a});return P?t.createElement(p,{content:r,side:d,align:m,delayDuration:B,disableHoverableContent:b,id:f},l):l});w.displayName="Button";export{w as a};
3
- //# sourceMappingURL=chunk-KJZSXLIX.js.map
2
+ import{a as c}from"./chunk-Y2DBXOLT.js";import{b as p}from"./chunk-NJ7RQYLX.js";import{a as u}from"./chunk-SGKLJDA3.js";import*as t from"react";import O from"classnames";var C={loud:"solid",medium:"raised",quiet:"ghost"};function T(e){if(e["aria-label"]||e["aria-labelledby"])return;console.error("Button: an `iconOnly` button must have an accessible name. Pass `aria-label`, or `aria-labelledby` referencing a label element.")}var w=t.forwardRef(({className:e,style:a,tooltip:r,tooltipSide:d="top",tooltipAlign:m="center",tooltipDelayDuration:B,tooltipDisableHoverableContent:b,iconOnly:s=!1,emphasis:n,variant:i,...o},y)=>{let{tooltipId:f,hasTooltip:P,accessibilityProps:R}=c(r);s&&(T(o),o.fullWidth=!1);let h=n!==void 0?C[n]:i,g=o["aria-describedby"],v=R["aria-describedby"],E=[g,v].filter(Boolean).join(" ")||void 0,l=t.createElement(u,{...o,variant:h,"aria-describedby":E,ref:y,"data-icon-only":s||void 0,className:O("kui-Button",e),style:a});return P?t.createElement(p,{content:r,side:d,align:m,delayDuration:B,disableHoverableContent:b,id:f},l):l});w.displayName="Button";export{w as a};
3
+ //# sourceMappingURL=chunk-JQMWNI62.js.map
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as g}from"./chunk-FATCGZZE.js";import{a as C}from"./chunk-7VJF6EXN.js";import{a}from"./chunk-TGRHRMQI.js";import{a as f}from"./chunk-OBSZOD5M.js";import{a as d}from"./chunk-FICBVI4M.js";import{a as h}from"./chunk-HGF4CKRY.js";import{c}from"./chunk-5ON3XLRD.js";import{a as P}from"./chunk-4KBKS3ZE.js";import{c as m}from"./chunk-OKQAVYW4.js";import{a as W}from"./chunk-VQPANPMI.js";var j={};W(j,{Close:()=>E,Content:()=>y,Description:()=>T,Root:()=>S,Title:()=>D,Trigger:()=>R});import*as e from"react";import k from"classnames";import{Dialog as i}from"radix-ui";var S=t=>e.createElement(i.Root,{...t,modal:!0});S.displayName="Sheet.Root";var R=e.forwardRef(({children:t,...o},r)=>e.createElement(i.Trigger,{...o,ref:r,asChild:!0},a(t)));R.displayName="Sheet.Trigger";var{align:Y,...w}=g,u=w,B={Title:({children:t})=>e.createElement(i.Title,{asChild:!0},t),Close:({children:t})=>e.createElement(i.Close,{asChild:!0},t)},v=e.createContext(null),y=e.forwardRef((t,o)=>{let{side:r="start",forceMount:s,container:n,className:N,...x}=t,b=c(x,u.size),H={left:"start",right:"end",start:"start",end:"end",top:"top",bottom:"bottom"}[r],{className:O,...l}=m(b,u),z=e.useRef(0),M=e.useCallback(p=>{typeof o=="function"?o(p):o&&(o.current=p)},[o]);return C(),e.createElement(i.Portal,{container:n,forceMount:s},e.createElement(v.Provider,{value:z},e.createElement(h,{asChild:!0},e.createElement(i.Overlay,{className:"kui-BaseDialogOverlay kui-DialogOverlay kui-SheetOverlay"},e.createElement(i.Content,{...l,ref:M,className:k("kui-BaseDialogContent","kui-SheetContent",N,O),"data-side":H,"aria-modal":"true",children:e.createElement(P.Provider,{value:B},l.children)})))))});y.displayName="Sheet.Content";var D=e.forwardRef(({size:t="4",weight:o="medium",...r},s)=>{let n=e.useContext(v);return e.useLayoutEffect(()=>{if(n)return n.current+=1,()=>{n.current-=1}},[n]),e.createElement(i.Title,{asChild:!0},e.createElement(f,{ref:s,size:t,weight:o,...r}))});D.displayName="Sheet.Title";var T=e.forwardRef(({size:t="2",emphasis:o="medium",...r},s)=>e.createElement(i.Description,{asChild:!0},e.createElement(d,{ref:s,size:t,emphasis:o,...r})));T.displayName="Sheet.Description";var E=e.forwardRef(({children:t,...o},r)=>e.createElement(i.Close,{...o,ref:r,asChild:!0},a(t)));E.displayName="Sheet.Close";export{S as a,R as b,y as c,D as d,T as e,E as f,j as g};
3
+ //# sourceMappingURL=chunk-K35JUIUT.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/sheet.tsx"],
4
+ "sourcesContent": ["'use client';\n\n/**\n * Sheet\n *\n * A side-placed overlay built on top of Radix Dialog. It inherits accessibility,\n * focus management, overlay behavior, and sizing scales from the base dialog, and\n * adds side placement and slide motion suited for navigation panels and drawers.\n *\n * Structure mirrors Dialog:\n * - Root, Trigger, Content, Title, Description, Close\n *\n * Notes\n * - Side: set with `side` on `Sheet.Content`. Aliases: `left` \u2192 `start`, `right` \u2192 `end`.\n * - Sizing: reuses Dialog content prop defs (width/min/max/height/size). Size follows the\n * Theme size; start/end sheets cap at the size's overlay width unless maxWidth is set.\n * - A11y: provide an accessible name via `Sheet.Title` or `aria-label` on `Sheet.Content`.\n * Radix owns the focus trap, initial focus and the return of focus to the trigger.\n *\n * Example\n * <Sheet.Root>\n * <Sheet.Trigger>\n * <Button>Open</Button>\n * </Sheet.Trigger>\n * <Sheet.Content side=\"end\" width={{ initial: '280px', md: '360px' }}>\n * <Sheet.Title>Details</Sheet.Title>\n * ...\n * <Sheet.Close>\n * <Button>Close</Button>\n * </Sheet.Close>\n * </Sheet.Content>\n * </Sheet.Root>\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport { PortalTheme } from './_internal/portal-theme.js';\nimport { NavigatorHostContext, type NavigatorHost } from './_internal/navigator-host.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { HeadingProps } from './heading.js';\n\n/**\n * Supported sides for the Sheet.\n * Aliases are normalized RTL-aware: `left` \u2192 `start`, `right` \u2192 `end`.\n */\ntype SheetSide = 'start' | 'end' | 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Sheet is a side-placed overlay built on the Dialog primitive.\n * It reuses Dialog's accessibility, focus, overlay, and size scales, while adding side placement and slide motion.\n */\n\n// Root\n/**\n * Props for `Sheet.Root` (Radix Dialog root with `modal` forced on).\n */\ninterface SheetRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst Root: React.FC<SheetRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nRoot.displayName = 'Sheet.Root';\n\n// Trigger\n/** Element type for `Sheet.Trigger`. */\ntype SheetTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\n/** Props for `Sheet.Trigger` (expects a single element child). */\ninterface SheetTriggerProps extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst Trigger = React.forwardRef<SheetTriggerElement, SheetTriggerProps>(({ children, ...props }, ref) => (\n <DialogPrimitive.Trigger {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n));\nTrigger.displayName = 'Sheet.Trigger';\n\n// Content\n/** Element type for `Sheet.Content`. */\n// Reuse dialog content prop defs for size/width/height tokens.\n// Built once at module scope: `extractProps` memoises on the identity of the\n// prop def objects it is handed, so rebuilding these per render would recompile\n// them every time a sheet renders.\nconst { align: _alignPropDef, ...dialogPropDefsForSheet } = dialogContentPropDefs;\nconst sheetPropDefs = dialogPropDefsForSheet;\n\n/** What a Navigator screen in this panel uses: its title names the sheet, its close closes it. */\nconst sheetNavigatorHost: NavigatorHost = {\n Title: ({ children }) => <DialogPrimitive.Title asChild>{children}</DialogPrimitive.Title>,\n Close: ({ children }) => <DialogPrimitive.Close asChild>{children}</DialogPrimitive.Close>,\n};\n\n/** Counts the Sheet.Title elements mounted inside a Sheet.Content, for the dev-only name check. */\nconst SheetTitleCountContext = React.createContext<React.MutableRefObject<number> | null>(null);\n\ntype SheetContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface SheetContentProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,\n Omit<DialogContentOwnProps, 'align'> {\n /** Side where the Sheet should appear. `left`/`right` alias to `start`/`end`. */\n side?: SheetSide;\n /** Optional DOM container to portal into. Defaults to `document.body`. */\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\n\n/**\n * Renders the Sheet panel. Normalizes left/right to logical start/end and\n * forwards dialog sizing props. Provide an accessible name via `Sheet.Title`\n * or `aria-label`.\n */\nconst Content = React.forwardRef<SheetContentElement, SheetContentProps>((allProps, forwardedRef) => {\n const { side = 'start', forceMount, container, className, ...ownProps } = allProps;\n const restProps = useThemeSizeProps(ownProps, sheetPropDefs.size);\n const normalizedSideMap: Record<SheetSide, 'start' | 'end' | 'top' | 'bottom'> = {\n left: 'start',\n right: 'end',\n start: 'start',\n end: 'end',\n top: 'top',\n bottom: 'bottom',\n };\n const normalizedSide = normalizedSideMap[side];\n // Size/width/height class names come from the dialog defs \u2014 see `sheetPropDefs`.\n const { className: extractedClassName, ...contentProps } = extractProps(restProps, sheetPropDefs);\n\n // Dev-only a11y guard: the panel needs a name. A Sheet.Title anywhere inside counts it\n // in a layout effect, which runs before this ref is attached, so nesting doesn't matter.\n const titleCountRef = React.useRef(0);\n const combinedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n if (process.env.NODE_ENV !== 'production' && node) {\n const hasName = titleCountRef.current > 0 || Boolean(node.getAttribute('aria-label')) || Boolean(node.getAttribute('aria-labelledby'));\n if (!hasName) {\n console.warn('Sheet.Content: Missing accessible name. Include Sheet.Title inside it or provide aria-label.');\n }\n }\n },\n [forwardedRef],\n );\n\n useBodyPointerEventsCleanup();\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <SheetTitleCountContext.Provider value={titleCountRef}>\n <PortalTheme asChild>\n <DialogPrimitive.Overlay className=\"kui-BaseDialogOverlay kui-DialogOverlay kui-SheetOverlay\">\n <DialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames('kui-BaseDialogContent', 'kui-SheetContent', className, extractedClassName)}\n data-side={normalizedSide}\n aria-modal=\"true\"\n children={<NavigatorHostContext.Provider value={sheetNavigatorHost}>{contentProps.children}</NavigatorHostContext.Provider>}\n />\n </DialogPrimitive.Overlay>\n </PortalTheme>\n </SheetTitleCountContext.Provider>\n </DialogPrimitive.Portal>\n );\n});\nContent.displayName = 'Sheet.Content';\n\n// Title - renders as Heading with sensible defaults\ntype SheetTitleElement = React.ElementRef<typeof Heading>;\ntype SheetTitleProps = HeadingProps;\n/** Accessible title for the Sheet. Renders as Heading with sensible defaults. */\nconst Title = React.forwardRef<SheetTitleElement, SheetTitleProps>(({ size = '4', weight = 'medium', ...props }, ref) => {\n const titleCountRef = React.useContext(SheetTitleCountContext);\n React.useLayoutEffect(() => {\n if (!titleCountRef) return;\n titleCountRef.current += 1;\n return () => {\n titleCountRef.current -= 1;\n };\n }, [titleCountRef]);\n return (\n <DialogPrimitive.Title asChild>\n <Heading ref={ref} size={size} weight={weight} {...props} />\n </DialogPrimitive.Title>\n );\n});\nTitle.displayName = 'Sheet.Title';\n\n// Description - renders as Text with sensible defaults\ntype SheetDescriptionElement = React.ElementRef<typeof Text>;\ntype SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof Text>;\n/** Supplementary description text for Sheet content. Renders as Text with sensible defaults. */\nconst Description = React.forwardRef<SheetDescriptionElement, SheetDescriptionProps>(({ size = '2', emphasis = 'medium', ...rest }, ref) => (\n <DialogPrimitive.Description asChild>\n <Text ref={ref} size={size} emphasis={emphasis} {...rest} />\n </DialogPrimitive.Description>\n));\nDescription.displayName = 'Sheet.Description';\n\ntype SheetCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface SheetCloseProps extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\n/** Close button for the Sheet. Expects a single element child rendered via `asChild`. */\nconst Close = React.forwardRef<SheetCloseElement, SheetCloseProps>(({ children, ...props }, ref) => (\n <DialogPrimitive.Close {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n));\nClose.displayName = 'Sheet.Close';\n\nexport { Root, Trigger, Content, Title, Description, Close };\nexport type {\n SheetRootProps as RootProps,\n SheetTriggerProps as TriggerProps,\n SheetContentProps as ContentProps,\n SheetTitleProps as TitleProps,\n SheetDescriptionProps as DescriptionProps,\n SheetCloseProps as CloseProps,\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["sheet_exports", "__export", "Close", "Content", "Description", "Root", "Title", "Trigger", "React", "classNames", "DialogPrimitive", "Root", "props", "DialogPrimitive", "Trigger", "children", "ref", "requireReactElement", "_alignPropDef", "dialogPropDefsForSheet", "dialogContentPropDefs", "sheetPropDefs", "sheetNavigatorHost", "SheetTitleCountContext", "Content", "allProps", "forwardedRef", "side", "forceMount", "container", "className", "ownProps", "restProps", "useThemeSizeProps", "normalizedSide", "extractedClassName", "contentProps", "extractProps", "titleCountRef", "combinedRef", "node", "useBodyPointerEventsCleanup", "PortalTheme", "classNames", "NavigatorHostContext", "Title", "size", "weight", "Heading", "Description", "emphasis", "rest", "Text", "Close"]
7
+ }
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as I,b as y,c as z,d as _,e as K}from"./chunk-2ACVWLFA.js";import{a as te}from"./chunk-TGRHRMQI.js";import{b as H,c as U,d as k,e as Y,f as q}from"./chunk-GKDGNPBD.js";import{a as M,b as v,c as J,d as Q,e as E,f as Z,g as ee,h as N}from"./chunk-5JYSYTHA.js";import{c as B,e as oe,g,h as O,i as ne}from"./chunk-ISCZ57VL.js";import{b as h,c as $,d as T,e as x}from"./chunk-EB4AG3OL.js";import{a as L}from"./chunk-MGWGD6KI.js";import{c as S}from"./chunk-OKQAVYW4.js";import{a as G}from"./chunk-AQKSO3SW.js";import{b as re}from"./chunk-FVRVBB6O.js";import{c as X}from"./chunk-5ON3XLRD.js";import{a as he}from"./chunk-VQPANPMI.js";var Oe={};he(Oe,{CheckboxItem:()=>Me,Content:()=>de,Group:()=>me,Item:()=>ce,Label:()=>le,RadioGroup:()=>De,RadioItem:()=>we,Root:()=>ue,Separator:()=>be,Sub:()=>fe,SubContent:()=>Re,SubTrigger:()=>Pe,Trigger:()=>se,TriggerIcon:()=>Ie});import*as e from"react";import l from"classnames";import{DropdownMenu as s,Slot as W}from"radix-ui";import{useCallbackRef as ie}from"radix-ui/internal";var ae=e.createContext(!1),ue=o=>{let{open:n,defaultOpen:t=!1,onOpenChange:u}=o,[i,r]=e.useState(t),a=n??i,c=ie(u),p=e.useCallback(D=>{r(D),c(D)},[c]),m=e.useCallback(()=>p(!1),[p]);return e.createElement(ae.Provider,{value:a},e.createElement(oe,{value:m},e.createElement(s.Root,{...o,open:a,onOpenChange:p})))};ue.displayName="DropdownMenu.Root";var se=e.forwardRef(({children:o,...n},t)=>e.createElement(s.Trigger,{...n,ref:t,asChild:!0},te(o)));se.displayName="DropdownMenu.Trigger";var V=e.createContext({}),Te={ltr:"ArrowLeft",rtl:"ArrowRight"},xe={ltr:"ArrowRight",rtl:"ArrowLeft"};function Ee(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function pe(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var de=e.forwardRef((o,n)=>{let t=X(o,I.size),u=re(),{size:i=I.size.default}=t,{className:r,children:a,color:c,container:p,forceMount:m,submenuBehavior:D,virtualized:d=!1,onEscapeKeyDown:P,onKeyDown:R,...f}=S(t,I),b=c||u.accentColor,A=h(D,"cascade"),F=A==="drill-down",ge=e.useContext(ae),C=J(),ye=w=>{P?.(w),!(w.defaultPrevented||!F||C.getDepth()===0)&&(w.preventDefault(),C.pop("keyboard"))},Se=w=>{R?.(w),!(w.defaultPrevented||!F||C.getDepth()===0)&&(Ee(w.target)||w.key===Te[pe(w.currentTarget)]&&(w.preventDefault(),C.pop("keyboard")))},ke=e.useMemo(()=>({size:i,color:b}),[i,b]),j=e.createElement(B,{size:i},e.createElement(V.Provider,{value:ke},e.createElement(Q,{store:C,behavior:A,open:ge},a)));return e.createElement(s.Portal,{container:p,forceMount:m},e.createElement(G,{asChild:!0},e.createElement(s.Content,{"data-accent-color":b,align:"start",sideOffset:4,collisionPadding:10,...f,onEscapeKeyDown:ye,onKeyDown:Se,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",r)},d?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},j):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},j)))))});de.displayName="DropdownMenu.Content";var le=e.forwardRef(({className:o,id:n,...t},u)=>{let i=e.useContext(M),r=ne(n,i);return i?e.createElement(s.Label,{...t,id:r,asChild:!1,ref:u,className:l("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null});le.displayName="DropdownMenu.Label";var ce=e.forwardRef((o,n)=>{let{className:t,children:u,color:i=z.color.default,shortcut:r,...a}=o;return e.useContext(M)?e.createElement(s.Item,{"data-accent-color":i,"aria-keyshortcuts":r?T(r):void 0,...a,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",t)},e.createElement(W.Slottable,null,u),r&&e.createElement(x,{shortcut:r,className:"kui-DropdownMenuShortcut"})):null});ce.displayName="DropdownMenu.Item";var me=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(g,{value:r},e.createElement(s.Group,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}))});me.displayName="DropdownMenu.Group";var De=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(g,{value:r},e.createElement(s.RadioGroup,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}))});De.displayName="DropdownMenu.RadioGroup";var we=e.forwardRef((o,n)=>{let{children:t,className:u,color:i=K.color.default,...r}=o;return e.useContext(M)?e.createElement(s.RadioItem,{...r,asChild:!1,ref:n,"data-accent-color":i,className:l("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",u)},e.createElement(W.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(q,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});we.displayName="DropdownMenu.RadioItem";var Me=e.forwardRef((o,n)=>{let{children:t,className:u,shortcut:i,color:r=_.color.default,...a}=o;return e.useContext(M)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":i?T(i):void 0,...a,asChild:!1,ref:n,"data-accent-color":r,className:l("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",u)},e.createElement(W.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(H,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(x,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});Me.displayName="DropdownMenu.CheckboxItem";var fe=({label:o="Back",open:n,defaultOpen:t,onOpenChange:u,children:i})=>{let r=v(),a=e.useId(),c=e.useMemo(()=>({id:a,label:o}),[a,o]),p=E(r,a)!=="closed",m=ie(u),D=n!==void 0;e.useLayoutEffect(()=>{if(!(!r||!D))return r.setController(a,m),()=>r.setController(a,null)},[r,D,a,m]),e.useLayoutEffect(()=>{!r||n===void 0||(n&&!r.isOpen(a)?r.open(a,r.takePendingModality(a)):!n&&r.isOpen(a)&&r.close(a,r.takePendingModality(a)))},[r,n,a]);let d=e.useRef(n===void 0&&!!t);e.useLayoutEffect(()=>{r&&d.current?r.open(a):d.current=!1},[]);let P=e.useRef(p);return e.useEffect(()=>{if(!(!r||P.current===p)){if(P.current=p,p&&d.current){d.current=!1;return}n!==void 0&&n===p||m(p)}},[r,p,m,n]),e.createElement(ee.Provider,{value:c},e.createElement(s.Sub,{open:n,defaultOpen:t,onOpenChange:r?void 0:u},i))};fe.displayName="DropdownMenu.Sub";var Pe=e.forwardRef((o,n)=>{let{className:t,children:u,onKeyDown:i,...r}=o,a=v(),c=N(),p=e.useContext(M);if(a&&c){if(!p)return null;let m=d=>{d.preventDefault(),a.push(c.id)},D=d=>{i?.(d),!(d.defaultPrevented||r.disabled)&&d.key===xe[pe(d.currentTarget)]&&(d.preventDefault(),a.push(c.id,"keyboard"))};return e.createElement(s.Item,{...r,"data-drill-down-trigger":c.id,"data-drill-down-name":r.textValue,onSelect:m,onKeyDown:D,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...r,onKeyDown:i,asChild:!1,ref:n,className:l("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});Pe.displayName="DropdownMenu.SubTrigger";var be=e.forwardRef(({className:o,...n},t)=>e.useContext(M)?e.createElement(s.Separator,{...n,asChild:!1,ref:t,className:l("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);be.displayName="DropdownMenu.Separator";function Ne({label:o,name:n}){let t=v(),u=e.useCallback(a=>{a.preventDefault(),t?.pop()},[t]),i=typeof o=="string"?o:n,r=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(s.Item,{"aria-label":r,textValue:i||"Back",onSelect:u,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(Y,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Be(o){let{loop:n,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:i,onInteractOutside:r,sideOffset:a,alignOffset:c,avoidCollisions:p,collisionBoundary:m,collisionPadding:D,arrowPadding:d,sticky:P,hideWhenDetached:R,updatePositionStrategy:f,...b}=o;return b}var Re=e.forwardRef((o,n)=>{let t=v(),u=N();return t&&u?e.createElement(ve,{...o,ref:n,store:t,sub:u}):e.createElement(Ce,{...o,ref:n})});Re.displayName="DropdownMenu.SubContent";var Ce=e.forwardRef((o,n)=>{let t=e.useContext(V),u=o.size??t.size,i=o.color??t.color,{className:r,children:a,container:c,forceMount:p,color:m,virtualized:D=!1,...d}=S({...o,size:u},y),P=h(u,y.size.default),R=e.useMemo(()=>({size:u,color:i}),[u,i]),f=e.createElement(B,{size:u},e.createElement(V.Provider,{value:R},a));return e.createElement(s.Portal,{container:c,forceMount:p},e.createElement(G,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":i,alignOffset:$(P),sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",r)},D?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},f):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},f)))))});Ce.displayName="DropdownMenu.CascadeSubContent";var ve=e.forwardRef(({store:o,sub:n,...t},u)=>{let i=E(o,n.id),r=Z(o,n.id);if(i==="closed")return null;let{className:a,children:c,container:p,forceMount:m,virtualized:D,size:d,color:P,...R}=Be(t),f=i==="top",b=r?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":b||void 0,...R,ref:u,"data-drill-down-panel":n.id,"data-drill-down-active":f?!0:void 0,className:l("kui-DropdownMenuDrillDownPanel",a)},f&&e.createElement(e.Fragment,null,e.createElement(Ne,{label:n.label,name:b}),e.createElement(s.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(g,{value:null},e.createElement(M.Provider,{value:f},c)))});ve.displayName="DropdownMenu.DrillDownPanel";var Ie=e.forwardRef(({className:o,...n},t)=>e.createElement(U,{...n,ref:t,className:l("kui-DropdownMenuTriggerIcon",o)}));Ie.displayName="DropdownMenu.TriggerIcon";export{ue as a,se as b,de as c,le as d,ce as e,me as f,De as g,we as h,Me as i,fe as j,Pe as k,be as l,Re as m,Ie as n,Oe as o};
3
- //# sourceMappingURL=chunk-67UEMB4K.js.map
2
+ import{a as I,b as y,c as z,d as _,e as K}from"./chunk-2ACVWLFA.js";import{a as te}from"./chunk-TGRHRMQI.js";import{a as G}from"./chunk-HGF4CKRY.js";import{b as re}from"./chunk-FVRVBB6O.js";import{b as H,c as U,d as k,e as Y,f as q}from"./chunk-GKDGNPBD.js";import{c as X}from"./chunk-5ON3XLRD.js";import{a as M,b as v,c as J,d as Q,e as E,f as Z,g as ee,h as N}from"./chunk-5JYSYTHA.js";import{c as B,e as oe,g,h as O,i as ne}from"./chunk-ISCZ57VL.js";import{b as h,c as $,d as T,e as x}from"./chunk-EB4AG3OL.js";import{a as L}from"./chunk-DFQIIYLD.js";import{c as S}from"./chunk-OKQAVYW4.js";import{a as he}from"./chunk-VQPANPMI.js";var Oe={};he(Oe,{CheckboxItem:()=>Me,Content:()=>de,Group:()=>me,Item:()=>ce,Label:()=>le,RadioGroup:()=>De,RadioItem:()=>we,Root:()=>ue,Separator:()=>be,Sub:()=>fe,SubContent:()=>Re,SubTrigger:()=>Pe,Trigger:()=>se,TriggerIcon:()=>Ie});import*as e from"react";import l from"classnames";import{DropdownMenu as s,Slot as W}from"radix-ui";import{useCallbackRef as ie}from"radix-ui/internal";var ae=e.createContext(!1),ue=o=>{let{open:n,defaultOpen:t=!1,onOpenChange:u}=o,[i,r]=e.useState(t),a=n??i,c=ie(u),p=e.useCallback(D=>{r(D),c(D)},[c]),m=e.useCallback(()=>p(!1),[p]);return e.createElement(ae.Provider,{value:a},e.createElement(oe,{value:m},e.createElement(s.Root,{...o,open:a,onOpenChange:p})))};ue.displayName="DropdownMenu.Root";var se=e.forwardRef(({children:o,...n},t)=>e.createElement(s.Trigger,{...n,ref:t,asChild:!0},te(o)));se.displayName="DropdownMenu.Trigger";var V=e.createContext({}),Te={ltr:"ArrowLeft",rtl:"ArrowRight"},xe={ltr:"ArrowRight",rtl:"ArrowLeft"};function Ee(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function pe(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var de=e.forwardRef((o,n)=>{let t=X(o,I.size),u=re(),{size:i=I.size.default}=t,{className:r,children:a,color:c,container:p,forceMount:m,submenuBehavior:D,virtualized:d=!1,onEscapeKeyDown:P,onKeyDown:R,...f}=S(t,I),b=c||u.accentColor,A=h(D,"cascade"),F=A==="drill-down",ge=e.useContext(ae),C=J(),ye=w=>{P?.(w),!(w.defaultPrevented||!F||C.getDepth()===0)&&(w.preventDefault(),C.pop("keyboard"))},Se=w=>{R?.(w),!(w.defaultPrevented||!F||C.getDepth()===0)&&(Ee(w.target)||w.key===Te[pe(w.currentTarget)]&&(w.preventDefault(),C.pop("keyboard")))},ke=e.useMemo(()=>({size:i,color:b}),[i,b]),j=e.createElement(B,{size:i},e.createElement(V.Provider,{value:ke},e.createElement(Q,{store:C,behavior:A,open:ge},a)));return e.createElement(s.Portal,{container:p,forceMount:m},e.createElement(G,{asChild:!0},e.createElement(s.Content,{"data-accent-color":b,align:"start",sideOffset:4,collisionPadding:10,...f,onEscapeKeyDown:ye,onKeyDown:Se,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",r)},d?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},j):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},j)))))});de.displayName="DropdownMenu.Content";var le=e.forwardRef(({className:o,id:n,...t},u)=>{let i=e.useContext(M),r=ne(n,i);return i?e.createElement(s.Label,{...t,id:r,asChild:!1,ref:u,className:l("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null});le.displayName="DropdownMenu.Label";var ce=e.forwardRef((o,n)=>{let{className:t,children:u,color:i=z.color.default,shortcut:r,...a}=o;return e.useContext(M)?e.createElement(s.Item,{"data-accent-color":i,"aria-keyshortcuts":r?T(r):void 0,...a,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",t)},e.createElement(W.Slottable,null,u),r&&e.createElement(x,{shortcut:r,className:"kui-DropdownMenuShortcut"})):null});ce.displayName="DropdownMenu.Item";var me=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(g,{value:r},e.createElement(s.Group,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}))});me.displayName="DropdownMenu.Group";var De=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(g,{value:r},e.createElement(s.RadioGroup,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}))});De.displayName="DropdownMenu.RadioGroup";var we=e.forwardRef((o,n)=>{let{children:t,className:u,color:i=K.color.default,...r}=o;return e.useContext(M)?e.createElement(s.RadioItem,{...r,asChild:!1,ref:n,"data-accent-color":i,className:l("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",u)},e.createElement(W.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(q,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});we.displayName="DropdownMenu.RadioItem";var Me=e.forwardRef((o,n)=>{let{children:t,className:u,shortcut:i,color:r=_.color.default,...a}=o;return e.useContext(M)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":i?T(i):void 0,...a,asChild:!1,ref:n,"data-accent-color":r,className:l("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",u)},e.createElement(W.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(H,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(x,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});Me.displayName="DropdownMenu.CheckboxItem";var fe=({label:o="Back",open:n,defaultOpen:t,onOpenChange:u,children:i})=>{let r=v(),a=e.useId(),c=e.useMemo(()=>({id:a,label:o}),[a,o]),p=E(r,a)!=="closed",m=ie(u),D=n!==void 0;e.useLayoutEffect(()=>{if(!(!r||!D))return r.setController(a,m),()=>r.setController(a,null)},[r,D,a,m]),e.useLayoutEffect(()=>{!r||n===void 0||(n&&!r.isOpen(a)?r.open(a,r.takePendingModality(a)):!n&&r.isOpen(a)&&r.close(a,r.takePendingModality(a)))},[r,n,a]);let d=e.useRef(n===void 0&&!!t);e.useLayoutEffect(()=>{r&&d.current?r.open(a):d.current=!1},[]);let P=e.useRef(p);return e.useEffect(()=>{if(!(!r||P.current===p)){if(P.current=p,p&&d.current){d.current=!1;return}n!==void 0&&n===p||m(p)}},[r,p,m,n]),e.createElement(ee.Provider,{value:c},e.createElement(s.Sub,{open:n,defaultOpen:t,onOpenChange:r?void 0:u},i))};fe.displayName="DropdownMenu.Sub";var Pe=e.forwardRef((o,n)=>{let{className:t,children:u,onKeyDown:i,...r}=o,a=v(),c=N(),p=e.useContext(M);if(a&&c){if(!p)return null;let m=d=>{d.preventDefault(),a.push(c.id)},D=d=>{i?.(d),!(d.defaultPrevented||r.disabled)&&d.key===xe[pe(d.currentTarget)]&&(d.preventDefault(),a.push(c.id,"keyboard"))};return e.createElement(s.Item,{...r,"data-drill-down-trigger":c.id,"data-drill-down-name":r.textValue,onSelect:m,onKeyDown:D,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...r,onKeyDown:i,asChild:!1,ref:n,className:l("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(k,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});Pe.displayName="DropdownMenu.SubTrigger";var be=e.forwardRef(({className:o,...n},t)=>e.useContext(M)?e.createElement(s.Separator,{...n,asChild:!1,ref:t,className:l("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);be.displayName="DropdownMenu.Separator";function Ne({label:o,name:n}){let t=v(),u=e.useCallback(a=>{a.preventDefault(),t?.pop()},[t]),i=typeof o=="string"?o:n,r=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(s.Item,{"aria-label":r,textValue:i||"Back",onSelect:u,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(Y,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Be(o){let{loop:n,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:i,onInteractOutside:r,sideOffset:a,alignOffset:c,avoidCollisions:p,collisionBoundary:m,collisionPadding:D,arrowPadding:d,sticky:P,hideWhenDetached:R,updatePositionStrategy:f,...b}=o;return b}var Re=e.forwardRef((o,n)=>{let t=v(),u=N();return t&&u?e.createElement(ve,{...o,ref:n,store:t,sub:u}):e.createElement(Ce,{...o,ref:n})});Re.displayName="DropdownMenu.SubContent";var Ce=e.forwardRef((o,n)=>{let t=e.useContext(V),u=o.size??t.size,i=o.color??t.color,{className:r,children:a,container:c,forceMount:p,color:m,virtualized:D=!1,...d}=S({...o,size:u},y),P=h(u,y.size.default),R=e.useMemo(()=>({size:u,color:i}),[u,i]),f=e.createElement(B,{size:u},e.createElement(V.Provider,{value:R},a));return e.createElement(s.Portal,{container:c,forceMount:p},e.createElement(G,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":i,alignOffset:$(P),sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",r)},D?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},f):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},f)))))});Ce.displayName="DropdownMenu.CascadeSubContent";var ve=e.forwardRef(({store:o,sub:n,...t},u)=>{let i=E(o,n.id),r=Z(o,n.id);if(i==="closed")return null;let{className:a,children:c,container:p,forceMount:m,virtualized:D,size:d,color:P,...R}=Be(t),f=i==="top",b=r?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":b||void 0,...R,ref:u,"data-drill-down-panel":n.id,"data-drill-down-active":f?!0:void 0,className:l("kui-DropdownMenuDrillDownPanel",a)},f&&e.createElement(e.Fragment,null,e.createElement(Ne,{label:n.label,name:b}),e.createElement(s.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(g,{value:null},e.createElement(M.Provider,{value:f},c)))});ve.displayName="DropdownMenu.DrillDownPanel";var Ie=e.forwardRef(({className:o,...n},t)=>e.createElement(U,{...n,ref:t,className:l("kui-DropdownMenuTriggerIcon",o)}));Ie.displayName="DropdownMenu.TriggerIcon";export{ue as a,se as b,de as c,le as d,ce as e,me as f,De as g,we as h,Me as i,fe as j,Pe as k,be as l,Re as m,Ie as n,Oe as o};
3
+ //# sourceMappingURL=chunk-KBSH6CBD.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as b}from"./chunk-YOSLXJI5.js";import{c as g}from"./chunk-OKQAVYW4.js";import{c as y}from"./chunk-5ON3XLRD.js";import{a as m,e as v}from"./chunk-HBWBPBSA.js";import{b as P}from"./chunk-XU74PNM2.js";import{a as f}from"./chunk-CLJ6SEGP.js";import*as e from"react";import A from"classnames";import{Avatar as u}from"radix-ui";var q=["1","2","3","4","5","6","7","8","9"],B=["raised","solid","soft","surface","outline"],U=["cover","contain","fill","scale-down","none"],c={...f,size:{type:"enum",className:"kui-r-size",values:q,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:B,default:"raised"},...v,...P,fallback:{type:"ReactNode",required:!0},status:{type:"enum",values:m,default:void 0},statusLabel:{type:"string",default:void 0},badge:{type:"ReactNode",default:void 0},fit:{type:"enum",className:"kui-r-fit",values:U,default:"cover",responsive:!0}};var _=e.forwardRef((a,s)=>{let o=y(a,c.size),{asChild:t,children:r,className:n,style:i,color:h,radius:N,status:d,statusLabel:l,badge:p,fallback:k,onLoadingStatusChange:D,src:C,alt:I,srcSet:z,sizes:S,crossOrigin:w,referrerPolicy:E,loading:L,decoding:x,onLoad:F,onError:O,...j}=g(o,c),T={fallback:k,onLoadingStatusChange:D,src:C,alt:I,srcSet:z,sizes:S,crossOrigin:w,referrerPolicy:E,loading:L,decoding:x,onLoad:F,onError:O},V=t&&r!=null&&e.isValidElement(r)&&(r.props.disabled===!0||r.props["data-disabled"]===!0),W=p!==void 0||d!==void 0,G=p!==void 0?e.createElement("span",{className:"kui-AvatarBadge"},p):d!==void 0?e.createElement("span",{className:"kui-AvatarStatus","data-accent-color":d,role:l?"img":void 0,"aria-label":l||void 0,"aria-hidden":l?void 0:!0}):null;return e.createElement(u.Root,{...j,ref:s,"data-accent-color":h,"data-radius":N,"data-disabled":V||void 0,"data-has-indicator":W||void 0,className:A("kui-reset","kui-AvatarRoot",n),style:i,asChild:t},b({asChild:t,children:r},e.createElement(e.Fragment,null,e.createElement(R,{...T}),G)))});_.displayName="Avatar";var R=e.memo(({fallback:a,onLoadingStatusChange:s,...o})=>{let[t,r]=e.useState("idle"),n=e.useCallback(i=>{s?.(i),r(i)},[s]);return e.createElement(e.Fragment,null,t==="idle"||t==="loading"?e.createElement("span",{className:"kui-AvatarFallback"}):null,t==="error"?e.createElement(u.Fallback,{className:A("kui-AvatarFallback",{"kui-one-letter":typeof a=="string"&&a.length===1,"kui-two-letters":typeof a=="string"&&a.length===2}),...o.alt?{role:"img","aria-label":o.alt}:{"aria-hidden":!0}},a):null,e.createElement(u.Image,{className:"kui-AvatarImage",...o,onLoadingStatusChange:n}))});R.displayName="AvatarImpl";export{_ as a};
3
- //# sourceMappingURL=chunk-SUQJ7DD4.js.map
2
+ import{c as y}from"./chunk-5ON3XLRD.js";import{a as m,e as v}from"./chunk-HBWBPBSA.js";import{a as b}from"./chunk-YOSLXJI5.js";import{b as P}from"./chunk-XU74PNM2.js";import{c as g}from"./chunk-OKQAVYW4.js";import{a as f}from"./chunk-CLJ6SEGP.js";import*as e from"react";import A from"classnames";import{Avatar as u}from"radix-ui";var q=["1","2","3","4","5","6","7","8","9"],B=["raised","solid","soft","surface","outline"],U=["cover","contain","fill","scale-down","none"],c={...f,size:{type:"enum",className:"kui-r-size",values:q,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:B,default:"raised"},...v,...P,fallback:{type:"ReactNode",required:!0},status:{type:"enum",values:m,default:void 0},statusLabel:{type:"string",default:void 0},badge:{type:"ReactNode",default:void 0},fit:{type:"enum",className:"kui-r-fit",values:U,default:"cover",responsive:!0}};var _=e.forwardRef((a,s)=>{let o=y(a,c.size),{asChild:t,children:r,className:n,style:i,color:h,radius:N,status:d,statusLabel:l,badge:p,fallback:k,onLoadingStatusChange:D,src:C,alt:I,srcSet:z,sizes:S,crossOrigin:w,referrerPolicy:E,loading:L,decoding:x,onLoad:F,onError:O,...j}=g(o,c),T={fallback:k,onLoadingStatusChange:D,src:C,alt:I,srcSet:z,sizes:S,crossOrigin:w,referrerPolicy:E,loading:L,decoding:x,onLoad:F,onError:O},V=t&&r!=null&&e.isValidElement(r)&&(r.props.disabled===!0||r.props["data-disabled"]===!0),W=p!==void 0||d!==void 0,G=p!==void 0?e.createElement("span",{className:"kui-AvatarBadge"},p):d!==void 0?e.createElement("span",{className:"kui-AvatarStatus","data-accent-color":d,role:l?"img":void 0,"aria-label":l||void 0,"aria-hidden":l?void 0:!0}):null;return e.createElement(u.Root,{...j,ref:s,"data-accent-color":h,"data-radius":N,"data-disabled":V||void 0,"data-has-indicator":W||void 0,className:A("kui-reset","kui-AvatarRoot",n),style:i,asChild:t},b({asChild:t,children:r},e.createElement(e.Fragment,null,e.createElement(R,{...T}),G)))});_.displayName="Avatar";var R=e.memo(({fallback:a,onLoadingStatusChange:s,...o})=>{let[t,r]=e.useState("idle"),n=e.useCallback(i=>{s?.(i),r(i)},[s]);return e.createElement(e.Fragment,null,t==="idle"||t==="loading"?e.createElement("span",{className:"kui-AvatarFallback"}):null,t==="error"?e.createElement(u.Fallback,{className:A("kui-AvatarFallback",{"kui-one-letter":typeof a=="string"&&a.length===1,"kui-two-letters":typeof a=="string"&&a.length===2}),...o.alt?{role:"img","aria-label":o.alt}:{"aria-hidden":!0}},a):null,e.createElement(u.Image,{className:"kui-AvatarImage",...o,onLoadingStatusChange:n}))});R.displayName="AvatarImpl";export{_ as a};
3
+ //# sourceMappingURL=chunk-L7PRLW6A.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{b as a,c as i}from"./chunk-OKQAVYW4.js";import{c as t}from"./chunk-HBWBPBSA.js";import{b as p}from"./chunk-XU74PNM2.js";import*as r from"react";import R from"classnames";import{Progress as n}from"radix-ui";var v=["surface","soft","outline"],m={variant:{type:"enum",className:"kui-variant",values:v,default:"surface"},...t,...p,duration:{type:"string"}};var D=r.forwardRef((f,P)=>{let{className:u,style:c,color:d,radius:g,duration:l,...e}=i(f,m),{value:o,max:y}=e,s=o!=null&&o>=0&&o<=(y??100);return r.createElement(n.Root,{"data-accent-color":d,"data-radius":g,ref:P,className:R("kui-ProgressRoot",u),style:a({"--progress-duration":s?void 0:l,"--progress-value":s?o:void 0,"--progress-max":e.max??void 0},c),...e,asChild:!1},r.createElement(n.Indicator,{className:"kui-ProgressIndicator"}))});D.displayName="Progress";export{D as a};
3
- //# sourceMappingURL=chunk-D2C2A2ZK.js.map
2
+ import{c as t}from"./chunk-HBWBPBSA.js";import{b as p}from"./chunk-XU74PNM2.js";import{b as a,c as i}from"./chunk-OKQAVYW4.js";import*as r from"react";import R from"classnames";import{Progress as n}from"radix-ui";var v=["surface","soft","outline"],m={variant:{type:"enum",className:"kui-variant",values:v,default:"surface"},...t,...p,duration:{type:"string"}};var D=r.forwardRef((f,P)=>{let{className:u,style:c,color:d,radius:g,duration:l,...e}=i(f,m),{value:o,max:y}=e,s=o!=null&&o>=0&&o<=(y??100);return r.createElement(n.Root,{"data-accent-color":d,"data-radius":g,ref:P,className:R("kui-ProgressRoot",u),style:a({"--progress-duration":s?void 0:l,"--progress-value":s?o:void 0,"--progress-max":e.max??void 0},c),...e,asChild:!1},r.createElement(n.Indicator,{className:"kui-ProgressIndicator"}))});D.displayName="Progress";export{D as a};
3
+ //# sourceMappingURL=chunk-LFAUMDU5.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as nt}from"./chunk-7V6M3MIR.js";import{a as Be}from"./chunk-WUCBFB25.js";import{a as we}from"./chunk-KJZSXLIX.js";import{a as Ae}from"./chunk-4MNRLB57.js";import{a as De}from"./chunk-BUXK5VGR.js";import{a as ze}from"./chunk-KVVRFWGQ.js";import{g as Qe,h as Ze,j as et}from"./chunk-GKDGNPBD.js";import{b as U}from"./chunk-5KMEUZWN.js";import{a as at}from"./chunk-MGWGD6KI.js";import{b as tt}from"./chunk-5ON3XLRD.js";import{a as Ht}from"./chunk-VQPANPMI.js";var Wt={};Ht(Wt,{AttachTrigger:()=>Rt,Attachment:()=>$e,AttachmentsRow:()=>pt,InlineEnd:()=>mt,InlineStart:()=>dt,Item:()=>bt,Root:()=>lt,Row:()=>Ct,RowEnd:()=>vt,RowStart:()=>gt,Send:()=>yt,Textarea:()=>ut});import*as e from"react";import E from"classnames";import{useComposedRefs as st,useLayoutEffect as je}from"radix-ui/internal";import{useDropzone as Ft}from"react-dropzone";function ot(t,r){let{placeholder:a}=t;if(!a){r();return}t.placeholder="";try{r()}finally{t.placeholder=a}}var It={values:["1","2","3"]},it=e.createContext(null),We=e.createContext(""),I=()=>{let t=e.useContext(it);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},me=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(r=>r.trim()).filter(Boolean):[],zt=(t,r)=>{if(r.length===0)return!0;let a=t.type.toLowerCase(),i=t.name.toLowerCase();for(let c of r){let l=c.toLowerCase();if(l.includes("/")){let[u,d]=l.split("/"),[g,y]=a.split("/");if(u==="*"||u===g&&(d==="*"||d===y))return!0}else if(l.startsWith(".")&&i.endsWith(l))return!0}return!1},Dt=/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i,ct=(t,r)=>(r||"").toLowerCase().startsWith("image/")||Dt.test(t),Ve=t=>t.trim().length>0,rt=(t,r)=>`${t} ${r}${t===1?"":"s"}`,Bt=0,jt=()=>`chatbar-attachment-${Date.now()}-${++Bt}`,lt=e.forwardRef((t,r)=>{let{className:a,style:i,children:c,value:l,defaultValue:u="",onValueChange:d,open:g,defaultOpen:y=!1,onOpenChange:R,expandOn:p="both",minLines:v=3,maxLines:x=6,sendMode:w="whenDirty",disabled:b,readOnly:S,onSubmit:D,size:O,variant:z,color:H,radius:F,width:Q,maxWidth:f,attachments:_,defaultAttachments:B,onAttachmentsChange:se,accept:A,multiple:L=!0,maxAttachments:Z,maxFileSize:G,paste:j=!0,pasteAccept:q,clearOnSubmit:V=!0,onAttachmentReject:N,dropzone:M=!0,apiRef:ke,onBlurCapture:pe,notices:he,context:fe,...Se}=t,W=tt(O,It),Ee=l!=null,[n,C]=e.useState(u),k=Ee?l:n,ee=g!=null,[X,te]=e.useState(y),ie=ee?g:X,Y="attachments"in t,[ce,be]=e.useState(()=>B??[]),le=e.useMemo(()=>Y?_??[]:ce,[Y,_,ce]),[Ke,xt]=e.useState({text:"",id:0}),ue=e.useCallback(o=>xt(s=>({text:o,id:s.id+1})),[]),Ue=e.useRef(null),Pt=st(r,Ue),Te=e.useRef(null),Le=e.useRef(null),de=e.useRef(!1),Re=e.useRef(!1),Ce=e.useRef(void 0),Ne=e.useRef(null),_e=me(A).join(","),Me=me(q).join(","),Oe=e.useMemo(()=>me(_e),[_e]),At=e.useMemo(()=>Me?me(Me):Oe,[Me,Oe]),Ge={value:k,attachments:le,accepts:Oe,pasteAccepts:At,multiple:L,maxAttachments:Z,maxFileSize:G,disabled:b,readOnly:S,expandOn:p,isValueControlled:Ee,isOpenControlled:ee,isAttachmentsControlled:Y,onValueChange:d,onOpenChange:R,onAttachmentsChange:se,onAttachmentReject:N,onSubmit:D},P=e.useRef(Ge);P.current=Ge;let He=e.useRef(null),$=e.useCallback(()=>He.current??P.current.attachments,[]),ae=e.useCallback(o=>{P.current.isOpenControlled||te(o),P.current.onOpenChange?.(o)},[]),ge=e.useCallback(o=>{P.current.isValueControlled||C(o),P.current.onValueChange?.(o)},[]),ne=e.useCallback(o=>{He.current=o,queueMicrotask(()=>{He.current=null}),P.current.isAttachmentsControlled||be(o),P.current.onAttachmentsChange?.(o)},[]),ve=e.useRef(new Set),oe=e.useCallback((o,s,m=P.current.multiple)=>{let h=P.current;if(h.disabled||h.readOnly||o.length===0)return 0;let K=$(),J=[],re=[],Mt=typeof h.maxAttachments=="number"?Math.max(h.maxAttachments-K.length,0):1/0,Ot=m?1/0:1;for(let T of o){if(J.length>=Mt||J.length>=Ot){re.push({file:T,reason:"count"});continue}if(typeof h.maxFileSize=="number"&&T.size>h.maxFileSize){re.push({file:T,reason:"size"});continue}if(!zt(T,s)){re.push({file:T,reason:"type"});continue}let Ie=ct(T.name,T.type)?URL.createObjectURL(T):void 0;Ie&&ve.current.add(Ie),J.push({id:jt(),name:T.name,size:T.size,type:T.type,file:T,url:Ie,status:"idle"})}let Pe=[];return J.length>0&&(ne(K.concat(J)),h.expandOn!=="none"&&ae(!0),Pe.push(`${rt(J.length,"file")} attached.`)),re.length>0&&(h.onAttachmentReject?.(re),Pe.push(`${rt(re.length,"file")} could not be attached.`)),Pe.length>0&&ue(Pe.join(" ")),J.length},[$,ne,ae,ue]),ye=e.useCallback(o=>oe(o,P.current.accepts),[oe]),qe=e.useCallback(o=>oe(o,P.current.pasteAccepts),[oe]),Xe=e.useCallback(o=>{let s=$(),m=s.find(h=>h.id===o);m&&(ne(s.filter(h=>h.id!==o)),ue(`Removed ${m.name}.`))},[$,ne,ue]),Ye=e.useCallback(o=>{let s=P.current;if(s.disabled||s.readOnly)return!1;let m=$();if(!Ve(s.value)&&m.length===0)return!1;let h={value:s.value,attachments:m};if(o&&s.onSubmit)for(let K of m)K.url&&ve.current.delete(K.url);return s.onSubmit?.(h),o&&(ge(""),ne([])),!0},[$,ge,ne]);e.useEffect(()=>{let o=ve.current;if(o.size===0)return;let s=new Set(le.map(m=>m.url));for(let m of Array.from(o))s.has(m)||(URL.revokeObjectURL(m),o.delete(m))},[le]),e.useEffect(()=>{let o=ve.current;return()=>{if(!P.current.isAttachmentsControlled){for(let s of Array.from(o))URL.revokeObjectURL(s);o.clear()}}},[]);let xe=e.useCallback(o=>{let s=P.current,m=Le.current;if(clearTimeout(Ce.current),Re.current=!1,!m||s.disabled||s.readOnly)return;let h=o?.accept!=null?me(o.accept):s.accepts,K=o?.multiple??s.multiple;Ne.current={patterns:h,multiple:K},m.accept=h.join(","),m.multiple=K,de.current=!0,m.click(),setTimeout(()=>{document.hasFocus()&&(de.current=!1)},1e3)},[]),Je=e.useCallback(()=>{Re.current=!0,clearTimeout(Ce.current),Ce.current=setTimeout(()=>{Re.current=!1},800)},[]);e.useEffect(()=>()=>clearTimeout(Ce.current),[]),e.useEffect(()=>{let o=Le.current,s=()=>{de.current=!1};return window.addEventListener("focus",s),o?.addEventListener("cancel",s),()=>{window.removeEventListener("focus",s),o?.removeEventListener("cancel",s)}},[]);let wt=e.useCallback(o=>{let s=o.currentTarget,m=Array.from(s.files??[]),h=Ne.current;oe(m,h?.patterns??P.current.accepts,h?.multiple),de.current=!1,Ne.current=null,s.value=""},[oe]),kt=e.useCallback(o=>{pe?.(o);let s=P.current,m=Ue.current;if(!m||s.expandOn==="none")return;let h=o.relatedTarget;h&&m.contains(h)||de.current||Re.current||!Ve(s.value)&&$().length===0&&ae(!1)},[pe,ae,$]),St=e.useCallback(o=>{ye(o)},[ye]),{getRootProps:Et,isDragActive:Tt}=Ft({onDrop:St,onDragEnter:()=>ue(""),noClick:!0,noKeyboard:!0,noPaste:!0,disabled:!M||b||S}),Fe=M&&Tt;e.useImperativeHandle(ke,()=>({focusTextarea:()=>Te.current?.focus({preventScroll:!0}),openFilePicker:()=>xe()}),[xe]);let Lt=e.useCallback(o=>{if(b||o.pointerType==="mouse"&&o.button!==0)return;let s=o.target;s instanceof Element&&s.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')||(o.preventDefault(),Te.current?.focus({preventScroll:!0}))},[b]),Nt=e.useMemo(()=>({open:ie,setOpen:ae,setValue:ge,size:W,expandOn:p,minLines:v,maxLines:x,sendMode:w,disabled:b,readOnly:S,paste:j,clearOnSubmit:V,multiple:L,textareaRef:Te,attachments:le,removeAttachment:Xe,submit:Ye,appendFiles:ye,appendFilesFromPaste:qe,openFilePicker:xe,beginFilePickerPress:Je}),[ie,ae,ge,W,p,v,x,w,b,S,j,V,L,le,Xe,Ye,ye,qe,xe,Je]);return e.createElement(it.Provider,{value:Nt},e.createElement(We.Provider,{value:k},e.createElement(e.Fragment,null,e.createElement("div",{...Se,ref:Pt,className:E("kui-ChatbarRoot",`kui-r-size-${W}`,a),style:{position:"relative",width:Q,maxWidth:f,...i},"data-state":ie?"open":"closed","data-disabled":b?"":void 0,"data-readonly":S?"":void 0,"data-drop-active":Fe?"":void 0,"data-accent-color":H,"data-radius":F,onBlurCapture:kt},e.createElement("input",{ref:Le,type:"file",tabIndex:-1,"aria-hidden":!0,style:{display:"none"},onChange:wt}),he?e.createElement("div",{className:"kui-ChatbarNotices"},e.createElement(nt.Provider,{value:W},he)):null,e.createElement("div",{...M?Et():{},style:{width:"100%",flex:"1 1 auto",minHeight:0},onPointerDown:Lt},e.createElement("div",{className:E("kui-ChatbarBox",`kui-variant-${z??"raised"}`),style:{position:"relative"},"data-accent-color":H,"data-radius":F},e.createElement("div",{className:"kui-ChatbarGrid"},c),Fe&&e.createElement("div",{className:"kui-ChatbarDropOverlay","aria-hidden":!0},e.createElement("div",{className:"kui-ChatbarDropContent"},e.createElement(Ae,{emphasis:"medium",size:W,weight:"medium"},"Drop files here to attach"))))),fe?e.createElement(Ae,{as:"div",size:W==="3"?"2":"1",emphasis:"medium",className:"kui-ChatbarContext"},fe):null,e.createElement(Be,{role:"status","aria-live":"polite"},Fe?"Drop files here to attach.":e.createElement("span",{key:Ke.id},Ke.text))))))});lt.displayName="Chatbar.Root";var ut=e.forwardRef((t,r)=>{let{className:a,style:i,asChild:c,onFocus:l,onChange:u,onPaste:d,onKeyDown:g,onCompositionStart:y,onCompositionEnd:R,submitOnEnter:p=!1,...v}=t,x=I(),w=e.useContext(We),{open:b,minLines:S,maxLines:D,expandOn:O,disabled:z,readOnly:H,setOpen:F,setValue:Q,textareaRef:f,paste:_,appendFilesFromPaste:B,size:se,submit:A,clearOnSubmit:L}=x,Z=st(r,f),G=e.useRef(0),j=e.useRef(0),q=e.useRef(!1),V=e.useRef({open:b,minLines:S,maxLines:D});je(()=>{V.current={open:b,minLines:S,maxLines:D}},[b,S,D]);let N=e.useCallback(()=>{let n=f.current;if(!n)return;let C=window.getComputedStyle(n);G.current=parseFloat(C.lineHeight)||20,j.current=(parseFloat(C.paddingTop)||0)+(parseFloat(C.paddingBottom)||0)},[f]),M=e.useCallback((n,C)=>{let{minLines:k,maxLines:ee}=V.current,X=G.current,te=j.current,ie=Math.ceil((C?k:1)*X)+te,Y=Math.ceil((C?ee:1)*X)+te,ce=Math.max(n.scrollHeight,ie);n.style.height=`${Math.min(ce,Y)}px`;let be=ce>Y;n.style.overflowY=be?"auto":"hidden",n.style.maxHeight=be?`${Y}px`:"none"},[]);je(()=>{N()},[N,se]),je(()=>{let n=f.current;n&&(G.current===0&&N(),ot(n,()=>{n.style.height="auto";let C=b;if(!b&&(O==="overflow"||O==="both")){let k=Math.ceil(G.current)+j.current;n.scrollHeight>k+1&&(C=!0,F(!0))}M(n,C)}))},[w,b,O,S,D,se,F,f,N,M]),e.useEffect(()=>{let n=f.current;if(!n||typeof ResizeObserver>"u")return;let C=-1,k=new ResizeObserver(ee=>{let X=ee[0]?.contentRect.width??0;if(X===C)return;let te=C===-1;C=X,!te&&(N(),ot(n,()=>{n.style.height="auto",M(n,V.current.open)}))});return k.observe(n),()=>k.disconnect()},[f,N,M]),e.useEffect(()=>{},[]);let ke=e.useCallback(n=>{l?.(n),!(z||H)&&(O==="focus"||O==="both")&&!b&&F(!0)},[z,H,O,b,F,l]),pe=e.useCallback(n=>{Q(n.currentTarget.value),u?.(n)},[Q,u]),he=e.useCallback(n=>{if(d?.(n),n.defaultPrevented||!_||z||H)return;let C=Array.from(n.clipboardData?.items??[]).filter(k=>k.kind==="file").map(k=>k.getAsFile()).filter(k=>!!k);C.length!==0&&B(C)>0&&n.preventDefault()},[_,z,H,d,B]),fe=e.useCallback(n=>{q.current=!0,y?.(n)},[y]),Se=e.useCallback(n=>{q.current=!1,R?.(n)},[R]),W=e.useCallback(n=>{g?.(n),!(n.defaultPrevented||!p)&&(n.key!=="Enter"||n.shiftKey||n.altKey||n.ctrlKey||n.metaKey||q.current||n.nativeEvent.isComposing||n.nativeEvent.keyCode===229||(n.preventDefault(),A(L)))},[p,g,A,L]);return e.createElement("div",{className:"kui-ChatbarField kui-ChatbarTextarea"},e.createElement(c?U:"textarea",{...v,ref:Z,className:E("kui-ChatbarInput",a),value:w,onChange:pe,onFocus:ke,onPaste:he,onKeyDown:W,onCompositionStart:fe,onCompositionEnd:Se,disabled:z,readOnly:H,rows:b?S:1,spellCheck:v.spellCheck??!0,autoCorrect:v.autoCorrect??"on",style:i}))});ut.displayName="Chatbar.Textarea";var dt=e.forwardRef((t,r)=>{let{children:a,asChild:i,className:c,...l}=t;return I().open?null:e.createElement(i?U:"div",{...l,ref:r,className:E("kui-ChatbarInlineStart",c)},a)});dt.displayName="Chatbar.InlineStart";var mt=e.forwardRef((t,r)=>{let{children:a,asChild:i,className:c,...l}=t;return I().open?null:e.createElement(i?U:"div",{...l,ref:r,className:E("kui-ChatbarInlineEnd",c)},a)});mt.displayName="Chatbar.InlineEnd";var pt=e.forwardRef((t,r)=>{let{asChild:a,forceMount:i,renderAttachment:c,className:l,children:u,...d}=t,g=I(),y=e.Children.toArray(u).length>0;return g.attachments.length===0&&!y&&!i?null:e.createElement("div",null,e.createElement(a?U:"div",{...d,ref:r,className:E("kui-ChatbarAttachmentsRow",l),role:"list","aria-label":d["aria-label"]??"Attachments"},e.createElement(at,{className:"kui-ChatbarScrollArea",scrollbars:"horizontal"},e.createElement(ze,{align:"center",gap:"3",minWidth:"fit-content"},g.attachments.map(p=>e.createElement($e,{key:p.id,attachment:p,asChild:!!c},c?.(p))),u))))});pt.displayName="Chatbar.AttachmentsRow";function ht(t,r){let a=t.closest('[role="listitem"]'),i=a?.parentElement?Array.from(a.parentElement.children):[],c=a?i.indexOf(a):-1,u=(i[c+1]??i[c-1])?.querySelector(".kui-ChatbarItemRemove");u?u.focus():r.current?.focus({preventScroll:!0})}var ft=({lead:t,leadKind:r,label:a,detail:i,removeLabel:c,onRemove:l})=>{let u=I();return e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-ChatbarItemLead","data-kind":r,"aria-hidden":!0},t),e.createElement(Ae,{className:"kui-ChatbarItemLabel",size:u.size,truncate:!0},a,i?e.createElement(Be,null,", ",i):null),l&&e.createElement(we,{iconOnly:!0,className:"kui-ChatbarItemRemove","aria-label":c,size:"1",variant:"ghost",color:"gray",onClick:l},e.createElement(Qe,null)))},Vt={uploading:"uploading",error:"failed to upload"},$e=e.forwardRef((t,r)=>{let{attachment:a,asChild:i,className:c,children:l,...u}=t,d=I(),g=i?U:"div",y=!!a.url&&ct(a.name,a.type),R=`${Math.ceil(a.size/1024)} KB`,p=a.status?Vt[a.status]:void 0,v=d.disabled||d.readOnly,x=b=>{ht(b.currentTarget,d.textareaRef),d.removeAttachment(a.id)},w=a.status==="uploading"?e.createElement(De,null):y?e.createElement("img",{className:"kui-ChatbarAttachmentImage",src:a.url,alt:""}):e.createElement(et,null);return e.createElement(g,{...u,ref:r,className:E(l?"kui-ChatbarAttachment":"kui-ChatbarAttachment kui-ChatbarItem",c),role:"listitem","data-kind":y?"image":"file","data-status":a.status,title:a.name},l??e.createElement(ft,{lead:w,leadKind:y&&a.status!=="uploading"?"image":"icon",label:a.name,detail:p?`${R}, ${p}`:R,removeLabel:`Remove ${a.name}`,onRemove:v?void 0:x}))});$e.displayName="Chatbar.Attachment";var bt=e.forwardRef((t,r)=>{let{children:a,icon:i,image:c,color:l,onRemove:u,removeLabel:d,className:g,...y}=t,R=I(),p=R.disabled||R.readOnly,v=u?x=>{ht(x.currentTarget,R.textareaRef),u()}:void 0;return e.createElement("div",{...y,ref:r,className:E("kui-ChatbarItem",g),role:"listitem","data-accent-color":c?void 0:l??"gray",title:a},e.createElement(ft,{lead:c?e.createElement("img",{className:"kui-ChatbarAttachmentImage",src:c,alt:""}):i,leadKind:c?"image":"icon",label:a,removeLabel:d??`Remove ${a}`,onRemove:p?void 0:v}))});bt.displayName="Chatbar.Item";var Rt=e.forwardRef((t,r)=>{let{asChild:a,accept:i,multiple:c,disabled:l,onPointerDown:u,onClick:d,children:g,color:y,...R}=t,p=I(),v=l||p.disabled||p.readOnly,x={...R,ref:r,className:E("kui-ChatbarAttachTrigger",R.className),type:R.type??"button","aria-label":R["aria-label"]??"Add attachments",disabled:v,onPointerDown:w=>{u?.(w),!v&&!w.defaultPrevented&&p.beginFilePickerPress()},onClick:w=>{d?.(w),!(v||w.defaultPrevented)&&p.openFilePicker({accept:i,multiple:c})}};return a?e.createElement(U,{...x},g):e.createElement(we,{iconOnly:!0,emphasis:"quiet",color:"gray",size:p.size,...x},g??e.createElement(Ze,{"aria-hidden":!0}))});Rt.displayName="Chatbar.AttachTrigger";var Ct=e.forwardRef((t,r)=>{let{asChild:a,children:i,className:c,...l}=t;return I().open?e.createElement("div",null,e.createElement(a?U:"div",{...l,ref:r,className:E("kui-ChatbarRow",c)},e.createElement(ze,{align:"center",justify:"between",width:"100%"},i))):null});Ct.displayName="Chatbar.Row";var gt=e.forwardRef((t,r)=>{let{className:a,...i}=t;return e.createElement("div",{...i,ref:r,className:E("kui-ChatbarRowStart",a)})});gt.displayName="Chatbar.RowStart";var vt=e.forwardRef((t,r)=>{let{className:a,...i}=t;return e.createElement("div",{...i,ref:r,className:E("kui-ChatbarRowEnd",a)})});vt.displayName="Chatbar.RowEnd";var yt=e.forwardRef((t,r)=>{let{asChild:a,clearOnSend:i,disabled:c,children:l,style:u,className:d,size:g,variant:y,emphasis:R,tabIndex:p,onClick:v,status:x="ready",onStop:w,onRetry:b,stopLabel:S="Stop",retryLabel:D="Retry",stopIcon:O,retryIcon:z,"aria-label":H,"aria-labelledby":F,...Q}=t,f=I(),_=e.useContext(We),B=Ve(_)||f.attachments.length>0,A=B?"send":x==="submitted"||x==="streaming"?"stop":x==="error"?"retry":"send";if(f.sendMode==="never"&&A==="send")return null;let L=A!=="send"||f.sendMode==="always"||B,Z=A==="send"?c||f.disabled||f.readOnly||!B:c||f.disabled,j=A==="stop"?{"aria-label":S}:A==="retry"?{"aria-label":D}:F?{"aria-labelledby":F}:{"aria-label":H??"Send"},q=N=>{if(v?.(N),N.defaultPrevented||Z)return;if(A==="stop"){w?.();return}if(A==="retry"){b?.();return}let M=i??f.clearOnSubmit;f.submit(M)&&M&&f.textareaRef.current?.focus({preventScroll:!0})},V=A==="stop"?O??(x==="submitted"?e.createElement(De,null):e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},e.createElement("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"}))):A==="retry"?z??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),e.createElement("path",{d:"M3 3v5h5"})):l??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"}));return e.createElement(we,{iconOnly:!0,...Q,ref:r,size:g??f.size,...R?{emphasis:R}:{variant:y??(f.open||A!=="send"?"solid":"ghost")},disabled:Z,className:E("kui-ChatbarSend",d),style:{opacity:L?1:0,pointerEvents:L?void 0:"none",...u},"aria-hidden":L?void 0:!0,tabIndex:L?p:-1,asChild:a,onClick:q,"data-status":x,"data-mode":A,...j},V)});yt.displayName="Chatbar.Send";export{lt as a,ut as b,dt as c,mt as d,pt as e,$e as f,bt as g,Rt as h,Ct as i,gt as j,vt as k,yt as l,Wt as m};
3
- //# sourceMappingURL=chunk-LABMK6Q7.js.map
2
+ import{a as nt}from"./chunk-7YXHLU4C.js";import{a as Be}from"./chunk-WUCBFB25.js";import{a as we}from"./chunk-JQMWNI62.js";import{a as Ae}from"./chunk-FICBVI4M.js";import{a as De}from"./chunk-BUXK5VGR.js";import{a as ze}from"./chunk-KVVRFWGQ.js";import{b as U}from"./chunk-5KMEUZWN.js";import{g as Qe,h as Ze,j as et}from"./chunk-GKDGNPBD.js";import{b as tt}from"./chunk-5ON3XLRD.js";import{a as at}from"./chunk-DFQIIYLD.js";import{a as Ht}from"./chunk-VQPANPMI.js";var Wt={};Ht(Wt,{AttachTrigger:()=>Rt,Attachment:()=>$e,AttachmentsRow:()=>pt,InlineEnd:()=>mt,InlineStart:()=>dt,Item:()=>bt,Root:()=>lt,Row:()=>Ct,RowEnd:()=>vt,RowStart:()=>gt,Send:()=>yt,Textarea:()=>ut});import*as e from"react";import E from"classnames";import{useComposedRefs as st,useLayoutEffect as je}from"radix-ui/internal";import{useDropzone as Ft}from"react-dropzone";function ot(t,r){let{placeholder:a}=t;if(!a){r();return}t.placeholder="";try{r()}finally{t.placeholder=a}}var It={values:["1","2","3"]},it=e.createContext(null),We=e.createContext(""),I=()=>{let t=e.useContext(it);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},me=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(r=>r.trim()).filter(Boolean):[],zt=(t,r)=>{if(r.length===0)return!0;let a=t.type.toLowerCase(),i=t.name.toLowerCase();for(let c of r){let l=c.toLowerCase();if(l.includes("/")){let[u,d]=l.split("/"),[g,y]=a.split("/");if(u==="*"||u===g&&(d==="*"||d===y))return!0}else if(l.startsWith(".")&&i.endsWith(l))return!0}return!1},Dt=/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i,ct=(t,r)=>(r||"").toLowerCase().startsWith("image/")||Dt.test(t),Ve=t=>t.trim().length>0,rt=(t,r)=>`${t} ${r}${t===1?"":"s"}`,Bt=0,jt=()=>`chatbar-attachment-${Date.now()}-${++Bt}`,lt=e.forwardRef((t,r)=>{let{className:a,style:i,children:c,value:l,defaultValue:u="",onValueChange:d,open:g,defaultOpen:y=!1,onOpenChange:R,expandOn:p="both",minLines:v=3,maxLines:x=6,sendMode:w="whenDirty",disabled:b,readOnly:S,onSubmit:D,size:O,variant:z,color:H,radius:F,width:Q,maxWidth:f,attachments:_,defaultAttachments:B,onAttachmentsChange:se,accept:A,multiple:L=!0,maxAttachments:Z,maxFileSize:G,paste:j=!0,pasteAccept:q,clearOnSubmit:V=!0,onAttachmentReject:N,dropzone:M=!0,apiRef:ke,onBlurCapture:pe,notices:he,context:fe,...Se}=t,W=tt(O,It),Ee=l!=null,[n,C]=e.useState(u),k=Ee?l:n,ee=g!=null,[X,te]=e.useState(y),ie=ee?g:X,Y="attachments"in t,[ce,be]=e.useState(()=>B??[]),le=e.useMemo(()=>Y?_??[]:ce,[Y,_,ce]),[Ke,xt]=e.useState({text:"",id:0}),ue=e.useCallback(o=>xt(s=>({text:o,id:s.id+1})),[]),Ue=e.useRef(null),Pt=st(r,Ue),Te=e.useRef(null),Le=e.useRef(null),de=e.useRef(!1),Re=e.useRef(!1),Ce=e.useRef(void 0),Ne=e.useRef(null),_e=me(A).join(","),Me=me(q).join(","),Oe=e.useMemo(()=>me(_e),[_e]),At=e.useMemo(()=>Me?me(Me):Oe,[Me,Oe]),Ge={value:k,attachments:le,accepts:Oe,pasteAccepts:At,multiple:L,maxAttachments:Z,maxFileSize:G,disabled:b,readOnly:S,expandOn:p,isValueControlled:Ee,isOpenControlled:ee,isAttachmentsControlled:Y,onValueChange:d,onOpenChange:R,onAttachmentsChange:se,onAttachmentReject:N,onSubmit:D},P=e.useRef(Ge);P.current=Ge;let He=e.useRef(null),$=e.useCallback(()=>He.current??P.current.attachments,[]),ae=e.useCallback(o=>{P.current.isOpenControlled||te(o),P.current.onOpenChange?.(o)},[]),ge=e.useCallback(o=>{P.current.isValueControlled||C(o),P.current.onValueChange?.(o)},[]),ne=e.useCallback(o=>{He.current=o,queueMicrotask(()=>{He.current=null}),P.current.isAttachmentsControlled||be(o),P.current.onAttachmentsChange?.(o)},[]),ve=e.useRef(new Set),oe=e.useCallback((o,s,m=P.current.multiple)=>{let h=P.current;if(h.disabled||h.readOnly||o.length===0)return 0;let K=$(),J=[],re=[],Mt=typeof h.maxAttachments=="number"?Math.max(h.maxAttachments-K.length,0):1/0,Ot=m?1/0:1;for(let T of o){if(J.length>=Mt||J.length>=Ot){re.push({file:T,reason:"count"});continue}if(typeof h.maxFileSize=="number"&&T.size>h.maxFileSize){re.push({file:T,reason:"size"});continue}if(!zt(T,s)){re.push({file:T,reason:"type"});continue}let Ie=ct(T.name,T.type)?URL.createObjectURL(T):void 0;Ie&&ve.current.add(Ie),J.push({id:jt(),name:T.name,size:T.size,type:T.type,file:T,url:Ie,status:"idle"})}let Pe=[];return J.length>0&&(ne(K.concat(J)),h.expandOn!=="none"&&ae(!0),Pe.push(`${rt(J.length,"file")} attached.`)),re.length>0&&(h.onAttachmentReject?.(re),Pe.push(`${rt(re.length,"file")} could not be attached.`)),Pe.length>0&&ue(Pe.join(" ")),J.length},[$,ne,ae,ue]),ye=e.useCallback(o=>oe(o,P.current.accepts),[oe]),qe=e.useCallback(o=>oe(o,P.current.pasteAccepts),[oe]),Xe=e.useCallback(o=>{let s=$(),m=s.find(h=>h.id===o);m&&(ne(s.filter(h=>h.id!==o)),ue(`Removed ${m.name}.`))},[$,ne,ue]),Ye=e.useCallback(o=>{let s=P.current;if(s.disabled||s.readOnly)return!1;let m=$();if(!Ve(s.value)&&m.length===0)return!1;let h={value:s.value,attachments:m};if(o&&s.onSubmit)for(let K of m)K.url&&ve.current.delete(K.url);return s.onSubmit?.(h),o&&(ge(""),ne([])),!0},[$,ge,ne]);e.useEffect(()=>{let o=ve.current;if(o.size===0)return;let s=new Set(le.map(m=>m.url));for(let m of Array.from(o))s.has(m)||(URL.revokeObjectURL(m),o.delete(m))},[le]),e.useEffect(()=>{let o=ve.current;return()=>{if(!P.current.isAttachmentsControlled){for(let s of Array.from(o))URL.revokeObjectURL(s);o.clear()}}},[]);let xe=e.useCallback(o=>{let s=P.current,m=Le.current;if(clearTimeout(Ce.current),Re.current=!1,!m||s.disabled||s.readOnly)return;let h=o?.accept!=null?me(o.accept):s.accepts,K=o?.multiple??s.multiple;Ne.current={patterns:h,multiple:K},m.accept=h.join(","),m.multiple=K,de.current=!0,m.click(),setTimeout(()=>{document.hasFocus()&&(de.current=!1)},1e3)},[]),Je=e.useCallback(()=>{Re.current=!0,clearTimeout(Ce.current),Ce.current=setTimeout(()=>{Re.current=!1},800)},[]);e.useEffect(()=>()=>clearTimeout(Ce.current),[]),e.useEffect(()=>{let o=Le.current,s=()=>{de.current=!1};return window.addEventListener("focus",s),o?.addEventListener("cancel",s),()=>{window.removeEventListener("focus",s),o?.removeEventListener("cancel",s)}},[]);let wt=e.useCallback(o=>{let s=o.currentTarget,m=Array.from(s.files??[]),h=Ne.current;oe(m,h?.patterns??P.current.accepts,h?.multiple),de.current=!1,Ne.current=null,s.value=""},[oe]),kt=e.useCallback(o=>{pe?.(o);let s=P.current,m=Ue.current;if(!m||s.expandOn==="none")return;let h=o.relatedTarget;h&&m.contains(h)||de.current||Re.current||!Ve(s.value)&&$().length===0&&ae(!1)},[pe,ae,$]),St=e.useCallback(o=>{ye(o)},[ye]),{getRootProps:Et,isDragActive:Tt}=Ft({onDrop:St,onDragEnter:()=>ue(""),noClick:!0,noKeyboard:!0,noPaste:!0,disabled:!M||b||S}),Fe=M&&Tt;e.useImperativeHandle(ke,()=>({focusTextarea:()=>Te.current?.focus({preventScroll:!0}),openFilePicker:()=>xe()}),[xe]);let Lt=e.useCallback(o=>{if(b||o.pointerType==="mouse"&&o.button!==0)return;let s=o.target;s instanceof Element&&s.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')||(o.preventDefault(),Te.current?.focus({preventScroll:!0}))},[b]),Nt=e.useMemo(()=>({open:ie,setOpen:ae,setValue:ge,size:W,expandOn:p,minLines:v,maxLines:x,sendMode:w,disabled:b,readOnly:S,paste:j,clearOnSubmit:V,multiple:L,textareaRef:Te,attachments:le,removeAttachment:Xe,submit:Ye,appendFiles:ye,appendFilesFromPaste:qe,openFilePicker:xe,beginFilePickerPress:Je}),[ie,ae,ge,W,p,v,x,w,b,S,j,V,L,le,Xe,Ye,ye,qe,xe,Je]);return e.createElement(it.Provider,{value:Nt},e.createElement(We.Provider,{value:k},e.createElement(e.Fragment,null,e.createElement("div",{...Se,ref:Pt,className:E("kui-ChatbarRoot",`kui-r-size-${W}`,a),style:{position:"relative",width:Q,maxWidth:f,...i},"data-state":ie?"open":"closed","data-disabled":b?"":void 0,"data-readonly":S?"":void 0,"data-drop-active":Fe?"":void 0,"data-accent-color":H,"data-radius":F,onBlurCapture:kt},e.createElement("input",{ref:Le,type:"file",tabIndex:-1,"aria-hidden":!0,style:{display:"none"},onChange:wt}),he?e.createElement("div",{className:"kui-ChatbarNotices"},e.createElement(nt.Provider,{value:W},he)):null,e.createElement("div",{...M?Et():{},style:{width:"100%",flex:"1 1 auto",minHeight:0},onPointerDown:Lt},e.createElement("div",{className:E("kui-ChatbarBox",`kui-variant-${z??"raised"}`),style:{position:"relative"},"data-accent-color":H,"data-radius":F},e.createElement("div",{className:"kui-ChatbarGrid"},c),Fe&&e.createElement("div",{className:"kui-ChatbarDropOverlay","aria-hidden":!0},e.createElement("div",{className:"kui-ChatbarDropContent"},e.createElement(Ae,{emphasis:"medium",size:W,weight:"medium"},"Drop files here to attach"))))),fe?e.createElement(Ae,{as:"div",size:W==="3"?"2":"1",emphasis:"medium",className:"kui-ChatbarContext"},fe):null,e.createElement(Be,{role:"status","aria-live":"polite"},Fe?"Drop files here to attach.":e.createElement("span",{key:Ke.id},Ke.text))))))});lt.displayName="Chatbar.Root";var ut=e.forwardRef((t,r)=>{let{className:a,style:i,asChild:c,onFocus:l,onChange:u,onPaste:d,onKeyDown:g,onCompositionStart:y,onCompositionEnd:R,submitOnEnter:p=!1,...v}=t,x=I(),w=e.useContext(We),{open:b,minLines:S,maxLines:D,expandOn:O,disabled:z,readOnly:H,setOpen:F,setValue:Q,textareaRef:f,paste:_,appendFilesFromPaste:B,size:se,submit:A,clearOnSubmit:L}=x,Z=st(r,f),G=e.useRef(0),j=e.useRef(0),q=e.useRef(!1),V=e.useRef({open:b,minLines:S,maxLines:D});je(()=>{V.current={open:b,minLines:S,maxLines:D}},[b,S,D]);let N=e.useCallback(()=>{let n=f.current;if(!n)return;let C=window.getComputedStyle(n);G.current=parseFloat(C.lineHeight)||20,j.current=(parseFloat(C.paddingTop)||0)+(parseFloat(C.paddingBottom)||0)},[f]),M=e.useCallback((n,C)=>{let{minLines:k,maxLines:ee}=V.current,X=G.current,te=j.current,ie=Math.ceil((C?k:1)*X)+te,Y=Math.ceil((C?ee:1)*X)+te,ce=Math.max(n.scrollHeight,ie);n.style.height=`${Math.min(ce,Y)}px`;let be=ce>Y;n.style.overflowY=be?"auto":"hidden",n.style.maxHeight=be?`${Y}px`:"none"},[]);je(()=>{N()},[N,se]),je(()=>{let n=f.current;n&&(G.current===0&&N(),ot(n,()=>{n.style.height="auto";let C=b;if(!b&&(O==="overflow"||O==="both")){let k=Math.ceil(G.current)+j.current;n.scrollHeight>k+1&&(C=!0,F(!0))}M(n,C)}))},[w,b,O,S,D,se,F,f,N,M]),e.useEffect(()=>{let n=f.current;if(!n||typeof ResizeObserver>"u")return;let C=-1,k=new ResizeObserver(ee=>{let X=ee[0]?.contentRect.width??0;if(X===C)return;let te=C===-1;C=X,!te&&(N(),ot(n,()=>{n.style.height="auto",M(n,V.current.open)}))});return k.observe(n),()=>k.disconnect()},[f,N,M]),e.useEffect(()=>{},[]);let ke=e.useCallback(n=>{l?.(n),!(z||H)&&(O==="focus"||O==="both")&&!b&&F(!0)},[z,H,O,b,F,l]),pe=e.useCallback(n=>{Q(n.currentTarget.value),u?.(n)},[Q,u]),he=e.useCallback(n=>{if(d?.(n),n.defaultPrevented||!_||z||H)return;let C=Array.from(n.clipboardData?.items??[]).filter(k=>k.kind==="file").map(k=>k.getAsFile()).filter(k=>!!k);C.length!==0&&B(C)>0&&n.preventDefault()},[_,z,H,d,B]),fe=e.useCallback(n=>{q.current=!0,y?.(n)},[y]),Se=e.useCallback(n=>{q.current=!1,R?.(n)},[R]),W=e.useCallback(n=>{g?.(n),!(n.defaultPrevented||!p)&&(n.key!=="Enter"||n.shiftKey||n.altKey||n.ctrlKey||n.metaKey||q.current||n.nativeEvent.isComposing||n.nativeEvent.keyCode===229||(n.preventDefault(),A(L)))},[p,g,A,L]);return e.createElement("div",{className:"kui-ChatbarField kui-ChatbarTextarea"},e.createElement(c?U:"textarea",{...v,ref:Z,className:E("kui-ChatbarInput",a),value:w,onChange:pe,onFocus:ke,onPaste:he,onKeyDown:W,onCompositionStart:fe,onCompositionEnd:Se,disabled:z,readOnly:H,rows:b?S:1,spellCheck:v.spellCheck??!0,autoCorrect:v.autoCorrect??"on",style:i}))});ut.displayName="Chatbar.Textarea";var dt=e.forwardRef((t,r)=>{let{children:a,asChild:i,className:c,...l}=t;return I().open?null:e.createElement(i?U:"div",{...l,ref:r,className:E("kui-ChatbarInlineStart",c)},a)});dt.displayName="Chatbar.InlineStart";var mt=e.forwardRef((t,r)=>{let{children:a,asChild:i,className:c,...l}=t;return I().open?null:e.createElement(i?U:"div",{...l,ref:r,className:E("kui-ChatbarInlineEnd",c)},a)});mt.displayName="Chatbar.InlineEnd";var pt=e.forwardRef((t,r)=>{let{asChild:a,forceMount:i,renderAttachment:c,className:l,children:u,...d}=t,g=I(),y=e.Children.toArray(u).length>0;return g.attachments.length===0&&!y&&!i?null:e.createElement("div",null,e.createElement(a?U:"div",{...d,ref:r,className:E("kui-ChatbarAttachmentsRow",l),role:"list","aria-label":d["aria-label"]??"Attachments"},e.createElement(at,{className:"kui-ChatbarScrollArea",scrollbars:"horizontal"},e.createElement(ze,{align:"center",gap:"3",minWidth:"fit-content"},g.attachments.map(p=>e.createElement($e,{key:p.id,attachment:p,asChild:!!c},c?.(p))),u))))});pt.displayName="Chatbar.AttachmentsRow";function ht(t,r){let a=t.closest('[role="listitem"]'),i=a?.parentElement?Array.from(a.parentElement.children):[],c=a?i.indexOf(a):-1,u=(i[c+1]??i[c-1])?.querySelector(".kui-ChatbarItemRemove");u?u.focus():r.current?.focus({preventScroll:!0})}var ft=({lead:t,leadKind:r,label:a,detail:i,removeLabel:c,onRemove:l})=>{let u=I();return e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-ChatbarItemLead","data-kind":r,"aria-hidden":!0},t),e.createElement(Ae,{className:"kui-ChatbarItemLabel",size:u.size,truncate:!0},a,i?e.createElement(Be,null,", ",i):null),l&&e.createElement(we,{iconOnly:!0,className:"kui-ChatbarItemRemove","aria-label":c,size:"1",variant:"ghost",color:"gray",onClick:l},e.createElement(Qe,null)))},Vt={uploading:"uploading",error:"failed to upload"},$e=e.forwardRef((t,r)=>{let{attachment:a,asChild:i,className:c,children:l,...u}=t,d=I(),g=i?U:"div",y=!!a.url&&ct(a.name,a.type),R=`${Math.ceil(a.size/1024)} KB`,p=a.status?Vt[a.status]:void 0,v=d.disabled||d.readOnly,x=b=>{ht(b.currentTarget,d.textareaRef),d.removeAttachment(a.id)},w=a.status==="uploading"?e.createElement(De,null):y?e.createElement("img",{className:"kui-ChatbarAttachmentImage",src:a.url,alt:""}):e.createElement(et,null);return e.createElement(g,{...u,ref:r,className:E(l?"kui-ChatbarAttachment":"kui-ChatbarAttachment kui-ChatbarItem",c),role:"listitem","data-kind":y?"image":"file","data-status":a.status,title:a.name},l??e.createElement(ft,{lead:w,leadKind:y&&a.status!=="uploading"?"image":"icon",label:a.name,detail:p?`${R}, ${p}`:R,removeLabel:`Remove ${a.name}`,onRemove:v?void 0:x}))});$e.displayName="Chatbar.Attachment";var bt=e.forwardRef((t,r)=>{let{children:a,icon:i,image:c,color:l,onRemove:u,removeLabel:d,className:g,...y}=t,R=I(),p=R.disabled||R.readOnly,v=u?x=>{ht(x.currentTarget,R.textareaRef),u()}:void 0;return e.createElement("div",{...y,ref:r,className:E("kui-ChatbarItem",g),role:"listitem","data-accent-color":c?void 0:l??"gray",title:a},e.createElement(ft,{lead:c?e.createElement("img",{className:"kui-ChatbarAttachmentImage",src:c,alt:""}):i,leadKind:c?"image":"icon",label:a,removeLabel:d??`Remove ${a}`,onRemove:p?void 0:v}))});bt.displayName="Chatbar.Item";var Rt=e.forwardRef((t,r)=>{let{asChild:a,accept:i,multiple:c,disabled:l,onPointerDown:u,onClick:d,children:g,color:y,...R}=t,p=I(),v=l||p.disabled||p.readOnly,x={...R,ref:r,className:E("kui-ChatbarAttachTrigger",R.className),type:R.type??"button","aria-label":R["aria-label"]??"Add attachments",disabled:v,onPointerDown:w=>{u?.(w),!v&&!w.defaultPrevented&&p.beginFilePickerPress()},onClick:w=>{d?.(w),!(v||w.defaultPrevented)&&p.openFilePicker({accept:i,multiple:c})}};return a?e.createElement(U,{...x},g):e.createElement(we,{iconOnly:!0,emphasis:"quiet",color:"gray",size:p.size,...x},g??e.createElement(Ze,{"aria-hidden":!0}))});Rt.displayName="Chatbar.AttachTrigger";var Ct=e.forwardRef((t,r)=>{let{asChild:a,children:i,className:c,...l}=t;return I().open?e.createElement("div",null,e.createElement(a?U:"div",{...l,ref:r,className:E("kui-ChatbarRow",c)},e.createElement(ze,{align:"center",justify:"between",width:"100%"},i))):null});Ct.displayName="Chatbar.Row";var gt=e.forwardRef((t,r)=>{let{className:a,...i}=t;return e.createElement("div",{...i,ref:r,className:E("kui-ChatbarRowStart",a)})});gt.displayName="Chatbar.RowStart";var vt=e.forwardRef((t,r)=>{let{className:a,...i}=t;return e.createElement("div",{...i,ref:r,className:E("kui-ChatbarRowEnd",a)})});vt.displayName="Chatbar.RowEnd";var yt=e.forwardRef((t,r)=>{let{asChild:a,clearOnSend:i,disabled:c,children:l,style:u,className:d,size:g,variant:y,emphasis:R,tabIndex:p,onClick:v,status:x="ready",onStop:w,onRetry:b,stopLabel:S="Stop",retryLabel:D="Retry",stopIcon:O,retryIcon:z,"aria-label":H,"aria-labelledby":F,...Q}=t,f=I(),_=e.useContext(We),B=Ve(_)||f.attachments.length>0,A=B?"send":x==="submitted"||x==="streaming"?"stop":x==="error"?"retry":"send";if(f.sendMode==="never"&&A==="send")return null;let L=A!=="send"||f.sendMode==="always"||B,Z=A==="send"?c||f.disabled||f.readOnly||!B:c||f.disabled,j=A==="stop"?{"aria-label":S}:A==="retry"?{"aria-label":D}:F?{"aria-labelledby":F}:{"aria-label":H??"Send"},q=N=>{if(v?.(N),N.defaultPrevented||Z)return;if(A==="stop"){w?.();return}if(A==="retry"){b?.();return}let M=i??f.clearOnSubmit;f.submit(M)&&M&&f.textareaRef.current?.focus({preventScroll:!0})},V=A==="stop"?O??(x==="submitted"?e.createElement(De,null):e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},e.createElement("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"}))):A==="retry"?z??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),e.createElement("path",{d:"M3 3v5h5"})):l??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"}));return e.createElement(we,{iconOnly:!0,...Q,ref:r,size:g??f.size,...R?{emphasis:R}:{variant:y??(f.open||A!=="send"?"solid":"ghost")},disabled:Z,className:E("kui-ChatbarSend",d),style:{opacity:L?1:0,pointerEvents:L?void 0:"none",...u},"aria-hidden":L?void 0:!0,tabIndex:L?p:-1,asChild:a,onClick:q,"data-status":x,"data-mode":A,...j},V)});yt.displayName="Chatbar.Send";export{lt as a,ut as b,dt as c,mt as d,pt as e,$e as f,bt as g,Rt as h,Ct as i,gt as j,vt as k,yt as l,Wt as m};
3
+ //# sourceMappingURL=chunk-LG5DPQ46.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as d}from"./chunk-MGWGD6KI.js";import{b as p}from"./chunk-QEDKL23P.js";import{a as s}from"./chunk-ANQLWGFN.js";import{j as C}from"./chunk-GHWEXMF6.js";import*as e from"react";import c from"classnames";var v=e.createContext(null);function u(){return e.useContext(v)}var S=e.createContext("2"),B=e.createContext(!1),N=e.createContext(!1);function W({children:t,presentation:n}){let a=e.useContext(S),o=e.useMemo(()=>({size:a,menuVariant:"soft",presentation:n}),[a,n]);return e.createElement(v.Provider,{value:o},t)}function P(){let t=u(),n=e.useContext(S),a=t?.size??n,o=t?.menuVariant??"soft";return["kui-ShellPaneChrome",`kui-r-size-${a}`,`kui-menu-variant-${o}`]}var H={1:"2",2:"3",3:"4",4:"4"};function f(){let t=u(),n=e.useContext(S);return H[t?.size??n]}function g(){let t=e.useContext(s),n=e.useContext(C)!==null,a=f();return t!==void 0?t:n?a:null}var y=e.forwardRef(({className:t,float:n,children:a,...o},i)=>{let l=P(),r=f();return e.createElement("div",{...o,ref:i,"data-float":n||void 0,className:c("kui-ShellPaneHeader","kui-SidebarHeader","kui-SidebarHeader--container",...l,t)},e.createElement(s.Provider,{value:r},a))});y.displayName="Shell.PaneHeader";var F=e.forwardRef(({className:t,float:n,children:a,...o},i)=>{let l=P(),r=f();return e.createElement("div",{...o,ref:i,"data-float":n||void 0,className:c("kui-ShellPaneFooter","kui-SidebarFooter","kui-SidebarFooter--container",...l,t)},e.createElement(s.Provider,{value:r},a))});F.displayName="Shell.PaneFooter";var M=e.forwardRef(({className:t,style:n,dir:a,children:o,fade:i=!1,pane:l=!1,...r},m)=>{let x=P(),h=e.useContext(B),R=u(),z=h&&R===null&&!l,b=e.useContext(N),V=p();if(z){let k=r.tabIndex??(b&&V?-1:void 0);return e.createElement(d,{...r,tabIndex:k,ref:m,type:"hover",fade:i,className:"kui-ShellScroll"},e.createElement("div",{style:n,dir:a,className:c("kui-ShellScrollContent",t)},o))}return e.createElement(d,{...r,ref:m,type:"hover",fade:i,className:"kui-ShellScroll"},e.createElement("div",{style:n,dir:a,className:c("kui-BaseMenuContent","kui-SidebarContent",...x,t)},e.createElement(s.Provider,{value:null},e.createElement("div",{className:"kui-BaseMenuViewport"},o))))});M.displayName="Shell.Scroll";export{v as a,u as b,S as c,B as d,N as e,W as f,H as g,g as h,y as i,F as j,M as k};
3
- //# sourceMappingURL=chunk-MJROOEPE.js.map
2
+ import{a as d}from"./chunk-DFQIIYLD.js";import{b as p}from"./chunk-QEDKL23P.js";import{j as C}from"./chunk-GHWEXMF6.js";import{a as s}from"./chunk-ANQLWGFN.js";import*as e from"react";import c from"classnames";var v=e.createContext(null);function u(){return e.useContext(v)}var S=e.createContext("2"),B=e.createContext(!1),N=e.createContext(!1);function W({children:t,presentation:n}){let a=e.useContext(S),o=e.useMemo(()=>({size:a,menuVariant:"soft",presentation:n}),[a,n]);return e.createElement(v.Provider,{value:o},t)}function P(){let t=u(),n=e.useContext(S),a=t?.size??n,o=t?.menuVariant??"soft";return["kui-ShellPaneChrome",`kui-r-size-${a}`,`kui-menu-variant-${o}`]}var H={1:"2",2:"3",3:"4",4:"4"};function f(){let t=u(),n=e.useContext(S);return H[t?.size??n]}function g(){let t=e.useContext(s),n=e.useContext(C)!==null,a=f();return t!==void 0?t:n?a:null}var y=e.forwardRef(({className:t,float:n,children:a,...o},i)=>{let l=P(),r=f();return e.createElement("div",{...o,ref:i,"data-float":n||void 0,className:c("kui-ShellPaneHeader","kui-SidebarHeader","kui-SidebarHeader--container",...l,t)},e.createElement(s.Provider,{value:r},a))});y.displayName="Shell.PaneHeader";var F=e.forwardRef(({className:t,float:n,children:a,...o},i)=>{let l=P(),r=f();return e.createElement("div",{...o,ref:i,"data-float":n||void 0,className:c("kui-ShellPaneFooter","kui-SidebarFooter","kui-SidebarFooter--container",...l,t)},e.createElement(s.Provider,{value:r},a))});F.displayName="Shell.PaneFooter";var M=e.forwardRef(({className:t,style:n,dir:a,children:o,fade:i=!1,pane:l=!1,...r},m)=>{let x=P(),h=e.useContext(B),R=u(),z=h&&R===null&&!l,b=e.useContext(N),V=p();if(z){let k=r.tabIndex??(b&&V?-1:void 0);return e.createElement(d,{...r,tabIndex:k,ref:m,type:"hover",fade:i,className:"kui-ShellScroll"},e.createElement("div",{style:n,dir:a,className:c("kui-ShellScrollContent",t)},o))}return e.createElement(d,{...r,ref:m,type:"hover",fade:i,className:"kui-ShellScroll"},e.createElement("div",{style:n,dir:a,className:c("kui-BaseMenuContent","kui-SidebarContent",...x,t)},e.createElement(s.Provider,{value:null},e.createElement("div",{className:"kui-BaseMenuViewport"},o))))});M.displayName="Shell.Scroll";export{v as a,u as b,S as c,B as d,N as e,W as f,H as g,g as h,y as i,F as j,M as k};
3
+ //# sourceMappingURL=chunk-NFSW36RG.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as P}from"./chunk-4MNRLB57.js";import{a as e}from"./chunk-L54FWKJE.js";import{c as s}from"./chunk-OKQAVYW4.js";import{a as l}from"./chunk-AQKSO3SW.js";import*as o from"react";import W from"classnames";import{Tooltip as t}from"radix-ui";var a={content:{type:"ReactNode",required:!0},width:e.width,minWidth:e.minWidth,maxWidth:{...e.maxWidth,default:"360px"}};var m=200,f=o.createContext(!1);function N({delayDuration:i=m,children:r,...p}){return o.createElement(f.Provider,{value:!0},o.createElement(t.Provider,{delayDuration:i,...p},r))}N.displayName="TooltipProvider";var g=o.forwardRef((i,r)=>{let{children:p,className:d,open:T,defaultOpen:c,onOpenChange:v,delayDuration:y,disableHoverableContent:h,content:u,container:R,forceMount:C,...D}=s(i,a),x={open:T,defaultOpen:c,onOpenChange:v,delayDuration:y,disableHoverableContent:h},w=o.useContext(f),n=o.createElement(t.Root,{...x},o.createElement(t.Trigger,{asChild:!0},p),o.createElement(t.Portal,{container:R,forceMount:C},o.createElement(l,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...D,asChild:!1,ref:r,className:W("kui-TooltipContent",d)},o.createElement(P,{as:"p",className:"kui-TooltipText",size:"1"},u),o.createElement(t.Arrow,{className:"kui-TooltipArrow"})))));return w?n:o.createElement(t.Provider,{delayDuration:m},n)});g.displayName="Tooltip";export{N as a,g as b};
3
- //# sourceMappingURL=chunk-6YWHNLSC.js.map
2
+ import{a as P}from"./chunk-FICBVI4M.js";import{a as l}from"./chunk-HGF4CKRY.js";import{a as e}from"./chunk-L54FWKJE.js";import{c as s}from"./chunk-OKQAVYW4.js";import*as o from"react";import W from"classnames";import{Tooltip as t}from"radix-ui";var a={content:{type:"ReactNode",required:!0},width:e.width,minWidth:e.minWidth,maxWidth:{...e.maxWidth,default:"360px"}};var m=200,f=o.createContext(!1);function N({delayDuration:i=m,children:r,...p}){return o.createElement(f.Provider,{value:!0},o.createElement(t.Provider,{delayDuration:i,...p},r))}N.displayName="TooltipProvider";var g=o.forwardRef((i,r)=>{let{children:p,className:d,open:T,defaultOpen:c,onOpenChange:v,delayDuration:y,disableHoverableContent:h,content:u,container:R,forceMount:C,...D}=s(i,a),x={open:T,defaultOpen:c,onOpenChange:v,delayDuration:y,disableHoverableContent:h},w=o.useContext(f),n=o.createElement(t.Root,{...x},o.createElement(t.Trigger,{asChild:!0},p),o.createElement(t.Portal,{container:R,forceMount:C},o.createElement(l,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...D,asChild:!1,ref:r,className:W("kui-TooltipContent",d)},o.createElement(P,{as:"p",className:"kui-TooltipText",size:"1"},u),o.createElement(t.Arrow,{className:"kui-TooltipArrow"})))));return w?n:o.createElement(t.Provider,{delayDuration:m},n)});g.displayName="Tooltip";export{N as a,g as b};
3
+ //# sourceMappingURL=chunk-NJ7RQYLX.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as p,b as m,c as a,d as f}from"./chunk-UJ7JERJ5.js";import{c as s}from"./chunk-OKQAVYW4.js";import{e as t}from"./chunk-HBWBPBSA.js";import{a as r}from"./chunk-CLJ6SEGP.js";import*as o from"react";import v from"classnames";import{Slot as h}from"radix-ui";var y=["1","2","3","4","5","6","7","8","9"],D=["solid","soft","outline","ghost"],i={...r,size:{type:"enum",className:"kui-r-size",values:y,responsive:!0},variant:{type:"enum",className:"kui-variant",values:D,default:"soft"},...f,...t,...p,...a,...m};var R=o.forwardRef((e,n)=>{let{asChild:c,className:d,color:P,...l}=s(e,i),u=e.variant==="ghost"&&!e.color?void 0:P,C=c?h.Root:"code";return o.createElement(C,{"data-accent-color":u,...l,ref:n,className:v("kui-reset","kui-Code",d)})});R.displayName="Code";export{R as a};
3
- //# sourceMappingURL=chunk-WD66RYF6.js.map
2
+ import{a as p,b as m,c as a,d as f}from"./chunk-UJ7JERJ5.js";import{e as t}from"./chunk-HBWBPBSA.js";import{c as s}from"./chunk-OKQAVYW4.js";import{a as r}from"./chunk-CLJ6SEGP.js";import*as o from"react";import v from"classnames";import{Slot as h}from"radix-ui";var y=["1","2","3","4","5","6","7","8","9"],D=["solid","soft","outline","ghost"],i={...r,size:{type:"enum",className:"kui-r-size",values:y,responsive:!0},variant:{type:"enum",className:"kui-variant",values:D,default:"soft"},...f,...t,...p,...a,...m};var R=o.forwardRef((e,n)=>{let{asChild:c,className:d,color:P,...l}=s(e,i),u=e.variant==="ghost"&&!e.color?void 0:P,C=c?h.Root:"code";return o.createElement(C,{"data-accent-color":u,...l,ref:n,className:v("kui-reset","kui-Code",d)})});R.displayName="Code";export{R as a};
3
+ //# sourceMappingURL=chunk-NYIYRILR.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as d,b as f,c as g}from"./chunk-BQC2P3SN.js";import{a as P,b as H,c as h,d as c}from"./chunk-UJ7JERJ5.js";import{c as m}from"./chunk-OKQAVYW4.js";import{c as i}from"./chunk-HBWBPBSA.js";import{a as n}from"./chunk-CLJ6SEGP.js";import*as e from"react";import{Slot as v}from"radix-ui";var R=["h1","h2","h3","h4","h5","h6"],C=["1","2","3","4","5","6","7","8","9"],l={as:{type:"enum",values:R,default:"h2"},...n,size:{type:"enum",className:"kui-r-size",values:C,default:"6",responsive:!0},...g,...c,...f,...d,...h,...H,...i,...P};var W=e.memo(e.forwardRef((u,o)=>{let{children:r,className:p,asChild:y,as:D="h2",color:t,...s}=m(u,l),a=p?`kui-Heading ${p}`:"kui-Heading";return y?e.createElement(v.Root,{"data-accent-color":t,...s,ref:o,className:a},r):e.createElement(D,{"data-accent-color":t,...s,ref:o,className:a},r)}));W.displayName="Heading";export{W as a};
3
- //# sourceMappingURL=chunk-JP36JSNP.js.map
2
+ import{a as d,b as f,c as g}from"./chunk-BQC2P3SN.js";import{a as P,b as H,c as h,d as c}from"./chunk-UJ7JERJ5.js";import{c as i}from"./chunk-HBWBPBSA.js";import{c as m}from"./chunk-OKQAVYW4.js";import{a as n}from"./chunk-CLJ6SEGP.js";import*as e from"react";import{Slot as v}from"radix-ui";var R=["h1","h2","h3","h4","h5","h6"],C=["1","2","3","4","5","6","7","8","9"],l={as:{type:"enum",values:R,default:"h2"},...n,size:{type:"enum",className:"kui-r-size",values:C,default:"6",responsive:!0},...g,...c,...f,...d,...h,...H,...i,...P};var W=e.memo(e.forwardRef((u,o)=>{let{children:r,className:p,asChild:y,as:D="h2",color:t,...s}=m(u,l),a=p?`kui-Heading ${p}`:"kui-Heading";return y?e.createElement(v.Root,{"data-accent-color":t,...s,ref:o,className:a},r):e.createElement(D,{"data-accent-color":t,...s,ref:o,className:a},r)}));W.displayName="Heading";export{W as a};
3
+ //# sourceMappingURL=chunk-OBSZOD5M.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{c as A}from"./chunk-GKDGNPBD.js";import{c as l}from"./chunk-5KMEUZWN.js";import{c}from"./chunk-OKQAVYW4.js";import{c as R}from"./chunk-5ON3XLRD.js";import{c as P}from"./chunk-HBWBPBSA.js";import{b as f}from"./chunk-XU74PNM2.js";import{a as n}from"./chunk-CLJ6SEGP.js";import{a as x}from"./chunk-VQPANPMI.js";var b={};x(b,{Content:()=>I,Header:()=>w,Item:()=>h,Root:()=>v,Trigger:()=>D});import*as o from"react";import a from"classnames";import{Accordion as d}from"radix-ui";var H=["1","2","3","4"],O=["raised","soft","surface","outline","ghost"],m={...n,size:{type:"enum",className:"kui-r-size",values:H,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:O,default:"raised"},...P,...f},g={...n},u={...n},C={...n},y={...n};var v=o.forwardRef((e,r)=>{let t=R(e,m.size),{className:i,radius:s,color:N,...T}=c(t,m),p=T;return p.type==="single"&&p.collapsible===void 0&&(p.collapsible=!0),o.createElement(d.Root,{...p,ref:r,className:a("kui-AccordionRoot",i),"data-accent-color":N,"data-radius":s})});v.displayName="Accordion.Root";var h=o.forwardRef((e,r)=>{let{className:t,...i}=c(e,g);return o.createElement(d.Item,{...i,ref:r,className:a("kui-AccordionItem",t)})});h.displayName="Accordion.Item";var w=o.forwardRef((e,r)=>{let{className:t,...i}=c(e,u);return o.createElement(d.Header,{...i,ref:r,className:a("kui-AccordionHeader",t)})});w.displayName="Accordion.Header";var D=o.forwardRef(({children:e,...r},t)=>{let{className:i,...s}=c(r,C);return o.createElement(d.Trigger,{...s,ref:t,className:a("kui-AccordionTrigger",i)},o.createElement(l,null,e),o.createElement(A,{className:"kui-AccordionChevron","aria-hidden":!0}))});D.displayName="Accordion.Trigger";var I=o.forwardRef((e,r)=>{let{className:t,children:i,...s}=c(e,y);return o.createElement(d.Content,{...s,ref:r,className:a("kui-AccordionContent",t)},o.createElement("div",{className:"kui-AccordionContentInner"},i))});I.displayName="Accordion.Content";export{v as a,h as b,w as c,D as d,I as e,b as f};
3
- //# sourceMappingURL=chunk-DP7MPGR7.js.map
2
+ import{c as l}from"./chunk-5KMEUZWN.js";import{c as A}from"./chunk-GKDGNPBD.js";import{c as R}from"./chunk-5ON3XLRD.js";import{c as P}from"./chunk-HBWBPBSA.js";import{b as f}from"./chunk-XU74PNM2.js";import{c}from"./chunk-OKQAVYW4.js";import{a as n}from"./chunk-CLJ6SEGP.js";import{a as x}from"./chunk-VQPANPMI.js";var b={};x(b,{Content:()=>I,Header:()=>w,Item:()=>h,Root:()=>v,Trigger:()=>D});import*as o from"react";import a from"classnames";import{Accordion as d}from"radix-ui";var H=["1","2","3","4"],O=["raised","soft","surface","outline","ghost"],m={...n,size:{type:"enum",className:"kui-r-size",values:H,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:O,default:"raised"},...P,...f},g={...n},u={...n},C={...n},y={...n};var v=o.forwardRef((e,r)=>{let t=R(e,m.size),{className:i,radius:s,color:N,...T}=c(t,m),p=T;return p.type==="single"&&p.collapsible===void 0&&(p.collapsible=!0),o.createElement(d.Root,{...p,ref:r,className:a("kui-AccordionRoot",i),"data-accent-color":N,"data-radius":s})});v.displayName="Accordion.Root";var h=o.forwardRef((e,r)=>{let{className:t,...i}=c(e,g);return o.createElement(d.Item,{...i,ref:r,className:a("kui-AccordionItem",t)})});h.displayName="Accordion.Item";var w=o.forwardRef((e,r)=>{let{className:t,...i}=c(e,u);return o.createElement(d.Header,{...i,ref:r,className:a("kui-AccordionHeader",t)})});w.displayName="Accordion.Header";var D=o.forwardRef(({children:e,...r},t)=>{let{className:i,...s}=c(r,C);return o.createElement(d.Trigger,{...s,ref:t,className:a("kui-AccordionTrigger",i)},o.createElement(l,null,e),o.createElement(A,{className:"kui-AccordionChevron","aria-hidden":!0}))});D.displayName="Accordion.Trigger";var I=o.forwardRef((e,r)=>{let{className:t,children:i,...s}=c(e,y);return o.createElement(d.Content,{...s,ref:r,className:a("kui-AccordionContent",t)},o.createElement("div",{className:"kui-AccordionContentInner"},i))});I.displayName="Accordion.Content";export{v as a,h as b,w as c,D as d,I as e,b as f};
3
+ //# sourceMappingURL=chunk-OMPLFDS6.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{c as t}from"./chunk-OKQAVYW4.js";import{c as p}from"./chunk-5ON3XLRD.js";import{c as r}from"./chunk-HBWBPBSA.js";import*as e from"react";import R from"classnames";import{composeEventHandlers as P}from"radix-ui/internal";var c=["1","2","3","4"],o={size:{type:"enum",className:"kui-r-size",values:c,default:"2",responsive:!0},...r};var y=e.forwardRef((s,a)=>{let i=p(s,o.size),{className:n,color:m,onChange:f,onValueChange:u,...d}=t(i,o);return e.createElement("input",{type:"radio","data-accent-color":m,...d,onChange:P(f,l=>u?.(l.currentTarget.value)),ref:a,className:R("kui-reset","kui-BaseRadioRoot","kui-RadioRoot",n)})});y.displayName="Radio";export{y as a};
3
- //# sourceMappingURL=chunk-H2J25HXP.js.map
2
+ import{c as p}from"./chunk-5ON3XLRD.js";import{c as r}from"./chunk-HBWBPBSA.js";import{c as t}from"./chunk-OKQAVYW4.js";import*as e from"react";import R from"classnames";import{composeEventHandlers as P}from"radix-ui/internal";var c=["1","2","3","4"],o={size:{type:"enum",className:"kui-r-size",values:c,default:"2",responsive:!0},...r};var y=e.forwardRef((s,a)=>{let i=p(s,o.size),{className:n,color:m,onChange:f,onValueChange:u,...d}=t(i,o);return e.createElement("input",{type:"radio","data-accent-color":m,...d,onChange:P(f,l=>u?.(l.currentTarget.value)),ref:a,className:R("kui-reset","kui-BaseRadioRoot","kui-RadioRoot",n)})});y.displayName="Radio";export{y as a};
3
+ //# sourceMappingURL=chunk-OPYTQ34H.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{c as P}from"./chunk-OKQAVYW4.js";import{c}from"./chunk-5ON3XLRD.js";import{c as b}from"./chunk-HBWBPBSA.js";import{a as f}from"./chunk-CLJ6SEGP.js";import{a as R}from"./chunk-VQPANPMI.js";var v={};R(v,{Content:()=>g,List:()=>u,Root:()=>l,Trigger:()=>y});import*as e from"react";import p from"classnames";import{Tabs as i}from"radix-ui";var d=["1","2","3","4"],C=["nowrap","wrap","wrap-reverse"],L=["start","center","end"],a={size:{type:"enum",className:"kui-r-size",values:d,default:"2",responsive:!0},wrap:{type:"enum",className:"kui-r-fw",values:C,responsive:!0},justify:{type:"enum",className:"kui-r-jc",values:L,responsive:!0},...b};var k={...f},h={...f};var l=e.forwardRef((t,o)=>{let{className:r,...s}=t;return e.createElement(i.Root,{...s,ref:o,className:p("kui-TabsRoot",r)})});l.displayName="Tabs.Root";var u=e.forwardRef((t,o)=>{let r=c(t,a.size),{className:s,color:n,...m}=P(r,a);return e.createElement(i.List,{"data-accent-color":n,...m,asChild:!1,ref:o,className:p("kui-BaseTabList","kui-TabsList",s)})});u.displayName="Tabs.List";var y=e.forwardRef((t,o)=>{let{className:r,children:s,...n}=t,m=e.Children.toArray(s).every(T=>typeof T=="string"||typeof T=="number");return e.createElement(i.Trigger,{...n,asChild:!1,ref:o,className:p("kui-reset","kui-BaseTabListTrigger","kui-TabsTrigger",r)},e.createElement("span",{className:"kui-BaseTabListTriggerInner kui-TabsTriggerInner"},s),m?e.createElement("span",{className:"kui-BaseTabListTriggerInnerHidden kui-TabsTriggerInnerHidden","aria-hidden":!0},s):null)});y.displayName="Tabs.Trigger";var g=e.forwardRef((t,o)=>{let{className:r,...s}=t;return e.createElement(i.Content,{...s,ref:o,className:p("kui-TabsContent",r)})});g.displayName="Tabs.Content";export{l as a,u as b,y as c,g as d,v as e};
3
- //# sourceMappingURL=chunk-REORAMUH.js.map
2
+ import{c}from"./chunk-5ON3XLRD.js";import{c as b}from"./chunk-HBWBPBSA.js";import{c as P}from"./chunk-OKQAVYW4.js";import{a as f}from"./chunk-CLJ6SEGP.js";import{a as R}from"./chunk-VQPANPMI.js";var v={};R(v,{Content:()=>g,List:()=>u,Root:()=>l,Trigger:()=>y});import*as e from"react";import p from"classnames";import{Tabs as i}from"radix-ui";var d=["1","2","3","4"],C=["nowrap","wrap","wrap-reverse"],L=["start","center","end"],a={size:{type:"enum",className:"kui-r-size",values:d,default:"2",responsive:!0},wrap:{type:"enum",className:"kui-r-fw",values:C,responsive:!0},justify:{type:"enum",className:"kui-r-jc",values:L,responsive:!0},...b};var k={...f},h={...f};var l=e.forwardRef((t,o)=>{let{className:r,...s}=t;return e.createElement(i.Root,{...s,ref:o,className:p("kui-TabsRoot",r)})});l.displayName="Tabs.Root";var u=e.forwardRef((t,o)=>{let r=c(t,a.size),{className:s,color:n,...m}=P(r,a);return e.createElement(i.List,{"data-accent-color":n,...m,asChild:!1,ref:o,className:p("kui-BaseTabList","kui-TabsList",s)})});u.displayName="Tabs.List";var y=e.forwardRef((t,o)=>{let{className:r,children:s,...n}=t,m=e.Children.toArray(s).every(T=>typeof T=="string"||typeof T=="number");return e.createElement(i.Trigger,{...n,asChild:!1,ref:o,className:p("kui-reset","kui-BaseTabListTrigger","kui-TabsTrigger",r)},e.createElement("span",{className:"kui-BaseTabListTriggerInner kui-TabsTriggerInner"},s),m?e.createElement("span",{className:"kui-BaseTabListTriggerInnerHidden kui-TabsTriggerInnerHidden","aria-hidden":!0},s):null)});y.displayName="Tabs.Trigger";var g=e.forwardRef((t,o)=>{let{className:r,...s}=t;return e.createElement(i.Content,{...s,ref:o,className:p("kui-TabsContent",r)})});g.displayName="Tabs.Content";export{l as a,u as b,y as c,g as d,v as e};
3
+ //# sourceMappingURL=chunk-QBONJMSE.js.map
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as to,b as ro,c as no,e as W,f as ao,i as so,l as io}from"./chunk-KBSH6CBD.js";import{a as B}from"./chunk-JQMWNI62.js";import{a as eo}from"./chunk-FICBVI4M.js";import{a as q}from"./chunk-7N2Q5WOM.js";import{b as L}from"./chunk-5ON3XLRD.js";import{d as J,f as Q,g as X}from"./chunk-VWRPVM5K.js";import{h as oo}from"./chunk-NFSW36RG.js";import{c as U}from"./chunk-OKQAVYW4.js";import*as o from"react";import{useComposedRefs as vo,useLayoutEffect as D}from"radix-ui/internal";import g from"classnames";import{Toolbar as N}from"radix-ui";var Po=["1","2","3","4"],Ro=["horizontal","vertical"],x={size:{type:"enum",className:"kui-r-size",values:Po,default:"2"},orientation:{type:"enum",values:Ro,default:"horizontal"}};var M=o.createContext(null),F=o.createContext(null),E=o.createContext(!1);function Ho(){return o.useContext(E)}var H=o.forwardRef((e,t)=>{let r=oo(),a=L(e.size??r??void 0,x.size),s=e.orientation??x.orientation.default,{className:i,orientation:n,backdrop:l=!1,children:c,...d}=U({...e,size:a},x,q),u=o.useMemo(()=>({size:a,orientation:s,backdrop:l}),[a,s,l]);return o.createElement(N.Root,{...d,ref:t,orientation:s,"data-backdrop":l||void 0,className:g("kui-Toolbar",i)},o.createElement(M.Provider,{value:u},c))});H.displayName="Toolbar";var co=o.forwardRef(({className:e,disabled:t=!1,children:r,...a},s)=>{let i=o.useContext(M),n=o.useContext(E),l=o.useMemo(()=>({disabled:t}),[t]);return n?o.createElement(ao,{...a,ref:s,className:e},o.createElement(F.Provider,{value:l},r)):o.createElement("div",{role:"group","data-orientation":i?.orientation??"horizontal","data-disabled":t||void 0,...a,ref:s,className:g("kui-ToolbarGroup",e)},o.createElement(F.Provider,{value:l},r))});co.displayName="Toolbar.Group";var yo=new Set(["id","className","style","title"]);function lo(e){return e===!0||e==="true"}function wo(e){return o.isValidElement(e)&&e.type==="button"}var A=o.forwardRef((e,t)=>{let r=o.useContext(M),a=o.useContext(F),s=o.useContext(E),{iconOnly:i,size:n,variant:l,emphasis:c,color:d,disabled:u,asChild:f,onKeyDown:b,...y}=e,h=u||a?.disabled||void 0;if(s){let P={};for(let R of Object.keys(y))(/^on[A-Z]/.test(R)||R.startsWith("aria-")||R.startsWith("data-")||yo.has(R))&&(P[R]=y[R]);return b&&(P.onKeyDown=b),o.createElement(uo,{...P,ref:t,asChild:f,iconOnly:i,disabled:h,color:d,pressed:e["aria-pressed"]===void 0?void 0:lo(e["aria-pressed"])},y.children)}let O=r?.orientation==="vertical"&&b?P=>{P.key==="ArrowDown"||P.key==="ArrowUp"||b(P)}:b,I=lo(e["aria-pressed"]),p="data-state"in e||e["aria-pressed"]===void 0?{}:{"data-state":I?"on":"off"},m={size:n??r?.size,...c!==void 0?{emphasis:c}:{variant:l??(a?"ghost":r?.backdrop?"raised":"soft")},color:d??(l||c?void 0:"gray"),...p},T={...y,...i?{iconOnly:!0}:{},...f?{asChild:!0}:{},...O?{onKeyDown:O}:{},...m};return r?f&&!wo(y.children)?o.createElement(N.Link,{asChild:!0,ref:t},o.createElement(B,{...T,disabled:h})):o.createElement(N.Button,{asChild:!0,ref:t,disabled:h},o.createElement(B,{...T})):o.createElement(B,{...T,ref:t,disabled:h})});A.displayName="Toolbar.Button";var uo=o.forwardRef(({asChild:e,iconOnly:t,disabled:r,color:a,pressed:s,children:i,"aria-label":n,...l},c)=>{let d=t?n:void 0,u={...l,...t?{}:n?{"aria-label":n}:{},disabled:r,...a?{color:a}:{}};if(e&&o.isValidElement(i)){let f=d?o.cloneElement(i,void 0,i.props.children,o.createElement("span",null,d)):i;return o.createElement(W,{...u,ref:c,asChild:!0},f)}return s!==void 0?o.createElement(so,{...u,ref:c,checked:s},i,d):o.createElement(W,{...u,ref:c},i,d)});uo.displayName="Toolbar.OverflowItem";function ho(){return o.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentcolor","aria-hidden":!0,xmlns:"http://www.w3.org/2000/svg"},o.createElement("circle",{cx:"3.25",cy:"8",r:"1.25"}),o.createElement("circle",{cx:"8",cy:"8",r:"1.25"}),o.createElement("circle",{cx:"12.75",cy:"8",r:"1.25"}))}var po=o.forwardRef(({label:e="More",className:t,children:r,...a},s)=>{let i=o.Children.toArray(r),n=i.length,l=o.useRef(null),c=o.useRef([]),d=o.useRef(0),[u,f]=o.useState(n),[b,y]=o.useState(0),[h,O]=o.useState(n);h!==n&&(O(n),f(n)),D(()=>{c.current=[]},[n]),D(()=>{let p=l.current;if(!p)return;let m=Array.from(p.children),T=Math.min(u,n);for(let v=0;v<T;v++){let w=m[v];w&&(c.current[v]=w.offsetWidth)}let P=m[T];P&&(d.current=P.offsetWidth);let R=Number.parseFloat(getComputedStyle(p).columnGap)||0,K=p.clientWidth,V=0,_=0;for(let v=0;v<n;v++){let w=c.current[v];if(w===void 0)return;w!==0&&(V+=w+(_>0?R:0),_+=1)}let k=n;if(V>K){let v=K-(d.current||p.clientHeight)-R,w=0,Y=0;k=0;for(let G=0;G<n;G++){let Z=c.current[G];if(Z>0){let $=Z+(Y>0?R:0);if(w+$>v)break;w+=$,Y+=1}k+=1}}k!==u&&f(k)},[u,n,b]),o.useEffect(()=>{let p=l.current;if(!p||typeof ResizeObserver>"u")return;let m=new ResizeObserver(()=>y(T=>T+1));m.observe(p);for(let T of Array.from(p.children))m.observe(T);return()=>m.disconnect()},[u,n]);let I=o.useCallback(p=>{l.current=p,typeof s=="function"?s(p):s&&(s.current=p)},[s]);return o.createElement("div",{...a,ref:I,className:g("kui-ToolbarOverflow",t)},i.slice(0,u).map((p,m)=>o.createElement("div",{key:m,className:"kui-ToolbarOverflowSeat"},p)),u<n?o.createElement(to,null,o.createElement(ro,null,o.createElement(A,{iconOnly:!0,"aria-label":e},o.createElement(ho,null))),o.createElement(no,{align:"end"},o.createElement(E.Provider,{value:!0},i.slice(u)))):null)});po.displayName="Toolbar.Overflow";var j=[],S=new Map,z=new Set,C=new Map;function So(e){return z.add(e),()=>{z.delete(e)}}function go(e,t,r){let a=S.get(e)??j,i=a.findIndex(n=>n.id===t)===-1?[...a,{id:t,node:r}]:a.map(n=>n.id===t?{id:t,node:r}:n);S.set(e,i),z.forEach(n=>n())}function xo(e,t){let r=S.get(e);if(!r)return;let a=r.filter(s=>s.id!==t);a.length===0?S.delete(e):S.set(e,a),z.forEach(s=>s())}function fo({name:e="default"}){D(()=>{let r=(C.get(e)??0)+1;return C.set(e,r),r>1,()=>{let a=(C.get(e)??1)-1;a>0?C.set(e,a):C.delete(e)}},[e]);let t=o.useSyncExternalStore(So,()=>S.get(e)??j,()=>j);return o.createElement(o.Fragment,null,t.map(r=>o.createElement(o.Fragment,{key:r.id},r.node)))}fo.displayName="Toolbar.Slot";function bo({name:e="default",children:t}){let r=o.useId();return D(()=>{go(e,r,t)},[e,r,t]),D(()=>()=>xo(e,r),[e,r]),null}bo.displayName="Toolbar.Fill";var mo=o.forwardRef(({className:e,...t},r)=>{let a=o.useContext(M);return o.useContext(E)?o.createElement(io,{...t,ref:r,className:e}):a?o.createElement(N.Separator,{...t,ref:r,className:g("kui-ToolbarSeparator",e)}):o.createElement("div",{role:"separator","aria-orientation":"vertical","data-orientation":"vertical",...t,ref:r,className:g("kui-ToolbarSeparator",e)})});mo.displayName="Toolbar.Separator";var Co={1:"2",2:"3",3:"4",4:"5"},To=o.forwardRef(({className:e,children:t,style:r,id:a},s)=>{let i=o.useContext(M),n=L(void 0,x.size),l=i?.size??n,c=J(),d=Q(c),u=X(c),f=t==null||t===!1,b=f?d:t,y=vo(s,f?u:void 0);return b==null?null:o.createElement(eo,{ref:y,as:"span",size:Co[l],weight:"medium",truncate:!0,id:a,style:r,className:g("kui-ToolbarTitle",e),"data-mirror":f||void 0},b)});To.displayName="Toolbar.Title";var jo=Object.assign(H,{Root:H,Group:co,Button:A,Separator:mo,Title:To,Overflow:po,Slot:fo,Fill:bo});export{Ho as a,H as b,co as c,A as d,po as e,fo as f,bo as g,mo as h,To as i,jo as j};
3
+ //# sourceMappingURL=chunk-QDAM2I6O.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/toolbar.tsx", "../../src/components/toolbar.props.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\nimport classNames from 'classnames';\nimport { Toolbar as ToolbarPrimitive } from 'radix-ui';\n\nimport { toolbarRootPropDefs } from './toolbar.props.js';\nimport { Button } from './button.js';\nimport * as DropdownMenu from './dropdown-menu.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSize } from '../hooks/theme-size.js';\nimport { layoutPropDefs } from '../props/layout.props.js';\nimport { usePaneBandSize } from './_internal/pane-chrome.js';\nimport { usePageMirror, usePageScope, usePageTitle } from './_internal/page-scope.js';\n\nimport type { ButtonProps } from './button.js';\nimport type { LayoutProps } from '../props/layout.props.js';\nimport type { TextProps } from './text.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { ButtonRankProps } from './button.js';\n\n/*\n * Toolbar takes Kookie UI v2's contract (v2: components/toolbar), built on Radix instead of\n * Base UI. A toolbar is a row of controls with ONE tab stop: `role=\"toolbar\"`, and the arrow\n * keys move focus between its controls. That keyboard is the reason it is a component.\n *\n * Its `size` reaches every control inside it that does not state its own. The row itself paints\n * nothing; a `ToolbarGroup` draws a quiet well around controls that belong together, and a\n * `ToolbarSeparator` draws a gray hairline between clusters. Use a `Flex` to cluster controls\n * without a well: the row spaces the clusters with `space-between`.\n */\n\ntype ToolbarSize = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['size']>;\ntype ToolbarOrientation = NonNullable<GetPropDefTypes<typeof toolbarRootPropDefs>['orientation']>;\n\ninterface ToolbarContextValue {\n size: ToolbarSize;\n orientation: ToolbarOrientation;\n backdrop: boolean;\n}\n\nconst ToolbarContext = React.createContext<ToolbarContextValue | null>(null);\n\n/** Set by a `ToolbarGroup`: its children rest quiet, and `disabled` turns them all off. */\nconst ToolbarGroupContext = React.createContext<{ disabled: boolean } | null>(null);\n\n/**\n * True while a subtree is drawn into a `ToolbarOverflow`'s menu instead of into the row (v2\n * `InOverflow`). The parts answer it themselves: a `ToolbarButton` renders a menu item, a\n * `ToolbarGroup` a menu group, a `ToolbarSeparator` a menu separator.\n */\nconst InOverflowContext = React.createContext(false);\n\n/**\n * True while this subtree is drawn into a `ToolbarOverflow`'s \"More\" menu instead of the row.\n *\n * The toolbar's own parts handle this already. Use it in your own component inside a\n * `ToolbarOverflow` to render a different form in the menu.\n */\nfunction useToolbarOverflow(): boolean {\n return React.useContext(InOverflowContext);\n}\n\n// ============================================================================\n// Toolbar (root)\n// ============================================================================\n\ntype ToolbarOwnProps = GetPropDefTypes<typeof toolbarRootPropDefs>;\n\ninterface ToolbarProps\n extends ComponentPropsWithout<typeof ToolbarPrimitive.Root, RemovedProps | 'orientation'>,\n ToolbarOwnProps,\n LayoutProps {\n /**\n * Gives every control a surface of its own, for a row that content passes behind, such as\n * `Shell.PaneHeader float`. Buttons rest `raised` instead of `soft`, and a group's well is\n * solid and raised.\n */\n backdrop?: boolean;\n}\n\n/**\n * A row of controls with one keyboard tab stop. The arrow keys move focus between the controls.\n *\n * Give it an `aria-label` (or `aria-labelledby`) that says what the controls act on.\n *\n * @example\n * ```tsx\n * <Toolbar aria-label=\"Formatting\">\n * <ToolbarGroup>\n * <ToolbarButton iconOnly aria-label=\"Bold\" aria-pressed={bold} onClick={toggleBold}>\n * <HugeiconsIcon icon={TextBoldIcon} strokeWidth={1.75} />\n * </ToolbarButton>\n * </ToolbarGroup>\n * <ToolbarSeparator />\n * <ToolbarButton>Share</ToolbarButton>\n * </Toolbar>\n * ```\n */\nconst ToolbarRoot = React.forwardRef<HTMLDivElement, ToolbarProps>((props, forwardedRef) => {\n // Inside a Shell (a pane's header or footer, or the content area), a toolbar with no size\n // rests one step above the Shell's. A pane's scrolling list has no band.\n const band = usePaneBandSize();\n // Elsewhere it takes the nearest Theme's size.\n const size: ToolbarSize = useThemeSize(props.size ?? band ?? undefined, toolbarRootPropDefs.size);\n const orientation: ToolbarOrientation = props.orientation ?? toolbarRootPropDefs.orientation.default;\n const { className, orientation: _orientation, backdrop = false, children, ...rootProps } = extractProps(\n { ...props, size },\n toolbarRootPropDefs,\n layoutPropDefs,\n );\n\n const context = React.useMemo(() => ({ size, orientation, backdrop }), [size, orientation, backdrop]);\n\n return (\n <ToolbarPrimitive.Root\n {...rootProps}\n ref={forwardedRef}\n orientation={orientation}\n data-backdrop={backdrop || undefined}\n className={classNames('kui-Toolbar', className)}\n >\n <ToolbarContext.Provider value={context}>{children}</ToolbarContext.Provider>\n </ToolbarPrimitive.Root>\n );\n});\nToolbarRoot.displayName = 'Toolbar';\n\n// ============================================================================\n// ToolbarGroup\n// ============================================================================\n\ninterface ToolbarGroupProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** Turns every control in the group off at once. */\n disabled?: boolean;\n}\n\n/**\n * Controls that belong together, drawn as one quiet well that stands level with a button\n * beside it. Buttons inside it rest as `ghost` unless they state a `variant`.\n * To cluster controls without a well, use a `Flex`.\n *\n * In a `ToolbarOverflow`'s menu it is a menu group. Outside a `Toolbar` (rendered through a\n * portal, for example) it still draws its well, as a horizontal group.\n */\nconst ToolbarGroup = React.forwardRef<HTMLDivElement, ToolbarGroupProps>(\n ({ className, disabled = false, children, ...props }, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const overflow = React.useContext(InOverflowContext);\n const group = React.useMemo(() => ({ disabled }), [disabled]);\n\n if (overflow) {\n return (\n <DropdownMenu.Group {...props} ref={forwardedRef} className={className}>\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </DropdownMenu.Group>\n );\n }\n\n return (\n <div\n role=\"group\"\n data-orientation={toolbar?.orientation ?? 'horizontal'}\n data-disabled={disabled || undefined}\n {...props}\n ref={forwardedRef}\n className={classNames('kui-ToolbarGroup', className)}\n >\n <ToolbarGroupContext.Provider value={group}>{children}</ToolbarGroupContext.Provider>\n </div>\n );\n },\n);\nToolbarGroup.displayName = 'Toolbar.Group';\n\n// ============================================================================\n// ToolbarButton\n// ============================================================================\n\ntype ToolbarButtonBaseProps = Omit<ButtonProps, 'as' | 'variant' | 'emphasis'>;\n\n/** A labelled button: takes every `Button` prop. */\ntype ToolbarTextButtonProps = ToolbarButtonBaseProps &\n ButtonRankProps & {\n iconOnly?: false;\n};\n\n/** An icon-only button: renders `Button iconOnly`, and the type requires an `aria-label`. */\ntype ToolbarIconButtonProps = Omit<ToolbarButtonBaseProps, 'aria-label' | 'aria-labelledby' | 'fullWidth'> &\n ButtonRankProps & {\n iconOnly: true;\n /** The control's accessible name. An icon has no words of its own, so this is required. */\n 'aria-label': string;\n};\n\ntype ToolbarButtonProps = ToolbarTextButtonProps | ToolbarIconButtonProps;\n\n/** The plain DOM props, besides handlers, ARIA and data attributes, a menu row takes from a ToolbarButton. */\nconst OVERFLOW_ITEM_KEYS = new Set(['id', 'className', 'style', 'title']);\n\nfunction isPressed(value: React.AriaAttributes['aria-pressed']) {\n return value === true || value === 'true';\n}\n\n/** Does an `asChild` child render a native `<button>`? Only then is it a Radix Toolbar.Button. */\nfunction isButtonElement(children: React.ReactNode) {\n return React.isValidElement(children) && children.type === 'button';\n}\n\n/**\n * A `Button` that joins the toolbar's keyboard navigation, so a row of them is one tab stop.\n *\n * Set `iconOnly` (with an `aria-label`) for a symbol-only control. Set `aria-pressed` for a\n * control that toggles; a pressed button wears Button's pressed look. Set `asChild` to render\n * your own element, such as a link: `<ToolbarButton asChild><a href=\"/docs\">Docs</a></ToolbarButton>`.\n * A link stays in the arrow-key row and gets no `type` attribute.\n *\n * It takes the toolbar's `size`, and rests as a gray `soft` button (`raised` in a toolbar with\n * `backdrop`, gray `ghost` inside a `ToolbarGroup`). A stated `size`, `variant` or `color` wins; a\n * stated `variant` without a `color` takes Button's own default colour.\n *\n * In a `ToolbarOverflow`'s menu it renders a menu item; an icon-only button uses its\n * `aria-label` as the item's text. Outside a `Toolbar` (rendered through a React portal, for\n * example) it renders a plain Button with the same rest look, as its own tab stop. Use\n * `ToolbarSlot` and `ToolbarFill` for a control that should join the row's arrow keys.\n */\nconst ToolbarButton = React.forwardRef<HTMLButtonElement, ToolbarButtonProps>((props, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const group = React.useContext(ToolbarGroupContext);\n const overflow = React.useContext(InOverflowContext);\n const { iconOnly, size, variant, emphasis, color, disabled, asChild, onKeyDown, ...rest } = props;\n const off = disabled || group?.disabled || undefined;\n\n if (overflow) {\n // Only what a menu row means comes across: handlers, ARIA, data attributes, id, class and\n // style. Button's box props (size, loading, tooltip, fullWidth and the rest) would land on the\n // DOM as unknown attributes. A wrapping menu trigger hands its open handlers (onPointerDown,\n // onKeyDown), aria-expanded/haspopup/controls and data-state in through these, so it still\n // opens from the row.\n const passed: Record<string, unknown> = {};\n for (const key of Object.keys(rest)) {\n if (/^on[A-Z]/.test(key) || key.startsWith('aria-') || key.startsWith('data-') || OVERFLOW_ITEM_KEYS.has(key)) {\n passed[key] = (rest as Record<string, unknown>)[key];\n }\n }\n if (onKeyDown) passed.onKeyDown = onKeyDown;\n return (\n <ToolbarOverflowItem\n {...(passed as React.ComponentPropsWithoutRef<'div'>)}\n ref={forwardedRef as unknown as React.Ref<HTMLDivElement>}\n asChild={asChild}\n iconOnly={iconOnly}\n disabled={off}\n color={color}\n pressed={props['aria-pressed'] === undefined ? undefined : isPressed(props['aria-pressed'])}\n >\n {rest.children}\n </ToolbarOverflowItem>\n );\n }\n\n // In a vertical toolbar, Up and Down belong to the toolbar. A menu trigger rendering this\n // hands its open-on-arrow handler in through `onKeyDown`; those two keys skip it (v2).\n const handleKeyDown =\n toolbar?.orientation === 'vertical' && onKeyDown\n ? (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') return;\n onKeyDown(event);\n }\n : onKeyDown;\n\n const pressed = isPressed(props['aria-pressed']);\n const stateProps =\n 'data-state' in props || props['aria-pressed'] === undefined ? {} : { 'data-state': pressed ? 'on' : 'off' };\n\n const shared = {\n size: size ?? toolbar?.size,\n // A caller states the look by `variant` or the rank by `emphasis`, never both.\n ...(emphasis !== undefined\n ? { emphasis }\n : { variant: variant ?? (group ? 'ghost' : toolbar?.backdrop ? 'raised' : 'soft') }),\n // The gray rest is a pair with the default variant: a caller who states a variant or an\n // emphasis gets Button's own colour for it unless they state a colour too.\n color: color ?? (variant || emphasis ? undefined : 'gray'),\n ...stateProps,\n } as const;\n\n // The text and icon-only branches share every prop but the name; one Button renders both.\n const buttonProps = {\n ...rest,\n ...(iconOnly ? { iconOnly: true } : {}),\n ...(asChild ? { asChild: true } : {}),\n ...(handleKeyDown ? { onKeyDown: handleKeyDown } : {}),\n ...shared,\n } as ButtonProps;\n\n // Outside a toolbar there is no row to join: a plain Button, not a throw.\n if (!toolbar) {\n return <Button {...buttonProps} ref={forwardedRef} disabled={off} />;\n }\n\n // A link (or any non-button child) joins the row as a Radix Toolbar.Link, which sets no\n // `type`. Toolbar.Button would stamp `type=\"button\"` on it.\n if (asChild && !isButtonElement(rest.children)) {\n return (\n <ToolbarPrimitive.Link asChild ref={forwardedRef as unknown as React.Ref<HTMLAnchorElement>}>\n <Button {...buttonProps} disabled={off} />\n </ToolbarPrimitive.Link>\n );\n }\n\n return (\n <ToolbarPrimitive.Button asChild ref={forwardedRef} disabled={off}>\n <Button {...buttonProps} />\n </ToolbarPrimitive.Button>\n );\n});\nToolbarButton.displayName = 'Toolbar.Button';\n\ninterface ToolbarOverflowItemProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onSelect' | 'color'> {\n asChild?: boolean;\n iconOnly?: boolean;\n disabled?: boolean;\n color?: ButtonProps['color'];\n /** A toggle's pressed state. A toggle becomes a checkbox item, so the menu still says whether it is on. */\n pressed?: boolean;\n}\n\n/**\n * A ToolbarButton drawn into the overflow menu: the same element, as a menu item. An icon-only\n * button's `aria-label` becomes the item's text beside its icon, since a menu row has room for\n * words. What prices a box (size, variant, emphasis, iconOnly) does not come across.\n */\nconst ToolbarOverflowItem = React.forwardRef<HTMLDivElement, ToolbarOverflowItemProps>(\n ({ asChild, iconOnly, disabled, color, pressed, children, 'aria-label': label, ...props }, forwardedRef) => {\n const words = iconOnly ? label : undefined;\n const itemProps = {\n ...props,\n ...(iconOnly ? {} : label ? { 'aria-label': label } : {}),\n disabled,\n ...(color ? { color: color as DropdownMenu.ItemProps['color'] } : {}),\n };\n if (asChild && React.isValidElement<{ children?: React.ReactNode }>(children)) {\n const child = words\n ? React.cloneElement(children, undefined, children.props.children, <span>{words}</span>)\n : children;\n return (\n <DropdownMenu.Item {...itemProps} ref={forwardedRef} asChild>\n {child}\n </DropdownMenu.Item>\n );\n }\n if (pressed !== undefined) {\n return (\n <DropdownMenu.CheckboxItem {...itemProps} ref={forwardedRef} checked={pressed}>\n {children}\n {words}\n </DropdownMenu.CheckboxItem>\n );\n }\n return (\n <DropdownMenu.Item {...itemProps} ref={forwardedRef}>\n {children}\n {words}\n </DropdownMenu.Item>\n );\n },\n);\nToolbarOverflowItem.displayName = 'Toolbar.OverflowItem';\n\n// ============================================================================\n// ToolbarOverflow\n// ============================================================================\n\ninterface ToolbarOverflowProps extends ComponentPropsWithout<'div', RemovedProps> {\n /** The accessible name of the \"More\" button. Defaults to `More`. */\n label?: string;\n /** The controls in the cluster, in order. The ones that don't fit move into the \"More\" menu. */\n children?: React.ReactNode;\n}\n\n/** Three filled dots for the \"More\" button. Internal, so the library carries no icon set. */\nfunction MoreIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentcolor\" aria-hidden xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"3.25\" cy=\"8\" r=\"1.25\" />\n <circle cx=\"8\" cy=\"8\" r=\"1.25\" />\n <circle cx=\"12.75\" cy=\"8\" r=\"1.25\" />\n </svg>\n );\n}\n\n/**\n * A cluster of controls that collapses into a \"More\" menu when the row runs out of room.\n *\n * It takes the room the row leaves, and when its controls don't fit, they move into the menu\n * from the end of the cluster. A `ToolbarButton` shows as a menu item there, and a\n * `ToolbarGroup` as a menu group. Use `useToolbarOverflow()` in your own components to render a\n * different form in the menu.\n *\n * It measures on mount and on resize (v2 ToolbarOverflow): each control's width is cached while\n * it is in the row, since a hidden control has no width to measure.\n */\nconst ToolbarOverflow = React.forwardRef<HTMLDivElement, ToolbarOverflowProps>(\n ({ label = 'More', className, children, ...props }, forwardedRef) => {\n const items = React.Children.toArray(children);\n const count = items.length;\n\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const widths = React.useRef<number[]>([]);\n const triggerWidth = React.useRef(0);\n const [shown, setShown] = React.useState(count);\n const [tick, setTick] = React.useState(0);\n\n // A different set of children is a different set of widths: show them all and measure again.\n const [measuredCount, setMeasuredCount] = React.useState(count);\n if (measuredCount !== count) {\n setMeasuredCount(count);\n setShown(count);\n }\n useLayoutEffect(() => {\n widths.current = [];\n }, [count]);\n\n useLayoutEffect(() => {\n const root = rootRef.current;\n if (!root) return;\n\n // The root's children are one seat per visible child, then the trigger.\n const kids = Array.from(root.children) as HTMLElement[];\n const visible = Math.min(shown, count);\n for (let i = 0; i < visible; i++) {\n const el = kids[i];\n if (el) widths.current[i] = el.offsetWidth;\n }\n const trigger = kids[visible];\n if (trigger) triggerWidth.current = trigger.offsetWidth;\n\n const gap = Number.parseFloat(getComputedStyle(root).columnGap) || 0;\n const available = root.clientWidth;\n\n let total = 0;\n let counted = 0;\n for (let i = 0; i < count; i++) {\n const width = widths.current[i];\n // Never seen in the row, so there is nothing to decide with yet.\n if (width === undefined) return;\n // An empty seat leaves the layout, so it spends no gap.\n if (width === 0) continue;\n total += width + (counted > 0 ? gap : 0);\n counted += 1;\n }\n\n let next = count;\n if (total > available) {\n // Before the trigger exists, the row's height stands in for its width: an icon-only\n // button is square. The next pass, before paint, corrects it.\n const budget = available - (triggerWidth.current || root.clientHeight) - gap;\n let used = 0;\n let drawn = 0;\n next = 0;\n for (let i = 0; i < count; i++) {\n const own = widths.current[i]!;\n if (own > 0) {\n const width = own + (drawn > 0 ? gap : 0);\n if (used + width > budget) break;\n used += width;\n drawn += 1;\n }\n next += 1;\n }\n }\n if (next !== shown) setShown(next);\n }, [shown, count, tick]);\n\n // Watch the row and every seat in it: a control whose content changes (a page's actions\n // arriving after navigation) changes its width without the row's width changing.\n React.useEffect(() => {\n const root = rootRef.current;\n if (!root || typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => setTick((n) => n + 1));\n observer.observe(root);\n for (const seat of Array.from(root.children)) observer.observe(seat);\n return () => observer.disconnect();\n }, [shown, count]);\n\n const attach = React.useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef],\n );\n\n return (\n <div {...props} ref={attach} className={classNames('kui-ToolbarOverflow', className)}>\n {items.slice(0, shown).map((item, i) => (\n // The seat is a position in the row, so its key is the index.\n <div key={i} className=\"kui-ToolbarOverflowSeat\">\n {item}\n </div>\n ))}\n {shown < count ? (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger>\n <ToolbarButton iconOnly aria-label={label}>\n <MoreIcon />\n </ToolbarButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n <InOverflowContext.Provider value>{items.slice(shown)}</InOverflowContext.Provider>\n </DropdownMenu.Content>\n </DropdownMenu.Root>\n ) : null}\n </div>\n );\n },\n);\nToolbarOverflow.displayName = 'Toolbar.Overflow';\n\n// ============================================================================\n// ToolbarSlot and ToolbarFill\n// ============================================================================\n\ntype SlotEntry = { id: string; node: React.ReactNode };\n\nconst EMPTY_ENTRIES: readonly SlotEntry[] = [];\nconst slotEntries = new Map<string, readonly SlotEntry[]>();\nconst slotListeners = new Set<() => void>();\n/** How many ToolbarSlots of each name are mounted, to warn when one Fill would render twice. */\nconst mountedSlots = new Map<string, number>();\n\nfunction subscribeSlots(listener: () => void) {\n slotListeners.add(listener);\n return () => {\n slotListeners.delete(listener);\n };\n}\n\nfunction setSlotEntry(name: string, id: string, node: React.ReactNode) {\n const list = slotEntries.get(name) ?? EMPTY_ENTRIES;\n const index = list.findIndex((entry) => entry.id === id);\n const next = index === -1 ? [...list, { id, node }] : list.map((entry) => (entry.id === id ? { id, node } : entry));\n slotEntries.set(name, next);\n slotListeners.forEach((listener) => listener());\n}\n\nfunction removeSlotEntry(name: string, id: string) {\n const list = slotEntries.get(name);\n if (!list) return;\n const next = list.filter((entry) => entry.id !== id);\n if (next.length === 0) slotEntries.delete(name);\n else slotEntries.set(name, next);\n slotListeners.forEach((listener) => listener());\n}\n\ninterface ToolbarSlotProps {\n /**\n * Which `ToolbarFill` renders here. Defaults to `default`. Names are global to the page: mount one\n * slot per name, or the fill renders in each of them (development builds warn).\n */\n name?: string;\n}\n\n/**\n * A place in a toolbar that content elsewhere in the app fills, such as a page adding its own\n * actions to a header toolbar the layout owns.\n *\n * It renders whatever the `ToolbarFill` with the same `name` holds, as if it were written here:\n * the controls take the toolbar's size and join its arrow-key row. It adds no element.\n */\nfunction ToolbarSlot({ name = 'default' }: ToolbarSlotProps) {\n useLayoutEffect(() => {\n const count = (mountedSlots.get(name) ?? 0) + 1;\n mountedSlots.set(name, count);\n if (count > 1 && process.env.NODE_ENV !== 'production') {\n console.warn(`[kookie-ui] ToolbarSlot: ${count} slots named \"${name}\" are mounted. Each renders the ToolbarFill's controls, so they appear more than once. Give each slot its own name.`);\n }\n return () => {\n const left = (mountedSlots.get(name) ?? 1) - 1;\n if (left > 0) mountedSlots.set(name, left);\n else mountedSlots.delete(name);\n };\n }, [name]);\n const entries = React.useSyncExternalStore(\n subscribeSlots,\n () => slotEntries.get(name) ?? EMPTY_ENTRIES,\n () => EMPTY_ENTRIES,\n );\n return (\n <>\n {entries.map((entry) => (\n <React.Fragment key={entry.id}>{entry.node}</React.Fragment>\n ))}\n </>\n );\n}\nToolbarSlot.displayName = 'Toolbar.Slot';\n\ninterface ToolbarFillProps {\n /** The `ToolbarSlot` to render into. Defaults to `default`. */\n name?: string;\n /** The controls to show in the slot, such as `ToolbarButton`s. */\n children?: React.ReactNode;\n}\n\n/**\n * Sends its children to the `ToolbarSlot` with the same `name`, and renders nothing where it\n * is written. Use it instead of a React portal: a portal keeps the page's React tree, so a\n * ToolbarButton in it can't join the toolbar's arrow keys.\n *\n * The children render inside the toolbar, so they read the toolbar's context, not the page's.\n * They appear after the page mounts on the client, not in server-rendered HTML.\n */\nfunction ToolbarFill({ name = 'default', children }: ToolbarFillProps) {\n const id = React.useId();\n useLayoutEffect(() => {\n setSlotEntry(name, id, children);\n }, [name, id, children]);\n useLayoutEffect(() => () => removeSlotEntry(name, id), [name, id]);\n return null;\n}\nToolbarFill.displayName = 'Toolbar.Fill';\n\n// ============================================================================\n// ToolbarSeparator\n// ============================================================================\n\ntype ToolbarSeparatorProps = ComponentPropsWithout<typeof ToolbarPrimitive.Separator, RemovedProps | 'orientation'>;\n\n/**\n * A gray hairline between two clusters, announced as a separator. Its direction is always\n * opposite to the toolbar's. In a `ToolbarOverflow`'s menu it is a menu separator.\n */\nconst ToolbarSeparator = React.forwardRef<HTMLDivElement, ToolbarSeparatorProps>(\n ({ className, ...props }, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const overflow = React.useContext(InOverflowContext);\n if (overflow) return <DropdownMenu.Separator {...props} ref={forwardedRef} className={className} />;\n if (!toolbar) {\n return (\n <div\n role=\"separator\"\n aria-orientation=\"vertical\"\n data-orientation=\"vertical\"\n {...props}\n ref={forwardedRef}\n className={classNames('kui-ToolbarSeparator', className)}\n />\n );\n }\n return (\n <ToolbarPrimitive.Separator\n {...props}\n ref={forwardedRef}\n className={classNames('kui-ToolbarSeparator', className)}\n />\n );\n },\n);\nToolbarSeparator.displayName = 'Toolbar.Separator';\n\n// ============================================================================\n// ToolbarTitle\n// ============================================================================\n\n/** The title's text step: one step above the label of a button at the same size. */\nconst TITLE_SIZE = { '1': '2', '2': '3', '3': '4', '4': '5' } as const satisfies Record<ToolbarSize, TextProps['size']>;\n\ninterface ToolbarTitleProps {\n /**\n * The title text. With none, the title mirrors the page in this Shell pane: it shows the\n * `Page`'s title once that title has scrolled behind the band. Outside a pane with a page, it\n * renders nothing.\n */\n children?: React.ReactNode;\n className?: string;\n style?: React.CSSProperties;\n /** The id of the title, so that the toolbar's `aria-labelledby` can point at it. */\n id?: string;\n}\n\n/**\n * What the row is about, at its leading edge. One line: it truncates rather than wrapping.\n * Its text step follows the toolbar's `size`, and it takes more air from the controls beside it\n * than they take from each other.\n */\nconst ToolbarTitle = React.forwardRef<HTMLSpanElement, ToolbarTitleProps>(\n ({ className, children, style, id }, forwardedRef) => {\n const toolbar = React.useContext(ToolbarContext);\n const themeSize = useThemeSize<ToolbarSize>(undefined, toolbarRootPropDefs.size);\n const size = toolbar?.size ?? themeSize;\n const store = usePageScope();\n const pageTitle = usePageTitle(store);\n const mirrorRef = usePageMirror(store);\n const mirroring = children === undefined || children === null || children === false;\n const words = mirroring ? pageTitle : children;\n const ref = useComposedRefs(forwardedRef, mirroring ? mirrorRef : undefined);\n if (words === undefined || words === null) return null;\n return (\n <Text\n ref={ref}\n as=\"span\"\n size={TITLE_SIZE[size]}\n weight=\"medium\"\n truncate\n id={id}\n style={style}\n className={classNames('kui-ToolbarTitle', className)}\n data-mirror={mirroring || undefined}\n >\n {words}\n </Text>\n );\n },\n);\nToolbarTitle.displayName = 'Toolbar.Title';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst Toolbar = Object.assign(ToolbarRoot, {\n Root: ToolbarRoot,\n Group: ToolbarGroup,\n Button: ToolbarButton,\n Separator: ToolbarSeparator,\n Title: ToolbarTitle,\n Overflow: ToolbarOverflow,\n Slot: ToolbarSlot,\n Fill: ToolbarFill,\n});\n\nexport {\n Toolbar,\n ToolbarGroup,\n ToolbarButton,\n ToolbarSeparator,\n ToolbarTitle,\n ToolbarOverflow,\n ToolbarSlot,\n ToolbarFill,\n useToolbarOverflow,\n ToolbarRoot as Root,\n ToolbarGroup as Group,\n ToolbarButton as Button,\n ToolbarSeparator as Separator,\n ToolbarTitle as Title,\n ToolbarOverflow as Overflow,\n ToolbarSlot as Slot,\n ToolbarFill as Fill,\n};\nexport type {\n ToolbarProps,\n ToolbarGroupProps,\n ToolbarButtonProps,\n ToolbarSeparatorProps,\n ToolbarTitleProps,\n ToolbarOverflowProps,\n ToolbarSlotProps,\n ToolbarFillProps,\n ToolbarProps as RootProps,\n ToolbarGroupProps as GroupProps,\n ToolbarButtonProps as ButtonProps,\n ToolbarSeparatorProps as SeparatorProps,\n ToolbarTitleProps as TitleProps,\n ToolbarOverflowProps as OverflowProps,\n ToolbarSlotProps as SlotProps,\n ToolbarFillProps as FillProps,\n};\n", "import type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst orientations = ['horizontal', 'vertical'] as const;\n\n/**\n * Toolbar prop definitions.\n *\n * `size` is one value for the whole row (not responsive): the row hands it to every control\n * inside it that does not state its own, through context, so it has to be a single index.\n */\nconst toolbarRootPropDefs = {\n /**\n * Size step of the row and of every control in it that doesn't set its own `size`.\n * Matches Button's sizes: 1 (28px) to 4 (48px). Unset inside a Shell, it rests one step above\n * the Shell's `size`, except in a pane's `Shell.Scroll` list and in a Popover, Dialog, Sheet or\n * menu. Elsewhere it takes Theme size, else 2.\n */\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2' },\n /**\n * Direction of the row and of the arrow keys. Use `vertical` for a strip of tools along an edge.\n */\n orientation: { type: 'enum', values: orientations, default: 'horizontal' },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n orientation: PropDef<(typeof orientations)[number]>;\n};\n\nexport { toolbarRootPropDefs };\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useComposedRefs", "useLayoutEffect", "classNames", "ToolbarPrimitive", "sizes", "orientations", "toolbarRootPropDefs", "ToolbarContext", "ToolbarGroupContext", "InOverflowContext", "useToolbarOverflow", "ToolbarRoot", "props", "forwardedRef", "band", "usePaneBandSize", "size", "useThemeSize", "toolbarRootPropDefs", "orientation", "className", "_orientation", "backdrop", "children", "rootProps", "extractProps", "layoutPropDefs", "context", "ToolbarPrimitive", "classNames", "ToolbarGroup", "disabled", "toolbar", "overflow", "group", "DropdownMenuGroup", "OVERFLOW_ITEM_KEYS", "isPressed", "value", "isButtonElement", "ToolbarButton", "iconOnly", "variant", "emphasis", "color", "asChild", "onKeyDown", "rest", "off", "passed", "key", "ToolbarOverflowItem", "handleKeyDown", "event", "pressed", "stateProps", "shared", "buttonProps", "Button", "label", "words", "itemProps", "child", "DropdownMenuItem", "DropdownMenuCheckboxItem", "MoreIcon", "ToolbarOverflow", "items", "count", "rootRef", "widths", "triggerWidth", "shown", "setShown", "tick", "setTick", "measuredCount", "setMeasuredCount", "useLayoutEffect", "root", "kids", "visible", "i", "el", "trigger", "gap", "available", "total", "counted", "width", "next", "budget", "used", "drawn", "own", "observer", "n", "seat", "attach", "node", "item", "DropdownMenuRoot", "DropdownMenuTrigger", "DropdownMenuContent", "EMPTY_ENTRIES", "slotEntries", "slotListeners", "mountedSlots", "subscribeSlots", "listener", "setSlotEntry", "name", "id", "list", "entry", "removeSlotEntry", "ToolbarSlot", "left", "entries", "ToolbarFill", "ToolbarSeparator", "DropdownMenuSeparator", "TITLE_SIZE", "ToolbarTitle", "style", "themeSize", "store", "usePageScope", "pageTitle", "usePageTitle", "mirrorRef", "usePageMirror", "mirroring", "ref", "useComposedRefs", "Text", "Toolbar"]
7
+ }
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ //# sourceMappingURL=chunk-RSG4XWHU.js.map
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{a as W}from"./chunk-BUXK5VGR.js";import{a as F}from"./chunk-KVVRFWGQ.js";import{k as _}from"./chunk-GKDGNPBD.js";import{c as j}from"./chunk-OKQAVYW4.js";import{c as A}from"./chunk-5ON3XLRD.js";import{d as z}from"./chunk-HBWBPBSA.js";import{b as H}from"./chunk-XU74PNM2.js";import{a as V}from"./chunk-CLJ6SEGP.js";import*as e from"react";import le from"classnames";import{Slot as de}from"radix-ui";import{useComposedRefs as pe,useLayoutEffect as ue}from"radix-ui/internal";var ie=["1","2","3","4"],ce=["raised","solid","soft","surface","outline","ghost"],C={...V,size:{type:"enum",className:"kui-r-size",values:ie,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:ce,default:"solid"},...z,...H,loading:{type:"boolean",className:"kui-loading",default:!1},fullWidth:{type:"boolean",className:"kui-full-width",default:!1}};var me=e.forwardRef((i,n)=>{let a=A(i,C.size),{className:T,children:o,asChild:s,as:R,color:X,radius:q,disabled:y,done:b=!1,...u}=j(a,C),p=!!a.loading,D=a.loading!==void 0,m=!!y||p,{onClick:v,"aria-describedby":M}=u,K=e.useCallback(t=>{if(m){t.preventDefault();return}v?.(t)},[m,v]),Q=e.useMemo(()=>{let t=s&&e.isValidElement(o)?o.props.children:o,c=k(t),l=r=>e.isValidElement(r)&&(r.type==="svg"||typeof r.type!="string"&&r.type!==e.Fragment&&!fe.has(P(r.type)));return{iconStart:l(c[0]),iconEnd:l(c[c.length-1])}},[s,o]),[E,$]=e.useState(null),S=e.useRef(null),J=pe(n,S);ue(()=>{let t=S.current;if(!t||p||b)return;let c=t.querySelector(":scope > .kui-BaseButtonContent")??t,l=G(c,"start"),r=G(c,"end");$(d=>d&&d.iconStart===l&&d.iconEnd===r?d:{iconStart:l,iconEnd:r})});let{iconStart:h,iconEnd:U}=E??Q,x=!!u["data-icon-only"],f=e.useMemo(()=>{if(!b)return o;let t=e.createElement(_,{key:"kui-done-tick",className:"kui-BaseButtonTick","aria-hidden":!0}),c=l=>{if(x)return t;let r=k(l),d=r.findIndex(B=>!(typeof B=="string"&&!B.trim())),I=r[d];return d!==-1&&h&&(E!==null||e.isValidElement(I)&&I.type==="svg")?r.map((B,re)=>re===d?t:B):[t,...r]};if(s&&e.isValidElement(o)){let l=o;return e.cloneElement(l,void 0,c(l.props.children))}return c(o)},[b,o,x,h,E,s]),Y=s?de.Root:R||"button",Z=["button","input","textarea","select"],w=s?e.isValidElement(o)?o.type:void 0:R||"button",N=typeof w=="string"&&Z.includes(w),{onClickCapture:L}=u,ee=e.useCallback(t=>{if(s&&m){t.preventDefault(),t.stopPropagation();return}L?.(t)},[s,m,L]),te=!s&&(!R||R==="button"),ne="type"in u,oe=e.useId(),g=p?`${oe}-loading`:void 0,ae=e.useMemo(()=>p?{"aria-busy":!0,"aria-disabled":!0,"aria-describedby":[M,g].filter(Boolean).join(" ")}:y&&(!N||s)?{"aria-disabled":!0}:{},[p,g,M,y,N,s]),O=(t,c)=>D?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-BaseButtonContent","aria-hidden":p||void 0},t),p?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-sr-only"},e.createElement("span",{id:g,"aria-hidden":!0},"Loading"),c),e.createElement(F,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},e.createElement("span",null,e.createElement(W,{"aria-hidden":"true"})))):null):t,se=s&&D&&e.isValidElement(f)?e.cloneElement(f,void 0,O(f.props.children,e.isValidElement(o)?o.props.children:null)):f;return e.createElement(Y,{"data-accent-color":X,"data-radius":q,"data-icon-start":h||void 0,"data-icon-end":U||void 0,"data-done":b||void 0,...u,...ae,"data-disabled":m||void 0,onClick:K,onClickCapture:ee,ref:J,className:le("kui-reset","kui-BaseButton",T),...N&&{disabled:y},...te&&!ne?{type:"button"}:{}},s?se:O(f,o))});me.displayName="BaseButton";var fe=new Set(["Text","Kbd","Code","Link","Em","Strong","Quote","Badge","Trans"]);function P(i){if(!i||typeof i!="function"&&typeof i!="object")return"";let n=i;return n.displayName||n.name||P(n.render)||P(n.type)}function k(i){return e.Children.toArray(i).flatMap(n=>e.isValidElement(n)&&n.type===e.Fragment?k(n.props.children):[n])}function G(i,n){let a=n==="start"?i.firstChild:i.lastChild;for(;a&&(a.nodeType===Node.COMMENT_NODE||a.nodeType===Node.TEXT_NODE&&!a.textContent?.trim());)a=n==="start"?a.nextSibling:a.previousSibling;return a?.nodeType===Node.ELEMENT_NODE&&a.localName==="svg"}export{me as a};
3
- //# sourceMappingURL=chunk-2ZKEQS76.js.map
2
+ import{a as W}from"./chunk-BUXK5VGR.js";import{a as F}from"./chunk-KVVRFWGQ.js";import{k as _}from"./chunk-GKDGNPBD.js";import{c as A}from"./chunk-5ON3XLRD.js";import{d as z}from"./chunk-HBWBPBSA.js";import{b as H}from"./chunk-XU74PNM2.js";import{c as j}from"./chunk-OKQAVYW4.js";import{a as V}from"./chunk-CLJ6SEGP.js";import*as e from"react";import le from"classnames";import{Slot as de}from"radix-ui";import{useComposedRefs as pe,useLayoutEffect as ue}from"radix-ui/internal";var ie=["1","2","3","4"],ce=["raised","solid","soft","surface","outline","ghost"],C={...V,size:{type:"enum",className:"kui-r-size",values:ie,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:ce,default:"solid"},...z,...H,loading:{type:"boolean",className:"kui-loading",default:!1},fullWidth:{type:"boolean",className:"kui-full-width",default:!1}};var me=e.forwardRef((i,n)=>{let a=A(i,C.size),{className:T,children:o,asChild:s,as:R,color:X,radius:q,disabled:y,done:b=!1,...u}=j(a,C),p=!!a.loading,D=a.loading!==void 0,m=!!y||p,{onClick:v,"aria-describedby":M}=u,K=e.useCallback(t=>{if(m){t.preventDefault();return}v?.(t)},[m,v]),Q=e.useMemo(()=>{let t=s&&e.isValidElement(o)?o.props.children:o,c=k(t),l=r=>e.isValidElement(r)&&(r.type==="svg"||typeof r.type!="string"&&r.type!==e.Fragment&&!fe.has(P(r.type)));return{iconStart:l(c[0]),iconEnd:l(c[c.length-1])}},[s,o]),[E,$]=e.useState(null),S=e.useRef(null),J=pe(n,S);ue(()=>{let t=S.current;if(!t||p||b)return;let c=t.querySelector(":scope > .kui-BaseButtonContent")??t,l=G(c,"start"),r=G(c,"end");$(d=>d&&d.iconStart===l&&d.iconEnd===r?d:{iconStart:l,iconEnd:r})});let{iconStart:h,iconEnd:U}=E??Q,x=!!u["data-icon-only"],f=e.useMemo(()=>{if(!b)return o;let t=e.createElement(_,{key:"kui-done-tick",className:"kui-BaseButtonTick","aria-hidden":!0}),c=l=>{if(x)return t;let r=k(l),d=r.findIndex(B=>!(typeof B=="string"&&!B.trim())),I=r[d];return d!==-1&&h&&(E!==null||e.isValidElement(I)&&I.type==="svg")?r.map((B,re)=>re===d?t:B):[t,...r]};if(s&&e.isValidElement(o)){let l=o;return e.cloneElement(l,void 0,c(l.props.children))}return c(o)},[b,o,x,h,E,s]),Y=s?de.Root:R||"button",Z=["button","input","textarea","select"],w=s?e.isValidElement(o)?o.type:void 0:R||"button",N=typeof w=="string"&&Z.includes(w),{onClickCapture:L}=u,ee=e.useCallback(t=>{if(s&&m){t.preventDefault(),t.stopPropagation();return}L?.(t)},[s,m,L]),te=!s&&(!R||R==="button"),ne="type"in u,oe=e.useId(),g=p?`${oe}-loading`:void 0,ae=e.useMemo(()=>p?{"aria-busy":!0,"aria-disabled":!0,"aria-describedby":[M,g].filter(Boolean).join(" ")}:y&&(!N||s)?{"aria-disabled":!0}:{},[p,g,M,y,N,s]),O=(t,c)=>D?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-BaseButtonContent","aria-hidden":p||void 0},t),p?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-sr-only"},e.createElement("span",{id:g,"aria-hidden":!0},"Loading"),c),e.createElement(F,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},e.createElement("span",null,e.createElement(W,{"aria-hidden":"true"})))):null):t,se=s&&D&&e.isValidElement(f)?e.cloneElement(f,void 0,O(f.props.children,e.isValidElement(o)?o.props.children:null)):f;return e.createElement(Y,{"data-accent-color":X,"data-radius":q,"data-icon-start":h||void 0,"data-icon-end":U||void 0,"data-done":b||void 0,...u,...ae,"data-disabled":m||void 0,onClick:K,onClickCapture:ee,ref:J,className:le("kui-reset","kui-BaseButton",T),...N&&{disabled:y},...te&&!ne?{type:"button"}:{}},s?se:O(f,o))});me.displayName="BaseButton";var fe=new Set(["Text","Kbd","Code","Link","Em","Strong","Quote","Badge","Trans"]);function P(i){if(!i||typeof i!="function"&&typeof i!="object")return"";let n=i;return n.displayName||n.name||P(n.render)||P(n.type)}function k(i){return e.Children.toArray(i).flatMap(n=>e.isValidElement(n)&&n.type===e.Fragment?k(n.props.children):[n])}function G(i,n){let a=n==="start"?i.firstChild:i.lastChild;for(;a&&(a.nodeType===Node.COMMENT_NODE||a.nodeType===Node.TEXT_NODE&&!a.textContent?.trim());)a=n==="start"?a.nextSibling:a.previousSibling;return a?.nodeType===Node.ELEMENT_NODE&&a.localName==="svg"}export{me as a};
3
+ //# sourceMappingURL=chunk-SGKLJDA3.js.map