@exegia/corpora-ui 2.0.0 → 3.1.0

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 (588) hide show
  1. package/README.md +20 -0
  2. package/dist-lib/EVILCHARTS-LICENSE.txt +21 -0
  3. package/dist-lib/button-CIRkQXA6.js +152 -0
  4. package/dist-lib/button.js +3 -0
  5. package/dist-lib/card.js +150 -0
  6. package/dist-lib/components/atoms/text/default.d.ts +2 -1143
  7. package/dist-lib/components/blocks/shell/index.d.ts +1 -0
  8. package/dist-lib/components/composed/chat/chart/chart-atom.d.ts +30 -0
  9. package/dist-lib/components/composed/chat/chart/chart-context.d.ts +2 -0
  10. package/dist-lib/components/composed/chat/chart/chart-legend.d.ts +4 -0
  11. package/dist-lib/components/composed/chat/chart/chart-plot.d.ts +3 -0
  12. package/dist-lib/components/composed/chat/chart/chart-root.d.ts +3 -0
  13. package/dist-lib/components/composed/chat/chart/chart-tooltip.d.ts +4 -0
  14. package/dist-lib/components/composed/chat/chart/constants.d.ts +3 -0
  15. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-area-chart.d.ts +93 -0
  16. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-bar-chart.d.ts +86 -0
  17. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-brush.d.ts +65 -0
  18. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-chart.d.ts +44 -0
  19. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-dot.d.ts +16 -0
  20. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-legend.d.ts +24 -0
  21. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-line-chart.d.ts +90 -0
  22. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-pie-chart.d.ts +73 -0
  23. package/dist-lib/components/composed/chat/chart/evilcharts/echarts-tooltip.d.ts +29 -0
  24. package/dist-lib/components/composed/chat/chart/index.d.ts +6 -0
  25. package/dist-lib/components/composed/chat/chart/type.d.ts +80 -0
  26. package/dist-lib/components/composed/chat/chart/use-chart-state.d.ts +3 -0
  27. package/dist-lib/components/composed/chat/chart/use-chart.d.ts +6 -0
  28. package/dist-lib/components/composed/chat/chart/utils.d.ts +5 -0
  29. package/dist-lib/components/composed/chat/chart.d.ts +1 -44
  30. package/dist-lib/components/composed/chat/index.d.ts +1 -1
  31. package/dist-lib/components/ui/badge.d.ts +2 -2
  32. package/dist-lib/components/ui/button.d.ts +2 -2
  33. package/dist-lib/components/ui/glasscn/lazy-glass-surface.d.ts +6 -0
  34. package/dist-lib/components/ui/modal.d.ts +10 -0
  35. package/dist-lib/components/ui/overlays.d.ts +4 -0
  36. package/dist-lib/components/ui/select.d.ts +1 -1
  37. package/dist-lib/components/ui/toast.d.ts +2 -0
  38. package/dist-lib/ease-C9At8rnB.js +120 -0
  39. package/dist-lib/exegia-provider-DNTuLljX.js +124 -0
  40. package/dist-lib/index.css +3 -0
  41. package/dist-lib/index.d.ts +3 -0
  42. package/dist-lib/index.js +10283 -8224
  43. package/dist-lib/input.js +28 -0
  44. package/dist-lib/label.js +19 -0
  45. package/dist-lib/lib/segmented-control.d.ts +1 -1
  46. package/dist-lib/lib/state/exegia-provider.d.ts +17 -8
  47. package/dist-lib/lib/state/index.d.ts +2 -0
  48. package/dist-lib/lib/state/portal-context.d.ts +5 -0
  49. package/dist-lib/lib/state/sound-loading.d.ts +4 -0
  50. package/dist-lib/liquid-glass-BihU6nMl.js +50 -0
  51. package/dist-lib/modal-DLaOK-s1.js +82 -0
  52. package/dist-lib/overlays.js +3 -0
  53. package/dist-lib/rolldown-runtime-Dy4uBu1J.js +11 -0
  54. package/dist-lib/scaffold-Qv4hs5Pf.js +925 -0
  55. package/dist-lib/scaffold.js +2 -0
  56. package/dist-lib/shell-BQ9cjIEu.js +722 -0
  57. package/dist-lib/shell.js +2 -0
  58. package/dist-lib/sound-knGH4lj-.js +19 -0
  59. package/dist-lib/state.js +2 -0
  60. package/dist-lib/toast-CataVXHN.js +193 -0
  61. package/dist-lib/utils-BO0qfoA6.js +61 -0
  62. package/package.json +65 -23
  63. package/dist-lib/components/atoms/_layout.d.ts +0 -4
  64. package/dist-lib/components/atoms/bubble/__tests__/bubble.test.d.ts +0 -1
  65. package/dist-lib/components/atoms/bubble/__tests__/reference.test.d.ts +0 -1
  66. package/dist-lib/components/atoms/text/__tests__/text.test.d.ts +0 -1
  67. package/dist-lib/components/atoms/text-selection/__tests__/click-popover.test.d.ts +0 -1
  68. package/dist-lib/components/atoms/text-selection/__tests__/text-selection.test.d.ts +0 -1
  69. package/dist-lib/components/blocks/auth/__tests__/auth-flow-block.test.d.ts +0 -1
  70. package/dist-lib/components/blocks/auth/__tests__/auth-state-atom.test.d.ts +0 -1
  71. package/dist-lib/components/blocks/auth/__tests__/linked-accounts-block.test.d.ts +0 -1
  72. package/dist-lib/components/blocks/auth/__tests__/onboarding-block.test.d.ts +0 -1
  73. package/dist-lib/components/blocks/auth/__tests__/passkey-manager-block.test.d.ts +0 -1
  74. package/dist-lib/components/blocks/auth/__tests__/passkey-sign-in-block.test.d.ts +0 -1
  75. package/dist-lib/components/blocks/auth/__tests__/signup-block.test.d.ts +0 -1
  76. package/dist-lib/components/blocks/auth/__tests__/update-password-block.test.d.ts +0 -1
  77. package/dist-lib/components/blocks/chat/__tests__/ai-panel.test.d.ts +0 -1
  78. package/dist-lib/components/blocks/profile/__tests__/profile-card-block.test.d.ts +0 -1
  79. package/dist-lib/components/blocks/scaffold/__tests__/scaffold-atom.test.d.ts +0 -1
  80. package/dist-lib/components/blocks/scaffold/__tests__/scaffold.test.d.ts +0 -1
  81. package/dist-lib/components/blocks/shell/__tests__/shell-fit-atom.test.d.ts +0 -1
  82. package/dist-lib/components/blocks/shell/__tests__/shell-layout.test.d.ts +0 -1
  83. package/dist-lib/components/blocks/shell/__tests__/shell-metrics.test.d.ts +0 -1
  84. package/dist-lib/components/blocks/sidebar/__tests__/ai-sidebar-atom.test.d.ts +0 -1
  85. package/dist-lib/components/blocks/sidebar/__tests__/ai-sidebar.test.d.ts +0 -1
  86. package/dist-lib/components/blocks/sidebar/__tests__/use-ai-sidebar.test.d.ts +0 -1
  87. package/dist-lib/components/composed/__tests__/logo.test.d.ts +0 -1
  88. package/dist-lib/components/composed/action-bar/__tests__/action-bar.test.d.ts +0 -1
  89. package/dist-lib/components/composed/ai/__tests__/ai.test.d.ts +0 -1
  90. package/dist-lib/components/composed/chat/__tests__/attachment.test.d.ts +0 -1
  91. package/dist-lib/components/composed/chat/__tests__/beautiful-ui.test.d.ts +0 -1
  92. package/dist-lib/components/composed/chat/__tests__/chart.test.d.ts +0 -1
  93. package/dist-lib/components/composed/chat/__tests__/code-block.test.d.ts +0 -1
  94. package/dist-lib/components/composed/chat/__tests__/composer-attachments.test.d.ts +0 -1
  95. package/dist-lib/components/composed/chat/__tests__/composer.test.d.ts +0 -1
  96. package/dist-lib/components/composed/chat/__tests__/flowchart.test.d.ts +0 -1
  97. package/dist-lib/components/composed/chat/__tests__/glass-material.test.d.ts +0 -1
  98. package/dist-lib/components/composed/chat/__tests__/markdown.test.d.ts +0 -1
  99. package/dist-lib/components/composed/chat/__tests__/menu-command.test.d.ts +0 -1
  100. package/dist-lib/components/composed/chat/__tests__/recommendation.test.d.ts +0 -1
  101. package/dist-lib/components/composed/tree/__tests__/tree-atom.test.d.ts +0 -1
  102. package/dist-lib/components/composed/tree/__tests__/tree.test.d.ts +0 -1
  103. package/dist-lib/components/composed/tree/__tests__/use-tree.test.d.ts +0 -1
  104. package/dist-lib/components/composed/user/__tests__/message.test.d.ts +0 -1
  105. package/dist-lib/components/composed/verse/__tests__/verse.test.d.ts +0 -1
  106. package/dist-lib/components/docs/atoms-gallery.d.ts +0 -12
  107. package/dist-lib/components/docs/block-demo-stage.d.ts +0 -7
  108. package/dist-lib/components/docs/blocks-gallery.d.ts +0 -2
  109. package/dist-lib/components/docs/browser.d.ts +0 -10
  110. package/dist-lib/components/docs/code-block.d.ts +0 -4
  111. package/dist-lib/components/docs/components-gallery.d.ts +0 -2
  112. package/dist-lib/components/docs/demo-controls.d.ts +0 -21
  113. package/dist-lib/components/docs/hero.d.ts +0 -5
  114. package/dist-lib/components/docs/mermaid.d.ts +0 -3
  115. package/dist-lib/components/icons/__tests__/icons.test.d.ts +0 -1
  116. package/dist-lib/components/stories/attachment.story.d.ts +0 -11
  117. package/dist-lib/components/stories/auth-flow-block.story.d.ts +0 -2
  118. package/dist-lib/components/stories/avatar.story.d.ts +0 -6
  119. package/dist-lib/components/stories/base.story.d.ts +0 -6
  120. package/dist-lib/components/stories/bubble.story.d.ts +0 -6
  121. package/dist-lib/components/stories/button.story.d.ts +0 -9
  122. package/dist-lib/components/stories/card.story.d.ts +0 -8
  123. package/dist-lib/components/stories/chart.story.d.ts +0 -34
  124. package/dist-lib/components/stories/checkbox.story.d.ts +0 -6
  125. package/dist-lib/components/stories/code-auth-block.story.d.ts +0 -2
  126. package/dist-lib/components/stories/code-block.story.d.ts +0 -12
  127. package/dist-lib/components/stories/composed-password-input.story.d.ts +0 -6
  128. package/dist-lib/components/stories/context-cards.story.d.ts +0 -3
  129. package/dist-lib/components/stories/emoji-action-bar.story.d.ts +0 -3
  130. package/dist-lib/components/stories/field.story.d.ts +0 -6
  131. package/dist-lib/components/stories/file-icons.story.d.ts +0 -5
  132. package/dist-lib/components/stories/filter-table.story.d.ts +0 -21
  133. package/dist-lib/components/stories/flowchart.story.d.ts +0 -3
  134. package/dist-lib/components/stories/forgot-password-block.story.d.ts +0 -2
  135. package/dist-lib/components/stories/frame.story.d.ts +0 -8
  136. package/dist-lib/components/stories/index.d.ts +0 -54
  137. package/dist-lib/components/stories/input-group.story.d.ts +0 -6
  138. package/dist-lib/components/stories/input.story.d.ts +0 -8
  139. package/dist-lib/components/stories/insight-cards.story.d.ts +0 -45
  140. package/dist-lib/components/stories/label.story.d.ts +0 -8
  141. package/dist-lib/components/stories/linked-accounts-block.story.d.ts +0 -2
  142. package/dist-lib/components/stories/login-block.story.d.ts +0 -2
  143. package/dist-lib/components/stories/logo.story.d.ts +0 -3
  144. package/dist-lib/components/stories/markdown.story.d.ts +0 -7
  145. package/dist-lib/components/stories/menu-command.story.d.ts +0 -13
  146. package/dist-lib/components/stories/onboarding-block.story.d.ts +0 -2
  147. package/dist-lib/components/stories/otp-field.story.d.ts +0 -8
  148. package/dist-lib/components/stories/passkey-manager-block.story.d.ts +0 -2
  149. package/dist-lib/components/stories/passkey-sign-in-block.story.d.ts +0 -2
  150. package/dist-lib/components/stories/password-input.story.d.ts +0 -9
  151. package/dist-lib/components/stories/profile-card-block.story.d.ts +0 -6
  152. package/dist-lib/components/stories/recommendation-card.story.d.ts +0 -3
  153. package/dist-lib/components/stories/records-table.story.d.ts +0 -23
  154. package/dist-lib/components/stories/reference.story.d.ts +0 -9
  155. package/dist-lib/components/stories/research-answer.story.d.ts +0 -10
  156. package/dist-lib/components/stories/scaffold-root.story.d.ts +0 -6
  157. package/dist-lib/components/stories/separator.story.d.ts +0 -6
  158. package/dist-lib/components/stories/shell-layout.story.d.ts +0 -2
  159. package/dist-lib/components/stories/signup-block.story.d.ts +0 -2
  160. package/dist-lib/components/stories/social-providers.story.d.ts +0 -3
  161. package/dist-lib/components/stories/streaming-text.story.d.ts +0 -3
  162. package/dist-lib/components/stories/text.story.d.ts +0 -8
  163. package/dist-lib/components/stories/textarea.story.d.ts +0 -6
  164. package/dist-lib/components/stories/tree.story.d.ts +0 -4
  165. package/dist-lib/components/stories/update-password-block.story.d.ts +0 -2
  166. package/dist-lib/components/stories/user.story.d.ts +0 -8
  167. package/dist-lib/components/stories/verse.story.d.ts +0 -6
  168. package/dist-lib/components/ui/chat/__tests__/segmented-toggle.test.d.ts +0 -1
  169. package/dist-lib/index.js.map +0 -1
  170. package/dist-lib/lib/state/__tests__/sound.test.d.ts +0 -1
  171. package/dist-lib/lib/utils.test.d.ts +0 -1
  172. package/src/assets/css/base.css +0 -62
  173. package/src/assets/css/chat.css +0 -229
  174. package/src/assets/css/shadows.css +0 -157
  175. package/src/assets/css/theme.css +0 -321
  176. package/src/components/AGENTS.md +0 -0
  177. package/src/components/atoms/_layout.tsx +0 -9
  178. package/src/components/atoms/avatar/base.tsx +0 -70
  179. package/src/components/atoms/avatar/index.ts +0 -10
  180. package/src/components/atoms/avatar/types.ts +0 -24
  181. package/src/components/atoms/avatar/utils.ts +0 -54
  182. package/src/components/atoms/avatar/verified.tsx +0 -16
  183. package/src/components/atoms/background/index.ts +0 -8
  184. package/src/components/atoms/background/texture.tsx +0 -29
  185. package/src/components/atoms/background/type.ts +0 -10
  186. package/src/components/atoms/background/utils.ts +0 -13
  187. package/src/components/atoms/bubble/__tests__/bubble.test.tsx +0 -193
  188. package/src/components/atoms/bubble/__tests__/reference.test.tsx +0 -25
  189. package/src/components/atoms/bubble/actions.tsx +0 -28
  190. package/src/components/atoms/bubble/context.ts +0 -11
  191. package/src/components/atoms/bubble/default.tsx +0 -46
  192. package/src/components/atoms/bubble/header.tsx +0 -36
  193. package/src/components/atoms/bubble/index.ts +0 -37
  194. package/src/components/atoms/bubble/message.tsx +0 -32
  195. package/src/components/atoms/bubble/reactions.tsx +0 -191
  196. package/src/components/atoms/bubble/types.ts +0 -82
  197. package/src/components/atoms/bubble/utils.ts +0 -46
  198. package/src/components/atoms/chip.tsx +0 -61
  199. package/src/components/atoms/field.tsx +0 -43
  200. package/src/components/atoms/index.ts +0 -26
  201. package/src/components/atoms/loader.tsx +0 -33
  202. package/src/components/atoms/reference.tsx +0 -41
  203. package/src/components/atoms/text/__tests__/text.test.tsx +0 -47
  204. package/src/components/atoms/text/default.tsx +0 -59
  205. package/src/components/atoms/text/heading.tsx +0 -58
  206. package/src/components/atoms/text/index.ts +0 -28
  207. package/src/components/atoms/text/label.tsx +0 -16
  208. package/src/components/atoms/text/paragraph.tsx +0 -55
  209. package/src/components/atoms/text/span.tsx +0 -14
  210. package/src/components/atoms/text/types.ts +0 -41
  211. package/src/components/atoms/text/utils.ts +0 -16
  212. package/src/components/atoms/text-selection/__tests__/click-popover.test.tsx +0 -61
  213. package/src/components/atoms/text-selection/__tests__/text-selection.test.tsx +0 -90
  214. package/src/components/atoms/text-selection/click-popover.tsx +0 -62
  215. package/src/components/atoms/text-selection/index.ts +0 -30
  216. package/src/components/atoms/text-selection/popover.tsx +0 -103
  217. package/src/components/atoms/text-selection/selection-atom.ts +0 -51
  218. package/src/components/atoms/text-selection/selection.tsx +0 -56
  219. package/src/components/atoms/text-selection/types.ts +0 -125
  220. package/src/components/atoms/text-selection/use-selection.ts +0 -84
  221. package/src/components/atoms/types.ts +0 -46
  222. package/src/components/blocks/.gitkeep +0 -0
  223. package/src/components/blocks/auth/__tests__/auth-flow-block.test.tsx +0 -183
  224. package/src/components/blocks/auth/__tests__/auth-state-atom.test.tsx +0 -247
  225. package/src/components/blocks/auth/__tests__/linked-accounts-block.test.tsx +0 -128
  226. package/src/components/blocks/auth/__tests__/onboarding-block.test.tsx +0 -183
  227. package/src/components/blocks/auth/__tests__/passkey-manager-block.test.tsx +0 -131
  228. package/src/components/blocks/auth/__tests__/passkey-sign-in-block.test.tsx +0 -59
  229. package/src/components/blocks/auth/__tests__/signup-block.test.tsx +0 -176
  230. package/src/components/blocks/auth/__tests__/update-password-block.test.tsx +0 -95
  231. package/src/components/blocks/auth/auth-flow-atom.ts +0 -238
  232. package/src/components/blocks/auth/auth-flow-block.tsx +0 -211
  233. package/src/components/blocks/auth/auth-session-atom.ts +0 -82
  234. package/src/components/blocks/auth/auth-shell.tsx +0 -265
  235. package/src/components/blocks/auth/auth-state.ts +0 -40
  236. package/src/components/blocks/auth/code-auth-block.tsx +0 -176
  237. package/src/components/blocks/auth/forgot-password-block.tsx +0 -112
  238. package/src/components/blocks/auth/linked-accounts-block.tsx +0 -203
  239. package/src/components/blocks/auth/login-block.tsx +0 -217
  240. package/src/components/blocks/auth/onboarding/profile-step.tsx +0 -216
  241. package/src/components/blocks/auth/onboarding-block.tsx +0 -183
  242. package/src/components/blocks/auth/passkey-manager-block.tsx +0 -316
  243. package/src/components/blocks/auth/passkey-sign-in-block.tsx +0 -67
  244. package/src/components/blocks/auth/signup-block.tsx +0 -256
  245. package/src/components/blocks/auth/type.ts +0 -436
  246. package/src/components/blocks/auth/update-password-block.tsx +0 -139
  247. package/src/components/blocks/auth/use-auth-state.ts +0 -127
  248. package/src/components/blocks/chat/__tests__/ai-panel.test.tsx +0 -65
  249. package/src/components/blocks/chat/banners.tsx +0 -61
  250. package/src/components/blocks/chat/base.tsx +0 -84
  251. package/src/components/blocks/chat/header.tsx +0 -60
  252. package/src/components/blocks/chat/index.ts +0 -37
  253. package/src/components/blocks/chat/recommendation-stack.tsx +0 -41
  254. package/src/components/blocks/chat/shared.tsx +0 -27
  255. package/src/components/blocks/chat/suggested-prompts.tsx +0 -45
  256. package/src/components/blocks/chat/type.ts +0 -96
  257. package/src/components/blocks/chat/version-history-record.tsx +0 -37
  258. package/src/components/blocks/layout.ts +0 -35
  259. package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +0 -362
  260. package/src/components/blocks/profile/index.ts +0 -28
  261. package/src/components/blocks/profile/profile-card-atom.ts +0 -247
  262. package/src/components/blocks/profile/profile-card-block.tsx +0 -369
  263. package/src/components/blocks/profile/type.ts +0 -93
  264. package/src/components/blocks/profile/use-profile-card-state.ts +0 -67
  265. package/src/components/blocks/profile/use-profile-card.ts +0 -132
  266. package/src/components/blocks/scaffold/__tests__/scaffold-atom.test.tsx +0 -236
  267. package/src/components/blocks/scaffold/__tests__/scaffold.test.tsx +0 -524
  268. package/src/components/blocks/scaffold/constants.ts +0 -39
  269. package/src/components/blocks/scaffold/index.ts +0 -60
  270. package/src/components/blocks/scaffold/panel-close-button.tsx +0 -36
  271. package/src/components/blocks/scaffold/panel-menu-button.tsx +0 -221
  272. package/src/components/blocks/scaffold/scaffold-actions.tsx +0 -92
  273. package/src/components/blocks/scaffold/scaffold-atom.ts +0 -427
  274. package/src/components/blocks/scaffold/scaffold-canvas.tsx +0 -162
  275. package/src/components/blocks/scaffold/scaffold-context.ts +0 -20
  276. package/src/components/blocks/scaffold/scaffold-inspector.tsx +0 -137
  277. package/src/components/blocks/scaffold/scaffold-main.tsx +0 -28
  278. package/src/components/blocks/scaffold/scaffold-panel.tsx +0 -186
  279. package/src/components/blocks/scaffold/scaffold-root.tsx +0 -120
  280. package/src/components/blocks/scaffold/scaffold-sidebar.tsx +0 -31
  281. package/src/components/blocks/scaffold/scaffold-sub-panel.tsx +0 -122
  282. package/src/components/blocks/scaffold/scaffold-tab.tsx +0 -108
  283. package/src/components/blocks/scaffold/type.ts +0 -264
  284. package/src/components/blocks/scaffold/use-scaffold-state.ts +0 -85
  285. package/src/components/blocks/scaffold/use-scaffold.ts +0 -59
  286. package/src/components/blocks/scaffold/utils.ts +0 -112
  287. package/src/components/blocks/shell/__tests__/shell-fit-atom.test.tsx +0 -362
  288. package/src/components/blocks/shell/__tests__/shell-layout.test.tsx +0 -596
  289. package/src/components/blocks/shell/__tests__/shell-metrics.test.ts +0 -154
  290. package/src/components/blocks/shell/animated-panel-inset.tsx +0 -27
  291. package/src/components/blocks/shell/animated-panel-provider.tsx +0 -269
  292. package/src/components/blocks/shell/animated-panel-trigger.tsx +0 -51
  293. package/src/components/blocks/shell/animated-panel.tsx +0 -180
  294. package/src/components/blocks/shell/index.ts +0 -30
  295. package/src/components/blocks/shell/shell-fit-atom.ts +0 -246
  296. package/src/components/blocks/shell/shell-layout.tsx +0 -139
  297. package/src/components/blocks/shell/shell-metrics.ts +0 -133
  298. package/src/components/blocks/shell/shell-panel-atom.ts +0 -74
  299. package/src/components/blocks/shell/type.ts +0 -361
  300. package/src/components/blocks/shell/use-shell-fit-state.ts +0 -49
  301. package/src/components/blocks/shell/use-shell-fit.ts +0 -153
  302. package/src/components/blocks/shell/use-shell-panels.ts +0 -126
  303. package/src/components/blocks/shell/utils.ts +0 -187
  304. package/src/components/blocks/sidebar/__tests__/ai-sidebar-atom.test.tsx +0 -325
  305. package/src/components/blocks/sidebar/__tests__/ai-sidebar.test.tsx +0 -93
  306. package/src/components/blocks/sidebar/__tests__/use-ai-sidebar.test.tsx +0 -310
  307. package/src/components/blocks/sidebar/ai-sidebar-atom.ts +0 -698
  308. package/src/components/blocks/sidebar/ai-sidebar.tsx +0 -150
  309. package/src/components/blocks/sidebar/index.ts +0 -67
  310. package/src/components/blocks/sidebar/marquee-label.tsx +0 -59
  311. package/src/components/blocks/sidebar/sidebar-context.ts +0 -15
  312. package/src/components/blocks/sidebar/sidebar-icon.tsx +0 -14
  313. package/src/components/blocks/sidebar/sidebar-row.tsx +0 -378
  314. package/src/components/blocks/sidebar/type.ts +0 -294
  315. package/src/components/blocks/sidebar/use-ai-sidebar-state.ts +0 -123
  316. package/src/components/blocks/sidebar/use-ai-sidebar.ts +0 -619
  317. package/src/components/blocks/sidebar/utils.ts +0 -170
  318. package/src/components/blocks/types.ts +0 -6
  319. package/src/components/composed/.gitkeep +0 -0
  320. package/src/components/composed/__tests__/logo.test.tsx +0 -60
  321. package/src/components/composed/action-bar/__tests__/action-bar.test.tsx +0 -125
  322. package/src/components/composed/action-bar/action.tsx +0 -77
  323. package/src/components/composed/action-bar/emojis.tsx +0 -97
  324. package/src/components/composed/action-bar/index.ts +0 -24
  325. package/src/components/composed/action-bar/toolbar.tsx +0 -66
  326. package/src/components/composed/action-bar/types.ts +0 -58
  327. package/src/components/composed/action-bar/utils.ts +0 -140
  328. package/src/components/composed/ai/__tests__/ai.test.tsx +0 -66
  329. package/src/components/composed/ai/avatar.tsx +0 -19
  330. package/src/components/composed/ai/index.ts +0 -36
  331. package/src/components/composed/ai/message.tsx +0 -49
  332. package/src/components/composed/ai/research-answer.tsx +0 -157
  333. package/src/components/composed/ai/shared.tsx +0 -94
  334. package/src/components/composed/ai/streaming-text.tsx +0 -94
  335. package/src/components/composed/ai/suggested-prompt.tsx +0 -183
  336. package/src/components/composed/ai/types.ts +0 -81
  337. package/src/components/composed/chat/__tests__/attachment.test.tsx +0 -218
  338. package/src/components/composed/chat/__tests__/beautiful-ui.test.tsx +0 -57
  339. package/src/components/composed/chat/__tests__/chart.test.tsx +0 -62
  340. package/src/components/composed/chat/__tests__/code-block.test.tsx +0 -12
  341. package/src/components/composed/chat/__tests__/composer-attachments.test.tsx +0 -101
  342. package/src/components/composed/chat/__tests__/composer.test.tsx +0 -248
  343. package/src/components/composed/chat/__tests__/flowchart.test.tsx +0 -145
  344. package/src/components/composed/chat/__tests__/glass-material.test.tsx +0 -54
  345. package/src/components/composed/chat/__tests__/markdown.test.tsx +0 -25
  346. package/src/components/composed/chat/__tests__/menu-command.test.tsx +0 -35
  347. package/src/components/composed/chat/__tests__/recommendation.test.tsx +0 -43
  348. package/src/components/composed/chat/actions.tsx +0 -81
  349. package/src/components/composed/chat/attachment-file.ts +0 -82
  350. package/src/components/composed/chat/attachment.tsx +0 -498
  351. package/src/components/composed/chat/chart.tsx +0 -401
  352. package/src/components/composed/chat/code-block.tsx +0 -123
  353. package/src/components/composed/chat/composer/add-button.tsx +0 -29
  354. package/src/components/composed/chat/composer/base.tsx +0 -573
  355. package/src/components/composed/chat/composer/command-menu.tsx +0 -47
  356. package/src/components/composed/chat/composer/hooks.ts +0 -29
  357. package/src/components/composed/chat/composer/index.ts +0 -19
  358. package/src/components/composed/chat/composer/send-button.tsx +0 -36
  359. package/src/components/composed/chat/composer/suggestions.tsx +0 -115
  360. package/src/components/composed/chat/composer/use-dictation.ts +0 -123
  361. package/src/components/composed/chat/composer/utils.ts +0 -74
  362. package/src/components/composed/chat/context-cards.tsx +0 -63
  363. package/src/components/composed/chat/filter-table.tsx +0 -119
  364. package/src/components/composed/chat/flowchart/chart-node.tsx +0 -162
  365. package/src/components/composed/chat/flowchart/connector.tsx +0 -32
  366. package/src/components/composed/chat/flowchart/constant.ts +0 -26
  367. package/src/components/composed/chat/flowchart/default.tsx +0 -230
  368. package/src/components/composed/chat/flowchart/edge-toolbar.tsx +0 -73
  369. package/src/components/composed/chat/flowchart/hooks.tsx +0 -347
  370. package/src/components/composed/chat/flowchart/index.ts +0 -14
  371. package/src/components/composed/chat/flowchart/step-body.tsx +0 -82
  372. package/src/components/composed/chat/flowchart/types.ts +0 -89
  373. package/src/components/composed/chat/flowchart/utils.ts +0 -78
  374. package/src/components/composed/chat/hint.tsx +0 -59
  375. package/src/components/composed/chat/index.ts +0 -98
  376. package/src/components/composed/chat/insight-cards.tsx +0 -199
  377. package/src/components/composed/chat/markdown-atom.ts +0 -15
  378. package/src/components/composed/chat/markdown.tsx +0 -213
  379. package/src/components/composed/chat/recommendation/checkbox.tsx +0 -122
  380. package/src/components/composed/chat/recommendation/constant.ts +0 -54
  381. package/src/components/composed/chat/recommendation/default.tsx +0 -25
  382. package/src/components/composed/chat/recommendation/group.tsx +0 -36
  383. package/src/components/composed/chat/recommendation/index.ts +0 -17
  384. package/src/components/composed/chat/recommendation/item.tsx +0 -215
  385. package/src/components/composed/chat/recommendation/types.ts +0 -76
  386. package/src/components/composed/chat/records-table.tsx +0 -130
  387. package/src/components/composed/chat/type.ts +0 -157
  388. package/src/components/composed/logo.tsx +0 -171
  389. package/src/components/composed/password-input.tsx +0 -179
  390. package/src/components/composed/reader/applied-mark.tsx +0 -32
  391. package/src/components/composed/reader/apply-toast.tsx +0 -49
  392. package/src/components/composed/reader/index.ts +0 -10
  393. package/src/components/composed/reader/selection-highlight.tsx +0 -26
  394. package/src/components/composed/reader/selection-popover.tsx +0 -149
  395. package/src/components/composed/reader/type.ts +0 -48
  396. package/src/components/composed/social-providers.tsx +0 -154
  397. package/src/components/composed/tree/CLAUDE.md +0 -145
  398. package/src/components/composed/tree/__tests__/tree-atom.test.tsx +0 -217
  399. package/src/components/composed/tree/__tests__/tree.test.tsx +0 -522
  400. package/src/components/composed/tree/__tests__/use-tree.test.tsx +0 -333
  401. package/src/components/composed/tree/constants.ts +0 -55
  402. package/src/components/composed/tree/index.ts +0 -51
  403. package/src/components/composed/tree/tree-atom.ts +0 -590
  404. package/src/components/composed/tree/tree-context.ts +0 -13
  405. package/src/components/composed/tree/tree-node.tsx +0 -496
  406. package/src/components/composed/tree/tree.tsx +0 -233
  407. package/src/components/composed/tree/type.ts +0 -322
  408. package/src/components/composed/tree/use-tree-dnd.ts +0 -179
  409. package/src/components/composed/tree/use-tree-state.ts +0 -105
  410. package/src/components/composed/tree/use-tree.ts +0 -311
  411. package/src/components/composed/tree/utils.ts +0 -172
  412. package/src/components/composed/types.ts +0 -9
  413. package/src/components/composed/user/__tests__/message.test.tsx +0 -79
  414. package/src/components/composed/user/index.ts +0 -14
  415. package/src/components/composed/user/info.tsx +0 -56
  416. package/src/components/composed/user/message.tsx +0 -36
  417. package/src/components/composed/user/pill.tsx +0 -20
  418. package/src/components/composed/user/types.ts +0 -47
  419. package/src/components/composed/user/utils.ts +0 -0
  420. package/src/components/composed/verse/__tests__/verse.test.tsx +0 -57
  421. package/src/components/composed/verse/index.ts +0 -2
  422. package/src/components/composed/verse/types.ts +0 -24
  423. package/src/components/composed/verse/verse.tsx +0 -100
  424. package/src/components/docs/atoms-gallery.tsx +0 -286
  425. package/src/components/docs/block-demo-stage.tsx +0 -38
  426. package/src/components/docs/blocks-gallery.tsx +0 -224
  427. package/src/components/docs/browser.tsx +0 -87
  428. package/src/components/docs/code-block.tsx +0 -10
  429. package/src/components/docs/components-gallery.tsx +0 -182
  430. package/src/components/docs/demo-controls.tsx +0 -142
  431. package/src/components/docs/hero.tsx +0 -197
  432. package/src/components/docs/mermaid.tsx +0 -55
  433. package/src/components/icons/README.md +0 -91
  434. package/src/components/icons/__tests__/icons.test.tsx +0 -58
  435. package/src/components/icons/file-badge-cfm.tsx +0 -615
  436. package/src/components/icons/file-badge-corpus.tsx +0 -604
  437. package/src/components/icons/file-badge-pdf.tsx +0 -570
  438. package/src/components/icons/file-badge-tei.tsx +0 -524
  439. package/src/components/icons/file-badge-tf.tsx +0 -620
  440. package/src/components/icons/file-badge-txt.tsx +0 -607
  441. package/src/components/icons/file-badge-xml.tsx +0 -576
  442. package/src/components/icons/file-wordmark-cfm.tsx +0 -424
  443. package/src/components/icons/file-wordmark-corpus.tsx +0 -454
  444. package/src/components/icons/file-wordmark-pdf.tsx +0 -470
  445. package/src/components/icons/file-wordmark-tei.tsx +0 -424
  446. package/src/components/icons/file-wordmark-tf.tsx +0 -406
  447. package/src/components/icons/file-wordmark-txt.tsx +0 -421
  448. package/src/components/icons/file-wordmark-xml.tsx +0 -424
  449. package/src/components/icons/index.ts +0 -16
  450. package/src/components/icons/types.ts +0 -8
  451. package/src/components/motion/index.ts +0 -0
  452. package/src/components/motion/overflow-actions.tsx +0 -376
  453. package/src/components/motion/popover-morph.tsx +0 -292
  454. package/src/components/motion/popover-position.ts +0 -86
  455. package/src/components/motion/shared-layout-bg.tsx +0 -151
  456. package/src/components/stories/attachment.story.tsx +0 -40
  457. package/src/components/stories/auth-flow-block.story.tsx +0 -17
  458. package/src/components/stories/avatar.story.tsx +0 -33
  459. package/src/components/stories/base.story.tsx +0 -70
  460. package/src/components/stories/bubble.story.tsx +0 -61
  461. package/src/components/stories/button.story.tsx +0 -32
  462. package/src/components/stories/card.story.tsx +0 -36
  463. package/src/components/stories/chart.story.tsx +0 -54
  464. package/src/components/stories/checkbox.story.tsx +0 -30
  465. package/src/components/stories/code-auth-block.story.tsx +0 -20
  466. package/src/components/stories/code-block.story.tsx +0 -35
  467. package/src/components/stories/composed-password-input.story.tsx +0 -41
  468. package/src/components/stories/context-cards.story.tsx +0 -30
  469. package/src/components/stories/emoji-action-bar.story.tsx +0 -20
  470. package/src/components/stories/field.story.tsx +0 -32
  471. package/src/components/stories/file-icons.story.tsx +0 -20
  472. package/src/components/stories/filter-table.story.tsx +0 -63
  473. package/src/components/stories/flowchart.story.tsx +0 -25
  474. package/src/components/stories/forgot-password-block.story.tsx +0 -14
  475. package/src/components/stories/frame.story.tsx +0 -32
  476. package/src/components/stories/index.ts +0 -57
  477. package/src/components/stories/input-group.story.tsx +0 -27
  478. package/src/components/stories/input.story.tsx +0 -42
  479. package/src/components/stories/insight-cards.story.tsx +0 -67
  480. package/src/components/stories/label.story.tsx +0 -32
  481. package/src/components/stories/linked-accounts-block.story.tsx +0 -23
  482. package/src/components/stories/login-block.story.tsx +0 -18
  483. package/src/components/stories/logo.story.tsx +0 -21
  484. package/src/components/stories/markdown.story.tsx +0 -31
  485. package/src/components/stories/menu-command.story.tsx +0 -43
  486. package/src/components/stories/onboarding-block.story.tsx +0 -14
  487. package/src/components/stories/otp-field.story.tsx +0 -35
  488. package/src/components/stories/passkey-manager-block.story.tsx +0 -18
  489. package/src/components/stories/passkey-sign-in-block.story.tsx +0 -15
  490. package/src/components/stories/password-input.story.tsx +0 -35
  491. package/src/components/stories/profile-card-block.story.tsx +0 -29
  492. package/src/components/stories/recommendation-card.story.tsx +0 -37
  493. package/src/components/stories/records-table.story.tsx +0 -52
  494. package/src/components/stories/reference.story.tsx +0 -33
  495. package/src/components/stories/research-answer.story.tsx +0 -32
  496. package/src/components/stories/scaffold-root.story.tsx +0 -47
  497. package/src/components/stories/separator.story.tsx +0 -37
  498. package/src/components/stories/shell-layout.story.tsx +0 -19
  499. package/src/components/stories/signup-block.story.tsx +0 -18
  500. package/src/components/stories/social-providers.story.tsx +0 -26
  501. package/src/components/stories/streaming-text.story.tsx +0 -25
  502. package/src/components/stories/text.story.tsx +0 -31
  503. package/src/components/stories/textarea.story.tsx +0 -34
  504. package/src/components/stories/tree.story.tsx +0 -31
  505. package/src/components/stories/update-password-block.story.tsx +0 -14
  506. package/src/components/stories/user.story.tsx +0 -32
  507. package/src/components/stories/verse.story.tsx +0 -42
  508. package/src/components/theme-provider.tsx +0 -230
  509. package/src/components/types.ts +0 -106
  510. package/src/components/ui/accordion.tsx +0 -68
  511. package/src/components/ui/alert-dialog.tsx +0 -167
  512. package/src/components/ui/alert.tsx +0 -84
  513. package/src/components/ui/autocomplete.tsx +0 -303
  514. package/src/components/ui/avatar.tsx +0 -109
  515. package/src/components/ui/badge.tsx +0 -101
  516. package/src/components/ui/button-group.tsx +0 -88
  517. package/src/components/ui/button.tsx +0 -192
  518. package/src/components/ui/card.tsx +0 -253
  519. package/src/components/ui/chat/__tests__/segmented-toggle.test.tsx +0 -27
  520. package/src/components/ui/chat/avatar-handle.tsx +0 -30
  521. package/src/components/ui/chat/badges.tsx +0 -85
  522. package/src/components/ui/chat/buttons.tsx +0 -94
  523. package/src/components/ui/chat/chips.tsx +0 -106
  524. package/src/components/ui/chat/dot.tsx +0 -81
  525. package/src/components/ui/chat/icon-button.tsx +0 -43
  526. package/src/components/ui/chat/icon-tile.tsx +0 -33
  527. package/src/components/ui/chat/index.ts +0 -12
  528. package/src/components/ui/chat/inline-source.tsx +0 -94
  529. package/src/components/ui/chat/segmented-toggle.tsx +0 -99
  530. package/src/components/ui/chat/tag.tsx +0 -61
  531. package/src/components/ui/chat/thumbnail.tsx +0 -31
  532. package/src/components/ui/chat/waveform.tsx +0 -30
  533. package/src/components/ui/checkbox.tsx +0 -83
  534. package/src/components/ui/collapsible.tsx +0 -42
  535. package/src/components/ui/command.tsx +0 -263
  536. package/src/components/ui/context-menu.tsx +0 -342
  537. package/src/components/ui/emoji-picker.tsx +0 -161
  538. package/src/components/ui/field.tsx +0 -89
  539. package/src/components/ui/frame.tsx +0 -87
  540. package/src/components/ui/glasscn/glass-button-group.tsx +0 -34
  541. package/src/components/ui/glasscn/glass-button.tsx +0 -25
  542. package/src/components/ui/glasscn/glass-container.tsx +0 -94
  543. package/src/components/ui/glasscn/glass-separator.tsx +0 -39
  544. package/src/components/ui/glasscn/liquid-glass.tsx +0 -59
  545. package/src/components/ui/group.tsx +0 -92
  546. package/src/components/ui/input-group.tsx +0 -105
  547. package/src/components/ui/input.tsx +0 -70
  548. package/src/components/ui/kbd.tsx +0 -32
  549. package/src/components/ui/label.tsx +0 -36
  550. package/src/components/ui/menu-command.tsx +0 -156
  551. package/src/components/ui/menu.tsx +0 -352
  552. package/src/components/ui/otp-field.tsx +0 -88
  553. package/src/components/ui/popover-glass.tsx +0 -158
  554. package/src/components/ui/popover.tsx +0 -120
  555. package/src/components/ui/preview-card.tsx +0 -61
  556. package/src/components/ui/scroll-area.tsx +0 -80
  557. package/src/components/ui/select.tsx +0 -257
  558. package/src/components/ui/separator.tsx +0 -23
  559. package/src/components/ui/sheet.tsx +0 -135
  560. package/src/components/ui/skeleton.tsx +0 -18
  561. package/src/components/ui/spinner.tsx +0 -17
  562. package/src/components/ui/switch.tsx +0 -30
  563. package/src/components/ui/tabs.tsx +0 -120
  564. package/src/components/ui/textarea.tsx +0 -58
  565. package/src/components/ui/toast.tsx +0 -325
  566. package/src/components/ui/toolbar.tsx +0 -92
  567. package/src/components/ui/tooltip.tsx +0 -67
  568. package/src/index.css +0 -10
  569. package/src/index.ts +0 -102
  570. package/src/lib/attachment-content.ts +0 -28
  571. package/src/lib/auth-accent.ts +0 -49
  572. package/src/lib/ease.ts +0 -90
  573. package/src/lib/glass-variants.ts +0 -22
  574. package/src/lib/hooks/use-hover-capable.ts +0 -23
  575. package/src/lib/hooks/use-mobile.ts +0 -21
  576. package/src/lib/keyed-atom.ts +0 -60
  577. package/src/lib/segmented-control.ts +0 -42
  578. package/src/lib/sound.ts +0 -39
  579. package/src/lib/specular.ts +0 -10
  580. package/src/lib/state/__tests__/sound.test.tsx +0 -53
  581. package/src/lib/state/exegia-provider.tsx +0 -83
  582. package/src/lib/state/index.ts +0 -4
  583. package/src/lib/state/store.ts +0 -19
  584. package/src/lib/use-motion-panel.ts +0 -78
  585. package/src/lib/utils.test.ts +0 -22
  586. package/src/lib/utils.ts +0 -100
  587. package/src/specular.js +0 -4
  588. /package/{src/components/composed/chat/composer → dist-lib}/BEAUTIFUL-UI-LICENSE.txt +0 -0
@@ -1,46 +0,0 @@
1
- import type { ClassValue } from "clsx"
2
- import type { IBubbleReaction, TBubbleVariant } from "./types"
3
- import { cn } from "@/lib/utils"
4
-
5
- /** Returns a stable key for a reaction, falling back to the emoji label if no ID is provided. */
6
- export function reactionKey(reaction: IBubbleReaction, index: number): string {
7
- return reaction.id ?? `${reaction.label ?? String(reaction.emoji)}-${index}`
8
- }
9
-
10
- /** Root alignment: outgoing hugs the right edge, everything else the left. */
11
- export const twBubbleAlignClasses: Record<TBubbleVariant, ClassValue> = {
12
- sender: "items-end",
13
- recipient: "items-start",
14
- ai: "items-start",
15
- }
16
-
17
- /**
18
- * The inner column shrink-wraps the message, reactions and actions.
19
- * Headers offset this inset to reach the thread edge. Generated output
20
- * stays full-bleed.
21
- */
22
- export const twBubbleColumnClasses: Record<TBubbleVariant, ClassValue> = {
23
- sender: "items-end max-w-[80%] min-w-0 mr-4",
24
- recipient: "items-start max-w-[80%] min-w-0 ml-4",
25
- ai: "w-full items-stretch min-w-0",
26
- }
27
-
28
- /**
29
- * Message surface per variant. The two people's bubbles are inverted
30
- * mirrors — a lit surface (top highlight, shaded base) for the sender and
31
- * a dim one for the recipient — with the tail corner pinched only on the
32
- * last bubble of a run (a following `continued` bubble un-pinches it) and
33
- * both bottom corners squared to `lg` when an attachment sits inside; the ai
34
- * variant renders as plain prose so generated output never masquerades as
35
- * a person's message.
36
- */
37
-
38
- const defaultClasses = "w-fit rounded-full text-xs leading-4 font-medium relative"
39
- export const twBubbleMessageClasses: Record<TBubbleVariant, ClassValue> = {
40
- sender: cn(defaultClasses,
41
- "bezel-lit-t-2 bezel-lit-blur-3 bezel-lit/14 bezel-dim-b-2 bezel-dim-blur-3 bezel-dim/78 dark:bezel-lit-blur-2 dark:bezel-lit/57 dark:bezel-dim/11 rounded-br-[8px] group-has-[+[data-continued]]/bubble:rounded-br-full has-[[data-slot=attachment]]:rounded-b-md has-[[data-slot=attachment]]:rounded-t-md bg-indigo-700 dark:bg-neutral-100 text-background chat-bubble bubble-sender text-left pl-6 pr-4 py-3"),
42
- recipient: cn(defaultClasses,
43
- "bezel-lit-t-2 bezel-lit-blur-2 bezel-lit/57 bezel-dim-b-2 bezel-dim-blur-3 bezel-dim/11 dark:bezel-lit-blur-3 dark:bezel-lit/14 dark:bezel-dim/78 rounded-bl-[8px] group-has-[+[data-continued]]/bubble:rounded-bl-full has-[[data-slot=attachment]]:rounded-b-md has-[[data-slot=attachment]]:rounded-t-md bg-neutral-100 dark:bg-neutral-800 text-foreground chat-bubble bubble-recipient text-right pl-4 pr-6 py-3"),
44
- ai: cn(defaultClasses,
45
- "text-sm leading-5 my-1 text-foreground w-full"),
46
- }
@@ -1,61 +0,0 @@
1
- import { ChevronDown, ConeIcon } from "lucide-react";
2
- import { AMBER } from "../composed/chat/flowchart/constant";
3
-
4
- /* ── chips used inside the condition card ── */
5
- export function SourceChip() {
6
- return (
7
- <span
8
- data-ui
9
- className="inline-flex h-6 shrink-0 items-center gap-1 rounded-[6px] bg-surface px-1.5 text-[12px] font-medium text-ink shadow-btn"
10
- >
11
- <span className="text-ink-2">
12
- <ConeIcon size={12} />
13
- </span>
14
- order
15
- </span>
16
- );
17
- }
18
-
19
- export function SelectChip({
20
- id,
21
- value,
22
- dot,
23
- open,
24
- onToggle
25
- }: {
26
- id: string;
27
- value: string;
28
- dot?: boolean;
29
- items: { name: string; tag?: string }[];
30
- width: string;
31
- align?: "left" | "right";
32
- open: boolean;
33
- onToggle: (id: string) => void;
34
- onPick: (id: string, name: string) => void;
35
- }) {
36
- return (
37
- <span data-ui className="relative inline-flex min-w-0">
38
- <button
39
- type="button"
40
- aria-expanded={open}
41
- onClick={() => onToggle(id)}
42
- className={`inline-flex h-6 min-w-0 cursor-pointer items-center gap-1 rounded-[6px] px-1.5
43
- text-[12px] font-medium text-ink transition-colors duration-100
44
- ${open ? "bg-hover-2" : "bg-field hover:bg-hover-2"}`}
45
- >
46
- {dot && <span className="size-1.5 shrink-0 rounded-full" style={{ background: AMBER }} />}
47
- <span className="min-w-0 truncate">{value}</span>
48
- <ChevronDown />
49
- </button>
50
- {/*{open && (
51
- <Menu
52
- items={items}
53
- value={value}
54
- width={width}
55
- align={align}
56
- onPick={(name) => onPick(id, name)}
57
- />
58
- )}*/}
59
- </span>
60
- );
61
- }
@@ -1,43 +0,0 @@
1
- import { Field, FieldLabel, FieldDescription, FieldError } from "@/components/ui/field";
2
- import type { IInputFieldProps, TInputFieldSize } from "./types";
3
- import { Input } from "@/components/ui/input";
4
-
5
- const inputFieldSizeClasses: TInputFieldSize = {
6
- label: {
7
- sm: "text-sm",
8
- default: "text-base",
9
- lg: "text-lg",
10
- },
11
- input: {
12
- sm: "w-64",
13
- default: "w-full",
14
- lg: "w-96"
15
- },
16
- description: {
17
- sm: "w-64",
18
- default: "w-full",
19
- lg: "w-96",
20
- },
21
- icon: {
22
- sm: "w-64",
23
- default: "w-full",
24
- lg: "w-96"
25
- },
26
- };
27
-
28
- export function InputField({ invalid, label, description, error, size = "default", ...props }: IInputFieldProps) {
29
-
30
- const renderDescription = () => {
31
- if (!description || !error) return
32
- if (error) return <FieldError match={Boolean(invalid)}>{error}</FieldError>
33
- return <FieldDescription className={inputFieldSizeClasses.description[size]}>{description}</FieldDescription>
34
- }
35
-
36
- return (
37
- <Field>
38
- <FieldLabel className={inputFieldSizeClasses.label[size]}>{label}</FieldLabel>
39
- <Input {...props} className={inputFieldSizeClasses.input[size]} />
40
- {renderDescription()}
41
- </Field>
42
- );
43
- }
@@ -1,26 +0,0 @@
1
- export * from "./bubble"
2
- export { SelectChip, SourceChip as FlowchartSourceChip } from "./chip"
3
- export * from "./text"
4
- export * from "./background"
5
- export * from "./avatar"
6
- export * from "./loader"
7
- export * from "./reference"
8
-
9
- export {
10
- HighlightPopover,
11
- TextClickPopover,
12
- TextSelection,
13
- } from "./text-selection"
14
- export {
15
- initialSelectionState,
16
- resetSelectionAtom,
17
- selectionAtom,
18
- setCurrentSelectionAtom,
19
- setPopoverPositionAtom,
20
- setSelectionAtom,
21
- setSelectionPopoverAtom,
22
- setSelectionPositionAtom,
23
- setShowPopoverAtom,
24
- updateSelectionAtom,
25
- } from "./text-selection/selection-atom"
26
- export { useSelection } from "./text-selection/use-selection"
@@ -1,33 +0,0 @@
1
- import { cn } from "@/lib/utils";
2
- import { Spinner } from "@/components/ui/spinner";
3
- import type { TAtomSize, ILoaderProps } from "./types";
4
-
5
- const sizeMap: Record<TAtomSize, string> = {
6
- xs: 'w-0.5 h-0.5',
7
- sm: 'w-1 h-1',
8
- default: 'w-2 h-2',
9
- lg: 'w-3 h-3',
10
- xl: 'w-4 h-4',
11
- xxl: 'w-5 h-5',
12
- } as const;
13
-
14
- export function Loader({ type = "spinner", className, size }: ILoaderProps) {
15
-
16
- if (type === "dots") {
17
- return (
18
- <div className={cn('flex gap-1 justify-center items-center', className)}>
19
- {[0, 1, 2].map((i) => (
20
- <span
21
- key={i}
22
- className={cn("bg-foreground animate-bounce rounded-full", sizeMap[size ?? 'default'])}
23
- style={{ animationDelay: `${i * 0.15}s` }}
24
- />
25
- ))}
26
- </div>
27
- );
28
- }
29
-
30
- return (
31
- <Spinner className={cn('text-foreground', className)} size={size} />
32
- );
33
- }
@@ -1,41 +0,0 @@
1
- "use client"
2
-
3
- import { Link2 } from "lucide-react"
4
- import type * as React from "react"
5
- import { cn } from "@/lib/utils"
6
- import type { IReferenceProps } from "./types";
7
- import { Button } from "@/components/ui/button";
8
- import { PreviewCard, PreviewCardPopup, PreviewCardTrigger } from "@/components/ui/preview-card"
9
-
10
- /**
11
- * "Reference 1 ↗" — a translucent tag pointing at the node, passage or
12
- * source a suggestion is grounded in. Follows the card it sits in.
13
- */
14
- export function Reference({
15
- href,
16
- onClick,
17
- className,
18
- children,
19
- preview,
20
- ...props
21
- }: IReferenceProps): React.ReactElement {
22
-
23
- // The rest is forwarded: `ReferenceProps` is anchor props, so `target`,
24
- // `rel`, `aria-label` and friends type-check and have to land somewhere.
25
- const chip = (
26
- <Button {...props} variant="glass" glassVariant="liquid" data-slot="reference-chip" className={cn("inline-flex border border-foreground/10 shadow-none! bg-input/30 h-6.5! pl-2 group", className)} onClick={onClick} render={href ? <a href={href} /> : undefined}>
27
- <Link2 size={14} className="-rotate-45 stroke-amber-600 dark:stroke-amber-400" />
28
- <span className="truncate text-xs text-foreground/90 group-hover:underline">{children}</span>
29
- </Button>
30
- )
31
- if (preview === undefined || preview === null) return chip
32
- return (
33
- <PreviewCard>
34
- <PreviewCardTrigger delay={300} render={chip} />
35
- <PreviewCardPopup className="w-72 flex-col gap-1.5 p-3" data-slot="reference-preview">
36
- <span className="truncate text-[11px] font-semibold leading-4 text-muted-foreground">{children}</span>
37
- <div className="border-l-2 border-amber-500/70 pl-2.5 text-xs leading-4 text-foreground/90">{preview}</div>
38
- </PreviewCardPopup>
39
- </PreviewCard>
40
- )
41
- }
@@ -1,47 +0,0 @@
1
- import { describe, expect, test } from "bun:test"
2
- import { render, screen } from "@testing-library/react"
3
- import { Text } from "../index"
4
-
5
- describe("Text", () => {
6
- test("maps variants to semantic elements", () => {
7
- render(
8
- <>
9
- <Text.Root>Default</Text.Root>
10
- <Text.Heading>Heading</Text.Heading>
11
- <Text.Paragraph>Paragraph</Text.Paragraph>
12
- <Text.Root href="#activity" type="link">
13
- Link
14
- </Text.Root>
15
- <Text.Root type="subscript">Note</Text.Root>
16
- </>
17
- )
18
-
19
- expect(screen.getByText("Default").tagName).toBe("SPAN")
20
- expect(screen.getByText("Heading").tagName).toBe("H2")
21
- expect(screen.getByText("Paragraph").tagName).toBe("P")
22
- expect(
23
- screen.getByRole("link", { name: "Link" }).getAttribute("href")
24
- ).toBe("#activity")
25
- expect(screen.getByText("Note").tagName).toBe("SUB")
26
- })
27
-
28
- test("supports named and numeric sizes", () => {
29
- render(
30
- <>
31
- <Text.Span size="small">Small</Text.Span>
32
- <Text.Root size={18}>Custom</Text.Root>
33
- </>
34
- )
35
-
36
- expect(screen.getByText("Small").className).toContain("text-sm")
37
- expect(screen.getByText("Custom").style.fontSize).toBe("18px")
38
- })
39
-
40
- test("marks selected text without relying on color alone", () => {
41
- render(<Text.Root selection="node-17">Selected corpus text</Text.Root>)
42
-
43
- const selected = screen.getByText("Selected corpus text")
44
- expect(selected.getAttribute("data-selection")).toBe("node-17")
45
- expect(selected.className).toContain("outline")
46
- })
47
- })
@@ -1,59 +0,0 @@
1
- import { createElement } from "react"
2
- import { cn } from "@/lib/utils"
3
- import type { TTextProps, TTextSize, TTextVariant } from "./types"
4
-
5
- const variantClasses: Record<TTextVariant, string> = {
6
- default: "text-foreground",
7
- heading: "font-heading text-2xl font-semibold tracking-tight text-foreground",
8
- paragraph: "leading-7 text-foreground",
9
- link: "text-primary underline underline-offset-4 hover:text-primary/80",
10
- subscript: "align-sub text-xs text-muted-foreground",
11
- }
12
-
13
- const sizeClasses: Record<Exclude<TTextSize, number>, string> = {
14
- small: "text-sm",
15
- medium: "text-base",
16
- large: "text-lg",
17
- }
18
-
19
- const defaultTags: Record<TTextVariant, keyof HTMLElementTagNameMap> = {
20
- default: "span",
21
- heading: "h2",
22
- paragraph: "p",
23
- link: "a",
24
- subscript: "sub",
25
- }
26
-
27
- export function Text({
28
- children,
29
- className,
30
- id,
31
- selection,
32
- size = "medium",
33
- style,
34
- type = "default",
35
- ...props
36
- }: TTextProps) {
37
- const tag = defaultTags[type]
38
- const fontSize = typeof size === "number" ? `${size}px` : undefined
39
- const selectionValue =
40
- typeof selection === "string" ? selection : selection ? "" : undefined
41
-
42
- return createElement(
43
- tag,
44
- {
45
- ...props,
46
- className: cn(
47
- variantClasses[type],
48
- typeof size === "number" ? undefined : sizeClasses[size],
49
- selectionValue !== undefined &&
50
- "rounded-xs outline-1 outline-offset-2 outline-accent/45",
51
- className
52
- ),
53
- "data-selection": selectionValue,
54
- id,
55
- style: { ...style, ...(fontSize ? { fontSize } : {}) },
56
- },
57
- children
58
- )
59
- }
@@ -1,58 +0,0 @@
1
- import { cn } from "@/lib/utils"
2
- import { TextSelection } from "../text-selection"
3
- import { Text } from "./default"
4
- import type { THeadingProps } from "./types"
5
- import { twClasses } from "./utils";
6
-
7
-
8
- export function Heading({
9
- children,
10
- selected,
11
- popover,
12
- component,
13
- componentProps,
14
- popoverComponent,
15
- popoverProps,
16
- renderPopover,
17
- onSelectionStart,
18
- onSelectionEnd,
19
- onPopoverShow,
20
- onPopoverHide,
21
- offset,
22
- zIndex,
23
- className,
24
- alignment,
25
- minSelectionLength,
26
- ...textProps
27
- }: THeadingProps) {
28
- return (
29
- <TextSelection
30
- alignment={alignment}
31
- component={component}
32
- componentProps={componentProps}
33
- minSelectionLength={minSelectionLength}
34
- offset={offset}
35
- onPopoverHide={onPopoverHide}
36
- onPopoverShow={onPopoverShow}
37
- onSelectionEnd={onSelectionEnd}
38
- onSelectionStart={onSelectionStart}
39
- popover={popover}
40
- popoverComponent={popoverComponent}
41
- popoverProps={popoverProps}
42
- renderPopover={renderPopover}
43
- selected={selected}
44
- zIndex={zIndex}
45
- >
46
- <Text
47
- {...textProps}
48
- className={cn(
49
- twClasses["default"],
50
- className
51
- )}
52
- type="heading"
53
- >
54
- {children}
55
- </Text>
56
- </TextSelection>
57
- )
58
- }
@@ -1,28 +0,0 @@
1
- import { Text as TextDefault } from "./default"
2
- import { Heading } from "./heading"
3
- import { Paragraph } from "./paragraph"
4
- import { Span } from "./span"
5
- import { Label } from "./label"
6
- export type {
7
- THeadingProps,
8
- TParagraphProps,
9
- TSpanProps,
10
- TTextProps,
11
- TTextSize,
12
- TTextVariant,
13
- } from "./types"
14
-
15
- export const Text = {
16
- /** The polymorphic base the presets below are built on — the only member
17
- * that takes `type`, so it is what reaches `link` and `subscript`. The
18
- * presets are reachable through the atoms barrel, and without this it
19
- * would not be: `export *` does not carry a default export. */
20
- Root: TextDefault,
21
- Heading,
22
- Paragraph,
23
- Span,
24
- Label,
25
- }
26
-
27
- export { TextDefault as default }
28
-
@@ -1,16 +0,0 @@
1
- import type { TLabelProps } from "./types"
2
- import { cn } from "@/lib/utils"
3
- import { twLabelClasses } from "./utils"
4
- export function Label({ children, level = "title", className }: TLabelProps) {
5
- return (
6
- <div
7
- className={cn(
8
- "leading-1 select-none",
9
- level && twLabelClasses[level],
10
- className
11
- )}
12
- >
13
- {children}
14
- </div>
15
- )
16
- }
@@ -1,55 +0,0 @@
1
- import { TextSelection } from "../text-selection"
2
- import { Text } from "./default"
3
- import type { TParagraphProps } from "./types"
4
- import { cn } from "@/lib/utils"
5
- import { twClasses } from "./utils"
6
-
7
-
8
- export function Paragraph({
9
- children,
10
- selected,
11
- popover,
12
- component,
13
- componentProps,
14
- popoverComponent,
15
- popoverProps,
16
- renderPopover,
17
- onSelectionStart,
18
- onSelectionEnd,
19
- onPopoverShow,
20
- onPopoverHide,
21
- offset,
22
- zIndex,
23
- alignment,
24
- className,
25
- minSelectionLength,
26
- ...textProps
27
- }: TParagraphProps) {
28
- return (
29
- <TextSelection
30
- alignment={alignment}
31
- component={component}
32
- componentProps={componentProps}
33
- minSelectionLength={minSelectionLength}
34
- offset={offset}
35
- onPopoverHide={onPopoverHide}
36
- onPopoverShow={onPopoverShow}
37
- onSelectionEnd={onSelectionEnd}
38
- onSelectionStart={onSelectionStart}
39
- popover={popover}
40
- popoverComponent={popoverComponent}
41
- popoverProps={popoverProps}
42
- renderPopover={renderPopover}
43
- selected={selected}
44
- zIndex={zIndex}
45
- >
46
- <Text
47
- {...textProps}
48
- className={cn(twClasses["default"], className)}
49
- type="paragraph"
50
- >
51
- {children}
52
- </Text>
53
- </TextSelection>
54
- )
55
- }
@@ -1,14 +0,0 @@
1
- import type { TSpanProps } from "./types"
2
- import { Text } from "./default"
3
- import { cn } from "@/lib/utils"
4
-
5
-
6
- export function Span(props: TSpanProps) {
7
- return (
8
- <Text
9
- {...props}
10
- className={cn("select-text selection:bg-transparent", props.className)}
11
- type="default"
12
- />
13
- )
14
- }
@@ -1,41 +0,0 @@
1
- import type { CSSProperties, HTMLAttributes, ReactNode } from "react"
2
- import type { ITextSelectionProps } from "../text-selection"
3
-
4
- export type TTextVariant =
5
- "default" | "heading" | "paragraph" | "link" | "subscript"
6
- export type TTextSize = "small" | "medium" | "large" | number
7
-
8
- export type TTextProps = Omit<
9
- HTMLAttributes<HTMLElement>,
10
- "children" | "style"
11
- > & {
12
- id?: string
13
- children?: ReactNode
14
- className?: string
15
- /** Named sizes use the type scale; a number is interpreted as pixels. */
16
- size?: TTextSize
17
- type?: TTextVariant
18
- href?: string
19
- /** Marks a reader selection. A string is also exposed as data-selection. */
20
- selection?: string | boolean
21
- style?: CSSProperties
22
- }
23
-
24
- export type THeadingProps = Omit<TTextProps, "type"> &
25
- Omit<ITextSelectionProps, "children" | "className">
26
-
27
-
28
- export type TSpanProps = Omit<TTextProps, "type">
29
- export type TParagraphProps = Omit<TTextProps, "type"> &
30
- Omit<ITextSelectionProps, "children" | "className">
31
-
32
-
33
- export type TLabelLevel = "heading" | "title" | "caption" | "subtitle"
34
-
35
- export type TLabelProps = {
36
- children: ReactNode
37
- className?: string
38
- /** Type scale of the label. Defaults to "title". */
39
- level?: TLabelLevel
40
- id?: string
41
- }
@@ -1,16 +0,0 @@
1
- import type { ClassValue } from "clsx"
2
- import type { TLabelProps } from "./types"
3
-
4
- export const twClasses: Record<string, ClassValue> = {
5
- default: "selection:text-amber-500 dark:selection:text-amber-400",
6
- }
7
-
8
- export const twLabelClasses: Record<
9
- NonNullable<TLabelProps["level"]>,
10
- Element["className"]
11
- > = {
12
- title: "text-lg text-neutral-500",
13
- subtitle: "text-md text-neutral-500",
14
- caption: "text-xs text-neutral-400 dark:text-neutral-700",
15
- heading: "text-sm text-neutral-500"
16
- }
@@ -1,61 +0,0 @@
1
- import { describe, expect, test } from "bun:test"
2
- import { render, screen } from "@testing-library/react"
3
- import userEvent from "@testing-library/user-event"
4
- import { TextClickPopover } from "../click-popover"
5
-
6
- describe("text click popover", () => {
7
- test("clicking the text opens the popover content", async () => {
8
- const user = userEvent.setup()
9
- render(
10
- <TextClickPopover popover={<p>Popover body</p>} size="small">
11
- Clickable span
12
- </TextClickPopover>
13
- )
14
-
15
- expect(screen.queryByText("Popover body")).toBeNull()
16
-
17
- await user.click(screen.getByText("Clickable span"))
18
- expect(await screen.findByText("Popover body")).toBeTruthy()
19
- })
20
-
21
- test("keeps the text element semantics for link and subscript", async () => {
22
- const user = userEvent.setup()
23
- render(
24
- <>
25
- <TextClickPopover popover={<p>Link body</p>} type="link">
26
- Link text
27
- </TextClickPopover>
28
- <TextClickPopover popover={<p>Subscript body</p>} type="subscript">
29
- Subscript note
30
- </TextClickPopover>
31
- </>
32
- )
33
-
34
- expect(screen.getByText("Link text").tagName).toBe("A")
35
- expect(screen.getByText("Subscript note").tagName).toBe("SUB")
36
-
37
- await user.click(screen.getByText("Subscript note"))
38
- expect(await screen.findByText("Subscript body")).toBeTruthy()
39
- })
40
-
41
- test("renderPopover receives close and dismisses the popup", async () => {
42
- const user = userEvent.setup()
43
- render(
44
- <TextClickPopover
45
- renderPopover={({ close }) => (
46
- <button onClick={close} type="button">
47
- Dismiss
48
- </button>
49
- )}
50
- >
51
- Clickable text
52
- </TextClickPopover>
53
- )
54
-
55
- await user.click(screen.getByText("Clickable text"))
56
- const dismiss = await screen.findByText("Dismiss")
57
-
58
- await user.click(dismiss)
59
- expect(screen.queryByText("Dismiss")).toBeNull()
60
- })
61
- })