@exegia/corpora-ui 1.0.0 → 2.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 (1107) hide show
  1. package/README.md +1 -1
  2. package/dist-lib/components/atoms/avatar/base.d.ts +2 -0
  3. package/dist-lib/components/atoms/avatar/index.d.ts +3 -0
  4. package/dist-lib/components/atoms/avatar/types.d.ts +20 -0
  5. package/dist-lib/components/atoms/avatar/utils.d.ts +13 -0
  6. package/dist-lib/components/atoms/background/texture.d.ts +2 -0
  7. package/dist-lib/components/atoms/background/type.d.ts +7 -0
  8. package/dist-lib/components/atoms/background/utils.d.ts +4 -0
  9. package/dist-lib/components/atoms/bubble/actions.d.ts +7 -0
  10. package/dist-lib/components/atoms/bubble/context.d.ts +4 -0
  11. package/dist-lib/components/atoms/bubble/default.d.ts +3 -0
  12. package/dist-lib/components/atoms/bubble/header.d.ts +8 -0
  13. package/dist-lib/components/atoms/bubble/index.d.ts +16 -0
  14. package/dist-lib/components/atoms/bubble/message.d.ts +3 -0
  15. package/dist-lib/components/atoms/bubble/reactions.d.ts +14 -0
  16. package/dist-lib/components/atoms/bubble/types.d.ts +62 -0
  17. package/dist-lib/components/atoms/bubble/utils.d.ts +13 -0
  18. package/dist-lib/components/atoms/field.d.ts +2 -0
  19. package/dist-lib/components/atoms/index.d.ts +10 -0
  20. package/dist-lib/components/atoms/loader.d.ts +2 -0
  21. package/dist-lib/components/atoms/reference.d.ts +7 -0
  22. package/dist-lib/components/atoms/text/default.d.ts +1144 -0
  23. package/dist-lib/components/atoms/text/heading.d.ts +2 -0
  24. package/dist-lib/components/atoms/text/index.d.ts +18 -0
  25. package/dist-lib/components/atoms/text/label.d.ts +2 -0
  26. package/dist-lib/components/atoms/text/paragraph.d.ts +2 -0
  27. package/dist-lib/components/atoms/text/span.d.ts +2 -0
  28. package/dist-lib/components/atoms/text/types.d.ts +27 -0
  29. package/dist-lib/components/atoms/text/utils.d.ts +4 -0
  30. package/dist-lib/components/atoms/text-selection/click-popover.d.ts +3 -0
  31. package/dist-lib/components/atoms/text-selection/index.d.ts +6 -0
  32. package/dist-lib/components/atoms/text-selection/popover.d.ts +3 -0
  33. package/dist-lib/components/atoms/text-selection/selection-atom.d.ts +30 -0
  34. package/dist-lib/components/atoms/text-selection/selection.d.ts +3 -0
  35. package/dist-lib/components/atoms/text-selection/types.d.ts +90 -0
  36. package/dist-lib/components/atoms/text-selection/use-selection.d.ts +7 -0
  37. package/dist-lib/components/atoms/types.d.ts +39 -0
  38. package/dist-lib/components/blocks/auth/auth-flow-atom.d.ts +76 -0
  39. package/dist-lib/components/blocks/auth/auth-flow-block.d.ts +41 -0
  40. package/dist-lib/components/blocks/auth/auth-session-atom.d.ts +28 -0
  41. package/dist-lib/components/blocks/auth/auth-shell.d.ts +55 -0
  42. package/dist-lib/components/blocks/auth/auth-state.d.ts +8 -0
  43. package/dist-lib/components/blocks/auth/code-auth-block.d.ts +3 -0
  44. package/dist-lib/components/blocks/auth/forgot-password-block.d.ts +3 -0
  45. package/dist-lib/components/blocks/auth/linked-accounts-block.d.ts +9 -0
  46. package/dist-lib/components/blocks/auth/login-block.d.ts +3 -0
  47. package/dist-lib/components/blocks/auth/onboarding/profile-step.d.ts +8 -0
  48. package/dist-lib/components/blocks/auth/onboarding-block.d.ts +15 -0
  49. package/dist-lib/components/blocks/auth/passkey-manager-block.d.ts +10 -0
  50. package/dist-lib/components/blocks/auth/passkey-sign-in-block.d.ts +8 -0
  51. package/dist-lib/components/blocks/auth/signup-block.d.ts +3 -0
  52. package/dist-lib/components/blocks/auth/type.d.ts +398 -0
  53. package/dist-lib/components/blocks/auth/update-password-block.d.ts +9 -0
  54. package/dist-lib/components/blocks/auth/use-auth-state.d.ts +52 -0
  55. package/dist-lib/components/blocks/chat/banners.d.ts +5 -0
  56. package/dist-lib/components/blocks/chat/base.d.ts +10 -0
  57. package/dist-lib/components/blocks/chat/header.d.ts +4 -0
  58. package/dist-lib/components/blocks/chat/index.d.ts +11 -0
  59. package/dist-lib/components/blocks/chat/recommendation-stack.d.ts +11 -0
  60. package/dist-lib/components/blocks/chat/suggested-prompts.d.ts +3 -0
  61. package/dist-lib/components/blocks/chat/type.d.ts +75 -0
  62. package/dist-lib/components/blocks/chat/version-history-record.d.ts +3 -0
  63. package/dist-lib/components/blocks/layout.d.ts +8 -0
  64. package/dist-lib/components/blocks/profile/index.d.ts +7 -0
  65. package/dist-lib/components/blocks/profile/profile-card-atom.d.ts +68 -0
  66. package/dist-lib/components/blocks/profile/profile-card-block.d.ts +66 -0
  67. package/dist-lib/components/blocks/profile/type.d.ts +80 -0
  68. package/dist-lib/components/blocks/profile/use-profile-card-state.d.ts +24 -0
  69. package/dist-lib/components/blocks/profile/use-profile-card.d.ts +34 -0
  70. package/dist-lib/components/blocks/scaffold/index.d.ts +29 -0
  71. package/dist-lib/components/blocks/scaffold/panel-close-button.d.ts +4 -0
  72. package/dist-lib/components/blocks/scaffold/panel-menu-button.d.ts +8 -0
  73. package/dist-lib/components/blocks/scaffold/scaffold-actions.d.ts +10 -0
  74. package/dist-lib/components/blocks/scaffold/scaffold-atom.d.ts +112 -0
  75. package/dist-lib/components/blocks/scaffold/scaffold-canvas.d.ts +9 -0
  76. package/dist-lib/components/blocks/scaffold/scaffold-context.d.ts +7 -0
  77. package/dist-lib/components/blocks/scaffold/scaffold-inspector.d.ts +9 -0
  78. package/dist-lib/components/blocks/scaffold/scaffold-main.d.ts +8 -0
  79. package/dist-lib/components/blocks/scaffold/scaffold-panel.d.ts +16 -0
  80. package/dist-lib/components/blocks/scaffold/scaffold-root.d.ts +17 -0
  81. package/dist-lib/components/blocks/scaffold/scaffold-sidebar.d.ts +7 -0
  82. package/dist-lib/components/blocks/scaffold/scaffold-sub-panel.d.ts +6 -0
  83. package/dist-lib/components/blocks/scaffold/scaffold-tab.d.ts +14 -0
  84. package/dist-lib/components/blocks/scaffold/type.d.ts +216 -0
  85. package/dist-lib/components/blocks/scaffold/use-scaffold-state.d.ts +26 -0
  86. package/dist-lib/components/blocks/scaffold/use-scaffold.d.ts +14 -0
  87. package/dist-lib/components/blocks/scaffold/utils.d.ts +38 -0
  88. package/dist-lib/components/blocks/shell/animated-panel-inset.d.ts +2 -0
  89. package/dist-lib/components/blocks/shell/animated-panel-provider.d.ts +2 -0
  90. package/dist-lib/components/blocks/shell/animated-panel-trigger.d.ts +2 -0
  91. package/dist-lib/components/blocks/shell/animated-panel.d.ts +2 -0
  92. package/dist-lib/components/blocks/shell/shell-fit-atom.d.ts +68 -0
  93. package/dist-lib/components/blocks/shell/shell-layout.d.ts +3 -0
  94. package/dist-lib/components/blocks/shell/shell-metrics.d.ts +72 -0
  95. package/dist-lib/components/blocks/shell/shell-panel-atom.d.ts +40 -0
  96. package/dist-lib/components/blocks/shell/type.d.ts +301 -0
  97. package/dist-lib/components/blocks/shell/use-shell-fit-state.d.ts +25 -0
  98. package/dist-lib/components/blocks/shell/use-shell-fit.d.ts +13 -0
  99. package/dist-lib/components/blocks/shell/use-shell-panels.d.ts +20 -0
  100. package/dist-lib/components/blocks/shell/utils.d.ts +72 -0
  101. package/dist-lib/components/blocks/sidebar/ai-sidebar-atom.d.ts +217 -0
  102. package/dist-lib/components/blocks/sidebar/ai-sidebar.d.ts +11 -0
  103. package/dist-lib/components/blocks/sidebar/index.d.ts +15 -0
  104. package/dist-lib/components/blocks/sidebar/sidebar-context.d.ts +3 -0
  105. package/dist-lib/components/blocks/sidebar/sidebar-icon.d.ts +2 -0
  106. package/dist-lib/components/blocks/sidebar/sidebar-row.d.ts +4 -0
  107. package/dist-lib/components/blocks/sidebar/type.d.ts +245 -0
  108. package/dist-lib/components/blocks/sidebar/use-ai-sidebar-state.d.ts +29 -0
  109. package/dist-lib/components/blocks/sidebar/use-ai-sidebar.d.ts +27 -0
  110. package/dist-lib/components/blocks/sidebar/utils.d.ts +21 -0
  111. package/dist-lib/components/blocks/types.d.ts +6 -0
  112. package/dist-lib/components/composed/action-bar/action.d.ts +18 -0
  113. package/dist-lib/components/composed/action-bar/emojis.d.ts +10 -0
  114. package/dist-lib/components/composed/action-bar/index.d.ts +12 -0
  115. package/dist-lib/components/composed/action-bar/toolbar.d.ts +2 -0
  116. package/dist-lib/components/composed/action-bar/types.d.ts +55 -0
  117. package/dist-lib/components/composed/action-bar/utils.d.ts +56 -0
  118. package/dist-lib/components/composed/ai/index.d.ts +17 -0
  119. package/dist-lib/components/composed/ai/message.d.ts +7 -0
  120. package/dist-lib/components/composed/ai/research-answer.d.ts +30 -0
  121. package/dist-lib/components/composed/ai/streaming-text.d.ts +26 -0
  122. package/dist-lib/components/composed/ai/suggested-prompt.d.ts +35 -0
  123. package/dist-lib/components/composed/ai/types.d.ts +68 -0
  124. package/dist-lib/components/composed/chat/attachment-file.d.ts +17 -0
  125. package/dist-lib/components/composed/chat/attachment.d.ts +60 -0
  126. package/dist-lib/components/composed/chat/chart.d.ts +44 -0
  127. package/dist-lib/components/composed/chat/code-block.d.ts +26 -0
  128. package/dist-lib/components/composed/chat/composer/add-button.d.ts +5 -0
  129. package/dist-lib/components/composed/chat/composer/base.d.ts +5 -0
  130. package/dist-lib/components/composed/chat/composer/command-menu.d.ts +3 -0
  131. package/dist-lib/components/composed/chat/composer/hooks.d.ts +9 -0
  132. package/dist-lib/components/composed/chat/composer/send-button.d.ts +3 -0
  133. package/dist-lib/components/composed/chat/composer/suggestions.d.ts +7 -0
  134. package/dist-lib/components/composed/chat/composer/use-dictation.d.ts +8 -0
  135. package/dist-lib/components/composed/chat/composer/utils.d.ts +19 -0
  136. package/dist-lib/components/composed/chat/context-cards.d.ts +27 -0
  137. package/dist-lib/components/composed/chat/filter-table.d.ts +40 -0
  138. package/dist-lib/components/composed/chat/flowchart/chart-node.d.ts +2 -0
  139. package/dist-lib/components/composed/chat/flowchart/connector.d.ts +2 -0
  140. package/dist-lib/components/composed/chat/flowchart/default.d.ts +7 -0
  141. package/dist-lib/components/composed/chat/flowchart/edge-toolbar.d.ts +9 -0
  142. package/dist-lib/components/composed/chat/flowchart/hooks.d.ts +290 -0
  143. package/dist-lib/components/composed/chat/flowchart/step-body.d.ts +6 -0
  144. package/dist-lib/components/composed/chat/flowchart/types.d.ts +91 -0
  145. package/dist-lib/components/composed/chat/flowchart/utils.d.ts +64 -0
  146. package/dist-lib/components/composed/chat/index.d.ts +15 -0
  147. package/dist-lib/components/composed/chat/insight-cards.d.ts +54 -0
  148. package/dist-lib/components/composed/chat/markdown-atom.d.ts +7 -0
  149. package/dist-lib/components/composed/chat/markdown.d.ts +22 -0
  150. package/dist-lib/components/composed/chat/recommendation/checkbox.d.ts +9 -0
  151. package/dist-lib/components/composed/chat/recommendation/constant.d.ts +52 -0
  152. package/dist-lib/components/composed/chat/recommendation/default.d.ts +7 -0
  153. package/dist-lib/components/composed/chat/recommendation/group.d.ts +7 -0
  154. package/dist-lib/components/composed/chat/recommendation/index.d.ts +13 -0
  155. package/dist-lib/components/composed/chat/recommendation/item.d.ts +12 -0
  156. package/dist-lib/components/composed/chat/recommendation/types.d.ts +62 -0
  157. package/dist-lib/components/composed/chat/records-table.d.ts +40 -0
  158. package/dist-lib/components/composed/chat/type.d.ts +117 -0
  159. package/dist-lib/components/composed/logo.d.ts +34 -0
  160. package/dist-lib/components/composed/password-input.d.ts +30 -0
  161. package/dist-lib/components/composed/reader/applied-mark.d.ts +3 -0
  162. package/dist-lib/components/composed/reader/apply-toast.d.ts +3 -0
  163. package/dist-lib/components/composed/reader/selection-highlight.d.ts +3 -0
  164. package/dist-lib/components/composed/reader/selection-popover.d.ts +9 -0
  165. package/dist-lib/components/composed/reader/type.d.ts +40 -0
  166. package/dist-lib/components/composed/social-providers.d.ts +39 -0
  167. package/dist-lib/components/composed/tree/index.d.ts +6 -0
  168. package/dist-lib/components/composed/tree/tree-atom.d.ts +160 -0
  169. package/dist-lib/components/composed/tree/tree-context.d.ts +4 -0
  170. package/dist-lib/components/composed/tree/tree-node.d.ts +12 -0
  171. package/dist-lib/components/composed/tree/tree.d.ts +19 -0
  172. package/dist-lib/components/composed/tree/type.d.ts +290 -0
  173. package/dist-lib/components/composed/tree/use-tree-dnd.d.ts +18 -0
  174. package/dist-lib/components/composed/tree/use-tree-state.d.ts +25 -0
  175. package/dist-lib/components/composed/tree/use-tree.d.ts +24 -0
  176. package/dist-lib/components/composed/tree/utils.d.ts +28 -0
  177. package/dist-lib/components/composed/types.d.ts +7 -0
  178. package/dist-lib/components/composed/user/index.d.ts +11 -0
  179. package/dist-lib/components/composed/user/info.d.ts +12 -0
  180. package/dist-lib/components/composed/user/message.d.ts +2 -0
  181. package/dist-lib/components/composed/user/pill.d.ts +10 -0
  182. package/dist-lib/components/composed/user/types.d.ts +27 -0
  183. package/dist-lib/components/composed/verse/index.d.ts +2 -0
  184. package/dist-lib/components/composed/verse/types.d.ts +18 -0
  185. package/dist-lib/components/composed/verse/verse.d.ts +5 -0
  186. package/dist-lib/components/docs/atoms-gallery.d.ts +12 -0
  187. package/dist-lib/components/docs/block-demo-stage.d.ts +7 -0
  188. package/dist-lib/components/docs/blocks-gallery.d.ts +2 -0
  189. package/dist-lib/components/docs/browser.d.ts +10 -0
  190. package/dist-lib/components/docs/components-gallery.d.ts +2 -0
  191. package/dist-lib/components/docs/demo-controls.d.ts +21 -0
  192. package/dist-lib/components/icons/__tests__/icons.test.d.ts +1 -0
  193. package/dist-lib/components/icons/file-badge-cfm.d.ts +7 -0
  194. package/dist-lib/components/icons/file-badge-corpus.d.ts +7 -0
  195. package/dist-lib/components/icons/file-badge-pdf.d.ts +7 -0
  196. package/dist-lib/components/icons/file-badge-tei.d.ts +7 -0
  197. package/dist-lib/components/icons/file-badge-tf.d.ts +7 -0
  198. package/dist-lib/components/icons/file-badge-txt.d.ts +7 -0
  199. package/dist-lib/components/icons/file-badge-xml.d.ts +7 -0
  200. package/dist-lib/components/icons/file-wordmark-cfm.d.ts +7 -0
  201. package/dist-lib/components/icons/file-wordmark-corpus.d.ts +7 -0
  202. package/dist-lib/components/icons/file-wordmark-pdf.d.ts +7 -0
  203. package/dist-lib/components/icons/file-wordmark-tei.d.ts +7 -0
  204. package/dist-lib/components/icons/file-wordmark-tf.d.ts +7 -0
  205. package/dist-lib/components/icons/file-wordmark-txt.d.ts +7 -0
  206. package/dist-lib/components/icons/file-wordmark-xml.d.ts +7 -0
  207. package/dist-lib/components/icons/index.d.ts +15 -0
  208. package/dist-lib/components/icons/types.d.ts +7 -0
  209. package/dist-lib/components/motion/index.d.ts +1 -0
  210. package/dist-lib/components/motion/overflow-actions.d.ts +35 -0
  211. package/dist-lib/components/motion/popover-morph.d.ts +35 -0
  212. package/dist-lib/components/motion/popover-position.d.ts +15 -0
  213. package/dist-lib/components/motion/shared-layout-bg.d.ts +13 -0
  214. package/dist-lib/components/stories/attachment.story.d.ts +11 -0
  215. package/dist-lib/components/stories/auth-flow-block.story.d.ts +2 -0
  216. package/dist-lib/components/stories/avatar.story.d.ts +6 -0
  217. package/dist-lib/components/stories/base.story.d.ts +6 -0
  218. package/dist-lib/components/stories/bubble.story.d.ts +6 -0
  219. package/dist-lib/components/stories/button.story.d.ts +9 -0
  220. package/dist-lib/components/stories/card.story.d.ts +8 -0
  221. package/dist-lib/components/stories/chart.story.d.ts +34 -0
  222. package/dist-lib/components/stories/checkbox.story.d.ts +6 -0
  223. package/dist-lib/components/stories/code-auth-block.story.d.ts +2 -0
  224. package/dist-lib/components/stories/code-block.story.d.ts +12 -0
  225. package/dist-lib/components/stories/composed-password-input.story.d.ts +6 -0
  226. package/dist-lib/components/stories/context-cards.story.d.ts +3 -0
  227. package/dist-lib/components/stories/emoji-action-bar.story.d.ts +3 -0
  228. package/dist-lib/components/stories/field.story.d.ts +6 -0
  229. package/dist-lib/components/stories/file-icons.story.d.ts +5 -0
  230. package/dist-lib/components/stories/filter-table.story.d.ts +21 -0
  231. package/dist-lib/components/stories/flowchart.story.d.ts +3 -0
  232. package/dist-lib/components/stories/forgot-password-block.story.d.ts +2 -0
  233. package/dist-lib/components/stories/frame.story.d.ts +8 -0
  234. package/dist-lib/components/stories/index.d.ts +54 -0
  235. package/dist-lib/components/stories/input-group.story.d.ts +6 -0
  236. package/dist-lib/components/stories/input.story.d.ts +8 -0
  237. package/dist-lib/components/stories/insight-cards.story.d.ts +45 -0
  238. package/dist-lib/components/stories/label.story.d.ts +8 -0
  239. package/dist-lib/components/stories/linked-accounts-block.story.d.ts +2 -0
  240. package/dist-lib/components/stories/login-block.story.d.ts +2 -0
  241. package/dist-lib/components/stories/logo.story.d.ts +3 -0
  242. package/dist-lib/components/stories/markdown.story.d.ts +7 -0
  243. package/dist-lib/components/stories/menu-command.story.d.ts +13 -0
  244. package/dist-lib/components/stories/onboarding-block.story.d.ts +2 -0
  245. package/dist-lib/components/stories/otp-field.story.d.ts +8 -0
  246. package/dist-lib/components/stories/passkey-manager-block.story.d.ts +2 -0
  247. package/dist-lib/components/stories/passkey-sign-in-block.story.d.ts +2 -0
  248. package/dist-lib/components/stories/password-input.story.d.ts +9 -0
  249. package/dist-lib/components/stories/profile-card-block.story.d.ts +6 -0
  250. package/dist-lib/components/stories/recommendation-card.story.d.ts +3 -0
  251. package/dist-lib/components/stories/records-table.story.d.ts +23 -0
  252. package/dist-lib/components/stories/reference.story.d.ts +9 -0
  253. package/dist-lib/components/stories/research-answer.story.d.ts +10 -0
  254. package/dist-lib/components/stories/scaffold-root.story.d.ts +6 -0
  255. package/dist-lib/components/stories/separator.story.d.ts +6 -0
  256. package/dist-lib/components/stories/shell-layout.story.d.ts +2 -0
  257. package/dist-lib/components/stories/signup-block.story.d.ts +2 -0
  258. package/dist-lib/components/stories/social-providers.story.d.ts +3 -0
  259. package/dist-lib/components/stories/streaming-text.story.d.ts +3 -0
  260. package/dist-lib/components/stories/text.story.d.ts +8 -0
  261. package/dist-lib/components/stories/textarea.story.d.ts +6 -0
  262. package/dist-lib/components/stories/tree.story.d.ts +4 -0
  263. package/dist-lib/components/stories/update-password-block.story.d.ts +2 -0
  264. package/dist-lib/components/stories/user.story.d.ts +8 -0
  265. package/dist-lib/components/stories/verse.story.d.ts +6 -0
  266. package/dist-lib/components/theme-provider.d.ts +15 -0
  267. package/dist-lib/components/types.d.ts +11 -0
  268. package/dist-lib/components/ui/badge.d.ts +14 -0
  269. package/dist-lib/components/ui/button.d.ts +28 -0
  270. package/dist-lib/components/ui/chat/__tests__/segmented-toggle.test.d.ts +1 -0
  271. package/dist-lib/components/ui/chat/avatar-handle.d.ts +13 -0
  272. package/dist-lib/components/ui/chat/badges.d.ts +29 -0
  273. package/dist-lib/components/ui/chat/buttons.d.ts +29 -0
  274. package/dist-lib/components/ui/chat/chips.d.ts +48 -0
  275. package/dist-lib/components/ui/chat/dot.d.ts +30 -0
  276. package/dist-lib/components/ui/chat/icon-button.d.ts +18 -0
  277. package/dist-lib/components/ui/chat/icon-tile.d.ts +20 -0
  278. package/dist-lib/components/ui/chat/index.d.ts +12 -0
  279. package/dist-lib/components/ui/chat/inline-source.d.ts +20 -0
  280. package/dist-lib/components/ui/chat/segmented-toggle.d.ts +20 -0
  281. package/dist-lib/components/ui/chat/tag.d.ts +21 -0
  282. package/dist-lib/components/ui/chat/thumbnail.d.ts +13 -0
  283. package/dist-lib/components/ui/chat/waveform.d.ts +13 -0
  284. package/dist-lib/components/ui/glasscn/glass-button-group.d.ts +7 -0
  285. package/dist-lib/components/ui/glasscn/glass-button.d.ts +6 -0
  286. package/dist-lib/components/ui/glasscn/glass-container.d.ts +8 -0
  287. package/dist-lib/components/ui/glasscn/glass-separator.d.ts +5 -0
  288. package/dist-lib/components/ui/glasscn/liquid-glass.d.ts +29 -0
  289. package/dist-lib/components/ui/input-group.d.ts +13 -0
  290. package/dist-lib/components/ui/input.d.ts +9 -0
  291. package/dist-lib/components/ui/menu-command.d.ts +36 -0
  292. package/dist-lib/components/ui/popover-glass.d.ts +32 -0
  293. package/dist-lib/components/ui/select.d.ts +30 -0
  294. package/dist-lib/components/ui/tabs.d.ts +15 -0
  295. package/dist-lib/components/ui/textarea.d.ts +8 -0
  296. package/dist-lib/components/ui/toast.d.ts +15 -0
  297. package/dist-lib/index.d.ts +65 -0
  298. package/dist-lib/index.js +6911 -5932
  299. package/dist-lib/index.js.map +1 -1
  300. package/dist-lib/lib/attachment-content.d.ts +4 -0
  301. package/dist-lib/lib/auth-accent.d.ts +33 -0
  302. package/dist-lib/lib/glass-variants.d.ts +9 -0
  303. package/dist-lib/lib/keyed-atom.d.ts +14 -0
  304. package/dist-lib/lib/segmented-control.d.ts +8 -0
  305. package/dist-lib/lib/specular.d.ts +12 -0
  306. package/dist-lib/lib/state/__tests__/sound.test.d.ts +1 -0
  307. package/dist-lib/lib/state/exegia-provider.d.ts +51 -0
  308. package/dist-lib/lib/state/index.d.ts +4 -0
  309. package/dist-lib/lib/state/store.d.ts +17 -0
  310. package/dist-lib/lib/use-motion-panel.d.ts +9 -0
  311. package/dist-lib/lib/utils.test.d.ts +1 -0
  312. package/package.json +5 -1
  313. package/src/components/atoms/avatar/base.tsx +3 -3
  314. package/src/components/atoms/avatar/index.ts +8 -1
  315. package/src/components/atoms/avatar/types.ts +9 -9
  316. package/src/components/atoms/avatar/utils.ts +6 -6
  317. package/src/components/atoms/background/texture.tsx +2 -2
  318. package/src/components/atoms/background/type.ts +3 -3
  319. package/src/components/atoms/background/utils.ts +2 -2
  320. package/src/components/atoms/bubble/__tests__/bubble.test.tsx +59 -4
  321. package/src/components/atoms/bubble/actions.tsx +2 -2
  322. package/src/components/atoms/bubble/context.ts +3 -3
  323. package/src/components/atoms/bubble/default.tsx +2 -2
  324. package/src/components/atoms/bubble/header.tsx +6 -4
  325. package/src/components/atoms/bubble/index.ts +9 -9
  326. package/src/components/atoms/bubble/message.tsx +12 -5
  327. package/src/components/atoms/bubble/reactions.tsx +11 -14
  328. package/src/components/atoms/bubble/types.ts +21 -18
  329. package/src/components/atoms/bubble/utils.ts +10 -10
  330. package/src/components/atoms/field.tsx +43 -0
  331. package/src/components/atoms/index.ts +0 -26
  332. package/src/components/atoms/loader.tsx +2 -11
  333. package/src/components/atoms/reference.tsx +2 -2
  334. package/src/components/atoms/text/default.tsx +5 -5
  335. package/src/components/atoms/text/heading.tsx +2 -5
  336. package/src/components/atoms/text/index.ts +8 -4
  337. package/src/components/atoms/text/label.tsx +2 -2
  338. package/src/components/atoms/text/paragraph.tsx +2 -5
  339. package/src/components/atoms/text/span.tsx +2 -3
  340. package/src/components/atoms/text/types.ts +18 -8
  341. package/src/components/atoms/text/utils.ts +2 -2
  342. package/src/components/atoms/text-selection/click-popover.tsx +3 -3
  343. package/src/components/atoms/text-selection/index.ts +12 -12
  344. package/src/components/atoms/text-selection/popover.tsx +7 -4
  345. package/src/components/atoms/text-selection/selection-atom.ts +7 -7
  346. package/src/components/atoms/text-selection/selection.tsx +2 -2
  347. package/src/components/atoms/text-selection/types.ts +24 -24
  348. package/src/components/atoms/text-selection/use-selection.ts +3 -3
  349. package/src/components/atoms/types.ts +30 -2
  350. package/src/components/blocks/auth/__tests__/auth-flow-block.test.tsx +4 -4
  351. package/src/components/blocks/auth/__tests__/auth-state-atom.test.tsx +2 -2
  352. package/src/components/blocks/auth/__tests__/linked-accounts-block.test.tsx +2 -2
  353. package/src/components/blocks/auth/__tests__/onboarding-block.test.tsx +39 -12
  354. package/src/components/blocks/auth/__tests__/passkey-manager-block.test.tsx +4 -4
  355. package/src/components/blocks/auth/auth-flow-atom.ts +27 -27
  356. package/src/components/blocks/auth/auth-flow-block.tsx +8 -93
  357. package/src/components/blocks/auth/auth-session-atom.ts +9 -9
  358. package/src/components/blocks/auth/auth-shell.tsx +2 -3
  359. package/src/components/blocks/auth/auth-state.ts +0 -12
  360. package/src/components/blocks/auth/code-auth-block.tsx +16 -30
  361. package/src/components/blocks/auth/forgot-password-block.tsx +4 -15
  362. package/src/components/blocks/auth/linked-accounts-block.tsx +10 -36
  363. package/src/components/blocks/auth/login-block.tsx +7 -29
  364. package/src/components/blocks/auth/onboarding/profile-step.tsx +14 -25
  365. package/src/components/blocks/auth/onboarding-block.tsx +39 -96
  366. package/src/components/blocks/auth/passkey-manager-block.tsx +8 -33
  367. package/src/components/blocks/auth/passkey-sign-in-block.tsx +6 -20
  368. package/src/components/blocks/auth/signup-block.tsx +7 -44
  369. package/src/components/blocks/auth/type.ts +436 -0
  370. package/src/components/blocks/auth/update-password-block.tsx +4 -22
  371. package/src/components/blocks/auth/use-auth-state.ts +12 -12
  372. package/src/components/blocks/chat/__tests__/ai-panel.test.tsx +2 -2
  373. package/src/components/blocks/chat/banners.tsx +5 -13
  374. package/src/components/blocks/chat/base.tsx +2 -2
  375. package/src/components/blocks/chat/header.tsx +2 -2
  376. package/src/components/blocks/chat/index.ts +17 -19
  377. package/src/components/blocks/chat/recommendation-stack.tsx +4 -6
  378. package/src/components/blocks/chat/suggested-prompts.tsx +2 -2
  379. package/src/components/blocks/chat/type.ts +96 -0
  380. package/src/components/blocks/chat/version-history-record.tsx +2 -2
  381. package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +6 -6
  382. package/src/components/blocks/profile/index.ts +2 -2
  383. package/src/components/blocks/profile/profile-card-atom.ts +29 -29
  384. package/src/components/blocks/profile/profile-card-block.tsx +30 -30
  385. package/src/components/blocks/profile/type.ts +17 -17
  386. package/src/components/blocks/profile/use-profile-card-state.ts +7 -7
  387. package/src/components/blocks/profile/use-profile-card.ts +18 -18
  388. package/src/components/blocks/scaffold/__tests__/scaffold-atom.test.tsx +28 -2
  389. package/src/components/blocks/scaffold/__tests__/scaffold.test.tsx +90 -11
  390. package/src/components/blocks/scaffold/index.ts +4 -0
  391. package/src/components/blocks/scaffold/panel-close-button.tsx +2 -2
  392. package/src/components/blocks/scaffold/panel-menu-button.tsx +2 -2
  393. package/src/components/blocks/scaffold/scaffold-actions.tsx +2 -2
  394. package/src/components/blocks/scaffold/scaffold-atom.ts +76 -32
  395. package/src/components/blocks/scaffold/scaffold-canvas.tsx +89 -10
  396. package/src/components/blocks/scaffold/scaffold-context.ts +3 -3
  397. package/src/components/blocks/scaffold/scaffold-inspector.tsx +56 -7
  398. package/src/components/blocks/scaffold/scaffold-main.tsx +2 -2
  399. package/src/components/blocks/scaffold/scaffold-panel.tsx +119 -71
  400. package/src/components/blocks/scaffold/scaffold-root.tsx +14 -12
  401. package/src/components/blocks/scaffold/scaffold-sidebar.tsx +2 -2
  402. package/src/components/blocks/scaffold/scaffold-sub-panel.tsx +82 -13
  403. package/src/components/blocks/scaffold/scaffold-tab.tsx +2 -2
  404. package/src/components/blocks/scaffold/type.ts +46 -28
  405. package/src/components/blocks/scaffold/use-scaffold-state.ts +35 -8
  406. package/src/components/blocks/scaffold/use-scaffold.ts +3 -3
  407. package/src/components/blocks/scaffold/utils.ts +9 -6
  408. package/src/components/blocks/shell/__tests__/shell-fit-atom.test.tsx +7 -5
  409. package/src/components/blocks/shell/__tests__/shell-layout.test.tsx +154 -9
  410. package/src/components/blocks/shell/__tests__/shell-metrics.test.ts +56 -10
  411. package/src/components/blocks/shell/animated-panel-inset.tsx +9 -9
  412. package/src/components/blocks/shell/animated-panel-provider.tsx +76 -30
  413. package/src/components/blocks/shell/animated-panel-trigger.tsx +10 -5
  414. package/src/components/blocks/shell/animated-panel.tsx +76 -128
  415. package/src/components/blocks/shell/shell-fit-atom.ts +29 -26
  416. package/src/components/blocks/shell/shell-layout.tsx +29 -13
  417. package/src/components/blocks/shell/shell-metrics.ts +69 -15
  418. package/src/components/blocks/shell/shell-panel-atom.ts +74 -0
  419. package/src/components/blocks/shell/type.ts +78 -69
  420. package/src/components/blocks/shell/use-shell-fit-state.ts +4 -4
  421. package/src/components/blocks/shell/use-shell-fit.ts +52 -34
  422. package/src/components/blocks/shell/use-shell-panels.ts +32 -66
  423. package/src/components/blocks/shell/utils.ts +8 -4
  424. package/src/components/blocks/sidebar/__tests__/ai-sidebar-atom.test.tsx +325 -0
  425. package/src/components/blocks/sidebar/__tests__/ai-sidebar.test.tsx +93 -0
  426. package/src/components/blocks/sidebar/__tests__/use-ai-sidebar.test.tsx +310 -0
  427. package/src/components/blocks/sidebar/ai-sidebar-atom.ts +698 -0
  428. package/src/components/blocks/sidebar/ai-sidebar.tsx +150 -0
  429. package/src/components/blocks/sidebar/index.ts +67 -0
  430. package/src/components/blocks/sidebar/sidebar-context.ts +15 -0
  431. package/src/components/blocks/sidebar/sidebar-icon.tsx +14 -0
  432. package/src/components/blocks/sidebar/sidebar-row.tsx +378 -0
  433. package/src/components/blocks/sidebar/type.ts +294 -0
  434. package/src/components/blocks/sidebar/use-ai-sidebar-state.ts +123 -0
  435. package/src/components/blocks/sidebar/use-ai-sidebar.ts +619 -0
  436. package/src/components/blocks/sidebar/utils.ts +170 -0
  437. package/src/components/blocks/types.ts +6 -0
  438. package/src/components/composed/action-bar/__tests__/action-bar.test.tsx +43 -14
  439. package/src/components/composed/action-bar/action.tsx +9 -12
  440. package/src/components/composed/action-bar/emojis.tsx +4 -4
  441. package/src/components/composed/action-bar/index.ts +8 -8
  442. package/src/components/composed/action-bar/toolbar.tsx +36 -30
  443. package/src/components/composed/action-bar/types.ts +14 -14
  444. package/src/components/composed/action-bar/utils.ts +17 -18
  445. package/src/components/composed/ai/__tests__/ai.test.tsx +3 -4
  446. package/src/components/composed/ai/avatar.tsx +4 -5
  447. package/src/components/composed/ai/index.ts +7 -7
  448. package/src/components/composed/ai/message.tsx +7 -7
  449. package/src/components/composed/ai/research-answer.tsx +7 -7
  450. package/src/components/composed/ai/streaming-text.tsx +5 -5
  451. package/src/components/composed/ai/suggested-prompt.tsx +4 -4
  452. package/src/components/composed/ai/types.ts +30 -30
  453. package/src/components/composed/chat/__tests__/attachment.test.tsx +182 -9
  454. package/src/components/composed/chat/__tests__/chart.test.tsx +40 -7
  455. package/src/components/composed/chat/__tests__/composer-attachments.test.tsx +51 -3
  456. package/src/components/composed/chat/__tests__/composer.test.tsx +173 -6
  457. package/src/components/composed/chat/__tests__/flowchart.test.tsx +15 -2
  458. package/src/components/composed/chat/__tests__/glass-material.test.tsx +54 -0
  459. package/src/components/composed/chat/__tests__/menu-command.test.tsx +35 -0
  460. package/src/components/composed/chat/__tests__/recommendation.test.tsx +43 -0
  461. package/src/components/composed/chat/attachment-file.ts +82 -0
  462. package/src/components/composed/chat/attachment.tsx +387 -117
  463. package/src/components/composed/chat/chart.tsx +265 -57
  464. package/src/components/composed/chat/code-block.tsx +5 -5
  465. package/src/components/composed/chat/composer/BEAUTIFUL-UI-LICENSE.txt +23 -0
  466. package/src/components/composed/chat/composer/add-button.tsx +24 -17
  467. package/src/components/composed/chat/composer/base.tsx +503 -178
  468. package/src/components/composed/chat/composer/command-menu.tsx +31 -26
  469. package/src/components/composed/chat/composer/hooks.ts +3 -3
  470. package/src/components/composed/chat/composer/send-button.tsx +20 -28
  471. package/src/components/composed/chat/composer/suggestions.tsx +2 -2
  472. package/src/components/composed/chat/composer/use-dictation.ts +123 -0
  473. package/src/components/composed/chat/composer/utils.ts +4 -4
  474. package/src/components/composed/chat/context-cards.tsx +5 -5
  475. package/src/components/composed/chat/filter-table.tsx +8 -8
  476. package/src/components/composed/chat/flowchart/chart-node.tsx +2 -2
  477. package/src/components/composed/chat/flowchart/connector.tsx +2 -2
  478. package/src/components/composed/chat/flowchart/default.tsx +3 -3
  479. package/src/components/composed/chat/flowchart/edge-toolbar.tsx +5 -5
  480. package/src/components/composed/chat/flowchart/hooks.tsx +28 -26
  481. package/src/components/composed/chat/flowchart/step-body.tsx +2 -2
  482. package/src/components/composed/chat/flowchart/types.ts +14 -14
  483. package/src/components/composed/chat/flowchart/utils.ts +15 -15
  484. package/src/components/composed/chat/index.ts +38 -36
  485. package/src/components/composed/chat/insight-cards.tsx +17 -17
  486. package/src/components/composed/chat/markdown-atom.ts +2 -2
  487. package/src/components/composed/chat/markdown.tsx +10 -10
  488. package/src/components/composed/chat/recommendation/checkbox.tsx +3 -14
  489. package/src/components/composed/chat/recommendation/constant.ts +35 -6
  490. package/src/components/composed/chat/recommendation/default.tsx +2 -2
  491. package/src/components/composed/chat/recommendation/group.tsx +4 -11
  492. package/src/components/composed/chat/recommendation/index.ts +0 -2
  493. package/src/components/composed/chat/recommendation/item.tsx +35 -64
  494. package/src/components/composed/chat/recommendation/types.ts +26 -15
  495. package/src/components/composed/chat/records-table.tsx +20 -18
  496. package/src/components/composed/chat/type.ts +56 -25
  497. package/src/components/composed/logo.tsx +4 -4
  498. package/src/components/composed/password-input.tsx +2 -2
  499. package/src/components/composed/reader/applied-mark.tsx +2 -2
  500. package/src/components/composed/reader/apply-toast.tsx +2 -2
  501. package/src/components/composed/reader/selection-highlight.tsx +2 -2
  502. package/src/components/composed/reader/selection-popover.tsx +2 -2
  503. package/src/components/composed/reader/type.ts +8 -8
  504. package/src/components/composed/social-providers.tsx +26 -18
  505. package/src/components/composed/tree/CLAUDE.md +3 -3
  506. package/src/components/composed/tree/__tests__/tree-atom.test.tsx +8 -8
  507. package/src/components/composed/tree/__tests__/tree.test.tsx +10 -10
  508. package/src/components/composed/tree/__tests__/use-tree.test.tsx +10 -10
  509. package/src/components/composed/tree/index.ts +12 -12
  510. package/src/components/composed/tree/tree-atom.ts +46 -46
  511. package/src/components/composed/tree/tree-context.ts +3 -3
  512. package/src/components/composed/tree/tree-node.tsx +7 -7
  513. package/src/components/composed/tree/tree.tsx +13 -13
  514. package/src/components/composed/tree/type.ts +56 -56
  515. package/src/components/composed/tree/use-tree-dnd.ts +10 -10
  516. package/src/components/composed/tree/use-tree-state.ts +3 -3
  517. package/src/components/composed/tree/use-tree.ts +10 -10
  518. package/src/components/composed/tree/utils.ts +21 -21
  519. package/src/components/composed/types.ts +9 -0
  520. package/src/components/composed/user/__tests__/message.test.tsx +79 -0
  521. package/src/components/composed/user/index.ts +2 -2
  522. package/src/components/composed/user/info.tsx +15 -7
  523. package/src/components/composed/user/message.tsx +33 -7
  524. package/src/components/composed/user/pill.tsx +3 -3
  525. package/src/components/composed/user/types.ts +34 -14
  526. package/src/components/composed/verse/index.ts +1 -1
  527. package/src/components/composed/verse/types.ts +8 -8
  528. package/src/components/composed/verse/verse.tsx +6 -6
  529. package/src/components/docs/atoms-gallery.tsx +45 -45
  530. package/src/components/docs/block-demo-stage.tsx +38 -0
  531. package/src/components/docs/blocks-gallery.tsx +224 -0
  532. package/src/components/docs/browser.tsx +87 -0
  533. package/src/components/docs/components-gallery.tsx +182 -0
  534. package/src/components/docs/demo-controls.tsx +6 -7
  535. package/src/components/docs/hero.tsx +2 -3
  536. package/src/components/icons/file-badge-cfm.tsx +2 -2
  537. package/src/components/icons/file-badge-corpus.tsx +2 -2
  538. package/src/components/icons/file-badge-pdf.tsx +2 -2
  539. package/src/components/icons/file-badge-tei.tsx +2 -2
  540. package/src/components/icons/file-badge-tf.tsx +2 -2
  541. package/src/components/icons/file-badge-txt.tsx +2 -2
  542. package/src/components/icons/file-badge-xml.tsx +2 -2
  543. package/src/components/icons/file-wordmark-cfm.tsx +2 -2
  544. package/src/components/icons/file-wordmark-corpus.tsx +2 -2
  545. package/src/components/icons/file-wordmark-pdf.tsx +2 -2
  546. package/src/components/icons/file-wordmark-tei.tsx +2 -2
  547. package/src/components/icons/file-wordmark-tf.tsx +2 -2
  548. package/src/components/icons/file-wordmark-txt.tsx +2 -2
  549. package/src/components/icons/file-wordmark-xml.tsx +2 -2
  550. package/src/components/icons/index.ts +1 -1
  551. package/src/components/icons/types.ts +1 -1
  552. package/src/components/motion/overflow-actions.tsx +19 -19
  553. package/src/components/motion/popover-morph.tsx +15 -15
  554. package/src/components/motion/popover-position.ts +4 -4
  555. package/src/components/motion/shared-layout-bg.tsx +2 -2
  556. package/src/components/stories/attachment.story.tsx +40 -0
  557. package/src/components/stories/auth-flow-block.story.tsx +17 -0
  558. package/src/components/stories/avatar.story.tsx +33 -0
  559. package/src/components/stories/base.story.tsx +70 -0
  560. package/src/components/stories/bubble.story.tsx +61 -0
  561. package/src/components/stories/button.story.tsx +32 -0
  562. package/src/components/stories/card.story.tsx +36 -0
  563. package/src/components/stories/chart.story.tsx +54 -0
  564. package/src/components/stories/checkbox.story.tsx +30 -0
  565. package/src/components/stories/code-auth-block.story.tsx +20 -0
  566. package/src/components/stories/code-block.story.tsx +35 -0
  567. package/src/components/stories/composed-password-input.story.tsx +41 -0
  568. package/src/components/stories/context-cards.story.tsx +30 -0
  569. package/src/components/stories/emoji-action-bar.story.tsx +20 -0
  570. package/src/components/stories/field.story.tsx +32 -0
  571. package/src/components/stories/file-icons.story.tsx +20 -0
  572. package/src/components/stories/filter-table.story.tsx +63 -0
  573. package/src/components/stories/flowchart.story.tsx +25 -0
  574. package/src/components/stories/forgot-password-block.story.tsx +14 -0
  575. package/src/components/stories/frame.story.tsx +32 -0
  576. package/src/components/stories/index.ts +57 -0
  577. package/src/components/stories/input-group.story.tsx +27 -0
  578. package/src/components/stories/input.story.tsx +42 -0
  579. package/src/components/stories/insight-cards.story.tsx +67 -0
  580. package/src/components/stories/label.story.tsx +32 -0
  581. package/src/components/stories/linked-accounts-block.story.tsx +23 -0
  582. package/src/components/stories/login-block.story.tsx +18 -0
  583. package/src/components/stories/logo.story.tsx +21 -0
  584. package/src/components/stories/markdown.story.tsx +31 -0
  585. package/src/components/stories/menu-command.story.tsx +43 -0
  586. package/src/components/stories/onboarding-block.story.tsx +14 -0
  587. package/src/components/stories/otp-field.story.tsx +35 -0
  588. package/src/components/stories/passkey-manager-block.story.tsx +18 -0
  589. package/src/components/stories/passkey-sign-in-block.story.tsx +15 -0
  590. package/src/components/stories/password-input.story.tsx +35 -0
  591. package/src/components/stories/profile-card-block.story.tsx +29 -0
  592. package/src/components/stories/recommendation-card.story.tsx +37 -0
  593. package/src/components/stories/records-table.story.tsx +52 -0
  594. package/src/components/stories/reference.story.tsx +33 -0
  595. package/src/components/stories/research-answer.story.tsx +32 -0
  596. package/src/components/stories/scaffold-root.story.tsx +47 -0
  597. package/src/components/stories/separator.story.tsx +37 -0
  598. package/src/components/stories/shell-layout.story.tsx +19 -0
  599. package/src/components/stories/signup-block.story.tsx +18 -0
  600. package/src/components/stories/social-providers.story.tsx +26 -0
  601. package/src/components/stories/streaming-text.story.tsx +25 -0
  602. package/src/components/stories/text.story.tsx +31 -0
  603. package/src/components/stories/textarea.story.tsx +34 -0
  604. package/src/components/stories/tree.story.tsx +31 -0
  605. package/src/components/stories/update-password-block.story.tsx +14 -0
  606. package/src/components/stories/user.story.tsx +32 -0
  607. package/src/components/stories/verse.story.tsx +42 -0
  608. package/src/components/theme-provider.tsx +16 -16
  609. package/src/components/types.ts +106 -0
  610. package/src/components/ui/badge.tsx +3 -3
  611. package/src/components/ui/button.tsx +15 -22
  612. package/src/components/ui/chat/avatar-handle.tsx +2 -2
  613. package/src/components/ui/chat/badges.tsx +2 -2
  614. package/src/components/ui/chat/buttons.tsx +7 -7
  615. package/src/components/ui/chat/chips.tsx +11 -11
  616. package/src/components/ui/chat/dot.tsx +8 -8
  617. package/src/components/ui/chat/icon-button.tsx +3 -3
  618. package/src/components/ui/chat/icon-tile.tsx +2 -2
  619. package/src/components/ui/chat/index.ts +12 -12
  620. package/src/components/ui/chat/inline-source.tsx +2 -2
  621. package/src/components/ui/chat/segmented-toggle.tsx +4 -4
  622. package/src/components/ui/chat/tag.tsx +10 -10
  623. package/src/components/ui/chat/thumbnail.tsx +2 -2
  624. package/src/components/ui/chat/waveform.tsx +2 -2
  625. package/src/components/ui/field.tsx +3 -3
  626. package/src/components/ui/glasscn/glass-button-group.tsx +7 -21
  627. package/src/components/ui/glasscn/glass-button.tsx +5 -5
  628. package/src/components/ui/glasscn/glass-container.tsx +10 -47
  629. package/src/components/ui/glasscn/glass-separator.tsx +6 -6
  630. package/src/components/ui/glasscn/liquid-glass.tsx +43 -300
  631. package/src/components/ui/input-group.tsx +4 -4
  632. package/src/components/ui/input.tsx +2 -2
  633. package/src/components/ui/menu-command.tsx +103 -75
  634. package/src/components/ui/popover-glass.tsx +11 -14
  635. package/src/components/ui/select.tsx +2 -2
  636. package/src/components/ui/tabs.tsx +12 -12
  637. package/src/components/ui/textarea.tsx +2 -2
  638. package/src/components/ui/toast.tsx +13 -13
  639. package/src/index.css +3 -1
  640. package/src/index.ts +3 -1
  641. package/src/lib/attachment-content.ts +28 -0
  642. package/src/lib/auth-accent.ts +2 -2
  643. package/src/lib/glass-variants.ts +19 -54
  644. package/src/lib/keyed-atom.ts +3 -3
  645. package/src/lib/segmented-control.ts +2 -2
  646. package/src/lib/specular.ts +10 -0
  647. package/src/lib/state/__tests__/sound.test.tsx +53 -0
  648. package/src/lib/state/exegia-provider.tsx +6 -6
  649. package/src/lib/state/index.ts +2 -2
  650. package/src/lib/state/store.ts +2 -2
  651. package/src/lib/use-motion-panel.ts +78 -0
  652. package/src/lib/utils.ts +7 -5
  653. package/src/specular.js +4 -0
  654. package/dist-lib/src/components/atoms/avatar/base.d.ts +0 -2
  655. package/dist-lib/src/components/atoms/avatar/index.d.ts +0 -2
  656. package/dist-lib/src/components/atoms/avatar/types.d.ts +0 -20
  657. package/dist-lib/src/components/atoms/avatar/utils.d.ts +0 -13
  658. package/dist-lib/src/components/atoms/background/texture.d.ts +0 -2
  659. package/dist-lib/src/components/atoms/background/type.d.ts +0 -7
  660. package/dist-lib/src/components/atoms/background/utils.d.ts +0 -4
  661. package/dist-lib/src/components/atoms/bubble/actions.d.ts +0 -7
  662. package/dist-lib/src/components/atoms/bubble/context.d.ts +0 -4
  663. package/dist-lib/src/components/atoms/bubble/default.d.ts +0 -3
  664. package/dist-lib/src/components/atoms/bubble/header.d.ts +0 -8
  665. package/dist-lib/src/components/atoms/bubble/index.d.ts +0 -16
  666. package/dist-lib/src/components/atoms/bubble/message.d.ts +0 -3
  667. package/dist-lib/src/components/atoms/bubble/reactions.d.ts +0 -14
  668. package/dist-lib/src/components/atoms/bubble/types.d.ts +0 -59
  669. package/dist-lib/src/components/atoms/bubble/utils.d.ts +0 -13
  670. package/dist-lib/src/components/atoms/index.d.ts +0 -15
  671. package/dist-lib/src/components/atoms/loader.d.ts +0 -8
  672. package/dist-lib/src/components/atoms/reference.d.ts +0 -7
  673. package/dist-lib/src/components/atoms/text/default.d.ts +0 -1144
  674. package/dist-lib/src/components/atoms/text/heading.d.ts +0 -4
  675. package/dist-lib/src/components/atoms/text/index.d.ts +0 -21
  676. package/dist-lib/src/components/atoms/text/label.d.ts +0 -2
  677. package/dist-lib/src/components/atoms/text/paragraph.d.ts +0 -4
  678. package/dist-lib/src/components/atoms/text/span.d.ts +0 -3
  679. package/dist-lib/src/components/atoms/text/types.d.ts +0 -23
  680. package/dist-lib/src/components/atoms/text/utils.d.ts +0 -4
  681. package/dist-lib/src/components/atoms/text-selection/click-popover.d.ts +0 -3
  682. package/dist-lib/src/components/atoms/text-selection/index.d.ts +0 -6
  683. package/dist-lib/src/components/atoms/text-selection/popover.d.ts +0 -3
  684. package/dist-lib/src/components/atoms/text-selection/selection-atom.d.ts +0 -30
  685. package/dist-lib/src/components/atoms/text-selection/selection.d.ts +0 -3
  686. package/dist-lib/src/components/atoms/text-selection/types.d.ts +0 -90
  687. package/dist-lib/src/components/atoms/text-selection/use-selection.d.ts +0 -7
  688. package/dist-lib/src/components/atoms/types.d.ts +0 -17
  689. package/dist-lib/src/components/blocks/auth/auth-flow-atom.d.ts +0 -77
  690. package/dist-lib/src/components/blocks/auth/auth-flow-block.d.ts +0 -123
  691. package/dist-lib/src/components/blocks/auth/auth-flow-block.story.d.ts +0 -3
  692. package/dist-lib/src/components/blocks/auth/auth-session-atom.d.ts +0 -28
  693. package/dist-lib/src/components/blocks/auth/auth-shell.d.ts +0 -56
  694. package/dist-lib/src/components/blocks/auth/auth-state-type.d.ts +0 -71
  695. package/dist-lib/src/components/blocks/auth/auth-state.d.ts +0 -9
  696. package/dist-lib/src/components/blocks/auth/code-auth-block.d.ts +0 -22
  697. package/dist-lib/src/components/blocks/auth/code-auth-block.story.d.ts +0 -3
  698. package/dist-lib/src/components/blocks/auth/forgot-password-block.d.ts +0 -15
  699. package/dist-lib/src/components/blocks/auth/forgot-password-block.story.d.ts +0 -3
  700. package/dist-lib/src/components/blocks/auth/linked-accounts-block.d.ts +0 -36
  701. package/dist-lib/src/components/blocks/auth/linked-accounts-block.story.d.ts +0 -3
  702. package/dist-lib/src/components/blocks/auth/login-block.d.ts +0 -25
  703. package/dist-lib/src/components/blocks/auth/login-block.story.d.ts +0 -3
  704. package/dist-lib/src/components/blocks/auth/onboarding/profile-step.d.ts +0 -19
  705. package/dist-lib/src/components/blocks/auth/onboarding-block.d.ts +0 -69
  706. package/dist-lib/src/components/blocks/auth/onboarding-block.story.d.ts +0 -3
  707. package/dist-lib/src/components/blocks/auth/passkey-manager-block.d.ts +0 -38
  708. package/dist-lib/src/components/blocks/auth/passkey-manager-block.story.d.ts +0 -3
  709. package/dist-lib/src/components/blocks/auth/passkey-sign-in-block.d.ts +0 -27
  710. package/dist-lib/src/components/blocks/auth/passkey-sign-in-block.story.d.ts +0 -3
  711. package/dist-lib/src/components/blocks/auth/signup-block.d.ts +0 -41
  712. package/dist-lib/src/components/blocks/auth/signup-block.story.d.ts +0 -3
  713. package/dist-lib/src/components/blocks/auth/update-password-block.d.ts +0 -28
  714. package/dist-lib/src/components/blocks/auth/update-password-block.story.d.ts +0 -3
  715. package/dist-lib/src/components/blocks/auth/use-auth-state.d.ts +0 -52
  716. package/dist-lib/src/components/blocks/chat/banners.d.ts +0 -13
  717. package/dist-lib/src/components/blocks/chat/base.d.ts +0 -10
  718. package/dist-lib/src/components/blocks/chat/base.story.d.ts +0 -3
  719. package/dist-lib/src/components/blocks/chat/header.d.ts +0 -4
  720. package/dist-lib/src/components/blocks/chat/index.d.ts +0 -13
  721. package/dist-lib/src/components/blocks/chat/recommendation-stack.d.ts +0 -13
  722. package/dist-lib/src/components/blocks/chat/suggested-prompts.d.ts +0 -3
  723. package/dist-lib/src/components/blocks/chat/types.d.ts +0 -64
  724. package/dist-lib/src/components/blocks/chat/version-history-record.d.ts +0 -3
  725. package/dist-lib/src/components/blocks/layout.d.ts +0 -8
  726. package/dist-lib/src/components/blocks/nav/sidebar/ai-sidebar-atom.d.ts +0 -217
  727. package/dist-lib/src/components/blocks/nav/sidebar/ai-sidebar.d.ts +0 -11
  728. package/dist-lib/src/components/blocks/nav/sidebar/index.d.ts +0 -15
  729. package/dist-lib/src/components/blocks/nav/sidebar/sidebar-context.d.ts +0 -3
  730. package/dist-lib/src/components/blocks/nav/sidebar/sidebar-icon.d.ts +0 -2
  731. package/dist-lib/src/components/blocks/nav/sidebar/sidebar-row.d.ts +0 -4
  732. package/dist-lib/src/components/blocks/nav/sidebar/type.d.ts +0 -245
  733. package/dist-lib/src/components/blocks/nav/sidebar/use-ai-sidebar-state.d.ts +0 -29
  734. package/dist-lib/src/components/blocks/nav/sidebar/use-ai-sidebar.d.ts +0 -27
  735. package/dist-lib/src/components/blocks/nav/sidebar/utils.d.ts +0 -21
  736. package/dist-lib/src/components/blocks/profile/index.d.ts +0 -7
  737. package/dist-lib/src/components/blocks/profile/profile-card-atom.d.ts +0 -68
  738. package/dist-lib/src/components/blocks/profile/profile-card-block.d.ts +0 -66
  739. package/dist-lib/src/components/blocks/profile/profile-card-block.story.d.ts +0 -3
  740. package/dist-lib/src/components/blocks/profile/type.d.ts +0 -80
  741. package/dist-lib/src/components/blocks/profile/use-profile-card-state.d.ts +0 -24
  742. package/dist-lib/src/components/blocks/profile/use-profile-card.d.ts +0 -34
  743. package/dist-lib/src/components/blocks/scaffold/index.d.ts +0 -29
  744. package/dist-lib/src/components/blocks/scaffold/panel-close-button.d.ts +0 -4
  745. package/dist-lib/src/components/blocks/scaffold/panel-menu-button.d.ts +0 -8
  746. package/dist-lib/src/components/blocks/scaffold/scaffold-actions.d.ts +0 -10
  747. package/dist-lib/src/components/blocks/scaffold/scaffold-atom.d.ts +0 -97
  748. package/dist-lib/src/components/blocks/scaffold/scaffold-canvas.d.ts +0 -9
  749. package/dist-lib/src/components/blocks/scaffold/scaffold-context.d.ts +0 -7
  750. package/dist-lib/src/components/blocks/scaffold/scaffold-inspector.d.ts +0 -9
  751. package/dist-lib/src/components/blocks/scaffold/scaffold-main.d.ts +0 -8
  752. package/dist-lib/src/components/blocks/scaffold/scaffold-panel.d.ts +0 -10
  753. package/dist-lib/src/components/blocks/scaffold/scaffold-root.d.ts +0 -17
  754. package/dist-lib/src/components/blocks/scaffold/scaffold-root.story.d.ts +0 -3
  755. package/dist-lib/src/components/blocks/scaffold/scaffold-sidebar.d.ts +0 -7
  756. package/dist-lib/src/components/blocks/scaffold/scaffold-sub-panel.d.ts +0 -3
  757. package/dist-lib/src/components/blocks/scaffold/scaffold-tab.d.ts +0 -14
  758. package/dist-lib/src/components/blocks/scaffold/type.d.ts +0 -203
  759. package/dist-lib/src/components/blocks/scaffold/use-scaffold-state.d.ts +0 -26
  760. package/dist-lib/src/components/blocks/scaffold/use-scaffold.d.ts +0 -14
  761. package/dist-lib/src/components/blocks/scaffold/utils.d.ts +0 -37
  762. package/dist-lib/src/components/blocks/shell/animated-panel-inset.d.ts +0 -2
  763. package/dist-lib/src/components/blocks/shell/animated-panel-provider.d.ts +0 -2
  764. package/dist-lib/src/components/blocks/shell/animated-panel-trigger.d.ts +0 -2
  765. package/dist-lib/src/components/blocks/shell/animated-panel.d.ts +0 -2
  766. package/dist-lib/src/components/blocks/shell/shell-fit-atom.d.ts +0 -68
  767. package/dist-lib/src/components/blocks/shell/shell-layout.d.ts +0 -3
  768. package/dist-lib/src/components/blocks/shell/shell-layout.story.d.ts +0 -3
  769. package/dist-lib/src/components/blocks/shell/shell-metrics.d.ts +0 -54
  770. package/dist-lib/src/components/blocks/shell/type.d.ts +0 -292
  771. package/dist-lib/src/components/blocks/shell/use-shell-fit-state.d.ts +0 -25
  772. package/dist-lib/src/components/blocks/shell/use-shell-fit.d.ts +0 -14
  773. package/dist-lib/src/components/blocks/shell/use-shell-panels.d.ts +0 -20
  774. package/dist-lib/src/components/blocks/shell/utils.d.ts +0 -70
  775. package/dist-lib/src/components/composed/action-bar/action.d.ts +0 -18
  776. package/dist-lib/src/components/composed/action-bar/emojis.d.ts +0 -10
  777. package/dist-lib/src/components/composed/action-bar/index.d.ts +0 -12
  778. package/dist-lib/src/components/composed/action-bar/toolbar.d.ts +0 -2
  779. package/dist-lib/src/components/composed/action-bar/types.d.ts +0 -55
  780. package/dist-lib/src/components/composed/action-bar/utils.d.ts +0 -57
  781. package/dist-lib/src/components/composed/ai/index.d.ts +0 -17
  782. package/dist-lib/src/components/composed/ai/message.d.ts +0 -7
  783. package/dist-lib/src/components/composed/ai/research-answer.d.ts +0 -30
  784. package/dist-lib/src/components/composed/ai/streaming-text.d.ts +0 -26
  785. package/dist-lib/src/components/composed/ai/suggested-prompt.d.ts +0 -35
  786. package/dist-lib/src/components/composed/ai/types.d.ts +0 -66
  787. package/dist-lib/src/components/composed/attachment.story.d.ts +0 -3
  788. package/dist-lib/src/components/composed/chart.story.d.ts +0 -3
  789. package/dist-lib/src/components/composed/chat/attachment.d.ts +0 -62
  790. package/dist-lib/src/components/composed/chat/chart.d.ts +0 -41
  791. package/dist-lib/src/components/composed/chat/code-block.d.ts +0 -26
  792. package/dist-lib/src/components/composed/chat/composer/add-button.d.ts +0 -5
  793. package/dist-lib/src/components/composed/chat/composer/base.d.ts +0 -8
  794. package/dist-lib/src/components/composed/chat/composer/command-menu.d.ts +0 -2
  795. package/dist-lib/src/components/composed/chat/composer/hooks.d.ts +0 -9
  796. package/dist-lib/src/components/composed/chat/composer/send-button.d.ts +0 -3
  797. package/dist-lib/src/components/composed/chat/composer/suggestions.d.ts +0 -7
  798. package/dist-lib/src/components/composed/chat/composer/utils.d.ts +0 -19
  799. package/dist-lib/src/components/composed/chat/context-cards.d.ts +0 -27
  800. package/dist-lib/src/components/composed/chat/filter-table.d.ts +0 -40
  801. package/dist-lib/src/components/composed/chat/flowchart/chart-node.d.ts +0 -2
  802. package/dist-lib/src/components/composed/chat/flowchart/connector.d.ts +0 -2
  803. package/dist-lib/src/components/composed/chat/flowchart/default.d.ts +0 -7
  804. package/dist-lib/src/components/composed/chat/flowchart/edge-toolbar.d.ts +0 -9
  805. package/dist-lib/src/components/composed/chat/flowchart/hooks.d.ts +0 -290
  806. package/dist-lib/src/components/composed/chat/flowchart/step-body.d.ts +0 -6
  807. package/dist-lib/src/components/composed/chat/flowchart/types.d.ts +0 -91
  808. package/dist-lib/src/components/composed/chat/flowchart/utils.d.ts +0 -64
  809. package/dist-lib/src/components/composed/chat/index.d.ts +0 -15
  810. package/dist-lib/src/components/composed/chat/insight-cards.d.ts +0 -54
  811. package/dist-lib/src/components/composed/chat/markdown-atom.d.ts +0 -7
  812. package/dist-lib/src/components/composed/chat/markdown.d.ts +0 -22
  813. package/dist-lib/src/components/composed/chat/recommendation/checkbox.d.ts +0 -15
  814. package/dist-lib/src/components/composed/chat/recommendation/constant.d.ts +0 -6
  815. package/dist-lib/src/components/composed/chat/recommendation/default.d.ts +0 -7
  816. package/dist-lib/src/components/composed/chat/recommendation/group.d.ts +0 -8
  817. package/dist-lib/src/components/composed/chat/recommendation/index.d.ts +0 -15
  818. package/dist-lib/src/components/composed/chat/recommendation/item.d.ts +0 -12
  819. package/dist-lib/src/components/composed/chat/recommendation/types.d.ts +0 -53
  820. package/dist-lib/src/components/composed/chat/records-table.d.ts +0 -38
  821. package/dist-lib/src/components/composed/chat/type.d.ts +0 -86
  822. package/dist-lib/src/components/composed/code-block.story.d.ts +0 -3
  823. package/dist-lib/src/components/composed/context-cards.story.d.ts +0 -3
  824. package/dist-lib/src/components/composed/emoji-action-bar.story.d.ts +0 -3
  825. package/dist-lib/src/components/composed/filter-table.story.d.ts +0 -7
  826. package/dist-lib/src/components/composed/flowchart.story.d.ts +0 -3
  827. package/dist-lib/src/components/composed/insight-cards.story.d.ts +0 -3
  828. package/dist-lib/src/components/composed/logo.d.ts +0 -34
  829. package/dist-lib/src/components/composed/logo.story.d.ts +0 -3
  830. package/dist-lib/src/components/composed/markdown.story.d.ts +0 -3
  831. package/dist-lib/src/components/composed/password-input.d.ts +0 -30
  832. package/dist-lib/src/components/composed/password-input.story.d.ts +0 -7
  833. package/dist-lib/src/components/composed/reader/applied-mark.d.ts +0 -3
  834. package/dist-lib/src/components/composed/reader/apply-toast.d.ts +0 -3
  835. package/dist-lib/src/components/composed/reader/selection-highlight.d.ts +0 -3
  836. package/dist-lib/src/components/composed/reader/selection-popover.d.ts +0 -9
  837. package/dist-lib/src/components/composed/reader/type.d.ts +0 -40
  838. package/dist-lib/src/components/composed/recommendation-card.story.d.ts +0 -3
  839. package/dist-lib/src/components/composed/records-table.story.d.ts +0 -3
  840. package/dist-lib/src/components/composed/research-answer.story.d.ts +0 -3
  841. package/dist-lib/src/components/composed/social-providers.d.ts +0 -37
  842. package/dist-lib/src/components/composed/social-providers.story.d.ts +0 -3
  843. package/dist-lib/src/components/composed/streaming-text.story.d.ts +0 -3
  844. package/dist-lib/src/components/composed/tree/index.d.ts +0 -6
  845. package/dist-lib/src/components/composed/tree/tree-atom.d.ts +0 -160
  846. package/dist-lib/src/components/composed/tree/tree-context.d.ts +0 -4
  847. package/dist-lib/src/components/composed/tree/tree-node.d.ts +0 -12
  848. package/dist-lib/src/components/composed/tree/tree.d.ts +0 -19
  849. package/dist-lib/src/components/composed/tree/type.d.ts +0 -290
  850. package/dist-lib/src/components/composed/tree/use-tree-dnd.d.ts +0 -18
  851. package/dist-lib/src/components/composed/tree/use-tree-state.d.ts +0 -25
  852. package/dist-lib/src/components/composed/tree/use-tree.d.ts +0 -24
  853. package/dist-lib/src/components/composed/tree/utils.d.ts +0 -28
  854. package/dist-lib/src/components/composed/tree.story.d.ts +0 -6
  855. package/dist-lib/src/components/composed/user/index.d.ts +0 -11
  856. package/dist-lib/src/components/composed/user/info.d.ts +0 -12
  857. package/dist-lib/src/components/composed/user/message.d.ts +0 -3
  858. package/dist-lib/src/components/composed/user/pill.d.ts +0 -10
  859. package/dist-lib/src/components/composed/user/types.d.ts +0 -20
  860. package/dist-lib/src/components/composed/user.story.d.ts +0 -8
  861. package/dist-lib/src/components/composed/verse/index.d.ts +0 -2
  862. package/dist-lib/src/components/composed/verse/types.d.ts +0 -18
  863. package/dist-lib/src/components/composed/verse/verse.d.ts +0 -5
  864. package/dist-lib/src/components/composed/verse.story.d.ts +0 -3
  865. package/dist-lib/src/components/docs/atoms-gallery.d.ts +0 -3
  866. package/dist-lib/src/components/docs/demo-controls.d.ts +0 -21
  867. package/dist-lib/src/components/icons/file-badge-cfm.d.ts +0 -7
  868. package/dist-lib/src/components/icons/file-badge-corpus.d.ts +0 -7
  869. package/dist-lib/src/components/icons/file-badge-pdf.d.ts +0 -7
  870. package/dist-lib/src/components/icons/file-badge-tei.d.ts +0 -7
  871. package/dist-lib/src/components/icons/file-badge-tf.d.ts +0 -7
  872. package/dist-lib/src/components/icons/file-badge-txt.d.ts +0 -7
  873. package/dist-lib/src/components/icons/file-badge-xml.d.ts +0 -7
  874. package/dist-lib/src/components/icons/file-wordmark-cfm.d.ts +0 -7
  875. package/dist-lib/src/components/icons/file-wordmark-corpus.d.ts +0 -7
  876. package/dist-lib/src/components/icons/file-wordmark-pdf.d.ts +0 -7
  877. package/dist-lib/src/components/icons/file-wordmark-tei.d.ts +0 -7
  878. package/dist-lib/src/components/icons/file-wordmark-tf.d.ts +0 -7
  879. package/dist-lib/src/components/icons/file-wordmark-txt.d.ts +0 -7
  880. package/dist-lib/src/components/icons/file-wordmark-xml.d.ts +0 -7
  881. package/dist-lib/src/components/icons/index.d.ts +0 -15
  882. package/dist-lib/src/components/icons/types.d.ts +0 -7
  883. package/dist-lib/src/components/motion/overflow-actions.d.ts +0 -35
  884. package/dist-lib/src/components/motion/popover-morph.d.ts +0 -35
  885. package/dist-lib/src/components/motion/popover-position.d.ts +0 -15
  886. package/dist-lib/src/components/motion/shared-layout-bg.d.ts +0 -13
  887. package/dist-lib/src/components/theme-provider.d.ts +0 -15
  888. package/dist-lib/src/components/ui/avatar.story.d.ts +0 -7
  889. package/dist-lib/src/components/ui/badge.d.ts +0 -14
  890. package/dist-lib/src/components/ui/bubble.story.d.ts +0 -7
  891. package/dist-lib/src/components/ui/button.d.ts +0 -28
  892. package/dist-lib/src/components/ui/button.story.d.ts +0 -8
  893. package/dist-lib/src/components/ui/card.story.d.ts +0 -9
  894. package/dist-lib/src/components/ui/chat/avatar-handle.d.ts +0 -13
  895. package/dist-lib/src/components/ui/chat/badges.d.ts +0 -29
  896. package/dist-lib/src/components/ui/chat/buttons.d.ts +0 -29
  897. package/dist-lib/src/components/ui/chat/chips.d.ts +0 -48
  898. package/dist-lib/src/components/ui/chat/dot.d.ts +0 -30
  899. package/dist-lib/src/components/ui/chat/icon-button.d.ts +0 -18
  900. package/dist-lib/src/components/ui/chat/icon-tile.d.ts +0 -20
  901. package/dist-lib/src/components/ui/chat/index.d.ts +0 -12
  902. package/dist-lib/src/components/ui/chat/inline-source.d.ts +0 -20
  903. package/dist-lib/src/components/ui/chat/segmented-toggle.d.ts +0 -20
  904. package/dist-lib/src/components/ui/chat/tag.d.ts +0 -21
  905. package/dist-lib/src/components/ui/chat/thumbnail.d.ts +0 -13
  906. package/dist-lib/src/components/ui/chat/waveform.d.ts +0 -13
  907. package/dist-lib/src/components/ui/chat-atoms.story.d.ts +0 -22
  908. package/dist-lib/src/components/ui/checkbox.story.d.ts +0 -7
  909. package/dist-lib/src/components/ui/field.story.d.ts +0 -7
  910. package/dist-lib/src/components/ui/file-icons.story.d.ts +0 -7
  911. package/dist-lib/src/components/ui/frame.story.d.ts +0 -9
  912. package/dist-lib/src/components/ui/glasscn/glass-button-group.d.ts +0 -5
  913. package/dist-lib/src/components/ui/glasscn/glass-button.d.ts +0 -6
  914. package/dist-lib/src/components/ui/glasscn/glass-container.d.ts +0 -12
  915. package/dist-lib/src/components/ui/glasscn/glass-separator.d.ts +0 -5
  916. package/dist-lib/src/components/ui/glasscn/liquid-glass.d.ts +0 -31
  917. package/dist-lib/src/components/ui/input-group.d.ts +0 -13
  918. package/dist-lib/src/components/ui/input-group.story.d.ts +0 -7
  919. package/dist-lib/src/components/ui/input.d.ts +0 -9
  920. package/dist-lib/src/components/ui/input.story.d.ts +0 -9
  921. package/dist-lib/src/components/ui/label.story.d.ts +0 -9
  922. package/dist-lib/src/components/ui/menu-command.d.ts +0 -37
  923. package/dist-lib/src/components/ui/menu-command.story.d.ts +0 -7
  924. package/dist-lib/src/components/ui/otp-field.story.d.ts +0 -9
  925. package/dist-lib/src/components/ui/password-input.story.d.ts +0 -3
  926. package/dist-lib/src/components/ui/popover-glass.d.ts +0 -32
  927. package/dist-lib/src/components/ui/reference.story.d.ts +0 -10
  928. package/dist-lib/src/components/ui/select.d.ts +0 -30
  929. package/dist-lib/src/components/ui/separator.story.d.ts +0 -7
  930. package/dist-lib/src/components/ui/tabs.d.ts +0 -15
  931. package/dist-lib/src/components/ui/text.story.d.ts +0 -9
  932. package/dist-lib/src/components/ui/textarea.d.ts +0 -8
  933. package/dist-lib/src/components/ui/textarea.story.d.ts +0 -7
  934. package/dist-lib/src/components/ui/toast.d.ts +0 -15
  935. package/dist-lib/src/index.d.ts +0 -63
  936. package/dist-lib/src/lib/auth-accent.d.ts +0 -33
  937. package/dist-lib/src/lib/glass-variants.d.ts +0 -6
  938. package/dist-lib/src/lib/keyed-atom.d.ts +0 -14
  939. package/dist-lib/src/lib/segmented-control.d.ts +0 -8
  940. package/dist-lib/src/lib/state/exegia-provider.d.ts +0 -51
  941. package/dist-lib/src/lib/state/index.d.ts +0 -4
  942. package/dist-lib/src/lib/state/store.d.ts +0 -17
  943. package/src/components/blocks/auth/auth-flow-block.story.tsx +0 -17
  944. package/src/components/blocks/auth/auth-state-type.ts +0 -97
  945. package/src/components/blocks/auth/code-auth-block.story.tsx +0 -20
  946. package/src/components/blocks/auth/forgot-password-block.story.tsx +0 -14
  947. package/src/components/blocks/auth/linked-accounts-block.story.tsx +0 -23
  948. package/src/components/blocks/auth/login-block.story.tsx +0 -18
  949. package/src/components/blocks/auth/onboarding-block.story.tsx +0 -14
  950. package/src/components/blocks/auth/passkey-manager-block.story.tsx +0 -18
  951. package/src/components/blocks/auth/passkey-sign-in-block.story.tsx +0 -14
  952. package/src/components/blocks/auth/signup-block.story.tsx +0 -18
  953. package/src/components/blocks/auth/update-password-block.story.tsx +0 -14
  954. package/src/components/blocks/chat/base.story.tsx +0 -19
  955. package/src/components/blocks/chat/types.ts +0 -81
  956. package/src/components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.tsx +0 -325
  957. package/src/components/blocks/nav/sidebar/__tests__/ai-sidebar.test.tsx +0 -93
  958. package/src/components/blocks/nav/sidebar/__tests__/use-ai-sidebar.test.tsx +0 -310
  959. package/src/components/blocks/nav/sidebar/ai-sidebar-atom.ts +0 -698
  960. package/src/components/blocks/nav/sidebar/ai-sidebar.tsx +0 -150
  961. package/src/components/blocks/nav/sidebar/index.ts +0 -67
  962. package/src/components/blocks/nav/sidebar/sidebar-context.ts +0 -15
  963. package/src/components/blocks/nav/sidebar/sidebar-icon.tsx +0 -14
  964. package/src/components/blocks/nav/sidebar/sidebar-row.tsx +0 -378
  965. package/src/components/blocks/nav/sidebar/type.ts +0 -294
  966. package/src/components/blocks/nav/sidebar/use-ai-sidebar-state.ts +0 -123
  967. package/src/components/blocks/nav/sidebar/use-ai-sidebar.ts +0 -619
  968. package/src/components/blocks/nav/sidebar/utils.ts +0 -170
  969. package/src/components/blocks/profile/profile-card-block.story.tsx +0 -18
  970. package/src/components/blocks/scaffold/scaffold-root.story.tsx +0 -36
  971. package/src/components/blocks/shell/shell-layout.story.tsx +0 -19
  972. package/src/components/composed/attachment.story.tsx +0 -52
  973. package/src/components/composed/chart.story.tsx +0 -46
  974. package/src/components/composed/code-block.story.tsx +0 -29
  975. package/src/components/composed/context-cards.story.tsx +0 -30
  976. package/src/components/composed/emoji-action-bar.story.tsx +0 -20
  977. package/src/components/composed/filter-table.story.tsx +0 -58
  978. package/src/components/composed/flowchart.story.tsx +0 -24
  979. package/src/components/composed/insight-cards.story.tsx +0 -51
  980. package/src/components/composed/logo.story.tsx +0 -21
  981. package/src/components/composed/markdown.story.tsx +0 -21
  982. package/src/components/composed/password-input.story.tsx +0 -38
  983. package/src/components/composed/recommendation-card.story.tsx +0 -32
  984. package/src/components/composed/records-table.story.tsx +0 -46
  985. package/src/components/composed/research-answer.story.tsx +0 -32
  986. package/src/components/composed/social-providers.story.tsx +0 -24
  987. package/src/components/composed/streaming-text.story.tsx +0 -24
  988. package/src/components/composed/tree.story.tsx +0 -31
  989. package/src/components/composed/user.story.tsx +0 -29
  990. package/src/components/composed/verse.story.tsx +0 -21
  991. package/src/components/ui/avatar.story.tsx +0 -33
  992. package/src/components/ui/bubble.story.tsx +0 -45
  993. package/src/components/ui/button.story.tsx +0 -62
  994. package/src/components/ui/card.story.tsx +0 -36
  995. package/src/components/ui/chat-atoms.story.tsx +0 -94
  996. package/src/components/ui/checkbox.story.tsx +0 -30
  997. package/src/components/ui/field.story.tsx +0 -32
  998. package/src/components/ui/file-icons.story.tsx +0 -24
  999. package/src/components/ui/frame.story.tsx +0 -32
  1000. package/src/components/ui/input-group.story.tsx +0 -27
  1001. package/src/components/ui/input.story.tsx +0 -42
  1002. package/src/components/ui/label.story.tsx +0 -32
  1003. package/src/components/ui/menu-command.story.tsx +0 -37
  1004. package/src/components/ui/otp-field.story.tsx +0 -35
  1005. package/src/components/ui/password-input.story.tsx +0 -19
  1006. package/src/components/ui/reference.story.tsx +0 -33
  1007. package/src/components/ui/separator.story.tsx +0 -34
  1008. package/src/components/ui/text.story.tsx +0 -31
  1009. package/src/components/ui/textarea.story.tsx +0 -34
  1010. /package/dist-lib/{src/components → components}/atoms/_layout.d.ts +0 -0
  1011. /package/dist-lib/{src/components → components}/atoms/avatar/verified.d.ts +0 -0
  1012. /package/dist-lib/{src/components → components}/atoms/background/index.d.ts +0 -0
  1013. /package/dist-lib/{src/components → components}/atoms/bubble/__tests__/bubble.test.d.ts +0 -0
  1014. /package/dist-lib/{src/components → components}/atoms/bubble/__tests__/reference.test.d.ts +0 -0
  1015. /package/dist-lib/{src/components → components}/atoms/chip.d.ts +0 -0
  1016. /package/dist-lib/{src/components → components}/atoms/text/__tests__/text.test.d.ts +0 -0
  1017. /package/dist-lib/{src/components → components}/atoms/text-selection/__tests__/click-popover.test.d.ts +0 -0
  1018. /package/dist-lib/{src/components → components}/atoms/text-selection/__tests__/text-selection.test.d.ts +0 -0
  1019. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/auth-flow-block.test.d.ts +0 -0
  1020. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/auth-state-atom.test.d.ts +0 -0
  1021. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/linked-accounts-block.test.d.ts +0 -0
  1022. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/onboarding-block.test.d.ts +0 -0
  1023. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/passkey-manager-block.test.d.ts +0 -0
  1024. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/passkey-sign-in-block.test.d.ts +0 -0
  1025. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/signup-block.test.d.ts +0 -0
  1026. /package/dist-lib/{src/components → components}/blocks/auth/__tests__/update-password-block.test.d.ts +0 -0
  1027. /package/dist-lib/{src/components → components}/blocks/chat/__tests__/ai-panel.test.d.ts +0 -0
  1028. /package/dist-lib/{src/components → components}/blocks/chat/shared.d.ts +0 -0
  1029. /package/dist-lib/{src/components → components}/blocks/profile/__tests__/profile-card-block.test.d.ts +0 -0
  1030. /package/dist-lib/{src/components → components}/blocks/scaffold/__tests__/scaffold-atom.test.d.ts +0 -0
  1031. /package/dist-lib/{src/components → components}/blocks/scaffold/__tests__/scaffold.test.d.ts +0 -0
  1032. /package/dist-lib/{src/components → components}/blocks/scaffold/constants.d.ts +0 -0
  1033. /package/dist-lib/{src/components → components}/blocks/shell/__tests__/shell-fit-atom.test.d.ts +0 -0
  1034. /package/dist-lib/{src/components → components}/blocks/shell/__tests__/shell-layout.test.d.ts +0 -0
  1035. /package/dist-lib/{src/components → components}/blocks/shell/__tests__/shell-metrics.test.d.ts +0 -0
  1036. /package/dist-lib/{src/components → components}/blocks/shell/index.d.ts +0 -0
  1037. /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/__tests__/ai-sidebar-atom.test.d.ts +0 -0
  1038. /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/__tests__/ai-sidebar.test.d.ts +0 -0
  1039. /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/__tests__/use-ai-sidebar.test.d.ts +0 -0
  1040. /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/marquee-label.d.ts +0 -0
  1041. /package/dist-lib/{src/components → components}/composed/__tests__/logo.test.d.ts +0 -0
  1042. /package/dist-lib/{src/components → components}/composed/action-bar/__tests__/action-bar.test.d.ts +0 -0
  1043. /package/dist-lib/{src/components → components}/composed/ai/__tests__/ai.test.d.ts +0 -0
  1044. /package/dist-lib/{src/components → components}/composed/ai/avatar.d.ts +0 -0
  1045. /package/dist-lib/{src/components → components}/composed/ai/shared.d.ts +0 -0
  1046. /package/dist-lib/{src/components → components}/composed/chat/__tests__/attachment.test.d.ts +0 -0
  1047. /package/dist-lib/{src/components → components}/composed/chat/__tests__/beautiful-ui.test.d.ts +0 -0
  1048. /package/dist-lib/{src/components → components}/composed/chat/__tests__/chart.test.d.ts +0 -0
  1049. /package/dist-lib/{src/components → components}/composed/chat/__tests__/code-block.test.d.ts +0 -0
  1050. /package/dist-lib/{src/components → components}/composed/chat/__tests__/composer-attachments.test.d.ts +0 -0
  1051. /package/dist-lib/{src/components → components}/composed/chat/__tests__/composer.test.d.ts +0 -0
  1052. /package/dist-lib/{src/components → components}/composed/chat/__tests__/flowchart.test.d.ts +0 -0
  1053. /package/dist-lib/{src/components/composed/chat/__tests__/markdown.test.d.ts → components/composed/chat/__tests__/glass-material.test.d.ts} +0 -0
  1054. /package/dist-lib/{src/components/composed/tree/__tests__/tree-atom.test.d.ts → components/composed/chat/__tests__/markdown.test.d.ts} +0 -0
  1055. /package/dist-lib/{src/components/composed/tree/__tests__/tree.test.d.ts → components/composed/chat/__tests__/menu-command.test.d.ts} +0 -0
  1056. /package/dist-lib/{src/components/composed/tree/__tests__/use-tree.test.d.ts → components/composed/chat/__tests__/recommendation.test.d.ts} +0 -0
  1057. /package/dist-lib/{src/components → components}/composed/chat/actions.d.ts +0 -0
  1058. /package/dist-lib/{src/components → components}/composed/chat/composer/index.d.ts +0 -0
  1059. /package/dist-lib/{src/components → components}/composed/chat/flowchart/constant.d.ts +0 -0
  1060. /package/dist-lib/{src/components → components}/composed/chat/flowchart/index.d.ts +0 -0
  1061. /package/dist-lib/{src/components → components}/composed/chat/hint.d.ts +0 -0
  1062. /package/dist-lib/{src/components → components}/composed/reader/index.d.ts +0 -0
  1063. /package/dist-lib/{src/components/composed/user/utils.d.ts → components/composed/tree/__tests__/tree-atom.test.d.ts} +0 -0
  1064. /package/dist-lib/{src/components/composed/verse/__tests__/verse.test.d.ts → components/composed/tree/__tests__/tree.test.d.ts} +0 -0
  1065. /package/dist-lib/{src/components/icons/__tests__/icons.test.d.ts → components/composed/tree/__tests__/use-tree.test.d.ts} +0 -0
  1066. /package/dist-lib/{src/components → components}/composed/tree/constants.d.ts +0 -0
  1067. /package/dist-lib/{src/components/motion/index.d.ts → components/composed/user/__tests__/message.test.d.ts} +0 -0
  1068. /package/dist-lib/{src/components/ui/chat/__tests__/segmented-toggle.test.d.ts → components/composed/user/utils.d.ts} +0 -0
  1069. /package/dist-lib/{src/lib/utils.test.d.ts → components/composed/verse/__tests__/verse.test.d.ts} +0 -0
  1070. /package/dist-lib/{src/components → components}/docs/code-block.d.ts +0 -0
  1071. /package/dist-lib/{src/components → components}/docs/hero.d.ts +0 -0
  1072. /package/dist-lib/{src/components → components}/docs/mermaid.d.ts +0 -0
  1073. /package/dist-lib/{src/components → components}/ui/accordion.d.ts +0 -0
  1074. /package/dist-lib/{src/components → components}/ui/alert-dialog.d.ts +0 -0
  1075. /package/dist-lib/{src/components → components}/ui/alert.d.ts +0 -0
  1076. /package/dist-lib/{src/components → components}/ui/autocomplete.d.ts +0 -0
  1077. /package/dist-lib/{src/components → components}/ui/avatar.d.ts +0 -0
  1078. /package/dist-lib/{src/components → components}/ui/button-group.d.ts +0 -0
  1079. /package/dist-lib/{src/components → components}/ui/card.d.ts +0 -0
  1080. /package/dist-lib/{src/components → components}/ui/checkbox.d.ts +0 -0
  1081. /package/dist-lib/{src/components → components}/ui/collapsible.d.ts +0 -0
  1082. /package/dist-lib/{src/components → components}/ui/command.d.ts +0 -0
  1083. /package/dist-lib/{src/components → components}/ui/context-menu.d.ts +0 -0
  1084. /package/dist-lib/{src/components → components}/ui/emoji-picker.d.ts +0 -0
  1085. /package/dist-lib/{src/components → components}/ui/field.d.ts +0 -0
  1086. /package/dist-lib/{src/components → components}/ui/frame.d.ts +0 -0
  1087. /package/dist-lib/{src/components → components}/ui/group.d.ts +0 -0
  1088. /package/dist-lib/{src/components → components}/ui/kbd.d.ts +0 -0
  1089. /package/dist-lib/{src/components → components}/ui/label.d.ts +0 -0
  1090. /package/dist-lib/{src/components → components}/ui/menu.d.ts +0 -0
  1091. /package/dist-lib/{src/components → components}/ui/otp-field.d.ts +0 -0
  1092. /package/dist-lib/{src/components → components}/ui/popover.d.ts +0 -0
  1093. /package/dist-lib/{src/components → components}/ui/preview-card.d.ts +0 -0
  1094. /package/dist-lib/{src/components → components}/ui/scroll-area.d.ts +0 -0
  1095. /package/dist-lib/{src/components → components}/ui/separator.d.ts +0 -0
  1096. /package/dist-lib/{src/components → components}/ui/sheet.d.ts +0 -0
  1097. /package/dist-lib/{src/components → components}/ui/skeleton.d.ts +0 -0
  1098. /package/dist-lib/{src/components → components}/ui/spinner.d.ts +0 -0
  1099. /package/dist-lib/{src/components → components}/ui/switch.d.ts +0 -0
  1100. /package/dist-lib/{src/components → components}/ui/toolbar.d.ts +0 -0
  1101. /package/dist-lib/{src/components → components}/ui/tooltip.d.ts +0 -0
  1102. /package/dist-lib/{src/lib → lib}/ease.d.ts +0 -0
  1103. /package/dist-lib/{src/lib → lib}/hooks/use-hover-capable.d.ts +0 -0
  1104. /package/dist-lib/{src/lib → lib}/hooks/use-mobile.d.ts +0 -0
  1105. /package/dist-lib/{src/lib → lib}/sound.d.ts +0 -0
  1106. /package/dist-lib/{src/lib → lib}/utils.d.ts +0 -0
  1107. /package/src/components/blocks/{nav/sidebar → sidebar}/marquee-label.tsx +0 -0
@@ -12,44 +12,52 @@ import {
12
12
  resizeShellPanelAtom,
13
13
  shellFitStateAtom,
14
14
  } from "./shell-fit-atom"
15
- import { fitsPanel, type ShellMetrics } from "./shell-metrics"
15
+ import { fitsPanel, fitSidebar, type IShellMetrics } from "./shell-metrics"
16
16
  import type {
17
- ShellFitController,
18
- ShellFitSeed,
19
- UseShellFitOptions,
17
+ IShellFitController,
18
+ IShellFitSeed,
19
+ IUseShellFitOptions,
20
20
  } from "./type"
21
+ import { shellPanelAtoms } from "./shell-panel-atom"
21
22
  import { resolveLength } from "./utils"
22
23
 
23
24
  /** Read the shell's columns out of the DOM. The widths come from CSS
24
25
  * variables; the rail's share comes from its own state, not its box, so a
25
26
  * fold counts the moment React commits it rather than a frame later when the
26
27
  * width animation has moved. */
27
- function readMetrics(host: HTMLElement, railOpen: boolean): ShellMetrics {
28
+ function readMetrics(host: HTMLElement, railOpen: boolean): IShellMetrics {
28
29
  // Whether a shell has a rail at all is the caller's composition, so it is
29
30
  // read off the DOM rather than tracked in state.
30
31
  const rail = host.querySelector<HTMLElement>(
31
32
  '[data-slot="sidebar"][data-side="left"]'
32
33
  )
33
- const collapsible = rail?.dataset.collapsible
34
-
35
34
  const frame = getComputedStyle(host)
36
35
  const gap = Number.parseFloat(frame.columnGap) || 0
37
-
36
+ const padding =
37
+ (Number.parseFloat(frame.paddingLeft) || 0) +
38
+ (Number.parseFloat(frame.paddingRight) || 0)
39
+ const width = host.clientWidth || host.getBoundingClientRect().width
40
+ const insetMin = resolveLength(host, "var(--inset-min-width)")
41
+ const sidebar = fitSidebar({
42
+ width,
43
+ padding,
44
+ gap,
45
+ insetMin,
46
+ expanded: resolveLength(host, "var(--sidebar-width)") || 256,
47
+ icon: resolveLength(host, "var(--sidebar-width-icon)") || 56,
48
+ minimum: resolveLength(host, "var(--sidebar-min-width)") || 180,
49
+ open: railOpen,
50
+ collapsible: rail?.dataset.collapsible ?? "icon",
51
+ present: Boolean(rail),
52
+ })
38
53
  return {
39
- rail: !rail
40
- ? 0
41
- : railOpen || collapsible === "none"
42
- ? resolveLength(host, "var(--sidebar-width)")
43
- : collapsible === "offcanvas"
44
- ? 0
45
- : resolveLength(host, "var(--sidebar-width-icon)"),
46
- insetMin: resolveLength(host, "var(--inset-min-width)"),
54
+ rail: sidebar.width,
55
+ sidebar,
56
+ insetMin,
47
57
  panelMin: resolveLength(host, "var(--panel-width)"),
48
- viewport: window.innerWidth,
49
- chrome:
50
- (Number.parseFloat(frame.paddingLeft) || 0) +
51
- (Number.parseFloat(frame.paddingRight) || 0) +
52
- gap * Math.max(0, host.children.length - 1),
58
+ viewport: width,
59
+ // Measure the space a prospective inspector needs, even while absent.
60
+ chrome: padding + gap * (sidebar.width > 0 ? 2 : 1),
53
61
  }
54
62
  }
55
63
 
@@ -57,9 +65,8 @@ function readMetrics(host: HTMLElement, railOpen: boolean): ShellMetrics {
57
65
  * Measures the shell and decides what the secondary panel may do: whether it
58
66
  * exists at all, and how wide it may be dragged.
59
67
  *
60
- * The three things that move the answer are all observed here — the viewport
61
- * (`resize`), the rail's fold (`railOpen`, a render input) and the user's own
62
- * drag (`resizePanel`) — so no caller has to re-derive it. The measurement is
68
+ * Container resizing, rail folding, and user resizing are observed here,
69
+ * so embedded shells obey the same bounds as full-page layouts. The measurement is
63
70
  * the only thing this hook keeps to itself: the numbers land in the shell-fit
64
71
  * atoms keyed by `shellId`, so anything under `ExegiaProvider` can read the
65
72
  * verdict (`useShellFitState`) or move the panel (`useShellFitActions`)
@@ -71,14 +78,15 @@ export function useShellFit({
71
78
  railOpen,
72
79
  defaultPanelWidth,
73
80
  onUnfit,
74
- }: UseShellFitOptions): ShellFitController {
81
+ }: IUseShellFitOptions): IShellFitController {
75
82
  // A generated key isolates unnamed shells from each other; an explicit
76
83
  // `shellId` is the app's handle on this one.
77
84
  const generatedId = useId()
78
85
  const shellId = explicitId ?? generatedId
86
+ const railWidth = useAtomValueRawSync(shellPanelAtoms(shellId).railWidth)
79
87
 
80
88
  // Read once: `defaultPanelWidth` describes the mount, not every render.
81
- const [seed] = useState<ShellFitSeed>(() => ({
89
+ const [seed] = useState<IShellFitSeed>(() => ({
82
90
  panelWidth: defaultPanelWidth ?? null,
83
91
  }))
84
92
 
@@ -110,13 +118,17 @@ export function useShellFit({
110
118
  if (!fitsPanel(next)) onUnfitRef.current?.()
111
119
  }
112
120
 
113
- // Measured before paint so a shell that cannot hold the panel never
114
- // flashes one, and re-measured on every fold because the rail's column is
115
- // part of the room the panel needs.
121
+ // Observe the host, including changes from a split view or surrounding
122
+ // navigation that never trigger a window resize.
116
123
  takeMeasurement()
124
+ const observer = new ResizeObserver(takeMeasurement)
125
+ observer.observe(host)
117
126
  window.addEventListener("resize", takeMeasurement)
118
- return () => window.removeEventListener("resize", takeMeasurement)
119
- }, [hostRef, railOpen, measure])
127
+ return () => {
128
+ observer.disconnect()
129
+ window.removeEventListener("resize", takeMeasurement)
130
+ }
131
+ }, [hostRef, railOpen, railWidth, measure])
120
132
 
121
133
  // A shell the hook keyed is scrap once its component goes. An explicit
122
134
  // `shellId` is the app's key and outlives the mount — that is what lets a
@@ -128,8 +140,14 @@ export function useShellFit({
128
140
 
129
141
  const state = useAtomValueRawSync(shellFitStateAtom(shellId))
130
142
 
131
- return useMemo<ShellFitController>(
132
- () => ({ shellId, ...state, resizePanel, resetPanelWidth }),
133
- [shellId, state, resizePanel, resetPanelWidth]
143
+ return useMemo<IShellFitController>(
144
+ () => ({
145
+ shellId,
146
+ ...state,
147
+ defaultPanelWidth: seed.panelWidth,
148
+ resizePanel,
149
+ resetPanelWidth,
150
+ }),
151
+ [shellId, state, seed.panelWidth, resizePanel, resetPanelWidth]
134
152
  )
135
153
  }
@@ -1,21 +1,22 @@
1
1
  "use client"
2
2
 
3
- import { useCallback, useEffect, useId, useMemo, useState } from "react"
3
+ import { useCallback, useEffect, useId, useMemo } from "react"
4
4
  import type { ReactNode } from "react"
5
+ import { shellPanelAtoms } from "./shell-panel-atom"
5
6
  import { useAtomValueRawSync, useSetAtom } from "jotai"
6
7
 
7
8
  import {
8
9
  removeShellFitInstance,
9
10
  resizeShellPanelAtom,
10
11
  shellFitFitsAtom,
12
+ shellFitStateAtom,
11
13
  shellFitPanelWidthAtom,
12
14
  } from "./shell-fit-atom"
13
15
  import type {
14
- ShellPanelControlProps,
15
- ShellPanelControls,
16
- SidebarComponentMap,
17
- SidebarSide,
18
- UseShellPanelsOptions,
16
+ TShellPanelControlProps,
17
+ IShellPanelControls,
18
+ TSidebarSide,
19
+ IUseShellPanelsOptions,
19
20
  } from "./type"
20
21
 
21
22
  /**
@@ -42,7 +43,7 @@ export function useShellPanels({
42
43
  defaultOpenMobile,
43
44
  defaultPanelWidth,
44
45
  onPanelChange,
45
- }: UseShellPanelsOptions = {}): ShellPanelControls {
46
+ }: IUseShellPanelsOptions = {}): IShellPanelControls {
46
47
  // The hook, not the provider, keys the shell: it renders above the provider
47
48
  // and has to read the same atoms the provider writes. Whoever generates the
48
49
  // key drops it — the provider treats a passed-in id as the app's and leaves
@@ -54,65 +55,28 @@ export function useShellPanels({
54
55
  return () => removeShellFitInstance(shellId)
55
56
  }, [shellId, explicitId])
56
57
 
57
- const [open, setOpenState] = useState<Record<SidebarSide, boolean>>(() => ({
58
- left: defaultOpen?.left ?? true,
59
- right: defaultOpen?.right ?? false,
60
- }))
61
- const [openMobile, setOpenMobileState] = useState<
62
- Record<SidebarSide, boolean>
63
- >(() => ({
64
- left: defaultOpenMobile?.left ?? false,
65
- right: defaultOpenMobile?.right ?? false,
66
- }))
58
+ const atoms = shellPanelAtoms(shellId)
59
+ const sidebarWidth = useAtomValueRawSync(atoms.railWidth)
60
+ const resizeSidebar = useSetAtom(atoms.resizeSidebar)
61
+ const open = useAtomValueRawSync(atoms.open)
62
+ const openMobile = useAtomValueRawSync(atoms.mobile)
63
+ const setOpen = useSetAtom(atoms.setOpen)
64
+ const setOpenMobile = useSetAtom(atoms.setOpenMobile)
65
+ const toggle = useSetAtom(atoms.toggle)
66
+ const panelComponents = useAtomValueRawSync(atoms.components)
67
+ const setPanelComponents = useSetAtom(atoms.components)
67
68
 
68
69
  // Reads false until the shell has measured itself — an unmeasured shell
69
70
  // fails open, so nothing out here stands down over a reading that has not
70
71
  // happened yet.
71
72
  const fits = useAtomValueRawSync(shellFitFitsAtom(shellId))
72
73
  const isNarrow = !fits
74
+ const { sidebar } = useAtomValueRawSync(shellFitStateAtom(shellId))
73
75
  const panelWidth = useAtomValueRawSync(shellFitPanelWidthAtom(shellId))
74
76
  const resizePanel = useSetAtom(resizeShellPanelAtom(shellId))
75
77
 
76
- // The shell drops the right panel when the viewport cannot hold it, so
77
- // opening it from out here would only surface later as a panel nobody
78
- // asked for. Closing always goes through — that is how state left over
79
- // from a wider viewport clears.
80
- const setOpen = useCallback(
81
- (nextOpen: boolean, side: SidebarSide) => {
82
- if (nextOpen && side === "right" && isNarrow) return
83
-
84
- setOpenState((prev) =>
85
- prev[side] === nextOpen ? prev : { ...prev, [side]: nextOpen }
86
- )
87
- onPanelChange?.(nextOpen, side)
88
- },
89
- [isNarrow, onPanelChange]
90
- )
91
-
92
- const setOpenMobile = useCallback(
93
- (nextOpen: boolean, side: SidebarSide) => {
94
- if (nextOpen && side === "right" && isNarrow) return
95
-
96
- setOpenMobileState((prev) =>
97
- prev[side] === nextOpen ? prev : { ...prev, [side]: nextOpen }
98
- )
99
- onPanelChange?.(nextOpen, side)
100
- },
101
- [isNarrow, onPanelChange]
102
- )
103
-
104
- const toggle = useCallback(
105
- (side: SidebarSide) => setOpen(!open[side], side),
106
- [open, setOpen]
107
- )
108
-
109
- // The content sticks even when the open is refused (too narrow): it is
110
- // what the panel shows whenever it next gets to open, not a one-shot.
111
- const [panelComponents, setPanelComponents] = useState<SidebarComponentMap>(
112
- {}
113
- )
114
78
  const openPanel = useCallback(
115
- (side: SidebarSide, component?: ReactNode) => {
79
+ (side: TSidebarSide, component?: ReactNode) => {
116
80
  if (component !== undefined) {
117
81
  setPanelComponents((prev) =>
118
82
  prev[side] === component ? prev : { ...prev, [side]: component }
@@ -120,32 +84,34 @@ export function useShellPanels({
120
84
  }
121
85
  setOpen(true, side)
122
86
  },
123
- [setOpen]
87
+ [setOpen, setPanelComponents]
124
88
  )
125
89
 
126
- const providerProps = useMemo<ShellPanelControlProps>(
90
+ const providerProps = useMemo<TShellPanelControlProps>(
127
91
  () => ({
128
92
  shellId,
129
93
  defaultPanelWidth,
130
- open,
131
- onOpenChange: setOpen,
132
- openMobile,
133
- onOpenMobileChange: setOpenMobile,
94
+ defaultOpen,
95
+ defaultOpenMobile,
96
+ onOpenChange: onPanelChange,
97
+ onOpenMobileChange: onPanelChange,
134
98
  panelComponents,
135
99
  }),
136
100
  [
137
101
  shellId,
138
102
  defaultPanelWidth,
139
- open,
140
- openMobile,
141
- setOpen,
142
- setOpenMobile,
103
+ defaultOpen,
104
+ defaultOpenMobile,
105
+ onPanelChange,
143
106
  panelComponents,
144
107
  ]
145
108
  )
146
109
 
147
110
  return {
148
111
  shellId,
112
+ sidebar,
113
+ sidebarWidth,
114
+ resizeSidebar,
149
115
  isNarrow,
150
116
  panelWidth,
151
117
  resizePanel,
@@ -1,3 +1,6 @@
1
+ export const SHELL_BEZEL_CLASSES =
2
+ "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"
3
+
1
4
  export const TITLE_BAR_HEIGHT = 48
2
5
  // The desktop rail settles at a hard zero-width boundary. Keep the spring
3
6
  // critically damped so it cannot overshoot, pause against that boundary, and
@@ -6,8 +9,8 @@ import { EASE_OUT, EASE_DRAWER } from "@/lib/ease.ts"
6
9
  import type { Variants } from "motion/react"
7
10
  import { createContext, useContext, useSyncExternalStore } from "react"
8
11
  import type {
9
- AnimatedSidebarContextValue,
10
- AnimatedSidebarPanelContextValue,
12
+ IAnimatedSidebarContextValue,
13
+ IAnimatedSidebarPanelContextValue,
11
14
  } from "./type"
12
15
 
13
16
  export const SIDEBAR_MORPH_TRANSITION = {
@@ -108,6 +111,7 @@ export const SIDEBAR_KEYBOARD_SHORTCUT = "b"
108
111
  * so an override wins over the value written here.
109
112
  */
110
113
  export const SHELL_WIDTHS = {
114
+ "--sidebar-min-width": "180px",
111
115
  "--sidebar-width": "256px",
112
116
  "--sidebar-width-icon": "56px",
113
117
  "--sidebar-width-mobile": "18rem",
@@ -137,10 +141,10 @@ export function resolveLength(host: HTMLElement, value: string) {
137
141
  }
138
142
 
139
143
  export const AnimatedSidebarContext =
140
- createContext<AnimatedSidebarContextValue | null>(null)
144
+ createContext<IAnimatedSidebarContextValue | null>(null)
141
145
 
142
146
  export const AnimatedSidebarPanelContext =
143
- createContext<AnimatedSidebarPanelContextValue | null>(null)
147
+ createContext<IAnimatedSidebarPanelContextValue | null>(null)
144
148
 
145
149
  export function useAnimatedSidebar() {
146
150
  const context = useContext(AnimatedSidebarContext)
@@ -0,0 +1,325 @@
1
+ import { describe, expect, mock, test } from "bun:test"
2
+ import { render, screen } from "@testing-library/react"
3
+ import userEvent from "@testing-library/user-event"
4
+ import { createStore } from "jotai"
5
+
6
+ import { ExegiaProvider } from "@/lib/state"
7
+ import { AISidebar } from "../ai-sidebar"
8
+ import {
9
+ DEFAULT_AI_SIDEBAR_CONFIG,
10
+ aiSidebarAnnouncementAtom,
11
+ aiSidebarExpandedIdsAtom,
12
+ aiSidebarItemsAtom,
13
+ aiSidebarMovePendingAtom,
14
+ expandAISidebarRowAtom,
15
+ mountAISidebarAtom,
16
+ moveAISidebarRowAtom,
17
+ removeAISidebarInstance,
18
+ renameAISidebarRowAtom,
19
+ resetAISidebarAtom,
20
+ setAISidebarHandlersAtom,
21
+ } from "../ai-sidebar-atom"
22
+ import type { IAISidebarConfig, IAISidebarSeed, ISidebarResource } from "../type"
23
+ import { useAISidebarActions, useAISidebarState } from "../use-ai-sidebar-state"
24
+
25
+ type TStore = ReturnType<typeof createStore>
26
+
27
+ const RESOURCES: ISidebarResource[] = [
28
+ {
29
+ id: "corpora",
30
+ label: "Corpora",
31
+ kind: "project",
32
+ children: [
33
+ { id: "manuscripts", label: "Manuscripts", kind: "folder" },
34
+ { id: "readme", label: "Field notes", kind: "file" },
35
+ ],
36
+ },
37
+ { id: "reading-list", label: "Reading list", kind: "bookmark" },
38
+ { id: "archive", label: "Archive", kind: "folder", disabled: true },
39
+ ]
40
+
41
+ function mount(
42
+ store: TStore,
43
+ id: string,
44
+ config: Partial<IAISidebarConfig> = {},
45
+ seed: Partial<IAISidebarSeed> = {}
46
+ ) {
47
+ store.set(
48
+ mountAISidebarAtom(id),
49
+ { ...DEFAULT_AI_SIDEBAR_CONFIG, ...config },
50
+ {
51
+ items: RESOURCES,
52
+ activeId: null,
53
+ focusedId: null,
54
+ expandedIds: [],
55
+ ...seed,
56
+ }
57
+ )
58
+ }
59
+
60
+ const ids = (items: ISidebarResource[]) => items.map((item) => item.id)
61
+
62
+ describe("ai-sidebar atoms · instance isolation", () => {
63
+ test("two ids never share state", () => {
64
+ const store = createStore()
65
+ mount(store, "a")
66
+ mount(store, "b")
67
+
68
+ store.set(expandAISidebarRowAtom("a"), "corpora")
69
+ expect(store.get(aiSidebarExpandedIdsAtom("a")).has("corpora")).toBe(true)
70
+ expect(store.get(aiSidebarExpandedIdsAtom("b")).has("corpora")).toBe(false)
71
+ })
72
+
73
+ test("two stores never share state under the same id", () => {
74
+ const one = createStore()
75
+ const two = createStore()
76
+ mount(one, "shared")
77
+ mount(two, "shared")
78
+
79
+ one.set(expandAISidebarRowAtom("shared"), "corpora")
80
+ expect(one.get(aiSidebarExpandedIdsAtom("shared")).has("corpora")).toBe(
81
+ true
82
+ )
83
+ expect(two.get(aiSidebarExpandedIdsAtom("shared")).has("corpora")).toBe(
84
+ false
85
+ )
86
+ })
87
+
88
+ test("removeAISidebarInstance drops the slice back to its defaults", () => {
89
+ const store = createStore()
90
+ mount(store, "gone")
91
+ store.set(expandAISidebarRowAtom("gone"), "corpora")
92
+
93
+ removeAISidebarInstance("gone")
94
+ expect(store.get(aiSidebarExpandedIdsAtom("gone")).size).toBe(0)
95
+ expect(store.get(aiSidebarItemsAtom("gone"))).toEqual([])
96
+ })
97
+ })
98
+
99
+ describe("ai-sidebar atoms · write gates", () => {
100
+ test("hook-owned data renames itself", () => {
101
+ const store = createStore()
102
+ mount(store, "owned")
103
+
104
+ store.set(renameAISidebarRowAtom("owned"), "reading-list", " To read ")
105
+ expect(store.get(aiSidebarItemsAtom("owned"))[1]?.label).toBe("To read")
106
+ })
107
+
108
+ test("a controlled items prop is never overwritten, only reported", () => {
109
+ const store = createStore()
110
+ const onItemsChange = mock((items: ISidebarResource[]) => void items)
111
+ mount(store, "controlled", { controlsItems: true })
112
+ store.set(setAISidebarHandlersAtom("controlled"), { onItemsChange })
113
+
114
+ store.set(renameAISidebarRowAtom("controlled"), "reading-list", "To read")
115
+ expect(store.get(aiSidebarItemsAtom("controlled"))[1]?.label).toBe(
116
+ "Reading list"
117
+ )
118
+ expect(onItemsChange).toHaveBeenCalledTimes(1)
119
+ expect(onItemsChange.mock.calls[0]![0][1]?.label).toBe("To read")
120
+
121
+ // A move is gated the same way: the atom keeps the prop's data, the
122
+ // consumer gets the next tree to apply themselves.
123
+ void store.set(moveAISidebarRowAtom("controlled"), {
124
+ itemId: "reading-list",
125
+ targetId: "corpora",
126
+ position: "before",
127
+ })
128
+ expect(ids(store.get(aiSidebarItemsAtom("controlled")))).toEqual([
129
+ "corpora",
130
+ "reading-list",
131
+ "archive",
132
+ ])
133
+ expect(onItemsChange).toHaveBeenCalledTimes(2)
134
+ expect(ids(onItemsChange.mock.calls[1]![0])).toEqual([
135
+ "reading-list",
136
+ "corpora",
137
+ "archive",
138
+ ])
139
+ })
140
+
141
+ test("reset replays the mount seed", () => {
142
+ const store = createStore()
143
+ mount(store, "replay", {}, { expandedIds: ["corpora"] })
144
+ store.set(expandAISidebarRowAtom("replay"), "manuscripts")
145
+ store.set(renameAISidebarRowAtom("replay"), "reading-list", "To read")
146
+
147
+ store.set(resetAISidebarAtom("replay"))
148
+ expect([...store.get(aiSidebarExpandedIdsAtom("replay"))]).toEqual([
149
+ "corpora",
150
+ ])
151
+ expect(store.get(aiSidebarItemsAtom("replay"))[1]?.label).toBe(
152
+ "Reading list"
153
+ )
154
+ expect(store.get(aiSidebarAnnouncementAtom("replay"))).toBe("")
155
+ })
156
+ })
157
+
158
+ describe("ai-sidebar atoms · optimistic move", () => {
159
+ test("a rejected onMove rolls the data back and announces it", async () => {
160
+ const store = createStore()
161
+ const onMoveError = mock(() => {})
162
+ mount(store, "rollback")
163
+ store.set(setAISidebarHandlersAtom("rollback"), {
164
+ onMove: () => Promise.reject(new Error("409")),
165
+ onMoveError,
166
+ })
167
+
168
+ const pending = store.set(moveAISidebarRowAtom("rollback"), {
169
+ itemId: "reading-list",
170
+ targetId: "corpora",
171
+ position: "before",
172
+ })
173
+ // The move applies optimistically and announces before onMove settles…
174
+ expect(ids(store.get(aiSidebarItemsAtom("rollback")))).toEqual([
175
+ "reading-list",
176
+ "corpora",
177
+ "archive",
178
+ ])
179
+ expect(store.get(aiSidebarAnnouncementAtom("rollback"))).toContain(
180
+ "Moved Reading list before Corpora"
181
+ )
182
+
183
+ await pending
184
+ // …and the rejection restores the previous order.
185
+ expect(ids(store.get(aiSidebarItemsAtom("rollback")))).toEqual([
186
+ "corpora",
187
+ "reading-list",
188
+ "archive",
189
+ ])
190
+ expect(store.get(aiSidebarAnnouncementAtom("rollback"))).toContain(
191
+ "Move failed"
192
+ )
193
+ expect(onMoveError).toHaveBeenCalled()
194
+ expect(store.get(aiSidebarMovePendingAtom("rollback"))).toBe(false)
195
+ })
196
+
197
+ test("a second move is refused while one is in flight", async () => {
198
+ const store = createStore()
199
+ let release!: () => void
200
+ mount(store, "pending")
201
+ store.set(setAISidebarHandlersAtom("pending"), {
202
+ onMove: () =>
203
+ new Promise<void>((resolve) => {
204
+ release = resolve
205
+ }),
206
+ })
207
+
208
+ const first = store.set(moveAISidebarRowAtom("pending"), {
209
+ itemId: "reading-list",
210
+ targetId: "corpora",
211
+ position: "before",
212
+ })
213
+ const second = store.set(moveAISidebarRowAtom("pending"), {
214
+ itemId: "archive",
215
+ targetId: "corpora",
216
+ position: "before",
217
+ })
218
+ // The second move never touched the data, only the live region.
219
+ expect(store.get(aiSidebarAnnouncementAtom("pending"))).toBe(
220
+ "Wait for the current move to finish."
221
+ )
222
+ expect(ids(store.get(aiSidebarItemsAtom("pending")))).toEqual([
223
+ "reading-list",
224
+ "corpora",
225
+ "archive",
226
+ ])
227
+
228
+ release()
229
+ await Promise.all([first, second])
230
+ expect(store.get(aiSidebarMovePendingAtom("pending"))).toBe(false)
231
+ })
232
+ })
233
+
234
+ describe("ExegiaProvider · driving a sidebar by id", () => {
235
+ /** A component with no relationship to the sidebar beyond its id. */
236
+ function Remote() {
237
+ const actions = useAISidebarActions("app-resources")
238
+ const { expandedIds } = useAISidebarState("app-resources")
239
+ return (
240
+ <button onClick={() => actions.expand("corpora")} type="button">
241
+ {`expand (${expandedIds.size})`}
242
+ </button>
243
+ )
244
+ }
245
+
246
+ test("a sibling component expands the sidebar through one provider", async () => {
247
+ const user = userEvent.setup()
248
+ render(
249
+ <ExegiaProvider store={createStore()}>
250
+ <AISidebar defaultItems={RESOURCES} sidebarId="app-resources" />
251
+ <Remote />
252
+ </ExegiaProvider>
253
+ )
254
+
255
+ // corpora starts collapsed, so its children start unmounted.
256
+ expect(screen.queryByRole("treeitem", { name: /Field notes/ })).toBeNull()
257
+
258
+ await user.click(screen.getByRole("button", { name: /^expand/ }))
259
+ expect(
260
+ await screen.findByRole("treeitem", { name: /Field notes/ })
261
+ ).toBeDefined()
262
+ // The remote reader saw the change too.
263
+ expect(screen.getByRole("button", { name: "expand (1)" })).toBeDefined()
264
+ })
265
+ })
266
+
267
+ describe("AISidebar · render granularity", () => {
268
+ test("expanding and selecting one row leave a sibling row untouched", async () => {
269
+ const user = userEvent.setup()
270
+ // `renderIcon` runs inside a row's render, so counting calls per id is a
271
+ // proxy for counting that row's renders.
272
+ const renders = new Map<string, number>()
273
+
274
+ function Driver() {
275
+ const actions = useAISidebarActions("granular")
276
+ return (
277
+ <>
278
+ <button onClick={() => actions.expand("corpora")} type="button">
279
+ open
280
+ </button>
281
+ <button onClick={() => actions.select("reading-list")} type="button">
282
+ pick
283
+ </button>
284
+ </>
285
+ )
286
+ }
287
+
288
+ render(
289
+ <ExegiaProvider store={createStore()}>
290
+ <AISidebar
291
+ defaultItems={RESOURCES}
292
+ renderIcon={(item) => {
293
+ renders.set(item.id, (renders.get(item.id) ?? 0) + 1)
294
+ return null
295
+ }}
296
+ sidebarId="granular"
297
+ />
298
+ <Driver />
299
+ </ExegiaProvider>
300
+ )
301
+
302
+ const beforeCorpora = renders.get("corpora") ?? 0
303
+ const beforeReadingList = renders.get("reading-list") ?? 0
304
+ const beforeArchive = renders.get("archive") ?? 0
305
+ expect(beforeCorpora).toBeGreaterThan(0)
306
+ expect(beforeReadingList).toBeGreaterThan(0)
307
+
308
+ await user.click(screen.getByRole("button", { name: "open" }))
309
+ await screen.findByRole("treeitem", { name: /Field notes/ })
310
+
311
+ // corpora's branch opened, so its row re-rendered…
312
+ expect(renders.get("corpora")).toBeGreaterThan(beforeCorpora)
313
+ // …and its siblings, whose atoms did not change, did not.
314
+ expect(renders.get("reading-list")).toBe(beforeReadingList)
315
+ expect(renders.get("archive")).toBe(beforeArchive)
316
+
317
+ const expandedCorpora = renders.get("corpora") ?? 0
318
+ await user.click(screen.getByRole("button", { name: "pick" }))
319
+
320
+ // Selection flips reading-list's own atom and nobody else's.
321
+ expect(renders.get("reading-list")).toBeGreaterThan(beforeReadingList)
322
+ expect(renders.get("corpora")).toBe(expandedCorpora)
323
+ expect(renders.get("archive")).toBe(beforeArchive)
324
+ })
325
+ })