@dungle-scrubs/admin-ui-soft 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/GUIDE.md +110 -0
  2. package/LICENSE +21 -0
  3. package/README.md +36 -2
  4. package/THIRD-PARTY-NOTICES.md +25 -0
  5. package/UPSTREAM-VENDORED-CHANGES.md +317 -0
  6. package/VENDORED-CHANGES.md +60 -0
  7. package/dist/_virtual/_rolldown/runtime.js +13 -0
  8. package/dist/ai/compositions/agent-console/agent-console.d.ts +109 -0
  9. package/dist/ai/compositions/agent-console/agent-console.js +644 -0
  10. package/dist/ai/compositions/attention-feed/attention-feed.d.ts +127 -0
  11. package/dist/ai/compositions/attention-feed/attention-feed.js +626 -0
  12. package/dist/ai/compositions/conversation-browser/conversation-browser.d.ts +126 -0
  13. package/dist/ai/compositions/conversation-browser/conversation-browser.js +364 -0
  14. package/dist/ai/compositions/redaction-marker/redaction-marker.d.ts +42 -0
  15. package/dist/ai/compositions/redaction-marker/redaction-marker.js +202 -0
  16. package/dist/ai/compositions/run-inspector/json-view.js +164 -0
  17. package/dist/ai/compositions/run-inspector/run-inspector.d.ts +66 -0
  18. package/dist/ai/compositions/run-inspector/run-inspector.js +703 -0
  19. package/dist/ai/compositions/run-inspector/run-model.js +155 -0
  20. package/dist/ai/compositions/tool-approval/json-args.js +54 -0
  21. package/dist/ai/compositions/tool-approval/tool-approval.d.ts +57 -0
  22. package/dist/ai/compositions/tool-approval/tool-approval.js +331 -0
  23. package/dist/ai/compositions/tool-call-row/tool-call-row.js +74 -0
  24. package/dist/ai/compositions/transcript-viewer/to-thread-messages.js +65 -0
  25. package/dist/ai/compositions/transcript-viewer/transcript-viewer.d.ts +63 -0
  26. package/dist/ai/compositions/transcript-viewer/transcript-viewer.js +471 -0
  27. package/dist/ai/compositions/usage-meter/usage-format.js +107 -0
  28. package/dist/ai/compositions/usage-meter/usage-meter.d.ts +32 -0
  29. package/dist/ai/compositions/usage-meter/usage-meter.js +258 -0
  30. package/dist/ai/testing/mock-clock.d.ts +31 -0
  31. package/dist/ai/testing/mock-clock.js +66 -0
  32. package/dist/ai/testing/mock-reply.d.ts +70 -0
  33. package/dist/ai/testing/mock-reply.js +100 -0
  34. package/dist/ai/testing/mock-runtime.d.ts +86 -0
  35. package/dist/ai/testing/mock-runtime.js +384 -0
  36. package/dist/ai/types.d.ts +323 -0
  37. package/dist/ai.css +1088 -0
  38. package/dist/ai.d.ts +160 -0
  39. package/dist/ai.js +158 -0
  40. package/dist/components/assistant-ui/elements/activity-graph.d.ts +14 -0
  41. package/dist/components/assistant-ui/elements/activity-graph.js +69 -0
  42. package/dist/components/assistant-ui/elements/agent-card.d.ts +21 -0
  43. package/dist/components/assistant-ui/elements/agent-card.js +75 -0
  44. package/dist/components/assistant-ui/elements/agent-handoff.d.ts +13 -0
  45. package/dist/components/assistant-ui/elements/agent-handoff.js +47 -0
  46. package/dist/components/assistant-ui/elements/agent-plan.d.ts +16 -0
  47. package/dist/components/assistant-ui/elements/agent-plan.js +93 -0
  48. package/dist/components/assistant-ui/elements/agent-status.aui.d.ts +24 -0
  49. package/dist/components/assistant-ui/elements/agent-status.aui.js +161 -0
  50. package/dist/components/assistant-ui/elements/agent-status.d.ts +17 -0
  51. package/dist/components/assistant-ui/elements/agent-status.js +47 -0
  52. package/dist/components/assistant-ui/elements/approval-card.d.ts +31 -0
  53. package/dist/components/assistant-ui/elements/approval-card.js +99 -0
  54. package/dist/components/assistant-ui/elements/artifact-card.d.ts +12 -0
  55. package/dist/components/assistant-ui/elements/artifact-card.js +47 -0
  56. package/dist/components/assistant-ui/elements/assistant-modal.aui.d.ts +7 -0
  57. package/dist/components/assistant-ui/elements/assistant-modal.aui.js +276 -0
  58. package/dist/components/assistant-ui/elements/assistant-sidebar.aui.d.ts +7 -0
  59. package/dist/components/assistant-ui/elements/assistant-sidebar.aui.js +18 -0
  60. package/dist/components/assistant-ui/elements/attachment.aui.d.ts +9 -0
  61. package/dist/components/assistant-ui/elements/attachment.aui.js +143 -0
  62. package/dist/components/assistant-ui/elements/background-inbox.d.ts +18 -0
  63. package/dist/components/assistant-ui/elements/background-inbox.js +65 -0
  64. package/dist/components/assistant-ui/elements/canvas-split.d.ts +25 -0
  65. package/dist/components/assistant-ui/elements/canvas-split.js +106 -0
  66. package/dist/components/assistant-ui/elements/chart.d.ts +19 -0
  67. package/dist/components/assistant-ui/elements/chart.js +105 -0
  68. package/dist/components/assistant-ui/elements/chat-panel.d.ts +15 -0
  69. package/dist/components/assistant-ui/elements/chat-panel.js +82 -0
  70. package/dist/components/assistant-ui/elements/checkpoint-history.d.ts +17 -0
  71. package/dist/components/assistant-ui/elements/checkpoint-history.js +60 -0
  72. package/dist/components/assistant-ui/elements/code-diff.d.ts +18 -0
  73. package/dist/components/assistant-ui/elements/code-diff.js +89 -0
  74. package/dist/components/assistant-ui/elements/code-runner.d.ts +15 -0
  75. package/dist/components/assistant-ui/elements/code-runner.js +108 -0
  76. package/dist/components/assistant-ui/elements/command-palette.d.ts +20 -0
  77. package/dist/components/assistant-ui/elements/command-palette.js +129 -0
  78. package/dist/components/assistant-ui/elements/comparison-card.d.ts +18 -0
  79. package/dist/components/assistant-ui/elements/comparison-card.js +58 -0
  80. package/dist/components/assistant-ui/elements/composer-trigger-popover.aui.d.ts +51 -0
  81. package/dist/components/assistant-ui/elements/composer-trigger-popover.aui.js +104 -0
  82. package/dist/components/assistant-ui/elements/composer.d.ts +91 -0
  83. package/dist/components/assistant-ui/elements/composer.js +416 -0
  84. package/dist/components/assistant-ui/elements/computer-use.d.ts +19 -0
  85. package/dist/components/assistant-ui/elements/computer-use.js +84 -0
  86. package/dist/components/assistant-ui/elements/confidence-marker.d.ts +20 -0
  87. package/dist/components/assistant-ui/elements/confidence-marker.js +58 -0
  88. package/dist/components/assistant-ui/elements/connection-state.d.ts +13 -0
  89. package/dist/components/assistant-ui/elements/connection-state.js +59 -0
  90. package/dist/components/assistant-ui/elements/context-breakdown.d.ts +15 -0
  91. package/dist/components/assistant-ui/elements/context-breakdown.js +91 -0
  92. package/dist/components/assistant-ui/elements/context-display.aui.d.ts +25 -0
  93. package/dist/components/assistant-ui/elements/context-display.aui.js +26 -0
  94. package/dist/components/assistant-ui/elements/context-display.d.ts +43 -0
  95. package/dist/components/assistant-ui/elements/context-display.js +300 -0
  96. package/dist/components/assistant-ui/elements/conversation-map.aui.d.ts +9 -0
  97. package/dist/components/assistant-ui/elements/conversation-map.aui.js +177 -0
  98. package/dist/components/assistant-ui/elements/conversation-map.d.ts +19 -0
  99. package/dist/components/assistant-ui/elements/conversation-map.js +84 -0
  100. package/dist/components/assistant-ui/elements/conversation-search.d.ts +20 -0
  101. package/dist/components/assistant-ui/elements/conversation-search.js +75 -0
  102. package/dist/components/assistant-ui/elements/cost-meter.d.ts +19 -0
  103. package/dist/components/assistant-ui/elements/cost-meter.js +76 -0
  104. package/dist/components/assistant-ui/elements/data-table.d.ts +72 -0
  105. package/dist/components/assistant-ui/elements/data-table.js +368 -0
  106. package/dist/components/assistant-ui/elements/day-separator.d.ts +16 -0
  107. package/dist/components/assistant-ui/elements/day-separator.js +44 -0
  108. package/dist/components/assistant-ui/elements/diagram.d.ts +15 -0
  109. package/dist/components/assistant-ui/elements/diagram.js +65 -0
  110. package/dist/components/assistant-ui/elements/directive-text.aui.d.ts +11 -0
  111. package/dist/components/assistant-ui/elements/directive-text.aui.js +18 -0
  112. package/dist/components/assistant-ui/elements/directive-text.d.ts +32 -0
  113. package/dist/components/assistant-ui/elements/directive-text.js +35 -0
  114. package/dist/components/assistant-ui/elements/document-reference.d.ts +17 -0
  115. package/dist/components/assistant-ui/elements/document-reference.js +62 -0
  116. package/dist/components/assistant-ui/elements/draft-restore.d.ts +12 -0
  117. package/dist/components/assistant-ui/elements/draft-restore.js +43 -0
  118. package/dist/components/assistant-ui/elements/edit-message.d.ts +15 -0
  119. package/dist/components/assistant-ui/elements/edit-message.js +63 -0
  120. package/dist/components/assistant-ui/elements/elicitation-form.d.ts +23 -0
  121. package/dist/components/assistant-ui/elements/elicitation-form.js +112 -0
  122. package/dist/components/assistant-ui/elements/empty-state.d.ts +16 -0
  123. package/dist/components/assistant-ui/elements/empty-state.js +71 -0
  124. package/dist/components/assistant-ui/elements/error-state.d.ts +13 -0
  125. package/dist/components/assistant-ui/elements/error-state.js +52 -0
  126. package/dist/components/assistant-ui/elements/feedback-dialog.d.ts +15 -0
  127. package/dist/components/assistant-ui/elements/feedback-dialog.js +77 -0
  128. package/dist/components/assistant-ui/elements/file-tree.d.ts +20 -0
  129. package/dist/components/assistant-ui/elements/file-tree.js +74 -0
  130. package/dist/components/assistant-ui/elements/file.d.ts +52 -0
  131. package/dist/components/assistant-ui/elements/file.js +222 -0
  132. package/dist/components/assistant-ui/elements/flow-graph.d.ts +23 -0
  133. package/dist/components/assistant-ui/elements/flow-graph.js +72 -0
  134. package/dist/components/assistant-ui/elements/follow-up-suggestions.aui.d.ts +7 -0
  135. package/dist/components/assistant-ui/elements/follow-up-suggestions.aui.js +30 -0
  136. package/dist/components/assistant-ui/elements/generative-ui.d.ts +8 -0
  137. package/dist/components/assistant-ui/elements/generative-ui.js +27 -0
  138. package/dist/components/assistant-ui/elements/geo-map.d.ts +29 -0
  139. package/dist/components/assistant-ui/elements/geo-map.js +190 -0
  140. package/dist/components/assistant-ui/elements/guardrail-notice.d.ts +15 -0
  141. package/dist/components/assistant-ui/elements/guardrail-notice.js +59 -0
  142. package/dist/components/assistant-ui/elements/heat-graph.d.ts +9 -0
  143. package/dist/components/assistant-ui/elements/heat-graph.js +90 -0
  144. package/dist/components/assistant-ui/elements/image-gallery.d.ts +22 -0
  145. package/dist/components/assistant-ui/elements/image-gallery.js +192 -0
  146. package/dist/components/assistant-ui/elements/image-generation.d.ts +11 -0
  147. package/dist/components/assistant-ui/elements/image-generation.js +64 -0
  148. package/dist/components/assistant-ui/elements/image.d.ts +59 -0
  149. package/dist/components/assistant-ui/elements/image.js +416 -0
  150. package/dist/components/assistant-ui/elements/inline-citation.d.ts +23 -0
  151. package/dist/components/assistant-ui/elements/inline-citation.js +90 -0
  152. package/dist/components/assistant-ui/elements/job-progress.d.ts +25 -0
  153. package/dist/components/assistant-ui/elements/job-progress.js +102 -0
  154. package/dist/components/assistant-ui/elements/launcher-bubble.d.ts +15 -0
  155. package/dist/components/assistant-ui/elements/launcher-bubble.js +71 -0
  156. package/dist/components/assistant-ui/elements/link-preview.d.ts +17 -0
  157. package/dist/components/assistant-ui/elements/link-preview.js +77 -0
  158. package/dist/components/assistant-ui/elements/loading-state.d.ts +13 -0
  159. package/dist/components/assistant-ui/elements/loading-state.js +33 -0
  160. package/dist/components/assistant-ui/elements/logos.d.ts +10 -0
  161. package/dist/components/assistant-ui/elements/logos.js +63 -0
  162. package/dist/components/assistant-ui/elements/map-answer.d.ts +19 -0
  163. package/dist/components/assistant-ui/elements/map-answer.js +120 -0
  164. package/dist/components/assistant-ui/elements/markdown-text.d.ts +11 -0
  165. package/dist/components/assistant-ui/elements/markdown-text.js +152 -0
  166. package/dist/components/assistant-ui/elements/math-block.d.ts +25 -0
  167. package/dist/components/assistant-ui/elements/math-block.js +60 -0
  168. package/dist/components/assistant-ui/elements/mcp-config.aui.d.ts +28 -0
  169. package/dist/components/assistant-ui/elements/mcp-config.aui.js +380 -0
  170. package/dist/components/assistant-ui/elements/mcp-server-panel.d.ts +20 -0
  171. package/dist/components/assistant-ui/elements/mcp-server-panel.js +114 -0
  172. package/dist/components/assistant-ui/elements/media-player.d.ts +21 -0
  173. package/dist/components/assistant-ui/elements/media-player.js +302 -0
  174. package/dist/components/assistant-ui/elements/memory-chips.d.ts +16 -0
  175. package/dist/components/assistant-ui/elements/memory-chips.js +44 -0
  176. package/dist/components/assistant-ui/elements/mermaid-diagram.aui.d.ts +14 -0
  177. package/dist/components/assistant-ui/elements/mermaid-diagram.aui.js +43 -0
  178. package/dist/components/assistant-ui/elements/mermaid-diagram.d.ts +20 -0
  179. package/dist/components/assistant-ui/elements/mermaid-diagram.js +258 -0
  180. package/dist/components/assistant-ui/elements/message-actions.d.ts +17 -0
  181. package/dist/components/assistant-ui/elements/message-actions.js +57 -0
  182. package/dist/components/assistant-ui/elements/message-attachment.d.ts +18 -0
  183. package/dist/components/assistant-ui/elements/message-attachment.js +58 -0
  184. package/dist/components/assistant-ui/elements/message-branches.d.ts +12 -0
  185. package/dist/components/assistant-ui/elements/message-branches.js +55 -0
  186. package/dist/components/assistant-ui/elements/message-pair.d.ts +16 -0
  187. package/dist/components/assistant-ui/elements/message-pair.js +63 -0
  188. package/dist/components/assistant-ui/elements/message-queue.d.ts +15 -0
  189. package/dist/components/assistant-ui/elements/message-queue.js +70 -0
  190. package/dist/components/assistant-ui/elements/message-timing.aui.d.ts +30 -0
  191. package/dist/components/assistant-ui/elements/message-timing.aui.js +98 -0
  192. package/dist/components/assistant-ui/elements/message-timing.d.ts +14 -0
  193. package/dist/components/assistant-ui/elements/message-timing.js +26 -0
  194. package/dist/components/assistant-ui/elements/mobile-composer.d.ts +18 -0
  195. package/dist/components/assistant-ui/elements/mobile-composer.js +76 -0
  196. package/dist/components/assistant-ui/elements/model-picker.d.ts +19 -0
  197. package/dist/components/assistant-ui/elements/model-picker.js +68 -0
  198. package/dist/components/assistant-ui/elements/model-selector.aui.d.ts +23 -0
  199. package/dist/components/assistant-ui/elements/model-selector.aui.js +79 -0
  200. package/dist/components/assistant-ui/elements/model-selector.d.ts +130 -0
  201. package/dist/components/assistant-ui/elements/model-selector.js +399 -0
  202. package/dist/components/assistant-ui/elements/number-ticker.d.ts +10 -0
  203. package/dist/components/assistant-ui/elements/number-ticker.js +41 -0
  204. package/dist/components/assistant-ui/elements/onboarding.d.ts +17 -0
  205. package/dist/components/assistant-ui/elements/onboarding.js +69 -0
  206. package/dist/components/assistant-ui/elements/option-list.d.ts +39 -0
  207. package/dist/components/assistant-ui/elements/option-list.js +176 -0
  208. package/dist/components/assistant-ui/elements/permission-grant.d.ts +14 -0
  209. package/dist/components/assistant-ui/elements/permission-grant.js +84 -0
  210. package/dist/components/assistant-ui/elements/prompt-library.d.ts +20 -0
  211. package/dist/components/assistant-ui/elements/prompt-library.js +121 -0
  212. package/dist/components/assistant-ui/elements/question-flow.d.ts +24 -0
  213. package/dist/components/assistant-ui/elements/question-flow.js +180 -0
  214. package/dist/components/assistant-ui/elements/quota-banner.d.ts +14 -0
  215. package/dist/components/assistant-ui/elements/quota-banner.js +68 -0
  216. package/dist/components/assistant-ui/elements/quote-reply.d.ts +20 -0
  217. package/dist/components/assistant-ui/elements/quote-reply.js +66 -0
  218. package/dist/components/assistant-ui/elements/quote.aui.d.ts +61 -0
  219. package/dist/components/assistant-ui/elements/quote.aui.js +170 -0
  220. package/dist/components/assistant-ui/elements/read-aloud.d.ts +16 -0
  221. package/dist/components/assistant-ui/elements/read-aloud.js +66 -0
  222. package/dist/components/assistant-ui/elements/reasoning-effort.d.ts +17 -0
  223. package/dist/components/assistant-ui/elements/reasoning-effort.js +67 -0
  224. package/dist/components/assistant-ui/elements/reasoning-panel.d.ts +20 -0
  225. package/dist/components/assistant-ui/elements/reasoning-panel.js +60 -0
  226. package/dist/components/assistant-ui/elements/reasoning.aui.d.ts +24 -0
  227. package/dist/components/assistant-ui/elements/reasoning.aui.js +70 -0
  228. package/dist/components/assistant-ui/elements/reasoning.d.ts +38 -0
  229. package/dist/components/assistant-ui/elements/reasoning.js +194 -0
  230. package/dist/components/assistant-ui/elements/recommendation-card.d.ts +16 -0
  231. package/dist/components/assistant-ui/elements/recommendation-card.js +65 -0
  232. package/dist/components/assistant-ui/elements/regenerate-menu.d.ts +18 -0
  233. package/dist/components/assistant-ui/elements/regenerate-menu.js +46 -0
  234. package/dist/components/assistant-ui/elements/research-report.d.ts +19 -0
  235. package/dist/components/assistant-ui/elements/research-report.js +63 -0
  236. package/dist/components/assistant-ui/elements/retrieval-chunks.d.ts +19 -0
  237. package/dist/components/assistant-ui/elements/retrieval-chunks.js +86 -0
  238. package/dist/components/assistant-ui/elements/reviewable-diff.d.ts +21 -0
  239. package/dist/components/assistant-ui/elements/reviewable-diff.js +104 -0
  240. package/dist/components/assistant-ui/elements/schedule-card.d.ts +19 -0
  241. package/dist/components/assistant-ui/elements/schedule-card.js +80 -0
  242. package/dist/components/assistant-ui/elements/score-breakdown.d.ts +19 -0
  243. package/dist/components/assistant-ui/elements/score-breakdown.js +107 -0
  244. package/dist/components/assistant-ui/elements/scroll-anchor.d.ts +15 -0
  245. package/dist/components/assistant-ui/elements/scroll-anchor.js +104 -0
  246. package/dist/components/assistant-ui/elements/settings-panel.d.ts +23 -0
  247. package/dist/components/assistant-ui/elements/settings-panel.js +108 -0
  248. package/dist/components/assistant-ui/elements/shared-conversation.d.ts +18 -0
  249. package/dist/components/assistant-ui/elements/shared-conversation.js +56 -0
  250. package/dist/components/assistant-ui/elements/shiki-highlighter.aui.d.ts +29 -0
  251. package/dist/components/assistant-ui/elements/shiki-highlighter.aui.js +31 -0
  252. package/dist/components/assistant-ui/elements/shiki-highlighter.d.ts +26 -0
  253. package/dist/components/assistant-ui/elements/shiki-highlighter.js +49 -0
  254. package/dist/components/assistant-ui/elements/sources.aui.d.ts +24 -0
  255. package/dist/components/assistant-ui/elements/sources.aui.js +121 -0
  256. package/dist/components/assistant-ui/elements/sources.d.ts +21 -0
  257. package/dist/components/assistant-ui/elements/sources.js +109 -0
  258. package/dist/components/assistant-ui/elements/speaker-identity.d.ts +17 -0
  259. package/dist/components/assistant-ui/elements/speaker-identity.js +45 -0
  260. package/dist/components/assistant-ui/elements/spec-sheet.d.ts +17 -0
  261. package/dist/components/assistant-ui/elements/spec-sheet.js +39 -0
  262. package/dist/components/assistant-ui/elements/stopped-run.d.ts +12 -0
  263. package/dist/components/assistant-ui/elements/stopped-run.js +44 -0
  264. package/dist/components/assistant-ui/elements/streaming-text.d.ts +15 -0
  265. package/dist/components/assistant-ui/elements/streaming-text.js +45 -0
  266. package/dist/components/assistant-ui/elements/subagent-list.d.ts +17 -0
  267. package/dist/components/assistant-ui/elements/subagent-list.js +74 -0
  268. package/dist/components/assistant-ui/elements/suggestions.d.ts +14 -0
  269. package/dist/components/assistant-ui/elements/suggestions.js +25 -0
  270. package/dist/components/assistant-ui/elements/surfaces.d.ts +42 -0
  271. package/dist/components/assistant-ui/elements/surfaces.js +87 -0
  272. package/dist/components/assistant-ui/elements/syntax-highlighter.d.ts +7 -0
  273. package/dist/components/assistant-ui/elements/syntax-highlighter.js +41 -0
  274. package/dist/components/assistant-ui/elements/task-card.aui.d.ts +24 -0
  275. package/dist/components/assistant-ui/elements/task-card.aui.js +136 -0
  276. package/dist/components/assistant-ui/elements/task-card.d.ts +22 -0
  277. package/dist/components/assistant-ui/elements/task-card.js +104 -0
  278. package/dist/components/assistant-ui/elements/terminal-block.d.ts +27 -0
  279. package/dist/components/assistant-ui/elements/terminal-block.js +266 -0
  280. package/dist/components/assistant-ui/elements/thinking-indicator.d.ts +10 -0
  281. package/dist/components/assistant-ui/elements/thinking-indicator.js +30 -0
  282. package/dist/components/assistant-ui/elements/thread-list.aui.d.ts +39 -0
  283. package/dist/components/assistant-ui/elements/thread-list.aui.js +331 -0
  284. package/dist/components/assistant-ui/elements/thread-list.d.ts +19 -0
  285. package/dist/components/assistant-ui/elements/thread-list.js +72 -0
  286. package/dist/components/assistant-ui/elements/thread-search.d.ts +20 -0
  287. package/dist/components/assistant-ui/elements/thread-search.js +94 -0
  288. package/dist/components/assistant-ui/elements/thread.aui.d.ts +36 -0
  289. package/dist/components/assistant-ui/elements/thread.aui.js +625 -0
  290. package/dist/components/assistant-ui/elements/threadlist-sidebar.aui.d.ts +19 -0
  291. package/dist/components/assistant-ui/elements/threadlist-sidebar.aui.js +75 -0
  292. package/dist/components/assistant-ui/elements/timeline.d.ts +18 -0
  293. package/dist/components/assistant-ui/elements/timeline.js +40 -0
  294. package/dist/components/assistant-ui/elements/todo-list.d.ts +21 -0
  295. package/dist/components/assistant-ui/elements/todo-list.js +100 -0
  296. package/dist/components/assistant-ui/elements/tool-call.d.ts +17 -0
  297. package/dist/components/assistant-ui/elements/tool-call.js +70 -0
  298. package/dist/components/assistant-ui/elements/tool-error.d.ts +16 -0
  299. package/dist/components/assistant-ui/elements/tool-error.js +62 -0
  300. package/dist/components/assistant-ui/elements/tool-fallback.aui.d.ts +44 -0
  301. package/dist/components/assistant-ui/elements/tool-fallback.aui.js +542 -0
  302. package/dist/components/assistant-ui/elements/tool-group.aui.d.ts +37 -0
  303. package/dist/components/assistant-ui/elements/tool-group.aui.js +104 -0
  304. package/dist/components/assistant-ui/elements/tool-group.d.ts +20 -0
  305. package/dist/components/assistant-ui/elements/tool-group.js +71 -0
  306. package/dist/components/assistant-ui/elements/tool-timeline.d.ts +44 -0
  307. package/dist/components/assistant-ui/elements/tool-timeline.js +109 -0
  308. package/dist/components/assistant-ui/elements/tooltip-icon-button.d.ts +12 -0
  309. package/dist/components/assistant-ui/elements/tooltip-icon-button.js +30 -0
  310. package/dist/components/assistant-ui/elements/trace-waterfall.d.ts +33 -0
  311. package/dist/components/assistant-ui/elements/trace-waterfall.js +102 -0
  312. package/dist/components/assistant-ui/elements/typing-indicator.d.ts +9 -0
  313. package/dist/components/assistant-ui/elements/typing-indicator.js +45 -0
  314. package/dist/components/assistant-ui/elements/voice-conversation.aui.d.ts +11 -0
  315. package/dist/components/assistant-ui/elements/voice-conversation.aui.js +54 -0
  316. package/dist/components/assistant-ui/elements/voice-conversation.d.ts +21 -0
  317. package/dist/components/assistant-ui/elements/voice-conversation.js +110 -0
  318. package/dist/components/assistant-ui/elements/voice.aui.d.ts +22 -0
  319. package/dist/components/assistant-ui/elements/voice.aui.js +100 -0
  320. package/dist/components/assistant-ui/elements/voice.d.ts +15 -0
  321. package/dist/components/assistant-ui/elements/voice.js +400 -0
  322. package/dist/components/assistant-ui/elements/web-preview.d.ts +18 -0
  323. package/dist/components/assistant-ui/elements/web-preview.js +61 -0
  324. package/dist/components/assistant-ui/elements/web-search.d.ts +17 -0
  325. package/dist/components/assistant-ui/elements/web-search.js +54 -0
  326. package/dist/components/assistant-ui/utils/href.d.ts +13 -0
  327. package/dist/components/assistant-ui/utils/href.js +39 -0
  328. package/dist/components/assistant-ui/utils/range.d.ts +22 -0
  329. package/dist/components/assistant-ui/utils/range.js +48 -0
  330. package/dist/components/assistant-ui/utils/task.d.ts +14 -0
  331. package/dist/components/assistant-ui/utils/task.js +75 -0
  332. package/dist/components/icons/github.js +13 -0
  333. package/dist/components/theme-provider.d.ts +16 -0
  334. package/dist/components/theme-provider.js +116 -0
  335. package/dist/components/ui/accordion.d.ts +8 -0
  336. package/dist/components/ui/accordion.js +53 -0
  337. package/dist/components/ui/alert-dialog.d.ts +20 -0
  338. package/dist/components/ui/alert-dialog.js +93 -0
  339. package/dist/components/ui/alert.d.ts +12 -0
  340. package/dist/components/ui/alert.js +42 -0
  341. package/dist/components/ui/aspect-ratio.d.ts +6 -0
  342. package/dist/components/ui/aspect-ratio.js +13 -0
  343. package/dist/components/ui/attachment.d.ts +25 -0
  344. package/dist/components/ui/attachment.js +103 -0
  345. package/dist/components/ui/avatar.d.ts +13 -0
  346. package/dist/components/ui/avatar.js +50 -0
  347. package/dist/components/ui/badge.d.ts +14 -0
  348. package/dist/components/ui/badge.js +30 -0
  349. package/dist/components/ui/breadcrumb.d.ts +12 -0
  350. package/dist/components/ui/breadcrumb.js +71 -0
  351. package/dist/components/ui/bubble.d.ts +18 -0
  352. package/dist/components/ui/bubble.js +72 -0
  353. package/dist/components/ui/button-group.d.ts +12 -0
  354. package/dist/components/ui/button-group.js +41 -0
  355. package/dist/components/ui/button.d.ts +19 -0
  356. package/dist/components/ui/button.js +71 -0
  357. package/dist/components/ui/calendar.d.ts +12 -0
  358. package/dist/components/ui/calendar.js +108 -0
  359. package/dist/components/ui/card.d.ts +13 -0
  360. package/dist/components/ui/card.js +55 -0
  361. package/dist/components/ui/carousel.d.ts +30 -0
  362. package/dist/components/ui/carousel.js +131 -0
  363. package/dist/components/ui/chart.d.ts +46 -0
  364. package/dist/components/ui/chart.js +148 -0
  365. package/dist/components/ui/checkbox.d.ts +5 -0
  366. package/dist/components/ui/checkbox.js +20 -0
  367. package/dist/components/ui/collapsible.d.ts +7 -0
  368. package/dist/components/ui/collapsible.js +23 -0
  369. package/dist/components/ui/combobox.d.ts +26 -0
  370. package/dist/components/ui/combobox.js +161 -0
  371. package/dist/components/ui/command.d.ts +21 -0
  372. package/dist/components/ui/command.js +87 -0
  373. package/dist/components/ui/context-menu.d.ts +31 -0
  374. package/dist/components/ui/context-menu.js +132 -0
  375. package/dist/components/ui/dialog.d.ts +19 -0
  376. package/dist/components/ui/dialog.js +91 -0
  377. package/dist/components/ui/diff-viewer.d.ts +100 -0
  378. package/dist/components/ui/diff-viewer.js +461 -0
  379. package/dist/components/ui/direction.d.ts +2 -0
  380. package/dist/components/ui/direction.js +2 -0
  381. package/dist/components/ui/dot-matrix.d.ts +150 -0
  382. package/dist/components/ui/dot-matrix.js +248 -0
  383. package/dist/components/ui/drawer.d.ts +18 -0
  384. package/dist/components/ui/drawer.js +123 -0
  385. package/dist/components/ui/dropdown-menu.d.ts +31 -0
  386. package/dist/components/ui/dropdown-menu.js +136 -0
  387. package/dist/components/ui/empty.d.ts +13 -0
  388. package/dist/components/ui/empty.js +59 -0
  389. package/dist/components/ui/field.d.ts +26 -0
  390. package/dist/components/ui/field.js +109 -0
  391. package/dist/components/ui/hover-card.d.ts +7 -0
  392. package/dist/components/ui/hover-card.js +36 -0
  393. package/dist/components/ui/input-group.d.ts +20 -0
  394. package/dist/components/ui/input-group.js +77 -0
  395. package/dist/components/ui/input-otp.d.ts +13 -0
  396. package/dist/components/ui/input-otp.js +46 -0
  397. package/dist/components/ui/input.d.ts +5 -0
  398. package/dist/components/ui/input.js +14 -0
  399. package/dist/components/ui/item.d.ts +24 -0
  400. package/dist/components/ui/item.js +120 -0
  401. package/dist/components/ui/kbd.d.ts +5 -0
  402. package/dist/components/ui/kbd.js +19 -0
  403. package/dist/components/ui/label.d.ts +5 -0
  404. package/dist/components/ui/label.js +12 -0
  405. package/dist/components/ui/marker.d.ts +12 -0
  406. package/dist/components/ui/marker.js +42 -0
  407. package/dist/components/ui/menubar.d.ts +31 -0
  408. package/dist/components/ui/menubar.js +135 -0
  409. package/dist/components/ui/message-scroller.d.ts +12 -0
  410. package/dist/components/ui/message-scroller.js +59 -0
  411. package/dist/components/ui/message.d.ts +12 -0
  412. package/dist/components/ui/message.js +48 -0
  413. package/dist/components/ui/native-select.d.ts +10 -0
  414. package/dist/components/ui/native-select.js +37 -0
  415. package/dist/components/ui/navigation-menu.d.ts +13 -0
  416. package/dist/components/ui/navigation-menu.js +82 -0
  417. package/dist/components/ui/number-roll.d.ts +21 -0
  418. package/dist/components/ui/number-roll.js +269 -0
  419. package/dist/components/ui/pagination.d.ts +19 -0
  420. package/dist/components/ui/pagination.js +79 -0
  421. package/dist/components/ui/popover.d.ts +11 -0
  422. package/dist/components/ui/popover.js +54 -0
  423. package/dist/components/ui/progress.d.ts +9 -0
  424. package/dist/components/ui/progress.js +44 -0
  425. package/dist/components/ui/questionnaire.d.ts +21 -0
  426. package/dist/components/ui/questionnaire.js +169 -0
  427. package/dist/components/ui/radio-group.d.ts +7 -0
  428. package/dist/components/ui/radio-group.js +26 -0
  429. package/dist/components/ui/resizable.d.ts +9 -0
  430. package/dist/components/ui/resizable.js +28 -0
  431. package/dist/components/ui/scroll-area.d.ts +6 -0
  432. package/dist/components/ui/scroll-area.js +35 -0
  433. package/dist/components/ui/select.d.ts +17 -0
  434. package/dist/components/ui/select.js +96 -0
  435. package/dist/components/ui/separator.d.ts +5 -0
  436. package/dist/components/ui/separator.js +14 -0
  437. package/dist/components/ui/sheet.d.ts +16 -0
  438. package/dist/components/ui/sheet.js +87 -0
  439. package/dist/components/ui/sidebar.d.ts +65 -0
  440. package/dist/components/ui/sidebar.js +386 -0
  441. package/dist/components/ui/skeleton.d.ts +4 -0
  442. package/dist/components/ui/skeleton.js +12 -0
  443. package/dist/components/ui/slider.d.ts +5 -0
  444. package/dist/components/ui/slider.js +33 -0
  445. package/dist/components/ui/spinner.d.ts +4 -0
  446. package/dist/components/ui/spinner.js +15 -0
  447. package/dist/components/ui/switch.d.ts +7 -0
  448. package/dist/components/ui/switch.js +19 -0
  449. package/dist/components/ui/table.d.ts +12 -0
  450. package/dist/components/ui/table.js +65 -0
  451. package/dist/components/ui/tabs.d.ts +12 -0
  452. package/dist/components/ui/tabs.js +45 -0
  453. package/dist/components/ui/textarea.d.ts +5 -0
  454. package/dist/components/ui/textarea.js +12 -0
  455. package/dist/components/ui/toast.d.ts +18 -0
  456. package/dist/components/ui/toast.js +121 -0
  457. package/dist/components/ui/toggle-group.d.ts +13 -0
  458. package/dist/components/ui/toggle-group.js +51 -0
  459. package/dist/components/ui/toggle.d.ts +10 -0
  460. package/dist/components/ui/toggle.js +35 -0
  461. package/dist/components/ui/tooltip.d.ts +8 -0
  462. package/dist/components/ui/tooltip.js +43 -0
  463. package/dist/compositions/app-rail/app-rail.d.ts +19 -0
  464. package/dist/compositions/app-rail/app-rail.js +58 -0
  465. package/dist/compositions/app-shell/app-shell.d.ts +56 -0
  466. package/dist/compositions/app-shell/app-shell.js +143 -0
  467. package/dist/compositions/app-shell/theme-toggle.d.ts +10 -0
  468. package/dist/compositions/app-shell/theme-toggle.js +65 -0
  469. package/dist/compositions/confirm-action/confirm-action.d.ts +48 -0
  470. package/dist/compositions/confirm-action/confirm-action.js +48 -0
  471. package/dist/compositions/data-table/data-table-state.d.ts +23 -0
  472. package/dist/compositions/data-table/data-table-state.js +46 -0
  473. package/dist/compositions/data-table/data-table.d.ts +185 -0
  474. package/dist/compositions/data-table/data-table.js +615 -0
  475. package/dist/compositions/date-range-picker/date-range-options.d.ts +28 -0
  476. package/dist/compositions/date-range-picker/date-range-options.js +61 -0
  477. package/dist/compositions/date-range-picker/date-range-picker.d.ts +55 -0
  478. package/dist/compositions/date-range-picker/date-range-picker.js +409 -0
  479. package/dist/compositions/decision-queue/decision-queue.d.ts +114 -0
  480. package/dist/compositions/decision-queue/decision-queue.js +478 -0
  481. package/dist/compositions/event-feed/event-feed.d.ts +59 -0
  482. package/dist/compositions/event-feed/event-feed.js +105 -0
  483. package/dist/compositions/feedback.d.ts +20 -0
  484. package/dist/compositions/feedback.js +49 -0
  485. package/dist/compositions/fields.d.ts +64 -0
  486. package/dist/compositions/fields.js +293 -0
  487. package/dist/compositions/form-kit/form-context.d.ts +10 -0
  488. package/dist/compositions/form-kit/form-context.js +12 -0
  489. package/dist/compositions/form-kit/form-fields.d.ts +95 -0
  490. package/dist/compositions/form-kit/form-fields.js +233 -0
  491. package/dist/compositions/form-kit/form-kit.d.ts +128 -0
  492. package/dist/compositions/form-kit/form-kit.js +119 -0
  493. package/dist/compositions/inspector/inspector.d.ts +53 -0
  494. package/dist/compositions/inspector/inspector.js +80 -0
  495. package/dist/compositions/layout.d.ts +36 -0
  496. package/dist/compositions/layout.js +86 -0
  497. package/dist/compositions/state-blocks/state-blocks.d.ts +42 -0
  498. package/dist/compositions/state-blocks/state-blocks.js +81 -0
  499. package/dist/compositions/status-panel/status-panel.d.ts +94 -0
  500. package/dist/compositions/status-panel/status-panel.js +189 -0
  501. package/dist/fonts/InterVariable.woff2 +0 -0
  502. package/dist/fonts/inter.css +15 -0
  503. package/dist/hooks/use-attachment-src.js +35 -0
  504. package/dist/hooks/use-copy-to-clipboard.js +34 -0
  505. package/dist/hooks/use-mobile.d.ts +3 -0
  506. package/dist/hooks/use-mobile.js +18 -0
  507. package/dist/index.d.ts +102 -0
  508. package/dist/index.js +102 -0
  509. package/dist/lib/context-level.js +7 -0
  510. package/dist/lib/elapsed.js +61 -0
  511. package/dist/lib/iso-date.js +30 -0
  512. package/dist/lib/motion-loop.js +41 -0
  513. package/dist/lib/pointer.js +14 -0
  514. package/dist/lib/status-tone.d.ts +7 -0
  515. package/dist/lib/status-tone.js +55 -0
  516. package/dist/lib/triage-keys.js +229 -0
  517. package/dist/lib/utils.js +2 -0
  518. package/dist/motion/alert-toast/alert-toast.d.ts +51 -0
  519. package/dist/motion/alert-toast/alert-toast.js +226 -0
  520. package/dist/motion/branch-menu/branch-menu.d.ts +47 -0
  521. package/dist/motion/branch-menu/branch-menu.js +287 -0
  522. package/dist/motion/check-item/check-item.d.ts +24 -0
  523. package/dist/motion/check-item/check-item.js +110 -0
  524. package/dist/motion/dial/dial.d.ts +39 -0
  525. package/dist/motion/dial/dial.js +290 -0
  526. package/dist/motion/dictation-button/dictation-button.d.ts +45 -0
  527. package/dist/motion/dictation-button/dictation-button.js +232 -0
  528. package/dist/motion/hold-button/hold-button.d.ts +37 -0
  529. package/dist/motion/hold-button/hold-button.js +192 -0
  530. package/dist/motion/masonry-grid/masonry-grid.d.ts +42 -0
  531. package/dist/motion/masonry-grid/masonry-grid.js +145 -0
  532. package/dist/motion/prompt-composer/prompt-composer.d.ts +90 -0
  533. package/dist/motion/prompt-composer/prompt-composer.js +374 -0
  534. package/dist/motion/scrub-select/scrub-select.d.ts +33 -0
  535. package/dist/motion/scrub-select/scrub-select.js +346 -0
  536. package/dist/motion/spotlight-grid/spotlight-grid.d.ts +40 -0
  537. package/dist/motion/spotlight-grid/spotlight-grid.js +171 -0
  538. package/dist/motion/star-rating/star-rating.d.ts +32 -0
  539. package/dist/motion/star-rating/star-rating.js +191 -0
  540. package/dist/motion/status-glyph/status-glyph.d.ts +28 -0
  541. package/dist/motion/status-glyph/status-glyph.js +171 -0
  542. package/dist/motion/stepper/stepper.d.ts +56 -0
  543. package/dist/motion/stepper/stepper.js +211 -0
  544. package/dist/motion/swipe-row/swipe-row.d.ts +52 -0
  545. package/dist/motion/swipe-row/swipe-row.js +208 -0
  546. package/dist/motion/thinking-trace/thinking-trace.d.ts +32 -0
  547. package/dist/motion/thinking-trace/thinking-trace.js +186 -0
  548. package/dist/motion/tool-call-chip/tool-call-chip.d.ts +36 -0
  549. package/dist/motion/tool-call-chip/tool-call-chip.js +135 -0
  550. package/dist/motion/working-indicator/working-indicator.d.ts +38 -0
  551. package/dist/motion/working-indicator/working-indicator.js +171 -0
  552. package/dist/styles.css +828 -0
  553. package/dist/tokens.css +230 -0
  554. package/licenses/Inter-OFL.txt +92 -0
  555. package/licenses/assistant-ui-MIT.txt +21 -0
  556. package/licenses/shadcn-MIT.md +21 -0
  557. package/package.json +131 -3
@@ -0,0 +1,65 @@
1
+ import { useTheme } from "../../components/theme-provider.js";
2
+ import { Button } from "../../components/ui/button.js";
3
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger } from "../../components/ui/dropdown-menu.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { cn } from "cn";
6
+ import { MonitorIcon, MoonIcon, SunIcon } from "lucide-react";
7
+ //#region src/compositions/app-shell/theme-toggle.tsx
8
+ const THEME_CHOICES = [
9
+ {
10
+ value: "light",
11
+ label: "Light",
12
+ icon: /* @__PURE__ */ jsx(SunIcon, {})
13
+ },
14
+ {
15
+ value: "dark",
16
+ label: "Dark",
17
+ icon: /* @__PURE__ */ jsx(MoonIcon, {})
18
+ },
19
+ {
20
+ value: "system",
21
+ label: "System",
22
+ icon: /* @__PURE__ */ jsx(MonitorIcon, {})
23
+ }
24
+ ];
25
+ function isThemeChoice(value) {
26
+ return THEME_CHOICES.some((choice) => choice.value === value);
27
+ }
28
+ /**
29
+ * Light, dark and system theme menu. Reads and sets the preference through
30
+ * the package ThemeProvider, so it must render inside one.
31
+ */
32
+ function ThemeToggle({ className }) {
33
+ const { theme, setTheme } = useTheme();
34
+ return /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsxs(DropdownMenuTrigger, {
35
+ render: /* @__PURE__ */ jsx(Button, {
36
+ variant: "ghost",
37
+ size: "icon",
38
+ className: cn("relative", className)
39
+ }),
40
+ children: [
41
+ /* @__PURE__ */ jsx(SunIcon, { className: "scale-100 rotate-0 transition-transform dark:scale-0 dark:-rotate-90" }),
42
+ /* @__PURE__ */ jsx(MoonIcon, { className: "absolute scale-0 rotate-90 transition-transform dark:scale-100 dark:rotate-0" }),
43
+ /* @__PURE__ */ jsx("span", {
44
+ className: "sr-only",
45
+ children: "Toggle theme"
46
+ })
47
+ ]
48
+ }), /* @__PURE__ */ jsx(DropdownMenuContent, {
49
+ align: "end",
50
+ className: "w-36",
51
+ children: /* @__PURE__ */ jsxs(DropdownMenuGroup, { children: [/* @__PURE__ */ jsx(DropdownMenuLabel, { children: "Theme" }), /* @__PURE__ */ jsx(DropdownMenuRadioGroup, {
52
+ value: theme,
53
+ onValueChange: (value) => {
54
+ if (isThemeChoice(value)) setTheme(value);
55
+ },
56
+ children: THEME_CHOICES.map((choice) => /* @__PURE__ */ jsxs(DropdownMenuRadioItem, {
57
+ value: choice.value,
58
+ closeOnClick: true,
59
+ children: [choice.icon, choice.label]
60
+ }, choice.value))
61
+ })] })
62
+ })] });
63
+ }
64
+ //#endregion
65
+ export { ThemeToggle };
@@ -0,0 +1,48 @@
1
+ import { AlertDialogContent } from "../../components/ui/alert-dialog.js";
2
+ import * as React from "react";
3
+ //#region src/compositions/confirm-action/confirm-action.d.ts
4
+ export type ConfirmActionTone = "default" | "destructive";
5
+ export interface ConfirmActionProps {
6
+ /** Whether the dialog is open. ConfirmAction never closes itself: the app owns this state. */
7
+ open: boolean;
8
+ /**
9
+ * Called when the dialog asks to open (trigger pressed) or close (Cancel,
10
+ * Escape). Close requests are dropped while `isPending`.
11
+ */
12
+ onOpenChange: (open: boolean) => void;
13
+ /** The question, for example "Purge 12 sign-in emails?". */
14
+ title: string;
15
+ /** Plain text naming what happens if the owner confirms. */
16
+ consequence: string;
17
+ /** Label of the confirm button, for example "Purge now". */
18
+ confirmLabel: string;
19
+ /** Label of the cancel button. */
20
+ cancelLabel?: string;
21
+ /**
22
+ * Runs the confirmed action (CONFIRMING to PENDING). The dialog stays open:
23
+ * close it from the app once the mutation settles, or keep it open to show
24
+ * `error`.
25
+ */
26
+ onConfirm: () => void;
27
+ /** While true, both buttons are disabled and the dialog cannot be dismissed. */
28
+ isPending?: boolean;
29
+ /** Plain-text error from the last attempt, shown in the dialog (FAILED). */
30
+ error?: string;
31
+ /** `destructive` styles the confirm button as a destructive action. */
32
+ tone?: ConfirmActionTone;
33
+ /** Optional element that opens the dialog, rendered through the alert-dialog trigger. */
34
+ trigger?: React.ReactElement;
35
+ /**
36
+ * Where focus goes once the dialog closes. Defaults to the trigger or the
37
+ * element focused before the dialog opened.
38
+ */
39
+ finalFocus?: React.ComponentProps<typeof AlertDialogContent>["finalFocus"];
40
+ }
41
+ /**
42
+ * A confirmation step for an action whose consequence the owner must see
43
+ * first: approve-all, purge-now, send, revoke. It realizes the CONFIRMING
44
+ * state of the mutation lifecycle; the app drives PENDING and FAILED through
45
+ * `isPending` and `error`.
46
+ */
47
+ export declare function ConfirmAction({ open, onOpenChange, title, consequence, confirmLabel, cancelLabel, onConfirm, isPending, error, tone, trigger, finalFocus }: ConfirmActionProps): React.JSX.Element;
48
+ //#endregion
@@ -0,0 +1,48 @@
1
+ import { Spinner } from "../../components/ui/spinner.js";
2
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "../../components/ui/alert-dialog.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/compositions/confirm-action/confirm-action.tsx
5
+ /**
6
+ * A confirmation step for an action whose consequence the owner must see
7
+ * first: approve-all, purge-now, send, revoke. It realizes the CONFIRMING
8
+ * state of the mutation lifecycle; the app drives PENDING and FAILED through
9
+ * `isPending` and `error`.
10
+ */
11
+ function ConfirmAction({ open, onOpenChange, title, consequence, confirmLabel, cancelLabel = "Cancel", onConfirm, isPending = false, error, tone = "default", trigger, finalFocus }) {
12
+ const handleOpenChange = (nextOpen) => {
13
+ if (!nextOpen && isPending) return;
14
+ onOpenChange(nextOpen);
15
+ };
16
+ return /* @__PURE__ */ jsxs(AlertDialog, {
17
+ open,
18
+ onOpenChange: handleOpenChange,
19
+ children: [trigger ? /* @__PURE__ */ jsx(AlertDialogTrigger, { render: trigger }) : null, /* @__PURE__ */ jsxs(AlertDialogContent, {
20
+ "data-slot": "confirm-action",
21
+ "aria-busy": isPending || void 0,
22
+ finalFocus,
23
+ children: [
24
+ /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: title }), /* @__PURE__ */ jsx(AlertDialogDescription, { children: consequence })] }),
25
+ error ? /* @__PURE__ */ jsx("p", {
26
+ role: "alert",
27
+ "data-slot": "confirm-action-error",
28
+ className: "rounded-md bg-destructive/10 px-2 py-1.5 text-center text-xs/relaxed text-destructive sm:text-left dark:bg-destructive/20",
29
+ children: error
30
+ }) : null,
31
+ /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [/* @__PURE__ */ jsx(AlertDialogCancel, {
32
+ disabled: isPending,
33
+ children: cancelLabel
34
+ }), /* @__PURE__ */ jsxs(AlertDialogAction, {
35
+ variant: tone === "destructive" ? "destructive" : "default",
36
+ disabled: isPending,
37
+ onClick: onConfirm,
38
+ children: [isPending ? /* @__PURE__ */ jsx(Spinner, {
39
+ "data-icon": "inline-start",
40
+ "aria-hidden": "true"
41
+ }) : null, confirmLabel]
42
+ })] })
43
+ ]
44
+ })]
45
+ });
46
+ }
47
+ //#endregion
48
+ export { ConfirmAction };
@@ -0,0 +1,23 @@
1
+ import { ColumnFiltersState, PaginationState, SortingState, Updater } from "@tanstack/react-table";
2
+ //#region src/compositions/data-table/data-table-state.d.ts
3
+ /**
4
+ * Everything a DataTable hands to the app in server mode: the sort, the
5
+ * column filters, the global search text, and the page. In client mode the
6
+ * same shape drives the table's own row models.
7
+ */
8
+ export type DataTableState = {
9
+ sorting: SortingState;
10
+ columnFilters: ColumnFiltersState;
11
+ globalFilter: string;
12
+ pagination: PaginationState;
13
+ };
14
+ export declare const DATA_TABLE_DEFAULT_PAGE_SIZE = 25;
15
+ /** The starting state: unsorted, unfiltered, first page of 25 rows. */
16
+ export declare function createDataTableState(overrides?: Partial<DataTableState>): DataTableState;
17
+ /**
18
+ * Applies one slice update. A change to the sort, a filter, the search text or
19
+ * the page size returns to the first page, so the app never asks the server
20
+ * for a page that the new query may not have.
21
+ */
22
+ export declare function updateDataTableState<TKey extends keyof DataTableState>(state: DataTableState, key: TKey, updater: Updater<DataTableState[TKey]>): DataTableState;
23
+ //#endregion
@@ -0,0 +1,46 @@
1
+ import { functionalUpdate } from "@tanstack/react-table";
2
+ //#region src/compositions/data-table/data-table-state.ts
3
+ const DATA_TABLE_DEFAULT_PAGE_SIZE = 25;
4
+ /** The starting state: unsorted, unfiltered, first page of 25 rows. */
5
+ function createDataTableState(overrides = {}) {
6
+ return {
7
+ sorting: [],
8
+ columnFilters: [],
9
+ globalFilter: "",
10
+ pagination: {
11
+ pageIndex: 0,
12
+ pageSize: 25
13
+ },
14
+ ...overrides
15
+ };
16
+ }
17
+ /**
18
+ * Applies one slice update. A change to the sort, a filter, the search text or
19
+ * the page size returns to the first page, so the app never asks the server
20
+ * for a page that the new query may not have.
21
+ */
22
+ function updateDataTableState(state, key, updater) {
23
+ const value = functionalUpdate(updater, state[key]);
24
+ if (Object.is(value, state[key])) return state;
25
+ if (key === "pagination") {
26
+ const next = value;
27
+ const pageSizeChanged = next.pageSize !== state.pagination.pageSize;
28
+ return {
29
+ ...state,
30
+ pagination: pageSizeChanged ? {
31
+ pageIndex: 0,
32
+ pageSize: next.pageSize
33
+ } : next
34
+ };
35
+ }
36
+ return {
37
+ ...state,
38
+ [key]: value,
39
+ pagination: {
40
+ ...state.pagination,
41
+ pageIndex: 0
42
+ }
43
+ };
44
+ }
45
+ //#endregion
46
+ export { DATA_TABLE_DEFAULT_PAGE_SIZE, createDataTableState, updateDataTableState };
@@ -0,0 +1,185 @@
1
+ import { DataTableState, createDataTableState } from "./data-table-state.js";
2
+ import * as React from "react";
3
+ import { ColumnDef, RowData } from "@tanstack/react-table";
4
+ //#region src/compositions/data-table/data-table.d.ts
5
+ /** One choice in a column's filter menu. */
6
+ export type DataTableFilterOption = {
7
+ label: string;
8
+ value: string;
9
+ };
10
+ /**
11
+ * Per-column presentation, set through a column definition's `meta`.
12
+ *
13
+ * - `label`: the column's name where a string is needed (filter menus,
14
+ * accessible names). Defaults to a string `header`, then the column id.
15
+ * - `align`: `"end"` right-aligns numbers and dates.
16
+ * - `width`: a CSS width for the column. The table uses a fixed layout so
17
+ * columns do not shift while virtualized rows scroll in and out; columns
18
+ * without a width share the remaining space, at least 10rem each; when
19
+ * the scroll area is narrower, it scrolls sideways.
20
+ * - `filter`: adds a single-choice filter menu for this column to the
21
+ * toolbar. A filtered value matches the cell value as a whole
22
+ * (case-insensitive), unless the column sets its own `filterFn`.
23
+ * - `hideBelow`: hides the column while the table itself is narrower than
24
+ * this breakpoint (`sm` 640px, `md` 768px, `lg` 1024px), so a phone shows
25
+ * the columns that matter. Its filter, search and sorting still apply.
26
+ */
27
+ export type DataTableColumnMeta = {
28
+ label?: string;
29
+ align?: "start" | "end";
30
+ width?: string;
31
+ filter?: {
32
+ options: readonly DataTableFilterOption[];
33
+ };
34
+ hideBelow?: DataTableBreakpoint;
35
+ };
36
+ /** A table width, named as Tailwind's breakpoints. */
37
+ export type DataTableBreakpoint = "sm" | "md" | "lg";
38
+ /**
39
+ * The TanStack Table v9 features every DataTable registers: column filters,
40
+ * global search, sorting, pagination and row selection, with the client row
41
+ * models for each. Build column definitions against this feature set, for
42
+ * example with `createDataTableColumnHelper`.
43
+ */
44
+ export declare const dataTableFeatures: {
45
+ columnFilteringFeature: import("@tanstack/react-table").TableFeature;
46
+ globalFilteringFeature: import("@tanstack/react-table").TableFeature;
47
+ rowSortingFeature: import("@tanstack/react-table").TableFeature;
48
+ rowPaginationFeature: import("@tanstack/react-table").TableFeature;
49
+ rowSelectionFeature: import("@tanstack/react-table").TableFeature;
50
+ filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
51
+ sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
52
+ paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
53
+ filterFns: {
54
+ includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
55
+ equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
56
+ };
57
+ sortFns: {
58
+ alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
59
+ basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
60
+ datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
61
+ text: import("@tanstack/react-table").CreatedSortFn<any, any>;
62
+ };
63
+ columnMeta: DataTableColumnMeta;
64
+ };
65
+ export type DataTableFeatures = typeof dataTableFeatures;
66
+ /**
67
+ * A DataTable column definition. Accessor value types vary per column, so the
68
+ * value parameter is `any`, as in TanStack's own `columnHelper.columns()`.
69
+ */
70
+ export type DataTableColumnDef<TData extends RowData> = ColumnDef<DataTableFeatures, TData, any>;
71
+ /** A typed TanStack column helper bound to the DataTable feature set. */
72
+ export declare function createDataTableColumnHelper<TData extends RowData>(): import("@tanstack/react-table").ColumnHelper<{
73
+ columnFilteringFeature: import("@tanstack/react-table").TableFeature;
74
+ globalFilteringFeature: import("@tanstack/react-table").TableFeature;
75
+ rowSortingFeature: import("@tanstack/react-table").TableFeature;
76
+ rowPaginationFeature: import("@tanstack/react-table").TableFeature;
77
+ rowSelectionFeature: import("@tanstack/react-table").TableFeature;
78
+ filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
79
+ sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
80
+ paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
81
+ filterFns: {
82
+ includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
83
+ equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
84
+ };
85
+ sortFns: {
86
+ alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
87
+ basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
88
+ datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
89
+ text: import("@tanstack/react-table").CreatedSortFn<any, any>;
90
+ };
91
+ columnMeta: DataTableColumnMeta;
92
+ }, TData>;
93
+ /** One entry in a row's action menu. */
94
+ export type DataTableRowAction = {
95
+ label: string;
96
+ onSelect: () => void;
97
+ /** Styles the entry as destructive. Confirm the action in `onSelect`. */
98
+ destructive?: boolean;
99
+ disabled?: boolean;
100
+ };
101
+ type DataTableBaseProps<TData extends RowData> = {
102
+ /** The table's accessible name, also used for the search field. */
103
+ label: string;
104
+ /** Column definitions. Keep the array reference stable between renders. */
105
+ columns: readonly DataTableColumnDef<TData>[];
106
+ /**
107
+ * The rows to show. In client mode, every row; in server mode, the current
108
+ * page as the server returned it. Keep the reference stable between renders.
109
+ */
110
+ rows: readonly TData[];
111
+ /** A stable, unique id per row. Selection is keyed by it. */
112
+ getRowId: (row: TData) => string;
113
+ /** A short name for a row in accessible labels. Defaults to the row id. */
114
+ getRowLabel?: (row: TData) => string;
115
+ /** Selected row ids (controlled). Omit to let the table hold selection. */
116
+ selection?: readonly string[];
117
+ /** Turns on row selection; called with every selected row id. */
118
+ onSelectionChange?: (ids: string[]) => void;
119
+ /** Builds the action menu for a row. Omit for no action column. */
120
+ rowActions?: (row: TData) => readonly DataTableRowAction[];
121
+ /**
122
+ * The data is being fetched. With no rows this shows skeleton rows; with
123
+ * rows it keeps them on screen, shows a spinner by the row count, and marks
124
+ * the table busy.
125
+ */
126
+ isLoading?: boolean;
127
+ /**
128
+ * A load error message. With no rows it replaces the body; with rows it
129
+ * shows above the table and the last good rows stay on screen.
130
+ */
131
+ error?: string | null;
132
+ /** Shows a retry button with the error. */
133
+ onRetry?: () => void;
134
+ /** The empty state's title when there are no rows at all. */
135
+ emptyLabel?: string;
136
+ /** The empty state's description when there are no rows at all. */
137
+ emptyDescription?: string;
138
+ /** Shows the global search field. Defaults to true. */
139
+ searchable?: boolean;
140
+ searchPlaceholder?: string;
141
+ /** Page sizes offered in the footer. */
142
+ pageSizeOptions?: readonly number[];
143
+ /** The scroll area's maximum height (any CSS length). Rows virtualize inside it. */
144
+ maxHeight?: string;
145
+ className?: string;
146
+ };
147
+ /** Client mode: the table sorts, filters, searches and pages `rows` itself. */
148
+ export type DataTableClientProps<TData extends RowData> = DataTableBaseProps<TData> & {
149
+ mode?: "client";
150
+ /** Controlled state. Omit to let the table hold its own state. */
151
+ state?: DataTableState;
152
+ /** The starting state when `state` is not controlled. */
153
+ defaultState?: Partial<DataTableState>;
154
+ onStateChange?: (state: DataTableState) => void;
155
+ /**
156
+ * Splits rows into pages. Defaults to true. With false, every matching row
157
+ * renders in one virtualized scroll area and the page controls are hidden.
158
+ */
159
+ paginate?: boolean;
160
+ total?: never;
161
+ };
162
+ /**
163
+ * Server mode: the app owns the query. The table hands every sort, filter,
164
+ * search and page change to `onStateChange`, shows `rows` as the current page
165
+ * in the order given, and pages against `total`.
166
+ */
167
+ export type DataTableServerProps<TData extends RowData> = DataTableBaseProps<TData> & {
168
+ mode: "server";
169
+ state: DataTableState;
170
+ onStateChange: (state: DataTableState) => void;
171
+ /** The number of rows matching the current query on the server. */
172
+ total: number;
173
+ defaultState?: never;
174
+ paginate?: never;
175
+ };
176
+ export type DataTableProps<TData extends RowData> = DataTableClientProps<TData> | DataTableServerProps<TData>;
177
+ /**
178
+ * A table for large, interactive lists: sorting, column filters, global
179
+ * search, paging, row selection and row actions, in client or server mode,
180
+ * with virtualized rows. Built on the shadcn table, TanStack Table v9 and
181
+ * TanStack Virtual.
182
+ */
183
+ export declare function DataTable<TData extends RowData>(props: DataTableProps<TData>): React.JSX.Element;
184
+ //#endregion
185
+ export { type DataTableState, createDataTableState };