@brainfish-ai/components 0.35.20 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (872) hide show
  1. package/dist/colors/blue.d.ts +13 -0
  2. package/dist/colors/dark.d.ts +15 -0
  3. package/dist/colors/green.d.ts +13 -0
  4. package/dist/{colors.d.ts → colors/index.d.ts} +159 -161
  5. package/dist/colors/lime.d.ts +13 -0
  6. package/dist/colors/magenta.d.ts +13 -0
  7. package/dist/colors/orange.d.ts +13 -0
  8. package/dist/colors/pink.d.ts +13 -0
  9. package/dist/colors/primary.d.ts +14 -0
  10. package/dist/colors/purple.d.ts +13 -0
  11. package/dist/colors/red.d.ts +13 -0
  12. package/dist/colors/teal.d.ts +13 -0
  13. package/dist/colors/yellow.d.ts +13 -0
  14. package/dist/components/ai-button/ai-badge.d.ts +6 -0
  15. package/dist/components/ai-button/ai-button.d.ts +5 -0
  16. package/dist/components/ai-button/index.d.ts +2 -0
  17. package/dist/components/article-suggestions-banner/article-suggestions-banner.d.ts +12 -0
  18. package/dist/components/article-suggestions-banner/index.d.ts +1 -0
  19. package/dist/components/articles-coverage/articles-coverage.d.ts +14 -0
  20. package/dist/components/articles-coverage/index.d.ts +1 -0
  21. package/dist/components/articles-updated/articles-updated.d.ts +14 -0
  22. package/dist/components/articles-updated/index.d.ts +1 -0
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -0
  24. package/dist/components/breadcrumbs/index.d.ts +1 -0
  25. package/dist/components/chart-area-linear/chart-area-linear.d.ts +18 -0
  26. package/dist/components/chart-area-linear/index.d.ts +1 -0
  27. package/dist/components/chart-radial-stacked/chart-radial-stacked.d.ts +12 -0
  28. package/dist/components/chart-radial-stacked/index.d.ts +1 -0
  29. package/dist/components/chat-search/ActiveConversations.d.ts +14 -0
  30. package/dist/components/chat-search/Answer.d.ts +36 -0
  31. package/dist/components/chat-search/AnswerActions.d.ts +14 -0
  32. package/dist/components/chat-search/AnswerBlock.d.ts +8 -0
  33. package/dist/components/chat-search/AnswerLoadingStatus.d.ts +6 -0
  34. package/dist/components/chat-search/AttachmentThumbnails.d.ts +36 -0
  35. package/dist/components/chat-search/ChatSearch.d.ts +12 -0
  36. package/dist/components/chat-search/ChatSearchContext.d.ts +37 -0
  37. package/dist/components/chat-search/FollowUpQuestions.d.ts +7 -0
  38. package/dist/components/chat-search/FollowUpSearchBar.d.ts +17 -0
  39. package/dist/components/chat-search/Header.d.ts +15 -0
  40. package/dist/components/chat-search/HistoryPage.d.ts +20 -0
  41. package/dist/components/chat-search/IncludePageToggle.d.ts +9 -0
  42. package/dist/components/chat-search/KnowledgeGroupSelector.d.ts +8 -0
  43. package/dist/components/chat-search/LoadingConversation.d.ts +2 -0
  44. package/dist/components/chat-search/LoadingSkeleton.d.ts +6 -0
  45. package/dist/components/chat-search/NextBestActions.d.ts +8 -0
  46. package/dist/components/chat-search/PrimarySearch.d.ts +38 -0
  47. package/dist/components/chat-search/ResolvedConversationFooter.d.ts +7 -0
  48. package/dist/components/chat-search/Suggestions.d.ts +9 -0
  49. package/dist/components/chat-search/TimelineNavigation.d.ts +9 -0
  50. package/dist/components/chat-search/ToastContainer.d.ts +6 -0
  51. package/dist/components/chat-search/blocks/ActionButtons.d.ts +5 -0
  52. package/dist/components/chat-search/blocks/ActionInputForm.d.ts +20 -0
  53. package/dist/components/chat-search/blocks/MarkdownText.d.ts +8 -0
  54. package/dist/components/chat-search/blocks/utils.d.ts +16 -0
  55. package/dist/components/chat-search/helpers/buildConversationContext.d.ts +2 -0
  56. package/dist/components/chat-search/helpers/cancelStreamReader.d.ts +7 -0
  57. package/dist/components/chat-search/helpers/excuteClientAction.d.ts +9 -0
  58. package/dist/components/chat-search/helpers/initialAiMessage.d.ts +2 -0
  59. package/dist/components/chat-search/helpers/nextBestActions.d.ts +7 -0
  60. package/dist/components/chat-search/helpers/preChatFormForWidget.d.ts +6 -0
  61. package/dist/components/chat-search/hooks/index.d.ts +10 -0
  62. package/dist/components/chat-search/hooks/useAccessibleColor.d.ts +1 -0
  63. package/dist/components/chat-search/hooks/useAnswerList.d.ts +253 -0
  64. package/dist/components/chat-search/hooks/useConversationHistory.d.ts +32 -0
  65. package/dist/components/chat-search/hooks/useConversationId.d.ts +5 -0
  66. package/dist/components/chat-search/hooks/useConversationLoader.d.ts +19 -0
  67. package/dist/components/chat-search/hooks/useDarkMode.d.ts +1 -0
  68. package/dist/components/chat-search/hooks/useFileAttachment.d.ts +20 -0
  69. package/dist/components/chat-search/hooks/useIncludePage.d.ts +20 -0
  70. package/dist/components/chat-search/hooks/useIsChatSearchDirty.d.ts +1 -0
  71. package/dist/components/chat-search/hooks/useScrollManager.d.ts +6 -0
  72. package/dist/components/chat-search/hooks/useSubscriptionManager.d.ts +4 -0
  73. package/dist/components/chat-search/hooks/useToast.d.ts +9 -0
  74. package/dist/components/chat-search/hooks/useUrlManager.d.ts +8 -0
  75. package/dist/components/chat-search/index.d.ts +7 -0
  76. package/dist/components/chat-search/text-config.d.ts +3 -0
  77. package/dist/components/chat-search/theme.d.ts +0 -0
  78. package/dist/components/chat-search/types/messages.d.ts +21 -0
  79. package/dist/components/chat-search/types.d.ts +388 -0
  80. package/dist/{combobox.d.ts → components/combobox/combobox.d.ts} +43 -49
  81. package/dist/components/combobox/index.d.ts +1 -0
  82. package/dist/components/confirm-dialog/confirm-dialog.d.ts +21 -0
  83. package/dist/components/confirm-dialog/index.d.ts +1 -0
  84. package/dist/components/conversation/AttachmentPreviews.d.ts +14 -0
  85. package/dist/components/conversation/ContextPillBadge.d.ts +8 -0
  86. package/dist/components/conversation/Conversation.d.ts +45 -0
  87. package/dist/components/conversation/ConversationActions.d.ts +11 -0
  88. package/dist/components/conversation/ConversationContext.d.ts +17 -0
  89. package/dist/components/conversation/ConversationHeader.d.ts +12 -0
  90. package/dist/components/conversation/ConversationInput.d.ts +16 -0
  91. package/dist/components/conversation/ConversationMessage.d.ts +8 -0
  92. package/dist/components/conversation/ConversationMessageAssistant.d.ts +11 -0
  93. package/dist/components/conversation/ConversationMessageUser.d.ts +11 -0
  94. package/dist/components/conversation/ConversationMessages.d.ts +11 -0
  95. package/dist/components/conversation/ConversationStatus.d.ts +11 -0
  96. package/dist/components/conversation/ConversationSuggestions.d.ts +10 -0
  97. package/dist/components/conversation/attachmentUtils.d.ts +2 -0
  98. package/dist/components/conversation/blocks/CitationBlock.d.ts +8 -0
  99. package/dist/components/conversation/blocks/TextBlock.d.ts +8 -0
  100. package/dist/components/conversation/blocks/index.d.ts +10 -0
  101. package/dist/components/conversation/index.d.ts +13 -0
  102. package/dist/components/conversation/mocks.d.ts +14 -0
  103. package/dist/components/conversation/status.d.ts +15 -0
  104. package/dist/components/conversation/types.d.ts +149 -0
  105. package/dist/components/conversation/welcome.d.ts +11 -0
  106. package/dist/components/convos/answer-diagnostics.d.ts +21 -0
  107. package/dist/components/convos/attributes-dialog.d.ts +7 -0
  108. package/dist/components/convos/confidence-badge.d.ts +6 -0
  109. package/dist/components/convos/convo.d.ts +29 -0
  110. package/dist/components/convos/convos.d.ts +39 -0
  111. package/dist/components/convos/discard-form.d.ts +31 -0
  112. package/dist/components/convos/empty-convos.d.ts +4 -0
  113. package/dist/components/convos/feedback-dialog.d.ts +14 -0
  114. package/dist/components/convos/index.d.ts +5 -0
  115. package/dist/components/convos/message.d.ts +79 -0
  116. package/dist/components/convos/mocks.d.ts +43 -0
  117. package/dist/components/convos/status-badge.d.ts +8 -0
  118. package/dist/components/convos/stream-badge.d.ts +5 -0
  119. package/dist/components/data-table/data-table.d.ts +17 -0
  120. package/dist/components/data-table/index.d.ts +2 -0
  121. package/dist/{date-picker.d.ts → components/date-picker/date-picker.d.ts} +9 -12
  122. package/dist/components/date-picker/index.d.ts +1 -0
  123. package/dist/components/discoveries-created/discoveries-created.d.ts +22 -0
  124. package/dist/components/discoveries-created/index.d.ts +1 -0
  125. package/dist/components/editable-label/editable-label.d.ts +6 -0
  126. package/dist/components/editable-label/index.d.ts +1 -0
  127. package/dist/components/feedback/feedback-reason.d.ts +10 -0
  128. package/dist/{feedback.d.ts → components/feedback/feedback.d.ts} +17 -21
  129. package/dist/components/feedback/index.d.ts +1 -0
  130. package/dist/components/file-upload/file-upload-status.d.ts +17 -0
  131. package/dist/components/file-upload/file-upload.d.ts +4 -0
  132. package/dist/components/file-upload/index.d.ts +4 -0
  133. package/dist/components/file-upload/types.d.ts +18 -0
  134. package/dist/components/file-upload/utils.d.ts +1 -0
  135. package/dist/components/filter/components/CustomValueInput.d.ts +11 -0
  136. package/dist/components/filter/components/MultiSelectDropdown.d.ts +10 -0
  137. package/dist/components/filter/components/SingleSelectDropdown.d.ts +9 -0
  138. package/dist/components/filter/filter.d.ts +6 -0
  139. package/dist/components/filter/filters.d.ts +12 -0
  140. package/dist/components/filter/hooks.d.ts +9 -0
  141. package/dist/components/filter/index.d.ts +3 -0
  142. package/dist/{filter.d.ts → components/filter/types.d.ts} +59 -82
  143. package/dist/components/font-picker/font-picker-item.d.ts +13 -0
  144. package/dist/components/font-picker/font-picker.d.ts +44 -0
  145. package/dist/components/font-picker/font-utils.d.ts +18 -0
  146. package/dist/components/font-picker/index.d.ts +5 -0
  147. package/dist/components/font-picker/types.d.ts +6 -0
  148. package/dist/components/font-picker/use-font-options.d.ts +17 -0
  149. package/dist/components/generating-star/generating-star.d.ts +10 -0
  150. package/dist/components/generating-star/index.d.ts +1 -0
  151. package/dist/components/input-with-tags/index.d.ts +1 -0
  152. package/dist/{input-with-tags.d.ts → components/input-with-tags/input-with-tags.d.ts} +26 -31
  153. package/dist/components/logo/ai-logo.d.ts +12 -0
  154. package/dist/components/logo/chat-logo.d.ts +8 -0
  155. package/dist/components/logo/index.d.ts +3 -0
  156. package/dist/components/logo/logo.d.ts +8 -0
  157. package/dist/components/love/index.d.ts +1 -0
  158. package/dist/components/love/love.d.ts +7 -0
  159. package/dist/components/markdown/CodeBlock.d.ts +7 -0
  160. package/dist/components/markdown/FormattedMessage.d.ts +14 -0
  161. package/dist/components/markdown/Frame.d.ts +10 -0
  162. package/dist/components/markdown/MemoizedReactMarkdown.d.ts +6 -0
  163. package/dist/components/markdown/MermaidDiagram.d.ts +6 -0
  164. package/dist/components/markdown/SmartImage.d.ts +5 -0
  165. package/dist/components/markdown/ZoomableImage.d.ts +7 -0
  166. package/dist/components/markdown/embeds/Loom.d.ts +7 -0
  167. package/dist/components/markdown/embeds/NativeVideo.d.ts +6 -0
  168. package/dist/components/markdown/embeds/Supademo.d.ts +7 -0
  169. package/dist/components/markdown/embeds/Typeform.d.ts +7 -0
  170. package/dist/components/markdown/embeds/VideoTimeline.d.ts +9 -0
  171. package/dist/components/markdown/embeds/Vimeo.d.ts +7 -0
  172. package/dist/components/markdown/embeds/Wistia.d.ts +7 -0
  173. package/dist/components/markdown/embeds/Youtube.d.ts +7 -0
  174. package/dist/components/markdown/embeds/index.d.ts +9 -0
  175. package/dist/components/markdown/index.d.ts +6 -0
  176. package/dist/components/markdown/utils/codeblock.d.ts +6 -0
  177. package/dist/components/markdown/utils/stripNewLines.d.ts +1 -0
  178. package/dist/components/markdown/utils/urls.d.ts +6 -0
  179. package/dist/components/metric-card/index.d.ts +1 -0
  180. package/dist/components/metric-card/metric-card.d.ts +11 -0
  181. package/dist/components/metric-card-group/index.d.ts +1 -0
  182. package/dist/components/metric-card-group/metric-card-group.d.ts +6 -0
  183. package/dist/components/plan-usage-card/index.d.ts +1 -0
  184. package/dist/{plan-usage-card.d.ts → components/plan-usage-card/plan-usage-card.d.ts} +10 -15
  185. package/dist/components/rich-text-input/LexicalEditor.d.ts +7 -0
  186. package/dist/components/rich-text-input/RichTextInput.d.ts +31 -0
  187. package/dist/components/rich-text-input/index.d.ts +2 -0
  188. package/dist/components/select/index.d.ts +1 -0
  189. package/dist/{select.d.ts → components/select/simpleSelect.d.ts} +15 -20
  190. package/dist/components/trend-value/index.d.ts +1 -0
  191. package/dist/components/trend-value/trend-value.d.ts +14 -0
  192. package/dist/components/two-level-combobox/index.d.ts +1 -0
  193. package/dist/{two-level-combobox.d.ts → components/two-level-combobox/two-level-combobox.d.ts} +15 -26
  194. package/dist/components/ui/accordion.d.ts +7 -2
  195. package/dist/components/ui/alert-dialog.d.ts +37 -2
  196. package/dist/components/ui/alert.d.ts +11 -2
  197. package/dist/components/ui/avatar.d.ts +11 -2
  198. package/dist/components/ui/badge.d.ts +9 -2
  199. package/dist/components/ui/breadcrumb.d.ts +19 -2
  200. package/dist/components/ui/button-group.d.ts +13 -2
  201. package/dist/components/ui/button.d.ts +13 -2
  202. package/dist/components/ui/calendar.d.ts +8 -2
  203. package/dist/components/ui/card.d.ts +8 -2
  204. package/dist/components/ui/chart.d.ts +62 -0
  205. package/dist/components/ui/collapsible.d.ts +6 -2
  206. package/dist/components/ui/combobox.d.ts +2 -2
  207. package/dist/components/ui/command.d.ts +80 -2
  208. package/dist/components/ui/dialog.d.ts +19 -2
  209. package/dist/components/ui/div-button.d.ts +11 -2
  210. package/dist/components/ui/dropdown-menu.d.ts +31 -2
  211. package/dist/components/ui/hover-card.d.ts +6 -2
  212. package/dist/components/ui/icon.d.ts +8 -2
  213. package/dist/components/ui/input.d.ts +10 -2
  214. package/dist/components/ui/item.d.ts +23 -2
  215. package/dist/components/ui/label.d.ts +5 -2
  216. package/dist/components/ui/popover.d.ts +13 -2
  217. package/dist/components/ui/progress.d.ts +6 -2
  218. package/dist/components/ui/radio-group.d.ts +5 -2
  219. package/dist/components/ui/resizable.d.ts +8 -2
  220. package/dist/components/ui/ripple-status.d.ts +14 -0
  221. package/dist/components/ui/ripple.d.ts +5 -0
  222. package/dist/components/ui/scroll-area.d.ts +5 -2
  223. package/dist/components/ui/select.d.ts +13 -2
  224. package/dist/components/ui/separator.d.ts +4 -2
  225. package/dist/components/ui/sheet.d.ts +25 -2
  226. package/dist/components/ui/spinner.d.ts +3 -2
  227. package/dist/components/ui/sweep-text.d.ts +14 -0
  228. package/dist/components/ui/switch.d.ts +4 -2
  229. package/dist/components/ui/table.d.ts +10 -2
  230. package/dist/components/ui/tabs.d.ts +7 -2
  231. package/dist/components/ui/textarea.d.ts +6 -2
  232. package/dist/components/ui/tooltip.d.ts +10 -2
  233. package/dist/components/ui/types.d.ts +1 -0
  234. package/dist/components/usage-indicator-pill/index.d.ts +1 -0
  235. package/dist/components/usage-indicator-pill/usage-indicator-pill.d.ts +23 -0
  236. package/dist/env.d.ts +5 -0
  237. package/dist/esm/colors/blue.js +16 -0
  238. package/dist/esm/colors/dark.js +17 -0
  239. package/dist/esm/colors/green.js +16 -0
  240. package/dist/esm/colors/lime.js +16 -0
  241. package/dist/esm/colors/magenta.js +16 -0
  242. package/dist/esm/colors/orange.js +16 -0
  243. package/dist/esm/colors/pink.js +16 -0
  244. package/dist/esm/colors/primary.js +17 -0
  245. package/dist/esm/colors/purple.js +16 -0
  246. package/dist/esm/colors/red.js +16 -0
  247. package/dist/esm/colors/teal.js +16 -0
  248. package/dist/esm/colors/yellow.js +16 -0
  249. package/dist/esm/colors.js +29 -2
  250. package/dist/esm/components/ai-button/ai-badge.js +44 -0
  251. package/dist/esm/components/article-suggestions-banner/article-suggestions-banner.js +49 -0
  252. package/dist/esm/components/article-suggestions-banner.js +1 -5
  253. package/dist/esm/components/articles-coverage/articles-coverage.js +116 -0
  254. package/dist/esm/components/articles-coverage.js +1 -5
  255. package/dist/esm/components/articles-updated/articles-updated.js +74 -0
  256. package/dist/esm/components/articles-updated.js +1 -5
  257. package/dist/esm/components/breadcrumbs/breadcrumbs.js +13 -0
  258. package/dist/esm/components/breadcrumbs.js +1 -4
  259. package/dist/esm/components/chart-area-linear/chart-area-linear.js +66 -0
  260. package/dist/esm/components/chart-area-linear.js +1 -7
  261. package/dist/esm/components/chart-radial-stacked/chart-radial-stacked.js +48 -0
  262. package/dist/esm/components/chart-radial-stacked.js +1 -3
  263. package/dist/esm/components/chat-search/ActiveConversations.js +16 -0
  264. package/dist/esm/components/chat-search/Answer.js +175 -0
  265. package/dist/esm/components/chat-search/AnswerActions.js +64 -0
  266. package/dist/esm/components/chat-search/AnswerBlock.js +19 -0
  267. package/dist/esm/components/chat-search/AnswerLoadingStatus.js +8 -0
  268. package/dist/esm/components/chat-search/AttachmentThumbnails.js +45 -0
  269. package/dist/esm/components/chat-search/ChatSearch.js +1175 -0
  270. package/dist/esm/components/chat-search/ChatSearchContext.js +73 -0
  271. package/dist/esm/components/chat-search/FollowUpQuestions.js +39 -0
  272. package/dist/esm/components/chat-search/FollowUpSearchBar.js +189 -0
  273. package/dist/esm/components/chat-search/FollowUpSearchBar.module.css +4 -0
  274. package/dist/esm/components/chat-search/FollowUpSearchBar.module.css.js +6 -0
  275. package/dist/esm/components/chat-search/Header.js +104 -0
  276. package/dist/esm/components/chat-search/HistoryPage.js +82 -0
  277. package/dist/esm/components/chat-search/IncludePageToggle.js +8 -0
  278. package/dist/esm/components/chat-search/KnowledgeGroupSelector.js +23 -0
  279. package/dist/esm/components/chat-search/LoadingConversation.js +19 -0
  280. package/dist/esm/components/chat-search/NextBestActions.js +210 -0
  281. package/dist/esm/components/chat-search/PrimarySearch.js +415 -0
  282. package/dist/esm/components/chat-search/ResolvedConversationFooter.js +28 -0
  283. package/dist/esm/components/chat-search/Suggestions.js +20 -0
  284. package/dist/esm/components/chat-search/TimelineNavigation.js +113 -0
  285. package/dist/esm/components/chat-search/ToastContainer.js +29 -0
  286. package/dist/esm/components/chat-search/blocks/ActionButtons.js +5 -0
  287. package/dist/esm/components/chat-search/blocks/ActionInputForm.js +154 -0
  288. package/dist/esm/components/chat-search/blocks/MarkdownText.js +24 -0
  289. package/dist/esm/components/chat-search/blocks/utils.js +36 -0
  290. package/dist/esm/components/chat-search/helpers/buildConversationContext.js +11 -0
  291. package/dist/esm/components/chat-search/helpers/cancelStreamReader.js +21 -0
  292. package/dist/esm/components/chat-search/helpers/excuteClientAction.js +32 -0
  293. package/dist/esm/components/chat-search/helpers/initialAiMessage.js +4 -0
  294. package/dist/esm/components/chat-search/helpers/nextBestActions.js +97 -0
  295. package/dist/esm/components/chat-search/helpers/preChatFormForWidget.js +20 -0
  296. package/dist/esm/components/chat-search/hooks/useAccessibleColor.js +23 -0
  297. package/dist/esm/components/chat-search/hooks/useAnswerList.js +366 -0
  298. package/dist/esm/components/chat-search/hooks/useConversationHistory.js +128 -0
  299. package/dist/esm/components/chat-search/hooks/useConversationId.js +41 -0
  300. package/dist/esm/components/chat-search/hooks/useConversationLoader.js +99 -0
  301. package/dist/esm/components/chat-search/hooks/useDarkMode.js +18 -0
  302. package/dist/esm/components/chat-search/hooks/useFileAttachment.js +105 -0
  303. package/dist/esm/components/chat-search/hooks/useIncludePage.js +133 -0
  304. package/dist/esm/components/chat-search/hooks/useIsChatSearchDirty.js +9 -0
  305. package/dist/esm/components/chat-search/hooks/useScrollManager.js +36 -0
  306. package/dist/esm/components/chat-search/hooks/useSubscriptionManager.js +31 -0
  307. package/dist/esm/components/chat-search/hooks/useToast.js +22 -0
  308. package/dist/esm/components/chat-search/text-config.js +29 -0
  309. package/dist/esm/components/chat-search/types.js +40 -0
  310. package/dist/esm/components/chat-search.js +5 -2
  311. package/dist/esm/components/combobox/combobox.js +94 -0
  312. package/dist/esm/components/combobox.js +1 -2
  313. package/dist/esm/components/confirm-dialog/confirm-dialog.js +46 -0
  314. package/dist/esm/components/confirm-dialog.js +1 -3
  315. package/dist/esm/components/conversation/AttachmentPreviews.js +86 -0
  316. package/dist/esm/components/conversation/ContextPillBadge.js +35 -0
  317. package/dist/esm/components/conversation/Conversation.js +106 -0
  318. package/dist/esm/components/conversation/ConversationActions.js +20 -0
  319. package/dist/esm/components/conversation/ConversationContext.js +49 -0
  320. package/dist/esm/components/conversation/ConversationHeader.js +49 -0
  321. package/dist/esm/components/conversation/ConversationInput.js +350 -0
  322. package/dist/esm/components/conversation/ConversationMessage.js +16 -0
  323. package/dist/esm/components/conversation/ConversationMessageAssistant.js +53 -0
  324. package/dist/esm/components/conversation/ConversationMessageUser.js +46 -0
  325. package/dist/esm/components/conversation/ConversationMessages.js +50 -0
  326. package/dist/esm/components/conversation/ConversationStatus.js +13 -0
  327. package/dist/esm/components/conversation/ConversationSuggestions.js +21 -0
  328. package/dist/esm/components/conversation/attachmentUtils.js +9 -0
  329. package/dist/esm/components/conversation/blocks/CitationBlock.js +21 -0
  330. package/dist/esm/components/conversation/blocks/TextBlock.js +8 -0
  331. package/dist/esm/components/conversation/blocks/index.js +12 -0
  332. package/dist/esm/components/conversation/status.js +34 -0
  333. package/dist/esm/components/conversation/welcome.js +50 -0
  334. package/dist/esm/components/conversation.js +11 -2
  335. package/dist/esm/components/convos/answer-diagnostics.js +17 -0
  336. package/dist/esm/components/convos/attributes-dialog.css +51 -0
  337. package/dist/esm/components/convos/attributes-dialog.js +70 -0
  338. package/dist/esm/components/convos/confidence-badge.js +17 -0
  339. package/dist/esm/components/convos/convo.js +142 -0
  340. package/dist/esm/components/convos/convos.js +85 -0
  341. package/dist/esm/components/convos/discard-form.js +187 -0
  342. package/dist/esm/components/convos/empty-convos.js +8 -0
  343. package/dist/esm/components/convos/feedback-dialog.js +61 -0
  344. package/dist/esm/components/convos/message.css +258 -0
  345. package/dist/esm/components/convos/message.js +113 -0
  346. package/dist/esm/components/convos/status-badge.js +45 -0
  347. package/dist/esm/components/convos/stream-badge.js +33 -0
  348. package/dist/esm/components/convos.js +5 -29
  349. package/dist/esm/components/data-table/data-table.js +101 -0
  350. package/dist/esm/components/data-table.js +1 -2
  351. package/dist/esm/components/date-picker/date-picker.js +26 -0
  352. package/dist/esm/components/date-picker.js +1 -2
  353. package/dist/esm/components/discoveries-created/discoveries-created.js +64 -0
  354. package/dist/esm/components/discoveries-created.js +1 -5
  355. package/dist/esm/components/editable-label/editable-label.js +73 -0
  356. package/dist/esm/components/editable-label.js +1 -3
  357. package/dist/esm/components/feedback/feedback-reason.js +81 -0
  358. package/dist/esm/components/feedback/feedback.js +90 -0
  359. package/dist/esm/components/feedback.js +1 -2
  360. package/dist/esm/components/file-upload/file-upload-status.js +78 -0
  361. package/dist/esm/components/file-upload/file-upload.js +62 -0
  362. package/dist/esm/components/file-upload/utils.js +9 -0
  363. package/dist/esm/components/file-upload.js +3 -2
  364. package/dist/esm/components/filter/components/CustomValueInput.js +49 -0
  365. package/dist/esm/components/filter/components/MultiSelectDropdown.js +111 -0
  366. package/dist/esm/components/filter/components/SingleSelectDropdown.js +50 -0
  367. package/dist/esm/components/filter/filter.js +260 -0
  368. package/dist/esm/components/filter/filters.js +85 -0
  369. package/dist/esm/components/filter/hooks.js +28 -0
  370. package/dist/esm/components/filter/types.js +10 -0
  371. package/dist/esm/components/filter.js +3 -2
  372. package/dist/esm/components/font-picker/font-picker-item.js +47 -0
  373. package/dist/esm/components/font-picker/font-picker.js +54 -0
  374. package/dist/esm/components/font-picker/font-utils.js +45 -0
  375. package/dist/esm/components/font-picker/use-font-options.js +46 -0
  376. package/dist/esm/components/font-picker.js +4 -2
  377. package/dist/esm/components/generating-star/generating-star.js +85 -0
  378. package/dist/esm/components/generating-star.js +1 -2
  379. package/dist/esm/components/input-with-tags/input-with-tags.js +109 -0
  380. package/dist/esm/components/input-with-tags.js +1 -2
  381. package/dist/esm/components/logo/ai-logo.js +46 -0
  382. package/dist/esm/components/logo/chat-logo.js +32 -0
  383. package/dist/esm/components/logo/logo.js +191 -0
  384. package/dist/esm/components/logo.js +3 -2
  385. package/dist/esm/components/love/love.js +55 -0
  386. package/dist/esm/components/markdown/CodeBlock.js +76 -0
  387. package/dist/esm/components/markdown/FormattedMessage.js +227 -0
  388. package/dist/esm/components/markdown/Frame.js +46 -0
  389. package/dist/esm/components/markdown/MemoizedReactMarkdown.js +9 -0
  390. package/dist/esm/components/markdown/MermaidDiagram.js +49 -0
  391. package/dist/esm/components/markdown/SmartImage.js +25 -0
  392. package/dist/esm/components/markdown/ZoomableImage.js +96 -0
  393. package/dist/esm/components/markdown/embeds/Loom.js +13 -0
  394. package/dist/esm/components/markdown/embeds/NativeVideo.js +85 -0
  395. package/dist/esm/components/markdown/embeds/Supademo.js +12 -0
  396. package/dist/esm/components/markdown/embeds/Typeform.js +12 -0
  397. package/dist/esm/components/markdown/embeds/VideoTimeline.js +42 -0
  398. package/dist/esm/components/markdown/embeds/Vimeo.js +21 -0
  399. package/dist/esm/components/markdown/embeds/Wistia.js +21 -0
  400. package/dist/esm/components/markdown/embeds/Youtube.js +33 -0
  401. package/dist/esm/components/markdown/embeds/index.js +36 -0
  402. package/dist/esm/components/markdown/utils/codeblock.js +36 -0
  403. package/dist/esm/components/markdown/utils/stripNewLines.js +3 -0
  404. package/dist/esm/components/markdown/utils/urls.js +34 -0
  405. package/dist/esm/components/markdown.js +5 -2
  406. package/dist/esm/components/metric-card/metric-card.js +29 -0
  407. package/dist/esm/components/metric-card-group/metric-card-group.js +8 -0
  408. package/dist/esm/components/metric-card-group.js +1 -3
  409. package/dist/esm/components/metric-card.js +1 -4
  410. package/dist/esm/components/plan-usage-card/plan-usage-card.js +16 -0
  411. package/dist/esm/components/plan-usage-card.js +1 -3
  412. package/dist/esm/components/rich-text-input/LexicalEditor.js +108 -0
  413. package/dist/esm/components/rich-text-input/RichTextInput.js +7 -0
  414. package/dist/esm/components/select/simpleSelect.js +22 -0
  415. package/dist/esm/components/select.js +1 -2
  416. package/dist/esm/components/trend-value/trend-value.js +50 -0
  417. package/dist/esm/components/trend-value.js +1 -2
  418. package/dist/esm/components/two-level-combobox/two-level-combobox.js +131 -0
  419. package/dist/esm/components/two-level-combobox.js +1 -2
  420. package/dist/esm/components/ui/accordion.js +46 -8
  421. package/dist/esm/components/ui/alert-dialog.js +114 -4
  422. package/dist/esm/components/ui/alert.js +103 -5
  423. package/dist/esm/components/ui/avatar.js +89 -8
  424. package/dist/esm/components/ui/badge.js +26 -3
  425. package/dist/esm/components/ui/breadcrumb.js +60 -5
  426. package/dist/esm/components/ui/button-group.js +88 -5
  427. package/dist/esm/components/ui/button.js +63 -2
  428. package/dist/esm/components/ui/calendar.css +255 -0
  429. package/dist/esm/components/ui/calendar.js +20 -3
  430. package/dist/esm/components/ui/card.js +55 -2
  431. package/dist/esm/components/ui/chart.js +198 -0
  432. package/dist/esm/components/ui/collapsible.js +33 -2
  433. package/dist/esm/components/ui/combobox.js +1 -2
  434. package/dist/esm/components/ui/command.js +79 -3
  435. package/dist/esm/components/ui/dialog.js +53 -3
  436. package/dist/esm/components/ui/div-button.js +61 -3
  437. package/dist/esm/components/ui/dropdown-menu.js +114 -4
  438. package/dist/esm/components/ui/hover-card.js +22 -2
  439. package/dist/esm/components/ui/icon.js +25 -3
  440. package/dist/esm/components/ui/input.js +47 -5
  441. package/dist/esm/components/ui/item.js +140 -12
  442. package/dist/esm/components/ui/label.js +19 -2
  443. package/dist/esm/components/ui/popover.js +31 -2
  444. package/dist/esm/components/ui/progress.js +22 -3
  445. package/dist/esm/components/ui/radio-group.js +33 -3
  446. package/dist/esm/components/ui/resizable.js +38 -5
  447. package/dist/esm/components/ui/ripple-status.js +22 -0
  448. package/dist/esm/components/ui/ripple.js +23 -0
  449. package/dist/esm/components/ui/ripple.module.css +47 -0
  450. package/dist/esm/components/ui/ripple.module.css.js +8 -0
  451. package/dist/esm/components/ui/scroll-area.js +32 -3
  452. package/dist/esm/components/ui/select.js +66 -6
  453. package/dist/esm/components/ui/separator.js +23 -2
  454. package/dist/esm/components/ui/sheet.js +62 -4
  455. package/dist/esm/components/ui/spinner.js +17 -3
  456. package/dist/esm/components/ui/sweep-text.js +24 -0
  457. package/dist/esm/components/ui/switch.js +26 -3
  458. package/dist/esm/components/ui/table.js +82 -2
  459. package/dist/esm/components/ui/tabs.js +65 -2
  460. package/dist/esm/components/ui/textarea.js +33 -2
  461. package/dist/esm/components/ui/tooltip.js +31 -4
  462. package/dist/esm/components/usage-indicator-pill/usage-indicator-pill.js +45 -0
  463. package/dist/esm/global.css +5327 -1
  464. package/dist/esm/index.js +94 -6
  465. package/dist/esm/layouts/full-layout/blurry-blob.js +21 -0
  466. package/dist/esm/layouts/full-layout/components/body.js +8 -0
  467. package/dist/esm/layouts/full-layout/components/header.js +28 -0
  468. package/dist/esm/layouts/full-layout/components/left-sidebar.js +33 -0
  469. package/dist/esm/layouts/full-layout/components/main-area.js +8 -0
  470. package/dist/esm/layouts/full-layout/components/main.js +23 -0
  471. package/dist/esm/layouts/full-layout/components/right-sidebar.js +21 -0
  472. package/dist/esm/layouts/full-layout/context.js +24 -0
  473. package/dist/esm/layouts/full-layout/header-pane.js +49 -0
  474. package/dist/esm/layouts/full-layout/layout.js +305 -0
  475. package/dist/esm/layouts/full-layout/left-sidebar-pane.js +66 -0
  476. package/dist/esm/layouts/full-layout/right-sidebar-pane.js +28 -0
  477. package/dist/esm/layouts/full-layout.js +5 -2
  478. package/dist/esm/layouts/header-nav/account-dropdown.js +90 -0
  479. package/dist/esm/layouts/header-nav/header-nav.js +116 -0
  480. package/dist/esm/layouts/header-nav.js +1 -2
  481. package/dist/esm/layouts/sidebar/app-nav/app-nav.js +47 -0
  482. package/dist/esm/layouts/sidebar/article-nav/article-item.js +138 -0
  483. package/dist/esm/layouts/sidebar/article-nav/article-nav.js +75 -0
  484. package/dist/esm/layouts/sidebar/article-nav/article-search-results.js +46 -0
  485. package/dist/esm/layouts/sidebar/article-nav/article-search.js +44 -0
  486. package/dist/esm/layouts/sidebar/article-nav/article-tree.js +243 -0
  487. package/dist/esm/layouts/sidebar/article-nav/expansion.js +6 -0
  488. package/dist/esm/layouts/sidebar/article-nav/status-icons/article-status-icon.js +34 -0
  489. package/dist/esm/layouts/sidebar/article-nav/status-icons/chevron-slot.js +8 -0
  490. package/dist/esm/layouts/sidebar/article-nav/status-icons/constant.js +3 -0
  491. package/dist/esm/layouts/sidebar/article-nav/status-icons/discovery-icon.js +15 -0
  492. package/dist/esm/layouts/sidebar/article-nav/status-icons/file/file-status-icon.js +31 -0
  493. package/dist/esm/layouts/sidebar/article-nav/status-icons/folder/folder-status-icon.js +59 -0
  494. package/dist/esm/layouts/sidebar/article-nav/status-icons/icon-shell.js +12 -0
  495. package/dist/esm/layouts/sidebar/article-nav/tree-sync.js +52 -0
  496. package/dist/esm/layouts/sidebar/context.js +72 -0
  497. package/dist/esm/layouts/sidebar/section-nav/section-nav.js +26 -0
  498. package/dist/esm/layouts/sidebar/sidebar.js +85 -0
  499. package/dist/esm/layouts/sidebar.js +2 -2
  500. package/dist/esm/lib/addUtmParams.js +26 -0
  501. package/dist/esm/lib/ajvResolver.js +60 -0
  502. package/dist/esm/lib/api.js +240 -0
  503. package/dist/esm/lib/countSuggestions.js +21 -0
  504. package/dist/esm/lib/feature-flags.js +21 -0
  505. package/dist/esm/lib/features.js +5 -0
  506. package/dist/esm/lib/fetchClient.js +77 -0
  507. package/dist/esm/lib/formatDate.js +40 -0
  508. package/dist/esm/lib/formatNumber.js +9 -0
  509. package/dist/esm/lib/getContentType.js +36 -0
  510. package/dist/esm/lib/hooks.js +80 -0
  511. package/dist/esm/lib/pluralise.js +6 -0
  512. package/dist/esm/lib/sortAttributeKeys.js +13 -0
  513. package/dist/esm/lib/styles.js +3 -0
  514. package/dist/esm/lib/useChartDateFormatters.js +10 -0
  515. package/dist/esm/lib/utils.js +45 -0
  516. package/dist/esm/logos/microsoft-logo.js +66 -7
  517. package/dist/esm/logos/microsoft-teams-logo.js +112 -13
  518. package/dist/esm/logos/slack-logo.js +39 -4
  519. package/dist/esm/scenes/knowledge-review/context.js +69 -0
  520. package/dist/esm/scenes/knowledge-review/diff-loader.js +42 -0
  521. package/dist/esm/scenes/knowledge-review/knowledge-review-panel.js +83 -0
  522. package/dist/esm/scenes/knowledge-review/knowledge-review.css +14 -0
  523. package/dist/esm/scenes/knowledge-review/review-list/edit-count.js +8 -0
  524. package/dist/esm/scenes/knowledge-review/review-list/review-list-item.js +37 -0
  525. package/dist/esm/scenes/knowledge-review/review-list/review-list.js +23 -0
  526. package/dist/esm/scenes/knowledge-review/scene.js +122 -0
  527. package/dist/esm/scenes/knowledge-review/status-source-summary.js +41 -0
  528. package/dist/esm/scenes/knowledge-review/suggestion-card/suggestion-card.js +110 -0
  529. package/dist/esm/scenes/knowledge-review/suggestions-header/suggestions-header-title-nav.js +54 -0
  530. package/dist/esm/scenes/knowledge-review/suggestions-header/suggestions-header-toolbar.js +114 -0
  531. package/dist/esm/scenes/knowledge-review/suggestions-header/suggestions-header.js +105 -0
  532. package/dist/esm/scenes/knowledge-review.js +5 -20
  533. package/dist/esm/tailwind.preset.js +305 -2
  534. package/dist/esm/tokens.css +539 -0
  535. package/dist/index.d.ts +60 -2634
  536. package/dist/layouts/full-layout/blurry-blob.d.ts +11 -0
  537. package/dist/layouts/full-layout/components/body.d.ts +7 -0
  538. package/dist/layouts/full-layout/components/header.d.ts +6 -0
  539. package/dist/layouts/full-layout/components/index.d.ts +7 -0
  540. package/dist/layouts/full-layout/components/left-sidebar.d.ts +6 -0
  541. package/dist/layouts/full-layout/components/main-area.d.ts +7 -0
  542. package/dist/layouts/full-layout/components/main.d.ts +8 -0
  543. package/dist/layouts/full-layout/components/right-sidebar.d.ts +8 -0
  544. package/dist/layouts/full-layout/context.d.ts +61 -0
  545. package/dist/layouts/full-layout/header-pane.d.ts +7 -0
  546. package/dist/layouts/full-layout/index.d.ts +10 -0
  547. package/dist/layouts/full-layout/layout.d.ts +27 -0
  548. package/dist/layouts/full-layout/left-sidebar-pane.d.ts +14 -0
  549. package/dist/layouts/full-layout/right-sidebar-pane.d.ts +8 -0
  550. package/dist/layouts/header-nav/account-dropdown.d.ts +71 -0
  551. package/dist/layouts/header-nav/header-nav.d.ts +22 -0
  552. package/dist/layouts/header-nav/index.d.ts +2 -0
  553. package/dist/layouts/sidebar/app-nav/app-nav.d.ts +12 -0
  554. package/dist/layouts/sidebar/app-nav/index.d.ts +1 -0
  555. package/dist/layouts/sidebar/article-nav/article-item.d.ts +18 -0
  556. package/dist/layouts/sidebar/article-nav/article-nav.d.ts +8 -0
  557. package/dist/layouts/sidebar/article-nav/article-search-results.d.ts +7 -0
  558. package/dist/layouts/sidebar/article-nav/article-search.d.ts +2 -0
  559. package/dist/layouts/sidebar/article-nav/article-tree.d.ts +10 -0
  560. package/dist/layouts/sidebar/article-nav/expansion.d.ts +2 -0
  561. package/dist/layouts/sidebar/article-nav/index.d.ts +1 -0
  562. package/dist/layouts/sidebar/article-nav/status-icons/article-status-icon.d.ts +11 -0
  563. package/dist/layouts/sidebar/article-nav/status-icons/chevron-slot.d.ts +4 -0
  564. package/dist/layouts/sidebar/article-nav/status-icons/constant.d.ts +1 -0
  565. package/dist/layouts/sidebar/article-nav/status-icons/discovery-icon.d.ts +4 -0
  566. package/dist/layouts/sidebar/article-nav/status-icons/file/file-status-icon.d.ts +7 -0
  567. package/dist/layouts/sidebar/article-nav/status-icons/folder/folder-status-icon.d.ts +9 -0
  568. package/dist/layouts/sidebar/article-nav/status-icons/icon-shell.d.ts +2 -0
  569. package/dist/layouts/sidebar/article-nav/status-icons/index.d.ts +1 -0
  570. package/dist/layouts/sidebar/article-nav/tree-sync.d.ts +20 -0
  571. package/dist/layouts/sidebar/context.d.ts +33 -0
  572. package/dist/layouts/sidebar/index.d.ts +3 -0
  573. package/dist/layouts/sidebar/mocks.d.ts +4 -0
  574. package/dist/layouts/sidebar/section-nav/index.d.ts +1 -0
  575. package/dist/layouts/sidebar/section-nav/section-nav.d.ts +8 -0
  576. package/dist/layouts/sidebar/sidebar.d.ts +15 -0
  577. package/dist/layouts/sidebar/types.d.ts +20 -0
  578. package/dist/lib/addUtmParams.d.ts +20 -0
  579. package/dist/lib/ajvResolver.d.ts +5 -0
  580. package/dist/lib/api.d.ts +133 -0
  581. package/dist/lib/countSuggestions.d.ts +4 -0
  582. package/dist/lib/feature-flags.d.ts +9 -0
  583. package/dist/lib/features.d.ts +4 -0
  584. package/dist/lib/fetchClient.d.ts +19 -0
  585. package/dist/lib/formatDate.d.ts +4 -0
  586. package/dist/lib/formatNumber.d.ts +1 -0
  587. package/dist/lib/getContentType.d.ts +1 -0
  588. package/dist/lib/groupAttributesByKey.d.ts +1 -0
  589. package/dist/lib/hooks.d.ts +19 -0
  590. package/dist/lib/pluralise.d.ts +1 -0
  591. package/dist/lib/sortAttributeKeys.d.ts +1 -0
  592. package/dist/lib/styles.d.ts +1 -0
  593. package/dist/lib/useChartDateFormatters.d.ts +4 -0
  594. package/dist/lib/utils.d.ts +7 -0
  595. package/dist/logos/microsoft-logo.d.ts +10 -2
  596. package/dist/logos/microsoft-teams-logo.d.ts +10 -2
  597. package/dist/logos/slack-logo.d.ts +10 -2
  598. package/dist/scenes/knowledge-review/context.d.ts +46 -0
  599. package/dist/scenes/knowledge-review/diff-loader.d.ts +10 -0
  600. package/dist/scenes/knowledge-review/index.d.ts +10 -0
  601. package/dist/scenes/knowledge-review/knowledge-review-panel.d.ts +18 -0
  602. package/dist/scenes/knowledge-review/review-list/edit-count.d.ts +4 -0
  603. package/dist/scenes/knowledge-review/review-list/index.d.ts +3 -0
  604. package/dist/scenes/knowledge-review/review-list/mockItems.d.ts +43 -0
  605. package/dist/scenes/knowledge-review/review-list/review-list-item.d.ts +22 -0
  606. package/dist/scenes/knowledge-review/review-list/review-list.d.ts +8 -0
  607. package/dist/scenes/knowledge-review/scene.d.ts +33 -0
  608. package/dist/scenes/knowledge-review/status-source-summary.d.ts +12 -0
  609. package/dist/scenes/knowledge-review/suggestion-card/index.d.ts +2 -0
  610. package/dist/scenes/knowledge-review/suggestion-card/suggestion-card.d.ts +88 -0
  611. package/dist/scenes/knowledge-review/suggestions-header/index.d.ts +1 -0
  612. package/dist/scenes/knowledge-review/suggestions-header/suggestions-header-title-nav.d.ts +12 -0
  613. package/dist/scenes/knowledge-review/suggestions-header/suggestions-header-toolbar.d.ts +20 -0
  614. package/dist/scenes/knowledge-review/suggestions-header/suggestions-header.d.ts +17 -0
  615. package/package.json +36 -27
  616. package/dist/accordion.d.ts +0 -12
  617. package/dist/alert-dialog.d.ts +0 -50
  618. package/dist/alert.d.ts +0 -18
  619. package/dist/article-suggestions-banner.d.ts +0 -16
  620. package/dist/articles-coverage.d.ts +0 -41
  621. package/dist/articles-updated.d.ts +0 -41
  622. package/dist/avatar.d.ts +0 -18
  623. package/dist/badge.d.ts +0 -14
  624. package/dist/breadcrumb.d.ts +0 -27
  625. package/dist/breadcrumbs.d.ts +0 -27
  626. package/dist/button-group.d.ts +0 -22
  627. package/dist/button.d.ts +0 -18
  628. package/dist/calendar.d.ts +0 -12
  629. package/dist/card.d.ts +0 -15
  630. package/dist/chart-area-linear.d.ts +0 -41
  631. package/dist/chart-radial-stacked.d.ts +0 -39
  632. package/dist/chat-search.d.ts +0 -532
  633. package/dist/collapsible.d.ts +0 -10
  634. package/dist/command.d.ts +0 -90
  635. package/dist/confirm-dialog.d.ts +0 -37
  636. package/dist/conversation.d.ts +0 -362
  637. package/dist/convos.d.ts +0 -220
  638. package/dist/data-table.d.ts +0 -23
  639. package/dist/dialog.d.ts +0 -30
  640. package/dist/discoveries-created.d.ts +0 -49
  641. package/dist/div-button.d.ts +0 -16
  642. package/dist/dropdown-menu.d.ts +0 -47
  643. package/dist/editable-label.d.ts +0 -8
  644. package/dist/esm/ChatSearch.css +0 -1
  645. package/dist/esm/chunks/ChatSearch.Crh0QjPs.js +0 -96
  646. package/dist/esm/chunks/ChatSearch.Crh0QjPs.js.map +0 -1
  647. package/dist/esm/chunks/Conversation.CWR55agZ.js +0 -33
  648. package/dist/esm/chunks/Conversation.CWR55agZ.js.map +0 -1
  649. package/dist/esm/chunks/FormattedMessage.DXVhkV-z.js +0 -23
  650. package/dist/esm/chunks/FormattedMessage.DXVhkV-z.js.map +0 -1
  651. package/dist/esm/chunks/MermaidDiagram.PRgXQ5Yh.js +0 -2
  652. package/dist/esm/chunks/MermaidDiagram.PRgXQ5Yh.js.map +0 -1
  653. package/dist/esm/chunks/_commonjsHelpers.lGe4XDVY.js +0 -2
  654. package/dist/esm/chunks/_commonjsHelpers.lGe4XDVY.js.map +0 -1
  655. package/dist/esm/chunks/ai-badge.BxsWnJJZ.js +0 -5
  656. package/dist/esm/chunks/ai-badge.BxsWnJJZ.js.map +0 -1
  657. package/dist/esm/chunks/ai-logo.Bh2bhNcG.js +0 -8
  658. package/dist/esm/chunks/ai-logo.Bh2bhNcG.js.map +0 -1
  659. package/dist/esm/chunks/button.DXe2tRBO.js +0 -3
  660. package/dist/esm/chunks/button.DXe2tRBO.js.map +0 -1
  661. package/dist/esm/chunks/chart.D9xvsrKX.js +0 -10
  662. package/dist/esm/chunks/chart.D9xvsrKX.js.map +0 -1
  663. package/dist/esm/chunks/chat-logo.F_m9SJrM.js +0 -3
  664. package/dist/esm/chunks/chat-logo.F_m9SJrM.js.map +0 -1
  665. package/dist/esm/chunks/combobox.Ccfe3IGO.js +0 -6
  666. package/dist/esm/chunks/combobox.Ccfe3IGO.js.map +0 -1
  667. package/dist/esm/chunks/dark.DuW7JuAk.js +0 -2
  668. package/dist/esm/chunks/dark.DuW7JuAk.js.map +0 -1
  669. package/dist/esm/chunks/data-table.Dn7VQJFo.js +0 -5
  670. package/dist/esm/chunks/data-table.Dn7VQJFo.js.map +0 -1
  671. package/dist/esm/chunks/date-picker.GRONonNX.js +0 -4
  672. package/dist/esm/chunks/date-picker.GRONonNX.js.map +0 -1
  673. package/dist/esm/chunks/extends.DPdBf6DS.js +0 -2
  674. package/dist/esm/chunks/extends.DPdBf6DS.js.map +0 -1
  675. package/dist/esm/chunks/feature-flags.DOcVlPHk.js +0 -3
  676. package/dist/esm/chunks/feature-flags.DOcVlPHk.js.map +0 -1
  677. package/dist/esm/chunks/feedback.nVBNjdPh.js +0 -13
  678. package/dist/esm/chunks/feedback.nVBNjdPh.js.map +0 -1
  679. package/dist/esm/chunks/file-upload-status.znDE1kUC.js +0 -8
  680. package/dist/esm/chunks/file-upload-status.znDE1kUC.js.map +0 -1
  681. package/dist/esm/chunks/filters.CZJ31Eqj.js +0 -22
  682. package/dist/esm/chunks/filters.CZJ31Eqj.js.map +0 -1
  683. package/dist/esm/chunks/font-picker.DrA0q0TI.js +0 -6
  684. package/dist/esm/chunks/font-picker.DrA0q0TI.js.map +0 -1
  685. package/dist/esm/chunks/formatDate.D2xEZm8f.js +0 -2
  686. package/dist/esm/chunks/formatDate.D2xEZm8f.js.map +0 -1
  687. package/dist/esm/chunks/formatNumber.DhVn228t.js +0 -2
  688. package/dist/esm/chunks/formatNumber.DhVn228t.js.map +0 -1
  689. package/dist/esm/chunks/generating-star.DN8DVygp.js +0 -7
  690. package/dist/esm/chunks/generating-star.DN8DVygp.js.map +0 -1
  691. package/dist/esm/chunks/header-nav.BQXr30-S.js +0 -12
  692. package/dist/esm/chunks/header-nav.BQXr30-S.js.map +0 -1
  693. package/dist/esm/chunks/header-pane.D40kbO-a.js +0 -20
  694. package/dist/esm/chunks/header-pane.D40kbO-a.js.map +0 -1
  695. package/dist/esm/chunks/hooks.DjDPgQm6.js +0 -2
  696. package/dist/esm/chunks/hooks.DjDPgQm6.js.map +0 -1
  697. package/dist/esm/chunks/index.C9B3bui8.js +0 -2
  698. package/dist/esm/chunks/index.C9B3bui8.js.map +0 -1
  699. package/dist/esm/chunks/input-with-tags.4LvQIIuq.js +0 -5
  700. package/dist/esm/chunks/input-with-tags.4LvQIIuq.js.map +0 -1
  701. package/dist/esm/chunks/logo.DtwFGMBj.js +0 -5
  702. package/dist/esm/chunks/logo.DtwFGMBj.js.map +0 -1
  703. package/dist/esm/chunks/primary.CMQbo1GJ.js +0 -2
  704. package/dist/esm/chunks/primary.CMQbo1GJ.js.map +0 -1
  705. package/dist/esm/chunks/ripple-status.BiOlScXz.js +0 -6
  706. package/dist/esm/chunks/ripple-status.BiOlScXz.js.map +0 -1
  707. package/dist/esm/chunks/sidebar.CM8HDZg0.js +0 -29
  708. package/dist/esm/chunks/sidebar.CM8HDZg0.js.map +0 -1
  709. package/dist/esm/chunks/simpleSelect.C1KHuEVe.js +0 -3
  710. package/dist/esm/chunks/simpleSelect.C1KHuEVe.js.map +0 -1
  711. package/dist/esm/chunks/status-badge.BVWcC9Dt.js +0 -3
  712. package/dist/esm/chunks/status-badge.BVWcC9Dt.js.map +0 -1
  713. package/dist/esm/chunks/suggestion-card.PPUwB3ML.js +0 -21
  714. package/dist/esm/chunks/suggestion-card.PPUwB3ML.js.map +0 -1
  715. package/dist/esm/chunks/trend-value.lSWHqdkm.js +0 -3
  716. package/dist/esm/chunks/trend-value.lSWHqdkm.js.map +0 -1
  717. package/dist/esm/chunks/two-level-combobox.CQUmvlq6.js +0 -8
  718. package/dist/esm/chunks/two-level-combobox.CQUmvlq6.js.map +0 -1
  719. package/dist/esm/chunks/useChartDateFormatters.Dx2h5AAm.js +0 -2
  720. package/dist/esm/chunks/useChartDateFormatters.Dx2h5AAm.js.map +0 -1
  721. package/dist/esm/chunks/utils.DtKoarLP.js +0 -2
  722. package/dist/esm/chunks/utils.DtKoarLP.js.map +0 -1
  723. package/dist/esm/colors.js.map +0 -1
  724. package/dist/esm/components/accordion.js +0 -1
  725. package/dist/esm/components/alert-dialog.js +0 -1
  726. package/dist/esm/components/alert.js +0 -1
  727. package/dist/esm/components/article-suggestions-banner.js.map +0 -1
  728. package/dist/esm/components/articles-coverage.js.map +0 -1
  729. package/dist/esm/components/articles-updated.js.map +0 -1
  730. package/dist/esm/components/avatar.js +0 -1
  731. package/dist/esm/components/badge.js +0 -1
  732. package/dist/esm/components/breadcrumb.js +0 -1
  733. package/dist/esm/components/breadcrumbs.js.map +0 -1
  734. package/dist/esm/components/button-group.js +0 -1
  735. package/dist/esm/components/button.js +0 -1
  736. package/dist/esm/components/calendar.js +0 -1
  737. package/dist/esm/components/card.js +0 -1
  738. package/dist/esm/components/chart-area-linear.js.map +0 -1
  739. package/dist/esm/components/chart-radial-stacked.js.map +0 -1
  740. package/dist/esm/components/chat-search.js.map +0 -1
  741. package/dist/esm/components/collapsible.js +0 -1
  742. package/dist/esm/components/combobox.js.map +0 -1
  743. package/dist/esm/components/command.js +0 -1
  744. package/dist/esm/components/confirm-dialog.js.map +0 -1
  745. package/dist/esm/components/conversation.js.map +0 -1
  746. package/dist/esm/components/convos.js.map +0 -1
  747. package/dist/esm/components/data-table.js.map +0 -1
  748. package/dist/esm/components/date-picker.js.map +0 -1
  749. package/dist/esm/components/dialog.js +0 -1
  750. package/dist/esm/components/discoveries-created.js.map +0 -1
  751. package/dist/esm/components/div-button.js +0 -1
  752. package/dist/esm/components/dropdown-menu.js +0 -1
  753. package/dist/esm/components/editable-label.js.map +0 -1
  754. package/dist/esm/components/feedback.js.map +0 -1
  755. package/dist/esm/components/file-upload.js.map +0 -1
  756. package/dist/esm/components/filter.js.map +0 -1
  757. package/dist/esm/components/font-picker.js.map +0 -1
  758. package/dist/esm/components/generating-star.js.map +0 -1
  759. package/dist/esm/components/hover-card.js +0 -1
  760. package/dist/esm/components/icon.js +0 -1
  761. package/dist/esm/components/input-with-tags.js.map +0 -1
  762. package/dist/esm/components/input.js +0 -1
  763. package/dist/esm/components/item.js +0 -1
  764. package/dist/esm/components/label.js +0 -1
  765. package/dist/esm/components/logo.js.map +0 -1
  766. package/dist/esm/components/markdown.js.map +0 -1
  767. package/dist/esm/components/metric-card-group.js.map +0 -1
  768. package/dist/esm/components/metric-card.js.map +0 -1
  769. package/dist/esm/components/plan-usage-card.js.map +0 -1
  770. package/dist/esm/components/popover.js +0 -1
  771. package/dist/esm/components/progress.js +0 -1
  772. package/dist/esm/components/radio-group.js +0 -1
  773. package/dist/esm/components/resizable.js +0 -1
  774. package/dist/esm/components/scroll-area.js +0 -1
  775. package/dist/esm/components/select.js.map +0 -1
  776. package/dist/esm/components/separator.js +0 -1
  777. package/dist/esm/components/sheet.js +0 -1
  778. package/dist/esm/components/spinner.js +0 -1
  779. package/dist/esm/components/switch.js +0 -1
  780. package/dist/esm/components/table.js +0 -1
  781. package/dist/esm/components/tabs.js +0 -1
  782. package/dist/esm/components/textarea.js +0 -1
  783. package/dist/esm/components/tooltip.js +0 -1
  784. package/dist/esm/components/trend-value.js.map +0 -1
  785. package/dist/esm/components/two-level-combobox.js.map +0 -1
  786. package/dist/esm/components/ui/accordion.js.map +0 -1
  787. package/dist/esm/components/ui/alert-dialog.js.map +0 -1
  788. package/dist/esm/components/ui/alert.js.map +0 -1
  789. package/dist/esm/components/ui/avatar.js.map +0 -1
  790. package/dist/esm/components/ui/badge.js.map +0 -1
  791. package/dist/esm/components/ui/breadcrumb.js.map +0 -1
  792. package/dist/esm/components/ui/button-group.js.map +0 -1
  793. package/dist/esm/components/ui/button.js.map +0 -1
  794. package/dist/esm/components/ui/calendar.js.map +0 -1
  795. package/dist/esm/components/ui/card.js.map +0 -1
  796. package/dist/esm/components/ui/collapsible.js.map +0 -1
  797. package/dist/esm/components/ui/combobox.js.map +0 -1
  798. package/dist/esm/components/ui/command.js.map +0 -1
  799. package/dist/esm/components/ui/dialog.js.map +0 -1
  800. package/dist/esm/components/ui/div-button.js.map +0 -1
  801. package/dist/esm/components/ui/dropdown-menu.js.map +0 -1
  802. package/dist/esm/components/ui/hover-card.js.map +0 -1
  803. package/dist/esm/components/ui/icon.js.map +0 -1
  804. package/dist/esm/components/ui/input.js.map +0 -1
  805. package/dist/esm/components/ui/item.js.map +0 -1
  806. package/dist/esm/components/ui/label.js.map +0 -1
  807. package/dist/esm/components/ui/popover.js.map +0 -1
  808. package/dist/esm/components/ui/progress.js.map +0 -1
  809. package/dist/esm/components/ui/radio-group.js.map +0 -1
  810. package/dist/esm/components/ui/resizable.js.map +0 -1
  811. package/dist/esm/components/ui/scroll-area.js.map +0 -1
  812. package/dist/esm/components/ui/select.js.map +0 -1
  813. package/dist/esm/components/ui/separator.js.map +0 -1
  814. package/dist/esm/components/ui/sheet.js.map +0 -1
  815. package/dist/esm/components/ui/spinner.js.map +0 -1
  816. package/dist/esm/components/ui/switch.js.map +0 -1
  817. package/dist/esm/components/ui/table.js.map +0 -1
  818. package/dist/esm/components/ui/tabs.js.map +0 -1
  819. package/dist/esm/components/ui/textarea.js.map +0 -1
  820. package/dist/esm/components/ui/tooltip.js.map +0 -1
  821. package/dist/esm/convos.css +0 -1
  822. package/dist/esm/date-picker.css +0 -1
  823. package/dist/esm/index.js.map +0 -1
  824. package/dist/esm/knowledge-review.css +0 -1
  825. package/dist/esm/layouts/full-layout.js.map +0 -1
  826. package/dist/esm/layouts/header-nav.js.map +0 -1
  827. package/dist/esm/layouts/sidebar.js.map +0 -1
  828. package/dist/esm/logos/microsoft-logo.js.map +0 -1
  829. package/dist/esm/logos/microsoft-teams-logo.js.map +0 -1
  830. package/dist/esm/logos/slack-logo.js.map +0 -1
  831. package/dist/esm/ripple-status.css +0 -1
  832. package/dist/esm/scenes/knowledge-review.js.map +0 -1
  833. package/dist/esm/tailwind.preset.js.map +0 -1
  834. package/dist/file-upload.d.ts +0 -45
  835. package/dist/font-picker.d.ts +0 -106
  836. package/dist/full-layout.d.ts +0 -346
  837. package/dist/generating-star.d.ts +0 -15
  838. package/dist/header-nav.d.ts +0 -105
  839. package/dist/hover-card.d.ts +0 -10
  840. package/dist/icon.d.ts +0 -12
  841. package/dist/input.d.ts +0 -13
  842. package/dist/item.d.ts +0 -39
  843. package/dist/knowledge-review.d.ts +0 -228
  844. package/dist/label.d.ts +0 -8
  845. package/dist/layouts/full-layout.d.ts +0 -2
  846. package/dist/layouts/header-nav.d.ts +0 -2
  847. package/dist/layouts/sidebar.d.ts +0 -2
  848. package/dist/logo.d.ts +0 -38
  849. package/dist/markdown.d.ts +0 -55
  850. package/dist/metric-card-group.d.ts +0 -10
  851. package/dist/metric-card.d.ts +0 -21
  852. package/dist/microsoft-logo.d.ts +0 -15
  853. package/dist/microsoft-teams-logo.d.ts +0 -15
  854. package/dist/popover.d.ts +0 -18
  855. package/dist/progress.d.ts +0 -8
  856. package/dist/radio-group.d.ts +0 -8
  857. package/dist/resizable.d.ts +0 -12
  858. package/dist/scenes/knowledge-review.d.ts +0 -2
  859. package/dist/scroll-area.d.ts +0 -8
  860. package/dist/separator.d.ts +0 -6
  861. package/dist/sheet.d.ts +0 -39
  862. package/dist/sidebar.d.ts +0 -72
  863. package/dist/slack-logo.d.ts +0 -15
  864. package/dist/spinner.d.ts +0 -5
  865. package/dist/stats.html +0 -5305
  866. package/dist/switch.d.ts +0 -6
  867. package/dist/table.d.ts +0 -19
  868. package/dist/tabs.d.ts +0 -12
  869. package/dist/tailwind.preset.d.ts +0 -1
  870. package/dist/textarea.d.ts +0 -9
  871. package/dist/tooltip.d.ts +0 -16
  872. package/dist/trend-value.d.ts +0 -19
@@ -1,2 +0,0 @@
1
- import e,{useState as r,useRef as t,useEffect as a}from"react";import i from"mermaid";const n={startOnLoad:!1,theme:"default",securityLevel:"loose",fontFamily:"inherit",secure:["secure","securityLevel","startOnLoad","maxTextSize"]},o=({content:o})=>{const[m,l]=r(""),[d,s]=r(null),c=t(null),[u,g]=r(!1);return a(()=>{(()=>{try{i.initialize(n),g(!0)}catch(e){console.error("Error initializing mermaid:",e),s("Failed to initialize diagram renderer")}})()},[]),a(()=>{if(!u)return;(async()=>{try{const e=`mermaid-${Math.random().toString(36).substr(2,9)}`,{svg:r}=await i.render(e,o);l(r),s(null)}catch(e){console.error("Error rendering mermaid diagram:",e),s("Failed to render diagram")}})()},[o,u]),d?/* @__PURE__ */e.createElement("div",{className:"text-red-500 bg-red-50 p-4 rounded-md"},d,/* @__PURE__ */e.createElement("pre",{className:"mt-2 text-sm"},o)):/* @__PURE__ */e.createElement("div",{ref:c,className:"my-4 overflow-auto",dangerouslySetInnerHTML:{__html:m}})};export{o as MermaidDiagram};
2
- //# sourceMappingURL=MermaidDiagram.PRgXQ5Yh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MermaidDiagram.PRgXQ5Yh.js","sources":["../../../src/components/markdown/MermaidDiagram.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport mermaid, { MermaidConfig } from 'mermaid';\n\ninterface MermaidDiagramProps {\n content: string;\n}\n\nconst config: MermaidConfig = {\n startOnLoad: false,\n theme: 'default',\n securityLevel: 'loose',\n fontFamily: 'inherit',\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] as string[],\n};\n\nexport const MermaidDiagram: React.FC<MermaidDiagramProps> = ({ content }) => {\n const [svg, setSvg] = useState<string>('');\n const [error, setError] = useState<string | null>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n\n useEffect(() => {\n const initializeMermaid = () => {\n try {\n mermaid.initialize(config);\n setIsInitialized(true);\n } catch (err) {\n console.error('Error initializing mermaid:', err);\n setError('Failed to initialize diagram renderer');\n }\n };\n\n initializeMermaid();\n }, []);\n\n useEffect(() => {\n if (!isInitialized) return;\n\n const renderDiagram = async () => {\n try {\n const id = `mermaid-${Math.random().toString(36).substr(2, 9)}`;\n const { svg } = await mermaid.render(id, content);\n setSvg(svg);\n setError(null);\n } catch (err) {\n console.error('Error rendering mermaid diagram:', err);\n setError('Failed to render diagram');\n }\n };\n\n void renderDiagram();\n }, [content, isInitialized]);\n\n if (error) {\n return (\n <div className=\"text-red-500 bg-red-50 p-4 rounded-md\">\n {error}\n <pre className=\"mt-2 text-sm\">{content}</pre>\n </div>\n );\n }\n\n return <div ref={containerRef} className=\"my-4 overflow-auto\" dangerouslySetInnerHTML={{ __html: svg }} />;\n};\n\nexport default MermaidDiagram;\n"],"names":["config","startOnLoad","theme","securityLevel","fontFamily","secure","MermaidDiagram","content","svg","setSvg","useState","error","setError","containerRef","useRef","isInitialized","setIsInitialized","useEffect","mermaid","initialize","err","console","initializeMermaid","async","id","Math","random","toString","substr","render","renderDiagram","React","createElement","className","ref","dangerouslySetInnerHTML","__html"],"mappings":"sFAOA,MAAMA,EAAwB,CAC5BC,aAAa,EACbC,MAAO,UACPC,cAAe,QACfC,WAAY,UACZC,OAAQ,CAAC,SAAU,gBAAiB,cAAe,gBAGxCC,EAAgD,EAAGC,cAC9D,MAAOC,EAAKC,GAAUC,EAAiB,KAChCC,EAAOC,GAAYF,EAAwB,MAC5CG,EAAeC,EAAuB,OACrCC,EAAeC,GAAoBN,GAAS,GAkCnD,OAhCAO,EAAU,KACkB,MACxB,IACEC,EAAQC,WAAWnB,GACnBgB,GAAiB,EACnB,OAASI,GACPC,QAAQV,MAAM,8BAA+BS,GAC7CR,EAAS,wCACX,GAGFU,IACC,IAEHL,EAAU,KACR,IAAKF,EAAe,OAEEQ,WACpB,IACE,MAAMC,EAAK,WAAWC,KAAKC,SAASC,SAAS,IAAIC,OAAO,EAAG,MACnDpB,IAAAA,SAAcU,EAAQW,OAAOL,EAAIjB,GACzCE,EAAOD,GACPI,EAAS,KACX,OAASQ,GACPC,QAAQV,MAAM,mCAAoCS,GAClDR,EAAS,2BACX,GAGGkB,IACJ,CAACvB,EAASQ,IAETJ,iBAEAoB,EAAAC,cAAC,MAAA,CAAIC,UAAU,yCACZtB,iCACA,MAAA,CAAIsB,UAAU,gBAAgB1B,mBAK9BwB,EAAAC,cAAC,MAAA,CAAIE,IAAKrB,EAAcoB,UAAU,qBAAqBE,wBAAyB,CAAEC,OAAQ5B"}
@@ -1,2 +0,0 @@
1
- var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}export{e as c,o as g};
2
- //# sourceMappingURL=_commonjsHelpers.lGe4XDVY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_commonjsHelpers.lGe4XDVY.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import*as e from"react";import{c as t}from"./utils.DtKoarLP.js";import{A as s}from"./ai-logo.Bh2bhNcG.js";const o=e.forwardRef(({children:o,size:r=48,className:l,...a},i)=>{const n=e.useId(),p=e.useId();/* @__PURE__ */
2
- return e.createElement("div",{ref:i,className:t("relative shrink-0",l),style:{width:r,height:r},...a},/* @__PURE__ */e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",inset:0,width:"100%",height:"100%"},viewBox:"0 0 25.2 25.2",fill:"none","aria-hidden":"true"},
3
- /* @__PURE__ */e.createElement("path",{d:"M1.1687 5.09221C1.44983 3.03551 3.03409 1.43747 5.09056 1.15464C7.11115 0.876739 9.82098 0.6 12.6 0.6C15.3637 0.6 18.059 0.873703 20.076 1.15005C22.1498 1.43417 23.7418 3.05368 24.0222 5.12794C24.3077 7.23947 24.6 10.0294 24.6 12.6C24.6 15.1875 24.3038 17.9971 24.0166 20.1135C23.7379 22.1667 22.1732 23.7746 20.1207 24.0584C18.1434 24.3319 15.4723 24.6 12.6 24.6C9.71155 24.6 7.02648 24.3288 5.04597 24.0538C3.01073 23.7712 1.45383 22.185 1.17438 20.1493C0.890004 18.0777 0.6 15.3026 0.6 12.6C0.6 9.9154 0.886154 7.15926 1.1687 5.09221Z",fill:`url(#${n})`,stroke:`url(#${p})`,strokeOpacity:"0.7",strokeWidth:"1.2"}),
4
- /* @__PURE__ */e.createElement("defs",null,/* @__PURE__ */e.createElement("linearGradient",{id:n,x1:"2.3931",y1:"0.6",x2:"17.282",y2:"22.5523",gradientUnits:"userSpaceOnUse"},/* @__PURE__ */e.createElement("stop",{offset:"0.0544031",stopColor:"#1868DB"}),/* @__PURE__ */e.createElement("stop",{offset:"0.5",stopColor:"#357DE8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.802885",stopColor:"#7EE2B8"}),/* @__PURE__ */e.createElement("stop",{offset:"1",stopColor:"#B4EE2B"})),/* @__PURE__ */e.createElement("linearGradient",{id:p,x1:"2.3931",y1:"0.6",x2:"17.282",y2:"22.5523",gradientUnits:"userSpaceOnUse"},/* @__PURE__ */e.createElement("stop",{stopColor:"#B4EE2B"}),/* @__PURE__ */e.createElement("stop",{offset:"0.266033",stopColor:"#7EE2B8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.740217",stopColor:"#357DE8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.945597",stopColor:"#1868DB"})))),/* @__PURE__ */e.createElement("span",{className:"absolute inset-[20%] [&>*]:h-full [&>*]:w-full",style:{filter:`drop-shadow(0px ${(.04*r).toFixed(2)}px ${(.05*r).toFixed(2)}px rgba(22,27,53,0.55))`}},o??/* @__PURE__ */e.createElement(s,{variant:"light"})))});o.displayName="AIBadge";export{o as A};
5
- //# sourceMappingURL=ai-badge.BxsWnJJZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-badge.BxsWnJJZ.js","sources":["../../../src/components/ai-button/ai-badge.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { AILogo } from '@/components/logo/ai-logo';\n\nconst SQUIRCLE_PATH =\n 'M1.1687 5.09221C1.44983 3.03551 3.03409 1.43747 5.09056 1.15464C7.11115 0.876739 9.82098 0.6 12.6 0.6C15.3637 0.6 18.059 0.873703 20.076 1.15005C22.1498 1.43417 23.7418 3.05368 24.0222 5.12794C24.3077 7.23947 24.6 10.0294 24.6 12.6C24.6 15.1875 24.3038 17.9971 24.0166 20.1135C23.7379 22.1667 22.1732 23.7746 20.1207 24.0584C18.1434 24.3319 15.4723 24.6 12.6 24.6C9.71155 24.6 7.02648 24.3288 5.04597 24.0538C3.01073 23.7712 1.45383 22.185 1.17438 20.1493C0.890004 18.0777 0.6 15.3026 0.6 12.6C0.6 9.9154 0.886154 7.15926 1.1687 5.09221Z';\n\nexport interface AIBadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n size?: number;\n}\n\nexport const AIBadge = React.forwardRef<HTMLDivElement, AIBadgeProps>(\n ({ children, size = 48, className, ...props }, ref) => {\n const fillId = React.useId();\n const strokeId = React.useId();\n\n return (\n <div ref={ref} className={cn('relative shrink-0', className)} style={{ width: size, height: size }} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ position: 'absolute', inset: 0, width: '100%', height: '100%' }}\n viewBox=\"0 0 25.2 25.2\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d={SQUIRCLE_PATH}\n fill={`url(#${fillId})`}\n stroke={`url(#${strokeId})`}\n strokeOpacity=\"0.7\"\n strokeWidth=\"1.2\"\n />\n <defs>\n <linearGradient id={fillId} x1=\"2.3931\" y1=\"0.6\" x2=\"17.282\" y2=\"22.5523\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0544031\" stopColor=\"#1868DB\" />\n <stop offset=\"0.5\" stopColor=\"#357DE8\" />\n <stop offset=\"0.802885\" stopColor=\"#7EE2B8\" />\n <stop offset=\"1\" stopColor=\"#B4EE2B\" />\n </linearGradient>\n <linearGradient id={strokeId} x1=\"2.3931\" y1=\"0.6\" x2=\"17.282\" y2=\"22.5523\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#B4EE2B\" />\n <stop offset=\"0.266033\" stopColor=\"#7EE2B8\" />\n <stop offset=\"0.740217\" stopColor=\"#357DE8\" />\n <stop offset=\"0.945597\" stopColor=\"#1868DB\" />\n </linearGradient>\n </defs>\n </svg>\n <span\n className=\"absolute inset-[20%] [&>*]:h-full [&>*]:w-full\"\n style={{\n filter: `drop-shadow(0px ${(size * 0.04).toFixed(2)}px ${(size * 0.05).toFixed(2)}px rgba(22,27,53,0.55))`,\n }}\n >\n {children ?? <AILogo variant=\"light\" />}\n </span>\n </div>\n );\n },\n);\n\nAIBadge.displayName = 'AIBadge';\n"],"names":["AIBadge","React","forwardRef","children","size","className","props","ref","fillId","useId","strokeId","cn","style","width","height","createElement","xmlns","position","inset","viewBox","fill","d","stroke","strokeOpacity","strokeWidth","id","x1","y1","x2","y2","gradientUnits","offset","stopColor","filter","toFixed","AILogo","variant","displayName"],"mappings":"0GAKA,MAQaA,EAAUC,EAAMC,WAC3B,EAAGC,WAAUC,OAAO,GAAIC,eAAcC,GAASC,KAC7C,MAAMC,EAASP,EAAMQ,QACfC,EAAWT,EAAMQ;AAEvB,uBACG,MAAA,CAAIF,MAAUF,UAAWM,EAAG,oBAAqBN,GAAYO,MAAO,CAAEC,MAAOT,EAAMU,OAAQV,MAAYE,kBACtGL,EAAAc,cAAC,MAAA,CACCC,MAAM,6BACNJ,MAAO,CAAEK,SAAU,WAAYC,MAAO,EAAGL,MAAO,OAAQC,OAAQ,QAChEK,QAAQ,gBACRC,KAAK,OACL,cAAY;eAEZnB,EAAAc,cAAC,OAAA,CACCM,EAtBV,4hBAuBUD,KAAM,QAAQZ,KACdc,OAAQ,QAAQZ,KAChBa,cAAc,MACdC,YAAY;+BAEb,OAAA,oBACCvB,EAAAc,cAAC,kBAAeU,GAAIjB,EAAQkB,GAAG,SAASC,GAAG,MAAMC,GAAG,SAASC,GAAG,UAAUC,cAAc,iCACtF7B,EAAAc,cAAC,QAAKgB,OAAO,YAAYC,UAAU,2BACnC/B,EAAAc,cAAC,OAAA,CAAKgB,OAAO,MAAMC,UAAU,2BAC7B/B,EAAAc,cAAC,OAAA,CAAKgB,OAAO,WAAWC,UAAU,2BAClC/B,EAAAc,cAAC,OAAA,CAAKgB,OAAO,IAAIC,UAAU,4BAE7B/B,EAAAc,cAAC,iBAAA,CAAeU,GAAIf,EAAUgB,GAAG,SAASC,GAAG,MAAMC,GAAG,SAASC,GAAG,UAAUC,cAAc,iCACxF7B,EAAAc,cAAC,OAAA,CAAKiB,UAAU,2BAChB/B,EAAAc,cAAC,OAAA,CAAKgB,OAAO,WAAWC,UAAU,2BAClC/B,EAAAc,cAAC,QAAKgB,OAAO,WAAWC,UAAU,2CACjC,OAAA,CAAKD,OAAO,WAAWC,UAAU,8BAIxC/B,EAAAc,cAAC,OAAA,CACCV,UAAU,iDACVO,MAAO,CACLqB,OAAQ,oBAA2B,IAAP7B,GAAa8B,QAAQ,SAAgB,IAAP9B,GAAa8B,QAAQ,8BAGhF/B,kBAAYF,EAAAc,cAACoB,EAAA,CAAOC,QAAQ,cAOvCpC,EAAQqC,YAAc"}
@@ -1,8 +0,0 @@
1
- import*as e from"react";const t=["M32.2871 15.1692C26.8054 10.5534 22.0839 5.46043 18.1727 0C15.205 1.4739 12.4494 3.30417 9.964 5.43479C14.4641 11.8179 19.8322 17.6418 25.8951 22.7243C31.7253 27.5902 40.485 27.5703 46.2998 22.6915C52.4297 17.5217 57.7468 11.7747 62.1676 5.57625C59.6755 3.41629 56.9081 1.55954 53.9242 0.0641588C50.0224 5.50027 45.32 10.5716 39.8685 15.1692C37.6822 16.994 34.4734 16.994 32.2871 15.1692Z","M56.6639 31.8406C61.3305 26.4186 66.4795 21.7485 72 17.8798C70.5099 14.9444 68.6595 12.2188 66.5054 9.76043C60.0522 14.2115 54.1641 19.5213 49.0257 25.5182C44.1063 31.285 44.1264 39.9493 49.0589 45.7009C54.2856 51.7641 60.0958 57.0233 66.3624 61.3961C68.5461 58.9311 70.4233 56.1939 71.9351 53.2424C66.4392 49.3831 61.3122 44.7318 56.6639 39.3396C54.8191 37.177 54.8191 34.0032 56.6639 31.8406Z","M40.0024 56.8308C45.4841 61.4466 50.2056 66.5396 54.1168 72C57.0845 70.5261 59.8401 68.6958 62.3255 66.5652C57.8254 60.1821 52.4573 54.3582 46.3944 49.2757C40.5642 44.4098 31.8045 44.4297 25.9897 49.3085C19.8598 54.4783 14.5427 60.2253 10.1219 66.4237C12.614 68.5837 15.3813 70.4405 18.3653 71.9358C22.2671 66.4997 26.9695 61.4284 32.421 56.8308C34.6073 55.006 37.8161 55.006 40.0024 56.8308Z","M15.3361 39.3159C10.6695 44.7379 5.52049 49.408 0 53.2767C1.49011 56.2122 3.34051 58.9378 5.49457 61.3961C11.9478 56.945 17.8359 51.6352 22.9743 45.6383C27.8937 39.8716 27.8736 31.2072 22.9411 25.4556C17.7144 19.3924 11.9042 14.1332 5.63758 9.76043C3.45386 12.2255 1.57669 14.9627 0.0648629 17.9141C5.56077 21.7735 10.6878 26.4247 15.3361 31.8169C17.1809 33.9795 17.1809 37.1533 15.3361 39.3159Z"],r={dark:"#262626",light:"#FAFAFA"};function n({variant:n,gradientId:a}){if("yellowfin"===n)/* @__PURE__ */
2
- return e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("defs",null,/* @__PURE__ */e.createElement("linearGradient",{id:a,x1:"5.37931",y1:"0",x2:"50.046",y2:"65.8568",gradientUnits:"userSpaceOnUse"},/* @__PURE__ */e.createElement("stop",{offset:"0.0544031",stopColor:"#1868DB"}),/* @__PURE__ */e.createElement("stop",{offset:"0.5",stopColor:"#357DE8"}),/* @__PURE__ */e.createElement("stop",{offset:"0.802885",stopColor:"#7EE2B8"}),/* @__PURE__ */e.createElement("stop",{offset:"1",stopColor:"#B4EE2B"}))),t.map((t,r)=>/* @__PURE__ */e.createElement("path",{key:r,d:t,fill:`url(#${a})`})));if("monochrome"===n)/* @__PURE__ */
3
- return e.createElement(e.Fragment,null,t.map((t,r)=>/* @__PURE__ */e.createElement("path",{key:r,d:t})));const l=r[n];/* @__PURE__ */
4
- return e.createElement(e.Fragment,null,t.map((t,r)=>/* @__PURE__ */e.createElement("path",{key:r,d:t,fill:l})))}const a=e.forwardRef(({variant:t,width:r=72,height:a=72,...l},o)=>{const C=`ai-logo-gradient-${e.useId()}`;/* @__PURE__ */
5
- return e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",...l,width:r,height:a,ref:o,viewBox:"0 0 72 72",role:"img",fill:"none"},
6
- /* @__PURE__ */e.createElement("title",null,"BrainfishAI logo"),
7
- /* @__PURE__ */e.createElement(n,{variant:t,gradientId:C}))});a.displayName="AILogo";export{a as A,n as a};
8
- //# sourceMappingURL=ai-logo.Bh2bhNcG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-logo.Bh2bhNcG.js","sources":["../../../src/components/logo/ai-logo.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type AILogoVariant = 'dark' | 'light' | 'yellowfin' | 'monochrome';\n\nconst PATH_DATA = [\n 'M32.2871 15.1692C26.8054 10.5534 22.0839 5.46043 18.1727 0C15.205 1.4739 12.4494 3.30417 9.964 5.43479C14.4641 11.8179 19.8322 17.6418 25.8951 22.7243C31.7253 27.5902 40.485 27.5703 46.2998 22.6915C52.4297 17.5217 57.7468 11.7747 62.1676 5.57625C59.6755 3.41629 56.9081 1.55954 53.9242 0.0641588C50.0224 5.50027 45.32 10.5716 39.8685 15.1692C37.6822 16.994 34.4734 16.994 32.2871 15.1692Z',\n 'M56.6639 31.8406C61.3305 26.4186 66.4795 21.7485 72 17.8798C70.5099 14.9444 68.6595 12.2188 66.5054 9.76043C60.0522 14.2115 54.1641 19.5213 49.0257 25.5182C44.1063 31.285 44.1264 39.9493 49.0589 45.7009C54.2856 51.7641 60.0958 57.0233 66.3624 61.3961C68.5461 58.9311 70.4233 56.1939 71.9351 53.2424C66.4392 49.3831 61.3122 44.7318 56.6639 39.3396C54.8191 37.177 54.8191 34.0032 56.6639 31.8406Z',\n 'M40.0024 56.8308C45.4841 61.4466 50.2056 66.5396 54.1168 72C57.0845 70.5261 59.8401 68.6958 62.3255 66.5652C57.8254 60.1821 52.4573 54.3582 46.3944 49.2757C40.5642 44.4098 31.8045 44.4297 25.9897 49.3085C19.8598 54.4783 14.5427 60.2253 10.1219 66.4237C12.614 68.5837 15.3813 70.4405 18.3653 71.9358C22.2671 66.4997 26.9695 61.4284 32.421 56.8308C34.6073 55.006 37.8161 55.006 40.0024 56.8308Z',\n 'M15.3361 39.3159C10.6695 44.7379 5.52049 49.408 0 53.2767C1.49011 56.2122 3.34051 58.9378 5.49457 61.3961C11.9478 56.945 17.8359 51.6352 22.9743 45.6383C27.8937 39.8716 27.8736 31.2072 22.9411 25.4556C17.7144 19.3924 11.9042 14.1332 5.63758 9.76043C3.45386 12.2255 1.57669 14.9627 0.0648629 17.9141C5.56077 21.7735 10.6878 26.4247 15.3361 31.8169C17.1809 33.9795 17.1809 37.1533 15.3361 39.3159Z',\n] as const;\n\nconst VARIANT_FILLS: Record<Exclude<AILogoVariant, 'yellowfin' | 'monochrome'>, string> = {\n dark: '#262626',\n light: '#FAFAFA',\n};\n\ntype AILogoPathsProps = {\n variant: AILogoVariant;\n gradientId: string;\n};\n\nexport function AILogoPaths({ variant, gradientId }: AILogoPathsProps) {\n if (variant === 'yellowfin') {\n return (\n <>\n <defs>\n <linearGradient id={gradientId} x1=\"5.37931\" y1=\"0\" x2=\"50.046\" y2=\"65.8568\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0.0544031\" stopColor=\"#1868DB\" />\n <stop offset=\"0.5\" stopColor=\"#357DE8\" />\n <stop offset=\"0.802885\" stopColor=\"#7EE2B8\" />\n <stop offset=\"1\" stopColor=\"#B4EE2B\" />\n </linearGradient>\n </defs>\n {PATH_DATA.map((d, i) => (\n <path key={i} d={d} fill={`url(#${gradientId})`} />\n ))}\n </>\n );\n }\n\n if (variant === 'monochrome') {\n return (\n <>\n {PATH_DATA.map((d, i) => (\n <path key={i} d={d} />\n ))}\n </>\n );\n }\n\n const fill = VARIANT_FILLS[variant];\n\n return (\n <>\n {PATH_DATA.map((d, i) => (\n <path key={i} d={d} fill={fill} />\n ))}\n </>\n );\n}\n\nexport interface AILogoProps extends React.SVGProps<SVGSVGElement> {\n variant: AILogoVariant;\n}\n\nexport const AILogo = React.forwardRef<SVGSVGElement, AILogoProps>(\n ({ variant, width = 72, height = 72, ...props }, ref) => {\n const id = React.useId();\n const gradientId = `ai-logo-gradient-${id}`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n width={width}\n height={height}\n ref={ref}\n viewBox=\"0 0 72 72\"\n role=\"img\"\n fill=\"none\"\n >\n <title>BrainfishAI logo</title>\n <AILogoPaths variant={variant} gradientId={gradientId} />\n </svg>\n );\n },\n);\n\nAILogo.displayName = 'AILogo';\n"],"names":["PATH_DATA","VARIANT_FILLS","dark","light","AILogoPaths","variant","gradientId","React","createElement","Fragment","id","x1","y1","x2","y2","gradientUnits","offset","stopColor","map","d","i","key","fill","AILogo","forwardRef","width","height","props","ref","useId","xmlns","viewBox","role","displayName"],"mappings":"wBAIA,MAAMA,EAAY,CAChB,uYACA,6YACA,2YACA,+YAGIC,EAAoF,CACxFC,KAAM,UACNC,MAAO,WAQF,SAASC,GAAYC,QAAEA,EAAAC,WAASA,IACrC,GAAgB,cAAZD;AACF,OACEE,EAAAC,cAAAD,EAAAE,SAAA,oBACEF,EAAAC,cAAC,OAAA,oBACCD,EAAAC,cAAC,iBAAA,CAAeE,GAAIJ,EAAYK,GAAG,UAAUC,GAAG,IAAIC,GAAG,SAASC,GAAG,UAAUC,cAAc,iCACzFR,EAAAC,cAAC,OAAA,CAAKQ,OAAO,YAAYC,UAAU,2BACnCV,EAAAC,cAAC,OAAA,CAAKQ,OAAO,MAAMC,UAAU,2BAC7BV,EAAAC,cAAC,OAAA,CAAKQ,OAAO,WAAWC,UAAU,2BAClCV,EAAAC,cAAC,OAAA,CAAKQ,OAAO,IAAIC,UAAU,cAG9BjB,EAAUkB,IAAI,CAACC,EAAGC,mBACjBb,EAAAC,cAAC,OAAA,CAAKa,IAAKD,EAAGD,IAAMG,KAAM,QAAQhB,SAM1C,GAAgB,eAAZD;AACF,OACEE,EAAAC,cAAAD,EAAAE,SAAA,KACGT,EAAUkB,IAAI,CAACC,EAAGC,mBACjBb,EAAAC,cAAC,OAAA,CAAKa,IAAKD,EAAGD,QAMtB,MAAMG,EAAOrB,EAAcI;AAE3B,OACEE,EAAAC,cAAAD,EAAAE,SAAA,KACGT,EAAUkB,IAAI,CAACC,EAAGC,mBACjBb,EAAAC,cAAC,OAAA,CAAKa,IAAKD,EAAGD,IAAMG,UAI5B,CAMO,MAAMC,EAAShB,EAAMiB,WAC1B,EAAGnB,UAASoB,QAAQ,GAAIC,SAAS,MAAOC,GAASC,KAC/C,MACMtB,EAAa,oBADRC,EAAMsB;AAGjB,OACEtB,EAAAC,cAAC,MAAA,CACCsB,MAAM,gCACFH,EACJF,QACAC,SACAE,MACAG,QAAQ,YACRC,KAAK,MACLV,KAAK;eAELf,EAAAC,cAAC,aAAM;eACPD,EAAAC,cAACJ,EAAA,CAAYC,UAAkBC,kBAMvCiB,EAAOU,YAAc"}
@@ -1,3 +0,0 @@
1
- import*as e from"react";import{S as r}from"./index.C9B3bui8.js";import{cva as a}from"class-variance-authority";import{c as t}from"./utils.DtKoarLP.js";const s="shadow-brand hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-brand-active dark:shadow-brand-dark dark:hover:shadow-none dark:active:shadow-brand-dark-active",d=a("inline-flex items-center text-dark-900 justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-5 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary border border-primary shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive border border-destructive hover:bg-destructive/90",success:"bg-success text-success border border-success hover:bg-success/90",outline:"border border-input border-border hover:bg-dark-200 active:bg-dark-400 disabled:text-subtlest",surface:"bg-surface text-dark-900 rounded border border-border hover:bg-dark-200 active:bg-dark-400",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",suggestion:"bg-blue-600 text-white rounded-full",ghost:"hover:bg-dark-200 active:bg-dark-400",link:"text-foreground underline-offset-4 hover:underline",dark:"bg-dark-700 text-white dark:text-primary shadow hover:bg-dark-800 dark:bg-primary dark:hover:bg-primary/80 focus-visible:bg-dark-800 dark:focus-visible:bg-primary/80"},size:{default:"h-9 p-2",xs:"h-8 rounded-md px-2 text-sm gap-1.5",sm:"h-8 rounded-md px-3 text-sm",lg:"h-10 rounded-md px-8",icon:"h-9 w-9 [&_svg]:size-5"},elevation:{flat:"",shadow:`${s}`},disabled:{true:"text-subtlest pointer-events-none bg-dark-400 border-dark-600 opacity-90",false:""}},defaultVariants:{variant:"default",size:"default",elevation:"flat",disabled:!1}}),o=e.forwardRef(({className:a,variant:s,size:o,elevation:i,disabled:n,asChild:b=!1,...u},c)=>{const l=b?r:"button";/* @__PURE__ */
2
- return e.createElement(l,{className:t(d({variant:s,size:o,elevation:i,disabled:n,className:a})),ref:c,...u,disabled:n??void 0})});o.displayName="Button";export{o as B,s as a,d as b};
3
- //# sourceMappingURL=button.DXe2tRBO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.DXe2tRBO.js","sources":["../../../src/lib/styles.ts","../../../src/components/ui/button.tsx"],"sourcesContent":["export const brandShadowEffect =\n 'shadow-brand hover:shadow-none !transition-shadow duration-300 ease-in-out active:shadow-brand-active dark:shadow-brand-dark dark:hover:shadow-none dark:active:shadow-brand-dark-active';\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\nimport { brandShadowEffect } from '@/lib/styles';\n\nconst buttonVariants = cva(\n 'inline-flex items-center text-dark-900 justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-5 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary border border-primary shadow hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive border border-destructive hover:bg-destructive/90',\n success: 'bg-success text-success border border-success hover:bg-success/90',\n outline: 'border border-input border-border hover:bg-dark-200 active:bg-dark-400 disabled:text-subtlest',\n surface: 'bg-surface text-dark-900 rounded border border-border hover:bg-dark-200 active:bg-dark-400',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n suggestion: 'bg-blue-600 text-white rounded-full',\n ghost: 'hover:bg-dark-200 active:bg-dark-400',\n link: 'text-foreground underline-offset-4 hover:underline',\n dark: 'bg-dark-700 text-white dark:text-primary shadow hover:bg-dark-800 dark:bg-primary dark:hover:bg-primary/80 focus-visible:bg-dark-800 dark:focus-visible:bg-primary/80',\n },\n size: {\n default: 'h-9 p-2',\n xs: 'h-8 rounded-md px-2 text-sm gap-1.5',\n sm: 'h-8 rounded-md px-3 text-sm',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9 [&_svg]:size-5',\n },\n elevation: {\n flat: '',\n shadow: `${brandShadowEffect}`,\n },\n disabled: {\n true: 'text-subtlest pointer-events-none bg-dark-400 border-dark-600 opacity-90',\n false: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n elevation: 'flat',\n disabled: false as boolean | null | undefined,\n },\n },\n);\n\nexport interface ButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'disabled'>, VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, elevation, disabled, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, elevation, disabled, className }))}\n ref={ref}\n {...props}\n disabled={disabled ?? undefined}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"],"names":["brandShadowEffect","buttonVariants","cva","variants","variant","default","destructive","success","outline","surface","secondary","suggestion","ghost","link","dark","size","xs","sm","lg","icon","elevation","flat","shadow","disabled","true","false","defaultVariants","Button","React","forwardRef","className","asChild","props","ref","Comp","Slot","createElement","cn","displayName"],"mappings":"uJAAO,MAAMA,EACX,2LCMIC,EAAiBC,EACrB,sTACA,CACEC,SAAU,CACRC,QAAS,CACPC,QAAS,2EACTC,YAAa,oFACbC,QAAS,oEACTC,QAAS,gGACTC,QAAS,6FACTC,UAAW,+DACXC,WAAY,sCACZC,MAAO,uCACPC,KAAM,qDACNC,KAAM,yKAERC,KAAM,CACJV,QAAS,UACTW,GAAI,sCACJC,GAAI,8BACJC,GAAI,uBACJC,KAAM,0BAERC,UAAW,CACTC,KAAM,GACNC,OAAQ,GAAGtB,KAEbuB,SAAU,CACRC,KAAM,2EACNC,MAAO,KAGXC,gBAAiB,CACftB,QAAS,UACTW,KAAM,UACNK,UAAW,OACXG,UAAU,KAUVI,EAASC,EAAMC,WACnB,EAAGC,YAAW1B,UAASW,OAAMK,YAAWG,WAAUQ,WAAU,KAAUC,GAASC,KAC7E,MAAMC,EAAOH,EAAUI,EAAO;AAE9B,OACEP,EAAAQ,cAACF,EAAA,CACCJ,UAAWO,EAAGpC,EAAe,CAAEG,UAASW,OAAMK,YAAWG,WAAUO,eACnEG,SACID,EACJT,SAAUA,QAAY,MAK9BI,EAAOW,YAAc"}
@@ -1,10 +0,0 @@
1
- import*as e from"react";import*as t from"recharts";import{c as r}from"./utils.DtKoarLP.js";const a={light:"",dark:".dark"},n=e.createContext(null);function l(){const t=e.useContext(n);if(!t)throw new Error("useChart must be used within a <ChartContainer />");return t}const o=e.forwardRef(({id:a,className:l,children:o,config:c,...i},d)=>{const m=e.useId(),u=`chart-${a||m.replace(/:/g,"")}`;/* @__PURE__ */
2
- return e.createElement(n.Provider,{value:{config:c}},/* @__PURE__ */e.createElement("div",{"data-chart":u,ref:d,className:r("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",l),...i},
3
- /* @__PURE__ */e.createElement(s,{id:u,config:c}),
4
- /* @__PURE__ */e.createElement(t.ResponsiveContainer,null,o)))});o.displayName="Chart";const s=({id:t,config:r})=>{const n=Object.entries(r).filter(([,e])=>e.theme||e.color);return n.length?/* @__PURE__ */e.createElement("style",{dangerouslySetInnerHTML:{__html:Object.entries(a).map(([e,r])=>`\n${r} [data-chart=${t}] {\n${n.map(([t,r])=>{const a=r.theme?.[e]||r.color;return a?` --color-${t}: ${a};`:null}).join("\n")}\n}\n`).join("\n")}}):null},c=t.Tooltip,i=e.forwardRef(({active:t,payload:a,className:n,indicator:o="dot",hideLabel:s=!1,hideIndicator:c=!1,label:i,labelFormatter:d,labelClassName:m,formatter:f,color:g,nameKey:p,labelKey:h},b)=>{const{config:y}=l(),v=e.useMemo(()=>{if(s||!a?.length)return null;const[t]=a,n=u(y,t,`${h||t?.dataKey||t?.name||"value"}`),l=h||"string"!=typeof i?n?.label:y[i]?.label||i;return d?/* @__PURE__ */e.createElement("div",{className:r("font-medium",m)},d(l,a)):l?/* @__PURE__ */e.createElement("div",{className:r("font-medium",m)},l):null},[i,d,a,s,m,y,h]);if(!t||!a?.length)return null;const x=1===a.length&&"dot"!==o;/* @__PURE__ */
5
- return e.createElement("div",{ref:b,className:r("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n)},x?null:v,
6
- /* @__PURE__ */e.createElement("div",{className:"grid gap-1.5"},a.filter(e=>"none"!==e.type).map((t,a)=>{const n=`${p||t.name||t.dataKey||"value"}`,l=u(y,t,n),s=g||t.payload.fill||t.color;/* @__PURE__ */
7
- return e.createElement("div",{key:t.dataKey,className:r("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===o&&"items-center")},f&&void 0!==t?.value&&t.name?f(t.value,t.name,t,a,t.payload):/* @__PURE__ */e.createElement(e.Fragment,null,l?.icon?/* @__PURE__ */e.createElement(l.icon,null):!c&&/* @__PURE__ */e.createElement("div",{className:r("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===o,"w-1":"line"===o,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===o,"my-0.5":x&&"dashed"===o}),style:{"--color-bg":s,"--color-border":s}}),/* @__PURE__ */e.createElement("div",{className:r("flex flex-1 justify-between leading-none",x?"items-end":"items-center")},
8
- /* @__PURE__ */e.createElement("div",{className:"grid gap-1.5"},x?v:null,/* @__PURE__ */e.createElement("span",{className:"text-muted-foreground"},l?.label||t.name)),null!=t.value&&/* @__PURE__ */e.createElement("span",{className:"font-mono font-medium tabular-nums text-foreground"},t.value.toLocaleString()))))})))});i.displayName="ChartTooltip";const d=t.Legend,m=e.forwardRef(({className:t,hideIcon:a=!1,payload:n,verticalAlign:o="bottom",nameKey:s},c)=>{const{config:i}=l();return n?.length?/* @__PURE__ */e.createElement("div",{ref:c,className:r("flex items-center justify-center gap-4","top"===o?"pb-3":"pt-3",t)},n.filter(e=>"none"!==e.type).map(t=>{const n=`${s||t.dataKey||"value"}`,l=u(i,t,n);/* @__PURE__ */
9
- return e.createElement("div",{key:t.value,className:r("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground")},l?.icon&&!a?/* @__PURE__ */e.createElement(l.icon,null):/* @__PURE__ */e.createElement("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:t.color}}),l?.label)})):null});function u(e,t,r){if("object"!=typeof t||null===t)return;const a="payload"in t&&"object"==typeof t.payload&&null!==t.payload?t.payload:void 0;let n=r;return r in t&&"string"==typeof t[r]?n=t[r]:a&&r in a&&"string"==typeof a[r]&&(n=a[r]),n in e?e[n]:e[r]}m.displayName="ChartLegend";export{o as C,c as a,i as b,d as c,m as d};
10
- //# sourceMappingURL=chart.D9xvsrKX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chart.D9xvsrKX.js","sources":["../../../src/components/ui/chart.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { cn } from '@/lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> });\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: 'line' | 'dot' | 'dashed';\n nameKey?: string;\n labelKey?: string;\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== 'none')\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn('shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]', {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n })}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value != null && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean;\n nameKey?: string;\n }\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}\n >\n {payload\n .filter((item) => item.type !== 'none')\n .map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn('flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground')}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle };\n"],"names":["THEMES","light","dark","ChartContext","React","createContext","useChart","context","useContext","Error","ChartContainer","forwardRef","id","className","children","config","props","ref","uniqueId","useId","chartId","replace","Provider","value","createElement","cn","ChartStyle","RechartsPrimitive","ResponsiveContainer","displayName","colorConfig","Object","entries","filter","theme","color","length","dangerouslySetInnerHTML","__html","map","prefix","key","itemConfig","join","ChartTooltip","Tooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","useMemo","item","getPayloadConfigFromPayload","dataKey","name","nestLabel","type","index","indicatorColor","fill","Fragment","icon","style","toLocaleString","ChartLegend","Legend","ChartLegendContent","hideIcon","verticalAlign","backgroundColor","payloadPayload","configLabelKey"],"mappings":"2FAMA,MAAMA,EAAS,CAAEC,MAAO,GAAIC,KAAM,SAa5BC,EAAeC,EAAMC,cAAwC,MAEnE,SAASC,IACP,MAAMC,EAAUH,EAAMI,WAAWL,GAEjC,IAAKI,EACH,MAAM,IAAIE,MAAM,qDAGlB,OAAOF,CACT,CAEA,MAAMG,EAAiBN,EAAMO,WAM3B,EAAGC,KAAIC,YAAWC,WAAUC,YAAWC,GAASC,KAChD,MAAMC,EAAWd,EAAMe,QACjBC,EAAU,SAASR,GAAMM,EAASG,QAAQ,KAAM;AAEtD,uBACGlB,EAAamB,SAAb,CAAsBC,MAAO,CAAER,0BAC9BX,EAAAoB,cAAC,MAAA,CACC,aAAYJ,EACZH,MACAJ,UAAWY,EACT,wpBACAZ,MAEEG;eAEJZ,EAAAoB,cAACE,EAAA,CAAWd,GAAIQ,EAASL;eACzBX,EAAAoB,cAACG,EAAkBC,oBAAlB,KAAuCd,OAKhDJ,EAAemB,YAAc,QAE7B,MAAMH,EAAa,EAAGd,KAAIG,aACxB,MAAMe,EAAcC,OAAOC,QAAQjB,GAAQkB,OAAO,EAAC,CAAGlB,KAAYA,EAAOmB,OAASnB,EAAOoB,OAEzF,OAAKL,EAAYM,sBAKfhC,EAAAoB,cAAC,QAAA,CACCa,wBAAyB,CACvBC,OAAQP,OAAOC,QAAQhC,GACpBuC,IACC,EAAEL,EAAOM,KAAY,KAC/BA,iBAAsB5B,SACtBkB,EACCS,IAAI,EAAEE,EAAKC,MACV,MAAMP,EAAQO,EAAWR,QAAQA,IAA2CQ,EAAWP,MAEvF,OAAOA,EAAQ,aAAaM,MAAQN,KAAW,OAEhDQ,KAAK,cAIGA,KAAK,SApBL,MA0BLC,EAAejB,EAAkBkB,QAEjCC,EAAsB1C,EAAMO,WAWhC,EAEIoC,SACAC,UACAnC,YACAoC,YAAY,MACZC,aAAY,EACZC,iBAAgB,EAChBC,QACAC,iBACAC,iBACAC,YACApB,QACAqB,UACAC,YAEFxC,KAEA,MAAMF,OAAEA,GAAWT,IAEboD,EAAetD,EAAMuD,QAAQ,KACjC,GAAIT,IAAcF,GAASZ,OACzB,OAAO,KAGT,MAAOwB,GAAQZ,EAETN,EAAamB,EAA4B9C,EAAQ6C,EAD3C,GAAGH,GAAYG,GAAME,SAAWF,GAAMG,MAAQ,WAEpDxC,EACHkC,GAA6B,iBAAVL,EAEhBV,GAAYU,MADZrC,EAAOqC,IAA+BA,OAASA,EAGrD,OAAIC,iBACKjD,EAAAoB,cAAC,MAAA,CAAIX,UAAWY,EAAG,cAAe6B,IAAkBD,EAAe9B,EAAOyB,IAG9EzB,iCAIG,MAAA,CAAIV,UAAWY,EAAG,cAAe6B,IAAkB/B,GAHlD,MAIR,CAAC6B,EAAOC,EAAgBL,EAASE,EAAWI,EAAgBvC,EAAQ0C,IAEvE,IAAKV,IAAWC,GAASZ,OACvB,OAAO,KAGT,MAAM4B,EAA+B,IAAnBhB,EAAQZ,QAA8B,QAAda;AAE1C,OACE7C,EAAAoB,cAAC,MAAA,CACCP,MACAJ,UAAWY,EACT,yHACAZ,IAGAmD,EAA2B,KAAfN;eACdtD,EAAAoB,cAAC,MAAA,CAAIX,UAAU,gBACZmC,EACEf,OAAQ2B,GAAuB,SAAdA,EAAKK,MACtB1B,IAAI,CAACqB,EAAMM,KACV,MAAMzB,EAAM,GAAGe,GAAWI,EAAKG,MAAQH,EAAKE,SAAW,UACjDpB,EAAamB,EAA4B9C,EAAQ6C,EAAMnB,GACvD0B,EAAiBhC,GAASyB,EAAKZ,QAAQoB,MAAQR,EAAKzB;AAE1D,OACE/B,EAAAoB,cAAC,MAAA,CACCiB,IAAKmB,EAAKE,QACVjD,UAAWY,EACT,sGACc,QAAdwB,GAAuB,iBAGxBM,QAA6B,IAAhBK,GAAMrC,OAAuBqC,EAAKG,KAC9CR,EAAUK,EAAKrC,MAAOqC,EAAKG,KAAMH,EAAMM,EAAON,EAAKZ,wBAEnD5C,EAAAoB,cAAApB,EAAAiE,SAAA,KACG3B,GAAY4B,oBACXlE,EAAAoB,cAACkB,EAAW4B,KAAX,OAEAnB,kBACC/C,EAAAoB,cAAC,MAAA,CACCX,UAAWY,EAAG,iEAAkE,CAC9E,cAA6B,QAAdwB,EACf,MAAqB,SAAdA,EACP,kDAAiE,WAAdA,EACnD,SAAUe,GAA2B,WAAdf,IAEzBsB,MACE,CACE,aAAcJ,EACd,iBAAkBA,oBAM5B/D,EAAAoB,cAAC,MAAA,CACCX,UAAWY,EACT,2CACAuC,EAAY,YAAc;eAG5B5D,EAAAoB,cAAC,MAAA,CAAIX,UAAU,gBACZmD,EAAYN,EAAe,oBAC5BtD,EAAAoB,cAAC,OAAA,CAAKX,UAAU,yBAAyB6B,GAAYU,OAASQ,EAAKG,OAEtD,MAAdH,EAAKrC,sBACJnB,EAAAoB,cAAC,OAAA,CAAKX,UAAU,sDACb+C,EAAKrC,MAAMiD,2BAcxC1B,EAAoBjB,YAAc,eAElC,MAAM4C,EAAc9C,EAAkB+C,OAEhCC,EAAqBvE,EAAMO,WAO/B,EAAGE,YAAW+D,YAAW,EAAO5B,UAAS6B,gBAAgB,SAAUrB,WAAWvC,KAC9E,MAAMF,OAAEA,GAAWT,IAEnB,OAAK0C,GAASZ,sBAKZhC,EAAAoB,cAAC,MAAA,CACCP,MACAJ,UAAWY,EAAG,yCAA4D,QAAlBoD,EAA0B,OAAS,OAAQhE,IAElGmC,EACEf,OAAQ2B,GAAuB,SAAdA,EAAKK,MACtB1B,IAAKqB,IACJ,MAAMnB,EAAM,GAAGe,GAAWI,EAAKE,SAAW,UACpCpB,EAAamB,EAA4B9C,EAAQ6C,EAAMnB;AAE7D,OACErC,EAAAoB,cAAC,MAAA,CACCiB,IAAKmB,EAAKrC,MACVV,UAAWY,EAAG,oFAEbiB,GAAY4B,OAASM,iCACnBlC,EAAW4B,KAAX,qBAEDlE,EAAAoB,cAAC,MAAA,CACCX,UAAU,iCACV0D,MAAO,CACLO,gBAAiBlB,EAAKzB,SAI3BO,GAAYU,UA7BhB,OAuCX,SAASS,EAA4B9C,EAAqBiC,EAAkBP,GAC1E,GAAuB,iBAAZO,GAAoC,OAAZA,EACjC,OAGF,MAAM+B,EACJ,YAAa/B,GAAsC,iBAApBA,EAAQA,SAA4C,OAApBA,EAAQA,QACnEA,EAAQA,aACR,EAEN,IAAIgC,EAAyBvC,EAY7B,OAVIA,KAAOO,GAA2D,iBAAzCA,EAAQP,GACnCuC,EAAiBhC,EAAQP,GAEzBsC,GACAtC,KAAOsC,GACuD,iBAAvDA,EAAetC,KAEtBuC,EAAiBD,EAAetC,IAG3BuC,KAAkBjE,EAASA,EAAOiE,GAAkBjE,EAAO0B,EACpE,CA1BAkC,EAAmB9C,YAAc"}
@@ -1,3 +0,0 @@
1
- import e from"react";import{c as C}from"./utils.DtKoarLP.js";function t({size:t=32,className:l,color:r="currentColor"}){/* @__PURE__ */
2
- return e.createElement("div",{style:{width:t,height:t},className:C("shrink-0",l)},/* @__PURE__ */e.createElement("svg",{width:"100%",height:"100%",viewBox:"0 0 192 192",fill:"none",xmlns:"http://www.w3.org/2000/svg"},/* @__PURE__ */e.createElement("path",{d:"M89.3807 57.3232C78.8995 48.4005 69.8719 38.5554 62.3934 28C56.719 30.8492 51.4502 34.3872 46.6981 38.5058C55.3024 50.8448 65.5666 62.1029 77.1591 71.9277C88.3066 81.3338 105.055 81.2954 116.174 71.8642C127.894 61.8706 138.061 50.7613 146.514 38.7793C141.748 34.6039 136.457 31.0147 130.752 28.124C123.291 38.6324 114.3 48.4356 103.877 57.3232C99.6964 60.8505 93.5612 60.8506 89.3807 57.3232Z",fill:r}),/* @__PURE__ */e.createElement("path",{d:"M134.637 88.1968C143.559 77.7156 153.405 68.6879 163.96 61.2095C161.111 55.5351 157.573 50.2663 153.454 45.5142C141.115 54.1185 129.857 64.3826 120.032 75.9751C110.626 87.1226 110.665 103.871 120.096 114.99C130.089 126.71 141.199 136.877 153.181 145.33C157.356 140.564 160.945 135.273 163.836 129.568C153.328 122.108 143.524 113.116 134.637 102.693C131.109 98.5124 131.109 92.3772 134.637 88.1968Z",fill:r}),/* @__PURE__ */e.createElement("path",{d:"M104.133 135.151C114.614 144.074 123.642 153.919 131.12 164.474C136.795 161.625 142.063 158.087 146.815 153.968C138.211 141.629 127.947 130.371 116.354 120.547C105.207 111.14 88.4581 111.179 77.3398 120.61C65.6193 130.604 55.4529 141.713 47 153.695C51.7651 157.87 57.0563 161.46 62.7617 164.35C70.2221 153.842 79.2133 144.039 89.6367 135.151C93.8172 131.624 99.9524 131.624 104.133 135.151Z",fill:r}),/* @__PURE__ */e.createElement("path",{d:"M58.3232 102.647C49.4005 113.128 39.5554 122.156 29 129.634C31.8492 135.309 35.3872 140.577 39.5058 145.33C51.8448 136.725 63.1029 126.461 72.9277 114.869C82.3338 103.721 82.2954 86.9723 72.8642 75.854C62.8706 64.1335 51.7613 53.967 39.7793 45.5142C35.6039 50.2793 32.0147 55.5705 29.124 61.2759C39.6324 68.7362 49.4356 77.7274 58.3232 88.1509C61.8505 92.3314 61.8506 98.4665 58.3232 102.647Z",fill:r})))}export{t as C};
3
- //# sourceMappingURL=chat-logo.F_m9SJrM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-logo.F_m9SJrM.js","sources":["../../../src/components/logo/chat-logo.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cn } from '@/lib/utils';\n\ninterface ChatLogoProps {\n size?: number | string;\n className?: string;\n color?: string;\n}\n\nexport function ChatLogo({ size = 32, className, color = 'currentColor' }: ChatLogoProps) {\n return (\n <div style={{ width: size, height: size }} className={cn('shrink-0', className)}>\n <svg width=\"100%\" height=\"100%\" viewBox=\"0 0 192 192\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M89.3807 57.3232C78.8995 48.4005 69.8719 38.5554 62.3934 28C56.719 30.8492 51.4502 34.3872 46.6981 38.5058C55.3024 50.8448 65.5666 62.1029 77.1591 71.9277C88.3066 81.3338 105.055 81.2954 116.174 71.8642C127.894 61.8706 138.061 50.7613 146.514 38.7793C141.748 34.6039 136.457 31.0147 130.752 28.124C123.291 38.6324 114.3 48.4356 103.877 57.3232C99.6964 60.8505 93.5612 60.8506 89.3807 57.3232Z\"\n fill={color}\n />\n <path\n d=\"M134.637 88.1968C143.559 77.7156 153.405 68.6879 163.96 61.2095C161.111 55.5351 157.573 50.2663 153.454 45.5142C141.115 54.1185 129.857 64.3826 120.032 75.9751C110.626 87.1226 110.665 103.871 120.096 114.99C130.089 126.71 141.199 136.877 153.181 145.33C157.356 140.564 160.945 135.273 163.836 129.568C153.328 122.108 143.524 113.116 134.637 102.693C131.109 98.5124 131.109 92.3772 134.637 88.1968Z\"\n fill={color}\n />\n <path\n d=\"M104.133 135.151C114.614 144.074 123.642 153.919 131.12 164.474C136.795 161.625 142.063 158.087 146.815 153.968C138.211 141.629 127.947 130.371 116.354 120.547C105.207 111.14 88.4581 111.179 77.3398 120.61C65.6193 130.604 55.4529 141.713 47 153.695C51.7651 157.87 57.0563 161.46 62.7617 164.35C70.2221 153.842 79.2133 144.039 89.6367 135.151C93.8172 131.624 99.9524 131.624 104.133 135.151Z\"\n fill={color}\n />\n <path\n d=\"M58.3232 102.647C49.4005 113.128 39.5554 122.156 29 129.634C31.8492 135.309 35.3872 140.577 39.5058 145.33C51.8448 136.725 63.1029 126.461 72.9277 114.869C82.3338 103.721 82.2954 86.9723 72.8642 75.854C62.8706 64.1335 51.7613 53.967 39.7793 45.5142C35.6039 50.2793 32.0147 55.5705 29.124 61.2759C39.6324 68.7362 49.4356 77.7274 58.3232 88.1509C61.8505 92.3314 61.8506 98.4665 58.3232 102.647Z\"\n fill={color}\n />\n </svg>\n </div>\n );\n}\n"],"names":["ChatLogo","size","className","color","React","createElement","style","width","height","cn","viewBox","fill","xmlns","d"],"mappings":"6DAUO,SAASA,GAASC,KAAEA,EAAO,aAAIC,EAAAC,MAAWA,EAAQ;AACvD,OACEC,EAAAC,cAAC,MAAA,CAAIC,MAAO,CAAEC,MAAON,EAAMO,OAAQP,GAAQC,UAAWO,EAAG,WAAYP,mBACnEE,EAAAC,cAAC,MAAA,CAAIE,MAAM,OAAOC,OAAO,OAAOE,QAAQ,cAAcC,KAAK,OAAOC,MAAM,6CACtER,EAAAC,cAAC,OAAA,CACCQ,EAAE,2YACFF,KAAMR,mBAERC,EAAAC,cAAC,OAAA,CACCQ,EAAE,gZACFF,KAAMR,mBAERC,EAAAC,cAAC,OAAA,CACCQ,EAAE,yYACFF,KAAMR,mBAERC,EAAAC,cAAC,OAAA,CACCQ,EAAE,2YACFF,KAAMR,KAKhB"}
@@ -1,6 +0,0 @@
1
- import*as e from"react";import{CaretUpDown as t,Check as a}from"@phosphor-icons/react";import{c as l}from"./utils.DtKoarLP.js";import{B as n}from"./button.DXe2tRBO.js";import{Command as o,CommandInput as r,CommandList as s,CommandEmpty as c,CommandGroup as m,CommandItem as u}from"../components/ui/command.js";import{Popover as i,PopoverTrigger as p,PopoverContent as d}from"../components/ui/popover.js";function f({options:f,defaultValueLabel:E,placeholder:b,noResultsLabel:v,className:h,onOpenChange:y,onChange:g,dropdownWidth:S,value:j,disabled:w=!1,renderItem:C,renderValue:N,renderTrigger:x,appendToBody:B=!0}){const[O,T]=e.useState(!1),[k,I]=e.useState(""),L=void 0!==j?j:k,R=e.useRef(null),[V,W]=e.useState(null),q=f.find(e=>e.value===L),F=e=>{const t=e===L?"":e;void 0===j&&I(t),T(!1),g?.(t)},$=q?N?N(q):q.label:E;/* @__PURE__ */
2
- return e.createElement(i,{open:O,onOpenChange:e=>{e&&R.current&&W(S||R.current.offsetWidth),T(e),y?.(e)}},/* @__PURE__ */e.createElement(p,{asChild:!0},/* @__PURE__ */e.createElement(n,{ref:R,variant:"outline",role:"combobox","aria-expanded":O,disabled:w,className:l("w-full justify-between",h)},x?x({selectedItem:q,isOpen:O}):$,
3
- /* @__PURE__ */e.createElement(t,{className:"opacity-50"}))),/* @__PURE__ */e.createElement(d,{appendToBody:B,className:"p-0",style:{width:V?`${V}px`:"auto"},align:"start"},
4
- /* @__PURE__ */e.createElement(o,null,/* @__PURE__ */e.createElement(r,{placeholder:b}),/* @__PURE__ */e.createElement(s,null,/* @__PURE__ */e.createElement(c,null,v),/* @__PURE__ */e.createElement(m,null,f.map(t=>{const n=L===t.value;return C?/* @__PURE__ */e.createElement(e.Fragment,{key:t.value},C({item:t,isSelected:n,onSelect:()=>F(t.value)})):/* @__PURE__ */e.createElement(u,{key:t.value,value:t.label,onSelect:e=>{const t=f.find(t=>t.label===e);F(t?.value||"")}},t.label,
5
- /* @__PURE__ */e.createElement(a,{className:l("ml-auto",n?"opacity-100":"opacity-0")}))}))))))}export{f as C};
6
- //# sourceMappingURL=combobox.Ccfe3IGO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"combobox.Ccfe3IGO.js","sources":["../../../src/components/combobox/combobox.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Check, CaretUpDown } from '@phosphor-icons/react';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@/components/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\n\nexport interface ComboboxItem {\n value: string;\n label: string;\n icon?: React.ReactNode;\n /** Additional data that can be passed to custom renderers */\n\n data?: any;\n}\n\nexport interface ComboboxRenderItemProps<T extends ComboboxItem = ComboboxItem> {\n item: T;\n isSelected: boolean;\n onSelect: () => void;\n}\n\nexport interface ComboboxProps<T extends ComboboxItem = ComboboxItem> {\n options: T[];\n defaultValueLabel: string;\n placeholder: string;\n noResultsLabel: string;\n className?: string;\n dropdownWidth?: number;\n value?: string;\n /** Whether the combobox is disabled */\n disabled?: boolean;\n /** Callback on open state change */\n onOpenChange?: (open: boolean) => void;\n /** Callback on value change */\n onChange?: (value: string) => void;\n /** Custom render function for each item in the dropdown */\n renderItem?: (props: ComboboxRenderItemProps<T>) => React.ReactNode;\n /** Custom render function for the selected value in the trigger button */\n renderValue?: (item: T) => React.ReactNode;\n /** Custom render function for the entire trigger button content */\n renderTrigger?: (props: { selectedItem: T | undefined; isOpen: boolean }) => React.ReactNode;\n /**\n * When false, the dropdown stays in the React tree instead of portaling to body.\n * Use inside modals/dialogs so the list is not detached from the dialog layer.\n */\n appendToBody?: boolean;\n}\n\nexport function Combobox<T extends ComboboxItem = ComboboxItem>({\n options,\n defaultValueLabel,\n placeholder,\n noResultsLabel,\n className,\n onOpenChange,\n onChange,\n dropdownWidth,\n value: controlledValue,\n disabled = false,\n renderItem,\n renderValue,\n renderTrigger,\n appendToBody = true,\n}: ComboboxProps<T>) {\n const [open, setOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState('');\n\n // Use controlled value if provided, otherwise use internal state\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [triggerWidth, setTriggerWidth] = React.useState<number | null>(null);\n\n const selectedItem = options.find((option) => option.value === value);\n\n // Update width when popover opens\n const handleOpenChange = (isOpen: boolean) => {\n if (isOpen && triggerRef.current) {\n setTriggerWidth(dropdownWidth ? dropdownWidth : triggerRef.current.offsetWidth);\n }\n setOpen(isOpen);\n onOpenChange?.(isOpen);\n };\n\n const handleSelect = (selectedValue: string) => {\n const newValue = selectedValue === value ? '' : selectedValue;\n\n // Update internal state only if not controlled\n if (controlledValue === undefined) {\n setInternalValue(newValue);\n }\n\n setOpen(false);\n onChange?.(newValue);\n };\n\n // Default trigger content\n const defaultTriggerContent = selectedItem\n ? renderValue\n ? renderValue(selectedItem)\n : selectedItem.label\n : defaultValueLabel;\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n ref={triggerRef}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn('w-full justify-between', className)}\n >\n {renderTrigger ? renderTrigger({ selectedItem, isOpen: open }) : defaultTriggerContent}\n <CaretUpDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n appendToBody={appendToBody}\n className=\"p-0\"\n style={{\n width: triggerWidth ? `${triggerWidth}px` : 'auto',\n }}\n align=\"start\"\n >\n <Command>\n <CommandInput placeholder={placeholder} />\n <CommandList>\n <CommandEmpty>{noResultsLabel}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = value === option.value;\n\n if (renderItem) {\n return (\n <React.Fragment key={option.value}>\n {renderItem({\n item: option,\n isSelected,\n onSelect: () => handleSelect(option.value),\n })}\n </React.Fragment>\n );\n }\n\n return (\n <CommandItem\n key={option.value}\n value={option.label}\n onSelect={(currentLabel) => {\n const selectedOption = options.find((opt) => opt.label === currentLabel);\n\n handleSelect(selectedOption?.value || '');\n }}\n >\n {option.label}\n <Check className={cn('ml-auto', isSelected ? 'opacity-100' : 'opacity-0')} />\n </CommandItem>\n );\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["Combobox","options","defaultValueLabel","placeholder","noResultsLabel","className","onOpenChange","onChange","dropdownWidth","value","controlledValue","disabled","renderItem","renderValue","renderTrigger","appendToBody","open","setOpen","React","useState","internalValue","setInternalValue","triggerRef","useRef","triggerWidth","setTriggerWidth","selectedItem","find","option","handleSelect","selectedValue","newValue","defaultTriggerContent","label","createElement","Popover","isOpen","current","offsetWidth","PopoverTrigger","asChild","Button","ref","variant","role","cn","CaretUpDown","PopoverContent","style","width","align","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","map","isSelected","Fragment","key","item","onSelect","CommandItem","currentLabel","selectedOption","opt","Check"],"mappings":"oZAkDO,SAASA,GAAgDC,QAC9DA,EAAAC,kBACAA,EAAAC,YACAA,EAAAC,eACAA,EAAAC,UACAA,EAAAC,aACAA,EAAAC,SACAA,EAAAC,cACAA,EACAC,MAAOC,EAAAC,SACPA,GAAW,EAAAC,WACXA,EAAAC,YACAA,EAAAC,cACAA,EAAAC,aACAA,GAAe,IAEf,MAAOC,EAAMC,GAAWC,EAAMC,UAAS,IAChCC,EAAeC,GAAoBH,EAAMC,SAAS,IAGnDV,OAA4B,IAApBC,EAAgCA,EAAkBU,EAC1DE,EAAaJ,EAAMK,OAA0B,OAC5CC,EAAcC,GAAmBP,EAAMC,SAAwB,MAEhEO,EAAezB,EAAQ0B,KAAMC,GAAWA,EAAOnB,QAAUA,GAWzDoB,EAAgBC,IACpB,MAAMC,EAAWD,IAAkBrB,EAAQ,GAAKqB,OAGxB,IAApBpB,GACFW,EAAiBU,GAGnBd,GAAQ,GACRV,IAAWwB,IAIPC,EAAwBN,EAC1Bb,EACEA,EAAYa,GACZA,EAAaO,MACf/B;AAEJ,OACEgB,EAAAgB,cAACC,GAAQnB,OAAYV,aA5BG8B,IACpBA,GAAUd,EAAWe,SACvBZ,EAAgBjB,GAAgCc,EAAWe,QAAQC,aAErErB,EAAQmB,GACR9B,IAAe8B,oBAwBblB,EAAAgB,cAACK,EAAA,CAAeC,SAAO,kBACrBtB,EAAAgB,cAACO,EAAA,CACCC,IAAKpB,EACLqB,QAAQ,UACRC,KAAK,WACL,gBAAe5B,EACfL,WACAN,UAAWwC,EAAG,yBAA0BxC,IAEvCS,EAAgBA,EAAc,CAAEY,eAAcU,OAAQpB,IAAUgB;eACjEd,EAAAgB,cAACY,EAAA,CAAYzC,UAAU,gCAG3Ba,EAAAgB,cAACa,EAAA,CACChC,eACAV,UAAU,MACV2C,MAAO,CACLC,MAAOzB,EAAe,GAAGA,MAAmB,QAE9C0B,MAAM;+BAELC,EAAA,oBACCjC,EAAAgB,cAACkB,EAAA,CAAajD,+BACde,EAAAgB,cAACmB,EAAA,oBACCnC,EAAAgB,cAACoB,EAAA,KAAclD,kBACfc,EAAAgB,cAACqB,OACEtD,EAAQuD,IAAK5B,IACZ,MAAM6B,EAAahD,IAAUmB,EAAOnB,MAEpC,OAAIG,iCAECM,EAAMwC,SAAN,CAAeC,IAAK/B,EAAOnB,OACzBG,EAAW,CACVgD,KAAMhC,EACN6B,aACAI,SAAU,IAAMhC,EAAaD,EAAOnB,yBAO1CS,EAAAgB,cAAC4B,EAAA,CACCH,IAAK/B,EAAOnB,MACZA,MAAOmB,EAAOK,MACd4B,SAAWE,IACT,MAAMC,EAAiB/D,EAAQ0B,KAAMsC,GAAQA,EAAIhC,QAAU8B,GAE3DlC,EAAamC,GAAgBvD,OAAS,MAGvCmB,EAAOK;eACRf,EAAAgB,cAACgC,GAAM7D,UAAWwC,EAAG,UAAWY,EAAa,cAAgB,sBAUjF"}
@@ -1,2 +0,0 @@
1
- const o="var(--bfc-v2-color-mono-900-physical, #262626)",c={100:"var(--bfc-v2-color-mono-100, #FAFAFA)",200:"var(--bfc-v2-color-mono-200, #F5F5F5)",300:"var(--bfc-v2-color-mono-300, #E5E5E5)",400:"var(--bfc-v2-color-mono-400, #D4D4D4)",500:"var(--bfc-v2-color-mono-500, #A3A3A3)",600:"var(--bfc-v2-color-mono-600, #737373)",700:"var(--bfc-v2-color-mono-700, #525252)",800:"var(--bfc-v2-color-mono-800, #404040)",900:"var(--bfc-v2-color-mono-900, #262626)",1e3:"var(--bfc-v2-color-mono-1000, #171717)",DEFAULT:"var(--bfc-v2-color-mono-900, #262626)"};export{o as a,c as d};
2
- //# sourceMappingURL=dark.DuW7JuAk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dark.DuW7JuAk.js","sources":["../../../src/colors/dark.ts"],"sourcesContent":["/** Mono-900 as defined on the light scale; invariant when `.dark` mirrors palette tokens. */\nexport const darkMono900Physical = 'var(--bfc-v2-color-mono-900-physical, #262626)';\n\nexport const dark = {\n 100: 'var(--bfc-v2-color-mono-100, #FAFAFA)',\n 200: 'var(--bfc-v2-color-mono-200, #F5F5F5)',\n 300: 'var(--bfc-v2-color-mono-300, #E5E5E5)',\n 400: 'var(--bfc-v2-color-mono-400, #D4D4D4)',\n 500: 'var(--bfc-v2-color-mono-500, #A3A3A3)',\n 600: 'var(--bfc-v2-color-mono-600, #737373)',\n 700: 'var(--bfc-v2-color-mono-700, #525252)',\n 800: 'var(--bfc-v2-color-mono-800, #404040)',\n 900: 'var(--bfc-v2-color-mono-900, #262626)',\n 1000: 'var(--bfc-v2-color-mono-1000, #171717)',\n DEFAULT: 'var(--bfc-v2-color-mono-900, #262626)', // 900\n};\n"],"names":["darkMono900Physical","dark","DEFAULT"],"mappings":"AACO,MAAMA,EAAsB,iDAEtBC,EAAO,CAClB,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAK,wCACL,IAAM,yCACNC,QAAS"}
@@ -1,5 +0,0 @@
1
- import e,{useCallback as t}from"react";import{useReactTable as a,getSortedRowModel as n,getExpandedRowModel as l,getFilteredRowModel as s,getPaginationRowModel as r,getCoreRowModel as o,flexRender as i}from"@tanstack/react-table";import{AnimatePresence as d,motion as m}from"framer-motion";import{TableRow as c,TableCell as p,Table as g,TableHeader as u,TableHead as h,TableBody as E}from"../components/ui/table.js";import{c as f}from"./utils.DtKoarLP.js";const x=({className:t,...a})=>/* @__PURE__ */e.createElement("div",{className:f("animate-original-pulse rounded-md bg-muted",t),...a}),w={initial:{height:0},animate:{height:"auto",transition:{height:{type:"spring",stiffness:450,damping:20}}},exit:{height:0,transition:{height:{duration:.1,ease:"linear"}}}};function N({columns:N,data:b,getRowCanExpand:y=()=>!0,className:C,expandeRowClassName:k,isLoading:R=!1,skeletonRowCount:S=10,...v}){const[M,$]=e.useState({}),[z,D]=e.useState([]);e.useEffect(()=>{$({})},[b]);const F=a({data:b,columns:N,getCoreRowModel:o(),state:{expanded:M,sorting:z},onExpandedChange:$,onSortingChange:D,getRowCanExpand:N.some(e=>e.expandedContent)?y:void 0,getPaginationRowModel:r(),getFilteredRowModel:s(),getExpandedRowModel:l(),getSortedRowModel:n()}),I=t(()=>Array.from({length:S}).map((t,a)=>/* @__PURE__ */e.createElement(c,{key:`skeleton-${a}`},N.map((t,n)=>/* @__PURE__ */e.createElement(p,{key:`skeleton-cell-${a}-${n}`,className:"first:pl-4 last:pr-4 py-4",style:{width:t.size}},
2
- /* @__PURE__ */e.createElement(x,{className:"h-4 w-full"}))))),[S,N]),V=t(()=>F.getRowModel().rows.map(t=>/* @__PURE__ */e.createElement(e.Fragment,{key:t.original.id||t.id},/* @__PURE__ */e.createElement(c,{"data-state":t.getIsSelected()&&"selected",className:f(t.getIsExpanded()&&"border-b-0")},t.getVisibleCells().map(t=>/* @__PURE__ */e.createElement(p,{key:t.id,className:"first:pl-4 last:pr-4 py-4",style:{width:t.column.getSize()}},i(t.column.columnDef.cell,t.getContext())))),/* @__PURE__ */e.createElement(d,{initial:!1},t.getIsExpanded()&&(()=>{const a=N.find(e=>e.expandedContent);return a?.expandedContent?/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement(c,{"aria-hidden":!0,role:"presentation",className:"border-none"},/* @__PURE__ */e.createElement(p,{colSpan:t.getVisibleCells().length,className:"p-0 inset-0 h-[1px] w-full"},/* @__PURE__ */e.createElement("div",{className:"custom-dashed-border-b absolute inset-0 h-[1px]"}))),/* @__PURE__ */e.createElement(c,{key:`${t.id}-expanded`},/* @__PURE__ */e.createElement(p,{colSpan:t.getVisibleCells().length,className:f("first:pl-4 last:pr-4 py-4 overflow-hidden",k)},
3
- /* @__PURE__ */e.createElement(m.div,{variants:w,initial:"initial",animate:"animate",exit:"exit"},a.expandedContent(t))))):null})()))),[F,N,k]),j=F.getRowModel().rows?.length;/* @__PURE__ */
4
- return e.createElement("div",{className:f("overflow-hidden rounded-md border border-border bg-card",C),...v},/* @__PURE__ */e.createElement(g,{className:"overflow-hidden"},/* @__PURE__ */e.createElement(u,null,F.getHeaderGroups().map(t=>/* @__PURE__ */e.createElement(c,{key:t.id},t.headers.map(t=>/* @__PURE__ */e.createElement(h,{key:t.id,className:"space-x-4 first:pl-4 last:pr-4 py-4 text-current",style:{width:t.getSize()}},t.isPlaceholder?null:i(t.column.columnDef.header,t.getContext())))))),/* @__PURE__ */e.createElement(E,null,R?I():j?V():/* @__PURE__ */e.createElement(c,null,/* @__PURE__ */e.createElement(p,{colSpan:N.length,className:"h-24 text-center"},"No results.")))))}export{N as D};
5
- //# sourceMappingURL=data-table.Dn7VQJFo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-table.Dn7VQJFo.js","sources":["../../../src/components/data-table/data-table.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n ColumnDef,\n flexRender,\n getCoreRowModel,\n useReactTable,\n ExpandedState,\n SortingState,\n getPaginationRowModel,\n getFilteredRowModel,\n getExpandedRowModel,\n getSortedRowModel,\n Row,\n} from '@tanstack/react-table';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../ui/table';\n\nimport { cn } from '@/lib/utils';\n\n// Skeleton component for loading state\nconst Skeleton = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('animate-original-pulse rounded-md bg-muted', className)} {...props} />\n);\n\n// Framer Motion Accordion Variants for bouncy accordion effect\nconst accordionVariants = {\n initial: {\n height: 0,\n },\n animate: {\n height: 'auto',\n transition: {\n height: {\n type: 'spring',\n stiffness: 450, // increase to make it more stiff (less bouncy), therefore increasing the speed of the animation\n damping: 20, // increase to make it more dampened and slow\n },\n },\n },\n exit: {\n height: 0,\n transition: {\n height: {\n duration: 0.1,\n ease: 'linear',\n },\n },\n },\n};\n\nexport type ExtendedColumnDef<TData, TValue = unknown> = ColumnDef<TData, TValue> & {\n expandedContent?: (row: Row<TData>) => React.ReactNode;\n};\n\nexport interface DataTableProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {\n columns: ExtendedColumnDef<TData, TValue>[];\n data: TData[];\n getRowCanExpand?: (row: Row<TData>) => boolean;\n className?: string;\n expandeRowClassName?: string;\n isLoading?: boolean;\n skeletonRowCount?: number;\n}\n\nexport function DataTable<TData extends Record<string, any> & { id?: string | number }, TValue>({\n columns,\n data,\n getRowCanExpand = () => true,\n className,\n expandeRowClassName,\n isLoading = false,\n skeletonRowCount = 10,\n ...props\n}: DataTableProps<TData, TValue>) {\n const [expanded, setExpanded] = React.useState<ExpandedState>({});\n const [sorting, setSorting] = React.useState<SortingState>([]);\n\n // Reset expanded state when data changes. Collapse all rows when data changes.\n React.useEffect(() => {\n setExpanded({});\n }, [data]);\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n state: {\n expanded,\n sorting,\n },\n onExpandedChange: setExpanded,\n onSortingChange: setSorting,\n getRowCanExpand: columns.some((col) => col.expandedContent) ? getRowCanExpand : undefined,\n getPaginationRowModel: getPaginationRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getSortedRowModel: getSortedRowModel(),\n });\n\n // Render the skeleton rows for loading state\n const renderSkeletonRows = useCallback(() => {\n return Array.from({ length: skeletonRowCount }).map((_, index) => (\n <TableRow key={`skeleton-${index}`}>\n {columns.map((column, colIndex) => (\n <TableCell\n key={`skeleton-cell-${index}-${colIndex}`}\n className=\"first:pl-4 last:pr-4 py-4\"\n style={{ width: column.size }}\n >\n <Skeleton className=\"h-4 w-full\" />\n </TableCell>\n ))}\n </TableRow>\n ));\n }, [skeletonRowCount, columns]);\n\n // Render the table rows\n const renderTableRows = useCallback(() => {\n return table.getRowModel().rows.map((row) => (\n <React.Fragment key={row.original.id || row.id}>\n <TableRow data-state={row.getIsSelected() && 'selected'} className={cn(row.getIsExpanded() && 'border-b-0')}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id} className=\"first:pl-4 last:pr-4 py-4\" style={{ width: cell.column.getSize() }}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n <AnimatePresence initial={false}>\n {row.getIsExpanded() &&\n (() => {\n // Find the first column with expandedContent\n const expandedColumn = columns.find((col) => col.expandedContent);\n\n return expandedColumn?.expandedContent ? (\n <>\n <TableRow aria-hidden role=\"presentation\" className=\"border-none\">\n <TableCell colSpan={row.getVisibleCells().length} className=\"p-0 inset-0 h-[1px] w-full\">\n <div className=\"custom-dashed-border-b absolute inset-0 h-[1px]\" />\n </TableCell>\n </TableRow>\n <TableRow key={`${row.id}-expanded`}>\n <TableCell\n colSpan={row.getVisibleCells().length}\n className={cn('first:pl-4 last:pr-4 py-4 overflow-hidden', expandeRowClassName)}\n >\n <motion.div variants={accordionVariants} initial=\"initial\" animate=\"animate\" exit=\"exit\">\n {expandedColumn.expandedContent(row)}\n </motion.div>\n </TableCell>\n </TableRow>\n </>\n ) : null;\n })()}\n </AnimatePresence>\n </React.Fragment>\n ));\n }, [table, columns, expandeRowClassName]);\n\n const hasResults = table.getRowModel().rows?.length;\n\n return (\n <div className={cn('overflow-hidden rounded-md border border-border bg-card', className)} {...props}>\n <Table className=\"overflow-hidden\">\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n className=\"space-x-4 first:pl-4 last:pr-4 py-4 text-current\"\n style={{ width: header.getSize() }}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {isLoading ? (\n renderSkeletonRows()\n ) : hasResults ? (\n renderTableRows()\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"names":["Skeleton","className","props","React","createElement","cn","accordionVariants","initial","height","animate","transition","type","stiffness","damping","exit","duration","ease","DataTable","columns","data","getRowCanExpand","expandeRowClassName","isLoading","skeletonRowCount","expanded","setExpanded","useState","sorting","setSorting","useEffect","table","useReactTable","getCoreRowModel","state","onExpandedChange","onSortingChange","some","col","expandedContent","getPaginationRowModel","getFilteredRowModel","getExpandedRowModel","getSortedRowModel","renderSkeletonRows","useCallback","Array","from","length","map","_","index","TableRow","key","column","colIndex","TableCell","style","width","size","renderTableRows","getRowModel","rows","row","Fragment","original","id","getIsSelected","getIsExpanded","getVisibleCells","cell","getSize","flexRender","columnDef","getContext","AnimatePresence","expandedColumn","find","role","colSpan","motion","div","variants","hasResults","Table","TableHeader","getHeaderGroups","headerGroup","headers","header","TableHead","isPlaceholder","TableBody"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import*as e from"react";import{format as t}from"date-fns";import{CalendarBlank as a}from"@phosphor-icons/react";import{c as r}from"./utils.DtKoarLP.js";import{B as o}from"./button.DXe2tRBO.js";import{Calendar as s}from"../components/ui/calendar.js";import{Popover as m,PopoverTrigger as l,PopoverContent as n}from"../components/ui/popover.js";import '../date-picker.css';function c({date:c,setDate:i,className:p,placeholder:f="Select date"}){/* @__PURE__ */
2
- return e.createElement(m,null,/* @__PURE__ */e.createElement(l,{asChild:!0},/* @__PURE__ */e.createElement(o,{variant:"outline",className:r("w-full justify-start text-left font-normal text-base",!c&&"text-muted-foreground",p)},
3
- /* @__PURE__ */e.createElement(a,{className:"mr-2 !w-5 !h-5"}),c?t(c,"PPP"):f)),/* @__PURE__ */e.createElement(n,{className:"w-auto p-0 z-[9999]"},/* @__PURE__ */e.createElement(s,{mode:"single",selected:c,onSelect:i,className:"single-date-picker-calendar"})))}export{c as D};
4
- //# sourceMappingURL=date-picker.GRONonNX.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-picker.GRONonNX.js","sources":["../../../src/components/date-picker/date-picker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { format } from 'date-fns';\nimport { CalendarBlank as CalendarIcon } from '@phosphor-icons/react';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\nimport { Calendar } from '@/components/ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport '../ui/calendar.css';\n\ninterface DatePickerProps {\n date: Date | undefined;\n setDate: (date: Date | undefined) => void;\n className?: string;\n placeholder?: string;\n}\n\nexport function DatePicker({ date, setDate, className, placeholder = 'Select date' }: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n className={cn(\n 'w-full justify-start text-left font-normal text-base',\n !date && 'text-muted-foreground',\n className,\n )}\n >\n <CalendarIcon className=\"mr-2 !w-5 !h-5\" />\n {date ? format(date, 'PPP') : placeholder}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0 z-[9999]\">\n <Calendar mode=\"single\" selected={date} onSelect={setDate} className=\"single-date-picker-calendar\" />\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["DatePicker","date","setDate","className","placeholder","React","createElement","Popover","PopoverTrigger","asChild","Button","variant","cn","CalendarIcon","format","PopoverContent","Calendar","mode","selected","onSelect"],"mappings":"uVAiBO,SAASA,GAAWC,KAAEA,EAAAC,QAAMA,YAASC,EAAAC,YAAWA,EAAc;AACnE,OACEC,EAAAC,cAACC,EAAA,oBACCF,EAAAC,cAACE,EAAA,CAAeC,SAAO,kBACrBJ,EAAAC,cAACI,EAAA,CACCC,QAAQ,UACRR,UAAWS,EACT,wDACCX,GAAQ,wBACTE;eAGFE,EAAAC,cAACO,EAAA,CAAaV,UAAU,mBACvBF,EAAOa,EAAOb,EAAM,OAASG,mBAGlCC,EAAAC,cAACS,EAAA,CAAeZ,UAAU,sCACxBE,EAAAC,cAACU,EAAA,CAASC,KAAK,SAASC,SAAUjB,EAAMkB,SAAUjB,EAASC,UAAU,iCAI7E"}
@@ -1,2 +0,0 @@
1
- function n(){return n=Object.assign?Object.assign.bind():function(n){for(var r=1;r<arguments.length;r++){var a=arguments[r];for(var t in a)({}).hasOwnProperty.call(a,t)&&(n[t]=a[t])}return n},n.apply(null,arguments)}export{n as _};
2
- //# sourceMappingURL=extends.DPdBf6DS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extends.DPdBf6DS.js","sources":["../../../../../node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };"],"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply"],"mappings":"AAAA,SAASA,IACP,OAAOA,EAAWC,OAAOC,OAASD,OAAOC,OAAOC,OAAS,SAAUC,GACjE,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAIF,UAAUD,GAClB,IAAK,IAAII,KAAKD,GAAG,CAAG,GAAEE,eAAeC,KAAKH,EAAGC,KAAOL,EAAEK,GAAKD,EAAEC,GAC/D,CACA,OAAOL,CACT,EAAGJ,EAASY,MAAM,KAAMN,UAC1B","x_google_ignoreList":[0]}
@@ -1,3 +0,0 @@
1
- import e,{useContext as o,createContext as r}from"react";const n={},t=r(void 0);function a({children:o,flags:r}){/* @__PURE__ */
2
- return e.createElement(t.Provider,{value:r??n},o)}function u(e,r){const n=o(t);if(!n)return console.warn(`useBooleanFlagValue("${e}") used outside of FeatureFlagProvider. Returning default value.`),r;const a=n[e];return void 0===a?r:Boolean(a)}export{a as F,u};
3
- //# sourceMappingURL=feature-flags.DOcVlPHk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feature-flags.DOcVlPHk.js","sources":["../../../src/lib/feature-flags.tsx"],"sourcesContent":["import React, { createContext, useContext, ReactNode } from 'react';\n\nexport type FeatureFlags = { [key: string]: boolean | string | number };\n\n/** Stable reference when `flags` is omitted so Provider value identity does not change every render. */\nconst EMPTY_FEATURE_FLAGS: FeatureFlags = {};\n\nconst FeatureFlagContext = createContext<FeatureFlags | undefined>(undefined);\n\nexport function FeatureFlagProvider({ children, flags }: { children: ReactNode; flags: FeatureFlags | undefined }) {\n return <FeatureFlagContext.Provider value={flags ?? EMPTY_FEATURE_FLAGS}>{children}</FeatureFlagContext.Provider>;\n}\n\nexport function useBooleanFlagValue(flagKey: string, defaultValue: boolean): boolean {\n const flags = useContext(FeatureFlagContext);\n\n if (!flags) {\n console.warn(`useBooleanFlagValue(\"${flagKey}\") used outside of FeatureFlagProvider. Returning default value.`);\n\n return defaultValue;\n }\n\n const value = flags[flagKey];\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Boolean(value);\n}\n"],"names":["EMPTY_FEATURE_FLAGS","FeatureFlagContext","createContext","FeatureFlagProvider","children","flags","Provider","value","useBooleanFlagValue","flagKey","defaultValue","useContext","console","warn","Boolean"],"mappings":"yDAKA,MAAMA,EAAoC,CAAA,EAEpCC,EAAqBC,OAAwC,GAE5D,SAASC,GAAoBC,SAAEA,EAAAC,MAAUA;AAC9C,uBAAQJ,EAAmBK,SAAnB,CAA4BC,MAAOF,GAASL,GAAsBI,EAC5E,CAEO,SAASI,EAAoBC,EAAiBC,GACnD,MAAML,EAAQM,EAAWV,GAEzB,IAAKI,EAGH,OAFAO,QAAQC,KAAK,wBAAwBJ,qEAE9BC,EAGT,MAAMH,EAAQF,EAAMI,GAEpB,YAAc,IAAVF,EACKG,EAGFI,QAAQP,EACjB"}
@@ -1,13 +0,0 @@
1
- import e,{useState as t,useRef as a,useEffect as n}from"react";import{PaperPlaneRight as r,X as l,Heart as i,ThumbsUp as o,ThumbsDown as c}from"@phosphor-icons/react";import{AnimatePresence as s,motion as m}from"framer-motion";import{Card as d,CardContent as u,CardFooter as p}from"../components/ui/card.js";import{Textarea as f}from"../components/ui/textarea.js";import{B as h}from"./button.DXe2tRBO.js";import{TooltipProvider as E,Tooltip as b,TooltipTrigger as g,TooltipContent as y}from"../components/ui/tooltip.js";import{c as v}from"./utils.DtKoarLP.js";function x({open:i,onSubmit:o,thankYouText:c="Thank you for your feedback!",placeholder:E="What could we have done better? Your feedback is valuable to us...",maxLength:b=500}){const[g,y]=t(""),[v,x]=t(!1),k=a(null);n(()=>{i&&(y(""),x(!1),setTimeout(()=>k.current?.focus(),0))},[i]);const N=()=>{g.trim()&&(o?.(g),x(!0))};/* @__PURE__ */
2
- return e.createElement(s,null,i&&!v&&/* @__PURE__ */e.createElement(m.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:12},transition:{duration:.25,ease:[.4,0,.2,1]}},
3
- /* @__PURE__ */e.createElement(d,{className:"gap-2 p-3"},/* @__PURE__ */e.createElement(u,{className:"px-0"},/* @__PURE__ */e.createElement(f,{ref:k,placeholder:E,className:"w-full border-none shadow-none focus-visible:ring-0 p-0",maxLength:b,value:g,rows:4,onChange:e=>y(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),N())}}),/* @__PURE__ */e.createElement("div",{className:"flex justify-end mt-1"},/* @__PURE__ */e.createElement("span",{className:"text-xs text-muted-foreground select-none"},b-g.length," characters remaining"))),/* @__PURE__ */e.createElement(p,{className:"p-0 gap-2 flex-row-reverse"},/* @__PURE__ */e.createElement(h,{size:"icon",onClick:N,disabled:!g.length,"aria-label":"Submit feedback"},/* @__PURE__ */e.createElement(r,{"aria-hidden":"true",weight:"bold"})),/* @__PURE__ */e.createElement(h,{size:"icon",variant:"ghost",onClick:()=>{y(""),k.current?.focus()},"aria-label":"Cancel feedback"},
4
- /* @__PURE__ */e.createElement(l,{"aria-hidden":"true",weight:"bold"}))))),i&&v&&/* @__PURE__ */e.createElement(m.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:12},transition:{duration:.25,ease:[.4,0,.2,1]}},
5
- /* @__PURE__ */e.createElement(d,{className:"gap-2 p-3"},/* @__PURE__ */e.createElement(u,{className:"px-0"},/* @__PURE__ */e.createElement("p",null,c)))))}function k({className:t,children:a,doAnimation:n=!1,...r}){/* @__PURE__ */
6
- return e.createElement("div",{className:v("relative",t),...r},/* @__PURE__ */e.createElement(s,null,n&&/* @__PURE__ */e.createElement(e.Fragment,null,Array.from({length:8}).map((t,a)=>/* @__PURE__ */e.createElement(m.div,{key:a,className:"absolute top-1/2 left-1/2 origin-center pointer-events-none",initial:{opacity:0,scale:.3,x:0,y:0},animate:{opacity:[0,1,1,0],scale:[.3,1,1,0],x:[0,30*Math.cos(a*(Math.PI/4))],y:[0,30*Math.sin(a*(Math.PI/4))],rotate:[0,a%2?45:-45]},transition:{duration:1.2,ease:[.4,0,.2,1],times:[0,.3,.7,1],delay:.1*a}},
7
- /* @__PURE__ */e.createElement(i,{className:"size-4 text-rose-500",style:{filter:"drop-shadow(0 0 3px rgba(255, 75, 110, 0.8))",strokeWidth:2.5}}))),/* @__PURE__ */e.createElement(m.div,{className:"absolute inset-0 rounded-full bg-primary pointer-events-none",initial:{opacity:0,scale:.8},animate:{opacity:[0,.15,.15,0],scale:[.8,1.8,1.8,2]},transition:{duration:1.2,ease:"easeOut",times:[0,.3,.7,1]}}))),a)}function N({feedback:r,onFeedback:l,textConfig:i={},disabled:d=!1,feedbackReasonLength:u=500,feedbackReasonPlaceholder:p="What could we have done better? Your feedback is valuable to us...",onFeedbackReasonSubmit:f,feedbackReasonThankYouText:v="Thank you for your feedback!"}){const[N,w]=t(!1),[j,T]=t(!1),C=a(null);n(()=>{j&&C.current&&C.current.focus()},[j]);const z=e=>{l&&("accept"===e&&(w(!0),setTimeout(()=>w(!1),2e3)),l(e),"reject"===e&&T(!0))};/* @__PURE__ */
8
- return e.createElement("div",{className:"flex flex-col gap-2"},/* @__PURE__ */e.createElement("div",{className:"flex justify-end gap-2","data-name":"Feedback"},/* @__PURE__ */e.createElement(E,null,/* @__PURE__ */e.createElement(k,{doAnimation:N},/* @__PURE__ */e.createElement(b,null,/* @__PURE__ */e.createElement(g,{asChild:!0},/* @__PURE__ */e.createElement(h,{variant:"ghost",size:"sm",className:"rounded-md size-9 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 "+("accept"===r?"bg-green-100 text-green-600 hover:bg-green-200":"text-dark-500"),onClick:()=>{z("accept"),T(!1)},disabled:d},
9
- /* @__PURE__ */e.createElement(m.div,{initial:{scale:1},animate:{scale:"accept"===r?[1,1.2,1]:1},transition:{duration:.3}},
10
- /* @__PURE__ */e.createElement(o,{weight:"bold"})))),/* @__PURE__ */e.createElement(y,null,/* @__PURE__ */e.createElement("p",null,i.positiveAnswerText||"Helpful"))))),/* @__PURE__ */e.createElement(E,null,/* @__PURE__ */e.createElement(b,null,/* @__PURE__ */e.createElement(g,{asChild:!0},/* @__PURE__ */e.createElement(h,{variant:"ghost",size:"sm",className:"rounded-md size-9 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 "+("reject"===r?"bg-red-100 text-red-600 hover:bg-red-200":"text-dark-500"),onClick:()=>z("reject"),disabled:d},
11
- /* @__PURE__ */e.createElement(m.div,{initial:{scale:1},animate:{scale:"reject"===r?[1,1.2,1]:1},transition:{duration:.3}},
12
- /* @__PURE__ */e.createElement(c,{weight:"bold"})))),/* @__PURE__ */e.createElement(y,null,/* @__PURE__ */e.createElement("p",null,i.negativeAnswerText||"Not helpful"))))),/* @__PURE__ */e.createElement(s,null,j&&/* @__PURE__ */e.createElement(x,{open:j,onSubmit:f,thankYouText:v,placeholder:p,maxLength:u})))}export{N as F};
13
- //# sourceMappingURL=feedback.nVBNjdPh.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback.nVBNjdPh.js","sources":["../../../src/components/feedback/feedback-reason.tsx","../../../src/components/love/love.tsx","../../../src/components/feedback/feedback.tsx"],"sourcesContent":["import React, { useRef, useEffect, useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { PaperPlaneRight, X } from '@phosphor-icons/react';\n\nimport { Card, CardContent, CardFooter } from '@/components/ui/card';\nimport { Textarea } from '@/components/ui/textarea';\nimport { Button } from '@/components/ui/button';\n\ninterface FeedbackReasonProps {\n open: boolean;\n onSubmit?: (reason: string) => void;\n thankYouText?: string;\n placeholder?: string;\n maxLength?: number;\n}\n\nexport function FeedbackReason({\n open,\n onSubmit,\n thankYouText = 'Thank you for your feedback!',\n placeholder = 'What could we have done better? Your feedback is valuable to us...',\n maxLength = 500,\n}: FeedbackReasonProps) {\n const [reason, setReason] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (open) {\n setReason('');\n setSubmitted(false);\n setTimeout(() => textareaRef.current?.focus(), 0);\n }\n }, [open]);\n\n const handleSubmit = () => {\n if (reason.trim()) {\n onSubmit?.(reason);\n setSubmitted(true);\n }\n };\n\n return (\n <AnimatePresence>\n {open && !submitted && (\n <motion.div\n initial={{ opacity: 0, y: 12 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: 12 }}\n transition={{ duration: 0.25, ease: [0.4, 0, 0.2, 1] }}\n >\n <Card className=\"gap-2 p-3\">\n <CardContent className=\"px-0\">\n <Textarea\n ref={textareaRef}\n placeholder={placeholder}\n className=\"w-full border-none shadow-none focus-visible:ring-0 p-0\"\n maxLength={maxLength}\n value={reason}\n rows={4}\n onChange={(e) => setReason(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n }}\n />\n <div className=\"flex justify-end mt-1\">\n <span className=\"text-xs text-muted-foreground select-none\">\n {maxLength - reason.length} characters remaining\n </span>\n </div>\n </CardContent>\n <CardFooter className=\"p-0 gap-2 flex-row-reverse\">\n <Button size=\"icon\" onClick={handleSubmit} disabled={!reason.length} aria-label=\"Submit feedback\">\n <PaperPlaneRight aria-hidden=\"true\" weight=\"bold\" />\n </Button>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n onClick={() => {\n setReason('');\n textareaRef.current?.focus();\n }}\n aria-label=\"Cancel feedback\"\n >\n <X aria-hidden=\"true\" weight=\"bold\" />\n </Button>\n </CardFooter>\n </Card>\n </motion.div>\n )}\n {open && submitted && (\n <motion.div\n initial={{ opacity: 0, y: 12 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: 12 }}\n transition={{ duration: 0.25, ease: [0.4, 0, 0.2, 1] }}\n >\n <Card className=\"gap-2 p-3\">\n <CardContent className=\"px-0\">\n <p>{thankYouText}</p>\n </CardContent>\n </Card>\n </motion.div>\n )}\n </AnimatePresence>\n );\n}\n","import { Heart } from '@phosphor-icons/react';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport React from 'react';\n\nimport { cn } from '@/lib/utils';\n\ninterface LoveProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n doAnimation?: boolean;\n}\n\nexport function Love({ className, children, doAnimation = false, ...props }: LoveProps) {\n return (\n <div className={cn('relative', className)} {...props}>\n <AnimatePresence>\n {doAnimation && (\n <>\n {Array.from({ length: 8 }).map((_, i) => (\n <motion.div\n key={i}\n className=\"absolute top-1/2 left-1/2 origin-center pointer-events-none\"\n initial={{ opacity: 0, scale: 0.3, x: 0, y: 0 }}\n animate={{\n opacity: [0, 1, 1, 0],\n scale: [0.3, 1, 1, 0],\n x: [0, Math.cos(i * (Math.PI / 4)) * 30],\n y: [0, Math.sin(i * (Math.PI / 4)) * 30],\n rotate: [0, i % 2 ? 45 : -45],\n }}\n transition={{\n duration: 1.2,\n ease: [0.4, 0, 0.2, 1],\n times: [0, 0.3, 0.7, 1],\n delay: i * 0.1,\n }}\n >\n <Heart\n className=\"size-4 text-rose-500\"\n style={{\n filter: 'drop-shadow(0 0 3px rgba(255, 75, 110, 0.8))',\n strokeWidth: 2.5,\n }}\n />\n </motion.div>\n ))}\n <motion.div\n className=\"absolute inset-0 rounded-full bg-primary pointer-events-none\"\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{\n opacity: [0, 0.15, 0.15, 0],\n scale: [0.8, 1.8, 1.8, 2],\n }}\n transition={{\n duration: 1.2,\n ease: 'easeOut',\n times: [0, 0.3, 0.7, 1],\n }}\n />\n </>\n )}\n </AnimatePresence>\n {children}\n </div>\n );\n}\n","import React, { useState, useRef, useEffect } from 'react';\nimport { ThumbsUp, ThumbsDown } from '@phosphor-icons/react';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nimport { FeedbackReason } from './feedback-reason';\nimport { Love } from '../love';\n\nimport { Button } from '@/components/ui/button';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\n\nexport type FeedbackResponse = 'accept' | 'reject';\n\ninterface FeedbackProps {\n feedback?: FeedbackResponse;\n onFeedback?: (response: FeedbackResponse) => void;\n textConfig?: {\n positiveAnswerText?: string;\n negativeAnswerText?: string;\n };\n disabled?: boolean;\n feedbackReasonLength?: number;\n feedbackReasonPlaceholder?: string;\n onFeedbackReasonSubmit?: (reason: string) => void;\n feedbackReasonThankYouText?: string;\n}\n\nexport function Feedback({\n feedback,\n onFeedback,\n textConfig = {},\n disabled = false,\n feedbackReasonLength = 500,\n feedbackReasonPlaceholder = 'What could we have done better? Your feedback is valuable to us...',\n onFeedbackReasonSubmit,\n feedbackReasonThankYouText = 'Thank you for your feedback!',\n}: FeedbackProps) {\n const [showHearts, setShowHearts] = useState(false);\n const [showFeedbackReason, setShowFeedbackReason] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (showFeedbackReason && textareaRef.current) {\n textareaRef.current.focus();\n }\n }, [showFeedbackReason]);\n\n const handleFeedback = (response: FeedbackResponse) => {\n if (onFeedback) {\n if (response === 'accept') {\n setShowHearts(true);\n setTimeout(() => setShowHearts(false), 2000);\n }\n onFeedback(response);\n if (response === 'reject') {\n setShowFeedbackReason(true);\n }\n }\n };\n\n return (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex justify-end gap-2\" data-name=\"Feedback\">\n <TooltipProvider>\n <Love doAnimation={showHearts}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={`rounded-md size-9 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 ${\n feedback === 'accept' ? 'bg-green-100 text-green-600 hover:bg-green-200' : 'text-dark-500'\n }`}\n onClick={() => {\n handleFeedback('accept');\n setShowFeedbackReason(false);\n }}\n disabled={disabled}\n >\n <motion.div\n initial={{ scale: 1 }}\n animate={{ scale: feedback === 'accept' ? [1, 1.2, 1] : 1 }}\n transition={{ duration: 0.3 }}\n >\n <ThumbsUp weight=\"bold\" />\n </motion.div>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>{textConfig.positiveAnswerText || 'Helpful'}</p>\n </TooltipContent>\n </Tooltip>\n </Love>\n </TooltipProvider>\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={`rounded-md size-9 flex items-center justify-center transition-all duration-200 transform hover:scale-105 active:scale-95 ${\n feedback === 'reject' ? 'bg-red-100 text-red-600 hover:bg-red-200' : 'text-dark-500'\n }`}\n onClick={() => handleFeedback('reject')}\n disabled={disabled}\n >\n <motion.div\n initial={{ scale: 1 }}\n animate={{ scale: feedback === 'reject' ? [1, 1.2, 1] : 1 }}\n transition={{ duration: 0.3 }}\n >\n <ThumbsDown weight=\"bold\" />\n </motion.div>\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>{textConfig.negativeAnswerText || 'Not helpful'}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n <AnimatePresence>\n {showFeedbackReason && (\n <FeedbackReason\n open={showFeedbackReason}\n onSubmit={onFeedbackReasonSubmit}\n thankYouText={feedbackReasonThankYouText}\n placeholder={feedbackReasonPlaceholder}\n maxLength={feedbackReasonLength}\n />\n )}\n </AnimatePresence>\n </div>\n );\n}\n"],"names":["FeedbackReason","open","onSubmit","thankYouText","placeholder","maxLength","reason","setReason","useState","submitted","setSubmitted","textareaRef","useRef","useEffect","setTimeout","current","focus","handleSubmit","trim","React","createElement","AnimatePresence","motion","div","initial","opacity","y","animate","exit","transition","duration","ease","Card","className","CardContent","Textarea","ref","value","rows","onChange","e","target","onKeyDown","key","shiftKey","preventDefault","length","CardFooter","Button","size","onClick","disabled","PaperPlaneRight","weight","variant","X","Love","children","doAnimation","props","cn","Fragment","Array","from","map","_","i","scale","x","Math","cos","PI","sin","rotate","times","delay","Heart","style","filter","strokeWidth","Feedback","feedback","onFeedback","textConfig","feedbackReasonLength","feedbackReasonPlaceholder","onFeedbackReasonSubmit","feedbackReasonThankYouText","showHearts","setShowHearts","showFeedbackReason","setShowFeedbackReason","handleFeedback","response","TooltipProvider","Tooltip","TooltipTrigger","asChild","ThumbsUp","TooltipContent","positiveAnswerText","ThumbsDown","negativeAnswerText"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import e,{useState as t,useEffect as a,useCallback as s}from"react";import{useDropzone as r}from"react-dropzone";import{CloudArrowUp as l,CaretDown as c,CaretUp as o,FileVideo as n,Circle as m,CheckCircle as i}from"@phosphor-icons/react";import{Card as p,CardContent as d}from"../components/ui/card.js";import{c as u}from"./utils.DtKoarLP.js";import{createPortal as f}from"react-dom";import{B as g}from"./button.DXe2tRBO.js";import{Collapsible as x,CollapsibleTrigger as b,CollapsibleContent as N}from"../components/ui/collapsible.js";const E=e=>{if(0===e)return"0 Bytes";const t=Math.floor(Math.log(e)/Math.log(1024));return Number.parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]};function h({onDropAccepted:t,onDropRejected:a,accept:s={"image/*":[".png",".jpg",".jpeg",".gif",".mp4"],"application/pdf":[".pdf"],"text/*":[".txt",".csv"]},maxSize:c=5242880,maxFiles:o=5,multiple:n=!0,className:m,disabled:i=!1,title:d="Drag & drop files here, or click to select",description:f="",supportsMessage:g="",children:x}){const{getRootProps:b,getInputProps:N,isDragActive:h,isDragReject:v}=r({onDropAccepted:t,onDropRejected:a,accept:s,maxSize:c,multiple:n,disabled:i,maxFiles:o});/* @__PURE__ */
2
- return e.createElement("div",{"data-testid":"file-upload",className:"w-full space-y-4"},/* @__PURE__ */e.createElement("div",{className:u("group",m,"focus-visible:outline-none"),...b()},/* @__PURE__ */e.createElement(p,{className:u("custom-dashed-border shadow-none p-8 text-center cursor-pointer","group-focus:custom-dashed-border-hover","group-hover:custom-dashed-border-hover",h&&!v&&"border-primary bg-primary/5",v&&"border-destructive bg-destructive/5",i&&"cursor-not-allowed opacity-50")},
3
- /* @__PURE__ */e.createElement("input",{...N()}),
4
- /* @__PURE__ */e.createElement("div",{className:"flex flex-col items-center gap-4"},/* @__PURE__ */e.createElement(l,{className:u("size-12",h&&!v&&"text-primary",v&&"text-destructive")}),/* @__PURE__ */e.createElement("div",{className:"space-y-2"},/* @__PURE__ */e.createElement("p",{className:"text-lg font-medium"},h?v?"Some files will be rejected":"Drop files here":d),f&&/* @__PURE__ */e.createElement("p",{className:"text-sm"},f),g?/* @__PURE__ */e.createElement("p",{className:"text-sm"},g):/* @__PURE__ */e.createElement("p",{className:"text-sm"},`Supports: ${Object.values(s).flat().join(", ")} • Max size: ${E(c)}${o>1?` • Max files: ${o}`:""}`))))),x)}const v=e.memo(({className:t})=>/* @__PURE__ */e.createElement("div",{className:u("relative",t)},/* @__PURE__ */e.createElement(i,{className:"absolute size-6 text-green-400",weight:"fill"}),/* @__PURE__ */e.createElement(i,{className:"absolute size-6 text-black",weight:"regular"})));v.displayName="CheckCircleIcon";const y=({uploads:r,className:l,onCancelUpload:i,steps:h=[{id:"upload",label:"Uploading video",status:"current"},{id:"analyze",label:"Analyzing content",status:"pending"},{id:"create",label:"Creating help articles",status:"pending"}],timeRemaining:y,title:z="Video Processing"})=>{const[w,j]=t(!1),[k,M]=t(!0);a(()=>{j(!0)},[]);const C=s(e=>"success"===e.status?"Uploaded":"error"===e.status?"Retry upload":"Cancel upload",[]);if(!w||0===r.length)return null;if("undefined"==typeof document)return null;const D=/* @__PURE__ */e.createElement(x,{open:k,onOpenChange:M,className:u("fixed bottom-3 right-3 w-96 shadow-lg border z-50 transition-all duration-200 h-auto p-0 gap-4 bg-dark-100 rounded-lg overflow-hidden",l)},
5
- /* @__PURE__ */e.createElement(b,{asChild:!0},/* @__PURE__ */e.createElement("div",{className:"flex items-center justify-between py-4 px-6 bg-foreground text-background cursor-pointer"},/* @__PURE__ */e.createElement("div",{className:"flex flex-col gap-0"},/* @__PURE__ */e.createElement("span",{className:"font-semibold"},z),y&&/* @__PURE__ */e.createElement("span",{className:"text-sm text-muted-foreground"},y)),/* @__PURE__ */e.createElement(g,{variant:"ghost",size:"sm",className:"size-6 p-0"},k?/* @__PURE__ */e.createElement(c,{className:"size-4"}):/* @__PURE__ */e.createElement(o,{className:"size-4"})))),
6
- /* @__PURE__ */e.createElement(N,null,r.map(t=>/* @__PURE__ */e.createElement(p,{key:t.id,className:u("rounded-none p-0")},/* @__PURE__ */e.createElement(d,{className:"p-0"},/* @__PURE__ */e.createElement("div",{className:"px-6 py-4 border-b"},/* @__PURE__ */e.createElement("div",{className:"flex items-center gap-4"},/* @__PURE__ */e.createElement("div",{className:"size-12 bg-yellow-400 border border-dark rounded-lg flex items-center justify-center text-dark shrink-0"},/* @__PURE__ */e.createElement(n,{className:"size-6"})),/* @__PURE__ */e.createElement("div",{className:"flex-1 flex flex-col gap-0"},/* @__PURE__ */e.createElement("h3",{className:"text-base font-medium flex items-center gap-1 whitespace-nowrap"},/* @__PURE__ */e.createElement("span",{className:"truncate max-w-56"},t.file.name),/* @__PURE__ */e.createElement("span",{className:"shrink-0"}," • ",E(t.file.size))),/* @__PURE__ */e.createElement(g,{variant:"dark",size:"sm",className:"self-start h-6 text-xs bg-foreground text-background",onClick:i,"data-id":t.id,disabled:"success"===t.status||100===t.progress,"data-status":t.status},C(t))))),/* @__PURE__ */e.createElement("ol",{className:"py-2"},h.map(a=>/* @__PURE__ */e.createElement("li",{key:a.id,className:u("flex items-center gap-4 px-6 py-3 relative","after:absolute after:w-[1px] after:bg-foreground after:top-[38px] after:-bottom-[10px] after:left-[35px]","last-of-type:after:hidden")},"completed"===a.status?/* @__PURE__ */e.createElement(v,{className:"size-6"}):/* @__PURE__ */e.createElement(m,{className:"size-6"}),
7
- /* @__PURE__ */e.createElement("span",{className:"flex items-center gap-1"},`${a.label} ${"upload"===a.id?`— ${Math.round(t.progress)}%`:""}`)))))))));return f(D,document.body)};export{h as F,y as a,E as f};
8
- //# sourceMappingURL=file-upload-status.znDE1kUC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-upload-status.znDE1kUC.js","sources":["../../../src/components/file-upload/utils.tsx","../../../src/components/file-upload/file-upload.tsx","../../../src/components/file-upload/file-upload-status.tsx"],"sourcesContent":["export const formatFileSize = (bytes: number) => {\n if (bytes === 0) return '0 Bytes';\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Number.parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\n};\n","import React from 'react';\nimport { useDropzone } from 'react-dropzone';\nimport { CloudArrowUp } from '@phosphor-icons/react';\n\nimport type { FileUploadProps } from './types';\nimport { formatFileSize } from './utils';\n\nimport { Card } from '@/components/ui/card';\nimport { cn } from '@/lib/utils';\n\nexport function FileUpload({\n onDropAccepted,\n onDropRejected,\n accept = {\n 'image/*': ['.png', '.jpg', '.jpeg', '.gif', '.mp4'],\n 'application/pdf': ['.pdf'],\n 'text/*': ['.txt', '.csv'],\n },\n maxSize = 5 * 1024 * 1024, // 5MB\n maxFiles = 5,\n multiple = true,\n className,\n disabled = false,\n title = 'Drag & drop files here, or click to select',\n description = '',\n supportsMessage = '',\n children,\n}: FileUploadProps) {\n const { getRootProps, getInputProps, isDragActive, isDragReject } = useDropzone({\n onDropAccepted,\n onDropRejected,\n accept,\n maxSize,\n multiple,\n disabled,\n maxFiles,\n });\n\n return (\n <div data-testid=\"file-upload\" className=\"w-full space-y-4\">\n <div className={cn('group', className, 'focus-visible:outline-none')} {...getRootProps()}>\n <Card\n className={cn(\n 'custom-dashed-border shadow-none p-8 text-center cursor-pointer',\n 'group-focus:custom-dashed-border-hover',\n 'group-hover:custom-dashed-border-hover',\n isDragActive && !isDragReject && 'border-primary bg-primary/5',\n isDragReject && 'border-destructive bg-destructive/5',\n disabled && 'cursor-not-allowed opacity-50',\n )}\n >\n <input {...getInputProps()} />\n <div className=\"flex flex-col items-center gap-4\">\n <CloudArrowUp\n className={cn(\n 'size-12',\n isDragActive && !isDragReject && 'text-primary',\n isDragReject && 'text-destructive',\n )}\n />\n <div className=\"space-y-2\">\n <p className=\"text-lg font-medium\">\n {isDragActive ? (isDragReject ? 'Some files will be rejected' : 'Drop files here') : title}\n </p>\n {description && <p className=\"text-sm\">{description}</p>}\n {supportsMessage ? (\n <p className=\"text-sm\">{supportsMessage}</p>\n ) : (\n <p className=\"text-sm\">\n {`Supports: ${Object.values(accept).flat().join(', ')} • Max size: ${formatFileSize(maxSize)}${\n maxFiles > 1 ? ` • Max files: ${maxFiles}` : ''\n }`}\n </p>\n )}\n </div>\n </div>\n </Card>\n </div>\n {children}\n </div>\n );\n}\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { CaretUp, CaretDown, FileVideo, CheckCircle, Circle } from '@phosphor-icons/react';\n\nimport type { UploadState } from './types';\nimport { formatFileSize } from './utils';\n\nimport { Card, CardContent } from '@/components/ui/card';\nimport { Button } from '@/components/ui/button';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { cn } from '@/lib/utils';\n\nexport interface ProcessingStep {\n id: string;\n label: string;\n status: 'completed' | 'current' | 'pending' | 'error';\n}\n\ninterface FileUploadStatusProps {\n uploads: UploadState[];\n className?: string;\n timeRemaining?: string;\n onCancelUpload?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n steps?: ProcessingStep[];\n title?: string;\n}\n\nconst CheckCircleIcon = React.memo<{ className?: string }>(({ className }) => {\n return (\n <div className={cn('relative', className)}>\n <CheckCircle className=\"absolute size-6 text-green-400\" weight=\"fill\" />\n <CheckCircle className=\"absolute size-6 text-black\" weight=\"regular\" />\n </div>\n );\n});\n\nCheckCircleIcon.displayName = 'CheckCircleIcon';\n\nexport const FileUploadStatus: React.FC<FileUploadStatusProps> = ({\n uploads,\n className,\n onCancelUpload,\n steps = [\n { id: 'upload', label: 'Uploading video', status: 'current' },\n { id: 'analyze', label: 'Analyzing content', status: 'pending' },\n { id: 'create', label: 'Creating help articles', status: 'pending' },\n ],\n timeRemaining,\n title = 'Video Processing',\n}) => {\n const [mounted, setMounted] = useState(false);\n const [isOpen, setIsOpen] = useState(true);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n const cancelButtonLabel = useCallback((uploadState: UploadState) => {\n if (uploadState.status === 'success') return 'Uploaded';\n if (uploadState.status === 'error') return 'Retry upload';\n\n return 'Cancel upload';\n }, []);\n\n if (!mounted || uploads.length === 0) return null;\n\n // Ensure we're in a browser environment\n if (typeof document === 'undefined') return null;\n\n const statusCard = (\n <Collapsible\n open={isOpen}\n onOpenChange={setIsOpen}\n className={cn(\n 'fixed bottom-3 right-3 w-96 shadow-lg border z-50 transition-all duration-200 h-auto p-0 gap-4 bg-dark-100 rounded-lg overflow-hidden',\n className,\n )}\n >\n <CollapsibleTrigger asChild>\n <div className=\"flex items-center justify-between py-4 px-6 bg-foreground text-background cursor-pointer\">\n <div className=\"flex flex-col gap-0\">\n <span className=\"font-semibold\">{title}</span>\n {timeRemaining && <span className=\"text-sm text-muted-foreground\">{timeRemaining}</span>}\n </div>\n <Button variant=\"ghost\" size=\"sm\" className=\"size-6 p-0\">\n {isOpen ? <CaretDown className=\"size-4\" /> : <CaretUp className=\"size-4\" />}\n </Button>\n </div>\n </CollapsibleTrigger>\n <CollapsibleContent>\n {uploads.map((upload) => (\n <Card key={upload.id} className={cn('rounded-none p-0')}>\n <CardContent className=\"p-0\">\n {/* File Info */}\n <div className=\"px-6 py-4 border-b\">\n <div className=\"flex items-center gap-4\">\n <div className=\"size-12 bg-yellow-400 border border-dark rounded-lg flex items-center justify-center text-dark shrink-0\">\n <FileVideo className=\"size-6\" />\n </div>\n <div className=\"flex-1 flex flex-col gap-0\">\n <h3 className=\"text-base font-medium flex items-center gap-1 whitespace-nowrap\">\n <span className=\"truncate max-w-56\">{upload.file.name}</span>\n <span className=\"shrink-0\"> • {formatFileSize(upload.file.size)}</span>\n </h3>\n <Button\n variant=\"dark\"\n size=\"sm\"\n className=\"self-start h-6 text-xs bg-foreground text-background\"\n onClick={onCancelUpload}\n data-id={upload.id}\n disabled={upload.status === 'success' || upload.progress === 100}\n data-status={upload.status}\n >\n {cancelButtonLabel(upload)}\n </Button>\n </div>\n </div>\n </div>\n\n {/* Steps */}\n <ol className=\"py-2\">\n {steps.map((step) => (\n <li\n key={step.id}\n className={cn(\n 'flex items-center gap-4 px-6 py-3 relative',\n 'after:absolute after:w-[1px] after:bg-foreground after:top-[38px] after:-bottom-[10px] after:left-[35px]',\n 'last-of-type:after:hidden',\n )}\n >\n {step.status === 'completed' ? (\n <CheckCircleIcon className=\"size-6\" />\n ) : (\n <Circle className=\"size-6\" />\n )}\n <span className=\"flex items-center gap-1\">\n {`${step.label} ${step.id === 'upload' ? `— ${Math.round(upload.progress)}%` : ''}`}\n </span>\n </li>\n ))}\n </ol>\n </CardContent>\n </Card>\n ))}\n </CollapsibleContent>\n </Collapsible>\n );\n\n return createPortal(statusCard, document.body);\n};\n"],"names":["formatFileSize","bytes","i","Math","floor","log","Number","parseFloat","pow","toFixed","FileUpload","onDropAccepted","onDropRejected","accept","maxSize","maxFiles","multiple","className","disabled","title","description","supportsMessage","children","getRootProps","getInputProps","isDragActive","isDragReject","useDropzone","React","createElement","cn","Card","CloudArrowUp","Object","values","flat","join","CheckCircleIcon","memo","CheckCircle","weight","displayName","FileUploadStatus","uploads","onCancelUpload","steps","id","label","status","timeRemaining","mounted","setMounted","useState","isOpen","setIsOpen","useEffect","cancelButtonLabel","useCallback","uploadState","length","document","statusCard","Collapsible","open","onOpenChange","CollapsibleTrigger","asChild","Button","variant","size","CaretDown","CaretUp","CollapsibleContent","map","upload","key","CardContent","FileVideo","file","name","onClick","progress","step","Circle","round","createPortal","body"],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import e,{useRef as t,useState as l,forwardRef as r,useImperativeHandle as a,useEffect as n}from"react";import{Check as o,XCircle as s,Plus as c}from"@phosphor-icons/react";import{createId as u}from"@paralleldrive/cuid2";import{B as i}from"./button.DXe2tRBO.js";import{Input as m}from"../components/ui/input.js";import{ButtonGroup as d}from"../components/ui/button-group.js";import{DropdownMenu as p,DropdownMenuTrigger as f,DropdownMenuContent as v,DropdownMenuItem as b}from"../components/ui/dropdown-menu.js";import{Popover as g,PopoverTrigger as h,PopoverContent as E}from"../components/ui/popover.js";import{c as y}from"./utils.DtKoarLP.js";var N=/* @__PURE__ */(e=>(e.IS="is",e.IS_NOT="is not",e.CONTAINS="contains",e.DOES_NOT_CONTAIN="does not contain",e.STARTS_WITH="starts with",e))(N||{});const S=({inputValue:l,setInputValue:r,customValuePlaceholder:a,customValueButtonLabel:n,onSubmit:o,handleKeyDown:s})=>{const c=t(null);/* @__PURE__ */
2
- return e.createElement("form",{className:"p-3",onSubmit:e=>{e.preventDefault(),o()}},
3
- /* @__PURE__ */e.createElement(m,{ref:c,type:"text",value:l,onChange:e=>r(e.target.value),placeholder:a,className:"mb-2",onKeyDown:e=>s(e,!0)}),
4
- /* @__PURE__ */e.createElement(i,{type:"submit",variant:"dark",className:"w-full",onKeyDown:e=>s(e,!1),"data-custom-submit-button":!0},n))},w=({internalFilter:r,valueOptions:a,onConfirm:n,onClose:s})=>{const[c,u]=l(()=>{return e=r.value,Array.isArray(e)?e:e?[e]:[];var e}),[m,d]=l(""),p=t([]),f=t(null),v=e=>{const t=a.find(t=>t.id===e),l=c.includes(e);u(r=>{const a=r.includes(e)?r.filter(t=>t!==e):[...r,e];if(t){const e=l?"deselected":"selected";d(`${t.label} ${e}.`)}return a})},b=()=>{n(c),s()},g=e=>c.includes(e),h=e=>{e<a.length?p.current[e]?.focus():f.current?.focus()},E=(e,t)=>{switch(e.key){case"ArrowDown":{e.preventDefault();const l=Math.min(t+1,a.length);h(l);break}case"ArrowUp":{e.preventDefault();const l=Math.max(t-1,0);h(l);break}case"Enter":case"Spacebar":e.preventDefault(),t<a.length?v(a[t].id):b();break;case"Escape":e.preventDefault(),s()}};/* @__PURE__ */
5
- return e.createElement("div",{className:"py-1",role:"listbox","aria-multiselectable":"true"},/* @__PURE__ */e.createElement("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only"},m),a.map((t,l)=>/* @__PURE__ */e.createElement("button",{key:t.id,ref:e=>p.current[l]=e,type:"button",className:"relative flex w-full text-left cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",onClick:()=>v(t.id),onKeyDown:e=>E(e,l),role:"option","aria-selected":g(t.id)},g(t.id)&&/* @__PURE__ */e.createElement(o,{size:14,className:"mr-2"}),!g(t.id)&&/* @__PURE__ */e.createElement("span",{className:"mr-2 w-3.5"}),t.label)),/* @__PURE__ */e.createElement("div",{className:"border-t border-border mt-1 pt-2 px-2 pb-2"},/* @__PURE__ */e.createElement(i,{ref:f,onClick:b,size:"sm",className:"w-full",disabled:0===c.length,onKeyDown:e=>E(e,a.length)},"Apply (",c.length," selected)")))},x=({valueOptions:l,isValueSelected:r,onValueSelect:a})=>{const n=t([]),s=e=>{n.current[e]?.focus()};/* @__PURE__ */
6
- return e.createElement("div",{className:"py-1",role:"listbox"},l.map((t,c)=>/* @__PURE__ */e.createElement("button",{key:t.id,ref:e=>n.current[c]=e,type:"button",className:"relative flex w-full text-left cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",onClick:()=>a(t.id),onKeyDown:e=>((e,t)=>{switch(e.key){case"ArrowDown":{e.preventDefault();const r=Math.min(t+1,l.length-1);s(r);break}case"ArrowUp":{e.preventDefault();const l=Math.max(t-1,0);s(l);break}case"Enter":case"Spacebar":e.preventDefault(),a(l[t].id)}})(e,c)},r(t.id)&&/* @__PURE__ */e.createElement(o,{size:14,className:"mr-2"}),!r(t.id)&&/* @__PURE__ */e.createElement("span",{className:"mr-2 w-3.5"}),t.label)))},C=r(({filter:r,sourceOptions:c,rules:u,onSourceChange:m,onRemoveFilter:y,onFilterChange:C,selectPlaceholder:D="Select a value",customValuePlaceholder:k="Enter custom value",customValueButtonLabel:O="Done",sourceFirstMessage:V="Please select a source first"},A)=>{const[F,T]=l({id:r.id,source:r.source,operator:r.operator||N.IS,value:r.value}),[z,I]=l(""),[K,j]=l(null),_=t(null),B=t(null),M=t(null);a(A,()=>({focus:()=>{B.current?.focus()}}));const P=F.source?u[F.source]:void 0,R=P?.operators||[],q=P?.multiSelect||!1;let L=P?.inputType||"dropdown";F.operator!==N.CONTAINS&&F.operator!==N.DOES_NOT_CONTAIN||(L="custom");const $=P?.getValueOptions?P.getValueOptions():[],{getSelectedValues:U,isValueSelected:H,getDisplayValue:W}=((e,t,l)=>{const r=()=>Array.isArray(e.value)?e.value:e.value?[e.value]:[];return{getSelectedValues:r,isValueSelected:e=>r().includes(e),getDisplayValue:()=>{const e=r();if(0===e.length)return l;if(1===e.length){const l=t.find(t=>t.id===e[0]);return l?.label||e[0]}return`${e.length} selected`}}})(F,$,D);n(()=>{if("value"===K&&"custom"===L){const e=setTimeout(()=>_.current?.focus(),50);return()=>clearTimeout(e)}},[K,L]),n(()=>{T({id:r.id,source:r.source,operator:r.operator||N.IS,value:r.value})},[r]);const G=e=>{const t=Array.isArray(e.value)?e.value.length>0:!!e.value?.trim();e.source&&e.operator&&t&&C(e)},J=(e,t)=>{const l={...F,[e]:t};if("source"===e){const e=u[t];l.operator=e?.operators[0]?.id,l.value=e?.multiSelect?[]:""}if("operator"===e&&F.source){const e=u[F.source];"dropdown"===e?.inputType&&(l.value=e?.multiSelect?[]:"")}T(l),G(l),q&&"value"===e||j(null)};/* @__PURE__ */
7
- return e.createElement(d,{ref:M,orientation:"horizontal",className:"rounded-full border border-border divide-x-2 divide-dark-500"},
8
- /* @__PURE__ */e.createElement(p,{open:"source"===K,onOpenChange:e=>j(e?"source":null),modal:!1},
9
- /* @__PURE__ */e.createElement(f,{asChild:!0},/* @__PURE__ */e.createElement(i,{ref:B,variant:"ghost",size:"xs",className:"rounded-l-full font-bold"},c.find(e=>e.id===F.source)?.label||c[0]?.label||D)),
10
- /* @__PURE__ */e.createElement(v,{align:"start",className:"w-48"},c.map(t=>/* @__PURE__ */e.createElement(b,{key:t.id,className:"flex items-center",onSelect:()=>{J("source",t.id),m?.(t.id)}},t.id===F.source&&/* @__PURE__ */e.createElement(o,{size:14,className:"mr-2"}),t.label)))),
11
- /* @__PURE__ */e.createElement(p,{open:"operator"===K,onOpenChange:e=>j(e?"operator":null),modal:!1},
12
- /* @__PURE__ */e.createElement(f,{asChild:!0},/* @__PURE__ */e.createElement(i,{variant:"ghost",size:"xs"},R.find(e=>e.id===F.operator)?.label||D)),
13
- /* @__PURE__ */e.createElement(v,{align:"start",className:"w-48"},R.map(t=>/* @__PURE__ */e.createElement(b,{key:t.id,className:"flex items-center",onSelect:()=>J("operator",t.id)},t.id===F.operator&&/* @__PURE__ */e.createElement(o,{size:14,className:"mr-2"}),t.label)))),
14
- /* @__PURE__ */e.createElement(g,{open:"value"===K,onOpenChange:e=>j(e?"value":null)},
15
- /* @__PURE__ */e.createElement(h,{asChild:!0},/* @__PURE__ */e.createElement(i,{variant:"ghost",size:"xs",className:"font-bold"},W())),
16
- /* @__PURE__ */e.createElement(E,{align:"start",className:"w-64 max-h-[min(320px,50vh)] overflow-y-auto p-0"},"custom"===L&&/* @__PURE__ */e.createElement("div",{className:"p-3"},/* @__PURE__ */e.createElement(S,{inputValue:z,setInputValue:I,customValuePlaceholder:k,customValueButtonLabel:O,onSubmit:()=>{if(z.trim()){const e={...F,value:z.trim()};T(e),I(""),j(null),e.source&&e.operator&&e.value&&C(e)}},handleKeyDown:(e,t)=>{if("Escape"!==e.key){if("Tab"===e.key)if(t&&!e.shiftKey){e.preventDefault();const t=document.querySelector("[data-custom-submit-button]");t?.focus()}else t||(e.preventDefault(),_.current?.focus())}else j(null)}})),"dropdown"===L&&/* @__PURE__ */e.createElement(e.Fragment,null,F.source?/* @__PURE__ */e.createElement(e.Fragment,null,q?/* @__PURE__ */e.createElement(w,{internalFilter:F,valueOptions:$,onConfirm:e=>{const t={...F,value:e};T(t);t.source&&t.operator&&e.length>0&&C(t),j(null)},onClose:()=>j(null)}):/* @__PURE__ */e.createElement(x,{valueOptions:$,isValueSelected:H,onValueSelect:e=>{const t=U();let l;l=q?t.includes(e)?t.filter(t=>t!==e):[...t,e]:[e];const r={...F,value:q?l:l[0]||""};T(r),G(r),q||j(null)}})):/* @__PURE__ */e.createElement("div",{className:"p-3 text-sm text-gray-500"},V)))),
17
- /* @__PURE__ */e.createElement(i,{type:"button",variant:"ghost",size:"xs",onClick:()=>{T({id:r.id}),j(null),y(r.id)},className:"p-2 hover:bg-black/10 rounded-none rounded-r-full","aria-label":"Remove filter"},
18
- /* @__PURE__ */e.createElement(s,{size:16,weight:"fill"})))});C.displayName="Filter";const D=({filters:r,onFilterChange:a,onFilterRemove:o,onFilterAdd:s,sourceOptions:m,rules:d,className:p})=>{const[f,v]=l(r||[]),b=t({});n(()=>{v(r||[])},[r]);const g=f.map(e=>e.source).filter(Boolean),h=m.filter(e=>d[e.id]?.multiSelect?!g.includes(e.id):m),E=h.length>0;/* @__PURE__ */
19
- return e.createElement("fieldset",{className:y("flex flex-wrap gap-2",p)},/* @__PURE__ */e.createElement("legend",{className:"sr-only"},"Filters"),f?.map(t=>{const l=m.filter(e=>!g.includes(e.id)||e.id===t.source);/* @__PURE__ */
20
- return e.createElement(C,{key:t.id,ref:e=>{b.current[t.id]=e},filter:t,sourceOptions:l,rules:d,onRemoveFilter:()=>(e=>{const t=f.filter(t=>t.id!==e.id);v(t),o(e.id)})(t),onFilterChange:a})}),E&&/* @__PURE__ */e.createElement(i,{onClick:()=>{if(!E)return;const e={id:u(),source:h[0].id,operator:N.IS,value:d[h[0].id]?.multiSelect?[]:""},t=[...f,e];v(t),requestAnimationFrame(()=>{b.current[e.id]?.focus()}),s?.(e)},variant:"ghost",className:"border border-foreground rounded-full gap-1",size:"sm",title:"Add filter"},
21
- /* @__PURE__ */e.createElement(c,{size:16}),"Add filter"))};export{C as F,N as O,D as a};
22
- //# sourceMappingURL=filters.CZJ31Eqj.js.map