xertica-ui 2.1.3 → 2.1.4

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 (404) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/assets/xertica-logo.svg +37 -37
  4. package/assets/xertica-x-logo.svg +20 -20
  5. package/components/assistant/index.ts +6 -6
  6. package/components/assistant/xertica-assistant/parts/AssistantCollapsedView.tsx +97 -0
  7. package/components/assistant/xertica-assistant/parts/AssistantConversationList.tsx +104 -0
  8. package/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.tsx +81 -0
  9. package/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.tsx +86 -0
  10. package/components/assistant/xertica-assistant/parts/AssistantHeader.tsx +77 -0
  11. package/components/assistant/xertica-assistant/parts/AssistantMessageBubble.tsx +573 -0
  12. package/components/assistant/xertica-assistant/parts/AssistantTabBar.tsx +65 -0
  13. package/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.tsx +41 -0
  14. package/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.tsx +98 -0
  15. package/components/assistant/xertica-assistant/parts/index.ts +16 -0
  16. package/components/assistant/xertica-assistant/types.ts +139 -0
  17. package/components/assistant/xertica-assistant/use-assistant.ts +5 -10
  18. package/components/assistant/xertica-assistant/xertica-assistant.tsx +125 -1096
  19. package/components/blocks/card-patterns/ActivityCard.tsx +72 -72
  20. package/components/blocks/card-patterns/FeatureCard.tsx +100 -100
  21. package/components/blocks/card-patterns/NotificationCard.tsx +127 -127
  22. package/components/blocks/card-patterns/ProfileCard.tsx +84 -84
  23. package/components/blocks/card-patterns/ProjectCard.tsx +89 -89
  24. package/components/blocks/card-patterns/QuickActionCard.tsx +62 -62
  25. package/components/blocks/card-patterns/card-patterns.stories.tsx +445 -445
  26. package/components/blocks/card-patterns/index.ts +17 -17
  27. package/components/blocks/index.ts +1 -1
  28. package/components/brand/index.ts +6 -6
  29. package/components/brand/theme-toggle/ThemeToggle.tsx +8 -27
  30. package/components/brand/xertica-provider/XerticaProvider.tsx +48 -48
  31. package/components/brand/xertica-provider/xertica-provider.mdx +61 -61
  32. package/components/brand/xertica-provider/xertica-provider.test.tsx +52 -52
  33. package/components/examples/MapExamples.tsx +282 -282
  34. package/components/examples/SimpleFilterableMap.tsx +191 -191
  35. package/components/examples/index.ts +51 -51
  36. package/components/figma/ImageWithFallback.tsx +27 -27
  37. package/components/hooks/index.ts +10 -7
  38. package/components/hooks/use-layout-shortcuts.ts +46 -0
  39. package/components/index.ts +5 -5
  40. package/components/layout/header/header.test.tsx +8 -8
  41. package/components/layout/header/header.tsx +4 -4
  42. package/components/layout/index.ts +2 -2
  43. package/components/layout/sidebar/sidebar.mdx +1 -1
  44. package/components/layout/sidebar/sidebar.test.tsx +11 -11
  45. package/components/layout/sidebar/sidebar.tsx +1 -31
  46. package/components/layout/sidebar/use-sidebar.ts +2 -11
  47. package/components/media/FloatingMediaWrapper.tsx +11 -11
  48. package/components/media/audio-player/AudioPlayer.tsx +140 -215
  49. package/components/media/audio-player/use-audio-player.ts +298 -0
  50. package/components/media/index.ts +3 -3
  51. package/components/pages/home-content/HomeContent.tsx +7 -7
  52. package/components/pages/home-content/home-content.mdx +62 -62
  53. package/components/pages/home-page/HomePage.stories.tsx +39 -39
  54. package/components/pages/home-page/home-page.mdx +53 -53
  55. package/components/pages/index.ts +8 -8
  56. package/components/pages/template-content/template-content.mdx +61 -61
  57. package/components/pages/template-page/TemplatePage.stories.tsx +39 -39
  58. package/components/pages/template-page/template-page.mdx +53 -53
  59. package/components/public-api-smoke.test.tsx +52 -52
  60. package/components/shared/CustomTooltipContent.tsx +52 -0
  61. package/components/shared/assistant-utils.ts +43 -43
  62. package/components/ui/accordion/accordion.mdx +8 -8
  63. package/components/ui/accordion/accordion.stories.tsx +53 -53
  64. package/components/ui/alert/alert.mdx +8 -8
  65. package/components/ui/alert-dialog/alert-dialog.mdx +8 -8
  66. package/components/ui/aspect-ratio/aspect-ratio.mdx +8 -8
  67. package/components/ui/assistant-chart/assistant-chart.mdx +8 -8
  68. package/components/ui/avatar/avatar.mdx +8 -8
  69. package/components/ui/badge/badge.mdx +8 -8
  70. package/components/ui/badge/badge.tsx +9 -9
  71. package/components/ui/breadcrumb/breadcrumb.mdx +8 -8
  72. package/components/ui/button/button.mdx +8 -8
  73. package/components/ui/calendar/calendar.mdx +8 -8
  74. package/components/ui/calendar/calendar.tsx +258 -258
  75. package/components/ui/card/card.mdx +8 -8
  76. package/components/ui/card/card.stories.tsx +245 -245
  77. package/components/ui/carousel/carousel.mdx +8 -8
  78. package/components/ui/chart/chart.mdx +8 -8
  79. package/components/ui/chart/chart.stories.tsx +1303 -1303
  80. package/components/ui/chart/chart.test.tsx +154 -154
  81. package/components/ui/chart/chart.tsx +2367 -2367
  82. package/components/ui/checkbox/checkbox.mdx +8 -8
  83. package/components/ui/checkbox/checkbox.stories.tsx +20 -20
  84. package/components/ui/collapsible/collapsible.mdx +8 -8
  85. package/components/ui/command/command.mdx +8 -8
  86. package/components/ui/context-menu/context-menu.mdx +8 -8
  87. package/components/ui/dialog/dialog.mdx +8 -8
  88. package/components/ui/drawer/drawer.mdx +8 -8
  89. package/components/ui/dropdown-menu/dropdown-menu.mdx +8 -8
  90. package/components/ui/empty/empty.mdx +8 -8
  91. package/components/ui/file-upload/file-upload.mdx +8 -8
  92. package/components/ui/google-maps-loader/google-maps-loader.tsx +2 -2
  93. package/components/ui/hover-card/hover-card.mdx +8 -8
  94. package/components/ui/input/input.mdx +8 -8
  95. package/components/ui/input-otp/input-otp.mdx +8 -8
  96. package/components/ui/input-otp/input-otp.stories.tsx +6 -6
  97. package/components/ui/label/label.mdx +8 -8
  98. package/components/ui/map/map.mdx +8 -8
  99. package/components/ui/map/map.stories.tsx +51 -51
  100. package/components/ui/map/map.tsx +2 -2
  101. package/components/ui/menubar/menubar.mdx +8 -8
  102. package/components/ui/navigation-menu/navigation-menu.mdx +8 -8
  103. package/components/ui/notification-badge/notification-badge.mdx +8 -8
  104. package/components/ui/pagination/pagination.mdx +8 -8
  105. package/components/ui/popover/popover.mdx +8 -8
  106. package/components/ui/progress/progress.mdx +8 -8
  107. package/components/ui/progress/progress.tsx +68 -68
  108. package/components/ui/radio-group/radio-group.mdx +8 -8
  109. package/components/ui/rating/rating.mdx +8 -8
  110. package/components/ui/resizable/resizable.mdx +8 -8
  111. package/components/ui/route-map/route-map.mdx +8 -8
  112. package/components/ui/route-map/route-map.stories.tsx +54 -54
  113. package/components/ui/route-map/route-map.tsx +2 -2
  114. package/components/ui/scroll-area/scroll-area.mdx +8 -8
  115. package/components/ui/search/search.mdx +8 -8
  116. package/components/ui/select/select.mdx +8 -8
  117. package/components/ui/select/select.stories.tsx +9 -9
  118. package/components/ui/separator/separator.mdx +8 -8
  119. package/components/ui/sheet/sheet.mdx +8 -8
  120. package/components/ui/sheet/sheet.stories.tsx +95 -95
  121. package/components/ui/simple-map/simple-map.mdx +8 -8
  122. package/components/ui/simple-map/simple-map.stories.tsx +48 -48
  123. package/components/ui/skeleton/skeleton.mdx +8 -8
  124. package/components/ui/slider/slider.mdx +8 -8
  125. package/components/ui/sonner/sonner.mdx +8 -8
  126. package/components/ui/stats-card/stats-card.mdx +8 -8
  127. package/components/ui/stepper/stepper.mdx +8 -8
  128. package/components/ui/switch/switch.mdx +8 -8
  129. package/components/ui/switch/switch.stories.tsx +20 -20
  130. package/components/ui/table/table.mdx +8 -8
  131. package/components/ui/tabs/tabs.mdx +8 -8
  132. package/components/ui/tabs/tabs.stories.tsx +26 -26
  133. package/components/ui/textarea/textarea.mdx +8 -8
  134. package/components/ui/timeline/timeline.mdx +8 -8
  135. package/components/ui/toggle/toggle.mdx +8 -8
  136. package/components/ui/toggle-group/toggle-group.mdx +8 -8
  137. package/components/ui/tooltip/tooltip.mdx +8 -8
  138. package/components/ui/tree-view/tree-view.mdx +8 -8
  139. package/components.json +1512 -1512
  140. package/contexts/ApiKeyContext.tsx +72 -72
  141. package/contexts/AssistenteContext.tsx +17 -54
  142. package/contexts/BrandColorsContext.tsx +32 -43
  143. package/contexts/LanguageContext.tsx +13 -13
  144. package/contexts/LayoutContext.test.tsx +11 -11
  145. package/contexts/LayoutContext.tsx +24 -50
  146. package/contexts/ThemeContext.tsx +26 -26
  147. package/contexts/theme-data.ts +4 -4
  148. package/dist/{AssistantChart-DoZCyS5r.cjs → AssistantChart-9w31gdAb.cjs} +4 -4
  149. package/dist/{AssistantChart-CldVCVDe.cjs → AssistantChart-BAudAfne.cjs} +5 -5
  150. package/dist/{use-mobile-DRB3BQgD.cjs → AssistantChart-BAx9VQvb.cjs} +209 -1070
  151. package/dist/{AssistantChart-Cu3m7RBo.js → AssistantChart-BP8upjMk.js} +5 -5
  152. package/dist/{use-mobile-BvYdisLP.js → AssistantChart-CVko2A1W.js} +171 -1025
  153. package/dist/{AssistantChart-C_hwFRRr.js → AssistantChart-CVzmmhx4.js} +4 -4
  154. package/dist/{AudioPlayer-C12BjQBV.cjs → AudioPlayer-1ypwE2Wh.cjs} +126 -187
  155. package/dist/{AudioPlayer-DcFKRJE_.js → AudioPlayer-DuKXrCfy.js} +80 -141
  156. package/dist/CustomTooltipContent-DHjkY0ww.js +40 -0
  157. package/dist/CustomTooltipContent-c_K-DWRr.cjs +56 -0
  158. package/dist/{ThemeContext-BoH4NLfN.js → LanguageContext-BwhwC3G2.js} +27 -104
  159. package/dist/{ThemeContext-r69W20Xg.cjs → LanguageContext-DvUt5jBg.cjs} +27 -104
  160. package/dist/{LayoutContext-BvK-ggDa.cjs → LayoutContext-BDmcZfMH.cjs} +8 -20
  161. package/dist/{LayoutContext-BAql6ZRY.js → LayoutContext-dbQvdC4O.js} +8 -20
  162. package/dist/{ThemeContext-C2EwAPDt.js → ThemeContext-BbBNoFTG.js} +2 -2
  163. package/dist/{ThemeContext-vTjumZeM.cjs → ThemeContext-Cmr8Ex8H.cjs} +2 -2
  164. package/dist/ThemeContext-RTy1m2Uq.js +82 -0
  165. package/dist/ThemeContext-bSzuOit2.cjs +81 -0
  166. package/dist/VerifyEmailPage-BE-L9mB7.js +2828 -0
  167. package/dist/{VerifyEmailPage-Cwi3kbol.cjs → VerifyEmailPage-Bae2cBXT.cjs} +7 -7
  168. package/dist/VerifyEmailPage-CR7kb5df.cjs +2827 -0
  169. package/dist/{VerifyEmailPage-C0c2e5n0.js → VerifyEmailPage-C_ihbcth.js} +6 -6
  170. package/dist/VerifyEmailPage-CbgjOF0v.js +2828 -0
  171. package/dist/{VerifyEmailPage-DvMLZgFt.js → VerifyEmailPage-CdYPSJoO.js} +1 -1
  172. package/dist/{VerifyEmailPage-CYXtbKi3.cjs → VerifyEmailPage-DMBh4NM9.cjs} +1 -1
  173. package/dist/VerifyEmailPage-Dt7zgA4w.cjs +2827 -0
  174. package/dist/{XerticaProvider-CEoWMTxu.js → XerticaProvider-BITjgC5p.js} +2 -2
  175. package/dist/{XerticaProvider-CllrbMEJ.cjs → XerticaProvider-By8q3Roe.cjs} +2 -2
  176. package/dist/{XerticaProvider-cI9hSs27.cjs → XerticaProvider-CW9hpCdF.cjs} +9 -8
  177. package/dist/{XerticaProvider-DDuiIcKo.js → XerticaProvider-siSt9uG2.js} +5 -4
  178. package/dist/{LanguageSelector-D6uacAIM.cjs → XerticaXLogo-D8jf0SNv.cjs} +86 -102
  179. package/dist/{LanguageSelector-B5YfbHra.js → XerticaXLogo-fAJMy3H4.js} +87 -103
  180. package/dist/{alert-dialog-s-vmNkJ_.js → alert-dialog-iDe5VE5o.js} +3 -3
  181. package/dist/{alert-dialog-DSKByiKZ.cjs → alert-dialog-yckpaOpy.cjs} +3 -3
  182. package/dist/assistant.cjs.js +1 -1
  183. package/dist/assistant.es.js +1 -1
  184. package/dist/brand.cjs.js +2 -2
  185. package/dist/brand.es.js +2 -2
  186. package/dist/components/assistant/xertica-assistant/parts/AssistantCollapsedView.d.ts +13 -0
  187. package/dist/components/assistant/xertica-assistant/parts/AssistantConversationList.d.ts +16 -0
  188. package/dist/components/assistant/xertica-assistant/parts/AssistantDocumentEditor.d.ts +17 -0
  189. package/dist/components/assistant/xertica-assistant/parts/AssistantFeedbackDialog.d.ts +19 -0
  190. package/dist/components/assistant/xertica-assistant/parts/AssistantHeader.d.ts +11 -0
  191. package/dist/components/assistant/xertica-assistant/parts/AssistantMessageBubble.d.ts +29 -0
  192. package/dist/components/assistant/xertica-assistant/parts/AssistantTabBar.d.ts +13 -0
  193. package/dist/components/assistant/xertica-assistant/parts/AssistantTypingIndicator.d.ts +4 -0
  194. package/dist/components/assistant/xertica-assistant/parts/AssistantWelcomeScreen.d.ts +17 -0
  195. package/dist/components/assistant/xertica-assistant/parts/index.d.ts +16 -0
  196. package/dist/components/assistant/xertica-assistant/types.d.ts +106 -0
  197. package/dist/components/assistant/xertica-assistant/use-assistant.d.ts +1 -2
  198. package/dist/components/assistant/xertica-assistant/xertica-assistant.d.ts +2 -96
  199. package/dist/components/hooks/index.d.ts +3 -0
  200. package/dist/components/hooks/use-layout-shortcuts.d.ts +22 -0
  201. package/dist/components/media/audio-player/AudioPlayer.d.ts +4 -1
  202. package/dist/components/media/audio-player/use-audio-player.d.ts +72 -0
  203. package/dist/components/shared/CustomTooltipContent.d.ts +20 -0
  204. package/dist/components/ui/alert/alert.d.ts +1 -1
  205. package/dist/components/ui/badge/badge.d.ts +1 -1
  206. package/dist/components/ui/button/button.d.ts +2 -2
  207. package/dist/contexts/AssistenteContext.d.ts +10 -49
  208. package/dist/{google-maps-loader-Y-QkD-Li.cjs → google-maps-loader-BqsYL48U.cjs} +0 -5
  209. package/dist/{google-maps-loader-CTYySAun.js → google-maps-loader-t2IlYBzw.js} +0 -4
  210. package/dist/hooks.cjs.js +30 -10
  211. package/dist/hooks.es.js +25 -4
  212. package/dist/index-CkTUgOwX.js +8 -0
  213. package/dist/{index-COtD8bRW.cjs → index-D3RLKRAs.cjs} +1 -1
  214. package/dist/index.cjs.js +11 -11
  215. package/dist/index.es.js +11 -11
  216. package/dist/index.umd.js +454 -1027
  217. package/dist/layout.cjs.js +3 -10
  218. package/dist/layout.es.js +3 -10
  219. package/dist/media.cjs.js +1 -1
  220. package/dist/media.es.js +1 -1
  221. package/dist/pages.cjs.js +1 -1
  222. package/dist/pages.es.js +1 -1
  223. package/dist/{sidebar-CK_0ZQHj.cjs → sidebar-CVUGHOS_.cjs} +10 -57
  224. package/dist/{sidebar-CUuOvYhK.js → sidebar-CmvwjnVb.js} +10 -40
  225. package/dist/ui.cjs.js +4 -4
  226. package/dist/ui.es.js +4 -4
  227. package/dist/use-audio-player-Bkh23vQ3.js +177 -0
  228. package/dist/use-audio-player-Dn1NR9xN.cjs +176 -0
  229. package/dist/utils/color-utils.d.ts +51 -0
  230. package/dist/{xertica-assistant-dyP7KHM5.cjs → xertica-assistant-B1IaHXnB.cjs} +388 -529
  231. package/dist/xertica-assistant-BMqdyRVi.js +2082 -0
  232. package/dist/xertica-assistant-Bj3vBCq_.cjs +2081 -0
  233. package/dist/{xertica-assistant-yX1CFBBo.js → xertica-assistant-DPsESB6t.js} +390 -531
  234. package/dist/{CodeBlock-BgfYL_rD.cjs → xertica-assistant-Qp3ydksa.cjs} +51 -263
  235. package/dist/{CodeBlock-DnYNI8rQ.js → xertica-assistant-gnCJdcZY.js} +7 -219
  236. package/dist/xertica-ui.css +2 -2
  237. package/docs/architecture-improvements.md +463 -0
  238. package/docs/architecture.md +1 -1
  239. package/docs/components/assistant-chart.md +1 -1
  240. package/docs/components/audio-player.md +46 -0
  241. package/docs/components/branding.md +251 -0
  242. package/docs/components/calendar.md +154 -154
  243. package/docs/components/card-patterns.md +337 -337
  244. package/docs/components/card.md +235 -235
  245. package/docs/components/code-block.md +108 -0
  246. package/docs/components/formatted-document.md +113 -0
  247. package/docs/components/hooks.md +430 -0
  248. package/docs/components/image-with-fallback.md +106 -0
  249. package/docs/components/map-layers.md +140 -0
  250. package/docs/components/map.md +84 -84
  251. package/docs/components/modern-chat-input.md +163 -0
  252. package/docs/components/pages.md +351 -0
  253. package/docs/components/xertica-provider.md +24 -24
  254. package/docs/decision-tree.md +287 -287
  255. package/docs/doc-audit.md +223 -0
  256. package/docs/getting-started.md +154 -0
  257. package/docs/llms.md +25 -5
  258. package/docs/patterns/detail-page.md +276 -0
  259. package/docs/patterns/settings.md +346 -0
  260. package/docs/patterns/wizard.md +217 -0
  261. package/guidelines/Guidelines.md +252 -252
  262. package/hooks/useTheme.ts +3 -3
  263. package/imports/Podcast.tsx +388 -388
  264. package/imports/XerticaAi.tsx +45 -45
  265. package/imports/XerticaX.tsx +19 -19
  266. package/imports/svg-aueiaqngck.ts +11 -11
  267. package/imports/svg-v9krss1ozd.ts +16 -16
  268. package/imports/svg-vhrdofe3qe.ts +5 -5
  269. package/llms-compact.txt +327 -327
  270. package/llms.txt +160 -160
  271. package/package.json +203 -203
  272. package/styles/xertica/app-overrides/chat.css +61 -61
  273. package/styles/xertica/app-overrides/scrollbar.css +33 -33
  274. package/styles/xertica/integrations/google-maps.css +76 -76
  275. package/styles/xertica/integrations/sonner.css +73 -73
  276. package/templates/CLAUDE.md +182 -182
  277. package/templates/guidelines/Guidelines.md +325 -325
  278. package/templates/package.json +2 -2
  279. package/templates/src/features/auth/index.ts +4 -4
  280. package/templates/src/features/auth/ui/AuthPageShell.tsx +34 -34
  281. package/templates/src/features/auth/ui/ForgotPasswordContent.tsx +70 -70
  282. package/templates/src/features/auth/ui/LoginContent.tsx +90 -90
  283. package/templates/src/features/auth/ui/ResetPasswordContent.tsx +151 -151
  284. package/templates/src/features/auth/ui/SocialLoginButtons.tsx +59 -59
  285. package/templates/src/features/auth/ui/VerifyEmailContent.tsx +82 -82
  286. package/templates/src/features/home/index.ts +1 -1
  287. package/templates/src/features/home/ui/HomeContent.tsx +100 -100
  288. package/templates/src/features/template/index.ts +5 -5
  289. package/templates/src/features/template/ui/CrudTemplate.tsx +3 -3
  290. package/templates/src/features/template/ui/DashboardTemplate.tsx +3 -3
  291. package/templates/src/features/template/ui/FormTemplate.tsx +120 -120
  292. package/templates/src/features/template/ui/LoginTemplate.tsx +3 -3
  293. package/templates/src/pages/AssistantPage.tsx +328 -328
  294. package/templates/src/pages/ForgotPasswordPage.tsx +6 -6
  295. package/templates/src/pages/HomePage.tsx +57 -57
  296. package/templates/src/pages/LoginPage.tsx +10 -10
  297. package/templates/src/pages/ResetPasswordPage.tsx +6 -6
  298. package/templates/src/pages/TemplatePage.tsx +30 -30
  299. package/templates/src/pages/VerifyEmailPage.tsx +6 -6
  300. package/templates/src/shared/config/navigation.ts +20 -20
  301. package/templates/src/shared/lib/auth.ts +20 -20
  302. package/templates/src/shared/types/auth.ts +3 -3
  303. package/templates/tsconfig.json +5 -5
  304. package/utils/color-utils.ts +72 -0
  305. package/utils/gemini.ts +140 -140
  306. package/dist/AudioPlayer-B1lt5cPl.cjs +0 -989
  307. package/dist/AudioPlayer-BZ7bibzU.cjs +0 -982
  308. package/dist/AudioPlayer-DMcG_c7L.js +0 -990
  309. package/dist/AudioPlayer-e8LfNoqO.js +0 -983
  310. package/dist/CodeBlock-7TTgmdGG.cjs +0 -2094
  311. package/dist/CodeBlock-BeSt1h5P.js +0 -2078
  312. package/dist/CodeBlock-BlcqlA9M.cjs +0 -2094
  313. package/dist/CodeBlock-Bnmeu5ez.cjs +0 -2094
  314. package/dist/CodeBlock-BtfPlbAI.js +0 -2078
  315. package/dist/CodeBlock-CIySIuYr.js +0 -2078
  316. package/dist/CodeBlock-CuPtUM-7.cjs +0 -2094
  317. package/dist/CodeBlock-D6ffWXgc.js +0 -2078
  318. package/dist/CodeBlock-D8dcwbit.cjs +0 -2094
  319. package/dist/CodeBlock-DMZrFnlw.cjs +0 -2094
  320. package/dist/CodeBlock-DlBehYN8.js +0 -2078
  321. package/dist/CodeBlock-DvKWbSnE.cjs +0 -2094
  322. package/dist/CodeBlock-DwMCfkFY.js +0 -2078
  323. package/dist/CodeBlock-Dy6CNYyj.js +0 -2078
  324. package/dist/CodeBlock-U1pPOQI7.cjs +0 -2094
  325. package/dist/CodeBlock-f_GpNhEB.js +0 -2078
  326. package/dist/CodeBlock-oB6u8nI1.js +0 -2078
  327. package/dist/CodeBlock-tZC31B73.cjs +0 -2094
  328. package/dist/ImageWithFallback-CGtidP6B.cjs +0 -4542
  329. package/dist/ImageWithFallback-lsg3pdFg.js +0 -4508
  330. package/dist/XerticaOrbe-KL1RBHzw.cjs +0 -1354
  331. package/dist/XerticaOrbe-zwS1p2a8.js +0 -1355
  332. package/dist/XerticaProvider-6btlAlzc.js +0 -17
  333. package/dist/XerticaProvider-BNoNOxQ5.cjs +0 -16
  334. package/dist/XerticaProvider-BlY2limY.cjs +0 -38
  335. package/dist/XerticaProvider-hSwhNQex.js +0 -39
  336. package/dist/breadcrumb-CqJ7bHY5.js +0 -161
  337. package/dist/breadcrumb-m9Hb2_XN.cjs +0 -177
  338. package/dist/components/blocks/audio-player/AudioPlayer.d.ts +0 -35
  339. package/dist/components/blocks/audio-player/index.d.ts +0 -1
  340. package/dist/components/blocks/document-editor/DocumentEditor.d.ts +0 -26
  341. package/dist/components/blocks/document-editor/index.d.ts +0 -1
  342. package/dist/components/blocks/podcast-player/PodcastPlayer.d.ts +0 -41
  343. package/dist/components/blocks/podcast-player/index.d.ts +0 -1
  344. package/dist/dropdown-menu-BDB5CmQs.cjs +0 -247
  345. package/dist/dropdown-menu-DQidbKBD.js +0 -231
  346. package/dist/google-maps-loader-BFWp6VPd.js +0 -287
  347. package/dist/google-maps-loader-eS3uQ5TA.cjs +0 -287
  348. package/dist/header-Cgy6vYPk.cjs +0 -731
  349. package/dist/header-DRlT4jgI.js +0 -715
  350. package/dist/header-Dux00SI4.cjs +0 -731
  351. package/dist/header-EkGKXPsD.js +0 -715
  352. package/dist/header-WfEywpyc.cjs +0 -731
  353. package/dist/header-tifNQn2U.js +0 -715
  354. package/dist/index-BhapVLVj.js +0 -8
  355. package/dist/index-D6fxYEY8.cjs +0 -7
  356. package/dist/index-DW5tYe26.js +0 -8
  357. package/dist/input-2R4loU86.js +0 -127
  358. package/dist/input-DWANSKGb.cjs +0 -145
  359. package/dist/rich-text-editor-0mraWT5y.cjs +0 -2376
  360. package/dist/rich-text-editor-B6jMRLzk.cjs +0 -1939
  361. package/dist/rich-text-editor-B8_oYcIR.js +0 -1730
  362. package/dist/rich-text-editor-B9UbSXNb.js +0 -1203
  363. package/dist/rich-text-editor-BYuRBNBU.js +0 -2373
  364. package/dist/rich-text-editor-Bb9pySTs.cjs +0 -2374
  365. package/dist/rich-text-editor-BcL6L3cm.cjs +0 -2374
  366. package/dist/rich-text-editor-BoVZYtTs.cjs +0 -2391
  367. package/dist/rich-text-editor-CPV1lEPH.cjs +0 -1748
  368. package/dist/rich-text-editor-CoKqbCtu.cjs +0 -1799
  369. package/dist/rich-text-editor-Cw56T_mB.js +0 -2356
  370. package/dist/rich-text-editor-Cyt8qs2b.js +0 -1921
  371. package/dist/rich-text-editor-D6H84OcX.cjs +0 -1220
  372. package/dist/rich-text-editor-D76gD-QI.js +0 -2328
  373. package/dist/rich-text-editor-DKkokOnA.js +0 -1781
  374. package/dist/rich-text-editor-DNsdpN64.cjs +0 -2359
  375. package/dist/rich-text-editor-DfG8bCyY.js +0 -2358
  376. package/dist/rich-text-editor-Dxjw31Z4.js +0 -2341
  377. package/dist/rich-text-editor-DzP0Epmb.js +0 -2356
  378. package/dist/rich-text-editor-skplNlBM.cjs +0 -2345
  379. package/dist/select-Bkbr0f-Z.cjs +0 -162
  380. package/dist/select-CvIVdX2n.js +0 -145
  381. package/dist/slider-Bc5Hd0y1.js +0 -56
  382. package/dist/slider-N7hFFj6X.cjs +0 -73
  383. package/dist/tooltip-Ded96neP.cjs +0 -137
  384. package/dist/tooltip-HDOoD2-0.js +0 -120
  385. package/dist/use-mobile-B0hNy_Y6.cjs +0 -4303
  386. package/dist/use-mobile-BXuYROXM.js +0 -4202
  387. package/dist/use-mobile-Bbd51ASU.cjs +0 -4392
  388. package/dist/use-mobile-Bk6CX-TC.js +0 -4359
  389. package/dist/use-mobile-BzuxjzNX.cjs +0 -4392
  390. package/dist/use-mobile-CG2-SdXV.cjs +0 -4235
  391. package/dist/use-mobile-CKb5pqTs.js +0 -4269
  392. package/dist/use-mobile-CYuAuGDl.js +0 -4202
  393. package/dist/use-mobile-CaENcqm-.js +0 -4508
  394. package/dist/use-mobile-CbrYgJGJ.js +0 -4203
  395. package/dist/use-mobile-DMOvImGQ.cjs +0 -4542
  396. package/dist/use-mobile-DZvv7QMR.js +0 -4359
  397. package/dist/use-mobile-DdI_TXam.cjs +0 -4235
  398. package/dist/use-mobile-DlceKf8a.js +0 -4359
  399. package/dist/use-mobile-DsOnow1o.cjs +0 -4236
  400. package/dist/use-mobile-Kcj6jSnK.cjs +0 -4392
  401. package/dist/use-mobile-bnKcua_i.js +0 -4202
  402. package/dist/use-mobile-ncXBeE2z.cjs +0 -4235
  403. package/dist/{rich-text-editor-DgF8s7xW.js → rich-text-editor-BmsjY03B.js} +26 -26
  404. package/dist/{rich-text-editor-mWoaSCE4.cjs → rich-text-editor-GS2kpTAK.cjs} +26 -26
@@ -2,11 +2,12 @@
2
2
  const jsxRuntime = require("react/jsx-runtime");
3
3
  const React = require("react");
4
4
  const lucideReact = require("lucide-react");
5
- const slider = require("./slider-N7hFFj6X.cjs");
6
- const tooltip = require("./tooltip-Ded96neP.cjs");
5
+ const slider = require("./slider-CPmwzm_3.cjs");
6
+ const button = require("./button-0CXwCRTm.cjs");
7
7
  const reactDom = require("react-dom");
8
- const dropdownMenu = require("./dropdown-menu-BDB5CmQs.cjs");
9
- const LayoutContext = require("./LayoutContext-CwT5KLiW.cjs");
8
+ const tooltip = require("./tooltip-CNtsL5cB.cjs");
9
+ const dropdownMenu = require("./dropdown-menu-Ze1YZFyc.cjs");
10
+ const useAudioPlayer = require("./use-audio-player-Dn1NR9xN.cjs");
10
11
  function FloatingMediaWrapper({
11
12
  children,
12
13
  isFloating,
@@ -32,7 +33,7 @@ function FloatingMediaWrapper({
32
33
  /* @__PURE__ */ jsxRuntime.jsxs(
33
34
  "div",
34
35
  {
35
- className: tooltip.cn(
36
+ className: button.cn(
36
37
  "w-full rounded-[var(--radius-card)] bg-muted/20 border border-dashed border-muted-foreground/20 flex items-center justify-center flex-col gap-2 p-8 text-muted-foreground transition-all",
37
38
  className
38
39
  ),
@@ -40,7 +41,7 @@ function FloatingMediaWrapper({
40
41
  children: [
41
42
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { className: "w-8 h-8 opacity-50" }),
42
43
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: "Reproduzindo em janela flutuante" }),
43
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "outline", size: "sm", onClick: () => setIsFloating(false), children: "Restaurar para a página" })
44
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "outline", size: "sm", onClick: () => setIsFloating(false), children: "Restaurar para a página" })
44
45
  ]
45
46
  }
46
47
  ),
@@ -65,7 +66,7 @@ function FloatingMediaWrapper({
65
66
  )
66
67
  ] });
67
68
  }
68
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: tooltip.cn("relative w-full overflow-hidden rounded-[var(--radius-card)]", className), children });
69
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: button.cn("relative w-full overflow-hidden rounded-[var(--radius-card)]", className), children });
69
70
  }
70
71
  function FloatingContainer({
71
72
  children,
@@ -192,7 +193,7 @@ function FloatingContainer({
192
193
  },
193
194
  role: "dialog",
194
195
  "aria-label": title || "Reproduzindo Mídia",
195
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn(
196
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn(
196
197
  "shadow-2xl rounded-[var(--radius-card)] overflow-hidden border backdrop-blur-sm",
197
198
  colorVariant === "primary" ? "bg-primary border-primary-foreground/20 text-primary-foreground" : "border-border bg-card/95 text-card-foreground"
198
199
  ), children: [
@@ -200,14 +201,14 @@ function FloatingContainer({
200
201
  /* @__PURE__ */ jsxRuntime.jsxs(
201
202
  "div",
202
203
  {
203
- className: tooltip.cn(
204
+ className: button.cn(
204
205
  "h-9 backdrop-blur-sm border-b flex items-center justify-between px-2 cursor-move select-none",
205
206
  colorVariant === "primary" ? "bg-primary-foreground/10 border-primary-foreground/10" : "bg-muted/20 border-border/40"
206
207
  ),
207
208
  onMouseDown: handleMouseDown,
208
209
  style: { touchAction: "none", userSelect: "none" },
209
210
  children: [
210
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn(
211
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn(
211
212
  "flex items-center gap-2 text-[10px] uppercase tracking-wider font-bold truncate flex-1",
212
213
  colorVariant === "primary" ? "text-primary-foreground" : "text-muted-foreground"
213
214
  ), children: [
@@ -215,11 +216,11 @@ function FloatingContainer({
215
216
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate max-w-[150px]", children: title || "Reproduzindo Mídia" })
216
217
  ] }),
217
218
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsxRuntime.jsx(
218
- tooltip.Button,
219
+ button.Button,
219
220
  {
220
221
  variant: "ghost",
221
222
  size: "icon",
222
- className: tooltip.cn(
223
+ className: button.cn(
223
224
  "h-7 w-7 rounded-full transition-colors",
224
225
  colorVariant === "primary" ? "text-primary-foreground/70 hover:bg-destructive/20 hover:text-destructive-foreground" : "text-muted-foreground hover:bg-destructive/10 hover:text-destructive"
225
226
  ),
@@ -232,7 +233,7 @@ function FloatingContainer({
232
233
  ]
233
234
  }
234
235
  ),
235
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: tooltip.cn("flex-1 relative overflow-hidden group", enablePadding && "p-2", colorVariant === "primary" ? "bg-primary" : "bg-card"), children })
236
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: button.cn("flex-1 relative overflow-hidden group", enablePadding && "p-2", colorVariant === "primary" ? "bg-primary" : "bg-card"), children })
236
237
  ] }),
237
238
  /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "absolute top-0 left-0 w-2 h-full cursor-ew-resize hover:bg-primary/20 transition-colors", onMouseDown: (e) => handleResizeStart(e, "left") }),
238
239
  /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "absolute top-0 right-0 w-2 h-full cursor-ew-resize hover:bg-primary/20 transition-colors", onMouseDown: (e) => handleResizeStart(e, "right") }),
@@ -419,7 +420,7 @@ function VideoPlayer({
419
420
  /* @__PURE__ */ jsxRuntime.jsxs(
420
421
  "div",
421
422
  {
422
- className: tooltip.cn(
423
+ className: button.cn(
423
424
  "absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/60 via-black/30 to-transparent pt-12 pb-4 px-4 transition-opacity duration-300",
424
425
  showControls ? "opacity-100" : "opacity-0"
425
426
  ),
@@ -438,7 +439,7 @@ function VideoPlayer({
438
439
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
439
440
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
440
441
  /* @__PURE__ */ jsxRuntime.jsx(
441
- tooltip.Button,
442
+ button.Button,
442
443
  {
443
444
  variant: "ghost",
444
445
  size: "icon",
@@ -450,7 +451,7 @@ function VideoPlayer({
450
451
  ),
451
452
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 group/vol", children: [
452
453
  /* @__PURE__ */ jsxRuntime.jsx(
453
- tooltip.Button,
454
+ button.Button,
454
455
  {
455
456
  variant: "ghost",
456
457
  size: "icon",
@@ -479,7 +480,7 @@ function VideoPlayer({
479
480
  ] })
480
481
  ] }),
481
482
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(
482
- tooltip.Button,
483
+ button.Button,
483
484
  {
484
485
  variant: "ghost",
485
486
  size: "icon",
@@ -520,116 +521,47 @@ function AudioPlayer({
520
521
  enableAutoFloat = true,
521
522
  onCloseFloating
522
523
  }) {
523
- const audioRef = React.useRef(null);
524
- const containerRef = React.useRef(null);
525
- const layout = LayoutContext.useOptionalLayout();
526
- const sidebarExpanded = (layout == null ? void 0 : layout.sidebarExpanded) ?? false;
527
- const sidebarWidth = (layout == null ? void 0 : layout.sidebarWidth) ?? 256;
528
- const assistenteExpanded = (layout == null ? void 0 : layout.assistenteExpanded) ?? false;
529
- const [isPlaying, setIsPlaying] = React.useState(false);
530
- const [volume, setVolume] = React.useState(0.8);
531
- const [isMuted, setIsMuted] = React.useState(false);
532
- const [currentTime, setCurrentTime] = React.useState(initialTime);
533
- const [duration, setDuration] = React.useState(initialDuration || 0);
534
- const [isFloating, setIsFloating] = React.useState(false);
535
- const [isManualFloating, setIsManualFloating] = React.useState(false);
536
- const [enableAutoFloatLocal, setEnableAutoFloatLocal] = React.useState(enableAutoFloat);
537
- const [isVisible, setIsVisible] = React.useState(variant === "card");
538
- const [isMobile, setIsMobile] = React.useState(false);
539
- const [playbackSpeed, setPlaybackSpeed] = React.useState(1);
540
- React.useEffect(() => {
541
- if (typeof window === "undefined") return;
542
- const checkMobile = () => setIsMobile(window.innerWidth < 768);
543
- checkMobile();
544
- window.addEventListener("resize", checkMobile);
545
- return () => window.removeEventListener("resize", checkMobile);
546
- }, []);
547
- React.useEffect(() => {
548
- if (variant === "bar") {
549
- if (isOpen) {
550
- setIsVisible(true);
551
- } else {
552
- const timer = setTimeout(() => setIsVisible(false), 300);
553
- return () => clearTimeout(timer);
554
- }
555
- } else {
556
- setIsVisible(true);
557
- }
558
- }, [isOpen, variant]);
559
- React.useEffect(() => {
560
- const audio = audioRef.current;
561
- if (!audio) return;
562
- audio.volume = volume;
563
- audio.muted = isMuted;
564
- audio.playbackRate = playbackSpeed;
565
- }, [volume, isMuted, playbackSpeed, src]);
566
- React.useEffect(() => {
567
- if (variant !== "card" || !enableAutoFloatLocal) return;
568
- const container = containerRef.current;
569
- if (!container) return;
570
- if (typeof IntersectionObserver === "undefined") return;
571
- const observer = new IntersectionObserver(
572
- ([entry]) => {
573
- if (isPlaying && !entry.isIntersecting && !isFloating) {
574
- if (audioRef.current) setCurrentTime(audioRef.current.currentTime);
575
- setIsFloating(true);
576
- } else if (entry.isIntersecting && isFloating && !isManualFloating) {
577
- if (audioRef.current) setCurrentTime(audioRef.current.currentTime);
578
- handleSetFloating(false);
579
- }
580
- },
581
- { threshold: 0.2 }
582
- );
583
- observer.observe(container);
584
- return () => observer.disconnect();
585
- }, [isPlaying, isFloating, isManualFloating, variant, enableAutoFloatLocal]);
586
- React.useEffect(() => {
587
- const audio = audioRef.current;
588
- if (audio) {
589
- if (Math.abs(audio.currentTime - currentTime) > 0.5) {
590
- audio.currentTime = currentTime;
591
- }
592
- if (isPlaying) {
593
- audio.play().catch((err) => console.log("Playback interrupted:", err));
594
- }
595
- }
596
- }, [isFloating, variant]);
597
- const handleSetFloating = (floating) => {
598
- if (audioRef.current) setCurrentTime(audioRef.current.currentTime);
599
- setIsFloating(floating);
600
- if (!floating) {
601
- setIsManualFloating(false);
602
- }
603
- };
604
- const togglePlay = () => {
605
- if (audioRef.current) {
606
- if (isPlaying) {
607
- audioRef.current.pause();
608
- } else {
609
- audioRef.current.play().catch((err) => console.log("Playback error:", err));
610
- }
611
- }
612
- };
613
- const toggleMute = () => {
614
- setIsMuted(!isMuted);
615
- };
616
- const handleSeek = (value) => {
617
- if (audioRef.current) {
618
- audioRef.current.currentTime = value[0];
619
- setCurrentTime(value[0]);
620
- }
621
- };
622
- const handleVolumeChange = (value) => {
623
- const newVolume = value[0];
624
- setVolume(newVolume);
625
- setIsMuted(newVolume === 0);
626
- };
627
- const formatTime = (time) => {
628
- if (isNaN(time) || time === Infinity || !isFinite(time)) return "0:00";
629
- const minutes = Math.floor(time / 60);
630
- const seconds = Math.floor(time % 60);
631
- return `${minutes}:${seconds < 10 ? "0" : ""}${seconds}`;
632
- };
524
+ const {
525
+ audioRef,
526
+ containerRef,
527
+ isPlaying,
528
+ currentTime,
529
+ duration,
530
+ volume,
531
+ isMuted,
532
+ playbackSpeed,
533
+ isFloating,
534
+ isManualFloating,
535
+ isVisible,
536
+ isMobile,
537
+ enableAutoFloatLocal,
538
+ sidebarExpanded,
539
+ sidebarWidth,
540
+ assistenteExpanded,
541
+ togglePlay,
542
+ toggleMute,
543
+ handleSeek,
544
+ handleVolumeChange,
545
+ handleSetFloating,
546
+ handleEnableManualFloat,
547
+ setPlaybackSpeed,
548
+ resetAudio,
549
+ formatTime,
550
+ onPlay,
551
+ onPause,
552
+ onEnded,
553
+ onTimeUpdate,
554
+ onLoadedMetadata
555
+ } = useAudioPlayer.useAudioPlayer({
556
+ src,
557
+ autoPlay,
558
+ initialTime,
559
+ initialDuration,
560
+ variant,
561
+ isOpen,
562
+ enableAutoFloat,
563
+ onCloseFloating
564
+ });
633
565
  const audioElement = /* @__PURE__ */ jsxRuntime.jsx(
634
566
  "audio",
635
567
  {
@@ -637,36 +569,36 @@ function AudioPlayer({
637
569
  src,
638
570
  autoPlay,
639
571
  className: "hidden",
640
- onTimeUpdate: (e) => setCurrentTime(e.currentTarget.currentTime),
641
- onLoadedMetadata: (e) => setDuration(e.currentTarget.duration),
642
- onPlay: () => setIsPlaying(true),
643
- onPause: () => setIsPlaying(false),
644
- onEnded: () => setIsPlaying(false)
572
+ onTimeUpdate,
573
+ onLoadedMetadata,
574
+ onPlay,
575
+ onPause,
576
+ onEnded
645
577
  }
646
578
  );
647
- const desktopLayout = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn("px-6 flex items-center justify-between gap-4", colorVariant === "primary" ? "h-[80px] gap-6" : "h-[80px]"), children: [
648
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn("flex flex-col min-w-0 shrink-0 relative z-10", colorVariant === "primary" ? "w-[280px]" : "w-[280px]"), children: [
579
+ const desktopLayout = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn("px-6 flex items-center justify-between gap-4", colorVariant === "primary" ? "h-[80px] gap-6" : "h-[80px]"), children: [
580
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn("flex flex-col min-w-0 shrink-0 relative z-10", colorVariant === "primary" ? "w-[280px]" : "w-[280px]"), children: [
649
581
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-0.5", children: [
650
582
  colorVariant === "primary" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-2 h-2 rounded-full bg-[var(--chart-4)] animate-pulse shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Radio, { className: "w-3 h-3 text-[var(--chart-4)] animate-pulse shrink-0" }),
651
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: tooltip.cn("truncate", colorVariant === "primary" ? "font-semibold text-base tracking-tight" : "font-medium text-base"), title, children: title })
583
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: button.cn("truncate", colorVariant === "primary" ? "font-semibold text-base tracking-tight" : "font-medium text-base"), title, children: title })
652
584
  ] }),
653
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn("flex items-center gap-1 text-xs text-muted-foreground", colorVariant === "primary" && "opacity-80"), children: [
585
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn("flex items-center gap-1 text-xs text-muted-foreground", colorVariant === "primary" && "opacity-80"), children: [
654
586
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: subtitle || artist }),
655
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: tooltip.cn("w-3 h-3 cursor-pointer hover:text-foreground ml-1 transition-opacity", colorVariant === "primary" ? "opacity-60 hover:opacity-100" : "opacity-70 hover:opacity-100") })
587
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ExternalLink, { className: button.cn("w-3 h-3 cursor-pointer hover:text-foreground ml-1 transition-opacity", colorVariant === "primary" ? "opacity-60 hover:opacity-100" : "opacity-70 hover:opacity-100") })
656
588
  ] })
657
589
  ] }),
658
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn("flex-1 flex items-center justify-center gap-4 min-w-0 max-w-xl relative z-10", colorVariant === "primary" && "gap-4"), children: [
590
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn("flex-1 flex items-center justify-center gap-4 min-w-0 max-w-xl relative z-10", colorVariant === "primary" && "gap-4"), children: [
659
591
  /* @__PURE__ */ jsxRuntime.jsx(
660
592
  "button",
661
593
  {
662
594
  onClick: togglePlay,
663
595
  "aria-label": isPlaying ? "Pausar" : "Reproduzir",
664
- className: tooltip.cn("transition-all focus:outline-none shrink-0", colorVariant === "primary" ? "hover:scale-110" : "text-muted-foreground hover:text-foreground hover:scale-110 active:scale-95 transform duration-100"),
665
- children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PauseCircle, { className: tooltip.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlayCircle, { className: tooltip.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 })
596
+ className: button.cn("transition-all focus:outline-none shrink-0", colorVariant === "primary" ? "hover:scale-110" : "text-muted-foreground hover:text-foreground hover:scale-110 active:scale-95 transform duration-100"),
597
+ children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PauseCircle, { className: button.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlayCircle, { className: button.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 })
666
598
  }
667
599
  ),
668
600
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 flex items-center gap-3 max-w-lg", children: [
669
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: tooltip.cn("text-xs font-mono shrink-0 w-10 text-right", colorVariant === "primary" ? "text-[11px] w-12 opacity-80" : "text-muted-foreground"), children: formatTime(currentTime) }),
601
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: button.cn("text-xs font-mono shrink-0 w-10 text-right", colorVariant === "primary" ? "text-[11px] w-12 opacity-80" : "text-muted-foreground"), children: formatTime(currentTime) }),
670
602
  /* @__PURE__ */ jsxRuntime.jsx(
671
603
  slider.Slider,
672
604
  {
@@ -676,7 +608,7 @@ function AudioPlayer({
676
608
  className: "cursor-pointer"
677
609
  }
678
610
  ),
679
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: tooltip.cn("text-xs font-mono shrink-0 w-10", colorVariant === "primary" ? "text-[11px] w-12 opacity-80" : "text-muted-foreground"), children: formatTime(duration) })
611
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: button.cn("text-xs font-mono shrink-0 w-10", colorVariant === "primary" ? "text-[11px] w-12 opacity-80" : "text-muted-foreground"), children: formatTime(duration) })
680
612
  ] })
681
613
  ] }),
682
614
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 shrink-0 relative z-10", children: [
@@ -703,24 +635,22 @@ function AudioPlayer({
703
635
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
704
636
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden md:flex", children: [
705
637
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
706
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", onClick: () => {
707
- if (audioRef.current) audioRef.current.currentTime = 0;
708
- }, "aria-label": "Recomecar audio", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "w-4 h-4" }) }) }),
638
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", onClick: resetAudio, "aria-label": "Recomecar audio", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "w-4 h-4" }) }) }),
709
639
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { className: "z-[1001]", children: "Recomeçar" })
710
640
  ] }) }),
711
641
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
712
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: "text-[var(--chart-3)] hover:bg-accent rounded-full h-9 w-9", "aria-label": "Informacoes do audio", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "w-4 h-4 fill-current" }) }) }),
642
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "icon", className: "text-[var(--chart-3)] hover:bg-accent rounded-full h-9 w-9", "aria-label": "Informacoes do audio", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Info, { className: "w-4 h-4 fill-current" }) }) }),
713
643
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { className: "z-[1001]", children: "Informações" })
714
644
  ] }) })
715
645
  ] }),
716
646
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden xl:flex items-center gap-1", children: [
717
647
  /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [
718
- /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Selecionar velocidade", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gauge, { className: "w-4 h-4" }) }) }),
648
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Selecionar velocidade", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Gauge, { className: "w-4 h-4" }) }) }),
719
649
  /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuContent, { align: "center", className: "w-32 z-[1001]", children: [0.5, 1, 1.5, 2].map((speed) => /* @__PURE__ */ jsxRuntime.jsxs(
720
650
  dropdownMenu.DropdownMenuItem,
721
651
  {
722
652
  onClick: () => setPlaybackSpeed(speed),
723
- className: tooltip.cn("cursor-pointer", playbackSpeed === speed && "bg-accent font-bold"),
653
+ className: button.cn("cursor-pointer", playbackSpeed === speed && "bg-accent font-bold"),
724
654
  children: [
725
655
  speed,
726
656
  "x"
@@ -730,12 +660,12 @@ function AudioPlayer({
730
660
  )) })
731
661
  ] }),
732
662
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
733
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Baixar audio", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "w-4 h-4" }) }) }),
663
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Baixar audio", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "w-4 h-4" }) }) }),
734
664
  /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { className: "z-[1001]", children: "Baixar Áudio" })
735
665
  ] }) })
736
666
  ] }),
737
667
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "xl:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [
738
- /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Mais opcoes", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "w-5 h-5" }) }) }),
668
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Mais opcoes", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "w-5 h-5" }) }) }),
739
669
  /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent, { align: "end", className: "w-56 p-2 z-[1001]", children: [
740
670
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:hidden", children: [
741
671
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-2 py-3", children: [
@@ -748,9 +678,7 @@ function AudioPlayer({
748
678
  /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuSeparator, { className: "my-1" })
749
679
  ] }),
750
680
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "md:hidden", children: [
751
- /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => {
752
- if (audioRef.current) audioRef.current.currentTime = 0;
753
- }, className: "cursor-pointer py-2.5", children: [
681
+ /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: resetAudio, className: "cursor-pointer py-2.5", children: [
754
682
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "w-4 h-4 mr-3 text-muted-foreground" }),
755
683
  " Recomeçar"
756
684
  ] }),
@@ -770,7 +698,7 @@ function AudioPlayer({
770
698
  "button",
771
699
  {
772
700
  onClick: () => setPlaybackSpeed(speed),
773
- className: tooltip.cn(
701
+ className: button.cn(
774
702
  "px-2 py-0.5 text-[10px] rounded border transition-colors",
775
703
  playbackSpeed === speed ? "bg-primary text-primary-foreground border-primary" : "bg-transparent border-border hover:bg-accent"
776
704
  ),
@@ -791,23 +719,23 @@ function AudioPlayer({
791
719
  ] })
792
720
  ] }) }),
793
721
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-px h-8 bg-border mx-1" }),
794
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { onClick: onClose, variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Fechar player", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-5 h-5" }) })
722
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { onClick: onClose, variant: "ghost", size: "icon", className: "rounded-full h-9 w-9", "aria-label": "Fechar player", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-5 h-5" }) })
795
723
  ] })
796
724
  ] })
797
725
  ] });
798
- const mobileLayout = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn("flex flex-col py-3 px-4 gap-3", colorVariant === "primary" && "py-4 px-5 gap-4"), children: [
726
+ const mobileLayout = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn("flex flex-col py-3 px-4 gap-3", colorVariant === "primary" && "py-4 px-5 gap-4"), children: [
799
727
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between gap-3", children: [
800
728
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col min-w-0 flex-1", children: [
801
729
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 mb-1", children: [
802
730
  colorVariant === "primary" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-2 h-2 rounded-full bg-[var(--chart-4)] animate-pulse shrink-0" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Radio, { className: "w-3 h-3 text-[var(--chart-4)] animate-pulse shrink-0" }),
803
- /* @__PURE__ */ jsxRuntime.jsx("h4", { className: tooltip.cn("truncate", colorVariant === "primary" ? "font-semibold text-sm tracking-tight" : "font-medium text-sm"), children: title })
731
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: button.cn("truncate", colorVariant === "primary" ? "font-semibold text-sm tracking-tight" : "font-medium text-sm"), children: title })
804
732
  ] }),
805
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: tooltip.cn("flex items-center gap-1.5 text-xs text-muted-foreground", colorVariant === "primary" && "opacity-70"), children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: subtitle || artist }) })
733
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: button.cn("flex items-center gap-1.5 text-xs text-muted-foreground", colorVariant === "primary" && "opacity-70"), children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: subtitle || artist }) })
806
734
  ] }),
807
- /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { onClick: onClose, variant: "ghost", size: "icon", className: "rounded-full h-8 w-8 shrink-0", "aria-label": "Fechar player", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" }) })
735
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { onClick: onClose, variant: "ghost", size: "icon", className: "rounded-full h-8 w-8 shrink-0", "aria-label": "Fechar player", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" }) })
808
736
  ] }),
809
737
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
810
- /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: togglePlay, "aria-label": isPlaying ? "Pausar" : "Reproduzir", className: "shrink-0 transition-transform active:scale-95", children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PauseCircle, { className: tooltip.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlayCircle, { className: tooltip.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 }) }),
738
+ /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: togglePlay, "aria-label": isPlaying ? "Pausar" : "Reproduzir", className: "shrink-0 transition-transform active:scale-95", children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PauseCircle, { className: button.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PlayCircle, { className: button.cn(colorVariant === "primary" ? "w-12 h-12" : "w-10 h-10"), strokeWidth: colorVariant === "primary" ? 1 : 1.5 }) }),
811
739
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 flex items-center gap-2", children: /* @__PURE__ */ jsxRuntime.jsx(
812
740
  slider.Slider,
813
741
  {
@@ -819,36 +747,38 @@ function AudioPlayer({
819
747
  }
820
748
  ) }),
821
749
  /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [
822
- /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: "h-9 w-9 rounded-full", "aria-label": "Mais opcoes", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, { className: "w-5 h-5" }) }) }),
750
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(button.Button, { variant: "ghost", size: "icon", className: "h-9 w-9 rounded-full", "aria-label": "Mais opcoes", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, { className: "w-5 h-5" }) }) }),
823
751
  /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent, { align: "end", className: "w-56 p-2 z-[1001]", children: [
824
- /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuItem, { onClick: () => {
825
- if (audioRef.current) audioRef.current.currentTime = 0;
826
- }, children: "Recomeçar" }),
827
- /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuItem, { children: "Velocidade (1.0x)" })
752
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuItem, { onClick: resetAudio, children: "Recomeçar" }),
753
+ /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { children: [
754
+ "Velocidade (",
755
+ playbackSpeed,
756
+ "x)"
757
+ ] })
828
758
  ] })
829
759
  ] })
830
760
  ] })
831
761
  ] });
832
- const desktopLayoutCompact = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: tooltip.cn("flex items-center gap-3 w-full", isFloating ? "px-3 py-1 text-foreground" : "px-4 py-3"), children: [
762
+ const desktopLayoutCompact = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: button.cn("flex items-center gap-3 w-full", isFloating ? "px-3 py-1 text-foreground" : "px-4 py-3"), children: [
833
763
  /* @__PURE__ */ jsxRuntime.jsx(
834
- tooltip.Button,
764
+ button.Button,
835
765
  {
836
766
  onClick: togglePlay,
837
767
  size: "icon",
838
768
  variant: "outline",
839
- className: tooltip.cn(
769
+ className: button.cn(
840
770
  "shrink-0 rounded-full border-border text-foreground hover:bg-accent transition-colors",
841
771
  colorVariant === "primary" && "border-primary-foreground/20 hover:bg-primary-foreground/10 text-primary-foreground",
842
772
  isFloating ? "h-8 w-8" : "h-10 w-10"
843
773
  ),
844
774
  "aria-label": isPlaying ? "Pausar" : "Reproduzir",
845
- children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pause, { className: tooltip.cn(isFloating ? "w-3 h-3" : "w-4 h-4", "fill-current") }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Play, { className: tooltip.cn(isFloating ? "w-3 h-3" : "w-4 h-4", "fill-current ml-0.5") })
775
+ children: isPlaying ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pause, { className: button.cn(isFloating ? "w-3 h-3" : "w-4 h-4", "fill-current") }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Play, { className: button.cn(isFloating ? "w-3 h-3" : "w-4 h-4", "fill-current ml-0.5") })
846
776
  }
847
777
  ),
848
778
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0 flex flex-col justify-center gap-1.5", children: [
849
779
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between text-xs leading-none", children: [
850
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: tooltip.cn("font-medium truncate", colorVariant === "primary" ? "text-primary-foreground" : "text-foreground"), children: title }),
851
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: tooltip.cn("font-medium tabular-nums text-[10px] sm:text-xs", colorVariant === "primary" ? "text-primary-foreground/70" : "text-muted-foreground"), children: [
780
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: button.cn("font-medium truncate", colorVariant === "primary" ? "text-primary-foreground" : "text-foreground"), children: title }),
781
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: button.cn("font-medium tabular-nums text-[10px] sm:text-xs", colorVariant === "primary" ? "text-primary-foreground/70" : "text-muted-foreground"), children: [
852
782
  formatTime(currentTime),
853
783
  " / ",
854
784
  formatTime(duration)
@@ -868,7 +798,20 @@ function AudioPlayer({
868
798
  ] }),
869
799
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 shrink-0", children: [
870
800
  /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [
871
- /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Button, { variant: "ghost", size: "icon", className: tooltip.cn("rounded-full", colorVariant === "primary" ? "text-primary-foreground/80 hover:text-primary-foreground hover:bg-primary-foreground/10" : "text-muted-foreground hover:text-foreground", isFloating ? "h-7 w-7" : "h-8 w-8"), "aria-label": "Mais opções", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, { className: isFloating ? "w-4 h-4" : "w-5 h-5" }) }) }),
801
+ /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
802
+ button.Button,
803
+ {
804
+ variant: "ghost",
805
+ size: "icon",
806
+ className: button.cn(
807
+ "rounded-full",
808
+ colorVariant === "primary" ? "text-primary-foreground/80 hover:text-primary-foreground hover:bg-primary-foreground/10" : "text-muted-foreground hover:text-foreground",
809
+ isFloating ? "h-7 w-7" : "h-8 w-8"
810
+ ),
811
+ "aria-label": "Mais opções",
812
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, { className: isFloating ? "w-4 h-4" : "w-5 h-5" })
813
+ }
814
+ ) }),
872
815
  /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent, { align: "end", className: "w-56 p-2 z-[1001]", children: [
873
816
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-2 py-3", children: [
874
817
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between mb-3 px-1", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -895,7 +838,7 @@ function AudioPlayer({
895
838
  "button",
896
839
  {
897
840
  onClick: () => setPlaybackSpeed(speed),
898
- className: tooltip.cn(
841
+ className: button.cn(
899
842
  "px-2 py-1 text-[10px] rounded border transition-colors",
900
843
  playbackSpeed === speed ? "bg-primary text-primary-foreground border-primary" : "bg-transparent border-border hover:bg-accent"
901
844
  ),
@@ -908,9 +851,7 @@ function AudioPlayer({
908
851
  )) })
909
852
  ] }),
910
853
  /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenuSeparator, { className: "my-2" }),
911
- /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => {
912
- if (audioRef.current) audioRef.current.currentTime = 0;
913
- }, className: "cursor-pointer py-2.5", children: [
854
+ /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: resetAudio, className: "cursor-pointer py-2.5", children: [
914
855
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "w-4 h-4 mr-3 text-muted-foreground" }),
915
856
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Recomeçar áudio" })
916
857
  ] }),
@@ -921,16 +862,15 @@ function AudioPlayer({
921
862
  ] })
922
863
  ] }),
923
864
  !isFloating && /* @__PURE__ */ jsxRuntime.jsx(
924
- tooltip.Button,
865
+ button.Button,
925
866
  {
926
867
  variant: "ghost",
927
868
  size: "icon",
928
- className: tooltip.cn("h-8 w-8", colorVariant === "primary" ? "text-primary-foreground/80 hover:text-primary-foreground hover:bg-primary-foreground/10" : "text-muted-foreground hover:text-foreground"),
929
- onClick: () => {
930
- setEnableAutoFloatLocal(true);
931
- setIsManualFloating(true);
932
- handleSetFloating(true);
933
- },
869
+ className: button.cn(
870
+ "h-8 w-8",
871
+ colorVariant === "primary" ? "text-primary-foreground/80 hover:text-primary-foreground hover:bg-primary-foreground/10" : "text-muted-foreground hover:text-foreground"
872
+ ),
873
+ onClick: handleEnableManualFloat,
934
874
  title: "Modo Flutuante",
935
875
  "aria-label": "Abrir modo flutuante",
936
876
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { className: "w-4 h-4" })
@@ -944,7 +884,7 @@ function AudioPlayer({
944
884
  /* @__PURE__ */ jsxRuntime.jsxs(
945
885
  "div",
946
886
  {
947
- className: tooltip.cn(
887
+ className: button.cn(
948
888
  "fixed bottom-0 z-[100] border-t transition-all duration-300 ease-in-out",
949
889
  colorVariant === "primary" ? "bg-primary/95 text-primary-foreground border-primary/20 backdrop-blur-sm [&_.text-muted-foreground]:text-primary-foreground/70 [&_.text-foreground]:text-primary-foreground [&_button]:text-primary-foreground [&_[data-slot=slider-track]]:bg-primary-foreground/30 [&_[data-slot=slider-range]]:bg-primary-foreground [&_[data-slot=slider-thumb]]:border-primary-foreground [&_[data-slot=slider-thumb]]:bg-primary-foreground" : "bg-card/95 text-card-foreground border-border backdrop-blur-md shadow-[var(--elevation-sm)]",
950
890
  isOpen ? "translate-y-0 opacity-100" : "translate-y-full opacity-0",
@@ -972,8 +912,7 @@ function AudioPlayer({
972
912
  setIsFloating: handleSetFloating,
973
913
  onClose: () => handleSetFloating(false),
974
914
  onCloseMedia: () => {
975
- setIsFloating(false);
976
- setEnableAutoFloatLocal(false);
915
+ handleSetFloating(false);
977
916
  },
978
917
  title: "Reproduzindo Mídia",
979
918
  aspectRatio: 320 / 110,
@@ -983,7 +922,7 @@ function AudioPlayer({
983
922
  className: "w-full",
984
923
  playerId: "audio-player",
985
924
  enablePadding: true,
986
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: tooltip.cn(
925
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: button.cn(
987
926
  "w-full overflow-hidden flex flex-col justify-center",
988
927
  colorVariant === "primary" ? "bg-primary text-primary-foreground [&_[data-slot=slider-track]]:bg-white/20 [&_[data-slot=slider-range]]:bg-white [&_[data-slot=slider-thumb]]:border-white [&_[data-slot=slider-thumb]]:bg-white" : "bg-card text-card-foreground",
989
928
  isFloating ? "h-full bg-transparent" : "border rounded-md shadow-sm"