@flamingo-stack/openframe-frontend-core 0.0.439 → 0.0.440

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 (467) hide show
  1. package/dist/{chunk-RVWC4P3H.js → chunk-2BTDPDME.js} +9 -9
  2. package/dist/chunk-2BTDPDME.js.map +1 -0
  3. package/dist/{chunk-G5FALXNO.js → chunk-63TSTDME.js} +21 -21
  4. package/dist/chunk-63TSTDME.js.map +1 -0
  5. package/dist/{chunk-4ACSUJ7Q.js → chunk-6CITW5BD.js} +10 -10
  6. package/dist/chunk-6CITW5BD.js.map +1 -0
  7. package/dist/{chunk-QXYOGJQJ.js → chunk-7KDR5P23.js} +2 -2
  8. package/dist/{chunk-PEIR7D25.js → chunk-7KNOHGMI.js} +2 -2
  9. package/dist/{chunk-ZMUFTGL7.cjs → chunk-7QP65IE4.cjs} +5 -5
  10. package/dist/{chunk-ZMUFTGL7.cjs.map → chunk-7QP65IE4.cjs.map} +1 -1
  11. package/dist/{chunk-WPVBTVI3.js → chunk-AGV26PUR.js} +6 -6
  12. package/dist/{chunk-WPVBTVI3.js.map → chunk-AGV26PUR.js.map} +1 -1
  13. package/dist/{chunk-HTVVXVJL.cjs → chunk-DUQQEQ7G.cjs} +1431 -1594
  14. package/dist/chunk-DUQQEQ7G.cjs.map +1 -0
  15. package/dist/{chunk-COMBYYQY.js → chunk-FPE3SQ5D.js} +13 -13
  16. package/dist/chunk-FPE3SQ5D.js.map +1 -0
  17. package/dist/{chunk-WAGTZVQN.js → chunk-IAZ5AN2E.js} +30 -30
  18. package/dist/chunk-IAZ5AN2E.js.map +1 -0
  19. package/dist/{chunk-RQQZF6G6.cjs → chunk-IPEIOR77.cjs} +130 -130
  20. package/dist/chunk-IPEIOR77.cjs.map +1 -0
  21. package/dist/{chunk-3WJQL4DN.cjs → chunk-IZ6A6K6N.cjs} +25 -25
  22. package/dist/chunk-IZ6A6K6N.cjs.map +1 -0
  23. package/dist/{chunk-EE5NH5SH.cjs → chunk-J5NO7PAG.cjs} +3 -3
  24. package/dist/{chunk-EE5NH5SH.cjs.map → chunk-J5NO7PAG.cjs.map} +1 -1
  25. package/dist/{chunk-IAN7GUIV.cjs → chunk-JNC4LVD6.cjs} +42 -42
  26. package/dist/chunk-JNC4LVD6.cjs.map +1 -0
  27. package/dist/{chunk-VWGF6IFR.cjs → chunk-JOH5D76X.cjs} +108 -108
  28. package/dist/chunk-JOH5D76X.cjs.map +1 -0
  29. package/dist/{chunk-7WM77CSW.js → chunk-JYI4R25Q.js} +5 -5
  30. package/dist/chunk-JYI4R25Q.js.map +1 -0
  31. package/dist/{chunk-M6QGB6DC.cjs → chunk-KUXGQ2FQ.cjs} +36 -36
  32. package/dist/chunk-KUXGQ2FQ.cjs.map +1 -0
  33. package/dist/{chunk-M3LD6DNE.cjs → chunk-LFWPWIAC.cjs} +16 -16
  34. package/dist/{chunk-M3LD6DNE.cjs.map → chunk-LFWPWIAC.cjs.map} +1 -1
  35. package/dist/{chunk-R46QEE3R.cjs → chunk-LUKRPHEW.cjs} +96 -96
  36. package/dist/chunk-LUKRPHEW.cjs.map +1 -0
  37. package/dist/{chunk-IMK6RUEC.cjs → chunk-PYR4LVAF.cjs} +10 -10
  38. package/dist/chunk-PYR4LVAF.cjs.map +1 -0
  39. package/dist/{chunk-2ELBNZJ3.js → chunk-QAG357PE.js} +7 -7
  40. package/dist/chunk-QAG357PE.js.map +1 -0
  41. package/dist/{chunk-N2TJ3HAM.cjs → chunk-QO6MCQYE.cjs} +9 -9
  42. package/dist/chunk-QO6MCQYE.cjs.map +1 -0
  43. package/dist/{chunk-EGRZHR7J.js → chunk-SM26C2L7.js} +9 -9
  44. package/dist/chunk-SM26C2L7.js.map +1 -0
  45. package/dist/{chunk-AUJXLVXA.cjs → chunk-TAQMYVO6.cjs} +42 -42
  46. package/dist/{chunk-AUJXLVXA.cjs.map → chunk-TAQMYVO6.cjs.map} +1 -1
  47. package/dist/{chunk-C3FH53AP.cjs → chunk-UFBUQO7Z.cjs} +19 -19
  48. package/dist/{chunk-C3FH53AP.cjs.map → chunk-UFBUQO7Z.cjs.map} +1 -1
  49. package/dist/{chunk-F7YVI54P.js → chunk-W3JZXLJ2.js} +10 -10
  50. package/dist/chunk-W3JZXLJ2.js.map +1 -0
  51. package/dist/{chunk-WZ6TCAYQ.cjs → chunk-XMCVUYKC.cjs} +14 -14
  52. package/dist/chunk-XMCVUYKC.cjs.map +1 -0
  53. package/dist/{chunk-P7PISHM5.js → chunk-Y3NFB6HR.js} +5 -5
  54. package/dist/chunk-Y3NFB6HR.js.map +1 -0
  55. package/dist/{chunk-PBTY7AH5.js → chunk-YZJUHEPZ.js} +95 -95
  56. package/dist/chunk-YZJUHEPZ.js.map +1 -0
  57. package/dist/{chunk-NQQ4NLUT.js → chunk-ZQYFDYWV.js} +4298 -4461
  58. package/dist/chunk-ZQYFDYWV.js.map +1 -0
  59. package/dist/components/case-studies/index.cjs +15 -15
  60. package/dist/components/case-studies/index.cjs.map +1 -1
  61. package/dist/components/case-studies/index.js +9 -9
  62. package/dist/components/case-studies/index.js.map +1 -1
  63. package/dist/components/chat/approval-request-message.d.ts.map +1 -1
  64. package/dist/components/chat/entity-cards/blog-card.d.ts.map +1 -1
  65. package/dist/components/chat/index.cjs +4 -4
  66. package/dist/components/chat/index.js +3 -3
  67. package/dist/components/chat/tool-call-blocks.d.ts.map +1 -1
  68. package/dist/components/chat/utils/compact-card-classes.d.ts +3 -3
  69. package/dist/components/chat/utils/compact-card-classes.d.ts.map +1 -1
  70. package/dist/components/contact/index.cjs +5 -5
  71. package/dist/components/contact/index.js +4 -4
  72. package/dist/components/docs/index.cjs +7 -7
  73. package/dist/components/docs/index.js +6 -6
  74. package/dist/components/embeds/index.cjs +5 -5
  75. package/dist/components/embeds/index.js +4 -4
  76. package/dist/components/faq/index.cjs +6 -6
  77. package/dist/components/faq/index.js +5 -5
  78. package/dist/components/features/index.cjs +4 -4
  79. package/dist/components/features/index.js +3 -3
  80. package/dist/components/help-center-pages/index.cjs +23 -23
  81. package/dist/components/help-center-pages/index.js +14 -14
  82. package/dist/components/index.cjs +262 -256
  83. package/dist/components/index.cjs.map +1 -1
  84. package/dist/components/index.js +117 -111
  85. package/dist/components/index.js.map +1 -1
  86. package/dist/components/msp-display.d.ts.map +1 -1
  87. package/dist/components/navigation/index.cjs +4 -4
  88. package/dist/components/navigation/index.js +3 -3
  89. package/dist/components/navigation/sticky-section-nav.d.ts.map +1 -1
  90. package/dist/components/onboarding-guides/index.cjs +8 -8
  91. package/dist/components/onboarding-guides/index.js +7 -7
  92. package/dist/components/pricing-display.d.ts +9 -9
  93. package/dist/components/related-content/index.cjs +6 -6
  94. package/dist/components/related-content/index.js +5 -5
  95. package/dist/components/tickets/index.cjs +7 -7
  96. package/dist/components/tickets/index.js +6 -6
  97. package/dist/components/toast/index.cjs +5 -5
  98. package/dist/components/toast/index.cjs.map +1 -1
  99. package/dist/components/toast/index.js +5 -5
  100. package/dist/components/toast/index.js.map +1 -1
  101. package/dist/components/ui/bullet-list.d.ts.map +1 -1
  102. package/dist/components/ui/drawer.d.ts +1 -1
  103. package/dist/components/ui/drawer.d.ts.map +1 -1
  104. package/dist/components/ui/file-manager/index.cjs +73 -73
  105. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  106. package/dist/components/ui/file-manager/index.js +24 -24
  107. package/dist/components/ui/file-manager/index.js.map +1 -1
  108. package/dist/components/ui/index.cjs +4 -4
  109. package/dist/components/ui/index.js +3 -3
  110. package/dist/components/ui/markdown-editor.d.ts.map +1 -1
  111. package/dist/components/ui/square-avatar.d.ts +3 -0
  112. package/dist/components/ui/square-avatar.d.ts.map +1 -1
  113. package/dist/components/user-display.d.ts.map +1 -1
  114. package/dist/components/vendor-tag.d.ts.map +1 -1
  115. package/dist/hooks/index.cjs +2 -2
  116. package/dist/hooks/index.js +1 -1
  117. package/dist/index.cjs +4 -4
  118. package/dist/index.js +3 -3
  119. package/dist/tailwind.config.cjs +38 -5
  120. package/dist/tailwind.config.cjs.map +1 -1
  121. package/dist/tailwind.config.js +38 -5
  122. package/dist/tailwind.config.js.map +1 -1
  123. package/package.json +1 -1
  124. package/src/ODS_TOKEN_RULES.md +5 -0
  125. package/src/components/.footer.md +2 -2
  126. package/src/components/announcement-bar.tsx +1 -1
  127. package/src/components/authors/author-detail-view.tsx +3 -3
  128. package/src/components/calendar.tsx +2 -2
  129. package/src/components/case-studies/share-experience-section.tsx +5 -5
  130. package/src/components/categories-cart.tsx +6 -6
  131. package/src/components/category-card.tsx +5 -5
  132. package/src/components/chart.tsx +3 -3
  133. package/src/components/chat/approval-request-message.tsx +2 -5
  134. package/src/components/chat/chat-attachment-bar.tsx +3 -3
  135. package/src/components/chat/chat-message-enhanced.tsx +1 -1
  136. package/src/components/chat/chat-message-list.tsx +1 -1
  137. package/src/components/chat/chat-message-row.tsx +3 -3
  138. package/src/components/chat/chat-quick-action.tsx +1 -1
  139. package/src/components/chat/chat-sidebar-skeleton.tsx +1 -1
  140. package/src/components/chat/chat-sidebar.tsx +6 -6
  141. package/src/components/chat/chat-typing-indicator.tsx +1 -1
  142. package/src/components/chat/context-compaction-display.tsx +1 -1
  143. package/src/components/chat/embeddable-chat.tsx +3 -3
  144. package/src/components/chat/entity-cards/admin-content-card.tsx +5 -5
  145. package/src/components/chat/entity-cards/blog-card.tsx +5 -8
  146. package/src/components/chat/entity-cards/case-study-card.tsx +5 -5
  147. package/src/components/chat/entity-cards/chat-ticket-item.tsx +1 -1
  148. package/src/components/chat/entity-cards/customer-interview-card.tsx +9 -9
  149. package/src/components/chat/entity-cards/data-room-doc-card.tsx +2 -2
  150. package/src/components/chat/entity-cards/dispatch.tsx +1 -1
  151. package/src/components/chat/entity-cards/entity-author-card.tsx +3 -3
  152. package/src/components/chat/entity-cards/entity-portrait-card.tsx +4 -4
  153. package/src/components/chat/entity-cards/generic-entity-card.tsx +3 -3
  154. package/src/components/chat/entity-cards/github-activity-card.tsx +11 -11
  155. package/src/components/chat/entity-cards/hubspot-ticket-card.tsx +5 -5
  156. package/src/components/chat/entity-cards/investor-update-card.tsx +1 -1
  157. package/src/components/chat/entity-cards/onboarding-guide-card.tsx +12 -12
  158. package/src/components/chat/entity-cards/program-card.tsx +12 -12
  159. package/src/components/chat/entity-cards/roadmap-card.tsx +6 -6
  160. package/src/components/chat/entity-cards/roadmap-vote-button.tsx +1 -1
  161. package/src/components/chat/entity-cards/slack-message-card.tsx +4 -4
  162. package/src/components/chat/error-message-display.tsx +2 -2
  163. package/src/components/chat/mingo-info-card.tsx +2 -2
  164. package/src/components/chat/model-display.tsx +7 -7
  165. package/src/components/chat/quick-action-chip.tsx +1 -1
  166. package/src/components/chat/source-action-button.tsx +2 -2
  167. package/src/components/chat/tool-call-blocks.tsx +3 -5
  168. package/src/components/chat/utils/.chip-action-class.md +1 -1
  169. package/src/components/chat/utils/.chip-styles.md +2 -2
  170. package/src/components/chat/utils/chip-action-class.ts +1 -1
  171. package/src/components/chat/utils/chip-styles.ts +2 -2
  172. package/src/components/chat/utils/compact-card-classes.ts +3 -3
  173. package/src/components/command.tsx +3 -3
  174. package/src/components/comment-card.tsx +1 -1
  175. package/src/components/contact/contact-form.tsx +9 -9
  176. package/src/components/context-menu.tsx +5 -5
  177. package/src/components/date-time-picker.tsx +2 -2
  178. package/src/components/docs/doc-viewer.tsx +4 -4
  179. package/src/components/embeds/figma-embed.tsx +2 -2
  180. package/src/components/embeds/file-download-card.tsx +2 -2
  181. package/src/components/embeds/google-sheets-viewer.tsx +1 -1
  182. package/src/components/embeds/linkedin-embed-client.tsx +3 -3
  183. package/src/components/embeds/og-link-preview.tsx +14 -14
  184. package/src/components/embeds/pdf-viewer.tsx +1 -1
  185. package/src/components/embeds/reddit-embed-client.tsx +9 -9
  186. package/src/components/embeds/twitter-embed-client.tsx +9 -9
  187. package/src/components/empty-state.tsx +5 -5
  188. package/src/components/faq/faq-section.tsx +1 -1
  189. package/src/components/features/ai-enrich/AIEnrichSection.tsx +14 -14
  190. package/src/components/features/ai-enrich/AIRequiredBadge.tsx +5 -5
  191. package/src/components/features/ai-enrich/AIStatusIndicator.tsx +8 -8
  192. package/src/components/features/ai-enrich/AIWarningsSection.tsx +4 -4
  193. package/src/components/features/ai-enrich/ConfidenceBadge.tsx +4 -4
  194. package/src/components/features/array-entry-manager.tsx +7 -7
  195. package/src/components/features/auth-providers-list.tsx +1 -1
  196. package/src/components/features/board/ticket-card.tsx +1 -1
  197. package/src/components/features/changelog-manager.tsx +10 -10
  198. package/src/components/features/command-box.tsx +2 -2
  199. package/src/components/features/entity-summary-editor.tsx +3 -3
  200. package/src/components/features/figma-prototype-viewer.tsx +9 -9
  201. package/src/components/features/filters-dropdown.tsx +2 -2
  202. package/src/components/features/highlight-config-section.tsx +3 -3
  203. package/src/components/features/highlight-video-combined-section.tsx +2 -2
  204. package/src/components/features/highlight-video-preview.tsx +2 -2
  205. package/src/components/features/highlight-video-section.tsx +9 -9
  206. package/src/components/features/media-gallery-manager.tsx +14 -14
  207. package/src/components/features/og-editor-preview.tsx +4 -4
  208. package/src/components/features/os-type-badge-group.tsx +1 -1
  209. package/src/components/features/os-type-badge.tsx +2 -2
  210. package/src/components/features/platform-badge.tsx +4 -4
  211. package/src/components/features/policy-configuration-panel.tsx +6 -6
  212. package/src/components/features/provider-button.tsx +1 -1
  213. package/src/components/features/push-button-selector.tsx +21 -21
  214. package/src/components/features/release-media-manager.tsx +16 -16
  215. package/src/components/features/section-selector.tsx +8 -8
  216. package/src/components/features/select-button.tsx +4 -4
  217. package/src/components/features/seo-editor-preview.tsx +20 -20
  218. package/src/components/features/social-links-manager.tsx +3 -3
  219. package/src/components/features/start-with-openframe-button.tsx +3 -3
  220. package/src/components/features/status-filter-component.tsx +1 -1
  221. package/src/components/features/tags-selector.tsx +6 -6
  222. package/src/components/features/transcript-summary-editor.tsx +9 -9
  223. package/src/components/features/video-bites-strip.tsx +1 -1
  224. package/src/components/features/video-ratio-tabs.tsx +1 -1
  225. package/src/components/features/video-source-selector.tsx +7 -7
  226. package/src/components/features/video.tsx +1 -1
  227. package/src/components/features/waitlist-form.tsx +3 -3
  228. package/src/components/filter-chip.tsx +13 -13
  229. package/src/components/footer.tsx +3 -3
  230. package/src/components/form.tsx +2 -2
  231. package/src/components/hero-image-uploader.tsx +3 -3
  232. package/src/components/image-cropper.tsx +2 -2
  233. package/src/components/layout/page-container.tsx +6 -6
  234. package/src/components/layout/page-heading.tsx +1 -1
  235. package/src/components/loading/card-skeleton.tsx +2 -2
  236. package/src/components/loading/category-card-skeleton.tsx +1 -1
  237. package/src/components/loading/margin-report-skeleton.tsx +22 -22
  238. package/src/components/loading/openmsp-heartbeat.tsx +1 -1
  239. package/src/components/loading/page-layout-skeleton.tsx +83 -83
  240. package/src/components/loading/unified-skeleton.tsx +1 -1
  241. package/src/components/loading/users-grid-skeleton.tsx +2 -2
  242. package/src/components/logs-list.tsx +8 -8
  243. package/src/components/media-carousel.tsx +7 -7
  244. package/src/components/metric-value.tsx +2 -2
  245. package/src/components/msp-display.tsx +8 -2
  246. package/src/components/navigation/app-header.tsx +6 -6
  247. package/src/components/navigation/header-organization-filter.tsx +2 -2
  248. package/src/components/navigation/header.tsx +4 -4
  249. package/src/components/navigation/mobile-burger-menu.tsx +7 -7
  250. package/src/components/navigation/mobile-nav-panel.tsx +1 -1
  251. package/src/components/navigation/multi-level-navigation.tsx +7 -7
  252. package/src/components/navigation/navigation-sidebar.tsx +1 -1
  253. package/src/components/navigation/sticky-section-nav.tsx +2 -2
  254. package/src/components/onboarding-guides/onboarding-guides-catalog-view.tsx +4 -4
  255. package/src/components/pagination.tsx +2 -2
  256. package/src/components/persistent-filter-controls.tsx +1 -1
  257. package/src/components/platform/.ShellTypeBadge.md +1 -1
  258. package/src/components/platform/CveLink.tsx +1 -1
  259. package/src/components/platform/ScriptArguments.tsx +2 -2
  260. package/src/components/platform/ScriptInfoSection.tsx +5 -5
  261. package/src/components/platform/ShellTypeBadge.tsx +6 -6
  262. package/src/components/platform/SoftwareInfo.tsx +2 -2
  263. package/src/components/pricing-display.tsx +9 -9
  264. package/src/components/profile/ProfileLoadingSkeleton.tsx +6 -6
  265. package/src/components/related-content/related-content-section.tsx +3 -3
  266. package/src/components/results-count.tsx +1 -1
  267. package/src/components/shared/delivery/delivery-row.tsx +1 -1
  268. package/src/components/shared/delivery/delivery-table.tsx +1 -1
  269. package/src/components/shared/dev-section/dev-section-view.tsx +1 -1
  270. package/src/components/shared/doc-search/doc-search-result-row.tsx +2 -2
  271. package/src/components/shared/legal-document/legal-document-page.tsx +5 -5
  272. package/src/components/shared/onboarding/onboarding-step-card.tsx +1 -1
  273. package/src/components/shared/product-release/product-release-card-skeleton.tsx +3 -3
  274. package/src/components/shared/product-release/product-release-card.tsx +14 -14
  275. package/src/components/shared/product-release/release-detail-page.tsx +16 -16
  276. package/src/components/shared/roadmap/roadmap-grid.tsx +2 -2
  277. package/src/components/smooth-accordion.tsx +1 -1
  278. package/src/components/social-icon-row.tsx +1 -1
  279. package/src/components/sonner.tsx +5 -5
  280. package/src/components/steps.tsx +3 -3
  281. package/src/components/tickets/help-center-create-form.tsx +1 -1
  282. package/src/components/tickets/help-center-list.tsx +1 -1
  283. package/src/components/tickets/ticket-center.tsx +2 -2
  284. package/src/components/tickets/ticket-detail-drawer.tsx +5 -5
  285. package/src/components/tickets/ticket-open-form.tsx +6 -6
  286. package/src/components/ui/.title-content-block.md +1 -1
  287. package/src/components/ui/accordion.tsx +2 -2
  288. package/src/components/ui/actions-menu.tsx +1 -1
  289. package/src/components/ui/alert-dialog.tsx +3 -3
  290. package/src/components/ui/alert.tsx +2 -2
  291. package/src/components/ui/allowed-domains-input.tsx +3 -3
  292. package/src/components/ui/autocomplete.tsx +3 -3
  293. package/src/components/ui/badge.tsx +2 -2
  294. package/src/components/ui/brand-association-card.tsx +2 -2
  295. package/src/components/ui/breadcrumb.tsx +3 -3
  296. package/src/components/ui/bullet-list.tsx +2 -2
  297. package/src/components/ui/button/button.tsx +1 -1
  298. package/src/components/ui/card.tsx +4 -4
  299. package/src/components/ui/checkbox-with-description.tsx +1 -1
  300. package/src/components/ui/chevron-button.tsx +1 -1
  301. package/src/components/ui/content-loader.tsx +16 -16
  302. package/src/components/ui/cursor-pagination.tsx +1 -1
  303. package/src/components/ui/date-picker.tsx +2 -2
  304. package/src/components/ui/device-card-compact.tsx +2 -2
  305. package/src/components/ui/device-card.tsx +3 -3
  306. package/src/components/ui/dialog.tsx +3 -3
  307. package/src/components/ui/drawer.tsx +4 -4
  308. package/src/components/ui/dropdown-menu.tsx +6 -6
  309. package/src/components/ui/error-state.tsx +9 -9
  310. package/src/components/ui/fade-preview.tsx +1 -1
  311. package/src/components/ui/field-wrapper.tsx +1 -1
  312. package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +2 -2
  313. package/src/components/ui/file-manager/file-manager-empty.tsx +3 -3
  314. package/src/components/ui/file-manager/file-manager-skeleton.tsx +4 -4
  315. package/src/components/ui/file-manager/file-manager-table-row.tsx +7 -7
  316. package/src/components/ui/file-manager/file-manager-table.tsx +8 -8
  317. package/src/components/ui/file-upload.tsx +9 -9
  318. package/src/components/ui/filter-pill-row.tsx +1 -1
  319. package/src/components/ui/floating-tooltip.tsx +1 -1
  320. package/src/components/ui/highlight-card.tsx +1 -1
  321. package/src/components/ui/hover-dropdown.tsx +1 -1
  322. package/src/components/ui/image-gallery-modal.tsx +1 -1
  323. package/src/components/ui/info-row.tsx +1 -1
  324. package/src/components/ui/input.tsx +1 -1
  325. package/src/components/ui/label.tsx +5 -5
  326. package/src/components/ui/markdown-editor.tsx +4 -5
  327. package/src/components/ui/menubar.tsx +7 -7
  328. package/src/components/ui/modal-v2.tsx +1 -1
  329. package/src/components/ui/modal.tsx +1 -1
  330. package/src/components/ui/more-actions-menu.tsx +1 -1
  331. package/src/components/ui/navigation-menu.tsx +1 -1
  332. package/src/components/ui/organization-card.tsx +8 -8
  333. package/src/components/ui/page-loader.tsx +6 -6
  334. package/src/components/ui/phone-input.tsx +1 -1
  335. package/src/components/ui/progress-bar.tsx +5 -5
  336. package/src/components/ui/query-report-table/.query-report-table-header.md +1 -1
  337. package/src/components/ui/query-report-table/query-report-table-header.tsx +1 -1
  338. package/src/components/ui/query-report-table/query-report-table-row.tsx +2 -2
  339. package/src/components/ui/query-report-table/query-report-table.tsx +1 -1
  340. package/src/components/ui/release-changelog-section.tsx +2 -2
  341. package/src/components/ui/rich-markdown-renderer.tsx +6 -6
  342. package/src/components/ui/search-input.tsx +7 -7
  343. package/src/components/ui/select.tsx +1 -1
  344. package/src/components/ui/service-card.tsx +4 -4
  345. package/src/components/ui/sheet.tsx +3 -3
  346. package/src/components/ui/simple-markdown-renderer.tsx +4 -4
  347. package/src/components/ui/square-avatar.tsx +9 -5
  348. package/src/components/ui/status-badge.tsx +11 -11
  349. package/src/components/ui/status-indicator.tsx +6 -6
  350. package/src/components/ui/tab-content.tsx +1 -1
  351. package/src/components/ui/tab-navigation.tsx +2 -2
  352. package/src/components/ui/table/table-column-filter-dropdown.tsx +1 -1
  353. package/src/components/ui/table/table-description-cell.tsx +1 -1
  354. package/src/components/ui/table/table-timestamp-cell.tsx +1 -1
  355. package/src/components/ui/table/table.tsx +2 -2
  356. package/src/components/ui/tabs.tsx +1 -1
  357. package/src/components/ui/tag-search-input.tsx +1 -1
  358. package/src/components/ui/tag.tsx +23 -23
  359. package/src/components/ui/tags-input.tsx +2 -2
  360. package/src/components/ui/ticket-status-tag.tsx +1 -1
  361. package/src/components/ui/toaster.tsx +8 -8
  362. package/src/components/ui/toggle.tsx +1 -1
  363. package/src/components/ui/tooltip.tsx +1 -1
  364. package/src/components/user-display.tsx +12 -6
  365. package/src/components/user-summary-stub.tsx +4 -4
  366. package/src/components/vendor-display-button.tsx +2 -2
  367. package/src/components/vendor-icon.tsx +1 -1
  368. package/src/components/vendor-tag.tsx +9 -10
  369. package/src/components/yes-no-display.tsx +3 -3
  370. package/src/styles/ods-colors.css +2 -0
  371. package/tailwind.config.ts +49 -4
  372. package/dist/chunk-2ELBNZJ3.js.map +0 -1
  373. package/dist/chunk-3WJQL4DN.cjs.map +0 -1
  374. package/dist/chunk-4ACSUJ7Q.js.map +0 -1
  375. package/dist/chunk-7WM77CSW.js.map +0 -1
  376. package/dist/chunk-COMBYYQY.js.map +0 -1
  377. package/dist/chunk-EGRZHR7J.js.map +0 -1
  378. package/dist/chunk-F7YVI54P.js.map +0 -1
  379. package/dist/chunk-G5FALXNO.js.map +0 -1
  380. package/dist/chunk-HTVVXVJL.cjs.map +0 -1
  381. package/dist/chunk-IAN7GUIV.cjs.map +0 -1
  382. package/dist/chunk-IMK6RUEC.cjs.map +0 -1
  383. package/dist/chunk-M6QGB6DC.cjs.map +0 -1
  384. package/dist/chunk-N2TJ3HAM.cjs.map +0 -1
  385. package/dist/chunk-NQQ4NLUT.js.map +0 -1
  386. package/dist/chunk-P7PISHM5.js.map +0 -1
  387. package/dist/chunk-PBTY7AH5.js.map +0 -1
  388. package/dist/chunk-R46QEE3R.cjs.map +0 -1
  389. package/dist/chunk-RQQZF6G6.cjs.map +0 -1
  390. package/dist/chunk-RVWC4P3H.js.map +0 -1
  391. package/dist/chunk-VWGF6IFR.cjs.map +0 -1
  392. package/dist/chunk-WAGTZVQN.js.map +0 -1
  393. package/dist/chunk-WZ6TCAYQ.cjs.map +0 -1
  394. package/dist/components/accordion.d.ts +0 -8
  395. package/dist/components/accordion.d.ts.map +0 -1
  396. package/dist/components/alert-dialog.d.ts +0 -21
  397. package/dist/components/alert-dialog.d.ts.map +0 -1
  398. package/dist/components/alert.d.ts +0 -9
  399. package/dist/components/alert.d.ts.map +0 -1
  400. package/dist/components/badge.d.ts +0 -10
  401. package/dist/components/badge.d.ts.map +0 -1
  402. package/dist/components/breadcrumb.d.ts +0 -20
  403. package/dist/components/breadcrumb.d.ts.map +0 -1
  404. package/dist/components/chevron-button.d.ts +0 -14
  405. package/dist/components/chevron-button.d.ts.map +0 -1
  406. package/dist/components/dialog.d.ts +0 -29
  407. package/dist/components/dialog.d.ts.map +0 -1
  408. package/dist/components/dropdown-menu.d.ts +0 -28
  409. package/dist/components/dropdown-menu.d.ts.map +0 -1
  410. package/dist/components/input.d.ts +0 -8
  411. package/dist/components/input.d.ts.map +0 -1
  412. package/dist/components/label.d.ts +0 -6
  413. package/dist/components/label.d.ts.map +0 -1
  414. package/dist/components/menubar.d.ts +0 -34
  415. package/dist/components/menubar.d.ts.map +0 -1
  416. package/dist/components/navigation-menu.d.ts +0 -13
  417. package/dist/components/navigation-menu.d.ts.map +0 -1
  418. package/dist/components/select.d.ts +0 -14
  419. package/dist/components/select.d.ts.map +0 -1
  420. package/dist/components/sidebar.d.ts +0 -67
  421. package/dist/components/sidebar.d.ts.map +0 -1
  422. package/dist/components/square-avatar.d.ts +0 -21
  423. package/dist/components/square-avatar.d.ts.map +0 -1
  424. package/dist/components/table.d.ts +0 -11
  425. package/dist/components/table.d.ts.map +0 -1
  426. package/dist/components/tabs.d.ts +0 -18
  427. package/dist/components/tabs.d.ts.map +0 -1
  428. package/dist/components/toggle.d.ts +0 -13
  429. package/dist/components/toggle.d.ts.map +0 -1
  430. package/src/components/.accordion.md +0 -42
  431. package/src/components/.alert-dialog.md +0 -58
  432. package/src/components/.alert.md +0 -43
  433. package/src/components/.badge.md +0 -40
  434. package/src/components/.breadcrumb.md +0 -54
  435. package/src/components/.chevron-button.md +0 -46
  436. package/src/components/.dialog.md +0 -60
  437. package/src/components/.dropdown-menu.md +0 -51
  438. package/src/components/.input.md +0 -40
  439. package/src/components/.label.md +0 -41
  440. package/src/components/.menubar.md +0 -49
  441. package/src/components/.navigation-menu.md +0 -44
  442. package/src/components/.select.md +0 -54
  443. package/src/components/.sidebar.md +0 -58
  444. package/src/components/.square-avatar.md +0 -42
  445. package/src/components/.table.md +0 -51
  446. package/src/components/.tabs.md +0 -38
  447. package/src/components/.toggle.md +0 -49
  448. package/src/components/accordion.tsx +0 -56
  449. package/src/components/alert-dialog.tsx +0 -141
  450. package/src/components/alert.tsx +0 -59
  451. package/src/components/badge.tsx +0 -30
  452. package/src/components/breadcrumb.tsx +0 -115
  453. package/src/components/chevron-button.tsx +0 -68
  454. package/src/components/dialog.tsx +0 -150
  455. package/src/components/dropdown-menu.tsx +0 -200
  456. package/src/components/input.tsx +0 -39
  457. package/src/components/label.tsx +0 -19
  458. package/src/components/menubar.tsx +0 -236
  459. package/src/components/navigation-menu.tsx +0 -128
  460. package/src/components/select.tsx +0 -160
  461. package/src/components/sidebar.tsx +0 -764
  462. package/src/components/square-avatar.tsx +0 -61
  463. package/src/components/table.tsx +0 -72
  464. package/src/components/tabs.tsx +0 -65
  465. package/src/components/toggle.tsx +0 -45
  466. /package/dist/{chunk-QXYOGJQJ.js.map → chunk-7KDR5P23.js.map} +0 -0
  467. /package/dist/{chunk-PEIR7D25.js.map → chunk-7KNOHGMI.js.map} +0 -0
@@ -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-h6 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-hover 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-surface 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-h5 text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-h5 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-surface 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-h5 text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-h5 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-hover transition-colors cursor-pointer',\n isSelected && 'bg-ods-bg-surface',\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-h6 text-ods-text-primary truncate\" title={file.name}>\n {file.name}\n </span>\n {showPath && file.path && (\n <span className=\"text-h6 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-h6 text-ods-text-secondary\">\n {file.size || ''}\n </div>\n\n <div className=\"w-36 shrink-0 pl-4 text-h6 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-surface rounded-full mb-6\">\n <FolderOpen className=\"h-12 w-12 text-ods-text-tertiary\" />\n </div>\n \n <h3 className=\"text-h4 text-ods-text-primary mb-2\">\n {message}\n </h3>\n \n <p className=\"text-h6 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-surface 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-h5 text-ods-text-secondary\">\n NAME\n </div>\n \n <div className=\"w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary\">\n SIZE\n </div>\n \n <div className=\"w-36 shrink-0 pl-4 text-h5 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"]}
@@ -10,7 +10,7 @@ import {
10
10
  Input,
11
11
  Skeleton,
12
12
  init_button2 as init_button
13
- } from "../../../chunk-4ACSUJ7Q.js";
13
+ } from "../../../chunk-6CITW5BD.js";
14
14
  import {
15
15
  SearchIcon
16
16
  } from "../../../chunk-6U3IUD57.js";
@@ -36,7 +36,7 @@ function FileManagerBreadcrumb({
36
36
  className
37
37
  }) {
38
38
  return /* @__PURE__ */ jsx("nav", { className: cn(
39
- "flex flex-wrap items-center gap-x-1 gap-y-1 text-sm break-words",
39
+ "flex flex-wrap items-center gap-x-1 gap-y-1 text-h6 break-words",
40
40
  className
41
41
  ), children: items.map((item, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
42
42
  index > 0 && /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4 text-ods-text-tertiary flex-shrink-0" }),
@@ -45,7 +45,7 @@ function FileManagerBreadcrumb({
45
45
  {
46
46
  onClick: () => onItemClick?.(item.path),
47
47
  className: cn(
48
- "shrink-0 px-1 py-0.5 rounded hover:bg-ods-bg-secondary transition-colors",
48
+ "shrink-0 px-1 py-0.5 rounded hover:bg-ods-bg-hover transition-colors",
49
49
  "text-ods-text-primary hover:text-ods-accent text-left break-all",
50
50
  index === items.length - 1 && "font-medium"
51
51
  ),
@@ -303,8 +303,8 @@ function FileManagerTableRow({
303
303
  {
304
304
  className: cn(
305
305
  "bg-ods-card group flex items-center h-16 px-4 border-ods-border",
306
- "hover:bg-ods-bg-secondary transition-colors cursor-pointer",
307
- isSelected && "bg-ods-bg-secondary",
306
+ "hover:bg-ods-bg-hover transition-colors cursor-pointer",
307
+ isSelected && "bg-ods-bg-surface",
308
308
  className
309
309
  ),
310
310
  onClick: handleRowClick,
@@ -332,12 +332,12 @@ function FileManagerTableRow({
332
332
  }
333
333
  ),
334
334
  /* @__PURE__ */ jsxs4("div", { className: "flex flex-col min-w-0", children: [
335
- /* @__PURE__ */ jsx5("span", { className: "text-sm text-ods-text-primary truncate", title: file.name, children: file.name }),
336
- showPath && file.path && /* @__PURE__ */ jsx5("span", { className: "text-xs text-ods-text-secondary truncate", title: file.path, children: file.path })
335
+ /* @__PURE__ */ jsx5("span", { className: "text-h6 text-ods-text-primary truncate", title: file.name, children: file.name }),
336
+ showPath && file.path && /* @__PURE__ */ jsx5("span", { className: "text-h6 text-ods-text-secondary truncate", title: file.path, children: file.path })
337
337
  ] })
338
338
  ] }),
339
- /* @__PURE__ */ jsx5("div", { className: "w-24 shrink-0 pr-4 text-sm text-ods-text-secondary", children: file.size || "" }),
340
- /* @__PURE__ */ jsx5("div", { className: "w-36 shrink-0 pl-4 text-sm text-ods-text-secondary", children: file.modified }),
339
+ /* @__PURE__ */ jsx5("div", { className: "w-24 shrink-0 pr-4 text-h6 text-ods-text-secondary", children: file.size || "" }),
340
+ /* @__PURE__ */ jsx5("div", { className: "w-36 shrink-0 pl-4 text-h6 text-ods-text-secondary", children: file.modified }),
341
341
  /* @__PURE__ */ jsxs4("div", { className: "w-48 shrink-0 pl-4 flex items-center justify-end gap-1", "data-no-row-click": true, children: [
342
342
  /* @__PURE__ */ jsx5(
343
343
  FileManagerContextMenu,
@@ -394,9 +394,9 @@ function FileManagerEmpty({
394
394
  "flex flex-col items-center justify-center py-20 px-4",
395
395
  className
396
396
  ), children: [
397
- /* @__PURE__ */ jsx6("div", { className: "p-4 bg-ods-bg-secondary rounded-full mb-6", children: /* @__PURE__ */ jsx6(FolderOpen, { className: "h-12 w-12 text-ods-text-tertiary" }) }),
398
- /* @__PURE__ */ jsx6("h3", { className: "text-lg font-medium text-ods-text-primary mb-2", children: message }),
399
- /* @__PURE__ */ jsx6("p", { className: "text-sm text-ods-text-secondary text-center max-w-md mb-6", children: description }),
397
+ /* @__PURE__ */ jsx6("div", { className: "p-4 bg-ods-bg-surface rounded-full mb-6", children: /* @__PURE__ */ jsx6(FolderOpen, { className: "h-12 w-12 text-ods-text-tertiary" }) }),
398
+ /* @__PURE__ */ jsx6("h3", { className: "text-h4 text-ods-text-primary mb-2", children: message }),
399
+ /* @__PURE__ */ jsx6("p", { className: "text-h6 text-ods-text-secondary text-center max-w-md mb-6", children: description }),
400
400
  action && /* @__PURE__ */ jsx6(
401
401
  Button,
402
402
  {
@@ -466,11 +466,11 @@ function FileManagerTable({
466
466
  if (loading) {
467
467
  const skeletonRows = 8;
468
468
  return /* @__PURE__ */ jsxs6("div", { className: cn("bg-ods-bg border border-ods-border rounded-lg flex flex-col", className), children: [
469
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
469
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center h-12 px-4 bg-ods-bg-surface border-b border-ods-border rounded-t-lg", children: [
470
470
  showCheckboxes && /* @__PURE__ */ jsx7("div", { className: "mr-4", children: /* @__PURE__ */ jsx7(Skeleton, { className: "h-5 w-5 rounded" }) }),
471
- /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
472
- /* @__PURE__ */ jsx7("div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
473
- /* @__PURE__ */ jsx7("div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
471
+ /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-3 flex-1 min-w-0 text-h5 text-ods-text-secondary", children: "NAME" }),
472
+ /* @__PURE__ */ jsx7("div", { className: "w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary", children: "SIZE" }),
473
+ /* @__PURE__ */ jsx7("div", { className: "w-36 shrink-0 pl-4 text-h5 text-ods-text-secondary", children: "EDITED" }),
474
474
  /* @__PURE__ */ jsx7("div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
475
475
  ] }),
476
476
  /* @__PURE__ */ jsx7("div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto", children: Array.from({ length: skeletonRows }).map((_, idx) => /* @__PURE__ */ jsxs6("div", { className: "bg-ods-card group flex items-center h-16 px-4 border-ods-border", children: [
@@ -501,7 +501,7 @@ function FileManagerTable({
501
501
  className: cn("bg-ods-bg border border-ods-border rounded-lg flex flex-col", className),
502
502
  style: tableHeight ? { height: `${tableHeight}px` } : void 0,
503
503
  children: [
504
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
504
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center h-12 px-4 bg-ods-bg-surface border-b border-ods-border rounded-t-lg", children: [
505
505
  showCheckboxes && /* @__PURE__ */ jsx7("div", { className: "mr-4", children: /* @__PURE__ */ jsx7(
506
506
  Checkbox,
507
507
  {
@@ -510,9 +510,9 @@ function FileManagerTable({
510
510
  className: "h-5 w-5"
511
511
  }
512
512
  ) }),
513
- /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
514
- /* @__PURE__ */ jsx7("div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
515
- /* @__PURE__ */ jsx7("div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
513
+ /* @__PURE__ */ jsx7("div", { className: "flex items-center gap-3 flex-1 min-w-0 text-h5 text-ods-text-secondary", children: "NAME" }),
514
+ /* @__PURE__ */ jsx7("div", { className: "w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary", children: "SIZE" }),
515
+ /* @__PURE__ */ jsx7("div", { className: "w-36 shrink-0 pl-4 text-h5 text-ods-text-secondary", children: "EDITED" }),
516
516
  /* @__PURE__ */ jsx7("div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
517
517
  ] }),
518
518
  /* @__PURE__ */ jsx7("div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto", children: files.map((file) => /* @__PURE__ */ jsx7(
@@ -722,11 +722,11 @@ function FileManagerSkeleton({
722
722
  ] }),
723
723
  showSearch && /* @__PURE__ */ jsx9(Skeleton, { className: "h-10 w-full rounded-lg" }),
724
724
  /* @__PURE__ */ jsx9("div", { className: "flex-1 min-h-0", children: /* @__PURE__ */ jsxs8("div", { className: "bg-ods-bg border border-ods-border rounded-lg flex flex-col", children: [
725
- /* @__PURE__ */ jsxs8("div", { className: "flex items-center h-12 px-4 bg-ods-bg-secondary border-b border-ods-border rounded-t-lg", children: [
725
+ /* @__PURE__ */ jsxs8("div", { className: "flex items-center h-12 px-4 bg-ods-bg-surface border-b border-ods-border rounded-t-lg", children: [
726
726
  /* @__PURE__ */ jsx9("div", { className: "mr-4", children: /* @__PURE__ */ jsx9(Skeleton, { className: "h-5 w-5 rounded" }) }),
727
- /* @__PURE__ */ jsx9("div", { className: "flex items-center gap-3 flex-1 min-w-0 text-sm font-medium text-ods-text-secondary", children: "NAME" }),
728
- /* @__PURE__ */ jsx9("div", { className: "w-24 shrink-0 pr-4 text-sm font-medium text-ods-text-secondary", children: "SIZE" }),
729
- /* @__PURE__ */ jsx9("div", { className: "w-36 shrink-0 pl-4 text-sm font-medium text-ods-text-secondary", children: "EDITED" }),
727
+ /* @__PURE__ */ jsx9("div", { className: "flex items-center gap-3 flex-1 min-w-0 text-h5 text-ods-text-secondary", children: "NAME" }),
728
+ /* @__PURE__ */ jsx9("div", { className: "w-24 shrink-0 pr-4 text-h5 text-ods-text-secondary", children: "SIZE" }),
729
+ /* @__PURE__ */ jsx9("div", { className: "w-36 shrink-0 pl-4 text-h5 text-ods-text-secondary", children: "EDITED" }),
730
730
  /* @__PURE__ */ jsx9("div", { className: "w-48 shrink-0 pl-4 flex justify-end" })
731
731
  ] }),
732
732
  /* @__PURE__ */ jsx9("div", { className: "divide-y divide-ods-border rounded-b-lg flex-1 overflow-auto min-h-0", children: rowPlaceholders.map((_, idx) => /* @__PURE__ */ jsxs8("div", { className: "bg-ods-card flex items-center h-16 px-4 border-ods-border", children: [