@tribepad/themis 1.0.0 → 1.0.1

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 (326) hide show
  1. package/dist/elements/Accordion/index.js +325 -66
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +317 -3
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/Avatar/index.js +461 -45
  6. package/dist/elements/Avatar/index.js.map +1 -1
  7. package/dist/elements/Avatar/index.mjs +456 -3
  8. package/dist/elements/Avatar/index.mjs.map +1 -1
  9. package/dist/elements/Badge/index.js +238 -36
  10. package/dist/elements/Badge/index.js.map +1 -1
  11. package/dist/elements/Badge/index.mjs +234 -4
  12. package/dist/elements/Badge/index.mjs.map +1 -1
  13. package/dist/elements/Breadcrumbs/index.js +808 -39
  14. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  15. package/dist/elements/Breadcrumbs/index.mjs +810 -7
  16. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  17. package/dist/elements/Button/index.js +282 -19
  18. package/dist/elements/Button/index.js.map +1 -1
  19. package/dist/elements/Button/index.mjs +283 -4
  20. package/dist/elements/Button/index.mjs.map +1 -1
  21. package/dist/elements/ButtonGroup/index.js +229 -56
  22. package/dist/elements/ButtonGroup/index.js.map +1 -1
  23. package/dist/elements/ButtonGroup/index.mjs +222 -3
  24. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  25. package/dist/elements/Card/Card.d.ts.map +1 -1
  26. package/dist/elements/Card/index.js +563 -67
  27. package/dist/elements/Card/index.js.map +1 -1
  28. package/dist/elements/Card/index.mjs +560 -6
  29. package/dist/elements/Card/index.mjs.map +1 -1
  30. package/dist/elements/Carousel/index.js +782 -14
  31. package/dist/elements/Carousel/index.js.map +1 -1
  32. package/dist/elements/Carousel/index.mjs +786 -8
  33. package/dist/elements/Carousel/index.mjs.map +1 -1
  34. package/dist/elements/Chart/index.js +1833 -36
  35. package/dist/elements/Chart/index.js.map +1 -1
  36. package/dist/elements/Chart/index.mjs +1832 -4
  37. package/dist/elements/Chart/index.mjs.map +1 -1
  38. package/dist/elements/Checkbox/index.js +310 -39
  39. package/dist/elements/Checkbox/index.js.map +1 -1
  40. package/dist/elements/Checkbox/index.mjs +306 -4
  41. package/dist/elements/Checkbox/index.mjs.map +1 -1
  42. package/dist/elements/CheckboxGroup/index.js +445 -59
  43. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  44. package/dist/elements/CheckboxGroup/index.mjs +439 -4
  45. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  46. package/dist/elements/DatePicker/index.js +871 -89
  47. package/dist/elements/DatePicker/index.js.map +1 -1
  48. package/dist/elements/DatePicker/index.mjs +853 -4
  49. package/dist/elements/DatePicker/index.mjs.map +1 -1
  50. package/dist/elements/Dropdown/index.js +189 -35
  51. package/dist/elements/Dropdown/index.js.map +1 -1
  52. package/dist/elements/Dropdown/index.mjs +184 -2
  53. package/dist/elements/Dropdown/index.mjs.map +1 -1
  54. package/dist/elements/FileField/index.js +1532 -129
  55. package/dist/elements/FileField/index.js.map +1 -1
  56. package/dist/elements/FileField/index.mjs +1507 -7
  57. package/dist/elements/FileField/index.mjs.map +1 -1
  58. package/dist/elements/FormLayout/index.js +166 -11
  59. package/dist/elements/FormLayout/index.js.map +1 -1
  60. package/dist/elements/FormLayout/index.mjs +167 -2
  61. package/dist/elements/FormLayout/index.mjs.map +1 -1
  62. package/dist/elements/Modal/index.js +228 -46
  63. package/dist/elements/Modal/index.js.map +1 -1
  64. package/dist/elements/Modal/index.mjs +220 -1
  65. package/dist/elements/Modal/index.mjs.map +1 -1
  66. package/dist/elements/NumberField/index.js +659 -48
  67. package/dist/elements/NumberField/index.js.map +1 -1
  68. package/dist/elements/NumberField/index.mjs +654 -6
  69. package/dist/elements/NumberField/index.mjs.map +1 -1
  70. package/dist/elements/OTPInput/index.js +729 -6
  71. package/dist/elements/OTPInput/index.js.map +1 -1
  72. package/dist/elements/OTPInput/index.mjs +732 -2
  73. package/dist/elements/OTPInput/index.mjs.map +1 -1
  74. package/dist/elements/Panel/index.js +326 -27
  75. package/dist/elements/Panel/index.js.map +1 -1
  76. package/dist/elements/Panel/index.mjs +323 -2
  77. package/dist/elements/Panel/index.mjs.map +1 -1
  78. package/dist/elements/Progress/index.js +181 -22
  79. package/dist/elements/Progress/index.js.map +1 -1
  80. package/dist/elements/Progress/index.mjs +181 -3
  81. package/dist/elements/Progress/index.mjs.map +1 -1
  82. package/dist/elements/RadioGroup/index.js +358 -34
  83. package/dist/elements/RadioGroup/index.js.map +1 -1
  84. package/dist/elements/RadioGroup/index.mjs +359 -4
  85. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  86. package/dist/elements/Resizable/components/ResizableHandle.d.ts +0 -8
  87. package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -1
  88. package/dist/elements/Resizable/components/ResizablePanel.d.ts +0 -8
  89. package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -1
  90. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +0 -8
  91. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -1
  92. package/dist/elements/Resizable/components/ResizablePopover.d.ts +0 -8
  93. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  94. package/dist/elements/Resizable/index.js +1568 -51
  95. package/dist/elements/Resizable/index.js.map +1 -1
  96. package/dist/elements/Resizable/index.mjs +1566 -6
  97. package/dist/elements/Resizable/index.mjs.map +1 -1
  98. package/dist/elements/Select/index.js +580 -22
  99. package/dist/elements/Select/index.js.map +1 -1
  100. package/dist/elements/Select/index.mjs +582 -2
  101. package/dist/elements/Select/index.mjs.map +1 -1
  102. package/dist/elements/Skeleton/index.js +77 -15
  103. package/dist/elements/Skeleton/index.js.map +1 -1
  104. package/dist/elements/Skeleton/index.mjs +78 -3
  105. package/dist/elements/Skeleton/index.mjs.map +1 -1
  106. package/dist/elements/Switch/index.js +153 -21
  107. package/dist/elements/Switch/index.js.map +1 -1
  108. package/dist/elements/Switch/index.mjs +149 -5
  109. package/dist/elements/Switch/index.mjs.map +1 -1
  110. package/dist/elements/Table/index.js +589 -68
  111. package/dist/elements/Table/index.js.map +1 -1
  112. package/dist/elements/Table/index.mjs +578 -5
  113. package/dist/elements/Table/index.mjs.map +1 -1
  114. package/dist/elements/Tabs/index.js +328 -63
  115. package/dist/elements/Tabs/index.js.map +1 -1
  116. package/dist/elements/Tabs/index.mjs +320 -3
  117. package/dist/elements/Tabs/index.mjs.map +1 -1
  118. package/dist/elements/TextField/index.js +695 -51
  119. package/dist/elements/TextField/index.js.map +1 -1
  120. package/dist/elements/TextField/index.mjs +684 -7
  121. package/dist/elements/TextField/index.mjs.map +1 -1
  122. package/dist/elements/TimeField/index.js +244 -33
  123. package/dist/elements/TimeField/index.js.map +1 -1
  124. package/dist/elements/TimeField/index.mjs +238 -2
  125. package/dist/elements/TimeField/index.mjs.map +1 -1
  126. package/dist/elements/Toast/index.js +727 -48
  127. package/dist/elements/Toast/index.js.map +1 -1
  128. package/dist/elements/Toast/index.mjs +724 -5
  129. package/dist/elements/Toast/index.mjs.map +1 -1
  130. package/dist/elements/Tooltip/index.js +315 -49
  131. package/dist/elements/Tooltip/index.js.map +1 -1
  132. package/dist/elements/Tooltip/index.mjs +310 -4
  133. package/dist/elements/Tooltip/index.mjs.map +1 -1
  134. package/dist/elements/index.js +12417 -799
  135. package/dist/elements/index.js.map +1 -1
  136. package/dist/elements/index.mjs +12233 -40
  137. package/dist/elements/index.mjs.map +1 -1
  138. package/dist/index.js +12452 -825
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.mjs +12262 -42
  141. package/dist/index.mjs.map +1 -1
  142. package/dist/schemas/index.js +47 -21
  143. package/dist/schemas/index.js.map +1 -1
  144. package/dist/schemas/index.mjs +47 -2
  145. package/dist/schemas/index.mjs.map +1 -1
  146. package/dist/styles/index.js +161 -147
  147. package/dist/styles/index.js.map +1 -1
  148. package/dist/styles/index.mjs +128 -2
  149. package/dist/styles/index.mjs.map +1 -1
  150. package/dist/utils/index.js +7 -7
  151. package/dist/utils/index.js.map +1 -1
  152. package/dist/utils/index.mjs +9 -2
  153. package/dist/utils/index.mjs.map +1 -1
  154. package/package.json +1 -1
  155. package/dist/Carousel-NTZX5TOW.js +0 -16
  156. package/dist/Carousel-NTZX5TOW.js.map +0 -1
  157. package/dist/Carousel-YH3DOQJU.mjs +0 -7
  158. package/dist/Carousel-YH3DOQJU.mjs.map +0 -1
  159. package/dist/chunk-2HIUTHMU.mjs +0 -234
  160. package/dist/chunk-2HIUTHMU.mjs.map +0 -1
  161. package/dist/chunk-34GTFTDO.js +0 -431
  162. package/dist/chunk-34GTFTDO.js.map +0 -1
  163. package/dist/chunk-3H7ASYR7.js +0 -250
  164. package/dist/chunk-3H7ASYR7.js.map +0 -1
  165. package/dist/chunk-3IEN7JOP.js +0 -316
  166. package/dist/chunk-3IEN7JOP.js.map +0 -1
  167. package/dist/chunk-3JHN4GAL.js +0 -326
  168. package/dist/chunk-3JHN4GAL.js.map +0 -1
  169. package/dist/chunk-3MJPASQU.js +0 -232
  170. package/dist/chunk-3MJPASQU.js.map +0 -1
  171. package/dist/chunk-3XD2JUL3.js +0 -572
  172. package/dist/chunk-3XD2JUL3.js.map +0 -1
  173. package/dist/chunk-3YOY2VJ6.js +0 -189
  174. package/dist/chunk-3YOY2VJ6.js.map +0 -1
  175. package/dist/chunk-4DU5JSXB.js +0 -408
  176. package/dist/chunk-4DU5JSXB.js.map +0 -1
  177. package/dist/chunk-4E4E2GSS.js +0 -352
  178. package/dist/chunk-4E4E2GSS.js.map +0 -1
  179. package/dist/chunk-4NHAP4AN.mjs +0 -3
  180. package/dist/chunk-4NHAP4AN.mjs.map +0 -1
  181. package/dist/chunk-4S33J5NY.mjs +0 -415
  182. package/dist/chunk-4S33J5NY.mjs.map +0 -1
  183. package/dist/chunk-5SMGRT3G.mjs +0 -354
  184. package/dist/chunk-5SMGRT3G.mjs.map +0 -1
  185. package/dist/chunk-5SVLJN2C.mjs +0 -22
  186. package/dist/chunk-5SVLJN2C.mjs.map +0 -1
  187. package/dist/chunk-66WTU4EB.mjs +0 -299
  188. package/dist/chunk-66WTU4EB.mjs.map +0 -1
  189. package/dist/chunk-6S25NMOT.mjs +0 -335
  190. package/dist/chunk-6S25NMOT.mjs.map +0 -1
  191. package/dist/chunk-6SP7UB3D.js +0 -4
  192. package/dist/chunk-6SP7UB3D.js.map +0 -1
  193. package/dist/chunk-6TYWWQHM.mjs +0 -565
  194. package/dist/chunk-6TYWWQHM.mjs.map +0 -1
  195. package/dist/chunk-A3YUJA6W.mjs +0 -384
  196. package/dist/chunk-A3YUJA6W.mjs.map +0 -1
  197. package/dist/chunk-A6KEDVUR.js +0 -61
  198. package/dist/chunk-A6KEDVUR.js.map +0 -1
  199. package/dist/chunk-A77RUEWL.js +0 -730
  200. package/dist/chunk-A77RUEWL.js.map +0 -1
  201. package/dist/chunk-AA4IKMPE.mjs +0 -3
  202. package/dist/chunk-AA4IKMPE.mjs.map +0 -1
  203. package/dist/chunk-AKIA6GW6.mjs +0 -163
  204. package/dist/chunk-AKIA6GW6.mjs.map +0 -1
  205. package/dist/chunk-AL6P275L.mjs +0 -435
  206. package/dist/chunk-AL6P275L.mjs.map +0 -1
  207. package/dist/chunk-AZ3RJYTB.js +0 -37
  208. package/dist/chunk-AZ3RJYTB.js.map +0 -1
  209. package/dist/chunk-B5Q4UPL6.js +0 -32
  210. package/dist/chunk-B5Q4UPL6.js.map +0 -1
  211. package/dist/chunk-B6DHPMDP.mjs +0 -335
  212. package/dist/chunk-B6DHPMDP.mjs.map +0 -1
  213. package/dist/chunk-BDXKKMBZ.mjs +0 -184
  214. package/dist/chunk-BDXKKMBZ.mjs.map +0 -1
  215. package/dist/chunk-BL6E2DLZ.mjs +0 -52
  216. package/dist/chunk-BL6E2DLZ.mjs.map +0 -1
  217. package/dist/chunk-CGFDS4XS.mjs +0 -121
  218. package/dist/chunk-CGFDS4XS.mjs.map +0 -1
  219. package/dist/chunk-CJIW5TKI.js +0 -139
  220. package/dist/chunk-CJIW5TKI.js.map +0 -1
  221. package/dist/chunk-CKNISJOQ.js +0 -314
  222. package/dist/chunk-CKNISJOQ.js.map +0 -1
  223. package/dist/chunk-D6CBOECS.mjs +0 -1757
  224. package/dist/chunk-D6CBOECS.mjs.map +0 -1
  225. package/dist/chunk-DDWEVC2S.js +0 -166
  226. package/dist/chunk-DDWEVC2S.js.map +0 -1
  227. package/dist/chunk-DZ556D2F.mjs +0 -176
  228. package/dist/chunk-DZ556D2F.mjs.map +0 -1
  229. package/dist/chunk-E2KQFV3O.mjs +0 -10
  230. package/dist/chunk-E2KQFV3O.mjs.map +0 -1
  231. package/dist/chunk-EMMLADSC.js +0 -126
  232. package/dist/chunk-EMMLADSC.js.map +0 -1
  233. package/dist/chunk-EP4WOI5D.mjs +0 -926
  234. package/dist/chunk-EP4WOI5D.mjs.map +0 -1
  235. package/dist/chunk-FJRXLJC2.mjs +0 -160
  236. package/dist/chunk-FJRXLJC2.mjs.map +0 -1
  237. package/dist/chunk-FKQI434R.js +0 -345
  238. package/dist/chunk-FKQI434R.js.map +0 -1
  239. package/dist/chunk-FPKEAJRZ.mjs +0 -100
  240. package/dist/chunk-FPKEAJRZ.mjs.map +0 -1
  241. package/dist/chunk-FWQYB22U.js +0 -183
  242. package/dist/chunk-FWQYB22U.js.map +0 -1
  243. package/dist/chunk-GD5GHTMA.js +0 -189
  244. package/dist/chunk-GD5GHTMA.js.map +0 -1
  245. package/dist/chunk-GE5XTSDZ.js +0 -447
  246. package/dist/chunk-GE5XTSDZ.js.map +0 -1
  247. package/dist/chunk-GVE47ZAX.mjs +0 -32
  248. package/dist/chunk-GVE47ZAX.mjs.map +0 -1
  249. package/dist/chunk-HK46BT5U.mjs +0 -18
  250. package/dist/chunk-HK46BT5U.mjs.map +0 -1
  251. package/dist/chunk-HQVRMR6N.js +0 -365
  252. package/dist/chunk-HQVRMR6N.js.map +0 -1
  253. package/dist/chunk-HSGBJPJO.mjs +0 -398
  254. package/dist/chunk-HSGBJPJO.mjs.map +0 -1
  255. package/dist/chunk-I3AUTOMZ.mjs +0 -125
  256. package/dist/chunk-I3AUTOMZ.mjs.map +0 -1
  257. package/dist/chunk-IEI5LD5C.mjs +0 -1161
  258. package/dist/chunk-IEI5LD5C.mjs.map +0 -1
  259. package/dist/chunk-IIPTC2X7.mjs +0 -118
  260. package/dist/chunk-IIPTC2X7.mjs.map +0 -1
  261. package/dist/chunk-J7TLHF2Q.js +0 -4
  262. package/dist/chunk-J7TLHF2Q.js.map +0 -1
  263. package/dist/chunk-JJOWXFXQ.mjs +0 -765
  264. package/dist/chunk-JJOWXFXQ.mjs.map +0 -1
  265. package/dist/chunk-JPTSS2OA.mjs +0 -3
  266. package/dist/chunk-JPTSS2OA.mjs.map +0 -1
  267. package/dist/chunk-KFXXRLTP.js +0 -396
  268. package/dist/chunk-KFXXRLTP.js.map +0 -1
  269. package/dist/chunk-KPRRBSG6.mjs +0 -272
  270. package/dist/chunk-KPRRBSG6.mjs.map +0 -1
  271. package/dist/chunk-NFSBGRDB.mjs +0 -57
  272. package/dist/chunk-NFSBGRDB.mjs.map +0 -1
  273. package/dist/chunk-NGJVCFTM.js +0 -219
  274. package/dist/chunk-NGJVCFTM.js.map +0 -1
  275. package/dist/chunk-NSQ6MZJ6.mjs +0 -728
  276. package/dist/chunk-NSQ6MZJ6.mjs.map +0 -1
  277. package/dist/chunk-NYQYHT76.mjs +0 -296
  278. package/dist/chunk-NYQYHT76.mjs.map +0 -1
  279. package/dist/chunk-OLJJGI5B.js +0 -1193
  280. package/dist/chunk-OLJJGI5B.js.map +0 -1
  281. package/dist/chunk-Q3572X2J.js +0 -292
  282. package/dist/chunk-Q3572X2J.js.map +0 -1
  283. package/dist/chunk-QH7N7D4I.mjs +0 -210
  284. package/dist/chunk-QH7N7D4I.mjs.map +0 -1
  285. package/dist/chunk-R7XUIV25.js +0 -466
  286. package/dist/chunk-R7XUIV25.js.map +0 -1
  287. package/dist/chunk-RFFO4KPM.js +0 -135
  288. package/dist/chunk-RFFO4KPM.js.map +0 -1
  289. package/dist/chunk-RFX7QKA7.mjs +0 -180
  290. package/dist/chunk-RFX7QKA7.mjs.map +0 -1
  291. package/dist/chunk-SN5LFAP3.js +0 -940
  292. package/dist/chunk-SN5LFAP3.js.map +0 -1
  293. package/dist/chunk-T4COXKQ3.js +0 -24
  294. package/dist/chunk-T4COXKQ3.js.map +0 -1
  295. package/dist/chunk-TS54QM27.js +0 -125
  296. package/dist/chunk-TS54QM27.js.map +0 -1
  297. package/dist/chunk-UE2S4PCX.mjs +0 -220
  298. package/dist/chunk-UE2S4PCX.mjs.map +0 -1
  299. package/dist/chunk-UTW3QX2A.mjs +0 -282
  300. package/dist/chunk-UTW3QX2A.mjs.map +0 -1
  301. package/dist/chunk-V74LGMAE.js +0 -1767
  302. package/dist/chunk-V74LGMAE.js.map +0 -1
  303. package/dist/chunk-VIREG536.js +0 -12
  304. package/dist/chunk-VIREG536.js.map +0 -1
  305. package/dist/chunk-VY7M7346.js +0 -4
  306. package/dist/chunk-VY7M7346.js.map +0 -1
  307. package/dist/chunk-W3TJOO7H.mjs +0 -319
  308. package/dist/chunk-W3TJOO7H.mjs.map +0 -1
  309. package/dist/chunk-WIUOB36M.js +0 -54
  310. package/dist/chunk-WIUOB36M.js.map +0 -1
  311. package/dist/chunk-WJGLM4CY.js +0 -291
  312. package/dist/chunk-WJGLM4CY.js.map +0 -1
  313. package/dist/chunk-WNURH5OO.mjs +0 -453
  314. package/dist/chunk-WNURH5OO.mjs.map +0 -1
  315. package/dist/chunk-X25TNRSD.mjs +0 -364
  316. package/dist/chunk-X25TNRSD.mjs.map +0 -1
  317. package/dist/chunk-Y3GT7ETK.js +0 -108
  318. package/dist/chunk-Y3GT7ETK.js.map +0 -1
  319. package/dist/chunk-Z4FRNOF6.mjs +0 -115
  320. package/dist/chunk-Z4FRNOF6.mjs.map +0 -1
  321. package/dist/chunk-ZMYLD3BN.js +0 -166
  322. package/dist/chunk-ZMYLD3BN.js.map +0 -1
  323. package/dist/chunk-ZP2KV6EX.js +0 -815
  324. package/dist/chunk-ZP2KV6EX.js.map +0 -1
  325. package/dist/chunk-ZVKXFELU.js +0 -366
  326. package/dist/chunk-ZVKXFELU.js.map +0 -1
@@ -1,940 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkKFXXRLTP_js = require('./chunk-KFXXRLTP.js');
4
- var chunk3YOY2VJ6_js = require('./chunk-3YOY2VJ6.js');
5
- var chunkVIREG536_js = require('./chunk-VIREG536.js');
6
- var react = require('react');
7
- var jsxRuntime = require('react/jsx-runtime');
8
- var zod = require('zod');
9
- var classVarianceAuthority = require('class-variance-authority');
10
- var lucideReact = require('lucide-react');
11
- var reactAriaComponents = require('react-aria-components');
12
-
13
- var ResizableContext = react.createContext(
14
- null
15
- );
16
- ResizableContext.displayName = "ResizableContext";
17
- function useResizableContext() {
18
- const context = react.useContext(ResizableContext);
19
- if (!context) {
20
- throw new Error(
21
- "useResizableContext must be used within a ResizablePanelGroup. Make sure ResizablePanel and ResizableHandle are children of ResizablePanelGroup."
22
- );
23
- }
24
- return context;
25
- }
26
- function useResizableProvider({
27
- direction,
28
- groupLabel,
29
- sizes: controlledSizes,
30
- onSizesChange
31
- }) {
32
- const [internalSizes, setInternalSizes] = react.useState([]);
33
- const [panels, setPanels] = react.useState([]);
34
- const containerRef = react.useRef(null);
35
- const liveRegionRef = react.useRef(null);
36
- const announceTimeoutRef = react.useRef(null);
37
- const sizesInitializedRef = react.useRef(false);
38
- const isControlled = controlledSizes !== void 0;
39
- const sizes = isControlled ? controlledSizes : internalSizes;
40
- const setSizes = react.useCallback(
41
- (newSizes) => {
42
- if (isControlled) {
43
- onSizesChange?.(newSizes);
44
- } else {
45
- setInternalSizes(newSizes);
46
- }
47
- },
48
- [isControlled, onSizesChange]
49
- );
50
- const registerPanel = react.useCallback((index, info) => {
51
- setPanels((prev) => {
52
- const newPanels = [...prev];
53
- newPanels[index] = info;
54
- return newPanels;
55
- });
56
- }, []);
57
- const unregisterPanel = react.useCallback((index) => {
58
- setPanels((prev) => {
59
- const newPanels = [...prev];
60
- delete newPanels[index];
61
- return newPanels.filter(Boolean);
62
- });
63
- }, []);
64
- react.useEffect(() => {
65
- if (isControlled || sizesInitializedRef.current) return;
66
- const registeredPanels = panels.filter(Boolean);
67
- const panelCount = registeredPanels.length;
68
- if (panelCount < 2) return;
69
- const needsInit = sizes.length < panelCount || sizes.some((s) => s === void 0);
70
- if (needsInit) {
71
- const newSizes = [];
72
- const equalSize = 100 / panelCount;
73
- for (let i = 0; i < panelCount; i++) {
74
- newSizes[i] = equalSize;
75
- }
76
- sizesInitializedRef.current = true;
77
- setInternalSizes(newSizes);
78
- }
79
- }, [panels, sizes, isControlled]);
80
- react.useEffect(() => {
81
- return () => {
82
- if (announceTimeoutRef.current) {
83
- clearTimeout(announceTimeoutRef.current);
84
- }
85
- if (liveRegionRef.current) {
86
- document.body.removeChild(liveRegionRef.current);
87
- liveRegionRef.current = null;
88
- }
89
- };
90
- }, []);
91
- const announce = react.useCallback((message) => {
92
- if (!liveRegionRef.current) {
93
- const liveRegion = document.createElement("div");
94
- liveRegion.setAttribute("aria-live", "polite");
95
- liveRegion.setAttribute("aria-atomic", "true");
96
- liveRegion.className = "sr-only";
97
- liveRegion.style.cssText = "position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;";
98
- document.body.appendChild(liveRegion);
99
- liveRegionRef.current = liveRegion;
100
- }
101
- liveRegionRef.current.textContent = message;
102
- if (announceTimeoutRef.current) {
103
- clearTimeout(announceTimeoutRef.current);
104
- }
105
- announceTimeoutRef.current = setTimeout(() => {
106
- if (liveRegionRef.current) {
107
- liveRegionRef.current.textContent = "";
108
- }
109
- }, 1e3);
110
- }, []);
111
- return {
112
- direction,
113
- groupLabel,
114
- sizes,
115
- setSizes,
116
- panels,
117
- registerPanel,
118
- unregisterPanel,
119
- announce,
120
- containerRef
121
- };
122
- }
123
- var ResizablePanelGroup = react.forwardRef(function ResizablePanelGroup2({ direction, groupLabel, sizes, onSizesChange, className, children }, ref) {
124
- const contextValue = useResizableProvider({
125
- direction,
126
- groupLabel,
127
- sizes,
128
- onSizesChange
129
- });
130
- react.useImperativeHandle(
131
- ref,
132
- () => contextValue.containerRef.current,
133
- [contextValue.containerRef]
134
- );
135
- return /* @__PURE__ */ jsxRuntime.jsx(ResizableContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
136
- "div",
137
- {
138
- ref: contextValue.containerRef,
139
- role: "group",
140
- "aria-label": `${groupLabel}, ${direction}`,
141
- "data-direction": direction,
142
- className: chunkVIREG536_js.cn(
143
- "flex h-full w-full",
144
- direction === "horizontal" ? "flex-row" : "flex-col",
145
- className
146
- ),
147
- children
148
- }
149
- ) });
150
- });
151
- ResizablePanelGroup.displayName = "ResizablePanelGroup";
152
- var DEFAULT_MIN_SIZE = 10;
153
- var DEFAULT_MAX_SIZE = 90;
154
- var LONG_PRESS_THRESHOLD = 300;
155
- var ResizePresetSchema = zod.z.object({
156
- label: zod.z.string().min(1),
157
- sizes: zod.z.array(zod.z.number().min(0).max(100))
158
- });
159
- var ResizablePanelGroupPropsSchema = zod.z.object({
160
- /** Layout direction */
161
- direction: zod.z.enum(["horizontal", "vertical"]),
162
- /** REQUIRED: Label for screen reader identification of this group */
163
- groupLabel: zod.z.string().min(1),
164
- /** Controlled mode: current sizes as percentages */
165
- sizes: zod.z.array(zod.z.number().min(0).max(100)).optional(),
166
- /** Callback when sizes change */
167
- onSizesChange: zod.z.function().optional(),
168
- /** Additional CSS classes */
169
- className: zod.z.string().optional(),
170
- /** Panel children */
171
- children: zod.z.custom()
172
- });
173
- var ResizablePanelPropsSchema = zod.z.object({
174
- /** REQUIRED: Name for screen reader identification */
175
- name: zod.z.string().min(1),
176
- /** Default size as percentage (auto-distributes equally if omitted) */
177
- defaultSize: zod.z.number().min(0).max(100).optional(),
178
- /** Minimum size as percentage */
179
- minSize: zod.z.number().min(0).max(100).optional().default(DEFAULT_MIN_SIZE),
180
- /** Maximum size as percentage */
181
- maxSize: zod.z.number().min(0).max(100).optional().default(DEFAULT_MAX_SIZE),
182
- /** Whether panel can collapse to 0% */
183
- collapsible: zod.z.boolean().optional().default(false),
184
- /** Callback when panel collapses */
185
- onCollapse: zod.z.function().optional(),
186
- /** Callback when panel expands from collapsed */
187
- onExpand: zod.z.function().optional(),
188
- /** Callback when panel resizes */
189
- onResize: zod.z.function().optional(),
190
- /** Additional CSS classes */
191
- className: zod.z.string().optional(),
192
- /** Panel content */
193
- children: zod.z.custom()
194
- });
195
- var ResizableHandlePropsSchema = zod.z.object({
196
- /** Whether to show the visual grip indicator */
197
- withHandle: zod.z.boolean().optional().default(true),
198
- /** Size presets for quick adjustment */
199
- presets: zod.z.array(ResizePresetSchema).optional(),
200
- /** Whether the handle is disabled */
201
- disabled: zod.z.boolean().optional().default(false),
202
- /** Additional CSS classes */
203
- className: zod.z.string().optional()
204
- });
205
- var resizableHandleVariants = classVarianceAuthority.cva(
206
- [
207
- // Base styles - 44px touch target
208
- "relative flex items-center justify-center",
209
- "shrink-0",
210
- "bg-transparent",
211
- "transition-colors duration-150",
212
- // Focus styles
213
- "focus-visible:outline-none focus-visible:ring-2",
214
- "focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2",
215
- // Touch target padding for accessibility
216
- "touch-none select-none"
217
- ],
218
- {
219
- variants: {
220
- direction: {
221
- horizontal: [
222
- "w-3 min-w-[12px]",
223
- "cursor-col-resize",
224
- "hover:bg-[var(--accent)]/50",
225
- // Ensure 44px touch target via padding
226
- "before:absolute before:inset-y-0 before:-inset-x-4",
227
- "before:min-w-[44px]"
228
- ],
229
- vertical: [
230
- "h-3 min-h-[12px]",
231
- "cursor-row-resize",
232
- "hover:bg-[var(--accent)]/50",
233
- // Ensure 44px touch target via padding
234
- "before:absolute before:inset-x-0 before:-inset-y-4",
235
- "before:min-h-[44px]"
236
- ]
237
- },
238
- disabled: {
239
- true: "cursor-not-allowed opacity-50 pointer-events-none",
240
- false: ""
241
- },
242
- isDragging: {
243
- true: "bg-[var(--accent)]",
244
- false: ""
245
- }
246
- },
247
- defaultVariants: {
248
- direction: "horizontal",
249
- disabled: false,
250
- isDragging: false
251
- }
252
- }
253
- );
254
- var resizableGripVariants = classVarianceAuthority.cva(
255
- [
256
- "flex items-center justify-center",
257
- "rounded-full",
258
- "bg-[var(--border)]",
259
- "text-[var(--menu-muted)]"
260
- ],
261
- {
262
- variants: {
263
- direction: {
264
- horizontal: "h-8 w-1",
265
- vertical: "h-1 w-8"
266
- }
267
- },
268
- defaultVariants: {
269
- direction: "horizontal"
270
- }
271
- }
272
- );
273
- var ResizablePanel = react.forwardRef(
274
- function ResizablePanel2({
275
- name,
276
- defaultSize: _defaultSize,
277
- minSize = DEFAULT_MIN_SIZE,
278
- maxSize = DEFAULT_MAX_SIZE,
279
- collapsible = false,
280
- onCollapse,
281
- onExpand,
282
- onResize,
283
- className,
284
- children
285
- }, ref) {
286
- const { sizes, registerPanel, unregisterPanel, containerRef } = useResizableContext();
287
- const internalRef = react.useRef(null);
288
- const [panelIndex, setPanelIndex] = react.useState(-1);
289
- const prevSizeRef = react.useRef(null);
290
- const isRegisteredRef = react.useRef(false);
291
- const registeredIndexRef = react.useRef(-1);
292
- react.useEffect(() => {
293
- const panel = internalRef.current;
294
- const container = containerRef.current;
295
- if (!panel || !container) return;
296
- const allPanels = container.querySelectorAll("[data-resizable-panel]");
297
- let foundIndex = -1;
298
- for (let i = 0; i < allPanels.length; i++) {
299
- if (allPanels[i] === panel) {
300
- foundIndex = i;
301
- break;
302
- }
303
- }
304
- if (foundIndex === -1) return;
305
- if (panelIndex !== foundIndex) {
306
- setPanelIndex(foundIndex);
307
- }
308
- if (!isRegisteredRef.current) {
309
- isRegisteredRef.current = true;
310
- registeredIndexRef.current = foundIndex;
311
- registerPanel(foundIndex, {
312
- name,
313
- minSize,
314
- maxSize,
315
- collapsible
316
- });
317
- }
318
- return () => {
319
- if (isRegisteredRef.current) {
320
- unregisterPanel(registeredIndexRef.current);
321
- isRegisteredRef.current = false;
322
- }
323
- };
324
- }, [containerRef, registerPanel, unregisterPanel, name, minSize, maxSize, collapsible, panelIndex]);
325
- const currentSize = panelIndex >= 0 ? sizes[panelIndex] ?? 50 : 50;
326
- react.useEffect(() => {
327
- if (prevSizeRef.current === null) {
328
- prevSizeRef.current = currentSize;
329
- return;
330
- }
331
- const wasCollapsed = prevSizeRef.current === 0;
332
- const isCollapsed = currentSize === 0;
333
- if (!wasCollapsed && isCollapsed && onCollapse) {
334
- onCollapse();
335
- } else if (wasCollapsed && !isCollapsed && onExpand) {
336
- onExpand();
337
- }
338
- if (onResize && prevSizeRef.current !== currentSize) {
339
- onResize(currentSize);
340
- }
341
- prevSizeRef.current = currentSize;
342
- }, [currentSize, onCollapse, onExpand, onResize]);
343
- return /* @__PURE__ */ jsxRuntime.jsx(
344
- "div",
345
- {
346
- ref: (node) => {
347
- internalRef.current = node;
348
- if (typeof ref === "function") {
349
- ref(node);
350
- } else if (ref) {
351
- ref.current = node;
352
- }
353
- },
354
- role: "region",
355
- "aria-label": name,
356
- "data-resizable-panel": "",
357
- "data-panel-name": name,
358
- "data-panel-index": panelIndex,
359
- "data-collapsed": currentSize === 0,
360
- style: {
361
- flexBasis: `${currentSize}%`,
362
- flexGrow: 0,
363
- flexShrink: 0,
364
- overflow: "hidden"
365
- },
366
- className: chunkVIREG536_js.cn("relative", className),
367
- children
368
- }
369
- );
370
- }
371
- );
372
- ResizablePanel.displayName = "ResizablePanel";
373
- function clampSize(size, min, max) {
374
- return Math.max(min, Math.min(max, size));
375
- }
376
- function calculateNewSizes(sizes, panels, leftIndex, rightIndex, delta) {
377
- const newSizes = [...sizes];
378
- const leftPanel = panels[leftIndex];
379
- const rightPanel = panels[rightIndex];
380
- if (!leftPanel || !rightPanel) return sizes;
381
- const leftSize = sizes[leftIndex] ?? 50;
382
- const rightSize = sizes[rightIndex] ?? 50;
383
- let newLeftSize = leftSize + delta;
384
- let newRightSize = rightSize - delta;
385
- const leftMin = leftPanel.collapsible ? 0 : leftPanel.minSize;
386
- const leftMax = leftPanel.maxSize;
387
- const rightMin = rightPanel.collapsible ? 0 : rightPanel.minSize;
388
- const rightMax = rightPanel.maxSize;
389
- newLeftSize = clampSize(newLeftSize, leftMin, leftMax);
390
- newRightSize = leftSize + rightSize - newLeftSize;
391
- newRightSize = clampSize(newRightSize, rightMin, rightMax);
392
- newLeftSize = leftSize + rightSize - newRightSize;
393
- newSizes[leftIndex] = newLeftSize;
394
- newSizes[rightIndex] = newRightSize;
395
- return newSizes;
396
- }
397
- function useResizable({
398
- direction,
399
- sizes,
400
- setSizes,
401
- panels,
402
- containerRef,
403
- leftPanelIndex,
404
- rightPanelIndex,
405
- disabled = false,
406
- announce,
407
- groupLabel,
408
- onOpenPopover
409
- }) {
410
- const [isDragging, setIsDragging] = react.useState(false);
411
- const dragStartRef = react.useRef(null);
412
- const longPressTimerRef = react.useRef(null);
413
- const pointerDownTimeRef = react.useRef(0);
414
- const wasLongPressRef = react.useRef(false);
415
- const panelsRef = react.useRef(panels);
416
- const sizesRef = react.useRef(sizes);
417
- const setSizesRef = react.useRef(setSizes);
418
- const handlePointerMoveRef = react.useRef(() => {
419
- });
420
- const handlePointerUpRef = react.useRef(() => {
421
- });
422
- react.useEffect(() => {
423
- panelsRef.current = panels;
424
- sizesRef.current = sizes;
425
- setSizesRef.current = setSizes;
426
- }, [panels, sizes, setSizes]);
427
- const getContainerSize = react.useCallback(() => {
428
- const container = containerRef.current;
429
- if (!container) return 0;
430
- return direction === "horizontal" ? container.offsetWidth : container.offsetHeight;
431
- }, [containerRef, direction]);
432
- const pixelsToPercent = react.useCallback(
433
- (pixels) => {
434
- const containerSize = getContainerSize();
435
- if (containerSize === 0) return 0;
436
- return pixels / containerSize * 100;
437
- },
438
- [getContainerSize]
439
- );
440
- const onPointerMove = react.useCallback((e) => {
441
- handlePointerMoveRef.current(e);
442
- }, []);
443
- const onPointerUp = react.useCallback(() => {
444
- handlePointerUpRef.current();
445
- }, []);
446
- const handlePointerMove = react.useCallback(
447
- (event) => {
448
- if (!dragStartRef.current || disabled) return;
449
- const position = direction === "horizontal" ? event.clientX : event.clientY;
450
- const delta = position - dragStartRef.current.position;
451
- const percentDelta = pixelsToPercent(delta);
452
- const newSizes = calculateNewSizes(
453
- dragStartRef.current.sizes,
454
- panelsRef.current,
455
- leftPanelIndex,
456
- rightPanelIndex,
457
- percentDelta
458
- );
459
- setSizesRef.current(newSizes);
460
- },
461
- [
462
- direction,
463
- disabled,
464
- leftPanelIndex,
465
- pixelsToPercent,
466
- rightPanelIndex
467
- ]
468
- );
469
- const handlePointerUp = react.useCallback(() => {
470
- if (longPressTimerRef.current) {
471
- clearTimeout(longPressTimerRef.current);
472
- longPressTimerRef.current = null;
473
- }
474
- const duration = Date.now() - pointerDownTimeRef.current;
475
- const wasTap = duration < LONG_PRESS_THRESHOLD && !wasLongPressRef.current;
476
- if (wasTap && onOpenPopover && !disabled) {
477
- onOpenPopover();
478
- }
479
- if (isDragging) {
480
- setIsDragging(false);
481
- const leftPanel = panelsRef.current[leftPanelIndex];
482
- const newSize = Math.round(sizesRef.current[leftPanelIndex] ?? 50);
483
- if (announce && leftPanel && groupLabel) {
484
- announce(
485
- `${leftPanel.name} in ${groupLabel} resized to ${newSize} percent`
486
- );
487
- }
488
- }
489
- dragStartRef.current = null;
490
- wasLongPressRef.current = false;
491
- document.removeEventListener("pointermove", onPointerMove);
492
- document.removeEventListener("pointerup", onPointerUp);
493
- document.removeEventListener("pointercancel", onPointerUp);
494
- document.body.style.cursor = "";
495
- document.body.style.userSelect = "";
496
- }, [
497
- announce,
498
- disabled,
499
- groupLabel,
500
- isDragging,
501
- leftPanelIndex,
502
- onOpenPopover,
503
- onPointerMove,
504
- onPointerUp
505
- ]);
506
- react.useEffect(() => {
507
- handlePointerMoveRef.current = handlePointerMove;
508
- handlePointerUpRef.current = handlePointerUp;
509
- });
510
- const handlePointerDown = react.useCallback(
511
- (event) => {
512
- if (disabled) return;
513
- event.preventDefault();
514
- const position = direction === "horizontal" ? event.clientX : event.clientY;
515
- pointerDownTimeRef.current = Date.now();
516
- wasLongPressRef.current = false;
517
- dragStartRef.current = {
518
- position,
519
- sizes: [...sizes],
520
- containerSize: getContainerSize()
521
- };
522
- longPressTimerRef.current = setTimeout(() => {
523
- wasLongPressRef.current = true;
524
- setIsDragging(true);
525
- document.body.style.cursor = direction === "horizontal" ? "col-resize" : "row-resize";
526
- document.body.style.userSelect = "none";
527
- }, LONG_PRESS_THRESHOLD);
528
- document.addEventListener("pointermove", onPointerMove);
529
- document.addEventListener("pointerup", onPointerUp);
530
- document.addEventListener("pointercancel", onPointerUp);
531
- if (event.pointerType === "mouse") {
532
- if (longPressTimerRef.current) {
533
- clearTimeout(longPressTimerRef.current);
534
- longPressTimerRef.current = null;
535
- }
536
- wasLongPressRef.current = true;
537
- setIsDragging(true);
538
- document.body.style.cursor = direction === "horizontal" ? "col-resize" : "row-resize";
539
- document.body.style.userSelect = "none";
540
- }
541
- },
542
- [
543
- direction,
544
- disabled,
545
- getContainerSize,
546
- onPointerMove,
547
- onPointerUp,
548
- sizes
549
- ]
550
- );
551
- const handleKeyDown = react.useCallback(
552
- (event) => {
553
- if (disabled) return;
554
- const step = event.shiftKey ? 10 : 1;
555
- let delta = 0;
556
- switch (event.key) {
557
- case "ArrowLeft":
558
- case "ArrowUp":
559
- delta = -step;
560
- break;
561
- case "ArrowRight":
562
- case "ArrowDown":
563
- delta = step;
564
- break;
565
- case "Home": {
566
- const leftPanel = panels[leftPanelIndex];
567
- if (leftPanel) {
568
- const minSize = leftPanel.collapsible ? 0 : leftPanel.minSize;
569
- delta = minSize - (sizes[leftPanelIndex] ?? 50);
570
- }
571
- break;
572
- }
573
- case "End": {
574
- const leftPanel = panels[leftPanelIndex];
575
- if (leftPanel) {
576
- delta = leftPanel.maxSize - (sizes[leftPanelIndex] ?? 50);
577
- }
578
- break;
579
- }
580
- case "Enter":
581
- case " ":
582
- event.preventDefault();
583
- onOpenPopover?.();
584
- return;
585
- default:
586
- return;
587
- }
588
- if (delta !== 0) {
589
- event.preventDefault();
590
- const newSizes = calculateNewSizes(
591
- sizes,
592
- panels,
593
- leftPanelIndex,
594
- rightPanelIndex,
595
- delta
596
- );
597
- setSizes(newSizes);
598
- const leftPanel = panels[leftPanelIndex];
599
- const newSize = Math.round(newSizes[leftPanelIndex] ?? 50);
600
- if (announce && leftPanel && groupLabel) {
601
- announce(
602
- `${leftPanel.name} in ${groupLabel} resized to ${newSize} percent`
603
- );
604
- }
605
- }
606
- },
607
- [
608
- announce,
609
- disabled,
610
- groupLabel,
611
- leftPanelIndex,
612
- onOpenPopover,
613
- panels,
614
- rightPanelIndex,
615
- setSizes,
616
- sizes
617
- ]
618
- );
619
- react.useEffect(() => {
620
- const moveHandler = onPointerMove;
621
- const upHandler = onPointerUp;
622
- return () => {
623
- if (longPressTimerRef.current) {
624
- clearTimeout(longPressTimerRef.current);
625
- }
626
- document.removeEventListener("pointermove", moveHandler);
627
- document.removeEventListener("pointerup", upHandler);
628
- document.removeEventListener("pointercancel", upHandler);
629
- };
630
- }, [onPointerMove, onPointerUp]);
631
- return {
632
- isDragging,
633
- handlePointerDown,
634
- handleKeyDown
635
- };
636
- }
637
- var ResizablePopover = react.forwardRef(
638
- function ResizablePopover2({
639
- isOpen,
640
- onOpenChange,
641
- groupLabel,
642
- leftPanel,
643
- rightPanel,
644
- leftSize,
645
- rightSize,
646
- onSizesChange,
647
- presets,
648
- triggerRef,
649
- direction
650
- }, _ref) {
651
- const [originalSizes, setOriginalSizes] = react.useState({ left: leftSize, right: rightSize });
652
- const wasOpenRef = react.useRef(false);
653
- react.useEffect(() => {
654
- if (isOpen && !wasOpenRef.current) {
655
- setOriginalSizes({ left: leftSize, right: rightSize });
656
- }
657
- wasOpenRef.current = isOpen;
658
- }, [isOpen, leftSize, rightSize]);
659
- const handleLeftChange = react.useCallback(
660
- (value) => {
661
- if (value === null) return;
662
- const newLeft = Math.max(
663
- leftPanel.collapsible ? 0 : leftPanel.minSize,
664
- Math.min(leftPanel.maxSize, value)
665
- );
666
- const newRight = 100 - newLeft;
667
- const rightMin = rightPanel.collapsible ? 0 : rightPanel.minSize;
668
- const rightMax = rightPanel.maxSize;
669
- if (newRight < rightMin || newRight > rightMax) {
670
- return;
671
- }
672
- onSizesChange(newLeft, newRight);
673
- },
674
- [leftPanel, rightPanel, onSizesChange]
675
- );
676
- const handleRightChange = react.useCallback(
677
- (value) => {
678
- if (value === null) return;
679
- const newRight = Math.max(
680
- rightPanel.collapsible ? 0 : rightPanel.minSize,
681
- Math.min(rightPanel.maxSize, value)
682
- );
683
- const newLeft = 100 - newRight;
684
- const leftMin = leftPanel.collapsible ? 0 : leftPanel.minSize;
685
- const leftMax = leftPanel.maxSize;
686
- if (newLeft < leftMin || newLeft > leftMax) {
687
- return;
688
- }
689
- onSizesChange(newLeft, newRight);
690
- },
691
- [leftPanel, rightPanel, onSizesChange]
692
- );
693
- const handlePreset = react.useCallback(
694
- (preset) => {
695
- const leftSize2 = preset.sizes[0];
696
- const rightSize2 = preset.sizes[1];
697
- if (leftSize2 !== void 0 && rightSize2 !== void 0) {
698
- onSizesChange(leftSize2, rightSize2);
699
- }
700
- },
701
- [onSizesChange]
702
- );
703
- const handleCancel = react.useCallback(() => {
704
- onSizesChange(originalSizes.left, originalSizes.right);
705
- onOpenChange(false);
706
- }, [onSizesChange, onOpenChange, originalSizes]);
707
- const handleClose = react.useCallback(() => {
708
- onOpenChange(false);
709
- }, [onOpenChange]);
710
- if (!isOpen) return null;
711
- const placement = direction === "horizontal" ? "bottom" : "right";
712
- return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.DialogTrigger, { isOpen, onOpenChange, children: [
713
- /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Button, { className: "sr-only", children: "Open resize controls" }),
714
- /* @__PURE__ */ jsxRuntime.jsx(
715
- reactAriaComponents.Popover,
716
- {
717
- triggerRef,
718
- placement,
719
- offset: 8,
720
- className: chunkVIREG536_js.cn(
721
- "w-72",
722
- "rounded-lg border border-[var(--border)]",
723
- "bg-[var(--popover)] text-[var(--popover-foreground)]",
724
- "shadow-lg",
725
- "outline-none",
726
- "animate-in fade-in-0 zoom-in-95",
727
- "data-[exiting]:animate-out data-[exiting]:fade-out-0 data-[exiting]:zoom-out-95"
728
- ),
729
- children: /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Dialog, { className: "outline-none", children: [
730
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-[var(--border)] px-4 py-3", children: [
731
- /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-sm font-medium", children: [
732
- "Resize: ",
733
- groupLabel
734
- ] }),
735
- /* @__PURE__ */ jsxRuntime.jsx(
736
- reactAriaComponents.Button,
737
- {
738
- onPress: handleClose,
739
- className: chunkVIREG536_js.cn(
740
- "inline-flex items-center justify-center rounded-md",
741
- "min-h-[44px] min-w-[44px]",
742
- "text-[var(--menu-muted)]",
743
- "hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",
744
- "focus-visible:outline-none focus-visible:ring-2",
745
- "focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2"
746
- ),
747
- "aria-label": "Close",
748
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "h-4 w-4" })
749
- }
750
- )
751
- ] }),
752
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 px-4 py-4", children: [
753
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
754
- chunkKFXXRLTP_js.NumberField,
755
- {
756
- label: `${leftPanel.name} (%)`,
757
- value: Math.round(leftSize),
758
- onChange: handleLeftChange,
759
- minValue: leftPanel.collapsible ? 0 : leftPanel.minSize,
760
- maxValue: leftPanel.maxSize,
761
- step: 1,
762
- stepperLayout: "sides"
763
- }
764
- ) }),
765
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
766
- chunkKFXXRLTP_js.NumberField,
767
- {
768
- label: `${rightPanel.name} (%)`,
769
- value: Math.round(rightSize),
770
- onChange: handleRightChange,
771
- minValue: rightPanel.collapsible ? 0 : rightPanel.minSize,
772
- maxValue: rightPanel.maxSize,
773
- step: 1,
774
- stepperLayout: "sides"
775
- }
776
- ) }),
777
- presets && presets.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-[var(--border)] pt-4", children: [
778
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs font-medium text-[var(--menu-muted)]", children: "Presets" }),
779
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: presets.map((preset, index) => /* @__PURE__ */ jsxRuntime.jsx(
780
- chunk3YOY2VJ6_js.Button,
781
- {
782
- variant: "outline",
783
- size: "sm",
784
- onPress: () => handlePreset(preset),
785
- children: preset.label
786
- },
787
- index
788
- )) })
789
- ] })
790
- ] }),
791
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end border-t border-[var(--border)] px-4 py-3", children: /* @__PURE__ */ jsxRuntime.jsx(chunk3YOY2VJ6_js.Button, { variant: "ghost", size: "sm", onPress: handleCancel, children: "Cancel" }) })
792
- ] })
793
- }
794
- )
795
- ] });
796
- }
797
- );
798
- ResizablePopover.displayName = "ResizablePopover";
799
- var ResizableHandle = react.forwardRef(
800
- function ResizableHandle2({ withHandle = true, presets, disabled = false, className }, ref) {
801
- const {
802
- direction,
803
- groupLabel,
804
- sizes,
805
- setSizes,
806
- panels,
807
- announce,
808
- containerRef
809
- } = useResizableContext();
810
- const internalRef = react.useRef(null);
811
- const handleRef = ref || internalRef;
812
- const [handleIndex, setHandleIndex] = react.useState(0);
813
- react.useEffect(() => {
814
- const handle = handleRef.current;
815
- const container = containerRef.current;
816
- if (!handle || !container) return;
817
- const handles = container.querySelectorAll('[role="slider"]');
818
- let index = 0;
819
- handles.forEach((h, i) => {
820
- if (h === handle) {
821
- index = i;
822
- }
823
- });
824
- setHandleIndex(index);
825
- }, [containerRef, handleRef]);
826
- const leftPanelIndex = handleIndex;
827
- const rightPanelIndex = handleIndex + 1;
828
- const leftPanel = panels[leftPanelIndex];
829
- const rightPanel = panels[rightPanelIndex];
830
- const leftSize = sizes[leftPanelIndex] ?? 50;
831
- const rightSize = sizes[rightPanelIndex] ?? 50;
832
- const [isPopoverOpen, setIsPopoverOpen] = react.useState(false);
833
- const handlePopoverSizesChange = react.useCallback(
834
- (newLeftSize, newRightSize) => {
835
- const newSizes = [...sizes];
836
- newSizes[leftPanelIndex] = newLeftSize;
837
- newSizes[rightPanelIndex] = newRightSize;
838
- setSizes(newSizes);
839
- },
840
- [sizes, setSizes, leftPanelIndex, rightPanelIndex]
841
- );
842
- const { isDragging, handlePointerDown, handleKeyDown } = useResizable({
843
- direction,
844
- sizes,
845
- setSizes,
846
- panels,
847
- containerRef,
848
- leftPanelIndex,
849
- rightPanelIndex,
850
- disabled,
851
- announce,
852
- groupLabel,
853
- onOpenPopover: () => setIsPopoverOpen(true)
854
- });
855
- const ariaLabel = leftPanel && rightPanel ? `Resize handle between ${leftPanel.name} and ${rightPanel.name} in ${groupLabel}` : `Resize handle in ${groupLabel}`;
856
- const GripIcon = direction === "horizontal" ? lucideReact.GripVertical : lucideReact.GripHorizontal;
857
- const leftPanelInfo = leftPanel ?? {
858
- name: "Panel 1",
859
- minSize: DEFAULT_MIN_SIZE,
860
- maxSize: DEFAULT_MAX_SIZE,
861
- collapsible: false
862
- };
863
- const rightPanelInfo = rightPanel ?? {
864
- name: "Panel 2",
865
- minSize: DEFAULT_MIN_SIZE,
866
- maxSize: DEFAULT_MAX_SIZE,
867
- collapsible: false
868
- };
869
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
870
- /* @__PURE__ */ jsxRuntime.jsx(
871
- "div",
872
- {
873
- ref: handleRef,
874
- role: "slider",
875
- tabIndex: disabled ? -1 : 0,
876
- "aria-label": ariaLabel,
877
- "aria-valuenow": Math.round(leftSize),
878
- "aria-valuemin": leftPanel?.collapsible ? 0 : leftPanel?.minSize ?? 0,
879
- "aria-valuemax": leftPanel?.maxSize ?? 100,
880
- "aria-orientation": direction,
881
- "aria-disabled": disabled,
882
- "data-direction": direction,
883
- "data-dragging": isDragging,
884
- "data-disabled": disabled,
885
- onPointerDown: handlePointerDown,
886
- onKeyDown: handleKeyDown,
887
- className: chunkVIREG536_js.cn(
888
- resizableHandleVariants({
889
- direction,
890
- disabled,
891
- isDragging
892
- }),
893
- className
894
- ),
895
- children: withHandle && /* @__PURE__ */ jsxRuntime.jsx(
896
- "div",
897
- {
898
- className: chunkVIREG536_js.cn(resizableGripVariants({ direction })),
899
- "aria-hidden": "true",
900
- children: /* @__PURE__ */ jsxRuntime.jsx(GripIcon, { className: "h-4 w-4" })
901
- }
902
- )
903
- }
904
- ),
905
- /* @__PURE__ */ jsxRuntime.jsx(
906
- ResizablePopover,
907
- {
908
- isOpen: isPopoverOpen,
909
- onOpenChange: setIsPopoverOpen,
910
- groupLabel,
911
- leftPanel: leftPanelInfo,
912
- rightPanel: rightPanelInfo,
913
- leftSize,
914
- rightSize,
915
- onSizesChange: handlePopoverSizesChange,
916
- presets,
917
- triggerRef: handleRef,
918
- direction
919
- }
920
- )
921
- ] });
922
- }
923
- );
924
- ResizableHandle.displayName = "ResizableHandle";
925
-
926
- exports.DEFAULT_MAX_SIZE = DEFAULT_MAX_SIZE;
927
- exports.DEFAULT_MIN_SIZE = DEFAULT_MIN_SIZE;
928
- exports.LONG_PRESS_THRESHOLD = LONG_PRESS_THRESHOLD;
929
- exports.ResizableHandle = ResizableHandle;
930
- exports.ResizableHandlePropsSchema = ResizableHandlePropsSchema;
931
- exports.ResizablePanel = ResizablePanel;
932
- exports.ResizablePanelGroup = ResizablePanelGroup;
933
- exports.ResizablePanelGroupPropsSchema = ResizablePanelGroupPropsSchema;
934
- exports.ResizablePanelPropsSchema = ResizablePanelPropsSchema;
935
- exports.ResizePresetSchema = ResizePresetSchema;
936
- exports.resizableGripVariants = resizableGripVariants;
937
- exports.resizableHandleVariants = resizableHandleVariants;
938
- exports.useResizableContext = useResizableContext;
939
- //# sourceMappingURL=chunk-SN5LFAP3.js.map
940
- //# sourceMappingURL=chunk-SN5LFAP3.js.map