@womp/kookie-ui 0.35.7 → 0.37.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 (370) hide show
  1. package/components.css +12 -20
  2. package/dist/cjs/components/_internal/base-menu.utils.js +1 -1
  3. package/dist/cjs/components/_internal/base-menu.utils.js.map +2 -2
  4. package/dist/cjs/components/_internal/menu-context.js +1 -1
  5. package/dist/cjs/components/_internal/menu-context.js.map +2 -2
  6. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  7. package/dist/cjs/components/_internal/pane-chrome.js.map +2 -2
  8. package/dist/cjs/components/_internal/shell-bottom.d.ts +3 -3
  9. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  10. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  11. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  12. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  13. package/dist/cjs/components/_internal/shell-handles.js +1 -1
  14. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  15. package/dist/cjs/components/_internal/shell-inspector.d.ts +3 -3
  16. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  17. package/dist/cjs/components/_internal/shell-inspector.js +1 -1
  18. package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
  19. package/dist/cjs/components/_internal/shell-pane.d.ts +2 -7
  20. package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
  21. package/dist/cjs/components/_internal/shell-pane.js +1 -1
  22. package/dist/cjs/components/_internal/shell-pane.js.map +3 -3
  23. package/dist/cjs/components/_internal/shell-resizable.d.ts +3 -9
  24. package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
  25. package/dist/cjs/components/_internal/shell-resizable.js +1 -1
  26. package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
  27. package/dist/cjs/components/_internal/shell-resize.d.ts +0 -4
  28. package/dist/cjs/components/_internal/shell-resize.d.ts.map +1 -1
  29. package/dist/cjs/components/_internal/shell-resize.js +1 -1
  30. package/dist/cjs/components/_internal/shell-resize.js.map +2 -2
  31. package/dist/cjs/components/_internal/shell-rest.d.ts +1 -6
  32. package/dist/cjs/components/_internal/shell-rest.d.ts.map +1 -1
  33. package/dist/cjs/components/_internal/shell-rest.js +1 -1
  34. package/dist/cjs/components/_internal/shell-rest.js.map +3 -3
  35. package/dist/cjs/components/_internal/shell-sidebar.d.ts +3 -3
  36. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  37. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  38. package/dist/cjs/components/_internal/shell-sidebar.js.map +3 -3
  39. package/dist/cjs/components/_internal/shell-store.d.ts +0 -10
  40. package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
  41. package/dist/cjs/components/_internal/shell-store.js +1 -1
  42. package/dist/cjs/components/_internal/shell-store.js.map +3 -3
  43. package/dist/cjs/components/_internal/use-close-warning.d.ts +12 -0
  44. package/dist/cjs/components/_internal/use-close-warning.d.ts.map +1 -0
  45. package/dist/cjs/components/_internal/use-close-warning.js +3 -0
  46. package/dist/cjs/components/_internal/use-close-warning.js.map +7 -0
  47. package/dist/cjs/components/checkbox-group.js +1 -1
  48. package/dist/cjs/components/checkbox-group.js.map +3 -3
  49. package/dist/cjs/components/checkbox-group.primitive.d.ts +0 -10
  50. package/dist/cjs/components/checkbox-group.primitive.d.ts.map +1 -1
  51. package/dist/cjs/components/checkbox-group.primitive.js +1 -1
  52. package/dist/cjs/components/checkbox-group.primitive.js.map +3 -3
  53. package/dist/cjs/components/context-menu.d.ts +1 -5
  54. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  55. package/dist/cjs/components/context-menu.js +1 -1
  56. package/dist/cjs/components/context-menu.js.map +3 -3
  57. package/dist/cjs/components/dialog.d.ts.map +1 -1
  58. package/dist/cjs/components/dialog.js +1 -1
  59. package/dist/cjs/components/dialog.js.map +4 -4
  60. package/dist/cjs/components/dropdown-menu.js +1 -1
  61. package/dist/cjs/components/dropdown-menu.js.map +2 -2
  62. package/dist/cjs/components/index.js +2 -2
  63. package/dist/cjs/components/index.js.map +4 -4
  64. package/dist/cjs/components/navigator.js.map +2 -2
  65. package/dist/cjs/components/schemas/index.d.ts +1 -1
  66. package/dist/cjs/components/schemas/index.d.ts.map +1 -1
  67. package/dist/cjs/components/schemas/index.js +1 -1
  68. package/dist/cjs/components/schemas/index.js.map +3 -3
  69. package/dist/cjs/components/schemas/shell.schema.d.ts +6 -112
  70. package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
  71. package/dist/cjs/components/schemas/shell.schema.js +1 -1
  72. package/dist/cjs/components/schemas/shell.schema.js.map +3 -3
  73. package/dist/cjs/components/separator.js +1 -1
  74. package/dist/cjs/components/separator.js.map +2 -2
  75. package/dist/cjs/components/sheet.d.ts +7 -4
  76. package/dist/cjs/components/sheet.d.ts.map +1 -1
  77. package/dist/cjs/components/sheet.js +1 -1
  78. package/dist/cjs/components/sheet.js.map +4 -4
  79. package/dist/cjs/components/shell.context.d.ts +1 -45
  80. package/dist/cjs/components/shell.context.d.ts.map +1 -1
  81. package/dist/cjs/components/shell.context.js +1 -1
  82. package/dist/cjs/components/shell.context.js.map +4 -4
  83. package/dist/cjs/components/shell.d.ts +7 -37
  84. package/dist/cjs/components/shell.d.ts.map +1 -1
  85. package/dist/cjs/components/shell.js +1 -1
  86. package/dist/cjs/components/shell.js.map +4 -4
  87. package/dist/cjs/components/shell.types.d.ts +6 -27
  88. package/dist/cjs/components/shell.types.d.ts.map +1 -1
  89. package/dist/cjs/components/shell.types.js +1 -1
  90. package/dist/cjs/components/shell.types.js.map +2 -2
  91. package/dist/cjs/components/sidebar.js +1 -1
  92. package/dist/cjs/components/sidebar.js.map +2 -2
  93. package/dist/cjs/components/toolbar.js +1 -1
  94. package/dist/cjs/components/toolbar.js.map +2 -2
  95. package/dist/cjs/hooks/use-breakpoint.js +1 -1
  96. package/dist/cjs/hooks/use-breakpoint.js.map +2 -2
  97. package/dist/cjs/index.js +4 -4
  98. package/dist/cjs/index.js.map +4 -4
  99. package/dist/esm/{chunk-LR4X7SVV.js → chunk-2K46JPUL.js} +2 -2
  100. package/dist/esm/chunk-3K7E4XL3.js +3 -0
  101. package/dist/esm/chunk-3K7E4XL3.js.map +7 -0
  102. package/dist/esm/chunk-3LR7KMBE.js +3 -0
  103. package/dist/esm/chunk-3LR7KMBE.js.map +7 -0
  104. package/dist/esm/{chunk-HGF4CKRY.js → chunk-3ZBEWLSO.js} +2 -2
  105. package/dist/esm/{chunk-26O4RBOJ.js → chunk-5BABJBV3.js} +2 -2
  106. package/dist/esm/{chunk-5APRBJRR.js → chunk-5GTQXMS2.js} +2 -2
  107. package/dist/esm/chunk-5U2LEJLU.js +3 -0
  108. package/dist/esm/chunk-5U2LEJLU.js.map +7 -0
  109. package/dist/esm/{chunk-KBSH6CBD.js → chunk-5XO3PLDH.js} +2 -2
  110. package/dist/esm/{chunk-SGKLJDA3.js → chunk-74JANLVU.js} +2 -2
  111. package/dist/esm/{chunk-TUZ665BA.js → chunk-7E3ZOVRL.js} +2 -2
  112. package/dist/esm/{chunk-COLJWVN7.js → chunk-AQR42GKA.js} +2 -2
  113. package/dist/esm/{chunk-FTNZWAPB.js → chunk-ARPUPT4M.js} +2 -2
  114. package/dist/esm/{chunk-OMPLFDS6.js → chunk-ASBTPKH3.js} +2 -2
  115. package/dist/esm/{chunk-JFJV4HL3.js → chunk-CFXFWIRM.js} +2 -2
  116. package/dist/esm/{chunk-YLGIP3A5.js → chunk-CJZGEHVB.js} +2 -2
  117. package/dist/esm/{chunk-ISCZ57VL.js → chunk-DJGZ4K3V.js} +2 -2
  118. package/dist/esm/{chunk-PMXIQ5B4.js → chunk-FKCKELUB.js} +2 -2
  119. package/dist/esm/{chunk-Y5ITMKC6.js → chunk-G7S2BMS3.js} +2 -2
  120. package/dist/esm/{chunk-SR42NATX.js → chunk-GHIHF55B.js} +2 -2
  121. package/dist/esm/chunk-H7GH3DTF.js +3 -0
  122. package/dist/esm/chunk-H7GH3DTF.js.map +7 -0
  123. package/dist/esm/{chunk-C6VGCYFQ.js → chunk-HNOT2HS4.js} +2 -2
  124. package/dist/esm/chunk-HWT2K2XR.js +3 -0
  125. package/dist/esm/chunk-HWT2K2XR.js.map +7 -0
  126. package/dist/esm/{chunk-D42VCLKH.js → chunk-ICO5ULJL.js} +2 -2
  127. package/dist/esm/{chunk-FYZXC7AL.js → chunk-JJVAVLCN.js} +2 -2
  128. package/dist/esm/chunk-LBAC2X4U.js +3 -0
  129. package/dist/esm/{chunk-5BXCPANF.js.map → chunk-LBAC2X4U.js.map} +3 -3
  130. package/dist/esm/{chunk-R4DMVTM3.js → chunk-M6THDAMU.js} +2 -2
  131. package/dist/esm/{chunk-MAA6LEE2.js → chunk-MDQ7ZHOS.js} +1 -1
  132. package/dist/esm/chunk-MDQ7ZHOS.js.map +7 -0
  133. package/dist/esm/chunk-MQA3BKF4.js +3 -0
  134. package/dist/esm/chunk-MQA3BKF4.js.map +7 -0
  135. package/dist/esm/{chunk-VBF3XALY.js → chunk-MS2ONKJJ.js} +2 -2
  136. package/dist/esm/chunk-MXNPCJPV.js +3 -0
  137. package/dist/esm/chunk-MXNPCJPV.js.map +7 -0
  138. package/dist/esm/{chunk-XFMAA4MD.js → chunk-NJG42JDM.js} +2 -2
  139. package/dist/esm/{chunk-NJ7RQYLX.js → chunk-OIJQSUUM.js} +2 -2
  140. package/dist/esm/{chunk-VYF6KKYM.js → chunk-ONJYRJ66.js} +2 -2
  141. package/dist/esm/chunk-PIVHOUEA.js +3 -0
  142. package/dist/esm/chunk-PIVHOUEA.js.map +7 -0
  143. package/dist/esm/{chunk-UH6CJXHY.js → chunk-QPGW6RJG.js} +2 -2
  144. package/dist/esm/{chunk-EB4AG3OL.js → chunk-REELD6CT.js} +2 -2
  145. package/dist/esm/chunk-RYXIRZQW.js +3 -0
  146. package/dist/esm/chunk-RYXIRZQW.js.map +7 -0
  147. package/dist/esm/chunk-S66WR5R7.js +3 -0
  148. package/dist/esm/{chunk-MXEOE4LA.js.map → chunk-S66WR5R7.js.map} +2 -2
  149. package/dist/esm/chunk-SECVO3CW.js +3 -0
  150. package/dist/esm/chunk-SECVO3CW.js.map +7 -0
  151. package/dist/esm/chunk-SHDZYFUN.js +3 -0
  152. package/dist/esm/chunk-SHDZYFUN.js.map +7 -0
  153. package/dist/esm/{chunk-3M5ZM67R.js → chunk-TCFBNE6A.js} +2 -2
  154. package/dist/esm/chunk-U7P64MXD.js +3 -0
  155. package/dist/esm/chunk-U7P64MXD.js.map +7 -0
  156. package/dist/esm/chunk-UFYQC5XY.js +3 -0
  157. package/dist/esm/chunk-UFYQC5XY.js.map +7 -0
  158. package/dist/esm/{chunk-QBONJMSE.js → chunk-VRQK7U7J.js} +2 -2
  159. package/dist/esm/{chunk-TANYRHGP.js → chunk-W3X4N4JE.js} +2 -2
  160. package/dist/esm/{chunk-OPYTQ34H.js → chunk-W4CPV4PO.js} +2 -2
  161. package/dist/esm/{chunk-G66WDIIV.js → chunk-WJKCXGVN.js} +2 -2
  162. package/dist/esm/{chunk-YLPCYCYA.js → chunk-WT4IDG2W.js} +2 -2
  163. package/dist/esm/chunk-XBDAE77C.js +3 -0
  164. package/dist/esm/chunk-XBDAE77C.js.map +7 -0
  165. package/dist/esm/{chunk-X4PWBFOT.js → chunk-YM47BXKK.js} +2 -2
  166. package/dist/esm/chunk-YOESAYMJ.js +3 -0
  167. package/dist/esm/chunk-YOESAYMJ.js.map +7 -0
  168. package/dist/esm/{chunk-FVRVBB6O.js → chunk-YOZXIUZY.js} +2 -2
  169. package/dist/esm/{chunk-OGVKMDO7.js → chunk-YRCXTCIT.js} +2 -2
  170. package/dist/esm/components/_internal/base-button.js +1 -1
  171. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  172. package/dist/esm/components/_internal/menu-context.js +1 -1
  173. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  174. package/dist/esm/components/_internal/portal-theme.js +1 -1
  175. package/dist/esm/components/_internal/shell-bottom.d.ts +3 -3
  176. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  177. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  178. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  179. package/dist/esm/components/_internal/shell-handles.js +1 -1
  180. package/dist/esm/components/_internal/shell-inspector.d.ts +3 -3
  181. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  182. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  183. package/dist/esm/components/_internal/shell-pane.d.ts +2 -7
  184. package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
  185. package/dist/esm/components/_internal/shell-pane.js +1 -1
  186. package/dist/esm/components/_internal/shell-resizable.d.ts +3 -9
  187. package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
  188. package/dist/esm/components/_internal/shell-resizable.js +1 -1
  189. package/dist/esm/components/_internal/shell-resize.d.ts +0 -4
  190. package/dist/esm/components/_internal/shell-resize.d.ts.map +1 -1
  191. package/dist/esm/components/_internal/shell-resize.js +1 -1
  192. package/dist/esm/components/_internal/shell-rest.d.ts +1 -6
  193. package/dist/esm/components/_internal/shell-rest.d.ts.map +1 -1
  194. package/dist/esm/components/_internal/shell-rest.js +1 -1
  195. package/dist/esm/components/_internal/shell-sidebar.d.ts +3 -3
  196. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  197. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  198. package/dist/esm/components/_internal/shell-store.d.ts +0 -10
  199. package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
  200. package/dist/esm/components/_internal/shell-store.js +1 -1
  201. package/dist/esm/components/_internal/use-close-warning.d.ts +12 -0
  202. package/dist/esm/components/_internal/use-close-warning.d.ts.map +1 -0
  203. package/dist/esm/components/_internal/use-close-warning.js +3 -0
  204. package/dist/esm/components/accordion.js +1 -1
  205. package/dist/esm/components/alert-dialog.js +1 -1
  206. package/dist/esm/components/avatar.js +1 -1
  207. package/dist/esm/components/button.js +1 -1
  208. package/dist/esm/components/chatbar.js +1 -1
  209. package/dist/esm/components/checkbox-group.js +1 -1
  210. package/dist/esm/components/checkbox-group.primitive.d.ts +0 -10
  211. package/dist/esm/components/checkbox-group.primitive.d.ts.map +1 -1
  212. package/dist/esm/components/checkbox-group.primitive.js +1 -1
  213. package/dist/esm/components/checkbox.js +1 -1
  214. package/dist/esm/components/chip.js +1 -1
  215. package/dist/esm/components/combobox.js +1 -1
  216. package/dist/esm/components/command.js +1 -1
  217. package/dist/esm/components/context-menu.d.ts +1 -5
  218. package/dist/esm/components/context-menu.d.ts.map +1 -1
  219. package/dist/esm/components/context-menu.js +1 -1
  220. package/dist/esm/components/dialog.d.ts.map +1 -1
  221. package/dist/esm/components/dialog.js +1 -1
  222. package/dist/esm/components/dropdown-menu.js +1 -1
  223. package/dist/esm/components/index.js +1 -1
  224. package/dist/esm/components/message-scroller.js +1 -1
  225. package/dist/esm/components/navigator.js +1 -1
  226. package/dist/esm/components/notice.js +1 -1
  227. package/dist/esm/components/popover.js +1 -1
  228. package/dist/esm/components/radio-group.js +1 -1
  229. package/dist/esm/components/radio.js +1 -1
  230. package/dist/esm/components/schemas/index.d.ts +1 -1
  231. package/dist/esm/components/schemas/index.d.ts.map +1 -1
  232. package/dist/esm/components/schemas/index.js +1 -1
  233. package/dist/esm/components/schemas/index.js.map +2 -2
  234. package/dist/esm/components/schemas/shell.schema.d.ts +6 -112
  235. package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
  236. package/dist/esm/components/schemas/shell.schema.js +1 -1
  237. package/dist/esm/components/select.js +1 -1
  238. package/dist/esm/components/separator.js +1 -1
  239. package/dist/esm/components/sheet.d.ts +7 -4
  240. package/dist/esm/components/sheet.d.ts.map +1 -1
  241. package/dist/esm/components/sheet.js +1 -1
  242. package/dist/esm/components/shell.context.d.ts +1 -45
  243. package/dist/esm/components/shell.context.d.ts.map +1 -1
  244. package/dist/esm/components/shell.context.js +1 -1
  245. package/dist/esm/components/shell.d.ts +7 -37
  246. package/dist/esm/components/shell.d.ts.map +1 -1
  247. package/dist/esm/components/shell.js +1 -1
  248. package/dist/esm/components/shell.types.d.ts +6 -27
  249. package/dist/esm/components/shell.types.d.ts.map +1 -1
  250. package/dist/esm/components/shell.types.js +1 -1
  251. package/dist/esm/components/sidebar.js +1 -1
  252. package/dist/esm/components/slider.js +1 -1
  253. package/dist/esm/components/switch.js +1 -1
  254. package/dist/esm/components/tabs.js +1 -1
  255. package/dist/esm/components/text-area.js +1 -1
  256. package/dist/esm/components/text-field.js +1 -1
  257. package/dist/esm/components/theme.js +1 -1
  258. package/dist/esm/components/toggle.js +1 -1
  259. package/dist/esm/components/toolbar.js +1 -1
  260. package/dist/esm/components/tooltip.js +1 -1
  261. package/dist/esm/components/virtual-menu.js +1 -1
  262. package/dist/esm/hooks/use-breakpoint.js +1 -1
  263. package/dist/esm/index.js +1 -1
  264. package/package.json +1 -5
  265. package/schemas/index.json +13 -335
  266. package/schemas/shell-bottom.json +2 -63
  267. package/schemas/shell-inspector.json +2 -63
  268. package/schemas/shell-panel.json +2 -63
  269. package/schemas/shell-rail.json +2 -38
  270. package/schemas/shell-sidebar.json +5 -102
  271. package/schemas/shell-trigger.json +0 -6
  272. package/src/components/_internal/base-dialog.css +15 -0
  273. package/src/components/_internal/shell-bottom.tsx +6 -26
  274. package/src/components/_internal/shell-handles.tsx +2 -32
  275. package/src/components/_internal/shell-inspector.tsx +6 -26
  276. package/src/components/_internal/shell-pane.tsx +7 -56
  277. package/src/components/_internal/shell-resizable.tsx +6 -81
  278. package/src/components/_internal/shell-resize.tsx +0 -4
  279. package/src/components/_internal/shell-rest.ts +2 -11
  280. package/src/components/_internal/shell-sidebar.tsx +8 -30
  281. package/src/components/_internal/shell-store.tsx +1 -34
  282. package/src/components/_internal/use-close-warning.ts +38 -0
  283. package/src/components/checkbox-group.primitive.tsx +0 -12
  284. package/src/components/context-menu.tsx +1 -6
  285. package/src/components/dialog.tsx +6 -1
  286. package/src/components/schemas/index.ts +0 -1
  287. package/src/components/schemas/shell.schema.ts +3 -20
  288. package/src/components/sheet.tsx +11 -5
  289. package/src/components/shell.context.tsx +5 -112
  290. package/src/components/shell.css +1 -29
  291. package/src/components/shell.tsx +12 -97
  292. package/src/components/shell.types.ts +6 -28
  293. package/styles.css +12 -20
  294. package/dist/cjs/components/shell.hooks.d.ts +0 -10
  295. package/dist/cjs/components/shell.hooks.d.ts.map +0 -1
  296. package/dist/cjs/components/shell.hooks.js +0 -3
  297. package/dist/cjs/components/shell.hooks.js.map +0 -7
  298. package/dist/esm/chunk-2VSRZ4IT.js +0 -3
  299. package/dist/esm/chunk-2VSRZ4IT.js.map +0 -7
  300. package/dist/esm/chunk-2WFN4D52.js +0 -3
  301. package/dist/esm/chunk-2WFN4D52.js.map +0 -7
  302. package/dist/esm/chunk-4OJRLS5N.js +0 -3
  303. package/dist/esm/chunk-4OJRLS5N.js.map +0 -7
  304. package/dist/esm/chunk-4TTRPCGG.js +0 -3
  305. package/dist/esm/chunk-4TTRPCGG.js.map +0 -7
  306. package/dist/esm/chunk-5BXCPANF.js +0 -3
  307. package/dist/esm/chunk-B447PNRD.js +0 -3
  308. package/dist/esm/chunk-B447PNRD.js.map +0 -7
  309. package/dist/esm/chunk-BJVXB3PN.js +0 -3
  310. package/dist/esm/chunk-BJVXB3PN.js.map +0 -7
  311. package/dist/esm/chunk-HQT32HQ6.js +0 -3
  312. package/dist/esm/chunk-HQT32HQ6.js.map +0 -7
  313. package/dist/esm/chunk-KGCGT4MJ.js +0 -3
  314. package/dist/esm/chunk-KGCGT4MJ.js.map +0 -7
  315. package/dist/esm/chunk-M26LLCQC.js +0 -3
  316. package/dist/esm/chunk-M26LLCQC.js.map +0 -7
  317. package/dist/esm/chunk-MAA6LEE2.js.map +0 -7
  318. package/dist/esm/chunk-MXEOE4LA.js +0 -3
  319. package/dist/esm/chunk-QV66TN2A.js +0 -3
  320. package/dist/esm/chunk-QV66TN2A.js.map +0 -7
  321. package/dist/esm/chunk-TRJAVWCK.js +0 -3
  322. package/dist/esm/chunk-TRJAVWCK.js.map +0 -7
  323. package/dist/esm/chunk-TS4QCDSI.js +0 -3
  324. package/dist/esm/chunk-TS4QCDSI.js.map +0 -7
  325. package/dist/esm/chunk-XOAOSRTH.js +0 -3
  326. package/dist/esm/chunk-XOAOSRTH.js.map +0 -7
  327. package/dist/esm/chunk-XUCR7L4G.js +0 -3
  328. package/dist/esm/chunk-XUCR7L4G.js.map +0 -7
  329. package/dist/esm/chunk-XVN43IZL.js +0 -3
  330. package/dist/esm/chunk-XVN43IZL.js.map +0 -7
  331. package/dist/esm/components/shell.hooks.d.ts +0 -10
  332. package/dist/esm/components/shell.hooks.d.ts.map +0 -1
  333. package/dist/esm/components/shell.hooks.js +0 -3
  334. package/src/components/shell.hooks.ts +0 -20
  335. /package/dist/esm/{chunk-LR4X7SVV.js.map → chunk-2K46JPUL.js.map} +0 -0
  336. /package/dist/esm/{chunk-HGF4CKRY.js.map → chunk-3ZBEWLSO.js.map} +0 -0
  337. /package/dist/esm/{chunk-26O4RBOJ.js.map → chunk-5BABJBV3.js.map} +0 -0
  338. /package/dist/esm/{chunk-5APRBJRR.js.map → chunk-5GTQXMS2.js.map} +0 -0
  339. /package/dist/esm/{chunk-KBSH6CBD.js.map → chunk-5XO3PLDH.js.map} +0 -0
  340. /package/dist/esm/{chunk-SGKLJDA3.js.map → chunk-74JANLVU.js.map} +0 -0
  341. /package/dist/esm/{chunk-TUZ665BA.js.map → chunk-7E3ZOVRL.js.map} +0 -0
  342. /package/dist/esm/{chunk-COLJWVN7.js.map → chunk-AQR42GKA.js.map} +0 -0
  343. /package/dist/esm/{chunk-FTNZWAPB.js.map → chunk-ARPUPT4M.js.map} +0 -0
  344. /package/dist/esm/{chunk-OMPLFDS6.js.map → chunk-ASBTPKH3.js.map} +0 -0
  345. /package/dist/esm/{chunk-JFJV4HL3.js.map → chunk-CFXFWIRM.js.map} +0 -0
  346. /package/dist/esm/{chunk-YLGIP3A5.js.map → chunk-CJZGEHVB.js.map} +0 -0
  347. /package/dist/esm/{chunk-ISCZ57VL.js.map → chunk-DJGZ4K3V.js.map} +0 -0
  348. /package/dist/esm/{chunk-PMXIQ5B4.js.map → chunk-FKCKELUB.js.map} +0 -0
  349. /package/dist/esm/{chunk-Y5ITMKC6.js.map → chunk-G7S2BMS3.js.map} +0 -0
  350. /package/dist/esm/{chunk-SR42NATX.js.map → chunk-GHIHF55B.js.map} +0 -0
  351. /package/dist/esm/{chunk-C6VGCYFQ.js.map → chunk-HNOT2HS4.js.map} +0 -0
  352. /package/dist/esm/{chunk-D42VCLKH.js.map → chunk-ICO5ULJL.js.map} +0 -0
  353. /package/dist/esm/{chunk-FYZXC7AL.js.map → chunk-JJVAVLCN.js.map} +0 -0
  354. /package/dist/esm/{chunk-R4DMVTM3.js.map → chunk-M6THDAMU.js.map} +0 -0
  355. /package/dist/esm/{chunk-VBF3XALY.js.map → chunk-MS2ONKJJ.js.map} +0 -0
  356. /package/dist/esm/{chunk-XFMAA4MD.js.map → chunk-NJG42JDM.js.map} +0 -0
  357. /package/dist/esm/{chunk-NJ7RQYLX.js.map → chunk-OIJQSUUM.js.map} +0 -0
  358. /package/dist/esm/{chunk-VYF6KKYM.js.map → chunk-ONJYRJ66.js.map} +0 -0
  359. /package/dist/esm/{chunk-UH6CJXHY.js.map → chunk-QPGW6RJG.js.map} +0 -0
  360. /package/dist/esm/{chunk-EB4AG3OL.js.map → chunk-REELD6CT.js.map} +0 -0
  361. /package/dist/esm/{chunk-3M5ZM67R.js.map → chunk-TCFBNE6A.js.map} +0 -0
  362. /package/dist/esm/{chunk-QBONJMSE.js.map → chunk-VRQK7U7J.js.map} +0 -0
  363. /package/dist/esm/{chunk-TANYRHGP.js.map → chunk-W3X4N4JE.js.map} +0 -0
  364. /package/dist/esm/{chunk-OPYTQ34H.js.map → chunk-W4CPV4PO.js.map} +0 -0
  365. /package/dist/esm/{chunk-G66WDIIV.js.map → chunk-WJKCXGVN.js.map} +0 -0
  366. /package/dist/esm/{chunk-YLPCYCYA.js.map → chunk-WT4IDG2W.js.map} +0 -0
  367. /package/dist/esm/{chunk-X4PWBFOT.js.map → chunk-YM47BXKK.js.map} +0 -0
  368. /package/dist/esm/{chunk-FVRVBB6O.js.map → chunk-YOZXIUZY.js.map} +0 -0
  369. /package/dist/esm/{chunk-OGVKMDO7.js.map → chunk-YRCXTCIT.js.map} +0 -0
  370. /package/dist/esm/components/{shell.hooks.js.map → _internal/use-close-warning.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/_internal/shell-handles.tsx", "../../../../src/components/_internal/shell-resize.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport classNames from 'classnames';\nimport { usePaneResize } from './shell-resize.js';\n\n/**\n * The resize handle: the WAI-ARIA window splitter. `role=\"separator\"` with a\n * value, focusable because it is operable, `aria-controls` naming its pane.\n *\n * A drag writes the size variable directly on the pane and sets no React\n * state, so nothing re-renders per move. `onResize` is called at most once per\n * animation frame, and once more with the final size when the drag ends. The\n * direction and the ceiling are read once, when the drag starts.\n */\nexport const PaneHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(({ className, children, ...props }, ref) => {\n const {\n containerRef,\n controls,\n cssVarName,\n minSize,\n maxSize,\n defaultSize,\n startSize,\n orientation,\n edge,\n growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n collapsible,\n target,\n requestCollapse,\n requestToggle,\n } = usePaneResize();\n\n const handleRef = React.useRef<HTMLDivElement | null>(null);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n handleRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n\n const activeCleanupRef = React.useRef<(() => void) | null>(null);\n React.useEffect(\n () => () => {\n activeCleanupRef.current?.();\n activeCleanupRef.current = null;\n },\n [],\n );\n\n /** The pane's size as the stylesheet sees it. Read at the edges of a gesture, never during one. */\n const readSize = React.useCallback(() => {\n const container = containerRef.current;\n if (!container) return defaultSize;\n const parsed = Number.parseFloat(getComputedStyle(container).getPropertyValue(cssVarName));\n return Number.isFinite(parsed) ? parsed : defaultSize;\n }, [containerRef, cssVarName, defaultSize]);\n\n /**\n * The largest size a resize may reach: the stated maximum, and never so\n * large that the handle leaves the frame. The room is measured from the\n * pane's anchored edge, which does not move, to the far edge of the frame,\n * so a pane that starts after a Rail has less room than the frame's width.\n * Without the cap a pane with a generous `maxSize` could be resized until\n * its own handle was off screen.\n */\n const ceiling = React.useCallback(() => {\n const container = containerRef.current;\n const handle = handleRef.current;\n const frame = container?.closest('.kui-ShellRoot')?.getBoundingClientRect();\n if (!container || !frame || !handle) return maxSize;\n const pane = container.getBoundingClientRect();\n const hitBox = handle.getBoundingClientRect();\n const sign = growth(getComputedStyle(container).direction === 'rtl');\n let room: number;\n if (orientation === 'vertical') room = sign > 0 ? frame.right - pane.left : pane.right - frame.left;\n else room = sign > 0 ? frame.bottom - pane.top : pane.bottom - frame.top;\n const hit = orientation === 'vertical' ? hitBox.width : hitBox.height;\n if (!(frame.width > 0 && frame.height > 0) || !Number.isFinite(room)) return maxSize;\n return Math.max(minSize, Math.min(maxSize, Math.round(room - hit)));\n }, [containerRef, growth, maxSize, minSize, orientation]);\n\n // The announced maximum is what a resize can reach now, not only the prop.\n const announceCeiling = () => {\n handleRef.current?.setAttribute('aria-valuemax', String(ceiling()));\n };\n\n // The announced value is seeded from the real size once the pane has a box.\n useLayoutEffect(() => {\n handleRef.current?.setAttribute('aria-valuenow', String(Math.round(readSize())));\n }, [readSize]);\n\n const write = (container: HTMLElement, size: number) => {\n container.style.setProperty(cssVarName, `${size}px`);\n handleRef.current?.setAttribute('aria-valuenow', String(Math.round(size)));\n };\n\n const targetLabel = target.charAt(0).toUpperCase() + target.slice(1);\n\n return (\n // A focusable separator with a value is the WAI-ARIA window splitter, an\n // interactive widget; jsx-a11y classes every separator as static.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <div\n ref={setRef}\n className={classNames('kui-ShellResizer', className)}\n data-orientation={orientation}\n data-edge={edge}\n role=\"separator\"\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n aria-label={`Resize ${targetLabel} pane`}\n aria-controls={controls}\n aria-orientation={orientation}\n // A focusable separator must state its value. The effects keep it current after mount.\n aria-valuenow={Math.round(startSize)}\n aria-valuemin={minSize}\n aria-valuemax={maxSize}\n {...props}\n onPointerDown={(e) => {\n props.onPointerDown?.(e);\n const container = containerRef.current;\n if (!container || e.defaultPrevented || e.button !== 0) return;\n e.preventDefault();\n const handleEl = e.currentTarget as HTMLElement;\n const pointerId = e.pointerId;\n activeCleanupRef.current?.();\n try {\n handleEl.setPointerCapture(pointerId);\n } catch {\n // Capture can fail for a pointer that is already gone; the window listeners below still carry the drag.\n }\n\n // Everything a move needs is read here, once.\n const startStyle = getComputedStyle(container);\n const parsedStart = Number.parseFloat(startStyle.getPropertyValue(cssVarName));\n const startSize = Number.isFinite(parsedStart) ? parsedStart : defaultSize;\n const startClient = orientation === 'vertical' ? e.clientX : e.clientY;\n const sign = growth(startStyle.direction === 'rtl');\n const cap = ceiling();\n handleEl.setAttribute('aria-valuemax', String(cap));\n const clamp = (v: number) => Math.min(Math.max(v, minSize), cap);\n\n container.setAttribute('data-resizing', '');\n handleEl.setAttribute('data-dragging', '');\n const body = document.body;\n const prevCursor = body.style.cursor;\n const prevUserSelect = body.style.userSelect;\n body.style.cursor = orientation === 'vertical' ? 'col-resize' : 'row-resize';\n body.style.userSelect = 'none';\n onResizeStart?.(startSize);\n\n let current = startSize;\n // The unclamped size, so `collapseThreshold` is compared before the\n // clamp: a threshold below `minSize` can then still collapse the pane.\n let raw = startSize;\n let frame = 0;\n let pending: number | null = null;\n const flush = () => {\n frame = 0;\n if (pending === null) return;\n const size = pending;\n pending = null;\n onResize?.(size);\n };\n\n // The move handler listens on the handle, the document and the window,\n // so a drag survives environments where pointer events do not reach\n // all three. One movement can therefore arrive several times: once per\n // node it propagates through, and again as the compatibility mouse\n // event. Only the first copy does any work.\n let lastHandledMove: Event | null = null;\n let seenPointerEvent = false;\n const shouldHandle = (ev: Event, pointerType: string) => {\n if (ev.type === pointerType) seenPointerEvent = true;\n else if (seenPointerEvent) return false;\n return true;\n };\n\n const handleMove = (ev: PointerEvent) => {\n if (!shouldHandle(ev, 'pointermove')) return;\n if (ev === lastHandledMove) return;\n lastHandledMove = ev;\n const client = orientation === 'vertical' ? ev.clientX : ev.clientY;\n raw = startSize + (client - startClient) * sign;\n current = clamp(raw);\n write(container, current);\n pending = current;\n if (!frame) frame = requestAnimationFrame(flush);\n };\n\n const cleanup = () => {\n if (frame) cancelAnimationFrame(frame);\n frame = 0;\n try {\n handleEl.releasePointerCapture(pointerId);\n } catch {\n // Already released.\n }\n window.removeEventListener('pointermove', handleMove as EventListener);\n document.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('mousemove', handleMove as EventListener);\n document.removeEventListener('mousemove', handleMove as EventListener);\n handleEl.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('pointerup', handleUp as EventListener);\n document.removeEventListener('pointerup', handleUp as EventListener);\n window.removeEventListener('mouseup', handleUp as EventListener);\n document.removeEventListener('mouseup', handleUp as EventListener);\n window.removeEventListener('pointercancel', handleUp as EventListener);\n document.removeEventListener('pointercancel', handleUp as EventListener);\n window.removeEventListener('keydown', handleKey as EventListener);\n handleEl.removeEventListener('lostpointercapture', handleUp as EventListener);\n container.removeAttribute('data-resizing');\n handleEl.removeAttribute('data-dragging');\n body.style.cursor = prevCursor;\n body.style.userSelect = prevUserSelect;\n activeCleanupRef.current = null;\n };\n\n let finished = false;\n const handleUp = () => {\n if (finished) return;\n finished = true;\n // The last move's size is delivered now rather than on the next frame.\n if (frame) cancelAnimationFrame(frame);\n flush();\n\n if (collapsible && typeof collapseThreshold === 'number' && raw <= collapseThreshold) {\n // A drag past the threshold closes the pane and keeps no size: the\n // pane opens again at the size it had before the drag. The drag\n // still ends, at that size, so a consumer that started something\n // in onResizeStart can stop it.\n write(container, startSize);\n onResize?.(startSize);\n cleanup();\n requestCollapse?.();\n onResizeEnd?.(startSize);\n return;\n }\n\n let settled = current;\n if (snapPoints && snapPoints.length) {\n const nearest = snapPoints.reduce((acc, p) => (Math.abs(p - current) < Math.abs(acc - current) ? p : acc), snapPoints[0]);\n if (Math.abs(nearest - current) <= snapTolerance) {\n settled = clamp(nearest);\n write(container, settled);\n onResize?.(settled);\n }\n }\n onResizeEnd?.(settled);\n cleanup();\n };\n\n const handleKey = (kev: KeyboardEvent) => {\n if (kev.key !== 'Escape') return;\n if (frame) cancelAnimationFrame(frame);\n frame = 0;\n pending = null;\n write(container, startSize);\n onResize?.(startSize);\n finished = true;\n onResizeEnd?.(startSize);\n cleanup();\n };\n\n window.addEventListener('pointermove', handleMove as EventListener);\n document.addEventListener('pointermove', handleMove as EventListener);\n window.addEventListener('mousemove', handleMove as EventListener);\n document.addEventListener('mousemove', handleMove as EventListener);\n handleEl.addEventListener('pointermove', handleMove as EventListener);\n window.addEventListener('pointerup', handleUp as EventListener);\n document.addEventListener('pointerup', handleUp as EventListener);\n window.addEventListener('mouseup', handleUp as EventListener);\n document.addEventListener('mouseup', handleUp as EventListener);\n window.addEventListener('pointercancel', handleUp as EventListener);\n document.addEventListener('pointercancel', handleUp as EventListener);\n window.addEventListener('keydown', handleKey as EventListener);\n handleEl.addEventListener('lostpointercapture', handleUp as EventListener);\n activeCleanupRef.current = cleanup;\n }}\n onDoubleClick={(e) => {\n props.onDoubleClick?.(e);\n if (!e.defaultPrevented && collapsible) requestToggle?.();\n }}\n onFocus={(e) => {\n props.onFocus?.(e);\n announceCeiling();\n }}\n onKeyDown={(e) => {\n props.onKeyDown?.(e);\n const container = containerRef.current;\n if (!container || e.defaultPrevented) return;\n // Enter collapses and restores the pane, as a double-click does (WAI-ARIA window splitter).\n if (e.key === 'Enter') {\n if (collapsible && requestToggle) {\n e.preventDefault();\n requestToggle();\n }\n return;\n }\n const current = readSize();\n // The keys reach as far as a drag does: the frame caps both.\n const cap = ceiling();\n const clamp = (v: number) => Math.min(Math.max(v, minSize), cap);\n let next: number | undefined;\n if (e.key === 'Home') next = clamp(minSize);\n else if (e.key === 'End') next = clamp(cap);\n else {\n // The key moves the boundary along its axis; the pane grows or\n // shrinks the way a drag in that direction would, so Bottom's\n // ArrowUp grows it and an end-anchored pane mirrors in RTL.\n const along = orientation === 'vertical' ? (e.key === 'ArrowRight' ? 1 : e.key === 'ArrowLeft' ? -1 : 0) : e.key === 'ArrowDown' ? 1 : e.key === 'ArrowUp' ? -1 : 0;\n if (along === 0) return;\n const step = e.shiftKey ? 32 : 8;\n next = clamp(current + along * step * growth(getComputedStyle(container).direction === 'rtl'));\n }\n e.preventDefault();\n onResizeStart?.(current);\n write(container, next);\n onResize?.(next);\n onResizeEnd?.(next);\n }}\n >\n {children}\n </div>\n );\n});\nPaneHandle.displayName = 'Shell.Handle';\n\nexport const PanelHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nPanelHandle.displayName = 'Shell.Panel.Handle';\n\nexport const SidebarHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nSidebarHandle.displayName = 'Shell.Sidebar.Handle';\n\nexport const InspectorHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nInspectorHandle.displayName = 'Shell.Inspector.Handle';\n\nexport const BottomHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nBottomHandle.displayName = 'Shell.Bottom.Handle';\n", "import * as React from 'react';\nimport type { PaneName } from '../shell.types.js';\n\nexport interface PaneResizeContextValue {\n containerRef: React.RefObject<HTMLElement | null>;\n /** The pane the handle resizes, for `aria-controls`. */\n controls: string;\n cssVarName: string;\n minSize: number;\n maxSize: number;\n defaultSize: number;\n /** The size the pane starts at, for the handle's first `aria-valuenow`. */\n startSize: number;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n /**\n * +1 when moving the pointer toward the end of its axis grows the pane, -1\n * when it shrinks it. Read once when a drag starts, with the pane's\n * resolved direction, so no move pays for a style read.\n */\n growth: (isRtl: boolean) => 1 | -1;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n target: PaneName;\n collapsible: boolean;\n snapPoints?: number[];\n snapTolerance: number;\n collapseThreshold?: number;\n requestCollapse?: () => void;\n requestToggle?: () => void;\n}\n\nexport const PaneResizeContext = React.createContext<PaneResizeContextValue | null>(null);\n\nexport function usePaneResize() {\n const ctx = React.useContext(PaneResizeContext);\n if (!ctx) throw new Error('Shell.Handle must be used within a resizable pane');\n return ctx;\n}\n"],
5
- "mappings": "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",
6
- "names": ["shell_handles_exports", "__export", "BottomHandle", "InspectorHandle", "PaneHandle", "PanelHandle", "SidebarHandle", "__toCommonJS", "React", "import_internal", "import_classnames", "React", "PaneResizeContext", "usePaneResize", "ctx", "PaneHandle", "className", "children", "props", "ref", "containerRef", "controls", "cssVarName", "minSize", "maxSize", "defaultSize", "startSize", "orientation", "edge", "growth", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "collapsible", "target", "requestCollapse", "requestToggle", "usePaneResize", "handleRef", "setRef", "node", "activeCleanupRef", "readSize", "container", "parsed", "ceiling", "handle", "frame", "pane", "hitBox", "sign", "room", "hit", "announceCeiling", "write", "size", "targetLabel", "classNames", "handleEl", "pointerId", "startStyle", "parsedStart", "startClient", "cap", "clamp", "v", "body", "prevCursor", "prevUserSelect", "current", "raw", "pending", "flush", "lastHandledMove", "seenPointerEvent", "shouldHandle", "ev", "pointerType", "handleMove", "client", "cleanup", "handleUp", "handleKey", "finished", "settled", "nearest", "acc", "p", "kev", "next", "along", "step", "PanelHandle", "SidebarHandle", "InspectorHandle", "BottomHandle"]
4
+ "sourcesContent": ["import * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport classNames from 'classnames';\nimport { usePaneResize } from './shell-resize.js';\n\n/**\n * The resize handle: the WAI-ARIA window splitter. `role=\"separator\"` with a\n * value, focusable because it is operable, `aria-controls` naming its pane.\n *\n * A drag writes the size variable directly on the pane and sets no React\n * state, so nothing re-renders per move. `onResize` is called at most once per\n * animation frame, and once more with the final size when the drag ends. The\n * direction and the ceiling are read once, when the drag starts.\n */\nexport const PaneHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>(({ className, children, ...props }, ref) => {\n const {\n containerRef,\n controls,\n cssVarName,\n minSize,\n maxSize,\n defaultSize,\n startSize,\n orientation,\n edge,\n growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n collapsible,\n target,\n requestToggle,\n } = usePaneResize();\n\n const handleRef = React.useRef<HTMLDivElement | null>(null);\n const setRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n handleRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n\n const activeCleanupRef = React.useRef<(() => void) | null>(null);\n React.useEffect(\n () => () => {\n activeCleanupRef.current?.();\n activeCleanupRef.current = null;\n },\n [],\n );\n\n /** The pane's size as the stylesheet sees it. Read at the edges of a gesture, never during one. */\n const readSize = React.useCallback(() => {\n const container = containerRef.current;\n if (!container) return defaultSize;\n const parsed = Number.parseFloat(getComputedStyle(container).getPropertyValue(cssVarName));\n return Number.isFinite(parsed) ? parsed : defaultSize;\n }, [containerRef, cssVarName, defaultSize]);\n\n /**\n * The largest size a resize may reach: the stated maximum, and never so\n * large that the handle leaves the frame. The room is measured from the\n * pane's anchored edge, which does not move, to the far edge of the frame,\n * so a pane that starts after a Rail has less room than the frame's width.\n * Without the cap a pane with a generous `maxSize` could be resized until\n * its own handle was off screen.\n */\n const ceiling = React.useCallback(() => {\n const container = containerRef.current;\n const handle = handleRef.current;\n const frame = container?.closest('.kui-ShellRoot')?.getBoundingClientRect();\n if (!container || !frame || !handle) return maxSize;\n const pane = container.getBoundingClientRect();\n const hitBox = handle.getBoundingClientRect();\n const sign = growth(getComputedStyle(container).direction === 'rtl');\n let room: number;\n if (orientation === 'vertical') room = sign > 0 ? frame.right - pane.left : pane.right - frame.left;\n else room = sign > 0 ? frame.bottom - pane.top : pane.bottom - frame.top;\n const hit = orientation === 'vertical' ? hitBox.width : hitBox.height;\n if (!(frame.width > 0 && frame.height > 0) || !Number.isFinite(room)) return maxSize;\n return Math.max(minSize, Math.min(maxSize, Math.round(room - hit)));\n }, [containerRef, growth, maxSize, minSize, orientation]);\n\n // The announced maximum is what a resize can reach now, not only the prop.\n const announceCeiling = () => {\n handleRef.current?.setAttribute('aria-valuemax', String(ceiling()));\n };\n\n // The announced value is seeded from the real size once the pane has a box.\n useLayoutEffect(() => {\n handleRef.current?.setAttribute('aria-valuenow', String(Math.round(readSize())));\n }, [readSize]);\n\n const write = (container: HTMLElement, size: number) => {\n container.style.setProperty(cssVarName, `${size}px`);\n handleRef.current?.setAttribute('aria-valuenow', String(Math.round(size)));\n };\n\n const targetLabel = target.charAt(0).toUpperCase() + target.slice(1);\n\n return (\n // A focusable separator with a value is the WAI-ARIA window splitter, an\n // interactive widget; jsx-a11y classes every separator as static.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <div\n ref={setRef}\n className={classNames('kui-ShellResizer', className)}\n data-orientation={orientation}\n data-edge={edge}\n role=\"separator\"\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n aria-label={`Resize ${targetLabel} pane`}\n aria-controls={controls}\n aria-orientation={orientation}\n // A focusable separator must state its value. The effects keep it current after mount.\n aria-valuenow={Math.round(startSize)}\n aria-valuemin={minSize}\n aria-valuemax={maxSize}\n {...props}\n onPointerDown={(e) => {\n props.onPointerDown?.(e);\n const container = containerRef.current;\n if (!container || e.defaultPrevented || e.button !== 0) return;\n e.preventDefault();\n const handleEl = e.currentTarget as HTMLElement;\n const pointerId = e.pointerId;\n activeCleanupRef.current?.();\n try {\n handleEl.setPointerCapture(pointerId);\n } catch {\n // Capture can fail for a pointer that is already gone; the window listeners below still carry the drag.\n }\n\n // Everything a move needs is read here, once.\n const startStyle = getComputedStyle(container);\n const parsedStart = Number.parseFloat(startStyle.getPropertyValue(cssVarName));\n const startSize = Number.isFinite(parsedStart) ? parsedStart : defaultSize;\n const startClient = orientation === 'vertical' ? e.clientX : e.clientY;\n const sign = growth(startStyle.direction === 'rtl');\n const cap = ceiling();\n handleEl.setAttribute('aria-valuemax', String(cap));\n const clamp = (v: number) => Math.min(Math.max(v, minSize), cap);\n\n container.setAttribute('data-resizing', '');\n handleEl.setAttribute('data-dragging', '');\n const body = document.body;\n const prevCursor = body.style.cursor;\n const prevUserSelect = body.style.userSelect;\n body.style.cursor = orientation === 'vertical' ? 'col-resize' : 'row-resize';\n body.style.userSelect = 'none';\n onResizeStart?.(startSize);\n\n let current = startSize;\n let frame = 0;\n let pending: number | null = null;\n const flush = () => {\n frame = 0;\n if (pending === null) return;\n const size = pending;\n pending = null;\n onResize?.(size);\n };\n\n // The move handler listens on the handle, the document and the window,\n // so a drag survives environments where pointer events do not reach\n // all three. One movement can therefore arrive several times: once per\n // node it propagates through, and again as the compatibility mouse\n // event. Only the first copy does any work.\n let lastHandledMove: Event | null = null;\n let seenPointerEvent = false;\n const shouldHandle = (ev: Event, pointerType: string) => {\n if (ev.type === pointerType) seenPointerEvent = true;\n else if (seenPointerEvent) return false;\n return true;\n };\n\n const handleMove = (ev: PointerEvent) => {\n if (!shouldHandle(ev, 'pointermove')) return;\n if (ev === lastHandledMove) return;\n lastHandledMove = ev;\n const client = orientation === 'vertical' ? ev.clientX : ev.clientY;\n current = clamp(startSize + (client - startClient) * sign);\n write(container, current);\n pending = current;\n if (!frame) frame = requestAnimationFrame(flush);\n };\n\n const cleanup = () => {\n if (frame) cancelAnimationFrame(frame);\n frame = 0;\n try {\n handleEl.releasePointerCapture(pointerId);\n } catch {\n // Already released.\n }\n window.removeEventListener('pointermove', handleMove as EventListener);\n document.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('mousemove', handleMove as EventListener);\n document.removeEventListener('mousemove', handleMove as EventListener);\n handleEl.removeEventListener('pointermove', handleMove as EventListener);\n window.removeEventListener('pointerup', handleUp as EventListener);\n document.removeEventListener('pointerup', handleUp as EventListener);\n window.removeEventListener('mouseup', handleUp as EventListener);\n document.removeEventListener('mouseup', handleUp as EventListener);\n window.removeEventListener('pointercancel', handleUp as EventListener);\n document.removeEventListener('pointercancel', handleUp as EventListener);\n window.removeEventListener('keydown', handleKey as EventListener);\n handleEl.removeEventListener('lostpointercapture', handleUp as EventListener);\n container.removeAttribute('data-resizing');\n handleEl.removeAttribute('data-dragging');\n body.style.cursor = prevCursor;\n body.style.userSelect = prevUserSelect;\n activeCleanupRef.current = null;\n };\n\n let finished = false;\n const handleUp = () => {\n if (finished) return;\n finished = true;\n // The last move's size is delivered now rather than on the next frame.\n if (frame) cancelAnimationFrame(frame);\n flush();\n\n onResizeEnd?.(current);\n cleanup();\n };\n\n const handleKey = (kev: KeyboardEvent) => {\n if (kev.key !== 'Escape') return;\n if (frame) cancelAnimationFrame(frame);\n frame = 0;\n pending = null;\n write(container, startSize);\n onResize?.(startSize);\n finished = true;\n onResizeEnd?.(startSize);\n cleanup();\n };\n\n window.addEventListener('pointermove', handleMove as EventListener);\n document.addEventListener('pointermove', handleMove as EventListener);\n window.addEventListener('mousemove', handleMove as EventListener);\n document.addEventListener('mousemove', handleMove as EventListener);\n handleEl.addEventListener('pointermove', handleMove as EventListener);\n window.addEventListener('pointerup', handleUp as EventListener);\n document.addEventListener('pointerup', handleUp as EventListener);\n window.addEventListener('mouseup', handleUp as EventListener);\n document.addEventListener('mouseup', handleUp as EventListener);\n window.addEventListener('pointercancel', handleUp as EventListener);\n document.addEventListener('pointercancel', handleUp as EventListener);\n window.addEventListener('keydown', handleKey as EventListener);\n handleEl.addEventListener('lostpointercapture', handleUp as EventListener);\n activeCleanupRef.current = cleanup;\n }}\n onDoubleClick={(e) => {\n props.onDoubleClick?.(e);\n if (!e.defaultPrevented && collapsible) requestToggle?.();\n }}\n onFocus={(e) => {\n props.onFocus?.(e);\n announceCeiling();\n }}\n onKeyDown={(e) => {\n props.onKeyDown?.(e);\n const container = containerRef.current;\n if (!container || e.defaultPrevented) return;\n // Enter collapses and restores the pane, as a double-click does (WAI-ARIA window splitter).\n if (e.key === 'Enter') {\n if (collapsible && requestToggle) {\n e.preventDefault();\n requestToggle();\n }\n return;\n }\n const current = readSize();\n // The keys reach as far as a drag does: the frame caps both.\n const cap = ceiling();\n const clamp = (v: number) => Math.min(Math.max(v, minSize), cap);\n let next: number | undefined;\n if (e.key === 'Home') next = clamp(minSize);\n else if (e.key === 'End') next = clamp(cap);\n else {\n // The key moves the boundary along its axis; the pane grows or\n // shrinks the way a drag in that direction would, so Bottom's\n // ArrowUp grows it and an end-anchored pane mirrors in RTL.\n const along = orientation === 'vertical' ? (e.key === 'ArrowRight' ? 1 : e.key === 'ArrowLeft' ? -1 : 0) : e.key === 'ArrowDown' ? 1 : e.key === 'ArrowUp' ? -1 : 0;\n if (along === 0) return;\n const step = e.shiftKey ? 32 : 8;\n next = clamp(current + along * step * growth(getComputedStyle(container).direction === 'rtl'));\n }\n e.preventDefault();\n onResizeStart?.(current);\n write(container, next);\n onResize?.(next);\n onResizeEnd?.(next);\n }}\n >\n {children}\n </div>\n );\n});\nPaneHandle.displayName = 'Shell.Handle';\n\nexport const PanelHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nPanelHandle.displayName = 'Shell.Panel.Handle';\n\nexport const SidebarHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nSidebarHandle.displayName = 'Shell.Sidebar.Handle';\n\nexport const InspectorHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nInspectorHandle.displayName = 'Shell.Inspector.Handle';\n\nexport const BottomHandle = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<'div'>>((props, ref) => <PaneHandle {...props} ref={ref} />);\nBottomHandle.displayName = 'Shell.Bottom.Handle';\n", "import * as React from 'react';\nimport type { PaneName } from '../shell.types.js';\n\nexport interface PaneResizeContextValue {\n containerRef: React.RefObject<HTMLElement | null>;\n /** The pane the handle resizes, for `aria-controls`. */\n controls: string;\n cssVarName: string;\n minSize: number;\n maxSize: number;\n defaultSize: number;\n /** The size the pane starts at, for the handle's first `aria-valuenow`. */\n startSize: number;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n /**\n * +1 when moving the pointer toward the end of its axis grows the pane, -1\n * when it shrinks it. Read once when a drag starts, with the pane's\n * resolved direction, so no move pays for a style read.\n */\n growth: (isRtl: boolean) => 1 | -1;\n onResize?: (size: number) => void;\n onResizeStart?: (size: number) => void;\n onResizeEnd?: (size: number) => void;\n target: PaneName;\n collapsible: boolean;\n requestToggle?: () => void;\n}\n\nexport const PaneResizeContext = React.createContext<PaneResizeContextValue | null>(null);\n\nexport function usePaneResize() {\n const ctx = React.useContext(PaneResizeContext);\n if (!ctx) throw new Error('Shell.Handle must be used within a resizable pane');\n return ctx;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["shell_handles_exports", "__export", "BottomHandle", "InspectorHandle", "PaneHandle", "PanelHandle", "SidebarHandle", "__toCommonJS", "React", "import_internal", "import_classnames", "React", "PaneResizeContext", "usePaneResize", "ctx", "PaneHandle", "className", "children", "props", "ref", "containerRef", "controls", "cssVarName", "minSize", "maxSize", "defaultSize", "startSize", "orientation", "edge", "growth", "onResize", "onResizeStart", "onResizeEnd", "collapsible", "target", "requestToggle", "usePaneResize", "handleRef", "setRef", "node", "activeCleanupRef", "readSize", "container", "parsed", "ceiling", "handle", "frame", "pane", "hitBox", "sign", "room", "hit", "announceCeiling", "write", "size", "targetLabel", "classNames", "handleEl", "pointerId", "startStyle", "parsedStart", "startClient", "cap", "clamp", "v", "body", "prevCursor", "prevUserSelect", "current", "pending", "flush", "lastHandledMove", "seenPointerEvent", "shouldHandle", "ev", "pointerType", "handleMove", "client", "cleanup", "handleUp", "handleKey", "finished", "kev", "next", "along", "step", "PanelHandle", "SidebarHandle", "InspectorHandle", "BottomHandle"]
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { InspectorHandle } from './shell-handles.js';
3
3
  import { type SizeChangeMeta } from './shell-resizable.js';
4
- import type { Breakpoint, PaneBaseProps } from '../shell.types.js';
4
+ import type { Breakpoint, PaneBaseProps, PaneOpenChangeReason } from '../shell.types.js';
5
5
  type InspectorOpenChangeMeta = {
6
- reason: 'init' | 'toggle' | 'responsive' | 'dismiss';
6
+ reason: PaneOpenChangeReason;
7
7
  };
8
8
  type InspectorControlledProps = {
9
- open: boolean | Partial<Record<Breakpoint, boolean>>;
9
+ open: boolean;
10
10
  onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void;
11
11
  defaultOpen?: never;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shell-inspector.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-inspector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,eAAe,EAAc,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAsD,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK/G,OAAO,KAAK,EAAE,UAAU,EAAyB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE1F,KAAK,uBAAuB,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAA;CAAE,CAAC;AACxF,KAAK,wBAAwB,GAAG;IAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACrL,KAAK,0BAA0B,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACxL,KAAK,4BAA4B,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACnF,KAAK,8BAA8B,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACtF,KAAK,oBAAoB,GAAG,aAAa,GACvC,CAAC,wBAAwB,GAAG,0BAA0B,CAAC,GACvD,CAAC,4BAA4B,GAAG,8BAA8B,CAAC,GAAG;IAChE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEJ,KAAK,kBAAkB,GAAG,KAAK,CAAC,yBAAyB,CAAC,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,OAAO,eAAe,CAAA;CAAE,CAAC;AAO3J,eAAO,MAAM,SAAS,EA0HhB,kBAAkB,CAAC;AAKzB,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"shell-inspector.d.ts","sourceRoot":"","sources":["../../../../src/components/_internal/shell-inspector.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,eAAe,EAAc,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAsD,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK/G,OAAO,KAAK,EAAE,UAAU,EAAyB,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEhH,KAAK,uBAAuB,GAAG;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAChE,KAAK,wBAAwB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAC9I,KAAK,0BAA0B,GAAG;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACxL,KAAK,4BAA4B,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACnF,KAAK,8BAA8B,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AACtF,KAAK,oBAAoB,GAAG,aAAa,GACvC,CAAC,wBAAwB,GAAG,0BAA0B,CAAC,GACvD,CAAC,4BAA4B,GAAG,8BAA8B,CAAC,GAAG;IAChE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEJ,KAAK,kBAAkB,GAAG,KAAK,CAAC,yBAAyB,CAAC,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,OAAO,eAAe,CAAA;CAAE,CAAC;AAO3J,eAAO,MAAM,SAAS,EAsGhB,kBAAkB,CAAC;AAKzB,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- "use strict";"use client";var mn=Object.create;var be=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var Rn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,vn=Object.prototype.hasOwnProperty;var hn=(e,n)=>{for(var t in n)be(e,t,{get:n[t],enumerable:!0})},Ae=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Rn(n))!vn.call(e,o)&&o!==t&&be(e,o,{get:()=>n[o],enumerable:!(r=bn(n,o))||r.enumerable});return e};var Y=(e,n,t)=>(t=e!=null?mn(gn(e)):{},Ae(n||!e||!e.__esModule?be(t,"default",{value:e,enumerable:!0}):t,e)),Pn=e=>Ae(be({},"__esModule",{value:!0}),e);var An={};hn(An,{Inspector:()=>Ne});module.exports=Pn(An);var q=Y(require("react")),un=Y(require("classnames")),cn=require("radix-ui/internal");var Re=Y(require("react")),xe=Re.createContext(null);function Fe(){let e=Re.useContext(xe);if(!e)throw new Error("Shell.Handle must be used within a resizable pane");return e}var h=Y(require("react")),De=require("radix-ui/internal"),$e=Y(require("classnames"));var ne=h.forwardRef(({className:e,children:n,...t},r)=>{let{containerRef:o,controls:c,cssVarName:m,minSize:N,maxSize:y,defaultSize:P,startSize:D,orientation:x,edge:S,growth:V,onResize:$,onResizeStart:U,onResizeEnd:T,snapPoints:b,snapTolerance:A,collapseThreshold:j,collapsible:k,target:_,requestCollapse:M,requestToggle:F}=Fe(),I=h.useRef(null),L=h.useCallback(a=>{I.current=a,typeof r=="function"?r(a):r&&(r.current=a)},[r]),B=h.useRef(null);h.useEffect(()=>()=>{B.current?.(),B.current=null},[]);let i=h.useCallback(()=>{let a=o.current;if(!a)return P;let p=Number.parseFloat(getComputedStyle(a).getPropertyValue(m));return Number.isFinite(p)?p:P},[o,m,P]),l=h.useCallback(()=>{let a=o.current,p=I.current,u=a?.closest(".kui-ShellRoot")?.getBoundingClientRect();if(!a||!u||!p)return y;let w=a.getBoundingClientRect(),O=p.getBoundingClientRect(),C=V(getComputedStyle(a).direction==="rtl"),f;x==="vertical"?f=C>0?u.right-w.left:w.right-u.left:f=C>0?u.bottom-w.top:w.bottom-u.top;let s=x==="vertical"?O.width:O.height;return!(u.width>0&&u.height>0)||!Number.isFinite(f)?y:Math.max(N,Math.min(y,Math.round(f-s)))},[o,V,y,N,x]),g=()=>{I.current?.setAttribute("aria-valuemax",String(l()))};(0,De.useLayoutEffect)(()=>{I.current?.setAttribute("aria-valuenow",String(Math.round(i())))},[i]);let v=(a,p)=>{a.style.setProperty(m,`${p}px`),I.current?.setAttribute("aria-valuenow",String(Math.round(p)))},z=_.charAt(0).toUpperCase()+_.slice(1);return h.createElement("div",{ref:L,className:(0,$e.default)("kui-ShellResizer",e),"data-orientation":x,"data-edge":S,role:"separator",tabIndex:0,"aria-label":`Resize ${z} pane`,"aria-controls":c,"aria-orientation":x,"aria-valuenow":Math.round(D),"aria-valuemin":N,"aria-valuemax":y,...t,onPointerDown:a=>{t.onPointerDown?.(a);let p=o.current;if(!p||a.defaultPrevented||a.button!==0)return;a.preventDefault();let u=a.currentTarget,w=a.pointerId;B.current?.();try{u.setPointerCapture(w)}catch{}let O=getComputedStyle(p),C=Number.parseFloat(O.getPropertyValue(m)),f=Number.isFinite(C)?C:P,s=x==="vertical"?a.clientX:a.clientY,K=V(O.direction==="rtl"),W=l();u.setAttribute("aria-valuemax",String(W));let re=E=>Math.min(Math.max(E,N),W);p.setAttribute("data-resizing",""),u.setAttribute("data-dragging","");let Z=document.body,dn=Z.style.cursor,pn=Z.style.userSelect;Z.style.cursor=x==="vertical"?"col-resize":"row-resize",Z.style.userSelect="none",U?.(f);let ee=f,Se=f,Q=0,se=null,Ve=()=>{if(Q=0,se===null)return;let E=se;se=null,$?.(E)},Me=null,Ie=!1,fn=(E,oe)=>{if(E.type===oe)Ie=!0;else if(Ie)return!1;return!0},X=E=>{if(!fn(E,"pointermove")||E===Me)return;Me=E;let oe=x==="vertical"?E.clientX:E.clientY;Se=f+(oe-s)*K,ee=re(Se),v(p,ee),se=ee,Q||(Q=requestAnimationFrame(Ve))},me=()=>{Q&&cancelAnimationFrame(Q),Q=0;try{u.releasePointerCapture(w)}catch{}window.removeEventListener("pointermove",X),document.removeEventListener("pointermove",X),window.removeEventListener("mousemove",X),document.removeEventListener("mousemove",X),u.removeEventListener("pointermove",X),window.removeEventListener("pointerup",H),document.removeEventListener("pointerup",H),window.removeEventListener("mouseup",H),document.removeEventListener("mouseup",H),window.removeEventListener("pointercancel",H),document.removeEventListener("pointercancel",H),window.removeEventListener("keydown",Be),u.removeEventListener("lostpointercapture",H),p.removeAttribute("data-resizing"),u.removeAttribute("data-dragging"),Z.style.cursor=dn,Z.style.userSelect=pn,B.current=null},ye=!1,H=()=>{if(ye)return;if(ye=!0,Q&&cancelAnimationFrame(Q),Ve(),k&&typeof j=="number"&&Se<=j){v(p,f),$?.(f),me(),M?.(),T?.(f);return}let E=ee;if(b&&b.length){let oe=b.reduce((Oe,He)=>Math.abs(He-ee)<Math.abs(Oe-ee)?He:Oe,b[0]);Math.abs(oe-ee)<=A&&(E=re(oe),v(p,E),$?.(E))}T?.(E),me()},Be=E=>{E.key==="Escape"&&(Q&&cancelAnimationFrame(Q),Q=0,se=null,v(p,f),$?.(f),ye=!0,T?.(f),me())};window.addEventListener("pointermove",X),document.addEventListener("pointermove",X),window.addEventListener("mousemove",X),document.addEventListener("mousemove",X),u.addEventListener("pointermove",X),window.addEventListener("pointerup",H),document.addEventListener("pointerup",H),window.addEventListener("mouseup",H),document.addEventListener("mouseup",H),window.addEventListener("pointercancel",H),document.addEventListener("pointercancel",H),window.addEventListener("keydown",Be),u.addEventListener("lostpointercapture",H),B.current=me},onDoubleClick:a=>{t.onDoubleClick?.(a),!a.defaultPrevented&&k&&F?.()},onFocus:a=>{t.onFocus?.(a),g()},onKeyDown:a=>{t.onKeyDown?.(a);let p=o.current;if(!p||a.defaultPrevented)return;if(a.key==="Enter"){k&&F&&(a.preventDefault(),F());return}let u=i(),w=l(),O=f=>Math.min(Math.max(f,N),w),C;if(a.key==="Home")C=O(N);else if(a.key==="End")C=O(w);else{let f=x==="vertical"?a.key==="ArrowRight"?1:a.key==="ArrowLeft"?-1:0:a.key==="ArrowDown"?1:a.key==="ArrowUp"?-1:0;if(f===0)return;let s=a.shiftKey?32:8;C=O(u+f*s*V(getComputedStyle(p).direction==="rtl"))}a.preventDefault(),U?.(u),v(p,C),$?.(C),T?.(C)}},n)});ne.displayName="Shell.Handle";var Sn=h.forwardRef((e,n)=>h.createElement(ne,{...e,ref:n}));Sn.displayName="Shell.Panel.Handle";var yn=h.forwardRef((e,n)=>h.createElement(ne,{...e,ref:n}));yn.displayName="Shell.Sidebar.Handle";var ge=h.forwardRef((e,n)=>h.createElement(ne,{...e,ref:n}));ge.displayName="Shell.Inspector.Handle";var xn=h.forwardRef((e,n)=>h.createElement(ne,{...e,ref:n}));xn.displayName="Shell.Bottom.Handle";var R=Y(require("react")),pe=require("radix-ui/internal");var ue=Y(require("react"));var Ue={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},ve=["initial","xs","sm","md","lg","xl"];var En=Object.entries(Ue),Ee=null,le=new Set,te=null;function ze(){return Ee??(Ee=En.map(([e,n])=>[e,window.matchMedia(n)])),Ee}function Pe(){let e="initial";for(let[n,t]of ze())t.matches&&(e=n);return e}function he(){let e=Pe();e!==te&&(te=e,le.forEach(n=>n()))}function je(e){if(typeof window>"u")return()=>{};if(le.size===0){te=Pe();for(let[,n]of ze())typeof n.addEventListener=="function"?n.addEventListener("change",he):n.addListener?.(he)}return le.add(e),()=>{if(le.delete(e),!(le.size>0)){for(let[,n]of ze())try{typeof n.removeEventListener=="function"?n.removeEventListener("change",he):n.removeListener?.(he)}catch{}te=null}}}function zn(){return typeof window>"u"?"initial":(te??(te=Pe()),te)}function wn(){return"initial"}function ce(){return typeof window>"u"?"initial":Pe()}var Cn=()=>!0,Tn=()=>!1,_e=()=>()=>{},kn=()=>"initial";function qe(e=!0){let n=ue.useSyncExternalStore(e?je:_e,e?zn:kn,wn),t=ue.useSyncExternalStore(e?je:_e,Cn,Tn);return ue.useMemo(()=>({breakpoint:n,ready:t}),[n,t])}var J=Y(require("react")),We=require("radix-ui/internal");function Ke(e){return typeof e=="object"&&e!==null}function de(e,n){let t={},r=null;for(let o of ve){if(e!==void 0&&!Ke(e)){t[o]=e;continue}let c=Ke(e)?e[o]:void 0;c!==void 0&&(r={value:c}),t[o]=r?r.value:n(o)}return t}function ae(e){let n=e.initial;return ve.every(t=>e[t]===n)?n:void 0}function we(e,n){let t=ae(n);if(t!==void 0)return{[`data-${e}`]:t};let r={};for(let o of ve)r[`data-${e}-${o}`]=n[o];return r}function Ce(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var Wn=de("fixed",()=>"fixed");function Te(e){e.version+=1;for(let n of e.listeners)n()}function Ln(e,n){return e.listeners.add(n),()=>{e.listeners.delete(n)}}var Nn=J.createContext(null);function Qe(e){let n=J.useContext(Nn);if(!n)throw new Error(`${e} must be used within <Shell.Root>`);return n}function Ge(e,n){let t=J.useCallback(r=>Ln(e,r),[e]);return J.useSyncExternalStore(t,()=>e.peek===n,()=>!1)}var Vn=J.createContext(null);function Xe(e,n){let t=J.useContext(Vn);if(!t)throw new Error("Shell panes must be used within <Shell.Root>");let{registerOffFrame:r,unregisterOffFrame:o}=t;(0,We.useLayoutEffect)(()=>{if(!n)return r(e),()=>o(e)},[e,n,r,o])}var ke=e=>typeof e=="object"&&e!==null;function In(e){for(let n of["initial","xs","sm","md","lg","xl"]){let t=e[n];if(t!==void 0)return t}return"closed"}function Ye(e){let{name:n,label:t,propNames:r,presentationTable:o,builtIn:c}=e,m=Qe(`Shell.${t}`),N=R.useId(),y=e.id??`shell-${n}${N}`,P=e.controlled!==void 0,D=ke(e.controlled);D&&(`${t}${r.controlled}${r.default}`,void 0);let x=D?e.controlled:void 0,S=x??(ke(e.defaultValue)?e.defaultValue:void 0),V=Ce(S),[$,U]=R.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),T=R.useMemo(()=>x?de(x,()=>In(x)):de(S,s=>c(o[s])),[V,D,o,c]),b=$;P&&(b=x?"auto":e.controlled);let A=ae(o)===void 0||b==="auto"&&ae(T)===void 0,{breakpoint:j,ready:k}=qe(A),_=s=>{let K=ae(s);return K!==void 0?K:k?s[j]:void 0},M=b==="auto"?_(T):b,F=_(o),I=F==="overlay",L=M===void 0?void 0:M!=="closed",B=L===!0&&I,i=e.defaultValue,l=R.useRef({state:b,value:M,autoTable:T,defaultValue:i,controlled:P,onChange:e.onChange,toggleNext:e.toggleNext});(0,pe.useLayoutEffect)(()=>{l.current={state:b,value:M,autoTable:T,defaultValue:i,controlled:P,onChange:e.onChange,toggleNext:e.toggleNext}});let g=R.useCallback(()=>{let s=l.current;return s.value!==void 0?s.value:s.state==="auto"?s.autoTable[ce()]:void 0},[]),v=R.useCallback(()=>{let s=l.current;return typeof s.defaultValue=="string"?s.defaultValue:ke(s.defaultValue)?s.autoTable[ce()]:void 0},[]),z=R.useCallback((s,K)=>{let W=l.current;g()!==s&&(W.onChange?.(s,K),W.controlled||U(s))},[g]),a=R.useCallback(s=>{let K=l.current,W=g()??"closed",re=K.toggleNext?K.toggleNext(W,v()):W==="closed"?"open":"closed";z(re,s)},[z,g,v]),p=R.useRef(null),u=R.useCallback(s=>{p.current=s},[]);(0,pe.useLayoutEffect)(()=>{let s={name:n,id:y,el:p.current,value:M,presentation:F,presentationTable:o,overlayLive:B,size:e.size,setValue:z,toggle:a};return m.entries.set(n,s),Te(m),()=>{m.entries.get(n)===s&&(m.entries.delete(n),Te(m))}},[m,n,y,M,F,o,B,e.size,z,a]);let w=R.useRef({onExpand:e.onExpand,onCollapse:e.onCollapse});(0,pe.useLayoutEffect)(()=>{w.current={onExpand:e.onExpand,onCollapse:e.onCollapse}});let O=R.useRef({state:b,shown:L});R.useEffect(()=>{let s=O.current;s.state!==b&&s.shown!==void 0&&L!==void 0&&s.shown!==L&&(L?w.current.onExpand?.():w.current.onCollapse?.()),O.current={state:b,shown:L}},[b,L]),(0,pe.useLayoutEffect)(()=>{},[]);let C=R.useRef(P);R.useEffect(()=>{},[P,t,r.controlled]);let f=Ge(m,n)&&L===!1&&!I;return{store:m,id:y,state:b,value:M,shown:L,presentation:F,overlaying:I,overlayLive:B,peeking:f,ready:k,breakpoint:j,autoTable:T,setValue:z,toggle:a,defaultHereNow:v,setElement:u}}function Je(e,n){let{state:t,value:r,presentation:o,shown:c}=e;return{...n,"data-state":t,...t==="auto"?we("auto",e.autoTable):{},"data-presentation":o,"data-mode":r===void 0?void 0:r==="closed"?"collapsed":"expanded","data-open":o==="stacked"&&c?"":void 0,"data-peek":e.peeking?"":void 0}}function Ze(e,n){let t=Ce(e),r=R.useMemo(()=>de(e,()=>n),[t,n]),o=R.useMemo(()=>ae(r)===void 0?we("presentation",r):{},[r]);return{table:r,attributes:o}}var d=Y(require("react")),ie=require("radix-ui/internal");function en(e,n="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let t=String(e).trim();if(!t)return;if(t.endsWith("px"))return Number.parseFloat(t);if(t.endsWith("rem")){let o=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(t)*o}if(t.endsWith("%")){let o=Number.parseFloat(t),c=n==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return o/100*c}let r=Number.parseFloat(t);return Number.isFinite(r)?r:void 0}var fe=(e,n,t)=>Math.max(n??e,Math.min(t??e,e));function nn(e,n,t,r){let[o]=d.useState(()=>{let c=e??n;return typeof c=="number"&&Number.isFinite(c)?`${fe(c,t,r)}px`:void 0});return o}function tn(e){let{name:n,elementRef:t,cssVarName:r,orientation:o,minSize:c,maxSize:m,resizable:N,size:y,defaultSize:P,paneId:D,persistence:x}=e,S=d.useRef(e);(0,ie.useLayoutEffect)(()=>{S.current=e});let V=d.useRef(null),$=d.useRef(0);d.useEffect(()=>()=>{V.current&&clearTimeout(V.current)},[]);let U=d.useCallback((i,l)=>{let{onSizeChange:g,sizeUpdate:v,sizeUpdateMs:z}=S.current;if(g){if(v==="debounce"){V.current&&clearTimeout(V.current),V.current=setTimeout(()=>{V.current=null,S.current.onSizeChange?.(i,l)},z);return}if(v==="throttle"){let a=Date.now();if(a-$.current<z)return;$.current=a}g(i,l)}},[]),T=d.useCallback(i=>en(i,o==="vertical"?"horizontal":"vertical"),[o]),b=d.useRef(!1),A=d.useCallback((i,l)=>{let g=t.current;if(g){g.style.setProperty(r,`${i}px`);for(let v of g.querySelectorAll(":scope > .kui-ShellResizer"))v.setAttribute("aria-valuenow",String(Math.round(i)));l&&(b.current=!0)}},[t,r]);(0,ie.useLayoutEffect)(()=>{b.current||A(e.expandedSize,!1)},[e.expandedSize,A]),(0,ie.useLayoutEffect)(()=>{if(y!==void 0||P===void 0)return;let i=T(P);if(typeof i!="number"||!Number.isFinite(i))return;let l=fe(i,c,m);A(l,!0),U(l,{reason:"init"})},[]),(0,ie.useLayoutEffect)(()=>{if(y===void 0||S.current.overlayingNow())return;let i=T(y);if(typeof i!="number"||!Number.isFinite(i))return;let l=fe(i,c,m);A(l,!0),U(l,{reason:"controlled"})},[y,c,m,e.overlaying,T,A,U]);let j=x!==void 0,k=d.useMemo(()=>{if(j)return{load:()=>S.current.persistence?.load?.(),save:l=>S.current.persistence?.save?.(l)};if(!D)return;let i=`kookie-ui:shell:${n}:${D}`;return{load:()=>{if(!(typeof window>"u"))try{let l=window.localStorage.getItem(i);return l?Number(l):void 0}catch{return}},save:l=>{if(!(typeof window>"u"))try{window.localStorage.setItem(i,String(l))}catch{}}}},[n,D,j]);(0,ie.useLayoutEffect)(()=>{if(!N||!k?.load||S.current.overlayingNow())return;let i=!0,l=v=>{if(!i||typeof v!="number"||!Number.isFinite(v))return;let z=fe(v,c,m);A(z,!0),S.current.onResize?.(z)},g=k.load();return g instanceof Promise?g.then(l).catch(v=>{}):l(g),()=>{i=!1}},[N,k,e.overlaying,A,c,m,n]);let[_]=d.useState(()=>{let i=y??P;return typeof i=="number"&&Number.isFinite(i)?fe(i,c,m):e.expandedSize}),M=d.useCallback(i=>S.current.onResize?.(i),[]),F=d.useCallback(i=>{b.current=!0,S.current.onResizeStart?.(i)},[]),I=d.useCallback(i=>{S.current.onResizeEnd?.(i),U(i,{reason:"resize"}),k?.save?.(i)},[U,k]),L=d.useCallback(()=>S.current.requestCollapse(),[]),B=d.useCallback(()=>S.current.requestToggle(),[]);return d.useMemo(()=>({containerRef:t,controls:e.elementId,cssVarName:r,minSize:c,maxSize:m,defaultSize:e.expandedSize,startSize:_,orientation:o,edge:e.edge,growth:e.growth,onResize:M,onResizeStart:F,onResizeEnd:I,target:n,collapsible:e.collapsible,snapPoints:e.snapPoints,snapTolerance:e.snapTolerance??8,collapseThreshold:e.collapseThreshold,requestCollapse:L,requestToggle:B}),[t,e.elementId,r,c,m,e.expandedSize,_,o,e.edge,e.growth,M,F,I,n,e.collapsible,e.snapPoints,e.snapTolerance,e.collapseThreshold,L,B])}function rn(e,n){let t=d.Children.toArray(e),r=t.filter(c=>d.isValidElement(c)&&c.type===n),o=t.filter(c=>!(d.isValidElement(c)&&c.type===n));return{handles:r,content:o}}function Le(e){if(e===void 0)return;if(typeof e=="boolean")return e?"open":"closed";let n={};for(let[t,r]of Object.entries(e))typeof r=="boolean"&&(n[t]=r?"open":"closed");return n}var on=()=>"closed";var an=e=>e?1:-1;function sn(e){if(!("height"in e)&&!("resizer"in e))return e;let{height:n,resizer:t,...r}=e;return r}var G=Y(require("react")),Bn=G.createContext(null);function ln({children:e}){let n=G.useMemo(()=>({title:null,mirrors:new Set,collapsed:!1,listeners:new Set,version:0}),[]);return G.createElement(Bn.Provider,{value:n},e)}var On={controlled:"open",default:"defaultOpen"},Hn={initial:"overlay",sm:"fixed"},Ne=q.forwardRef((e,n)=>{let{className:t,presentation:r=Hn,defaultOpen:o,open:c,onOpenChange:m,expandedSize:N=320,minSize:y=200,maxSize:P=500,resizable:D=!1,collapsible:x=!0,onExpand:S,onCollapse:V,onResize:$,onResizeStart:U,onResizeEnd:T,snapPoints:b,snapTolerance:A,collapseThreshold:j,paneId:k,persistence:_,children:M,style:F,onSizeChange:I,sizeUpdate:L,sizeUpdateMs:B=50,size:i,defaultSize:l,flush:g=!0,id:v,...z}=e,{table:a,attributes:p}=Ze(r,"fixed"),u=Ye({name:"inspector",label:"Inspector",propNames:On,id:v,controlled:Le(c),defaultValue:Le(o),presentationTable:a,builtIn:on,onChange:(re,Z)=>m?.(re!=="closed",{reason:Z}),onExpand:S,onCollapse:V,size:N});Xe("inspector",g),q.useEffect(()=>{(b!==void 0||j!==void 0||k!==void 0||_!==void 0)&&void 0},[b,j,k,_]);let w=q.useRef(null),O=(0,cn.useComposedRefs)(n,u.setElement,w),C=tn({name:"inspector",elementId:u.id,elementRef:w,cssVarName:"--inspector-size",orientation:"vertical",edge:"start",growth:an,expandedSize:N,minSize:y,maxSize:P,resizable:D,collapsible:x,size:i,defaultSize:l,onSizeChange:I,sizeUpdate:L,sizeUpdateMs:B,onResize:$,onResizeStart:U,onResizeEnd:T,snapPoints:b,snapTolerance:A,collapseThreshold:j,paneId:k,persistence:_,overlaying:u.overlaying,overlayingNow:()=>a[ce()]==="overlay",requestCollapse:()=>u.setValue("closed","toggle"),requestToggle:()=>u.toggle("toggle")}),{handles:f,content:s}=rn(M,ge),K=D&&u.shown!==!1&&!u.overlaying?q.createElement(xe.Provider,{value:C},f.length>0?f:q.createElement(ne,null)):null,W=nn(i,l,y,P);return q.createElement("div",{...sn(z),role:z.role??"complementary",id:u.id,ref:O,className:(0,un.default)("kui-ShellPane","kui-ShellInspector",t),...Je(u,p),"data-flush":g||void 0,tabIndex:u.overlaying?-1:z.tabIndex,style:{...F,"--inspector-expanded-size":`${N}px`,...W?{"--inspector-size":W}:{},"--inspector-min-size":`${y}px`,"--inspector-max-size":`${P}px`}},q.createElement("div",{className:"kui-ShellInspectorContent"},q.createElement(ln,null,s)),K)});Ne.displayName="Shell.Inspector";Ne.Handle=ge;
2
+ "use strict";"use client";var ot=Object.create;var ae=Object.defineProperty;var at=Object.getOwnPropertyDescriptor;var it=Object.getOwnPropertyNames;var st=Object.getPrototypeOf,lt=Object.prototype.hasOwnProperty;var ut=(e,t)=>{for(var n in t)ae(e,n,{get:t[n],enumerable:!0})},Te=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of it(t))!lt.call(e,r)&&r!==n&&ae(e,r,{get:()=>t[r],enumerable:!(o=at(t,r))||o.enumerable});return e};var W=(e,t,n)=>(n=e!=null?ot(st(e)):{},Te(t||!e||!e.__esModule?ae(n,"default",{value:e,enumerable:!0}):n,e)),ct=e=>Te(ae({},"__esModule",{value:!0}),e);var zt={};ut(zt,{Inspector:()=>Ee});module.exports=ct(zt);var K=W(require("react")),Je=W(require("classnames")),Ze=require("radix-ui/internal");var ie=W(require("react")),ge=ie.createContext(null);function Ve(){let e=ie.useContext(ge);if(!e)throw new Error("Shell.Handle must be used within a resizable pane");return e}var b=W(require("react")),ke=require("radix-ui/internal"),Ne=W(require("classnames"));var Q=b.forwardRef(({className:e,children:t,...n},o)=>{let{containerRef:r,controls:l,cssVarName:m,minSize:v,maxSize:S,defaultSize:p,startSize:T,orientation:y,edge:B,growth:I,onResize:C,onResizeStart:P,onResizeEnd:F,collapsible:D,target:U,requestToggle:O}=Ve(),g=b.useRef(null),s=b.useCallback(a=>{g.current=a,typeof o=="function"?o(a):o&&(o.current=a)},[o]),f=b.useRef(null);b.useEffect(()=>()=>{f.current?.(),f.current=null},[]);let w=b.useCallback(()=>{let a=r.current;if(!a)return p;let u=Number.parseFloat(getComputedStyle(a).getPropertyValue(m));return Number.isFinite(u)?u:p},[r,m,p]),x=b.useCallback(()=>{let a=r.current,u=g.current,c=a?.closest(".kui-ShellRoot")?.getBoundingClientRect();if(!a||!c||!u)return S;let z=a.getBoundingClientRect(),N=u.getBoundingClientRect(),h=I(getComputedStyle(a).direction==="rtl"),i;y==="vertical"?i=h>0?c.right-z.left:z.right-c.left:i=h>0?c.bottom-z.top:z.bottom-c.top;let L=y==="vertical"?N.width:N.height;return!(c.width>0&&c.height>0)||!Number.isFinite(i)?S:Math.max(v,Math.min(S,Math.round(i-L)))},[r,I,S,v,y]),$=()=>{g.current?.setAttribute("aria-valuemax",String(x()))};(0,ke.useLayoutEffect)(()=>{g.current?.setAttribute("aria-valuenow",String(Math.round(w())))},[w]);let V=(a,u)=>{a.style.setProperty(m,`${u}px`),g.current?.setAttribute("aria-valuenow",String(Math.round(u)))},E=U.charAt(0).toUpperCase()+U.slice(1);return b.createElement("div",{ref:s,className:(0,Ne.default)("kui-ShellResizer",e),"data-orientation":y,"data-edge":B,role:"separator",tabIndex:0,"aria-label":`Resize ${E} pane`,"aria-controls":l,"aria-orientation":y,"aria-valuenow":Math.round(T),"aria-valuemin":v,"aria-valuemax":S,...n,onPointerDown:a=>{n.onPointerDown?.(a);let u=r.current;if(!u||a.defaultPrevented||a.button!==0)return;a.preventDefault();let c=a.currentTarget,z=a.pointerId;f.current?.();try{c.setPointerCapture(z)}catch{}let N=getComputedStyle(u),h=Number.parseFloat(N.getPropertyValue(m)),i=Number.isFinite(h)?h:p,L=y==="vertical"?a.clientX:a.clientY,_=I(N.direction==="rtl"),re=x();c.setAttribute("aria-valuemax",String(re));let et=M=>Math.min(Math.max(M,v),re);u.setAttribute("data-resizing",""),c.setAttribute("data-dragging","");let X=document.body,tt=X.style.cursor,nt=X.style.userSelect;X.style.cursor=y==="vertical"?"col-resize":"row-resize",X.style.userSelect="none",P?.(i);let oe=i,H=0,J=null,ze=()=>{if(H=0,J===null)return;let M=J;J=null,C?.(M)},Ce=null,we=!1,rt=(M,Re)=>{if(M.type===Re)we=!0;else if(we)return!1;return!0},j=M=>{if(!rt(M,"pointermove")||M===Ce)return;Ce=M;let Re=y==="vertical"?M.clientX:M.clientY;oe=et(i+(Re-L)*_),V(u,oe),J=oe,H||(H=requestAnimationFrame(ze))},me=()=>{H&&cancelAnimationFrame(H),H=0;try{c.releasePointerCapture(z)}catch{}window.removeEventListener("pointermove",j),document.removeEventListener("pointermove",j),window.removeEventListener("mousemove",j),document.removeEventListener("mousemove",j),c.removeEventListener("pointermove",j),window.removeEventListener("pointerup",k),document.removeEventListener("pointerup",k),window.removeEventListener("mouseup",k),document.removeEventListener("mouseup",k),window.removeEventListener("pointercancel",k),document.removeEventListener("pointercancel",k),window.removeEventListener("keydown",Le),c.removeEventListener("lostpointercapture",k),u.removeAttribute("data-resizing"),c.removeAttribute("data-dragging"),X.style.cursor=tt,X.style.userSelect=nt,f.current=null},be=!1,k=()=>{be||(be=!0,H&&cancelAnimationFrame(H),ze(),F?.(oe),me())},Le=M=>{M.key==="Escape"&&(H&&cancelAnimationFrame(H),H=0,J=null,V(u,i),C?.(i),be=!0,F?.(i),me())};window.addEventListener("pointermove",j),document.addEventListener("pointermove",j),window.addEventListener("mousemove",j),document.addEventListener("mousemove",j),c.addEventListener("pointermove",j),window.addEventListener("pointerup",k),document.addEventListener("pointerup",k),window.addEventListener("mouseup",k),document.addEventListener("mouseup",k),window.addEventListener("pointercancel",k),document.addEventListener("pointercancel",k),window.addEventListener("keydown",Le),c.addEventListener("lostpointercapture",k),f.current=me},onDoubleClick:a=>{n.onDoubleClick?.(a),!a.defaultPrevented&&D&&O?.()},onFocus:a=>{n.onFocus?.(a),$()},onKeyDown:a=>{n.onKeyDown?.(a);let u=r.current;if(!u||a.defaultPrevented)return;if(a.key==="Enter"){D&&O&&(a.preventDefault(),O());return}let c=w(),z=x(),N=i=>Math.min(Math.max(i,v),z),h;if(a.key==="Home")h=N(v);else if(a.key==="End")h=N(z);else{let i=y==="vertical"?a.key==="ArrowRight"?1:a.key==="ArrowLeft"?-1:0:a.key==="ArrowDown"?1:a.key==="ArrowUp"?-1:0;if(i===0)return;let L=a.shiftKey?32:8;h=N(c+i*L*I(getComputedStyle(u).direction==="rtl"))}a.preventDefault(),P?.(c),V(u,h),C?.(h),F?.(h)}},t)});Q.displayName="Shell.Handle";var dt=b.forwardRef((e,t)=>b.createElement(Q,{...e,ref:t}));dt.displayName="Shell.Panel.Handle";var pt=b.forwardRef((e,t)=>b.createElement(Q,{...e,ref:t}));pt.displayName="Shell.Sidebar.Handle";var se=b.forwardRef((e,t)=>b.createElement(Q,{...e,ref:t}));se.displayName="Shell.Inspector.Handle";var ft=b.forwardRef((e,t)=>b.createElement(Q,{...e,ref:t}));ft.displayName="Shell.Bottom.Handle";var R=W(require("react")),pe=require("radix-ui/internal");var ee=W(require("react"));var Me={xs:"(min-width: 520px)",sm:"(min-width: 768px)",md:"(min-width: 1024px)",lg:"(min-width: 1280px)",xl:"(min-width: 1640px)"},le=["initial","xs","sm","md","lg","xl"];var mt=Object.entries(Me),ve=null,Z=new Set,G=null;function Pe(){return ve??(ve=mt.map(([e,t])=>[e,window.matchMedia(t)])),ve}function ce(){let e="initial";for(let[t,n]of Pe())n.matches&&(e=t);return e}function ue(){let e=ce();e!==G&&(G=e,Z.forEach(t=>t()))}function Ie(e){if(typeof window>"u")return()=>{};if(Z.size===0){G=ce();for(let[,t]of Pe())typeof t.addEventListener=="function"?t.addEventListener("change",ue):t.addListener?.(ue)}return Z.add(e),()=>{if(Z.delete(e),!(Z.size>0)){for(let[,t]of Pe())try{typeof t.removeEventListener=="function"?t.removeEventListener("change",ue):t.removeListener?.(ue)}catch{}G=null}}}function bt(){return typeof window>"u"?"initial":(G??(G=ce()),G)}function Rt(){return"initial"}function te(){return typeof window>"u"?"initial":ce()}var gt=()=>!0,vt=()=>!1,Be=()=>()=>{},Pt=()=>"initial";function Oe(e=!0){let t=ee.useSyncExternalStore(e?Ie:Be,e?bt:Pt,Rt),n=ee.useSyncExternalStore(e?Ie:Be,gt,vt);return ee.useMemo(()=>({breakpoint:t,ready:n}),[t,n])}var q=W(require("react")),Ae=require("radix-ui/internal");function He(e){return typeof e=="object"&&e!==null}function de(e,t){let n={},o=null;for(let r of le){if(e!==void 0&&!He(e)){n[r]=e;continue}let l=He(e)?e[r]:void 0;l!==void 0&&(o={value:l}),n[r]=o?o.value:t(r)}return n}function Y(e){let t=e.initial;return le.every(n=>e[n]===t)?t:void 0}function Se(e,t){let n=Y(t);if(n!==void 0)return{[`data-${e}`]:n};let o={};for(let r of le)o[`data-${e}-${r}`]=t[r];return o}function he(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var It=de("fixed",()=>"fixed");function ye(e){e.version+=1;for(let t of e.listeners)t()}var St=q.createContext(null);function Fe(e){let t=q.useContext(St);if(!t)throw new Error(`${e} must be used within <Shell.Root>`);return t}var ht=q.createContext(null);function De(e,t){let n=q.useContext(ht);if(!n)throw new Error("Shell panes must be used within <Shell.Root>");let{registerOffFrame:o,unregisterOffFrame:r}=n;(0,Ae.useLayoutEffect)(()=>{if(!t)return o(e),()=>r(e)},[e,t,o,r])}var Ue=e=>typeof e=="object"&&e!==null;function $e(e){let{name:t,label:n,propNames:o,presentationTable:r,builtIn:l}=e,m=Fe(`Shell.${n}`),v=R.useId(),S=e.id??`shell-${t}${v}`,p=e.controlled!==void 0,T=Ue(e.defaultValue)?e.defaultValue:void 0,y=he(T),[B,I]=R.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),C=R.useMemo(()=>de(T,i=>l(r[i])),[y,r,l]),P=B;e.controlled!==void 0&&(P=e.controlled);let F=Y(r)===void 0||P==="auto"&&Y(C)===void 0,{breakpoint:D,ready:U}=Oe(F),O=i=>{let L=Y(i);return L!==void 0?L:U?i[D]:void 0},g=P==="auto"?O(C):P,s=O(r),f=s==="overlay",w=g===void 0?void 0:g!=="closed",x=w===!0&&f,$=e.defaultValue,V=R.useRef({state:P,value:g,autoTable:C,defaultValue:$,controlled:p,onChange:e.onChange,toggleNext:e.toggleNext});(0,pe.useLayoutEffect)(()=>{V.current={state:P,value:g,autoTable:C,defaultValue:$,controlled:p,onChange:e.onChange,toggleNext:e.toggleNext}});let E=R.useCallback(()=>{let i=V.current;return i.value!==void 0?i.value:i.state==="auto"?i.autoTable[te()]:void 0},[]),a=R.useCallback(()=>{let i=V.current;return typeof i.defaultValue=="string"?i.defaultValue:Ue(i.defaultValue)?i.autoTable[te()]:void 0},[]),u=R.useCallback((i,L)=>{let _=V.current;E()!==i&&(_.onChange?.(i,L),_.controlled||I(i))},[E]),c=R.useCallback(i=>{let L=V.current,_=E()??"closed",re=L.toggleNext?L.toggleNext(_,a()):_==="closed"?"open":"closed";u(re,i)},[u,E,a]),z=R.useRef(null),N=R.useCallback(i=>{z.current=i},[]);(0,pe.useLayoutEffect)(()=>{let i={name:t,id:S,el:z.current,value:g,presentation:s,presentationTable:r,overlayLive:x,size:e.size,setValue:u,toggle:c};return m.entries.set(t,i),ye(m),()=>{m.entries.get(t)===i&&(m.entries.delete(t),ye(m))}},[m,t,S,g,s,r,x,e.size,u,c]),(0,pe.useLayoutEffect)(()=>{},[]);let h=R.useRef(p);return R.useEffect(()=>{},[p,n,o.controlled]),{store:m,id:S,state:P,value:g,shown:w,presentation:s,overlaying:f,overlayLive:x,ready:U,breakpoint:D,autoTable:C,setValue:u,toggle:c,defaultHereNow:a,setElement:N}}function je(e,t){let{state:n,value:o,presentation:r}=e;return{...t,"data-state":n,...n==="auto"?Se("auto",e.autoTable):{},"data-presentation":r,"data-mode":o===void 0?void 0:o==="closed"?"collapsed":"expanded"}}function We(e,t){let n=he(e),o=R.useMemo(()=>de(e,()=>t),[n,t]),r=R.useMemo(()=>Y(o)===void 0?Se("presentation",o):{},[o]);return{table:o,attributes:r}}var d=W(require("react")),ne=require("radix-ui/internal");function Ke(e,t="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let n=String(e).trim();if(!n)return;if(n.endsWith("px"))return Number.parseFloat(n);if(n.endsWith("rem")){let r=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(n)*r}if(n.endsWith("%")){let r=Number.parseFloat(n),l=t==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return r/100*l}let o=Number.parseFloat(n);return Number.isFinite(o)?o:void 0}var fe=(e,t,n)=>Math.max(t??e,Math.min(n??e,e));function _e(e,t,n,o){let[r]=d.useState(()=>{let l=e??t;return typeof l=="number"&&Number.isFinite(l)?`${fe(l,n,o)}px`:void 0});return r}function qe(e){let{name:t,elementRef:n,cssVarName:o,orientation:r,minSize:l,maxSize:m,size:v,defaultSize:S}=e,p=d.useRef(e);(0,ne.useLayoutEffect)(()=>{p.current=e});let T=d.useRef(null),y=d.useRef(0);d.useEffect(()=>()=>{T.current&&clearTimeout(T.current)},[]);let B=d.useCallback((s,f)=>{let{onSizeChange:w,sizeUpdate:x,sizeUpdateMs:$}=p.current;if(w){if(x==="debounce"){T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{T.current=null,p.current.onSizeChange?.(s,f)},$);return}if(x==="throttle"){let V=Date.now();if(V-y.current<$)return;y.current=V}w(s,f)}},[]),I=d.useCallback(s=>Ke(s,r==="vertical"?"horizontal":"vertical"),[r]),C=d.useRef(!1),P=d.useCallback((s,f)=>{let w=n.current;if(w){w.style.setProperty(o,`${s}px`);for(let x of w.querySelectorAll(":scope > .kui-ShellResizer"))x.setAttribute("aria-valuenow",String(Math.round(s)));f&&(C.current=!0)}},[n,o]);(0,ne.useLayoutEffect)(()=>{C.current||P(e.expandedSize,!1)},[e.expandedSize,P]),(0,ne.useLayoutEffect)(()=>{if(v!==void 0||S===void 0)return;let s=I(S);if(typeof s!="number"||!Number.isFinite(s))return;let f=fe(s,l,m);P(f,!0),B(f,{reason:"init"})},[]),(0,ne.useLayoutEffect)(()=>{if(v===void 0||p.current.overlayingNow())return;let s=I(v);if(typeof s!="number"||!Number.isFinite(s))return;let f=fe(s,l,m);P(f,!0),B(f,{reason:"controlled"})},[v,l,m,e.overlaying,I,P,B]);let[F]=d.useState(()=>{let s=v??S;return typeof s=="number"&&Number.isFinite(s)?fe(s,l,m):e.expandedSize}),D=d.useCallback(s=>p.current.onResize?.(s),[]),U=d.useCallback(s=>{C.current=!0,p.current.onResizeStart?.(s)},[]),O=d.useCallback(s=>{p.current.onResizeEnd?.(s),B(s,{reason:"resize"})},[B]),g=d.useCallback(()=>p.current.requestToggle(),[]);return d.useMemo(()=>({containerRef:n,controls:e.elementId,cssVarName:o,minSize:l,maxSize:m,defaultSize:e.expandedSize,startSize:F,orientation:r,edge:e.edge,growth:e.growth,onResize:D,onResizeStart:U,onResizeEnd:O,target:t,collapsible:e.collapsible,requestToggle:g}),[n,e.elementId,o,l,m,e.expandedSize,F,r,e.edge,e.growth,D,U,O,t,e.collapsible,g])}function Qe(e,t){let n=d.Children.toArray(e),o=n.filter(l=>d.isValidElement(l)&&l.type===t),r=n.filter(l=>!(d.isValidElement(l)&&l.type===t));return{handles:o,content:r}}function xe(e){if(e===void 0)return;if(typeof e=="boolean")return e?"open":"closed";let t={};for(let[n,o]of Object.entries(e))typeof o=="boolean"&&(t[n]=o?"open":"closed");return t}var Ge=()=>"closed";var Xe=e=>e?1:-1;var A=W(require("react")),yt=A.createContext(null);function Ye({children:e}){let t=A.useMemo(()=>({title:null,mirrors:new Set,collapsed:!1,listeners:new Set,version:0}),[]);return A.createElement(yt.Provider,{value:t},e)}var xt={controlled:"open",default:"defaultOpen"},Et={initial:"overlay",sm:"fixed"},Ee=K.forwardRef((e,t)=>{let{className:n,presentation:o=Et,defaultOpen:r,open:l,onOpenChange:m,expandedSize:v=320,minSize:S=200,maxSize:p=500,resizable:T=!1,collapsible:y=!0,onResize:B,onResizeStart:I,onResizeEnd:C,children:P,style:F,onSizeChange:D,sizeUpdate:U,sizeUpdateMs:O=50,size:g,defaultSize:s,flush:f=!0,id:w,...x}=e,{table:$,attributes:V}=We(o,"fixed"),E=$e({name:"inspector",label:"Inspector",propNames:xt,id:w,controlled:xe(l),defaultValue:xe(r),presentationTable:$,builtIn:Ge,onChange:(L,_)=>m?.(L!=="closed",{reason:_}),size:v});De("inspector",f);let a=K.useRef(null),u=(0,Ze.useComposedRefs)(t,E.setElement,a),c=qe({name:"inspector",elementId:E.id,elementRef:a,cssVarName:"--inspector-size",orientation:"vertical",edge:"start",growth:Xe,expandedSize:v,minSize:S,maxSize:p,resizable:T,collapsible:y,size:g,defaultSize:s,onSizeChange:D,sizeUpdate:U,sizeUpdateMs:O,onResize:B,onResizeStart:I,onResizeEnd:C,overlaying:E.overlaying,overlayingNow:()=>$[te()]==="overlay",requestToggle:()=>E.toggle("toggle")}),{handles:z,content:N}=Qe(P,se),h=T&&E.shown!==!1&&!E.overlaying?K.createElement(ge.Provider,{value:c},z.length>0?z:K.createElement(Q,null)):null,i=_e(g,s,S,p);return K.createElement("div",{...x,role:x.role??"complementary",id:E.id,ref:u,className:(0,Je.default)("kui-ShellPane","kui-ShellInspector",n),...je(E,V),"data-flush":f||void 0,tabIndex:E.overlaying?-1:x.tabIndex,style:{...F,"--inspector-expanded-size":`${v}px`,...i?{"--inspector-size":i}:{},"--inspector-min-size":`${S}px`,"--inspector-max-size":`${p}px`}},K.createElement("div",{className:"kui-ShellInspectorContent"},K.createElement(Ye,null,N)),h)});Ee.displayName="Shell.Inspector";Ee.Handle=se;
3
3
  //# sourceMappingURL=shell-inspector.js.map