@exegia/corpora-ui 0.29.0 → 1.0.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 (704) hide show
  1. package/README.md +33 -11
  2. package/dist-lib/index.js +13006 -7914
  3. package/dist-lib/index.js.map +1 -1
  4. package/dist-lib/src/components/atoms/_layout.d.ts +4 -0
  5. package/dist-lib/src/components/atoms/avatar/base.d.ts +2 -0
  6. package/dist-lib/src/components/atoms/avatar/index.d.ts +2 -0
  7. package/dist-lib/src/components/atoms/avatar/types.d.ts +20 -0
  8. package/dist-lib/src/components/atoms/avatar/utils.d.ts +13 -0
  9. package/dist-lib/src/components/atoms/avatar/verified.d.ts +1 -0
  10. package/dist-lib/src/components/atoms/background/index.d.ts +6 -0
  11. package/dist-lib/src/components/atoms/background/texture.d.ts +2 -0
  12. package/dist-lib/src/components/atoms/background/type.d.ts +7 -0
  13. package/dist-lib/src/components/atoms/background/utils.d.ts +4 -0
  14. package/dist-lib/src/components/atoms/bubble/actions.d.ts +7 -0
  15. package/dist-lib/src/components/atoms/bubble/context.d.ts +4 -0
  16. package/dist-lib/src/components/atoms/bubble/default.d.ts +3 -0
  17. package/dist-lib/src/components/atoms/bubble/header.d.ts +8 -0
  18. package/dist-lib/src/components/atoms/bubble/index.d.ts +16 -0
  19. package/dist-lib/src/components/atoms/bubble/message.d.ts +3 -0
  20. package/dist-lib/src/components/atoms/bubble/reactions.d.ts +14 -0
  21. package/dist-lib/src/components/atoms/bubble/types.d.ts +59 -0
  22. package/dist-lib/src/components/atoms/bubble/utils.d.ts +13 -0
  23. package/dist-lib/src/components/atoms/chip.d.ts +15 -0
  24. package/dist-lib/src/components/atoms/index.d.ts +15 -0
  25. package/dist-lib/src/components/atoms/loader.d.ts +8 -0
  26. package/dist-lib/src/components/atoms/reference.d.ts +7 -0
  27. package/dist-lib/src/components/atoms/text/default.d.ts +1144 -0
  28. package/dist-lib/src/components/atoms/text/heading.d.ts +4 -0
  29. package/dist-lib/src/components/atoms/text/index.d.ts +21 -0
  30. package/dist-lib/src/components/atoms/text/label.d.ts +2 -0
  31. package/dist-lib/src/components/atoms/text/paragraph.d.ts +4 -0
  32. package/dist-lib/src/components/atoms/text/span.d.ts +3 -0
  33. package/dist-lib/src/components/atoms/text/types.d.ts +23 -0
  34. package/dist-lib/src/components/atoms/text/utils.d.ts +4 -0
  35. package/dist-lib/src/components/atoms/text-selection/click-popover.d.ts +3 -0
  36. package/dist-lib/src/components/atoms/text-selection/index.d.ts +6 -0
  37. package/dist-lib/src/components/atoms/text-selection/popover.d.ts +3 -0
  38. package/dist-lib/src/components/atoms/text-selection/selection-atom.d.ts +30 -0
  39. package/dist-lib/src/components/atoms/text-selection/selection.d.ts +3 -0
  40. package/dist-lib/src/components/atoms/text-selection/types.d.ts +90 -0
  41. package/dist-lib/src/components/atoms/text-selection/use-selection.d.ts +7 -0
  42. package/dist-lib/src/components/atoms/types.d.ts +17 -0
  43. package/dist-lib/src/components/blocks/auth/auth-flow-block.story.d.ts +3 -0
  44. package/dist-lib/src/components/blocks/auth/code-auth-block.story.d.ts +3 -0
  45. package/dist-lib/src/components/blocks/auth/forgot-password-block.story.d.ts +3 -0
  46. package/dist-lib/src/components/blocks/auth/linked-accounts-block.story.d.ts +3 -0
  47. package/dist-lib/src/components/blocks/auth/login-block.story.d.ts +3 -0
  48. package/dist-lib/src/components/blocks/auth/onboarding-block.story.d.ts +3 -0
  49. package/dist-lib/src/components/blocks/auth/passkey-manager-block.story.d.ts +3 -0
  50. package/dist-lib/src/components/blocks/auth/passkey-sign-in-block.story.d.ts +3 -0
  51. package/dist-lib/src/components/blocks/auth/signup-block.story.d.ts +3 -0
  52. package/dist-lib/src/components/blocks/auth/update-password-block.story.d.ts +3 -0
  53. package/dist-lib/src/components/blocks/chat/banners.d.ts +13 -0
  54. package/dist-lib/src/components/blocks/chat/base.d.ts +10 -0
  55. package/dist-lib/src/components/blocks/chat/base.story.d.ts +3 -0
  56. package/dist-lib/src/components/blocks/chat/header.d.ts +4 -0
  57. package/dist-lib/src/components/blocks/chat/index.d.ts +13 -0
  58. package/dist-lib/src/components/blocks/chat/recommendation-stack.d.ts +13 -0
  59. package/dist-lib/src/components/blocks/chat/shared.d.ts +8 -0
  60. package/dist-lib/src/components/blocks/chat/suggested-prompts.d.ts +3 -0
  61. package/dist-lib/src/components/blocks/chat/types.d.ts +64 -0
  62. package/dist-lib/src/components/blocks/chat/version-history-record.d.ts +3 -0
  63. package/dist-lib/{components → src/components}/blocks/profile/profile-card-block.d.ts +2 -7
  64. package/dist-lib/src/components/blocks/profile/profile-card-block.story.d.ts +3 -0
  65. package/dist-lib/{components → src/components}/blocks/profile/type.d.ts +2 -2
  66. package/dist-lib/src/components/blocks/scaffold/scaffold-root.story.d.ts +3 -0
  67. package/dist-lib/src/components/blocks/shell/shell-layout.story.d.ts +3 -0
  68. package/dist-lib/src/components/composed/action-bar/action.d.ts +18 -0
  69. package/dist-lib/src/components/composed/action-bar/emojis.d.ts +10 -0
  70. package/dist-lib/src/components/composed/action-bar/index.d.ts +12 -0
  71. package/dist-lib/src/components/composed/action-bar/toolbar.d.ts +2 -0
  72. package/dist-lib/src/components/composed/action-bar/types.d.ts +55 -0
  73. package/dist-lib/src/components/composed/action-bar/utils.d.ts +57 -0
  74. package/dist-lib/src/components/composed/ai/avatar.d.ts +1 -0
  75. package/dist-lib/src/components/composed/ai/index.d.ts +17 -0
  76. package/dist-lib/src/components/composed/ai/message.d.ts +7 -0
  77. package/dist-lib/src/components/composed/ai/research-answer.d.ts +30 -0
  78. package/dist-lib/src/components/composed/ai/shared.d.ts +19 -0
  79. package/dist-lib/src/components/composed/ai/streaming-text.d.ts +26 -0
  80. package/dist-lib/src/components/composed/ai/suggested-prompt.d.ts +35 -0
  81. package/dist-lib/src/components/composed/ai/types.d.ts +66 -0
  82. package/dist-lib/src/components/composed/attachment.story.d.ts +3 -0
  83. package/dist-lib/src/components/composed/chart.story.d.ts +3 -0
  84. package/dist-lib/src/components/composed/chat/__tests__/attachment.test.d.ts +1 -0
  85. package/dist-lib/src/components/composed/chat/__tests__/beautiful-ui.test.d.ts +1 -0
  86. package/dist-lib/src/components/composed/chat/__tests__/chart.test.d.ts +1 -0
  87. package/dist-lib/src/components/composed/chat/__tests__/code-block.test.d.ts +1 -0
  88. package/dist-lib/src/components/composed/chat/__tests__/composer-attachments.test.d.ts +1 -0
  89. package/dist-lib/src/components/composed/chat/__tests__/composer.test.d.ts +1 -0
  90. package/dist-lib/src/components/composed/chat/__tests__/flowchart.test.d.ts +1 -0
  91. package/dist-lib/src/components/composed/chat/__tests__/markdown.test.d.ts +1 -0
  92. package/dist-lib/src/components/composed/chat/actions.d.ts +2 -0
  93. package/dist-lib/src/components/composed/chat/attachment.d.ts +62 -0
  94. package/dist-lib/src/components/composed/chat/chart.d.ts +41 -0
  95. package/dist-lib/src/components/composed/chat/code-block.d.ts +26 -0
  96. package/dist-lib/src/components/composed/chat/composer/add-button.d.ts +5 -0
  97. package/dist-lib/src/components/composed/chat/composer/base.d.ts +8 -0
  98. package/dist-lib/src/components/composed/chat/composer/command-menu.d.ts +2 -0
  99. package/dist-lib/src/components/composed/chat/composer/hooks.d.ts +9 -0
  100. package/dist-lib/src/components/composed/chat/composer/index.d.ts +10 -0
  101. package/dist-lib/src/components/composed/chat/composer/send-button.d.ts +3 -0
  102. package/dist-lib/src/components/composed/chat/composer/suggestions.d.ts +7 -0
  103. package/dist-lib/src/components/composed/chat/composer/utils.d.ts +19 -0
  104. package/dist-lib/src/components/composed/chat/context-cards.d.ts +27 -0
  105. package/dist-lib/src/components/composed/chat/filter-table.d.ts +40 -0
  106. package/dist-lib/src/components/composed/chat/flowchart/chart-node.d.ts +2 -0
  107. package/dist-lib/src/components/composed/chat/flowchart/connector.d.ts +2 -0
  108. package/dist-lib/src/components/composed/chat/flowchart/constant.d.ts +15 -0
  109. package/dist-lib/src/components/composed/chat/flowchart/default.d.ts +7 -0
  110. package/dist-lib/src/components/composed/chat/flowchart/edge-toolbar.d.ts +9 -0
  111. package/dist-lib/src/components/composed/chat/flowchart/hooks.d.ts +290 -0
  112. package/dist-lib/src/components/composed/chat/flowchart/index.d.ts +11 -0
  113. package/dist-lib/src/components/composed/chat/flowchart/step-body.d.ts +6 -0
  114. package/dist-lib/src/components/composed/chat/flowchart/types.d.ts +91 -0
  115. package/dist-lib/src/components/composed/chat/flowchart/utils.d.ts +64 -0
  116. package/dist-lib/src/components/composed/chat/hint.d.ts +6 -0
  117. package/dist-lib/src/components/composed/chat/index.d.ts +15 -0
  118. package/dist-lib/src/components/composed/chat/insight-cards.d.ts +54 -0
  119. package/dist-lib/src/components/composed/chat/markdown-atom.d.ts +7 -0
  120. package/dist-lib/src/components/composed/chat/markdown.d.ts +22 -0
  121. package/dist-lib/src/components/composed/chat/recommendation/checkbox.d.ts +15 -0
  122. package/dist-lib/src/components/composed/chat/recommendation/constant.d.ts +6 -0
  123. package/dist-lib/src/components/composed/chat/recommendation/default.d.ts +7 -0
  124. package/dist-lib/src/components/composed/chat/recommendation/group.d.ts +8 -0
  125. package/dist-lib/src/components/composed/chat/recommendation/index.d.ts +15 -0
  126. package/dist-lib/src/components/composed/chat/recommendation/item.d.ts +12 -0
  127. package/dist-lib/src/components/composed/chat/recommendation/types.d.ts +53 -0
  128. package/dist-lib/src/components/composed/chat/records-table.d.ts +38 -0
  129. package/dist-lib/src/components/composed/chat/type.d.ts +86 -0
  130. package/dist-lib/src/components/composed/code-block.story.d.ts +3 -0
  131. package/dist-lib/src/components/composed/context-cards.story.d.ts +3 -0
  132. package/dist-lib/src/components/composed/emoji-action-bar.story.d.ts +3 -0
  133. package/dist-lib/src/components/composed/filter-table.story.d.ts +7 -0
  134. package/dist-lib/src/components/composed/flowchart.story.d.ts +3 -0
  135. package/dist-lib/src/components/composed/insight-cards.story.d.ts +3 -0
  136. package/dist-lib/src/components/composed/logo.story.d.ts +3 -0
  137. package/dist-lib/src/components/composed/markdown.story.d.ts +3 -0
  138. package/dist-lib/src/components/composed/password-input.story.d.ts +7 -0
  139. package/dist-lib/src/components/composed/reader/applied-mark.d.ts +3 -0
  140. package/dist-lib/src/components/composed/reader/apply-toast.d.ts +3 -0
  141. package/dist-lib/src/components/composed/reader/index.d.ts +7 -0
  142. package/dist-lib/src/components/composed/reader/selection-highlight.d.ts +3 -0
  143. package/dist-lib/src/components/composed/reader/selection-popover.d.ts +9 -0
  144. package/dist-lib/src/components/composed/reader/type.d.ts +40 -0
  145. package/dist-lib/src/components/composed/recommendation-card.story.d.ts +3 -0
  146. package/dist-lib/src/components/composed/records-table.story.d.ts +3 -0
  147. package/dist-lib/src/components/composed/research-answer.story.d.ts +3 -0
  148. package/dist-lib/src/components/composed/social-providers.story.d.ts +3 -0
  149. package/dist-lib/src/components/composed/streaming-text.story.d.ts +3 -0
  150. package/dist-lib/src/components/composed/tree/__tests__/tree-atom.test.d.ts +1 -0
  151. package/dist-lib/src/components/composed/tree/__tests__/tree.test.d.ts +1 -0
  152. package/dist-lib/src/components/composed/tree/__tests__/use-tree.test.d.ts +1 -0
  153. package/dist-lib/src/components/composed/tree.story.d.ts +6 -0
  154. package/dist-lib/src/components/composed/user/index.d.ts +11 -0
  155. package/dist-lib/src/components/composed/user/info.d.ts +12 -0
  156. package/dist-lib/src/components/composed/user/message.d.ts +3 -0
  157. package/dist-lib/src/components/composed/user/pill.d.ts +10 -0
  158. package/dist-lib/src/components/composed/user/types.d.ts +20 -0
  159. package/dist-lib/src/components/composed/user/utils.d.ts +1 -0
  160. package/dist-lib/src/components/composed/user.story.d.ts +8 -0
  161. package/dist-lib/src/components/composed/verse/__tests__/verse.test.d.ts +1 -0
  162. package/dist-lib/src/components/composed/verse/index.d.ts +2 -0
  163. package/dist-lib/src/components/composed/verse/types.d.ts +18 -0
  164. package/dist-lib/src/components/composed/verse/verse.d.ts +5 -0
  165. package/dist-lib/src/components/composed/verse.story.d.ts +3 -0
  166. package/dist-lib/src/components/docs/atoms-gallery.d.ts +3 -0
  167. package/dist-lib/{components → src/components}/docs/demo-controls.d.ts +3 -10
  168. package/dist-lib/src/components/docs/hero.d.ts +5 -0
  169. package/dist-lib/src/components/docs/mermaid.d.ts +3 -0
  170. package/dist-lib/src/components/icons/__tests__/icons.test.d.ts +1 -0
  171. package/dist-lib/src/components/motion/index.d.ts +1 -0
  172. package/dist-lib/src/components/ui/accordion.d.ts +7 -0
  173. package/dist-lib/src/components/ui/alert-dialog.d.ts +20 -0
  174. package/dist-lib/src/components/ui/alert.d.ts +10 -0
  175. package/dist-lib/src/components/ui/autocomplete.d.ts +34 -0
  176. package/dist-lib/src/components/ui/avatar.d.ts +11 -0
  177. package/dist-lib/src/components/ui/avatar.story.d.ts +7 -0
  178. package/dist-lib/src/components/ui/badge.d.ts +14 -0
  179. package/dist-lib/src/components/ui/bubble.story.d.ts +7 -0
  180. package/dist-lib/{components → src/components}/ui/button.d.ts +1 -1
  181. package/dist-lib/src/components/ui/button.story.d.ts +8 -0
  182. package/dist-lib/src/components/ui/card.story.d.ts +9 -0
  183. package/dist-lib/src/components/ui/chat/__tests__/segmented-toggle.test.d.ts +1 -0
  184. package/dist-lib/src/components/ui/chat/avatar-handle.d.ts +13 -0
  185. package/dist-lib/src/components/ui/chat/badges.d.ts +29 -0
  186. package/dist-lib/src/components/ui/chat/buttons.d.ts +29 -0
  187. package/dist-lib/src/components/ui/chat/chips.d.ts +48 -0
  188. package/dist-lib/src/components/ui/chat/dot.d.ts +30 -0
  189. package/dist-lib/src/components/ui/chat/icon-button.d.ts +18 -0
  190. package/dist-lib/src/components/ui/chat/icon-tile.d.ts +20 -0
  191. package/dist-lib/src/components/ui/chat/index.d.ts +12 -0
  192. package/dist-lib/src/components/ui/chat/inline-source.d.ts +20 -0
  193. package/dist-lib/src/components/ui/chat/segmented-toggle.d.ts +20 -0
  194. package/dist-lib/src/components/ui/chat/tag.d.ts +21 -0
  195. package/dist-lib/src/components/ui/chat/thumbnail.d.ts +13 -0
  196. package/dist-lib/src/components/ui/chat/waveform.d.ts +13 -0
  197. package/dist-lib/src/components/ui/chat-atoms.story.d.ts +22 -0
  198. package/dist-lib/src/components/ui/checkbox.story.d.ts +7 -0
  199. package/dist-lib/src/components/ui/collapsible.d.ts +6 -0
  200. package/dist-lib/src/components/ui/command.d.ts +25 -0
  201. package/dist-lib/src/components/ui/context-menu.d.ts +42 -0
  202. package/dist-lib/src/components/ui/emoji-picker.d.ts +7 -0
  203. package/dist-lib/src/components/ui/field.story.d.ts +7 -0
  204. package/dist-lib/src/components/ui/file-icons.story.d.ts +7 -0
  205. package/dist-lib/src/components/ui/frame.story.d.ts +9 -0
  206. package/dist-lib/{components → src/components}/ui/glasscn/glass-container.d.ts +7 -2
  207. package/dist-lib/src/components/ui/input-group.story.d.ts +7 -0
  208. package/dist-lib/src/components/ui/input.story.d.ts +9 -0
  209. package/dist-lib/src/components/ui/kbd.d.ts +3 -0
  210. package/dist-lib/src/components/ui/label.story.d.ts +9 -0
  211. package/dist-lib/src/components/ui/menu-command.d.ts +37 -0
  212. package/dist-lib/src/components/ui/menu-command.story.d.ts +7 -0
  213. package/dist-lib/src/components/ui/otp-field.story.d.ts +9 -0
  214. package/dist-lib/src/components/ui/password-input.story.d.ts +3 -0
  215. package/dist-lib/src/components/ui/popover-glass.d.ts +32 -0
  216. package/dist-lib/src/components/ui/popover.d.ts +18 -0
  217. package/dist-lib/src/components/ui/preview-card.d.ts +11 -0
  218. package/dist-lib/src/components/ui/reference.story.d.ts +10 -0
  219. package/dist-lib/src/components/ui/scroll-area.d.ts +11 -0
  220. package/dist-lib/{components → src/components}/ui/select.d.ts +1 -1
  221. package/dist-lib/src/components/ui/separator.story.d.ts +7 -0
  222. package/dist-lib/src/components/ui/tabs.d.ts +15 -0
  223. package/dist-lib/src/components/ui/text.story.d.ts +9 -0
  224. package/dist-lib/src/components/ui/textarea.story.d.ts +7 -0
  225. package/dist-lib/src/components/ui/toast.d.ts +15 -0
  226. package/dist-lib/src/components/ui/toolbar.d.ts +9 -0
  227. package/dist-lib/src/components/ui/tooltip.d.ts +14 -0
  228. package/dist-lib/{index.d.ts → src/index.d.ts} +13 -4
  229. package/dist-lib/{lib → src/lib}/ease.d.ts +9 -0
  230. package/dist-lib/src/lib/hooks/use-mobile.d.ts +1 -0
  231. package/dist-lib/src/lib/keyed-atom.d.ts +14 -0
  232. package/dist-lib/src/lib/segmented-control.d.ts +8 -0
  233. package/dist-lib/src/lib/utils.test.d.ts +1 -0
  234. package/package.json +40 -21
  235. package/src/assets/css/base.css +62 -0
  236. package/src/assets/css/chat.css +229 -0
  237. package/src/assets/css/shadows.css +157 -0
  238. package/src/assets/css/theme.css +321 -0
  239. package/src/components/AGENTS.md +0 -0
  240. package/src/components/atoms/_layout.tsx +9 -0
  241. package/src/components/atoms/avatar/base.tsx +70 -0
  242. package/src/components/atoms/avatar/index.ts +3 -0
  243. package/src/components/atoms/avatar/types.ts +24 -0
  244. package/src/components/atoms/avatar/utils.ts +54 -0
  245. package/src/components/atoms/avatar/verified.tsx +16 -0
  246. package/src/components/atoms/background/index.ts +8 -0
  247. package/src/components/atoms/background/texture.tsx +29 -0
  248. package/src/components/atoms/background/type.ts +10 -0
  249. package/src/components/atoms/background/utils.ts +13 -0
  250. package/src/components/atoms/bubble/__tests__/bubble.test.tsx +138 -0
  251. package/src/components/atoms/bubble/__tests__/reference.test.tsx +25 -0
  252. package/src/components/atoms/bubble/actions.tsx +28 -0
  253. package/src/components/atoms/bubble/context.ts +11 -0
  254. package/src/components/atoms/bubble/default.tsx +46 -0
  255. package/src/components/atoms/bubble/header.tsx +34 -0
  256. package/src/components/atoms/bubble/index.ts +37 -0
  257. package/src/components/atoms/bubble/message.tsx +25 -0
  258. package/src/components/atoms/bubble/reactions.tsx +194 -0
  259. package/src/components/atoms/bubble/types.ts +79 -0
  260. package/src/components/atoms/bubble/utils.ts +46 -0
  261. package/src/components/atoms/chip.tsx +61 -0
  262. package/src/components/atoms/index.ts +52 -0
  263. package/src/components/atoms/loader.tsx +42 -0
  264. package/src/components/atoms/reference.tsx +41 -0
  265. package/src/components/atoms/text/__tests__/text.test.tsx +47 -0
  266. package/src/components/atoms/text/default.tsx +59 -0
  267. package/src/components/atoms/text/heading.tsx +61 -0
  268. package/src/components/atoms/text/index.ts +24 -0
  269. package/src/components/atoms/text/label.tsx +16 -0
  270. package/src/components/atoms/text/paragraph.tsx +58 -0
  271. package/src/components/atoms/text/span.tsx +15 -0
  272. package/src/components/atoms/text/types.ts +31 -0
  273. package/src/components/atoms/text/utils.ts +16 -0
  274. package/src/components/atoms/text-selection/__tests__/click-popover.test.tsx +61 -0
  275. package/src/components/atoms/text-selection/__tests__/text-selection.test.tsx +90 -0
  276. package/src/components/atoms/text-selection/click-popover.tsx +62 -0
  277. package/src/components/atoms/text-selection/index.ts +30 -0
  278. package/src/components/atoms/text-selection/popover.tsx +100 -0
  279. package/src/components/atoms/text-selection/selection-atom.ts +51 -0
  280. package/src/components/atoms/text-selection/selection.tsx +56 -0
  281. package/src/components/atoms/text-selection/types.ts +125 -0
  282. package/src/components/atoms/text-selection/use-selection.ts +84 -0
  283. package/src/components/atoms/types.ts +18 -0
  284. package/src/components/blocks/auth/__tests__/auth-flow-block.test.tsx +1 -1
  285. package/src/components/blocks/auth/__tests__/auth-state-atom.test.tsx +1 -1
  286. package/src/components/blocks/auth/auth-flow-block.story.tsx +17 -0
  287. package/src/components/blocks/auth/code-auth-block.story.tsx +20 -0
  288. package/src/components/blocks/auth/forgot-password-block.story.tsx +14 -0
  289. package/src/components/blocks/auth/linked-accounts-block.story.tsx +23 -0
  290. package/src/components/blocks/auth/linked-accounts-block.tsx +1 -1
  291. package/src/components/blocks/auth/login-block.story.tsx +18 -0
  292. package/src/components/blocks/auth/onboarding/profile-step.tsx +1 -1
  293. package/src/components/blocks/auth/onboarding-block.story.tsx +14 -0
  294. package/src/components/blocks/auth/passkey-manager-block.story.tsx +18 -0
  295. package/src/components/blocks/auth/passkey-manager-block.tsx +2 -2
  296. package/src/components/blocks/auth/passkey-sign-in-block.story.tsx +14 -0
  297. package/src/components/blocks/auth/signup-block.story.tsx +18 -0
  298. package/src/components/blocks/auth/update-password-block.story.tsx +14 -0
  299. package/src/components/blocks/chat/__tests__/ai-panel.test.tsx +65 -0
  300. package/src/components/blocks/chat/banners.tsx +69 -0
  301. package/src/components/blocks/chat/base.story.tsx +19 -0
  302. package/src/components/blocks/chat/base.tsx +84 -0
  303. package/src/components/blocks/chat/header.tsx +60 -0
  304. package/src/components/blocks/chat/index.ts +39 -0
  305. package/src/components/blocks/chat/recommendation-stack.tsx +43 -0
  306. package/src/components/blocks/chat/shared.tsx +27 -0
  307. package/src/components/blocks/chat/suggested-prompts.tsx +45 -0
  308. package/src/components/blocks/chat/types.ts +81 -0
  309. package/src/components/blocks/chat/version-history-record.tsx +37 -0
  310. package/src/components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.tsx +1 -1
  311. package/src/components/blocks/nav/sidebar/sidebar-row.tsx +2 -2
  312. package/src/components/blocks/nav/sidebar/use-ai-sidebar.ts +193 -190
  313. package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +208 -176
  314. package/src/components/blocks/profile/profile-card-block.story.tsx +18 -0
  315. package/src/components/blocks/profile/profile-card-block.tsx +15 -17
  316. package/src/components/blocks/profile/type.ts +3 -5
  317. package/src/components/blocks/profile/use-profile-card.ts +17 -11
  318. package/src/components/blocks/scaffold/scaffold-canvas.tsx +4 -1
  319. package/src/components/blocks/scaffold/scaffold-root.story.tsx +36 -0
  320. package/src/components/blocks/scaffold/scaffold-root.tsx +9 -6
  321. package/src/components/blocks/scaffold/utils.ts +1 -1
  322. package/src/components/blocks/shell/__tests__/shell-fit-atom.test.tsx +4 -4
  323. package/src/components/blocks/shell/__tests__/shell-layout.test.tsx +3 -3
  324. package/src/components/blocks/shell/animated-panel-inset.tsx +1 -1
  325. package/src/components/blocks/shell/shell-layout.story.tsx +19 -0
  326. package/src/components/blocks/shell/shell-layout.tsx +1 -1
  327. package/src/components/blocks/shell/use-shell-fit-state.ts +2 -2
  328. package/src/components/blocks/shell/use-shell-fit.ts +2 -2
  329. package/src/components/blocks/shell/use-shell-panels.ts +3 -3
  330. package/src/components/composed/action-bar/__tests__/action-bar.test.tsx +96 -0
  331. package/src/components/composed/action-bar/action.tsx +80 -0
  332. package/src/components/composed/action-bar/emojis.tsx +97 -0
  333. package/src/components/composed/action-bar/index.ts +24 -0
  334. package/src/components/composed/action-bar/toolbar.tsx +60 -0
  335. package/src/components/composed/action-bar/types.ts +58 -0
  336. package/src/components/composed/action-bar/utils.ts +141 -0
  337. package/src/components/composed/ai/__tests__/ai.test.tsx +67 -0
  338. package/src/components/composed/ai/avatar.tsx +20 -0
  339. package/src/components/composed/ai/index.ts +36 -0
  340. package/src/components/composed/ai/message.tsx +49 -0
  341. package/src/components/composed/ai/research-answer.tsx +157 -0
  342. package/src/components/composed/ai/shared.tsx +94 -0
  343. package/src/components/composed/ai/streaming-text.tsx +94 -0
  344. package/src/components/composed/ai/suggested-prompt.tsx +183 -0
  345. package/src/components/composed/ai/types.ts +81 -0
  346. package/src/components/composed/attachment.story.tsx +52 -0
  347. package/src/components/composed/chart.story.tsx +46 -0
  348. package/src/components/composed/chat/__tests__/attachment.test.tsx +45 -0
  349. package/src/components/composed/chat/__tests__/beautiful-ui.test.tsx +57 -0
  350. package/src/components/composed/chat/__tests__/chart.test.tsx +29 -0
  351. package/src/components/composed/chat/__tests__/code-block.test.tsx +12 -0
  352. package/src/components/composed/chat/__tests__/composer-attachments.test.tsx +53 -0
  353. package/src/components/composed/chat/__tests__/composer.test.tsx +81 -0
  354. package/src/components/composed/chat/__tests__/flowchart.test.tsx +132 -0
  355. package/src/components/composed/chat/__tests__/markdown.test.tsx +25 -0
  356. package/src/components/composed/chat/actions.tsx +81 -0
  357. package/src/components/composed/chat/attachment.tsx +228 -0
  358. package/src/components/composed/chat/chart.tsx +193 -0
  359. package/src/components/composed/chat/code-block.tsx +123 -0
  360. package/src/components/composed/chat/composer/add-button.tsx +22 -0
  361. package/src/components/composed/chat/composer/base.tsx +248 -0
  362. package/src/components/composed/chat/composer/command-menu.tsx +42 -0
  363. package/src/components/composed/chat/composer/hooks.ts +29 -0
  364. package/src/components/composed/chat/composer/index.ts +19 -0
  365. package/src/components/composed/chat/composer/send-button.tsx +44 -0
  366. package/src/components/composed/chat/composer/suggestions.tsx +115 -0
  367. package/src/components/composed/chat/composer/utils.ts +74 -0
  368. package/src/components/composed/chat/context-cards.tsx +63 -0
  369. package/src/components/composed/chat/filter-table.tsx +119 -0
  370. package/src/components/composed/chat/flowchart/chart-node.tsx +162 -0
  371. package/src/components/composed/chat/flowchart/connector.tsx +32 -0
  372. package/src/components/composed/chat/flowchart/constant.ts +26 -0
  373. package/src/components/composed/chat/flowchart/default.tsx +230 -0
  374. package/src/components/composed/chat/flowchart/edge-toolbar.tsx +73 -0
  375. package/src/components/composed/chat/flowchart/hooks.tsx +345 -0
  376. package/src/components/composed/chat/flowchart/index.ts +14 -0
  377. package/src/components/composed/chat/flowchart/step-body.tsx +82 -0
  378. package/src/components/composed/chat/flowchart/types.ts +89 -0
  379. package/src/components/composed/chat/flowchart/utils.ts +78 -0
  380. package/src/components/composed/chat/hint.tsx +59 -0
  381. package/src/components/composed/chat/index.ts +96 -0
  382. package/src/components/composed/chat/insight-cards.tsx +199 -0
  383. package/src/components/composed/chat/markdown-atom.ts +15 -0
  384. package/src/components/composed/chat/markdown.tsx +213 -0
  385. package/src/components/composed/chat/recommendation/checkbox.tsx +133 -0
  386. package/src/components/composed/chat/recommendation/constant.ts +25 -0
  387. package/src/components/composed/chat/recommendation/default.tsx +25 -0
  388. package/src/components/composed/chat/recommendation/group.tsx +43 -0
  389. package/src/components/composed/chat/recommendation/index.ts +19 -0
  390. package/src/components/composed/chat/recommendation/item.tsx +244 -0
  391. package/src/components/composed/chat/recommendation/types.ts +65 -0
  392. package/src/components/composed/chat/records-table.tsx +128 -0
  393. package/src/components/composed/chat/type.ts +126 -0
  394. package/src/components/composed/code-block.story.tsx +29 -0
  395. package/src/components/composed/context-cards.story.tsx +30 -0
  396. package/src/components/composed/emoji-action-bar.story.tsx +20 -0
  397. package/src/components/composed/filter-table.story.tsx +58 -0
  398. package/src/components/composed/flowchart.story.tsx +24 -0
  399. package/src/components/composed/insight-cards.story.tsx +51 -0
  400. package/src/components/composed/logo.story.tsx +21 -0
  401. package/src/components/composed/logo.tsx +24 -12
  402. package/src/components/composed/markdown.story.tsx +21 -0
  403. package/src/components/composed/password-input.story.tsx +38 -0
  404. package/src/components/composed/reader/applied-mark.tsx +32 -0
  405. package/src/components/composed/reader/apply-toast.tsx +49 -0
  406. package/src/components/composed/reader/index.ts +10 -0
  407. package/src/components/composed/reader/selection-highlight.tsx +26 -0
  408. package/src/components/composed/reader/selection-popover.tsx +149 -0
  409. package/src/components/composed/reader/type.ts +48 -0
  410. package/src/components/composed/recommendation-card.story.tsx +32 -0
  411. package/src/components/composed/records-table.story.tsx +46 -0
  412. package/src/components/composed/research-answer.story.tsx +32 -0
  413. package/src/components/composed/social-providers.story.tsx +24 -0
  414. package/src/components/composed/streaming-text.story.tsx +24 -0
  415. package/src/components/composed/tree/__tests__/tree-atom.test.tsx +1 -1
  416. package/src/components/composed/tree/__tests__/tree.test.tsx +1 -1
  417. package/src/components/composed/tree/tree-node.tsx +1 -1
  418. package/src/components/composed/tree/use-tree.ts +20 -16
  419. package/src/components/composed/tree.story.tsx +31 -0
  420. package/src/components/composed/user/index.ts +14 -0
  421. package/src/components/composed/user/info.tsx +48 -0
  422. package/src/components/composed/user/message.tsx +10 -0
  423. package/src/components/composed/user/pill.tsx +20 -0
  424. package/src/components/composed/user/types.ts +27 -0
  425. package/src/components/composed/user/utils.ts +0 -0
  426. package/src/components/composed/user.story.tsx +29 -0
  427. package/src/components/composed/verse/__tests__/verse.test.tsx +57 -0
  428. package/src/components/composed/verse/index.ts +2 -0
  429. package/src/components/composed/verse/types.ts +24 -0
  430. package/src/components/composed/verse/verse.tsx +100 -0
  431. package/src/components/composed/verse.story.tsx +21 -0
  432. package/src/components/docs/atoms-gallery.tsx +286 -0
  433. package/src/components/docs/code-block.tsx +2 -0
  434. package/src/components/docs/demo-controls.tsx +20 -20
  435. package/src/components/docs/hero.tsx +198 -0
  436. package/src/components/docs/mermaid.tsx +55 -0
  437. package/src/components/ui/accordion.tsx +68 -0
  438. package/src/components/ui/alert-dialog.tsx +167 -0
  439. package/src/components/ui/alert.tsx +84 -0
  440. package/src/components/ui/autocomplete.tsx +303 -0
  441. package/src/components/ui/avatar.story.tsx +33 -0
  442. package/src/components/ui/avatar.tsx +81 -24
  443. package/src/components/ui/badge.tsx +73 -24
  444. package/src/components/ui/bubble.story.tsx +45 -0
  445. package/src/components/ui/button-group.tsx +4 -4
  446. package/src/components/ui/button.story.tsx +62 -0
  447. package/src/components/ui/button.tsx +3 -3
  448. package/src/components/ui/card.story.tsx +36 -0
  449. package/src/components/ui/card.tsx +2 -2
  450. package/src/components/ui/chat/__tests__/segmented-toggle.test.tsx +27 -0
  451. package/src/components/ui/chat/avatar-handle.tsx +30 -0
  452. package/src/components/ui/chat/badges.tsx +85 -0
  453. package/src/components/ui/chat/buttons.tsx +94 -0
  454. package/src/components/ui/chat/chips.tsx +106 -0
  455. package/src/components/ui/chat/dot.tsx +81 -0
  456. package/src/components/ui/chat/icon-button.tsx +43 -0
  457. package/src/components/ui/chat/icon-tile.tsx +33 -0
  458. package/src/components/ui/chat/index.ts +12 -0
  459. package/src/components/ui/chat/inline-source.tsx +94 -0
  460. package/src/components/ui/chat/segmented-toggle.tsx +99 -0
  461. package/src/components/ui/chat/tag.tsx +61 -0
  462. package/src/components/ui/chat/thumbnail.tsx +31 -0
  463. package/src/components/ui/chat/waveform.tsx +30 -0
  464. package/src/components/ui/chat-atoms.story.tsx +94 -0
  465. package/src/components/ui/checkbox.story.tsx +30 -0
  466. package/src/components/ui/collapsible.tsx +42 -0
  467. package/src/components/ui/command.tsx +263 -0
  468. package/src/components/ui/context-menu.tsx +342 -0
  469. package/src/components/ui/emoji-picker.tsx +161 -0
  470. package/src/components/ui/field.story.tsx +32 -0
  471. package/src/components/ui/file-icons.story.tsx +24 -0
  472. package/src/components/ui/frame.story.tsx +32 -0
  473. package/src/components/ui/frame.tsx +2 -2
  474. package/src/components/ui/glasscn/glass-container.tsx +9 -3
  475. package/src/components/ui/glasscn/liquid-glass.tsx +5 -5
  476. package/src/components/ui/group.tsx +1 -1
  477. package/src/components/ui/input-group.story.tsx +27 -0
  478. package/src/components/ui/input-group.tsx +1 -1
  479. package/src/components/ui/input.story.tsx +42 -0
  480. package/src/components/ui/input.tsx +1 -1
  481. package/src/components/ui/kbd.tsx +32 -0
  482. package/src/components/ui/label.story.tsx +32 -0
  483. package/src/components/ui/menu-command.story.tsx +37 -0
  484. package/src/components/ui/menu-command.tsx +128 -0
  485. package/src/components/ui/otp-field.story.tsx +35 -0
  486. package/src/components/ui/otp-field.tsx +1 -1
  487. package/src/components/ui/password-input.story.tsx +19 -0
  488. package/src/components/ui/popover-glass.tsx +161 -0
  489. package/src/components/ui/popover.tsx +120 -0
  490. package/src/components/ui/preview-card.tsx +61 -0
  491. package/src/components/ui/reference.story.tsx +33 -0
  492. package/src/components/ui/scroll-area.tsx +80 -0
  493. package/src/components/ui/select.tsx +1 -1
  494. package/src/components/ui/separator.story.tsx +34 -0
  495. package/src/components/ui/tabs.tsx +120 -0
  496. package/src/components/ui/text.story.tsx +31 -0
  497. package/src/components/ui/textarea.story.tsx +34 -0
  498. package/src/components/ui/textarea.tsx +1 -1
  499. package/src/components/ui/toast.tsx +325 -0
  500. package/src/components/ui/toolbar.tsx +92 -0
  501. package/src/components/ui/tooltip.tsx +40 -39
  502. package/src/index.css +6 -250
  503. package/src/index.ts +25 -31
  504. package/src/lib/ease.ts +11 -0
  505. package/src/lib/hooks/use-mobile.ts +21 -0
  506. package/src/lib/keyed-atom.ts +60 -0
  507. package/src/lib/segmented-control.ts +42 -0
  508. package/src/{state → lib/state}/exegia-provider.tsx +5 -1
  509. package/src/lib/utils.ts +93 -1
  510. package/dist-lib/components/beste/piece/browser-frame.d.ts +0 -2
  511. package/dist-lib/components/beste/piece/type.d.ts +0 -9
  512. package/dist-lib/components/beste/piece/utils.d.ts +0 -3
  513. package/dist-lib/components/composed/user-avatar.d.ts +0 -7
  514. package/dist-lib/components/docs/component-preview.d.ts +0 -10
  515. package/dist-lib/components/docs/props-table.d.ts +0 -4
  516. package/dist-lib/components/ui/avatar.d.ts +0 -6
  517. package/dist-lib/components/ui/badge.d.ts +0 -7
  518. package/dist-lib/components/ui/tooltip.d.ts +0 -6
  519. package/dist-lib/components/user-avatar/audio-wave.d.ts +0 -2
  520. package/dist-lib/components/user-avatar/component.d.ts +0 -3
  521. package/dist-lib/components/user-avatar/fallback.d.ts +0 -5
  522. package/dist-lib/components/user-avatar/index.d.ts +0 -18
  523. package/dist-lib/components/user-avatar/presence-badge.d.ts +0 -16
  524. package/dist-lib/components/user-avatar/type.d.ts +0 -79
  525. package/dist-lib/components/user-avatar/use-user-avatar-state.d.ts +0 -26
  526. package/dist-lib/components/user-avatar/use-user-avatar.d.ts +0 -37
  527. package/dist-lib/components/user-avatar/user-avatar-atom.d.ts +0 -64
  528. package/dist-lib/components/user-avatar/utils.d.ts +0 -24
  529. package/src/components/beste/piece/browser-frame.tsx +0 -58
  530. package/src/components/beste/piece/type.ts +0 -11
  531. package/src/components/beste/piece/utils.ts +0 -21
  532. package/src/components/composed/__tests__/user-avatar.test.tsx +0 -85
  533. package/src/components/composed/user-avatar.tsx +0 -13
  534. package/src/components/docs/component-preview.tsx +0 -34
  535. package/src/components/docs/props-table.tsx +0 -35
  536. package/src/components/user-avatar/__tests__/user-avatar.test.tsx +0 -286
  537. package/src/components/user-avatar/audio-wave.tsx +0 -22
  538. package/src/components/user-avatar/component.tsx +0 -182
  539. package/src/components/user-avatar/fallback.tsx +0 -28
  540. package/src/components/user-avatar/index.ts +0 -34
  541. package/src/components/user-avatar/presence-badge.tsx +0 -56
  542. package/src/components/user-avatar/type.ts +0 -93
  543. package/src/components/user-avatar/use-user-avatar-state.ts +0 -60
  544. package/src/components/user-avatar/use-user-avatar.ts +0 -180
  545. package/src/components/user-avatar/user-avatar-atom.ts +0 -218
  546. package/src/components/user-avatar/utils.ts +0 -102
  547. /package/dist-lib/{components/blocks/auth/__tests__/auth-flow-block.test.d.ts → src/components/atoms/bubble/__tests__/bubble.test.d.ts} +0 -0
  548. /package/dist-lib/{components/blocks/auth/__tests__/auth-state-atom.test.d.ts → src/components/atoms/bubble/__tests__/reference.test.d.ts} +0 -0
  549. /package/dist-lib/{components/blocks/auth/__tests__/passkey-manager-block.test.d.ts → src/components/atoms/text/__tests__/text.test.d.ts} +0 -0
  550. /package/dist-lib/{components/blocks/auth/__tests__/linked-accounts-block.test.d.ts → src/components/atoms/text-selection/__tests__/click-popover.test.d.ts} +0 -0
  551. /package/dist-lib/{components/blocks/auth/__tests__/onboarding-block.test.d.ts → src/components/atoms/text-selection/__tests__/text-selection.test.d.ts} +0 -0
  552. /package/dist-lib/{components/blocks/auth/__tests__/passkey-sign-in-block.test.d.ts → src/components/blocks/auth/__tests__/auth-flow-block.test.d.ts} +0 -0
  553. /package/dist-lib/{components/blocks/auth/__tests__/signup-block.test.d.ts → src/components/blocks/auth/__tests__/auth-state-atom.test.d.ts} +0 -0
  554. /package/dist-lib/{components/blocks/auth/__tests__/update-password-block.test.d.ts → src/components/blocks/auth/__tests__/linked-accounts-block.test.d.ts} +0 -0
  555. /package/dist-lib/{components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.d.ts → src/components/blocks/auth/__tests__/onboarding-block.test.d.ts} +0 -0
  556. /package/dist-lib/{components/blocks/nav/sidebar/__tests__/ai-sidebar.test.d.ts → src/components/blocks/auth/__tests__/passkey-manager-block.test.d.ts} +0 -0
  557. /package/dist-lib/{components/blocks/nav/sidebar/__tests__/use-ai-sidebar.test.d.ts → src/components/blocks/auth/__tests__/passkey-sign-in-block.test.d.ts} +0 -0
  558. /package/dist-lib/{components/blocks/profile/__tests__/profile-card-block.test.d.ts → src/components/blocks/auth/__tests__/signup-block.test.d.ts} +0 -0
  559. /package/dist-lib/{components/blocks/scaffold/__tests__/scaffold-atom.test.d.ts → src/components/blocks/auth/__tests__/update-password-block.test.d.ts} +0 -0
  560. /package/dist-lib/{components → src/components}/blocks/auth/auth-flow-atom.d.ts +0 -0
  561. /package/dist-lib/{components → src/components}/blocks/auth/auth-flow-block.d.ts +0 -0
  562. /package/dist-lib/{components → src/components}/blocks/auth/auth-session-atom.d.ts +0 -0
  563. /package/dist-lib/{components → src/components}/blocks/auth/auth-shell.d.ts +0 -0
  564. /package/dist-lib/{components → src/components}/blocks/auth/auth-state-type.d.ts +0 -0
  565. /package/dist-lib/{components → src/components}/blocks/auth/auth-state.d.ts +0 -0
  566. /package/dist-lib/{components → src/components}/blocks/auth/code-auth-block.d.ts +0 -0
  567. /package/dist-lib/{components → src/components}/blocks/auth/forgot-password-block.d.ts +0 -0
  568. /package/dist-lib/{components → src/components}/blocks/auth/linked-accounts-block.d.ts +0 -0
  569. /package/dist-lib/{components → src/components}/blocks/auth/login-block.d.ts +0 -0
  570. /package/dist-lib/{components → src/components}/blocks/auth/onboarding/profile-step.d.ts +0 -0
  571. /package/dist-lib/{components → src/components}/blocks/auth/onboarding-block.d.ts +0 -0
  572. /package/dist-lib/{components → src/components}/blocks/auth/passkey-manager-block.d.ts +0 -0
  573. /package/dist-lib/{components → src/components}/blocks/auth/passkey-sign-in-block.d.ts +0 -0
  574. /package/dist-lib/{components → src/components}/blocks/auth/signup-block.d.ts +0 -0
  575. /package/dist-lib/{components → src/components}/blocks/auth/update-password-block.d.ts +0 -0
  576. /package/dist-lib/{components → src/components}/blocks/auth/use-auth-state.d.ts +0 -0
  577. /package/dist-lib/{components/blocks/scaffold/__tests__/scaffold.test.d.ts → src/components/blocks/chat/__tests__/ai-panel.test.d.ts} +0 -0
  578. /package/dist-lib/{components → src/components}/blocks/layout.d.ts +0 -0
  579. /package/dist-lib/{components/blocks/shell/__tests__/shell-fit-atom.test.d.ts → src/components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.d.ts} +0 -0
  580. /package/dist-lib/{components/blocks/shell/__tests__/shell-layout.test.d.ts → src/components/blocks/nav/sidebar/__tests__/ai-sidebar.test.d.ts} +0 -0
  581. /package/dist-lib/{components/blocks/shell/__tests__/shell-metrics.test.d.ts → src/components/blocks/nav/sidebar/__tests__/use-ai-sidebar.test.d.ts} +0 -0
  582. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/ai-sidebar-atom.d.ts +0 -0
  583. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/ai-sidebar.d.ts +0 -0
  584. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/index.d.ts +0 -0
  585. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/marquee-label.d.ts +0 -0
  586. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/sidebar-context.d.ts +0 -0
  587. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/sidebar-icon.d.ts +0 -0
  588. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/sidebar-row.d.ts +0 -0
  589. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/type.d.ts +0 -0
  590. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/use-ai-sidebar-state.d.ts +0 -0
  591. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/use-ai-sidebar.d.ts +0 -0
  592. /package/dist-lib/{components → src/components}/blocks/nav/sidebar/utils.d.ts +0 -0
  593. /package/dist-lib/{components/composed/__tests__/logo.test.d.ts → src/components/blocks/profile/__tests__/profile-card-block.test.d.ts} +0 -0
  594. /package/dist-lib/{components → src/components}/blocks/profile/index.d.ts +0 -0
  595. /package/dist-lib/{components → src/components}/blocks/profile/profile-card-atom.d.ts +0 -0
  596. /package/dist-lib/{components → src/components}/blocks/profile/use-profile-card-state.d.ts +0 -0
  597. /package/dist-lib/{components → src/components}/blocks/profile/use-profile-card.d.ts +0 -0
  598. /package/dist-lib/{components/composed/__tests__/user-avatar.test.d.ts → src/components/blocks/scaffold/__tests__/scaffold-atom.test.d.ts} +0 -0
  599. /package/dist-lib/{components/composed/tree/__tests__/tree-atom.test.d.ts → src/components/blocks/scaffold/__tests__/scaffold.test.d.ts} +0 -0
  600. /package/dist-lib/{components → src/components}/blocks/scaffold/constants.d.ts +0 -0
  601. /package/dist-lib/{components → src/components}/blocks/scaffold/index.d.ts +0 -0
  602. /package/dist-lib/{components → src/components}/blocks/scaffold/panel-close-button.d.ts +0 -0
  603. /package/dist-lib/{components → src/components}/blocks/scaffold/panel-menu-button.d.ts +0 -0
  604. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-actions.d.ts +0 -0
  605. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-atom.d.ts +0 -0
  606. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-canvas.d.ts +0 -0
  607. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-context.d.ts +0 -0
  608. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-inspector.d.ts +0 -0
  609. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-main.d.ts +0 -0
  610. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-panel.d.ts +0 -0
  611. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-root.d.ts +0 -0
  612. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-sidebar.d.ts +0 -0
  613. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-sub-panel.d.ts +0 -0
  614. /package/dist-lib/{components → src/components}/blocks/scaffold/scaffold-tab.d.ts +0 -0
  615. /package/dist-lib/{components → src/components}/blocks/scaffold/type.d.ts +0 -0
  616. /package/dist-lib/{components → src/components}/blocks/scaffold/use-scaffold-state.d.ts +0 -0
  617. /package/dist-lib/{components → src/components}/blocks/scaffold/use-scaffold.d.ts +0 -0
  618. /package/dist-lib/{components → src/components}/blocks/scaffold/utils.d.ts +0 -0
  619. /package/dist-lib/{components/composed/tree/__tests__/tree.test.d.ts → src/components/blocks/shell/__tests__/shell-fit-atom.test.d.ts} +0 -0
  620. /package/dist-lib/{components/composed/tree/__tests__/use-tree.test.d.ts → src/components/blocks/shell/__tests__/shell-layout.test.d.ts} +0 -0
  621. /package/dist-lib/{components/icons/__tests__/icons.test.d.ts → src/components/blocks/shell/__tests__/shell-metrics.test.d.ts} +0 -0
  622. /package/dist-lib/{components → src/components}/blocks/shell/animated-panel-inset.d.ts +0 -0
  623. /package/dist-lib/{components → src/components}/blocks/shell/animated-panel-provider.d.ts +0 -0
  624. /package/dist-lib/{components → src/components}/blocks/shell/animated-panel-trigger.d.ts +0 -0
  625. /package/dist-lib/{components → src/components}/blocks/shell/animated-panel.d.ts +0 -0
  626. /package/dist-lib/{components → src/components}/blocks/shell/index.d.ts +0 -0
  627. /package/dist-lib/{components → src/components}/blocks/shell/shell-fit-atom.d.ts +0 -0
  628. /package/dist-lib/{components → src/components}/blocks/shell/shell-layout.d.ts +0 -0
  629. /package/dist-lib/{components → src/components}/blocks/shell/shell-metrics.d.ts +0 -0
  630. /package/dist-lib/{components → src/components}/blocks/shell/type.d.ts +0 -0
  631. /package/dist-lib/{components → src/components}/blocks/shell/use-shell-fit-state.d.ts +0 -0
  632. /package/dist-lib/{components → src/components}/blocks/shell/use-shell-fit.d.ts +0 -0
  633. /package/dist-lib/{components → src/components}/blocks/shell/use-shell-panels.d.ts +0 -0
  634. /package/dist-lib/{components → src/components}/blocks/shell/utils.d.ts +0 -0
  635. /package/dist-lib/{components/motion/index.d.ts → src/components/composed/__tests__/logo.test.d.ts} +0 -0
  636. /package/dist-lib/{components/user-avatar/__tests__/user-avatar.test.d.ts → src/components/composed/action-bar/__tests__/action-bar.test.d.ts} +0 -0
  637. /package/dist-lib/{lib/utils.test.d.ts → src/components/composed/ai/__tests__/ai.test.d.ts} +0 -0
  638. /package/dist-lib/{components → src/components}/composed/logo.d.ts +0 -0
  639. /package/dist-lib/{components → src/components}/composed/password-input.d.ts +0 -0
  640. /package/dist-lib/{components → src/components}/composed/social-providers.d.ts +0 -0
  641. /package/dist-lib/{components → src/components}/composed/tree/constants.d.ts +0 -0
  642. /package/dist-lib/{components → src/components}/composed/tree/index.d.ts +0 -0
  643. /package/dist-lib/{components → src/components}/composed/tree/tree-atom.d.ts +0 -0
  644. /package/dist-lib/{components → src/components}/composed/tree/tree-context.d.ts +0 -0
  645. /package/dist-lib/{components → src/components}/composed/tree/tree-node.d.ts +0 -0
  646. /package/dist-lib/{components → src/components}/composed/tree/tree.d.ts +0 -0
  647. /package/dist-lib/{components → src/components}/composed/tree/type.d.ts +0 -0
  648. /package/dist-lib/{components → src/components}/composed/tree/use-tree-dnd.d.ts +0 -0
  649. /package/dist-lib/{components → src/components}/composed/tree/use-tree-state.d.ts +0 -0
  650. /package/dist-lib/{components → src/components}/composed/tree/use-tree.d.ts +0 -0
  651. /package/dist-lib/{components → src/components}/composed/tree/utils.d.ts +0 -0
  652. /package/dist-lib/{components → src/components}/docs/code-block.d.ts +0 -0
  653. /package/dist-lib/{components → src/components}/icons/file-badge-cfm.d.ts +0 -0
  654. /package/dist-lib/{components → src/components}/icons/file-badge-corpus.d.ts +0 -0
  655. /package/dist-lib/{components → src/components}/icons/file-badge-pdf.d.ts +0 -0
  656. /package/dist-lib/{components → src/components}/icons/file-badge-tei.d.ts +0 -0
  657. /package/dist-lib/{components → src/components}/icons/file-badge-tf.d.ts +0 -0
  658. /package/dist-lib/{components → src/components}/icons/file-badge-txt.d.ts +0 -0
  659. /package/dist-lib/{components → src/components}/icons/file-badge-xml.d.ts +0 -0
  660. /package/dist-lib/{components → src/components}/icons/file-wordmark-cfm.d.ts +0 -0
  661. /package/dist-lib/{components → src/components}/icons/file-wordmark-corpus.d.ts +0 -0
  662. /package/dist-lib/{components → src/components}/icons/file-wordmark-pdf.d.ts +0 -0
  663. /package/dist-lib/{components → src/components}/icons/file-wordmark-tei.d.ts +0 -0
  664. /package/dist-lib/{components → src/components}/icons/file-wordmark-tf.d.ts +0 -0
  665. /package/dist-lib/{components → src/components}/icons/file-wordmark-txt.d.ts +0 -0
  666. /package/dist-lib/{components → src/components}/icons/file-wordmark-xml.d.ts +0 -0
  667. /package/dist-lib/{components → src/components}/icons/index.d.ts +0 -0
  668. /package/dist-lib/{components → src/components}/icons/types.d.ts +0 -0
  669. /package/dist-lib/{components → src/components}/motion/overflow-actions.d.ts +0 -0
  670. /package/dist-lib/{components → src/components}/motion/popover-morph.d.ts +0 -0
  671. /package/dist-lib/{components → src/components}/motion/popover-position.d.ts +0 -0
  672. /package/dist-lib/{components → src/components}/motion/shared-layout-bg.d.ts +0 -0
  673. /package/dist-lib/{components → src/components}/theme-provider.d.ts +0 -0
  674. /package/dist-lib/{components → src/components}/ui/button-group.d.ts +0 -0
  675. /package/dist-lib/{components → src/components}/ui/card.d.ts +0 -0
  676. /package/dist-lib/{components → src/components}/ui/checkbox.d.ts +0 -0
  677. /package/dist-lib/{components → src/components}/ui/field.d.ts +0 -0
  678. /package/dist-lib/{components → src/components}/ui/frame.d.ts +0 -0
  679. /package/dist-lib/{components → src/components}/ui/glasscn/glass-button-group.d.ts +0 -0
  680. /package/dist-lib/{components → src/components}/ui/glasscn/glass-button.d.ts +0 -0
  681. /package/dist-lib/{components → src/components}/ui/glasscn/glass-separator.d.ts +0 -0
  682. /package/dist-lib/{components → src/components}/ui/glasscn/liquid-glass.d.ts +0 -0
  683. /package/dist-lib/{components → src/components}/ui/group.d.ts +0 -0
  684. /package/dist-lib/{components → src/components}/ui/input-group.d.ts +0 -0
  685. /package/dist-lib/{components → src/components}/ui/input.d.ts +0 -0
  686. /package/dist-lib/{components → src/components}/ui/label.d.ts +0 -0
  687. /package/dist-lib/{components → src/components}/ui/menu.d.ts +0 -0
  688. /package/dist-lib/{components → src/components}/ui/otp-field.d.ts +0 -0
  689. /package/dist-lib/{components → src/components}/ui/separator.d.ts +0 -0
  690. /package/dist-lib/{components → src/components}/ui/sheet.d.ts +0 -0
  691. /package/dist-lib/{components → src/components}/ui/skeleton.d.ts +0 -0
  692. /package/dist-lib/{components → src/components}/ui/spinner.d.ts +0 -0
  693. /package/dist-lib/{components → src/components}/ui/switch.d.ts +0 -0
  694. /package/dist-lib/{components → src/components}/ui/textarea.d.ts +0 -0
  695. /package/dist-lib/{lib → src/lib}/auth-accent.d.ts +0 -0
  696. /package/dist-lib/{lib → src/lib}/glass-variants.d.ts +0 -0
  697. /package/dist-lib/{lib → src/lib}/hooks/use-hover-capable.d.ts +0 -0
  698. /package/dist-lib/{lib → src/lib}/sound.d.ts +0 -0
  699. /package/dist-lib/{state → src/lib/state}/exegia-provider.d.ts +0 -0
  700. /package/dist-lib/{state → src/lib/state}/index.d.ts +0 -0
  701. /package/dist-lib/{state → src/lib/state}/store.d.ts +0 -0
  702. /package/dist-lib/{lib → src/lib}/utils.d.ts +0 -0
  703. /package/src/{state → lib/state}/index.ts +0 -0
  704. /package/src/{state → lib/state}/store.ts +0 -0
@@ -1,7 +0,0 @@
1
- import { useRender } from '@base-ui/react/use-render';
2
- import { VariantProps } from 'class-variance-authority';
3
- declare const badgeVariants: (props?: ({
4
- variant?: "link" | "default" | "destructive" | "ghost" | "outline" | "secondary" | null | undefined;
5
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
- declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>>;
7
- export { Badge, badgeVariants };
@@ -1,6 +0,0 @@
1
- import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
2
- declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react").JSX.Element;
3
- declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): import("react").JSX.Element;
4
- declare function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props): import("react").JSX.Element;
5
- declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): import("react").JSX.Element;
6
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -1,2 +0,0 @@
1
- import { IAudioWaveProps } from './type';
2
- export declare function AudioWave({ className, volume: _volume, children }: IAudioWaveProps): import("react").JSX.Element;
@@ -1,3 +0,0 @@
1
- import { UserAvatarProps } from './type';
2
- import * as React from "react";
3
- export declare function UserAvatar({ src, name, initials, alt, loading: loadingProp, presence: presenceProp, bezel, avatarId, className, style, ...props }: UserAvatarProps): React.ReactElement;
@@ -1,5 +0,0 @@
1
- export declare function Fallback({ name, initials, loading, }: {
2
- name?: string;
3
- initials?: string;
4
- loading?: boolean;
5
- }): import("react").JSX.Element;
@@ -1,18 +0,0 @@
1
- import { AudioWave } from './audio-wave';
2
- import { UserAvatar } from './component';
3
- import { Fallback } from './fallback';
4
- export { AudioWave } from './audio-wave';
5
- export { UserAvatar } from './component';
6
- export { Fallback } from './fallback';
7
- export { PresenceBadge } from './presence-badge';
8
- export { initialsFrom } from './utils';
9
- export { useUserAvatar } from './use-user-avatar';
10
- export type { UseUserAvatarOptions, UserAvatarBinding } from './use-user-avatar';
11
- export { useUserAvatarActions, useUserAvatarState } from './use-user-avatar-state';
12
- export { DEFAULT_BEZEL_ANGLE, removeUserAvatarInstance, resetUserAvatarAtom, setUserAvatarBezelAngleAtom, setUserAvatarPresenceAtom, toggleUserAvatarPresenceAtom, userAvatarBezelAngleAtom, userAvatarIsOnlineAtom, userAvatarPresenceAtom, userAvatarStateAtom, } from './user-avatar-atom';
13
- export type * from './type';
14
- export declare const Avatar: {
15
- AudioWave: typeof AudioWave;
16
- Component: typeof UserAvatar;
17
- Fallback: typeof Fallback;
18
- };
@@ -1,16 +0,0 @@
1
- import { UserPresence } from './type';
2
- /**
3
- * Corner dot naming whether the person is reachable. Sits on the avatar
4
- * frame, outside the clipped circle, with a background-coloured ring so it
5
- * reads against any image. Colour is not the only signal: `offline` is a
6
- * hollow ring, `online` a filled dot, and the label is spelled out for AT.
7
- *
8
- * `lightAngle` (degrees clockwise from 12) lays a faint sheen across the dot
9
- * from that side — the same angle the avatar's bezel is lit from, so the two
10
- * highlights agree and the badge reads as a bead sitting in the same light.
11
- */
12
- export declare function PresenceBadge({ presence, lightAngle, className, }: {
13
- presence: UserPresence;
14
- lightAngle?: number;
15
- className?: string;
16
- }): import("react").JSX.Element;
@@ -1,79 +0,0 @@
1
- import { AvatarPrimitive } from '../ui/avatar';
2
- import type * as React from "react";
3
- export type ImageStatus = Parameters<NonNullable<AvatarPrimitive.Image.Props["onLoadingStatusChange"]>>[0];
4
- /** Whether the person is reachable right now — drawn as the corner badge. */
5
- export type UserPresence = "online" | "offline";
6
- /** Key for one avatar's state in the store. Any stable string; `useUserAvatar`
7
- * generates one when the component does not name itself. */
8
- export type UserAvatarInstanceId = string;
9
- export interface UserAvatarProps extends Omit<AvatarPrimitive.Root.Props, "children"> {
10
- /** Image URL. Without one the initials show immediately — no skeleton. */
11
- src?: string;
12
- /** Drives the initials, and the alt text unless `alt` overrides it. */
13
- name?: string;
14
- /** Overrides the initials derived from `name`. */
15
- initials?: string;
16
- /**
17
- * Alt text for the image. Pass "" when adjacent text already names the
18
- * person — the image is then decorative.
19
- */
20
- alt?: string;
21
- /**
22
- * Force the skeleton, for when the identity itself is still being fetched.
23
- * Omitted, it follows the image: a passed `src` skeletons until it resolves.
24
- */
25
- loading?: boolean;
26
- /**
27
- * Corner badge: a green dot for `online`, a hollow grey ring for `offline`.
28
- * Omitted, no badge — unless the avatar is driven by id and something set
29
- * its presence in the store. Controlled when passed.
30
- */
31
- presence?: UserPresence;
32
- /**
33
- * Embossed rim whose highlight follows the pointer, so the avatar reads as
34
- * a lit bezel rather than a flat disc. Light and dark aware, and with a
35
- * photo it samples the image's rim lightness (CORS permitting) to weight
36
- * highlight against shadow, so the emboss reads on a dark portrait and a
37
- * pale one alike. Static under reduced motion. On by default — pass
38
- * `false` for a flat disc.
39
- */
40
- bezel?: boolean;
41
- /**
42
- * Name this avatar's slice of the store so `useUserAvatarState(id)` /
43
- * `useUserAvatarActions(id)` can read or drive it from anywhere under
44
- * `ExegiaProvider`. Unnamed avatars key off `useId` and are dropped on
45
- * unmount.
46
- */
47
- avatarId?: UserAvatarInstanceId;
48
- }
49
- /** Everything the store knows about one avatar. */
50
- export interface UserAvatarState {
51
- presence: UserPresence | null;
52
- /** Bezel light direction in degrees, clockwise from 12 o'clock. Continuous
53
- * (may leave [0, 360)) so the rim's CSS rotation never spins the long way;
54
- * `((a % 360) + 360) % 360` if you need it normalised. */
55
- bezelAngle: number;
56
- imageStatus: ImageStatus;
57
- /** Perceived lightness of the loaded image's rim, 0 (black) → 1 (white),
58
- * or `null` while unknown — no image yet, or one that could not be sampled
59
- * (non-CORS host, no canvas). The bezel's highlight/shadow alphas follow
60
- * it so the emboss reads on a dark photo and a pale one alike. */
61
- imageTone: number | null;
62
- }
63
- /** Write-only handles onto one avatar. Nothing here re-renders the caller. */
64
- export interface UserAvatarActions {
65
- setPresence: (presence: UserPresence | null) => void;
66
- togglePresence: () => void;
67
- setBezelAngle: (angle: number) => void;
68
- reset: () => void;
69
- }
70
- /** @internal Which fields the mounted component controls from props. The
71
- * store must never overwrite a controlled value. */
72
- export interface UserAvatarConfig {
73
- controlsPresence: boolean;
74
- }
75
- export interface IAudioWaveProps {
76
- className?: string;
77
- children?: React.ReactNode;
78
- volume?: number;
79
- }
@@ -1,26 +0,0 @@
1
- import { UserAvatarActions, UserAvatarInstanceId, UserAvatarState } from './type';
2
- /**
3
- * Read the avatar registered under `avatarId` from anywhere below
4
- * `ExegiaProvider` — no props, no ref, no provider of its own.
5
- *
6
- * ```tsx
7
- * const { presence } = useUserAvatarState("me")
8
- * ```
9
- *
10
- * Returns the whole state object, so the caller re-renders on any change —
11
- * including every bezel frame while a pointer moves. A component that only
12
- * cares about presence should subscribe to that atom instead:
13
- * `useAtomValue(userAvatarPresenceAtom("me"))`.
14
- */
15
- export declare function useUserAvatarState(avatarId: UserAvatarInstanceId): UserAvatarState;
16
- /**
17
- * Write-only handles onto the avatar registered under `avatarId`. Nothing
18
- * here subscribes, so a presence indicator elsewhere in the app can flip
19
- * the badge without re-rendering when the avatar changes.
20
- *
21
- * ```tsx
22
- * const { setPresence } = useUserAvatarActions("me")
23
- * socket.on("presence", (p) => setPresence(p))
24
- * ```
25
- */
26
- export declare function useUserAvatarActions(avatarId: UserAvatarInstanceId): UserAvatarActions;
@@ -1,37 +0,0 @@
1
- import { ImageStatus, UserAvatarInstanceId, UserPresence } from './type';
2
- import * as React from "react";
3
- export interface UseUserAvatarOptions {
4
- avatarId?: UserAvatarInstanceId;
5
- /** Controlled presence. `undefined` leaves the store in charge. */
6
- presence?: UserPresence;
7
- /** Track the pointer for the bezel highlight. */
8
- bezel: boolean;
9
- /** Only meaningful with an image — no image, no status to track. */
10
- hasImage: boolean;
11
- /** The image URL, sampled for its rim lightness once it has loaded so the
12
- * bezel can pick alphas that read against it. Omit to skip sampling. */
13
- src?: string;
14
- }
15
- export interface UserAvatarBinding {
16
- avatarId: UserAvatarInstanceId;
17
- presence: UserPresence | null;
18
- bezelAngle: number;
19
- imageStatus: ImageStatus;
20
- /** Rim lightness of the loaded image, 0–1, or `null` while unknown. */
21
- imageTone: number | null;
22
- /** Hand to the image's `onLoadingStatusChange`. Stable. */
23
- setImageStatus: (status: ImageStatus) => void;
24
- /** Attach to the avatar root — the bezel is lit relative to its centre. */
25
- ref: React.RefObject<HTMLElement | null>;
26
- }
27
- /**
28
- * Binds one avatar to its slice of the store: projects the controlled
29
- * `presence` prop, tracks the image status, and — while `bezel` is on —
30
- * follows the pointer with a rAF-coalesced `pointermove` listener that turns
31
- * the pointer's bearing from the avatar's centre into `bezelAngle`.
32
- *
33
- * Unnamed avatars key off `useId` and are dropped from the store on unmount;
34
- * a named `avatarId` outlives its component so a presence set elsewhere
35
- * survives a remount.
36
- */
37
- export declare function useUserAvatar(options: UseUserAvatarOptions): UserAvatarBinding;
@@ -1,64 +0,0 @@
1
- import { UserAvatarConfig, UserAvatarInstanceId, UserAvatarState, UserPresence } from './type';
2
- /** Light from the top-left, the classic emboss, until a pointer moves. */
3
- export declare const DEFAULT_BEZEL_ANGLE = 315;
4
- type Family<AtomType> = ((id: UserAvatarInstanceId) => AtomType) & {
5
- remove: (id: UserAvatarInstanceId) => void;
6
- };
7
- /** `null` = no badge. */
8
- export declare const userAvatarPresenceAtom: Family<import('jotai').PrimitiveAtom<UserPresence | null> & {
9
- init: UserPresence | null;
10
- }>;
11
- /** Degrees clockwise from 12 o'clock — where the bezel highlight sits. */
12
- export declare const userAvatarBezelAngleAtom: Family<import('jotai').PrimitiveAtom<number> & {
13
- init: number;
14
- }>;
15
- export declare const userAvatarImageStatusAtom: Family<import('jotai').PrimitiveAtom<import('@base-ui/react').ImageLoadingStatus> & {
16
- init: import('@base-ui/react').ImageLoadingStatus;
17
- }>;
18
- /** Rim lightness of the loaded image, `null` until sampled (or unsampleable). */
19
- export declare const userAvatarImageToneAtom: Family<import('jotai').PrimitiveAtom<number | null> & {
20
- init: number | null;
21
- }>;
22
- /** @internal Which fields the mounted component controls from props. */
23
- export declare const userAvatarConfigAtom: Family<import('jotai').PrimitiveAtom<UserAvatarConfig> & {
24
- init: UserAvatarConfig;
25
- }>;
26
- export declare const userAvatarIsOnlineAtom: Family<import('jotai').Atom<boolean>>;
27
- /** Whole-state read for callers that want the object; field atoms above are
28
- * cheaper for components that watch one thing. */
29
- export declare const userAvatarStateAtom: Family<import('jotai').Atom<UserAvatarState>>;
30
- /** Inert while a `presence` prop controls the avatar — the prop is truth. */
31
- export declare const setUserAvatarPresenceAtom: Family<import('jotai').WritableAtom<null, [presence: UserPresence | null], void> & {
32
- init: null;
33
- }>;
34
- /** online ⇄ offline; a badge-less avatar comes online. */
35
- export declare const toggleUserAvatarPresenceAtom: Family<import('jotai').WritableAtom<null, [], void> & {
36
- init: null;
37
- }>;
38
- /** Stored as given — continuous, not wrapped into [0, 360): the rim is
39
- * rotated with a CSS transition, and an unwrapped angle is what lets a
40
- * 359° → 1° move take the short way round. Written on every pointer frame,
41
- * so it stays a bare set — no config gate, no side effects. */
42
- export declare const setUserAvatarBezelAngleAtom: Family<import('jotai').WritableAtom<null, [angle: number], void> & {
43
- init: null;
44
- }>;
45
- /** @internal Reported by the image element; drives the skeleton. */
46
- export declare const setUserAvatarImageStatusAtom: Family<import('jotai').WritableAtom<null, [status: import('@base-ui/react').ImageLoadingStatus], void> & {
47
- init: null;
48
- }>;
49
- /** @internal Written by the hook once the loaded image has been sampled;
50
- * cleared (null) when the image changes or goes away. Clamped to [0, 1]. */
51
- export declare const setUserAvatarImageToneAtom: Family<import('jotai').WritableAtom<null, [tone: number | null], void> & {
52
- init: null;
53
- }>;
54
- /** @internal Projection of the mounted component's controlled props. */
55
- export declare const projectUserAvatarPropsAtom: Family<import('jotai').WritableAtom<null, [config: UserAvatarConfig, presence: UserPresence | null | undefined], void> & {
56
- init: null;
57
- }>;
58
- export declare const resetUserAvatarAtom: Family<import('jotai').WritableAtom<null, [], void> & {
59
- init: null;
60
- }>;
61
- /** Forget an avatar entirely — every family drops the key so the store can
62
- * release its state. Call on teardown of a named instance. */
63
- export declare function removeUserAvatarInstance(id: UserAvatarInstanceId): void;
64
- export {};
@@ -1,24 +0,0 @@
1
- /** "Jenny Hamilton" → "JH", "luna" → "L". */
2
- export declare function initialsFrom(name: string): string;
3
- /**
4
- * Average perceived lightness, 0 (black) → 1 (white), of an image's outer
5
- * band — the pixels the bezel ring overlays — or `null` when it cannot be
6
- * measured: no DOM/canvas (SSR, test DOM), a decode failure, or a host
7
- * without CORS headers (the sample needs a CORS-clean image; the avatar's
8
- * own `<img>` is left untouched, so a non-CORS host still displays).
9
- * Results are memoised per `src`, so a room of the same face samples once.
10
- */
11
- export declare function measureRimTone(src: string): Promise<number | null>;
12
- /**
13
- * Bezel highlight/shadow alphas for an image whose rim lightness is `tone`
14
- * (0 → 1). Against a dark rim the white highlight is eased off (it glares)
15
- * and the black shadow pushed up (it has to darken mid-tones to register);
16
- * against a pale rim the reverse — the highlight can be full (it barely
17
- * shows) and the shadow is what carries the emboss, so it sits lighter.
18
- * Linear between; the end points are tuned by eye on a dark and a light
19
- * photo in both themes.
20
- */
21
- export declare function bezelAlphasForTone(tone: number): {
22
- hi: number;
23
- lo: number;
24
- };
@@ -1,58 +0,0 @@
1
- "use client"
2
-
3
- import { Globe } from "lucide-react"
4
- import { cn } from "@/lib/utils"
5
- import type { IBrowserProps } from "./type"
6
- import { titleBarStyle } from "./utils"
7
-
8
- export function BrowserFrame({
9
- url,
10
- title,
11
- className,
12
- titleStyle,
13
- children,
14
- }: IBrowserProps) {
15
- return (
16
- <div
17
- className={cn(
18
- "relative flex size-full items-center justify-center",
19
- className
20
- )}
21
- >
22
- <div className="relative flex min-h-32 w-full flex-col overflow-hidden rounded-lg border border-border bg-neutral-50 shadow-lg dark:bg-neutral-900">
23
- <div
24
- id="title-bar"
25
- className={cn(
26
- "z-20 flex flex-1 items-center gap-2 px-4 py-3",
27
- titleBarStyle(titleStyle, "title")
28
- )}
29
- >
30
- <div className="flex items-center gap-2" aria-hidden="true">
31
- <span className="size-3 cursor-pointer rounded-full bg-rose-500 shadow-md outline outline-rose-800" />
32
- <span className="size-3 cursor-pointer rounded-full bg-amber-500 shadow-md outline outline-amber-800" />
33
- <span className="size-3 cursor-pointer rounded-full bg-emerald-500 shadow-md outline outline-emerald-800" />
34
- </div>
35
- {url && !title && (
36
- <div className="flex max-w-1/3 flex-1 items-center gap-1.5 rounded-sm border border-border bg-card p-1">
37
- <Globe
38
- className="size-3 shrink-0 text-muted-foreground"
39
- aria-hidden="true"
40
- />
41
- <span className="truncate font-mono text-xs text-muted-foreground">
42
- {url}
43
- </span>
44
- </div>
45
- )}
46
- {title && !url && (
47
- <div className="flex w-full flex-1 justify-center select-none">
48
- <span className="ml-2 text-sm text-foreground">{title}</span>
49
- </div>
50
- )}
51
- </div>
52
- <div className={cn("flex flex-1", titleBarStyle(titleStyle, "frame"))}>
53
- {children}
54
- </div>
55
- </div>
56
- </div>
57
- )
58
- }
@@ -1,11 +0,0 @@
1
- import type { ReactNode } from "react"
2
-
3
- export type TitleStyleType = "hidden" | "titlebar" | "expanded"
4
-
5
- export interface IBrowserProps {
6
- url?: string
7
- title?: string
8
- className?: string
9
- children: ReactNode
10
- titleStyle: TitleStyleType
11
- }
@@ -1,21 +0,0 @@
1
- import type { ClassNameValue } from "tailwind-merge"
2
- import type { TitleStyleType } from "./type"
3
-
4
- export const titleBarStyle = (
5
- style: TitleStyleType,
6
- component: "title" | "frame"
7
- ): ClassNameValue => {
8
- const titleBarClassName: Record<TitleStyleType, ClassNameValue> = {
9
- titlebar: "relative",
10
- hidden: "top-0 left-0 absolute",
11
- expanded: "relative",
12
- }
13
-
14
- const bodyClassName: Record<TitleStyleType, ClassNameValue> = {
15
- titlebar: "relative",
16
- hidden: "",
17
- expanded: "relative",
18
- }
19
-
20
- return component == "title" ? titleBarClassName[style] : bodyClassName[style]
21
- }
@@ -1,85 +0,0 @@
1
- import { describe, expect, test } from "bun:test"
2
- import { render, screen } from "@testing-library/react"
3
-
4
- import { UserAvatar, initialsFrom } from "../user-avatar"
5
-
6
- describe("initialsFrom", () => {
7
- test("takes the first and last word", () => {
8
- expect(initialsFrom("Jenny Hamilton")).toBe("JH")
9
- expect(initialsFrom("ada b lovelace")).toBe("AL")
10
- expect(initialsFrom("luna")).toBe("L")
11
- expect(initialsFrom(" ")).toBe("")
12
- })
13
- })
14
-
15
- describe("UserAvatar", () => {
16
- test("shows initials right away when there is no image", () => {
17
- const { container } = render(<UserAvatar name="Luna Wyen" />)
18
-
19
- expect(screen.getByText("LW")).toBeDefined()
20
- expect(container.querySelector('[data-slot="avatar-skeleton"]')).toBeNull()
21
- expect(container.querySelector("img")).toBeNull()
22
- })
23
-
24
- test("holds a skeleton while a passed image is still loading", () => {
25
- // happy-dom resolves every Image synchronously (complete, naturalWidth 0),
26
- // so stand in a request that never answers.
27
- const RealImage = window.Image
28
- window.Image = class {
29
- complete = false
30
- naturalWidth = 0
31
- onload: (() => void) | null = null
32
- onerror: (() => void) | null = null
33
- src = ""
34
- } as unknown as typeof window.Image
35
-
36
- try {
37
- const { container } = render(
38
- <UserAvatar name="Jenny Hamilton" src="https://example.com/j.jpg" />
39
- )
40
-
41
- expect(
42
- container.querySelector('[data-slot="avatar-skeleton"]')
43
- ).not.toBeNull()
44
- expect(screen.queryByText("JH")).toBeNull()
45
- expect(
46
- container
47
- .querySelector('[data-slot="user-avatar"]')
48
- ?.hasAttribute("data-loading")
49
- ).toBe(true)
50
- } finally {
51
- window.Image = RealImage
52
- }
53
- })
54
-
55
- test("settles on the initials when the image fails", () => {
56
- // The stubbed DOM never fetches, so every src lands in the error branch.
57
- const { container } = render(
58
- <UserAvatar name="Jenny Hamilton" src="https://example.com/missing.jpg" />
59
- )
60
-
61
- expect(screen.getByText("JH")).toBeDefined()
62
- expect(container.querySelector('[data-slot="avatar-skeleton"]')).toBeNull()
63
- })
64
-
65
- test("loading forces the skeleton over a resolvable image", () => {
66
- const { container } = render(
67
- <UserAvatar
68
- loading
69
- name="Jenny Hamilton"
70
- src="https://example.com/j.jpg"
71
- />
72
- )
73
-
74
- expect(
75
- container.querySelector('[data-slot="avatar-skeleton"]')
76
- ).not.toBeNull()
77
- expect(container.querySelector("img")).toBeNull()
78
- expect(screen.queryByText("JH")).toBeNull()
79
- })
80
-
81
- test("explicit initials win over the derived ones", () => {
82
- render(<UserAvatar initials="EX" name="Jenny Hamilton" />)
83
- expect(screen.getByText("EX")).toBeDefined()
84
- })
85
- })
@@ -1,13 +0,0 @@
1
- /**
2
- * Back-compat path. The avatar moved to `components/user-avatar/` (split
3
- * into component / atoms / hooks); this module re-exports it so existing
4
- * imports keep resolving to the one implementation. Prefer the new path.
5
- */
6
- export {
7
- UserAvatar,
8
- initialsFrom,
9
- useUserAvatar,
10
- useUserAvatarActions,
11
- useUserAvatarState,
12
- } from "@/components/user-avatar"
13
- export type { UserAvatarProps, UserPresence } from "@/components/user-avatar"
@@ -1,34 +0,0 @@
1
- import * as React from "react"
2
-
3
- import { BrowserFrame } from "@/components/beste/piece/browser-frame"
4
- import type { RegistryEntry } from "@/registry"
5
-
6
- /**
7
- * Renders an entry's lazy demo (created at registry module scope) inside a
8
- * bordered canvas. Falls back to a placeholder while the demo is not
9
- * implemented yet.
10
- */
11
- export function ComponentPreview({ entry }: { entry: RegistryEntry }) {
12
- const Demo = entry.preview
13
-
14
- return (
15
- <BrowserFrame
16
- title={entry.name}
17
- titleStyle={entry.titleStyle ?? "expanded"}
18
- >
19
- {Demo ? (
20
- <React.Suspense
21
- fallback={<p className="text-sm text-muted-foreground">Loading…</p>}
22
- >
23
- <div className="relative h-full min-h-96 w-full">
24
- <Demo />
25
- </div>
26
- </React.Suspense>
27
- ) : (
28
- <p className="text-sm text-muted-foreground">
29
- Preview coming soon ({entry.status}).
30
- </p>
31
- )}
32
- </BrowserFrame>
33
- )
34
- }
@@ -1,35 +0,0 @@
1
- import type { PropDef } from "@/registry"
2
-
3
- export function PropsTable({ props }: { props: PropDef[] }) {
4
- return (
5
- <div className="overflow-x-auto rounded-lg border">
6
- <table className="w-full text-left text-sm">
7
- <thead className="border-b bg-muted/50">
8
- <tr>
9
- <th className="p-3 font-medium">Prop</th>
10
- <th className="p-3 font-medium">Type</th>
11
- <th className="p-3 font-medium">Default</th>
12
- <th className="p-3 font-medium">Description</th>
13
- </tr>
14
- </thead>
15
- <tbody>
16
- {props.map((prop) => (
17
- <tr key={prop.name} className="border-b last:border-b-0">
18
- <td className="p-3 font-mono text-xs">
19
- {prop.name}
20
- {prop.required ? <span className="text-destructive">*</span> : null}
21
- </td>
22
- <td className="p-3 font-mono text-xs text-muted-foreground">
23
- {prop.type}
24
- </td>
25
- <td className="p-3 font-mono text-xs text-muted-foreground">
26
- {prop.default ?? "—"}
27
- </td>
28
- <td className="p-3 text-muted-foreground">{prop.description}</td>
29
- </tr>
30
- ))}
31
- </tbody>
32
- </table>
33
- </div>
34
- )
35
- }