@flamingo-stack/openframe-frontend-core 0.0.296 → 0.0.297-snapshot.20260621022511

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 (278) hide show
  1. package/README.md +9 -0
  2. package/dist/{chunk-7RIYT7ZH.js → chunk-2QG57XOJ.js} +1067 -205
  3. package/dist/chunk-2QG57XOJ.js.map +1 -0
  4. package/dist/{chunk-D3LEFMOA.cjs → chunk-54KNMC2R.cjs} +3 -3
  5. package/dist/{chunk-D3LEFMOA.cjs.map → chunk-54KNMC2R.cjs.map} +1 -1
  6. package/dist/{chunk-WHMATDVP.js → chunk-7YNG257E.js} +9 -15
  7. package/dist/{chunk-WHMATDVP.js.map → chunk-7YNG257E.js.map} +1 -1
  8. package/dist/chunk-FBWXMMRB.cjs +2 -0
  9. package/dist/chunk-FBWXMMRB.cjs.map +1 -0
  10. package/dist/{chunk-IE6OU3WQ.cjs → chunk-FQOTC3UU.cjs} +318 -16
  11. package/dist/chunk-FQOTC3UU.cjs.map +1 -0
  12. package/dist/{chunk-MBFWU2EM.js → chunk-G6JDD3LU.js} +6 -10
  13. package/dist/{chunk-MBFWU2EM.js.map → chunk-G6JDD3LU.js.map} +1 -1
  14. package/dist/{chunk-6GCI7JOE.js → chunk-GAVVRWQM.js} +8 -7
  15. package/dist/{chunk-6GCI7JOE.js.map → chunk-GAVVRWQM.js.map} +1 -1
  16. package/dist/chunk-GZ4C3XW6.js +2 -0
  17. package/dist/chunk-GZ4C3XW6.js.map +1 -0
  18. package/dist/chunk-IDMNFM4N.js +144 -0
  19. package/dist/chunk-IDMNFM4N.js.map +1 -0
  20. package/dist/{chunk-LCNMR277.js → chunk-IZ7JSBFP.js} +1 -1
  21. package/dist/chunk-IZ7JSBFP.js.map +1 -0
  22. package/dist/{chunk-EL6QLAWX.js → chunk-JALO4TAZ.js} +357 -55
  23. package/dist/chunk-JALO4TAZ.js.map +1 -0
  24. package/dist/{chunk-ZP4AVIZP.js → chunk-JGA5KBUO.js} +4 -6
  25. package/dist/{chunk-ZP4AVIZP.js.map → chunk-JGA5KBUO.js.map} +1 -1
  26. package/dist/{chunk-GLLDTKZK.cjs → chunk-JUBR24HC.cjs} +7 -9
  27. package/dist/chunk-JUBR24HC.cjs.map +1 -0
  28. package/dist/{chunk-AQOWFSMB.cjs → chunk-L6PSSIUQ.cjs} +1 -1
  29. package/dist/chunk-L6PSSIUQ.cjs.map +1 -0
  30. package/dist/chunk-MFAKIJJU.cjs +144 -0
  31. package/dist/chunk-MFAKIJJU.cjs.map +1 -0
  32. package/dist/{chunk-YIGPRLQY.cjs → chunk-MVTHRLDI.cjs} +21 -20
  33. package/dist/chunk-MVTHRLDI.cjs.map +1 -0
  34. package/dist/{chunk-XREEV72C.cjs → chunk-N3V434AN.cjs} +19 -25
  35. package/dist/chunk-N3V434AN.cjs.map +1 -0
  36. package/dist/{chunk-5P3B2LZW.js → chunk-N67N3OWW.js} +8 -14
  37. package/dist/{chunk-5P3B2LZW.js.map → chunk-N67N3OWW.js.map} +1 -1
  38. package/dist/{chunk-EYEW6PTA.cjs → chunk-NVSAPIIA.cjs} +358 -118
  39. package/dist/chunk-NVSAPIIA.cjs.map +1 -0
  40. package/dist/{chunk-X6BV7MB7.cjs → chunk-OW3Q7DSU.cjs} +37 -31
  41. package/dist/chunk-OW3Q7DSU.cjs.map +1 -0
  42. package/dist/{chunk-3ZXUQQL4.js → chunk-PI4WSYQV.js} +2 -2
  43. package/dist/{chunk-X647HY3F.cjs → chunk-Q22JYCQK.cjs} +33 -37
  44. package/dist/chunk-Q22JYCQK.cjs.map +1 -0
  45. package/dist/{chunk-QHIXS3W2.cjs → chunk-S6DXA35S.cjs} +11591 -2106
  46. package/dist/chunk-S6DXA35S.cjs.map +1 -0
  47. package/dist/{chunk-OY7OF7E7.js → chunk-TNF3DTTC.js} +30 -24
  48. package/dist/chunk-TNF3DTTC.js.map +1 -0
  49. package/dist/{chunk-K2PFPBMF.js → chunk-UFVKCF2C.js} +15050 -5565
  50. package/dist/chunk-UFVKCF2C.js.map +1 -0
  51. package/dist/{chunk-5E2HOSSH.cjs → chunk-WMSTJAZT.cjs} +913 -51
  52. package/dist/chunk-WMSTJAZT.cjs.map +1 -0
  53. package/dist/{chunk-E4XABBSU.js → chunk-YFZ7R4Z4.js} +338 -98
  54. package/dist/chunk-YFZ7R4Z4.js.map +1 -0
  55. package/dist/{chunk-W6M2FLLT.cjs → chunk-ZZOZKXQM.cjs} +40 -46
  56. package/dist/chunk-ZZOZKXQM.cjs.map +1 -0
  57. package/dist/components/case-studies/index.cjs +126 -0
  58. package/dist/components/case-studies/index.cjs.map +1 -0
  59. package/dist/components/case-studies/index.d.ts +2 -0
  60. package/dist/components/case-studies/index.d.ts.map +1 -0
  61. package/dist/components/case-studies/index.js +126 -0
  62. package/dist/components/case-studies/index.js.map +1 -0
  63. package/dist/components/case-studies/share-experience-section.d.ts +48 -0
  64. package/dist/components/case-studies/share-experience-section.d.ts.map +1 -0
  65. package/dist/components/chat/guide-welcome.d.ts.map +1 -1
  66. package/dist/components/chat/index.cjs +8 -18
  67. package/dist/components/chat/index.cjs.map +1 -1
  68. package/dist/components/chat/index.js +75 -85
  69. package/dist/components/contact/index.cjs +8 -15
  70. package/dist/components/contact/index.cjs.map +1 -1
  71. package/dist/components/contact/index.js +7 -14
  72. package/dist/components/docs/doc-viewer.d.ts +39 -2
  73. package/dist/components/docs/doc-viewer.d.ts.map +1 -1
  74. package/dist/components/docs/docs-hub-page.d.ts +46 -0
  75. package/dist/components/docs/docs-hub-page.d.ts.map +1 -0
  76. package/dist/components/docs/index.cjs +17 -9
  77. package/dist/components/docs/index.cjs.map +1 -1
  78. package/dist/components/docs/index.d.ts +4 -0
  79. package/dist/components/docs/index.d.ts.map +1 -1
  80. package/dist/components/docs/index.js +16 -8
  81. package/dist/components/docs/skeletons.d.ts +32 -0
  82. package/dist/components/docs/skeletons.d.ts.map +1 -0
  83. package/dist/components/docs/use-docs-resolve-link.d.ts +20 -0
  84. package/dist/components/docs/use-docs-resolve-link.d.ts.map +1 -0
  85. package/dist/components/docs/use-document-tree.d.ts.map +1 -1
  86. package/dist/components/embeds/embed-container.d.ts +37 -0
  87. package/dist/components/embeds/embed-container.d.ts.map +1 -0
  88. package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
  89. package/dist/components/embeds/file-download-card.d.ts +18 -0
  90. package/dist/components/embeds/file-download-card.d.ts.map +1 -0
  91. package/dist/components/embeds/index.cjs +38 -15
  92. package/dist/components/embeds/index.cjs.map +1 -1
  93. package/dist/components/embeds/index.d.ts +8 -0
  94. package/dist/components/embeds/index.d.ts.map +1 -1
  95. package/dist/components/embeds/index.js +40 -17
  96. package/dist/components/embeds/linkedin-embed-client.d.ts +8 -0
  97. package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -0
  98. package/dist/components/embeds/markdown-image.d.ts +5 -0
  99. package/dist/components/embeds/markdown-image.d.ts.map +1 -0
  100. package/dist/components/embeds/reddit-embed-client.d.ts +7 -0
  101. package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -0
  102. package/dist/components/embeds/rich-markdown-runtime.d.ts +46 -0
  103. package/dist/components/embeds/rich-markdown-runtime.d.ts.map +1 -0
  104. package/dist/components/embeds/twitter-embed-client.d.ts +8 -0
  105. package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -0
  106. package/dist/components/faq/index.cjs +9 -16
  107. package/dist/components/faq/index.cjs.map +1 -1
  108. package/dist/components/faq/index.js +8 -15
  109. package/dist/components/features/index.cjs +8 -16
  110. package/dist/components/features/index.cjs.map +1 -1
  111. package/dist/components/features/index.js +24 -32
  112. package/dist/components/index.cjs +257 -452
  113. package/dist/components/index.cjs.map +1 -1
  114. package/dist/components/index.js +781 -976
  115. package/dist/components/index.js.map +1 -1
  116. package/dist/components/layout/page-header.d.ts +78 -0
  117. package/dist/components/layout/page-header.d.ts.map +1 -0
  118. package/dist/components/layout/page-layout.d.ts +10 -1
  119. package/dist/components/layout/page-layout.d.ts.map +1 -1
  120. package/dist/components/layout/page-with-header.d.ts +67 -0
  121. package/dist/components/layout/page-with-header.d.ts.map +1 -0
  122. package/dist/components/layout/title-block.d.ts +17 -1
  123. package/dist/components/layout/title-block.d.ts.map +1 -1
  124. package/dist/components/navigation/index.cjs +7 -15
  125. package/dist/components/navigation/index.cjs.map +1 -1
  126. package/dist/components/navigation/index.js +9 -17
  127. package/dist/components/onboarding-guides/index.cjs +35 -36
  128. package/dist/components/onboarding-guides/index.cjs.map +1 -1
  129. package/dist/components/onboarding-guides/index.js +13 -14
  130. package/dist/components/onboarding-guides/index.js.map +1 -1
  131. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +1 -1
  132. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  133. package/dist/components/related-content/index.cjs +9 -16
  134. package/dist/components/related-content/index.cjs.map +1 -1
  135. package/dist/components/related-content/index.js +8 -15
  136. package/dist/components/shared/dev-section/dev-section-page.d.ts +9 -0
  137. package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -1
  138. package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
  139. package/dist/components/shared/dev-section/index.d.ts +1 -1
  140. package/dist/components/shared/dev-section/index.d.ts.map +1 -1
  141. package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
  142. package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
  143. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  144. package/dist/components/tickets/index.cjs +100 -112
  145. package/dist/components/tickets/index.cjs.map +1 -1
  146. package/dist/components/tickets/index.js +20 -32
  147. package/dist/components/tickets/index.js.map +1 -1
  148. package/dist/components/ui/file-manager/index.cjs +50 -52
  149. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  150. package/dist/components/ui/file-manager/index.js +4 -6
  151. package/dist/components/ui/file-manager/index.js.map +1 -1
  152. package/dist/components/ui/index.cjs +13 -19
  153. package/dist/components/ui/index.cjs.map +1 -1
  154. package/dist/components/ui/index.d.ts +2 -0
  155. package/dist/components/ui/index.d.ts.map +1 -1
  156. package/dist/components/ui/index.js +133 -139
  157. package/dist/components/ui/release-changelog-section.d.ts +6 -2
  158. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  159. package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
  160. package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
  161. package/dist/components/ui/simple-markdown-renderer.d.ts +2 -8
  162. package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
  163. package/dist/contexts/chat-runtime-context.d.ts +14 -0
  164. package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
  165. package/dist/contexts/index.cjs +3 -3
  166. package/dist/contexts/index.js +5 -5
  167. package/dist/embed-shims/index.cjs +3 -3
  168. package/dist/embed-shims/index.cjs.map +1 -1
  169. package/dist/embed-shims/index.js +4 -4
  170. package/dist/hooks/index.cjs +4 -9
  171. package/dist/hooks/index.cjs.map +1 -1
  172. package/dist/hooks/index.js +6 -11
  173. package/dist/index.cjs +14 -20
  174. package/dist/index.cjs.map +1 -1
  175. package/dist/index.js +362 -368
  176. package/dist/types/doc-source.d.ts +31 -1
  177. package/dist/types/doc-source.d.ts.map +1 -1
  178. package/dist/utils/index.cjs +4 -0
  179. package/dist/utils/index.cjs.map +1 -1
  180. package/dist/utils/index.d.ts +1 -0
  181. package/dist/utils/index.d.ts.map +1 -1
  182. package/dist/utils/index.js +4 -1
  183. package/dist/utils/index.js.map +1 -1
  184. package/dist/utils/page-header-constants.d.ts +15 -0
  185. package/dist/utils/page-header-constants.d.ts.map +1 -0
  186. package/dist/utils/social-embed-cache.d.ts +29 -0
  187. package/dist/utils/social-embed-cache.d.ts.map +1 -0
  188. package/package.json +7 -1
  189. package/src/components/case-studies/index.ts +4 -0
  190. package/src/components/case-studies/share-experience-section.tsx +185 -0
  191. package/src/components/chat/embeddable-chat.tsx +1 -1
  192. package/src/components/chat/guide-welcome.tsx +12 -3
  193. package/src/components/docs/doc-viewer.tsx +111 -19
  194. package/src/components/docs/docs-hub-page.tsx +149 -0
  195. package/src/components/docs/index.ts +17 -0
  196. package/src/components/docs/skeletons.tsx +138 -0
  197. package/src/components/docs/use-docs-resolve-link.ts +52 -0
  198. package/src/components/docs/use-document-tree.ts +21 -0
  199. package/src/components/embeds/embed-container.tsx +80 -0
  200. package/src/components/embeds/embed-iframe.tsx +7 -9
  201. package/src/components/embeds/file-download-card.tsx +54 -0
  202. package/src/components/embeds/index.ts +30 -0
  203. package/src/components/embeds/linkedin-embed-client.tsx +100 -0
  204. package/src/components/embeds/markdown-image.tsx +88 -0
  205. package/src/components/embeds/og-link-preview.tsx +13 -13
  206. package/src/components/embeds/reddit-embed-client.tsx +550 -0
  207. package/src/components/embeds/rich-markdown-runtime.tsx +79 -0
  208. package/src/components/embeds/twitter-embed-client.tsx +308 -0
  209. package/src/components/layout/page-header.tsx +182 -0
  210. package/src/components/layout/page-layout.tsx +14 -1
  211. package/src/components/layout/page-with-header.tsx +110 -0
  212. package/src/components/layout/title-block.tsx +40 -62
  213. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -3
  214. package/src/components/shared/dev-section/dev-section-page.tsx +9 -1
  215. package/src/components/shared/dev-section/dev-section-view.tsx +14 -9
  216. package/src/components/shared/dev-section/index.ts +1 -1
  217. package/src/components/shared/doc-search/use-doc-search.ts +7 -3
  218. package/src/components/shared/legal-document/legal-document-page.tsx +2 -2
  219. package/src/components/shared/product-release/release-detail-page.tsx +6 -4
  220. package/src/components/ui/index.ts +2 -0
  221. package/src/components/ui/release-changelog-section.tsx +7 -2
  222. package/src/components/ui/rich-markdown-renderer.tsx +1203 -0
  223. package/src/components/ui/simple-markdown-renderer.tsx +7 -11
  224. package/src/contexts/chat-runtime-context.tsx +14 -0
  225. package/src/types/doc-source.ts +33 -1
  226. package/src/utils/index.ts +1 -0
  227. package/src/utils/page-header-constants.ts +15 -0
  228. package/src/utils/social-embed-cache.ts +391 -0
  229. package/dist/chunk-26PKDALD.js +0 -2379
  230. package/dist/chunk-26PKDALD.js.map +0 -1
  231. package/dist/chunk-3MCHAFHB.js +0 -89
  232. package/dist/chunk-3MCHAFHB.js.map +0 -1
  233. package/dist/chunk-5E2HOSSH.cjs.map +0 -1
  234. package/dist/chunk-66AANIOC.cjs +0 -619
  235. package/dist/chunk-66AANIOC.cjs.map +0 -1
  236. package/dist/chunk-6JINAOI7.cjs +0 -311
  237. package/dist/chunk-6JINAOI7.cjs.map +0 -1
  238. package/dist/chunk-7RIYT7ZH.js.map +0 -1
  239. package/dist/chunk-AQOWFSMB.cjs.map +0 -1
  240. package/dist/chunk-BOCFIKYS.cjs +0 -3009
  241. package/dist/chunk-BOCFIKYS.cjs.map +0 -1
  242. package/dist/chunk-D652TJBQ.js +0 -3009
  243. package/dist/chunk-D652TJBQ.js.map +0 -1
  244. package/dist/chunk-E4XABBSU.js.map +0 -1
  245. package/dist/chunk-EL6QLAWX.js.map +0 -1
  246. package/dist/chunk-EYEW6PTA.cjs.map +0 -1
  247. package/dist/chunk-FQJK446R.js +0 -1606
  248. package/dist/chunk-FQJK446R.js.map +0 -1
  249. package/dist/chunk-GLLDTKZK.cjs.map +0 -1
  250. package/dist/chunk-IE6OU3WQ.cjs.map +0 -1
  251. package/dist/chunk-J54Z3OCR.cjs +0 -1606
  252. package/dist/chunk-J54Z3OCR.cjs.map +0 -1
  253. package/dist/chunk-K2PFPBMF.js.map +0 -1
  254. package/dist/chunk-KXCRGTRN.cjs +0 -2379
  255. package/dist/chunk-KXCRGTRN.cjs.map +0 -1
  256. package/dist/chunk-LCNMR277.js.map +0 -1
  257. package/dist/chunk-LFGGF7OT.cjs +0 -449
  258. package/dist/chunk-LFGGF7OT.cjs.map +0 -1
  259. package/dist/chunk-M2OCXTNT.js +0 -311
  260. package/dist/chunk-M2OCXTNT.js.map +0 -1
  261. package/dist/chunk-ME4EVDFP.js +0 -619
  262. package/dist/chunk-ME4EVDFP.js.map +0 -1
  263. package/dist/chunk-OQ6X7ZOC.js +0 -449
  264. package/dist/chunk-OQ6X7ZOC.js.map +0 -1
  265. package/dist/chunk-OY7OF7E7.js.map +0 -1
  266. package/dist/chunk-POKKCWKF.js +0 -354
  267. package/dist/chunk-POKKCWKF.js.map +0 -1
  268. package/dist/chunk-QHIXS3W2.cjs.map +0 -1
  269. package/dist/chunk-TFSYSWPS.cjs +0 -89
  270. package/dist/chunk-TFSYSWPS.cjs.map +0 -1
  271. package/dist/chunk-W6M2FLLT.cjs.map +0 -1
  272. package/dist/chunk-X647HY3F.cjs.map +0 -1
  273. package/dist/chunk-X6BV7MB7.cjs.map +0 -1
  274. package/dist/chunk-XREEV72C.cjs.map +0 -1
  275. package/dist/chunk-YETA25JW.cjs +0 -354
  276. package/dist/chunk-YETA25JW.cjs.map +0 -1
  277. package/dist/chunk-YIGPRLQY.cjs.map +0 -1
  278. /package/dist/{chunk-3ZXUQQL4.js.map → chunk-PI4WSYQV.js.map} +0 -0
@@ -3,7 +3,6 @@
3
3
 
4
4
 
5
5
 
6
- var _chunk6JINAOI7cjs = require('../../../chunk-6JINAOI7.cjs');
7
6
 
8
7
 
9
8
 
@@ -11,8 +10,7 @@ var _chunk6JINAOI7cjs = require('../../../chunk-6JINAOI7.cjs');
11
10
 
12
11
 
13
12
 
14
-
15
- var _chunkIE6OU3WQcjs = require('../../../chunk-IE6OU3WQ.cjs');
13
+ var _chunkFQOTC3UUcjs = require('../../../chunk-FQOTC3UU.cjs');
16
14
  require('../../../chunk-WBR7H6E3.cjs');
17
15
 
18
16
 
@@ -58,7 +56,7 @@ function FileManagerBreadcrumb({
58
56
  }
59
57
 
60
58
  // src/components/ui/file-manager/file-manager-action-bar.tsx
61
- _chunkIE6OU3WQcjs.init_button2.call(void 0, );
59
+ _chunkFQOTC3UUcjs.init_button2.call(void 0, );
62
60
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
63
61
 
64
62
 
@@ -75,7 +73,7 @@ function FileManagerActionBar({
75
73
  }) {
76
74
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center gap-4 flex-wrap md:justify-end", className), children: [
77
75
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
78
- _chunkIE6OU3WQcjs.Button,
76
+ _chunkFQOTC3UUcjs.Button,
79
77
  {
80
78
  variant: "outline",
81
79
  size: "small-legacy",
@@ -85,7 +83,7 @@ function FileManagerActionBar({
85
83
  }
86
84
  ),
87
85
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
88
- _chunkIE6OU3WQcjs.Button,
86
+ _chunkFQOTC3UUcjs.Button,
89
87
  {
90
88
  variant: "outline",
91
89
  size: "small-legacy",
@@ -96,7 +94,7 @@ function FileManagerActionBar({
96
94
  }
97
95
  ),
98
96
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
99
- _chunkIE6OU3WQcjs.Button,
97
+ _chunkFQOTC3UUcjs.Button,
100
98
  {
101
99
  variant: "outline",
102
100
  size: "small-legacy",
@@ -107,7 +105,7 @@ function FileManagerActionBar({
107
105
  }
108
106
  ),
109
107
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
110
- _chunkIE6OU3WQcjs.Button,
108
+ _chunkFQOTC3UUcjs.Button,
111
109
  {
112
110
  variant: "outline",
113
111
  size: "small-legacy",
@@ -118,7 +116,7 @@ function FileManagerActionBar({
118
116
  }
119
117
  ),
120
118
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
121
- _chunkIE6OU3WQcjs.Button,
119
+ _chunkFQOTC3UUcjs.Button,
122
120
  {
123
121
  variant: "outline",
124
122
  size: "small-legacy",
@@ -128,7 +126,7 @@ function FileManagerActionBar({
128
126
  }
129
127
  ),
130
128
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
131
- _chunkIE6OU3WQcjs.Button,
129
+ _chunkFQOTC3UUcjs.Button,
132
130
  {
133
131
  variant: "outline",
134
132
  size: "small-legacy",
@@ -147,7 +145,7 @@ _chunkFIG2RKZFcjs.init_cn.call(void 0, );
147
145
  // src/components/ui/file-manager/file-manager-table-row.tsx
148
146
 
149
147
 
150
- _chunkIE6OU3WQcjs.init_button2.call(void 0, );
148
+ _chunkFQOTC3UUcjs.init_button2.call(void 0, );
151
149
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
152
150
 
153
151
  // src/components/ui/file-manager/file-icon.tsx
@@ -187,7 +185,7 @@ function FileIcon({ type, extension, className, size = "md" }) {
187
185
  // src/components/ui/file-manager/file-manager-context-menu.tsx
188
186
 
189
187
 
190
- _chunkIE6OU3WQcjs.init_button2.call(void 0, );
188
+ _chunkFQOTC3UUcjs.init_button2.call(void 0, );
191
189
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
192
190
 
193
191
  function FileManagerContextMenu({
@@ -233,9 +231,9 @@ function FileManagerContextMenu({
233
231
  }
234
232
  ];
235
233
  const visibleItems = menuItems.filter((item) => item.show);
236
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkIE6OU3WQcjs.DropdownMenu, { open, onOpenChange, children: [
237
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIE6OU3WQcjs.DropdownMenuTrigger, { asChild: true, children: trigger || /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
238
- _chunkIE6OU3WQcjs.Button,
234
+ return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFQOTC3UUcjs.DropdownMenu, { open, onOpenChange, children: [
235
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.DropdownMenuTrigger, { asChild: true, children: trigger || /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
236
+ _chunkFQOTC3UUcjs.Button,
239
237
  {
240
238
  variant: "transparent",
241
239
  size: "small-legacy",
@@ -244,15 +242,15 @@ function FileManagerContextMenu({
244
242
  }
245
243
  ) }),
246
244
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
247
- _chunkIE6OU3WQcjs.DropdownMenuContent,
245
+ _chunkFQOTC3UUcjs.DropdownMenuContent,
248
246
  {
249
247
  align: "end",
250
248
  className: _chunkFIG2RKZFcjs.cn.call(void 0, "w-56", className),
251
249
  onClick: (e) => e.stopPropagation(),
252
250
  children: visibleItems.map((item, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react2.default.Fragment, { children: [
253
- item.separator && index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIE6OU3WQcjs.DropdownMenuSeparator, {}),
251
+ item.separator && index > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.DropdownMenuSeparator, {}),
254
252
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
255
- _chunkIE6OU3WQcjs.DropdownMenuItem,
253
+ _chunkFQOTC3UUcjs.DropdownMenuItem,
256
254
  {
257
255
  onClick: (e) => {
258
256
  e.stopPropagation();
@@ -317,7 +315,7 @@ function FileManagerTableRow({
317
315
  },
318
316
  children: [
319
317
  showCheckbox && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", "data-no-row-click": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
320
- _chunk6JINAOI7cjs.Checkbox,
318
+ _chunkFQOTC3UUcjs.Checkbox,
321
319
  {
322
320
  checked: isSelected,
323
321
  onCheckedChange: handleCheckboxChange,
@@ -349,7 +347,7 @@ function FileManagerTableRow({
349
347
  onAction: handleContextAction,
350
348
  fileType: file.type,
351
349
  trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
352
- _chunkIE6OU3WQcjs.Button,
350
+ _chunkFQOTC3UUcjs.Button,
353
351
  {
354
352
  variant: "transparent",
355
353
  size: "small-legacy",
@@ -363,7 +361,7 @@ function FileManagerTableRow({
363
361
  }
364
362
  ),
365
363
  file.type === "folder" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
366
- _chunkIE6OU3WQcjs.Button,
364
+ _chunkFQOTC3UUcjs.Button,
367
365
  {
368
366
  variant: "transparent",
369
367
  size: "small-legacy",
@@ -382,7 +380,7 @@ function FileManagerTableRow({
382
380
  }
383
381
 
384
382
  // src/components/ui/file-manager/file-manager-empty.tsx
385
- _chunkIE6OU3WQcjs.init_button2.call(void 0, );
383
+ _chunkFQOTC3UUcjs.init_button2.call(void 0, );
386
384
  _chunkFIG2RKZFcjs.init_cn.call(void 0, );
387
385
 
388
386
 
@@ -400,7 +398,7 @@ function FileManagerEmpty({
400
398
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-lg font-medium text-ods-text-primary mb-2", children: message }),
401
399
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-ods-text-secondary text-center max-w-md mb-6", children: description }),
402
400
  action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
403
- _chunkIE6OU3WQcjs.Button,
401
+ _chunkFQOTC3UUcjs.Button,
404
402
  {
405
403
  variant: "accent",
406
404
  size: "small-legacy",
@@ -469,26 +467,26 @@ function FileManagerTable({
469
467
  const skeletonRows = 8;
470
468
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "bg-ods-bg border border-ods-border rounded-lg flex flex-col", className), children: [
471
469
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
472
- showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
470
+ showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
473
471
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
474
472
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
475
473
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
476
474
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
477
475
  ] }),
478
476
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto", children: Array.from({ length: skeletonRows }).map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card group flex items-center h-16 px-4 border-ods-border", children: [
479
- showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
477
+ showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
480
478
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
481
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-6 w-6 rounded" }),
479
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-6 w-6 rounded" }),
482
480
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col min-w-0", children: [
483
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-32" }),
484
- isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-3 w-48 mt-1" })
481
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-32" }),
482
+ isSearchResult && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-3 w-48 mt-1" })
485
483
  ] })
486
484
  ] }),
487
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-16" }) }),
488
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-24" }) }),
485
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-16" }) }),
486
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-24" }) }),
489
487
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex items-center justify-end gap-1", children: [
490
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-8 w-8 rounded" }),
491
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-8 w-8 rounded" })
488
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-8 w-8 rounded" }),
489
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-8 w-8 rounded" })
492
490
  ] })
493
491
  ] }, idx)) })
494
492
  ] });
@@ -505,7 +503,7 @@ function FileManagerTable({
505
503
  children: [
506
504
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
507
505
  showCheckboxes && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
508
- _chunk6JINAOI7cjs.Checkbox,
506
+ _chunkFQOTC3UUcjs.Checkbox,
509
507
  {
510
508
  checked: allSelected || someSelected,
511
509
  onCheckedChange: handleSelectAll,
@@ -669,7 +667,7 @@ function FileManager({
669
667
  )
670
668
  ] }),
671
669
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
672
- _chunk6JINAOI7cjs.Input,
670
+ _chunkFQOTC3UUcjs.Input,
673
671
  {
674
672
  value: searchQuery,
675
673
  onChange: (e) => _optionalChain([onSearch, 'optionalCall', _27 => _27(e.target.value)]),
@@ -709,39 +707,39 @@ function FileManagerSkeleton({
709
707
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col h-full bg-ods-bg", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col py-6 space-y-6 min-h-0", children: [
710
708
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-wrap items-start justify-between gap-4", children: [
711
709
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex items-center gap-2", children: [
712
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-12" }),
713
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
714
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-20" }),
715
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
716
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-24" })
710
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-12" }),
711
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
712
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-20" }),
713
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-4 rounded-full" }),
714
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-24" })
717
715
  ] }),
718
716
  showActions && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-shrink-0 flex items-center gap-2", children: [
719
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-9 w-24" }),
720
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-9 w-20" }),
721
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-9 w-20" }),
722
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-9 w-28" })
717
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-9 w-24" }),
718
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-9 w-20" }),
719
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-9 w-20" }),
720
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-9 w-28" })
723
721
  ] })
724
722
  ] }),
725
- showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-10 w-full rounded-lg" }),
723
+ showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-10 w-full rounded-lg" }),
726
724
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-lg flex flex-col", children: [
727
725
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
728
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
726
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
729
727
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
730
728
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
731
729
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
732
730
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
733
731
  ] }),
734
732
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto min-h-0", children: rowPlaceholders.map((_, idx) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-card flex items-center h-16 px-4 border-ods-border", children: [
735
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
733
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-5 w-5 rounded" }) }),
736
734
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3 flex-1 min-w-0", children: [
737
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-6 w-6 rounded" }),
738
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-32" }) })
735
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-6 w-6 rounded" }),
736
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex flex-col min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-32" }) })
739
737
  ] }),
740
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-16" }) }),
741
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-4 w-24" }) }),
738
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-24 shrink-0 pr-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-16" }) }),
739
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-36 shrink-0 pl-4", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-4 w-24" }) }),
742
740
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "w-48 shrink-0 pl-4 flex items-center justify-end gap-1", children: [
743
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-8 w-8 rounded" }),
744
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6JINAOI7cjs.Skeleton, { className: "h-8 w-8 rounded" })
741
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-8 w-8 rounded" }),
742
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFQOTC3UUcjs.Skeleton, { className: "h-8 w-8 rounded" })
745
743
  ] })
746
744
  ] }, idx)) })
747
745
  ] }) })
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/ui/file-manager/index.cjs","../../../../src/components/ui/file-manager/file-manager.tsx","../../../../src/components/ui/file-manager/file-manager-breadcrumb.tsx","../../../../src/components/ui/file-manager/file-manager-action-bar.tsx","../../../../src/components/ui/file-manager/file-manager-table.tsx","../../../../src/components/ui/file-manager/file-manager-table-row.tsx","../../../../src/components/ui/file-manager/file-icon.tsx","../../../../src/components/ui/file-manager/file-manager-context-menu.tsx","../../../../src/components/ui/file-manager/file-manager-empty.tsx","../../../../src/components/ui/file-manager/file-manager-skeleton.tsx"],"names":["jsxs","jsx","Copy","Scissors","React","MoreHorizontal","ChevronRight","useState"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/ui/file-manager/index.cjs","sourcesContent":[null,"'use client'\n\nimport React, { useMemo } from 'react'\nimport { cn } from '../../../utils/cn'\nimport { Input } from '../input'\nimport { SearchIcon } from '../../icons-v2-generated/interface/search-icon'\nimport { FileManagerBreadcrumb } from './file-manager-breadcrumb'\nimport { FileManagerActionBar } from './file-manager-action-bar'\nimport { FileManagerTable } from './file-manager-table'\nimport type { FileManagerProps, BreadcrumbItem } from './types'\nimport { Loader2 } from 'lucide-react'\n\nexport function FileManager({ \n files,\n currentPath,\n selectedFiles,\n searchQuery,\n loading = false,\n isSearching,\n showCheckboxes = true,\n showSearch = true,\n showActions = true,\n canPaste = false,\n disableSearch = false,\n resultsCount,\n onNavigate,\n onBreadcrumbClick,\n onSearch,\n onSelectFile,\n onSelectAll,\n onFileAction,\n onFileClick,\n onFolderOpen,\n className \n}: FileManagerProps) {\n const breadcrumbItems = useMemo((): BreadcrumbItem[] => {\n const items: BreadcrumbItem[] = []\n \n items.push({ label: 'Root', path: '' })\n \n if (!currentPath || currentPath === '' || currentPath === '/') {\n return items\n }\n \n const isWindowsPath = currentPath.includes('\\\\') || /^[A-Za-z]:/.test(currentPath)\n const separator = isWindowsPath ? '\\\\' : '/'\n \n const parts = currentPath.split(separator).filter(Boolean)\n \n let startIndex = 0\n if (isWindowsPath && parts.length > 0) {\n const driveMatch = parts[0].match(/^([A-Za-z]:)/)\n if (driveMatch) {\n items.push({\n label: driveMatch[1],\n path: driveMatch[1] + separator\n })\n if (parts[0] === driveMatch[1]) {\n startIndex = 1\n } else {\n parts[0] = parts[0].substring(driveMatch[1].length)\n }\n }\n }\n \n let accumulatedPath = ''\n if (isWindowsPath && items.length > 1) {\n accumulatedPath = items[items.length - 1].path\n }\n \n for (let i = startIndex; i < parts.length; i++) {\n const part = parts[i]\n if (!part) continue\n \n if (isWindowsPath) {\n accumulatedPath = accumulatedPath.endsWith(separator) \n ? accumulatedPath + part \n : accumulatedPath + separator + part\n } else {\n accumulatedPath = accumulatedPath === '' || accumulatedPath === '/'\n ? '/' + part \n : accumulatedPath + '/' + part\n }\n \n items.push({\n label: part,\n path: accumulatedPath\n })\n }\n \n return items\n }, [currentPath])\n\n const handleBreadcrumbClick = (path: string) => {\n onBreadcrumbClick?.(path)\n onNavigate?.(path)\n }\n\n const handleFolderOpen = (file: any) => {\n let newPath: string\n \n if (!currentPath || currentPath === '') {\n if (file.name && /^[A-Za-z]:/.test(file.name)) {\n newPath = file.name + (file.name.endsWith('\\\\') ? '' : '\\\\')\n } else {\n newPath = file.name\n }\n } else {\n const separator = currentPath.includes('\\\\') ? '\\\\' : '/'\n \n if (currentPath === '/') {\n newPath = '/' + file.name\n } else if (currentPath.endsWith(separator)) {\n newPath = currentPath + file.name\n } else {\n newPath = currentPath + separator + file.name\n }\n }\n \n onFolderOpen?.(file)\n onNavigate?.(newPath)\n }\n\n const handleSelectAll = (selected: boolean) => {\n onSelectAll?.(selected)\n }\n\n const handleSelectFile = (fileId: string, selected: boolean) => {\n onSelectFile?.(fileId, selected)\n }\n\n return (\n <div className={cn('flex flex-col h-full bg-ods-bg', className)}>\n <div className=\"flex-1 flex flex-col py-2 space-y-6 min-h-0\">\n <div className=\"flex flex-col justify-between gap-4 mb-4 md:flex-row\">\n <FileManagerBreadcrumb\n items={breadcrumbItems}\n onItemClick={handleBreadcrumbClick}\n />\n\n {showActions && (\n <FileManagerActionBar\n canPaste={canPaste}\n hasSelection={selectedFiles.length > 0}\n onNewFolder={() => onFileAction?.('new-folder')}\n onPaste={() => onFileAction?.('paste')}\n onCopy={() => onFileAction?.('copy')}\n onCut={() => onFileAction?.('cut')}\n onUpload={() => onFileAction?.('upload')}\n onSelectAll={() => handleSelectAll(true)}\n />\n )}\n </div>\n \n {showSearch && (\n <Input\n value={searchQuery}\n onChange={(e) => onSearch?.(e.target.value)}\n placeholder=\"Search...\"\n disabled={disableSearch}\n startAdornment={<SearchIcon />}\n loading={isSearching}\n />\n )}\n \n <div className=\"flex-1 min-h-0\">\n <FileManagerTable\n files={files}\n selectedFiles={selectedFiles}\n resultsCount={resultsCount || files.length}\n showCheckboxes={showCheckboxes}\n loading={loading}\n isSearchResult={!!searchQuery}\n onSelectFile={handleSelectFile}\n onSelectAll={handleSelectAll}\n onFileClick={onFileClick}\n onFolderOpen={handleFolderOpen}\n onFileAction={onFileAction}\n />\n </div>\n </div>\n </div>\n )\n}","'use client'\n\nimport React from 'react'\nimport { ChevronRight } from 'lucide-react'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerBreadcrumbProps } from './types'\n\nexport function FileManagerBreadcrumb({ \n items, \n onItemClick, \n className \n}: FileManagerBreadcrumbProps) {\n return (\n <nav className={cn(\n 'flex flex-wrap items-center gap-x-1 gap-y-1 text-sm break-words',\n className\n )}>\n {items.map((item, index) => (\n <React.Fragment key={item.path}>\n {index > 0 && (\n <ChevronRight className=\"h-4 w-4 text-ods-text-tertiary flex-shrink-0\" />\n )}\n <button\n onClick={() => onItemClick?.(item.path)}\n className={cn(\n 'shrink-0 px-1 py-0.5 rounded hover:bg-ods-bg-secondary transition-colors',\n 'text-ods-text-primary hover:text-ods-accent text-left break-all',\n index === items.length - 1 && 'font-medium'\n )}\n >\n {item.label}\n </button>\n </React.Fragment>\n ))}\n </nav>\n )\n}","'use client'\n\nimport React from 'react'\nimport { FolderPlus, Clipboard, Upload, CheckSquare, Copy, Scissors } from 'lucide-react'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerActionBarProps } from './types'\n\nexport function FileManagerActionBar({ \n canPaste = false,\n hasSelection = false,\n onNewFolder,\n onPaste,\n onCopy,\n onCut,\n onUpload,\n onSelectAll,\n className \n}: FileManagerActionBarProps) {\n return (\n <div className={cn('flex items-center gap-4 flex-wrap md:justify-end', className)}>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onNewFolder}\n leftIcon={<FolderPlus className=\"h-4 w-4\" />}\n >\n New Folder\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onCopy}\n disabled={!hasSelection}\n leftIcon={<Copy className=\"h-4 w-4\" />}\n >\n Copy\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onCut}\n disabled={!hasSelection}\n leftIcon={<Scissors className=\"h-4 w-4\" />}\n >\n Cut\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onPaste}\n disabled={!canPaste}\n leftIcon={<Clipboard className=\"h-4 w-4\" />}\n >\n Paste\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onUpload}\n leftIcon={<Upload className=\"h-4 w-4\" />}\n >\n Upload\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onSelectAll}\n leftIcon={<CheckSquare className=\"h-4 w-4\" />}\n >\n Select All\n </Button>\n </div>\n )\n}","'use client'\n\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { Checkbox } from '../checkbox'\nimport { Skeleton } from '../skeleton'\nimport { cn } from '../../../utils/cn'\nimport { FileManagerTableRow } from './file-manager-table-row'\nimport { FileManagerEmpty } from './file-manager-empty'\nimport type { FileManagerTableProps } from './types'\n\nexport function FileManagerTable({ \n files,\n selectedFiles,\n showCheckboxes = true,\n loading = false,\n isSearchResult = false,\n onSelectFile,\n onSelectAll,\n onFileClick,\n onFolderOpen,\n onFileAction,\n className \n}: FileManagerTableProps) {\n const allSelected = useMemo(() => {\n return files.length > 0 && selectedFiles.length === files.length\n }, [files.length, selectedFiles.length])\n\n const someSelected = useMemo(() => {\n return selectedFiles.length > 0 && selectedFiles.length < files.length\n }, [files.length, selectedFiles.length])\n\n const containerRef = useRef<HTMLDivElement>(null)\n const [tableHeight, setTableHeight] = useState<number | null>(null)\n\n useLayoutEffect(() => {\n if (loading || files.length === 0) {\n setTableHeight(null)\n return\n }\n\n const handleResize = () => {\n const node = containerRef.current\n if (!node) return\n const rect = node.getBoundingClientRect()\n const availableHeight = window.innerHeight - rect.top\n setTableHeight(availableHeight > 0 ? availableHeight : null)\n }\n\n handleResize()\n\n window.addEventListener('resize', handleResize)\n window.addEventListener('scroll', handleResize, true)\n\n const resizeObserver = new ResizeObserver(handleResize)\n const parent = containerRef.current?.parentElement\n if (parent) {\n resizeObserver.observe(parent)\n } else if (containerRef.current) {\n resizeObserver.observe(containerRef.current)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n window.removeEventListener('scroll', handleResize, true)\n resizeObserver.disconnect()\n }\n }, [loading, files.length])\n\n const handleSelectAll = (checked: boolean) => {\n onSelectAll?.(checked)\n }\n\n if (loading) {\n const skeletonRows = 8\n \n return (\n <div className={cn('bg-ods-bg border border-ods-border rounded-lg flex flex-col', className)}>\n {/* Table header */}\n <div className=\"flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg\">\n {showCheckboxes && (\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n )}\n \n <div className=\"flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary\">\n EDITED\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex justify-end\">\n {/* Space for action buttons */}\n </div>\n </div>\n \n {/* Skeleton rows */}\n <div className=\"divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto\">\n {Array.from({ length: skeletonRows }).map((_, idx) => (\n <div key={idx} className=\"bg-ods-card group flex items-center h-16 px-4 border-ods-border\">\n {showCheckboxes && (\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n )}\n \n {/* File icon and name column */}\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\n <Skeleton className=\"h-6 w-6 rounded\" />\n <div className=\"flex flex-col min-w-0\">\n <Skeleton className=\"h-4 w-32\" />\n {isSearchResult && (\n <Skeleton className=\"h-3 w-48 mt-1\" />\n )}\n </div>\n </div>\n \n {/* Size column */}\n <div className=\"w-24 shrink-0 pr-4\">\n <Skeleton className=\"h-4 w-16\" />\n </div>\n \n {/* Modified date column */}\n <div className=\"w-36 shrink-0 pl-4\">\n <Skeleton className=\"h-4 w-24\" />\n </div>\n \n {/* Action buttons column */}\n <div className=\"w-48 shrink-0 pl-4 flex items-center justify-end gap-1\">\n <Skeleton className=\"h-8 w-8 rounded\" />\n <Skeleton className=\"h-8 w-8 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n )\n }\n\n if (files.length === 0) {\n return <FileManagerEmpty />\n }\n\n return (\n <div\n ref={containerRef}\n className={cn('bg-ods-bg border border-ods-border rounded-lg flex flex-col', className)}\n style={tableHeight ? { height: `${tableHeight}px` } : undefined}\n >\n <div className=\"flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg\">\n {showCheckboxes && (\n <div className=\"mr-4\">\n <Checkbox\n checked={allSelected || someSelected}\n onCheckedChange={handleSelectAll}\n className=\"h-5 w-5\"\n />\n </div>\n )}\n \n <div className=\"flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary\">\n EDITED\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex justify-end\">\n {/* Space for action buttons */}\n </div>\n </div>\n \n <div className=\"divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto\">\n {files.map((file) => (\n <FileManagerTableRow\n key={file.id}\n file={file}\n isSelected={selectedFiles.includes(file.id)}\n showCheckbox={showCheckboxes}\n showPath={isSearchResult}\n onSelect={(selected) => onSelectFile?.(file.id, selected)}\n onClick={() => {\n if (isSearchResult) {\n onFileClick?.(file)\n } else if (file.type === 'folder') {\n onFolderOpen?.(file)\n }\n }}\n onDoubleClick={() => {\n if (file.type === 'folder' && !isSearchResult) {\n onFolderOpen?.(file)\n }\n }}\n onActionClick={(action) => onFileAction?.(action, file.id)}\n />\n ))}\n </div>\n </div>\n )\n}","'use client'\n\nimport React, { useState } from 'react'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\nimport { Checkbox } from '../checkbox'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport { FileIcon } from './file-icon'\nimport { FileManagerContextMenu } from './file-manager-context-menu'\nimport type { FileManagerTableRowProps } from './types'\n\nexport function FileManagerTableRow({ \n file,\n isSelected = false,\n showCheckbox = true,\n showPath = false,\n onSelect,\n onClick,\n onDoubleClick,\n onContextMenu,\n onActionClick,\n className \n}: FileManagerTableRowProps) {\n const [contextMenuOpen, setContextMenuOpen] = useState(false)\n \n const handleRowClick = (e: React.MouseEvent) => {\n // Don't trigger row click if clicking on interactive elements\n if ((e.target as HTMLElement).closest('[data-no-row-click]')) {\n return\n }\n onClick?.()\n }\n\n const handleCheckboxChange = (checked: boolean) => {\n onSelect?.(checked)\n }\n\n const handleContextAction = (action: any) => {\n onActionClick?.(action)\n setContextMenuOpen(false)\n }\n\n const fileExtension = file.type === 'file' \n ? file.name.split('.').pop() \n : undefined\n\n return (\n <div\n className={cn(\n 'bg-ods-card group flex items-center h-16 px-4 border-ods-border',\n 'hover:bg-ods-bg-secondary transition-colors cursor-pointer',\n isSelected && 'bg-ods-bg-secondary',\n className\n )}\n onClick={handleRowClick}\n onDoubleClick={onDoubleClick}\n onContextMenu={(e) => {\n e.preventDefault()\n onContextMenu?.(e)\n }}\n >\n {showCheckbox && (\n <div className=\"mr-4\" data-no-row-click>\n <Checkbox\n checked={isSelected}\n onCheckedChange={handleCheckboxChange}\n className=\"h-5 w-5\"\n />\n </div>\n )}\n \n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\n <FileIcon \n type={file.type} \n extension={fileExtension}\n size=\"md\" \n />\n <div className=\"flex flex-col min-w-0\">\n <span className=\"text-sm text-ods-text-primary truncate\" title={file.name}>\n {file.name}\n </span>\n {showPath && file.path && (\n <span className=\"text-xs text-ods-text-secondary truncate\" title={file.path}>\n {file.path}\n </span>\n )}\n </div>\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm text-ods-text-secondary\">\n {file.size || ''}\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm text-ods-text-secondary\">\n {file.modified}\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex items-center justify-end gap-1\" data-no-row-click>\n <FileManagerContextMenu\n open={contextMenuOpen}\n onOpenChange={setContextMenuOpen}\n onAction={handleContextAction}\n fileType={file.type}\n trigger={\n <Button\n variant=\"transparent\"\n size=\"small-legacy\"\n className=\"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n }\n />\n \n {file.type === 'folder' ? (\n <Button\n variant=\"transparent\"\n size=\"small-legacy\"\n className=\"h-8 w-8 p-0\"\n onClick={(e) => {\n e.stopPropagation()\n onDoubleClick?.()\n }}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n ) : (\n <div className=\"w-8\" /> /* Space to maintain alignment when no chevron */\n )}\n </div>\n </div>\n )\n}","'use client'\n\nimport React from 'react'\nimport { Folder, File, FileText, Image, FileVideo, FileAudio, FileCode, FileArchive } from 'lucide-react'\nimport { cn } from '../../../utils/cn'\nimport type { FileIconProps } from './types'\n\nconst sizeMap = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6'\n}\n\nconst getFileIcon = (extension?: string) => {\n if (!extension) return File\n \n const ext = extension.toLowerCase()\n \n // Document files\n if (['txt', 'doc', 'docx', 'pdf', 'rtf'].includes(ext)) return FileText\n \n // Image files\n if (['jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'bmp'].includes(ext)) return Image\n \n // Video files\n if (['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv'].includes(ext)) return FileVideo\n \n // Audio files\n if (['mp3', 'wav', 'flac', 'aac', 'ogg', 'wma'].includes(ext)) return FileAudio\n \n // Code files\n if (['js', 'ts', 'jsx', 'tsx', 'py', 'java', 'c', 'cpp', 'cs', 'html', 'css', 'json', 'xml'].includes(ext)) return FileCode\n \n // Archive files\n if (['zip', 'rar', '7z', 'tar', 'gz', 'bz2'].includes(ext)) return FileArchive\n \n return File\n}\n\nexport function FileIcon({ type, extension, className, size = 'md' }: FileIconProps) {\n const Icon = type === 'folder' ? Folder : getFileIcon(extension)\n \n return (\n <Icon \n className={cn(\n sizeMap[size],\n type === 'folder' ? 'text-ods-accent' : 'text-ods-text-secondary',\n className\n )}\n />\n )\n}","'use client'\n\nimport React from 'react'\nimport { Download, Copy, Edit2, Scissors, Archive, Trash2, MoreHorizontal } from 'lucide-react'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../dropdown-menu'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerContextMenuProps } from './types'\n\nexport function FileManagerContextMenu({ \n open,\n onOpenChange,\n onAction,\n fileType = 'file',\n hasSelection = false,\n trigger,\n className \n}: FileManagerContextMenuProps) {\n const menuItems = [\n {\n action: 'download' as const,\n label: 'Download',\n icon: Download,\n show: fileType === 'file' || hasSelection\n },\n {\n action: 'copy' as const,\n label: 'Copy',\n icon: Copy,\n show: true\n },\n {\n action: 'rename' as const,\n label: 'Rename',\n icon: Edit2,\n show: !hasSelection\n },\n {\n action: 'cut' as const,\n label: 'Cut',\n icon: Scissors,\n show: true\n },\n {\n action: 'delete' as const,\n label: 'Delete',\n icon: Trash2,\n show: true,\n separator: true\n }\n ]\n\n const visibleItems = menuItems.filter(item => item.show)\n\n return (\n <DropdownMenu open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>\n {trigger || (\n <Button\n variant=\"transparent\"\n size=\"small-legacy\"\n className=\"h-8 w-8 p-0\"\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuContent \n align=\"end\" \n className={cn('w-56', className)}\n onClick={(e) => e.stopPropagation()}\n >\n {visibleItems.map((item, index) => (\n <React.Fragment key={item.action}>\n {item.separator && index > 0 && <DropdownMenuSeparator />}\n <DropdownMenuItem\n onClick={(e) => {\n e.stopPropagation()\n onAction(item.action)\n }}\n className=\"cursor-pointer\"\n >\n <item.icon className=\"mr-3 h-4 w-4\" />\n <span>{item.label}</span>\n </DropdownMenuItem>\n </React.Fragment>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}","'use client'\n\nimport React from 'react'\nimport { FolderOpen } from 'lucide-react'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerEmptyProps } from './types'\n\nexport function FileManagerEmpty({ \n message = 'No files or folders found',\n description = 'This folder is empty. Create a new folder or upload files to get started.',\n action,\n className \n}: FileManagerEmptyProps) {\n return (\n <div className={cn(\n 'flex flex-col items-center justify-center py-20 px-4',\n className\n )}>\n <div className=\"p-4 bg-ods-bg-secondary rounded-full mb-6\">\n <FolderOpen className=\"h-12 w-12 text-ods-text-tertiary\" />\n </div>\n \n <h3 className=\"text-lg font-medium text-ods-text-primary mb-2\">\n {message}\n </h3>\n \n <p className=\"text-sm text-ods-text-secondary text-center max-w-md mb-6\">\n {description}\n </p>\n \n {action && (\n <Button\n variant=\"accent\"\n size=\"small-legacy\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n )}\n </div>\n )\n}","'use client'\n\nimport React from 'react'\nimport { Skeleton } from '../skeleton'\n\ninterface FileManagerSkeletonProps {\n rows?: number\n showSearch?: boolean\n showActions?: boolean\n}\n\nexport function FileManagerSkeleton({ \n rows = 8,\n showSearch = true,\n showActions = true\n}: FileManagerSkeletonProps) {\n const rowPlaceholders = Array.from({ length: rows })\n\n return (\n <div className=\"flex flex-col h-full bg-ods-bg\">\n <div className=\"flex-1 flex flex-col py-6 space-y-6 min-h-0\">\n {/* Breadcrumb and Action Bar */}\n <div className=\"flex flex-wrap items-start justify-between gap-4\">\n {/* Breadcrumb skeleton */}\n <div className=\"flex-1 min-w-0 flex items-center gap-2\">\n <Skeleton className=\"h-5 w-12\" />\n <Skeleton className=\"h-4 w-4 rounded-full\" />\n <Skeleton className=\"h-5 w-20\" />\n <Skeleton className=\"h-4 w-4 rounded-full\" />\n <Skeleton className=\"h-5 w-24\" />\n </div>\n \n {/* Action buttons skeleton */}\n {showActions && (\n <div className=\"flex-shrink-0 flex items-center gap-2\">\n <Skeleton className=\"h-9 w-24\" />\n <Skeleton className=\"h-9 w-20\" />\n <Skeleton className=\"h-9 w-20\" />\n <Skeleton className=\"h-9 w-28\" />\n </div>\n )}\n </div>\n \n {/* Search bar skeleton */}\n {showSearch && (\n <Skeleton className=\"h-10 w-full rounded-lg\" />\n )}\n \n {/* Table skeleton */}\n <div className=\"flex-1 min-h-0\">\n <div className=\"bg-ods-bg border border-ods-border rounded-lg flex flex-col\">\n {/* Table header */}\n <div className=\"flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg\">\n {/* Checkbox */}\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n \n {/* Column headers */}\n <div className=\"flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary\">\n EDITED\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex justify-end\">\n {/* Empty space for actions */}\n </div>\n </div>\n \n {/* Table rows */}\n <div className=\"divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto min-h-0\">\n {rowPlaceholders.map((_, idx) => (\n <div key={idx} className=\"bg-ods-card flex items-center h-16 px-4 border-ods-border\">\n {/* Checkbox */}\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n \n {/* File icon and name */}\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\n <Skeleton className=\"h-6 w-6 rounded\" />\n <div className=\"flex flex-col min-w-0\">\n <Skeleton className=\"h-4 w-32\" />\n </div>\n </div>\n \n {/* Size */}\n <div className=\"w-24 shrink-0 pr-4\">\n <Skeleton className=\"h-4 w-16\" />\n </div>\n \n {/* Modified date */}\n <div className=\"w-36 shrink-0 pl-4\">\n <Skeleton className=\"h-4 w-24\" />\n </div>\n \n {/* Action buttons */}\n <div className=\"w-48 shrink-0 pl-4 flex items-center justify-end gap-1\">\n <Skeleton className=\"h-8 w-8 rounded\" />\n <Skeleton className=\"h-8 w-8 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/ui/file-manager/index.cjs","../../../../src/components/ui/file-manager/file-manager.tsx","../../../../src/components/ui/file-manager/file-manager-breadcrumb.tsx","../../../../src/components/ui/file-manager/file-manager-action-bar.tsx","../../../../src/components/ui/file-manager/file-manager-table.tsx","../../../../src/components/ui/file-manager/file-manager-table-row.tsx","../../../../src/components/ui/file-manager/file-icon.tsx","../../../../src/components/ui/file-manager/file-manager-context-menu.tsx","../../../../src/components/ui/file-manager/file-manager-empty.tsx","../../../../src/components/ui/file-manager/file-manager-skeleton.tsx"],"names":["jsxs","jsx","Copy","Scissors","React","MoreHorizontal","ChevronRight","useState"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/components/ui/file-manager/index.cjs","sourcesContent":[null,"'use client'\n\nimport React, { useMemo } from 'react'\nimport { cn } from '../../../utils/cn'\nimport { Input } from '../input'\nimport { SearchIcon } from '../../icons-v2-generated/interface/search-icon'\nimport { FileManagerBreadcrumb } from './file-manager-breadcrumb'\nimport { FileManagerActionBar } from './file-manager-action-bar'\nimport { FileManagerTable } from './file-manager-table'\nimport type { FileManagerProps, BreadcrumbItem } from './types'\nimport { Loader2 } from 'lucide-react'\n\nexport function FileManager({ \n files,\n currentPath,\n selectedFiles,\n searchQuery,\n loading = false,\n isSearching,\n showCheckboxes = true,\n showSearch = true,\n showActions = true,\n canPaste = false,\n disableSearch = false,\n resultsCount,\n onNavigate,\n onBreadcrumbClick,\n onSearch,\n onSelectFile,\n onSelectAll,\n onFileAction,\n onFileClick,\n onFolderOpen,\n className \n}: FileManagerProps) {\n const breadcrumbItems = useMemo((): BreadcrumbItem[] => {\n const items: BreadcrumbItem[] = []\n \n items.push({ label: 'Root', path: '' })\n \n if (!currentPath || currentPath === '' || currentPath === '/') {\n return items\n }\n \n const isWindowsPath = currentPath.includes('\\\\') || /^[A-Za-z]:/.test(currentPath)\n const separator = isWindowsPath ? '\\\\' : '/'\n \n const parts = currentPath.split(separator).filter(Boolean)\n \n let startIndex = 0\n if (isWindowsPath && parts.length > 0) {\n const driveMatch = parts[0].match(/^([A-Za-z]:)/)\n if (driveMatch) {\n items.push({\n label: driveMatch[1],\n path: driveMatch[1] + separator\n })\n if (parts[0] === driveMatch[1]) {\n startIndex = 1\n } else {\n parts[0] = parts[0].substring(driveMatch[1].length)\n }\n }\n }\n \n let accumulatedPath = ''\n if (isWindowsPath && items.length > 1) {\n accumulatedPath = items[items.length - 1].path\n }\n \n for (let i = startIndex; i < parts.length; i++) {\n const part = parts[i]\n if (!part) continue\n \n if (isWindowsPath) {\n accumulatedPath = accumulatedPath.endsWith(separator) \n ? accumulatedPath + part \n : accumulatedPath + separator + part\n } else {\n accumulatedPath = accumulatedPath === '' || accumulatedPath === '/'\n ? '/' + part \n : accumulatedPath + '/' + part\n }\n \n items.push({\n label: part,\n path: accumulatedPath\n })\n }\n \n return items\n }, [currentPath])\n\n const handleBreadcrumbClick = (path: string) => {\n onBreadcrumbClick?.(path)\n onNavigate?.(path)\n }\n\n const handleFolderOpen = (file: any) => {\n let newPath: string\n \n if (!currentPath || currentPath === '') {\n if (file.name && /^[A-Za-z]:/.test(file.name)) {\n newPath = file.name + (file.name.endsWith('\\\\') ? '' : '\\\\')\n } else {\n newPath = file.name\n }\n } else {\n const separator = currentPath.includes('\\\\') ? '\\\\' : '/'\n \n if (currentPath === '/') {\n newPath = '/' + file.name\n } else if (currentPath.endsWith(separator)) {\n newPath = currentPath + file.name\n } else {\n newPath = currentPath + separator + file.name\n }\n }\n \n onFolderOpen?.(file)\n onNavigate?.(newPath)\n }\n\n const handleSelectAll = (selected: boolean) => {\n onSelectAll?.(selected)\n }\n\n const handleSelectFile = (fileId: string, selected: boolean) => {\n onSelectFile?.(fileId, selected)\n }\n\n return (\n <div className={cn('flex flex-col h-full bg-ods-bg', className)}>\n <div className=\"flex-1 flex flex-col py-2 space-y-6 min-h-0\">\n <div className=\"flex flex-col justify-between gap-4 mb-4 md:flex-row\">\n <FileManagerBreadcrumb\n items={breadcrumbItems}\n onItemClick={handleBreadcrumbClick}\n />\n\n {showActions && (\n <FileManagerActionBar\n canPaste={canPaste}\n hasSelection={selectedFiles.length > 0}\n onNewFolder={() => onFileAction?.('new-folder')}\n onPaste={() => onFileAction?.('paste')}\n onCopy={() => onFileAction?.('copy')}\n onCut={() => onFileAction?.('cut')}\n onUpload={() => onFileAction?.('upload')}\n onSelectAll={() => handleSelectAll(true)}\n />\n )}\n </div>\n \n {showSearch && (\n <Input\n value={searchQuery}\n onChange={(e) => onSearch?.(e.target.value)}\n placeholder=\"Search...\"\n disabled={disableSearch}\n startAdornment={<SearchIcon />}\n loading={isSearching}\n />\n )}\n \n <div className=\"flex-1 min-h-0\">\n <FileManagerTable\n files={files}\n selectedFiles={selectedFiles}\n resultsCount={resultsCount || files.length}\n showCheckboxes={showCheckboxes}\n loading={loading}\n isSearchResult={!!searchQuery}\n onSelectFile={handleSelectFile}\n onSelectAll={handleSelectAll}\n onFileClick={onFileClick}\n onFolderOpen={handleFolderOpen}\n onFileAction={onFileAction}\n />\n </div>\n </div>\n </div>\n )\n}","'use client'\n\nimport React from 'react'\nimport { ChevronRight } from 'lucide-react'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerBreadcrumbProps } from './types'\n\nexport function FileManagerBreadcrumb({ \n items, \n onItemClick, \n className \n}: FileManagerBreadcrumbProps) {\n return (\n <nav className={cn(\n 'flex flex-wrap items-center gap-x-1 gap-y-1 text-sm break-words',\n className\n )}>\n {items.map((item, index) => (\n <React.Fragment key={item.path}>\n {index > 0 && (\n <ChevronRight className=\"h-4 w-4 text-ods-text-tertiary flex-shrink-0\" />\n )}\n <button\n onClick={() => onItemClick?.(item.path)}\n className={cn(\n 'shrink-0 px-1 py-0.5 rounded hover:bg-ods-bg-secondary transition-colors',\n 'text-ods-text-primary hover:text-ods-accent text-left break-all',\n index === items.length - 1 && 'font-medium'\n )}\n >\n {item.label}\n </button>\n </React.Fragment>\n ))}\n </nav>\n )\n}","'use client'\n\nimport React from 'react'\nimport { FolderPlus, Clipboard, Upload, CheckSquare, Copy, Scissors } from 'lucide-react'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerActionBarProps } from './types'\n\nexport function FileManagerActionBar({ \n canPaste = false,\n hasSelection = false,\n onNewFolder,\n onPaste,\n onCopy,\n onCut,\n onUpload,\n onSelectAll,\n className \n}: FileManagerActionBarProps) {\n return (\n <div className={cn('flex items-center gap-4 flex-wrap md:justify-end', className)}>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onNewFolder}\n leftIcon={<FolderPlus className=\"h-4 w-4\" />}\n >\n New Folder\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onCopy}\n disabled={!hasSelection}\n leftIcon={<Copy className=\"h-4 w-4\" />}\n >\n Copy\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onCut}\n disabled={!hasSelection}\n leftIcon={<Scissors className=\"h-4 w-4\" />}\n >\n Cut\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onPaste}\n disabled={!canPaste}\n leftIcon={<Clipboard className=\"h-4 w-4\" />}\n >\n Paste\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onUpload}\n leftIcon={<Upload className=\"h-4 w-4\" />}\n >\n Upload\n </Button>\n\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n onClick={onSelectAll}\n leftIcon={<CheckSquare className=\"h-4 w-4\" />}\n >\n Select All\n </Button>\n </div>\n )\n}","'use client'\n\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react'\nimport { Checkbox } from '../checkbox'\nimport { Skeleton } from '../skeleton'\nimport { cn } from '../../../utils/cn'\nimport { FileManagerTableRow } from './file-manager-table-row'\nimport { FileManagerEmpty } from './file-manager-empty'\nimport type { FileManagerTableProps } from './types'\n\nexport function FileManagerTable({ \n files,\n selectedFiles,\n showCheckboxes = true,\n loading = false,\n isSearchResult = false,\n onSelectFile,\n onSelectAll,\n onFileClick,\n onFolderOpen,\n onFileAction,\n className \n}: FileManagerTableProps) {\n const allSelected = useMemo(() => {\n return files.length > 0 && selectedFiles.length === files.length\n }, [files.length, selectedFiles.length])\n\n const someSelected = useMemo(() => {\n return selectedFiles.length > 0 && selectedFiles.length < files.length\n }, [files.length, selectedFiles.length])\n\n const containerRef = useRef<HTMLDivElement>(null)\n const [tableHeight, setTableHeight] = useState<number | null>(null)\n\n useLayoutEffect(() => {\n if (loading || files.length === 0) {\n setTableHeight(null)\n return\n }\n\n const handleResize = () => {\n const node = containerRef.current\n if (!node) return\n const rect = node.getBoundingClientRect()\n const availableHeight = window.innerHeight - rect.top\n setTableHeight(availableHeight > 0 ? availableHeight : null)\n }\n\n handleResize()\n\n window.addEventListener('resize', handleResize)\n window.addEventListener('scroll', handleResize, true)\n\n const resizeObserver = new ResizeObserver(handleResize)\n const parent = containerRef.current?.parentElement\n if (parent) {\n resizeObserver.observe(parent)\n } else if (containerRef.current) {\n resizeObserver.observe(containerRef.current)\n }\n\n return () => {\n window.removeEventListener('resize', handleResize)\n window.removeEventListener('scroll', handleResize, true)\n resizeObserver.disconnect()\n }\n }, [loading, files.length])\n\n const handleSelectAll = (checked: boolean) => {\n onSelectAll?.(checked)\n }\n\n if (loading) {\n const skeletonRows = 8\n \n return (\n <div className={cn('bg-ods-bg border border-ods-border rounded-lg flex flex-col', className)}>\n {/* Table header */}\n <div className=\"flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg\">\n {showCheckboxes && (\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n )}\n \n <div className=\"flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary\">\n EDITED\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex justify-end\">\n {/* Space for action buttons */}\n </div>\n </div>\n \n {/* Skeleton rows */}\n <div className=\"divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto\">\n {Array.from({ length: skeletonRows }).map((_, idx) => (\n <div key={idx} className=\"bg-ods-card group flex items-center h-16 px-4 border-ods-border\">\n {showCheckboxes && (\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n )}\n \n {/* File icon and name column */}\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\n <Skeleton className=\"h-6 w-6 rounded\" />\n <div className=\"flex flex-col min-w-0\">\n <Skeleton className=\"h-4 w-32\" />\n {isSearchResult && (\n <Skeleton className=\"h-3 w-48 mt-1\" />\n )}\n </div>\n </div>\n \n {/* Size column */}\n <div className=\"w-24 shrink-0 pr-4\">\n <Skeleton className=\"h-4 w-16\" />\n </div>\n \n {/* Modified date column */}\n <div className=\"w-36 shrink-0 pl-4\">\n <Skeleton className=\"h-4 w-24\" />\n </div>\n \n {/* Action buttons column */}\n <div className=\"w-48 shrink-0 pl-4 flex items-center justify-end gap-1\">\n <Skeleton className=\"h-8 w-8 rounded\" />\n <Skeleton className=\"h-8 w-8 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n )\n }\n\n if (files.length === 0) {\n return <FileManagerEmpty />\n }\n\n return (\n <div\n ref={containerRef}\n className={cn('bg-ods-bg border border-ods-border rounded-lg flex flex-col', className)}\n style={tableHeight ? { height: `${tableHeight}px` } : undefined}\n >\n <div className=\"flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg\">\n {showCheckboxes && (\n <div className=\"mr-4\">\n <Checkbox\n checked={allSelected || someSelected}\n onCheckedChange={handleSelectAll}\n className=\"h-5 w-5\"\n />\n </div>\n )}\n \n <div className=\"flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary\">\n EDITED\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex justify-end\">\n {/* Space for action buttons */}\n </div>\n </div>\n \n <div className=\"divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto\">\n {files.map((file) => (\n <FileManagerTableRow\n key={file.id}\n file={file}\n isSelected={selectedFiles.includes(file.id)}\n showCheckbox={showCheckboxes}\n showPath={isSearchResult}\n onSelect={(selected) => onSelectFile?.(file.id, selected)}\n onClick={() => {\n if (isSearchResult) {\n onFileClick?.(file)\n } else if (file.type === 'folder') {\n onFolderOpen?.(file)\n }\n }}\n onDoubleClick={() => {\n if (file.type === 'folder' && !isSearchResult) {\n onFolderOpen?.(file)\n }\n }}\n onActionClick={(action) => onFileAction?.(action, file.id)}\n />\n ))}\n </div>\n </div>\n )\n}","'use client'\n\nimport React, { useState } from 'react'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\nimport { Checkbox } from '../checkbox'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport { FileIcon } from './file-icon'\nimport { FileManagerContextMenu } from './file-manager-context-menu'\nimport type { FileManagerTableRowProps } from './types'\n\nexport function FileManagerTableRow({ \n file,\n isSelected = false,\n showCheckbox = true,\n showPath = false,\n onSelect,\n onClick,\n onDoubleClick,\n onContextMenu,\n onActionClick,\n className \n}: FileManagerTableRowProps) {\n const [contextMenuOpen, setContextMenuOpen] = useState(false)\n \n const handleRowClick = (e: React.MouseEvent) => {\n // Don't trigger row click if clicking on interactive elements\n if ((e.target as HTMLElement).closest('[data-no-row-click]')) {\n return\n }\n onClick?.()\n }\n\n const handleCheckboxChange = (checked: boolean) => {\n onSelect?.(checked)\n }\n\n const handleContextAction = (action: any) => {\n onActionClick?.(action)\n setContextMenuOpen(false)\n }\n\n const fileExtension = file.type === 'file' \n ? file.name.split('.').pop() \n : undefined\n\n return (\n <div\n className={cn(\n 'bg-ods-card group flex items-center h-16 px-4 border-ods-border',\n 'hover:bg-ods-bg-secondary transition-colors cursor-pointer',\n isSelected && 'bg-ods-bg-secondary',\n className\n )}\n onClick={handleRowClick}\n onDoubleClick={onDoubleClick}\n onContextMenu={(e) => {\n e.preventDefault()\n onContextMenu?.(e)\n }}\n >\n {showCheckbox && (\n <div className=\"mr-4\" data-no-row-click>\n <Checkbox\n checked={isSelected}\n onCheckedChange={handleCheckboxChange}\n className=\"h-5 w-5\"\n />\n </div>\n )}\n \n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\n <FileIcon \n type={file.type} \n extension={fileExtension}\n size=\"md\" \n />\n <div className=\"flex flex-col min-w-0\">\n <span className=\"text-sm text-ods-text-primary truncate\" title={file.name}>\n {file.name}\n </span>\n {showPath && file.path && (\n <span className=\"text-xs text-ods-text-secondary truncate\" title={file.path}>\n {file.path}\n </span>\n )}\n </div>\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm text-ods-text-secondary\">\n {file.size || ''}\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm text-ods-text-secondary\">\n {file.modified}\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex items-center justify-end gap-1\" data-no-row-click>\n <FileManagerContextMenu\n open={contextMenuOpen}\n onOpenChange={setContextMenuOpen}\n onAction={handleContextAction}\n fileType={file.type}\n trigger={\n <Button\n variant=\"transparent\"\n size=\"small-legacy\"\n className=\"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n }\n />\n \n {file.type === 'folder' ? (\n <Button\n variant=\"transparent\"\n size=\"small-legacy\"\n className=\"h-8 w-8 p-0\"\n onClick={(e) => {\n e.stopPropagation()\n onDoubleClick?.()\n }}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n ) : (\n <div className=\"w-8\" /> /* Space to maintain alignment when no chevron */\n )}\n </div>\n </div>\n )\n}","'use client'\n\nimport React from 'react'\nimport { Folder, File, FileText, Image, FileVideo, FileAudio, FileCode, FileArchive } from 'lucide-react'\nimport { cn } from '../../../utils/cn'\nimport type { FileIconProps } from './types'\n\nconst sizeMap = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6'\n}\n\nconst getFileIcon = (extension?: string) => {\n if (!extension) return File\n \n const ext = extension.toLowerCase()\n \n // Document files\n if (['txt', 'doc', 'docx', 'pdf', 'rtf'].includes(ext)) return FileText\n \n // Image files\n if (['jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'bmp'].includes(ext)) return Image\n \n // Video files\n if (['mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv'].includes(ext)) return FileVideo\n \n // Audio files\n if (['mp3', 'wav', 'flac', 'aac', 'ogg', 'wma'].includes(ext)) return FileAudio\n \n // Code files\n if (['js', 'ts', 'jsx', 'tsx', 'py', 'java', 'c', 'cpp', 'cs', 'html', 'css', 'json', 'xml'].includes(ext)) return FileCode\n \n // Archive files\n if (['zip', 'rar', '7z', 'tar', 'gz', 'bz2'].includes(ext)) return FileArchive\n \n return File\n}\n\nexport function FileIcon({ type, extension, className, size = 'md' }: FileIconProps) {\n const Icon = type === 'folder' ? Folder : getFileIcon(extension)\n \n return (\n <Icon \n className={cn(\n sizeMap[size],\n type === 'folder' ? 'text-ods-accent' : 'text-ods-text-secondary',\n className\n )}\n />\n )\n}","'use client'\n\nimport React from 'react'\nimport { Download, Copy, Edit2, Scissors, Archive, Trash2, MoreHorizontal } from 'lucide-react'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../dropdown-menu'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerContextMenuProps } from './types'\n\nexport function FileManagerContextMenu({ \n open,\n onOpenChange,\n onAction,\n fileType = 'file',\n hasSelection = false,\n trigger,\n className \n}: FileManagerContextMenuProps) {\n const menuItems = [\n {\n action: 'download' as const,\n label: 'Download',\n icon: Download,\n show: fileType === 'file' || hasSelection\n },\n {\n action: 'copy' as const,\n label: 'Copy',\n icon: Copy,\n show: true\n },\n {\n action: 'rename' as const,\n label: 'Rename',\n icon: Edit2,\n show: !hasSelection\n },\n {\n action: 'cut' as const,\n label: 'Cut',\n icon: Scissors,\n show: true\n },\n {\n action: 'delete' as const,\n label: 'Delete',\n icon: Trash2,\n show: true,\n separator: true\n }\n ]\n\n const visibleItems = menuItems.filter(item => item.show)\n\n return (\n <DropdownMenu open={open} onOpenChange={onOpenChange}>\n <DropdownMenuTrigger asChild>\n {trigger || (\n <Button\n variant=\"transparent\"\n size=\"small-legacy\"\n className=\"h-8 w-8 p-0\"\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuContent \n align=\"end\" \n className={cn('w-56', className)}\n onClick={(e) => e.stopPropagation()}\n >\n {visibleItems.map((item, index) => (\n <React.Fragment key={item.action}>\n {item.separator && index > 0 && <DropdownMenuSeparator />}\n <DropdownMenuItem\n onClick={(e) => {\n e.stopPropagation()\n onAction(item.action)\n }}\n className=\"cursor-pointer\"\n >\n <item.icon className=\"mr-3 h-4 w-4\" />\n <span>{item.label}</span>\n </DropdownMenuItem>\n </React.Fragment>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}","'use client'\n\nimport React from 'react'\nimport { FolderOpen } from 'lucide-react'\nimport { Button } from '../button'\nimport { cn } from '../../../utils/cn'\nimport type { FileManagerEmptyProps } from './types'\n\nexport function FileManagerEmpty({ \n message = 'No files or folders found',\n description = 'This folder is empty. Create a new folder or upload files to get started.',\n action,\n className \n}: FileManagerEmptyProps) {\n return (\n <div className={cn(\n 'flex flex-col items-center justify-center py-20 px-4',\n className\n )}>\n <div className=\"p-4 bg-ods-bg-secondary rounded-full mb-6\">\n <FolderOpen className=\"h-12 w-12 text-ods-text-tertiary\" />\n </div>\n \n <h3 className=\"text-lg font-medium text-ods-text-primary mb-2\">\n {message}\n </h3>\n \n <p className=\"text-sm text-ods-text-secondary text-center max-w-md mb-6\">\n {description}\n </p>\n \n {action && (\n <Button\n variant=\"accent\"\n size=\"small-legacy\"\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n )}\n </div>\n )\n}","'use client'\n\nimport React from 'react'\nimport { Skeleton } from '../skeleton'\n\ninterface FileManagerSkeletonProps {\n rows?: number\n showSearch?: boolean\n showActions?: boolean\n}\n\nexport function FileManagerSkeleton({ \n rows = 8,\n showSearch = true,\n showActions = true\n}: FileManagerSkeletonProps) {\n const rowPlaceholders = Array.from({ length: rows })\n\n return (\n <div className=\"flex flex-col h-full bg-ods-bg\">\n <div className=\"flex-1 flex flex-col py-6 space-y-6 min-h-0\">\n {/* Breadcrumb and Action Bar */}\n <div className=\"flex flex-wrap items-start justify-between gap-4\">\n {/* Breadcrumb skeleton */}\n <div className=\"flex-1 min-w-0 flex items-center gap-2\">\n <Skeleton className=\"h-5 w-12\" />\n <Skeleton className=\"h-4 w-4 rounded-full\" />\n <Skeleton className=\"h-5 w-20\" />\n <Skeleton className=\"h-4 w-4 rounded-full\" />\n <Skeleton className=\"h-5 w-24\" />\n </div>\n \n {/* Action buttons skeleton */}\n {showActions && (\n <div className=\"flex-shrink-0 flex items-center gap-2\">\n <Skeleton className=\"h-9 w-24\" />\n <Skeleton className=\"h-9 w-20\" />\n <Skeleton className=\"h-9 w-20\" />\n <Skeleton className=\"h-9 w-28\" />\n </div>\n )}\n </div>\n \n {/* Search bar skeleton */}\n {showSearch && (\n <Skeleton className=\"h-10 w-full rounded-lg\" />\n )}\n \n {/* Table skeleton */}\n <div className=\"flex-1 min-h-0\">\n <div className=\"bg-ods-bg border border-ods-border rounded-lg flex flex-col\">\n {/* Table header */}\n <div className=\"flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg\">\n {/* Checkbox */}\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n \n {/* Column headers */}\n <div className=\"flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary\">\n EDITED\n </div>\n \n <div className=\"w-48 shrink-0 pl-4 flex justify-end\">\n {/* Empty space for actions */}\n </div>\n </div>\n \n {/* Table rows */}\n <div className=\"divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto min-h-0\">\n {rowPlaceholders.map((_, idx) => (\n <div key={idx} className=\"bg-ods-card flex items-center h-16 px-4 border-ods-border\">\n {/* Checkbox */}\n <div className=\"mr-4\">\n <Skeleton className=\"h-5 w-5 rounded\" />\n </div>\n \n {/* File icon and name */}\n <div className=\"flex items-center gap-3 flex-1 min-w-0\">\n <Skeleton className=\"h-6 w-6 rounded\" />\n <div className=\"flex flex-col min-w-0\">\n <Skeleton className=\"h-4 w-32\" />\n </div>\n </div>\n \n {/* Size */}\n <div className=\"w-24 shrink-0 pr-4\">\n <Skeleton className=\"h-4 w-16\" />\n </div>\n \n {/* Modified date */}\n <div className=\"w-36 shrink-0 pl-4\">\n <Skeleton className=\"h-4 w-24\" />\n </div>\n \n {/* Action buttons */}\n <div className=\"w-48 shrink-0 pl-4 flex items-center justify-end gap-1\">\n <Skeleton className=\"h-8 w-8 rounded\" />\n <Skeleton className=\"h-8 w-8 rounded\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n"]}
@@ -1,18 +1,16 @@
1
1
  "use client";
2
- import {
3
- Checkbox,
4
- Input,
5
- Skeleton
6
- } from "../../../chunk-M2OCXTNT.js";
7
2
  import {
8
3
  Button,
4
+ Checkbox,
9
5
  DropdownMenu,
10
6
  DropdownMenuContent,
11
7
  DropdownMenuItem,
12
8
  DropdownMenuSeparator,
13
9
  DropdownMenuTrigger,
10
+ Input,
11
+ Skeleton,
14
12
  init_button2 as init_button
15
- } from "../../../chunk-EL6QLAWX.js";
13
+ } from "../../../chunk-JALO4TAZ.js";
16
14
  import "../../../chunk-OHPI2HRK.js";
17
15
  import {
18
16
  cn,