@dowel-ui/react 0.5.0 → 0.8.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 (1787) hide show
  1. package/README.md +3 -3
  2. package/dist/blocks/admin-dashboard/meta.js +31 -0
  3. package/dist/blocks/admin-dashboard/meta.js.map +1 -0
  4. package/dist/blocks/agent-console/meta.js +27 -0
  5. package/dist/blocks/agent-console/meta.js.map +1 -0
  6. package/dist/blocks/ai-dashboard/meta.js +25 -0
  7. package/dist/blocks/ai-dashboard/meta.js.map +1 -0
  8. package/dist/blocks/ai-workspace/meta.js +33 -0
  9. package/dist/blocks/ai-workspace/meta.js.map +1 -0
  10. package/dist/blocks/analytics/meta.js +24 -0
  11. package/dist/blocks/analytics/meta.js.map +1 -0
  12. package/dist/blocks/billing/meta.js +25 -0
  13. package/dist/blocks/billing/meta.js.map +1 -0
  14. package/dist/blocks/command-center/meta.js +28 -0
  15. package/dist/blocks/command-center/meta.js.map +1 -0
  16. package/dist/blocks/crm/meta.js +32 -0
  17. package/dist/blocks/crm/meta.js.map +1 -0
  18. package/dist/blocks/cta-banner/meta.js +18 -0
  19. package/dist/blocks/cta-banner/meta.js.map +1 -0
  20. package/dist/blocks/cta-centered/meta.js +18 -0
  21. package/dist/blocks/cta-centered/meta.js.map +1 -0
  22. package/dist/blocks/cta-split-image/meta.js +18 -0
  23. package/dist/blocks/cta-split-image/meta.js.map +1 -0
  24. package/dist/blocks/faq-accordion/meta.js +18 -0
  25. package/dist/blocks/faq-accordion/meta.js.map +1 -0
  26. package/dist/blocks/faq-categorized/meta.js +18 -0
  27. package/dist/blocks/faq-categorized/meta.js.map +1 -0
  28. package/dist/blocks/faq-searchable/meta.js +22 -0
  29. package/dist/blocks/faq-searchable/meta.js.map +1 -0
  30. package/dist/blocks/faq-tabbed-grid/meta.js +18 -0
  31. package/dist/blocks/faq-tabbed-grid/meta.js.map +1 -0
  32. package/dist/blocks/features-alternating/meta.js +18 -0
  33. package/dist/blocks/features-alternating/meta.js.map +1 -0
  34. package/dist/blocks/features-bento/meta.js +18 -0
  35. package/dist/blocks/features-bento/meta.js.map +1 -0
  36. package/dist/blocks/features-icon-grid/meta.js +18 -0
  37. package/dist/blocks/features-icon-grid/meta.js.map +1 -0
  38. package/dist/blocks/footer-mega/meta.js +22 -0
  39. package/dist/blocks/footer-mega/meta.js.map +1 -0
  40. package/dist/blocks/footer-minimal/meta.js +18 -0
  41. package/dist/blocks/footer-minimal/meta.js.map +1 -0
  42. package/dist/blocks/footer-newsletter/meta.js +22 -0
  43. package/dist/blocks/footer-newsletter/meta.js.map +1 -0
  44. package/dist/blocks/footer-simple/meta.js +18 -0
  45. package/dist/blocks/footer-simple/meta.js.map +1 -0
  46. package/dist/blocks/hero-grid/meta.js +18 -0
  47. package/dist/blocks/hero-grid/meta.js.map +1 -0
  48. package/dist/blocks/hero-minimal/meta.js +18 -0
  49. package/dist/blocks/hero-minimal/meta.js.map +1 -0
  50. package/dist/blocks/hero-perspective-grid/meta.js +18 -0
  51. package/dist/blocks/hero-perspective-grid/meta.js.map +1 -0
  52. package/dist/blocks/hero-product/meta.js +22 -0
  53. package/dist/blocks/hero-product/meta.js.map +1 -0
  54. package/dist/blocks/hero-split-image/meta.js +22 -0
  55. package/dist/blocks/hero-split-image/meta.js.map +1 -0
  56. package/dist/blocks/hero-spotlight/meta.js +18 -0
  57. package/dist/blocks/hero-spotlight/meta.js.map +1 -0
  58. package/dist/blocks/logo-cloud-simple/meta.js +18 -0
  59. package/dist/blocks/logo-cloud-simple/meta.js.map +1 -0
  60. package/dist/blocks/logo-grid-tooltips/meta.js +18 -0
  61. package/dist/blocks/logo-grid-tooltips/meta.js.map +1 -0
  62. package/dist/blocks/logo-links-marquee/meta.js +18 -0
  63. package/dist/blocks/logo-links-marquee/meta.js.map +1 -0
  64. package/dist/blocks/logo-marquee/meta.js +18 -0
  65. package/dist/blocks/logo-marquee/meta.js.map +1 -0
  66. package/dist/blocks/onboarding/meta.js +23 -0
  67. package/dist/blocks/onboarding/meta.js.map +1 -0
  68. package/dist/blocks/pricing-single-plan/meta.js +25 -0
  69. package/dist/blocks/pricing-single-plan/meta.js.map +1 -0
  70. package/dist/blocks/pricing-three-tier/meta.js +25 -0
  71. package/dist/blocks/pricing-three-tier/meta.js.map +1 -0
  72. package/dist/blocks/pricing-two-tier/meta.js +25 -0
  73. package/dist/blocks/pricing-two-tier/meta.js.map +1 -0
  74. package/dist/blocks/stats-grid/meta.js +18 -0
  75. package/dist/blocks/stats-grid/meta.js.map +1 -0
  76. package/dist/blocks/stats-trend-cards/meta.js +22 -0
  77. package/dist/blocks/stats-trend-cards/meta.js.map +1 -0
  78. package/dist/blocks/team-carousel/meta.js +22 -0
  79. package/dist/blocks/team-carousel/meta.js.map +1 -0
  80. package/dist/blocks/team-grid/meta.js +18 -0
  81. package/dist/blocks/team-grid/meta.js.map +1 -0
  82. package/dist/blocks/testimonial-rotator/meta.js +18 -0
  83. package/dist/blocks/testimonial-rotator/meta.js.map +1 -0
  84. package/dist/blocks/testimonial-spotlight/meta.js +22 -0
  85. package/dist/blocks/testimonial-spotlight/meta.js.map +1 -0
  86. package/dist/blocks/testimonial-star-grid/meta.js +18 -0
  87. package/dist/blocks/testimonial-star-grid/meta.js.map +1 -0
  88. package/dist/components/accordion/accordion.js +1 -1
  89. package/dist/components/accordion/accordion.js.map +1 -1
  90. package/dist/components/account-menu/account-menu.d.ts +56 -0
  91. package/dist/components/account-menu/account-menu.d.ts.map +1 -0
  92. package/dist/components/account-menu/account-menu.js +247 -0
  93. package/dist/components/account-menu/account-menu.js.map +1 -0
  94. package/dist/components/account-menu/index.d.ts +2 -0
  95. package/dist/components/account-menu/index.js +2 -0
  96. package/dist/components/account-menu/meta.js +24 -0
  97. package/dist/components/account-menu/meta.js.map +1 -0
  98. package/dist/components/action-node/action-node-spring.js +21 -0
  99. package/dist/components/action-node/action-node-spring.js.map +1 -0
  100. package/dist/components/action-node/action-node.d.ts +67 -0
  101. package/dist/components/action-node/action-node.d.ts.map +1 -0
  102. package/dist/components/action-node/action-node.js +374 -0
  103. package/dist/components/action-node/action-node.js.map +1 -0
  104. package/dist/components/action-node/index.d.ts +2 -0
  105. package/dist/components/action-node/index.js +2 -0
  106. package/dist/components/action-node/meta.js +17 -0
  107. package/dist/components/action-node/meta.js.map +1 -0
  108. package/dist/components/activity-feed/activity-feed.js +1 -1
  109. package/dist/components/activity-feed/activity-feed.js.map +1 -1
  110. package/dist/components/ai-agent-plan/ai-agent-plan.d.ts +13 -2
  111. package/dist/components/ai-agent-plan/ai-agent-plan.d.ts.map +1 -1
  112. package/dist/components/ai-agent-plan/ai-agent-plan.js +110 -43
  113. package/dist/components/ai-agent-plan/ai-agent-plan.js.map +1 -1
  114. package/dist/components/ai-agent-plan/index.d.ts +2 -2
  115. package/dist/components/ai-agent-plan/meta.js +1 -1
  116. package/dist/components/ai-agent-plan/meta.js.map +1 -1
  117. package/dist/components/ai-agent-status/ai-agent-status.d.ts +1 -1
  118. package/dist/components/ai-approval-request/ai-approval-request.d.ts +8 -1
  119. package/dist/components/ai-approval-request/ai-approval-request.d.ts.map +1 -1
  120. package/dist/components/ai-approval-request/ai-approval-request.js +67 -12
  121. package/dist/components/ai-approval-request/ai-approval-request.js.map +1 -1
  122. package/dist/components/ai-approval-request/meta.js +1 -1
  123. package/dist/components/ai-approval-request/meta.js.map +1 -1
  124. package/dist/components/ai-artifact/ai-artifact.d.ts +27 -0
  125. package/dist/components/ai-artifact/ai-artifact.d.ts.map +1 -0
  126. package/dist/components/ai-artifact/ai-artifact.js +142 -0
  127. package/dist/components/ai-artifact/ai-artifact.js.map +1 -0
  128. package/dist/components/ai-artifact/index.d.ts +2 -0
  129. package/dist/components/ai-artifact/index.js +2 -0
  130. package/dist/components/ai-artifact/meta.js +17 -0
  131. package/dist/components/ai-artifact/meta.js.map +1 -0
  132. package/dist/components/ai-branch/ai-branch.d.ts +32 -0
  133. package/dist/components/ai-branch/ai-branch.d.ts.map +1 -0
  134. package/dist/components/ai-branch/ai-branch.js +160 -0
  135. package/dist/components/ai-branch/ai-branch.js.map +1 -0
  136. package/dist/components/ai-branch/index.d.ts +2 -0
  137. package/dist/components/ai-branch/index.js +2 -0
  138. package/dist/components/ai-branch/meta.js +17 -0
  139. package/dist/components/ai-branch/meta.js.map +1 -0
  140. package/dist/components/ai-conversation/ai-conversation.d.ts +16 -4
  141. package/dist/components/ai-conversation/ai-conversation.d.ts.map +1 -1
  142. package/dist/components/ai-conversation/ai-conversation.js +78 -10
  143. package/dist/components/ai-conversation/ai-conversation.js.map +1 -1
  144. package/dist/components/ai-conversation/index.d.ts +2 -2
  145. package/dist/components/ai-extraction-review/ai-extraction-review.js +1 -1
  146. package/dist/components/ai-extraction-review/ai-extraction-review.js.map +1 -1
  147. package/dist/components/ai-loader/ai-loader.d.ts +22 -0
  148. package/dist/components/ai-loader/ai-loader.d.ts.map +1 -0
  149. package/dist/components/ai-loader/ai-loader.js +78 -0
  150. package/dist/components/ai-loader/ai-loader.js.map +1 -0
  151. package/dist/components/ai-loader/index.d.ts +2 -0
  152. package/dist/components/ai-loader/index.js +2 -0
  153. package/dist/components/ai-loader/meta.js +21 -0
  154. package/dist/components/ai-loader/meta.js.map +1 -0
  155. package/dist/components/ai-message/ai-message.d.ts +13 -2
  156. package/dist/components/ai-message/ai-message.d.ts.map +1 -1
  157. package/dist/components/ai-message/ai-message.js +29 -5
  158. package/dist/components/ai-message/ai-message.js.map +1 -1
  159. package/dist/components/ai-message/index.d.ts +2 -2
  160. package/dist/components/ai-message/index.js +2 -2
  161. package/dist/components/ai-message/meta.js +1 -1
  162. package/dist/components/ai-message/meta.js.map +1 -1
  163. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  164. package/dist/components/ai-prompt-input/ai-prompt-input.js +45 -26
  165. package/dist/components/ai-prompt-input/ai-prompt-input.js.map +1 -1
  166. package/dist/components/ai-reasoning/ai-reasoning.d.ts +39 -11
  167. package/dist/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
  168. package/dist/components/ai-reasoning/ai-reasoning.js +114 -10
  169. package/dist/components/ai-reasoning/ai-reasoning.js.map +1 -1
  170. package/dist/components/ai-reasoning/index.d.ts +2 -2
  171. package/dist/components/ai-reasoning/index.js +2 -2
  172. package/dist/components/ai-reasoning/meta.js +2 -2
  173. package/dist/components/ai-reasoning/meta.js.map +1 -1
  174. package/dist/components/ai-response/ai-response.d.ts +4 -0
  175. package/dist/components/ai-response/ai-response.d.ts.map +1 -1
  176. package/dist/components/ai-response/ai-response.js +7 -3
  177. package/dist/components/ai-response/ai-response.js.map +1 -1
  178. package/dist/components/ai-response/index.d.ts +2 -1
  179. package/dist/components/ai-response/index.js +2 -1
  180. package/dist/components/ai-response/meta.js +3 -3
  181. package/dist/components/ai-response/meta.js.map +1 -1
  182. package/dist/components/ai-response/response-text.d.ts +42 -0
  183. package/dist/components/ai-response/response-text.d.ts.map +1 -0
  184. package/dist/components/ai-response/response-text.js +63 -0
  185. package/dist/components/ai-response/response-text.js.map +1 -0
  186. package/dist/components/ai-sources/ai-sources.d.ts +31 -5
  187. package/dist/components/ai-sources/ai-sources.d.ts.map +1 -1
  188. package/dist/components/ai-sources/ai-sources.js +188 -47
  189. package/dist/components/ai-sources/ai-sources.js.map +1 -1
  190. package/dist/components/ai-sources/index.d.ts +2 -2
  191. package/dist/components/ai-sources/index.js +2 -2
  192. package/dist/components/ai-sources/meta.js +2 -2
  193. package/dist/components/ai-sources/meta.js.map +1 -1
  194. package/dist/components/ai-suggestions/ai-suggestions.d.ts +24 -0
  195. package/dist/components/ai-suggestions/ai-suggestions.d.ts.map +1 -0
  196. package/dist/components/ai-suggestions/ai-suggestions.js +68 -0
  197. package/dist/components/ai-suggestions/ai-suggestions.js.map +1 -0
  198. package/dist/components/ai-suggestions/index.d.ts +2 -0
  199. package/dist/components/ai-suggestions/index.js +2 -0
  200. package/dist/components/ai-suggestions/meta.js +17 -0
  201. package/dist/components/ai-suggestions/meta.js.map +1 -0
  202. package/dist/components/ai-token-usage/ai-token-usage.d.ts +40 -3
  203. package/dist/components/ai-token-usage/ai-token-usage.d.ts.map +1 -1
  204. package/dist/components/ai-token-usage/ai-token-usage.js +201 -24
  205. package/dist/components/ai-token-usage/ai-token-usage.js.map +1 -1
  206. package/dist/components/ai-token-usage/index.d.ts +2 -2
  207. package/dist/components/ai-token-usage/index.js +2 -2
  208. package/dist/components/ai-token-usage/meta.js +2 -2
  209. package/dist/components/ai-token-usage/meta.js.map +1 -1
  210. package/dist/components/ai-tool/ai-tool.d.ts +12 -1
  211. package/dist/components/ai-tool/ai-tool.d.ts.map +1 -1
  212. package/dist/components/ai-tool/ai-tool.js +83 -6
  213. package/dist/components/ai-tool/ai-tool.js.map +1 -1
  214. package/dist/components/ai-tool/meta.js +1 -1
  215. package/dist/components/ai-tool/meta.js.map +1 -1
  216. package/dist/components/alert/alert.d.ts +1 -1
  217. package/dist/components/animated-checklist/animated-checklist.d.ts +40 -0
  218. package/dist/components/animated-checklist/animated-checklist.d.ts.map +1 -0
  219. package/dist/components/animated-checklist/animated-checklist.js +198 -0
  220. package/dist/components/animated-checklist/animated-checklist.js.map +1 -0
  221. package/dist/components/animated-checklist/index.d.ts +2 -0
  222. package/dist/components/animated-checklist/index.js +2 -0
  223. package/dist/components/animated-checklist/meta.js +17 -0
  224. package/dist/components/animated-checklist/meta.js.map +1 -0
  225. package/dist/components/app-stack/app-stack.d.ts +40 -0
  226. package/dist/components/app-stack/app-stack.d.ts.map +1 -0
  227. package/dist/components/app-stack/app-stack.js +260 -0
  228. package/dist/components/app-stack/app-stack.js.map +1 -0
  229. package/dist/components/app-stack/index.d.ts +2 -0
  230. package/dist/components/app-stack/index.js +2 -0
  231. package/dist/components/app-stack/meta.js +17 -0
  232. package/dist/components/app-stack/meta.js.map +1 -0
  233. package/dist/components/aspect-morph/aspect-morph.d.ts +50 -0
  234. package/dist/components/aspect-morph/aspect-morph.d.ts.map +1 -0
  235. package/dist/components/aspect-morph/aspect-morph.js +171 -0
  236. package/dist/components/aspect-morph/aspect-morph.js.map +1 -0
  237. package/dist/components/aspect-morph/index.d.ts +2 -0
  238. package/dist/components/aspect-morph/index.js +2 -0
  239. package/dist/components/aspect-morph/meta.js +17 -0
  240. package/dist/components/aspect-morph/meta.js.map +1 -0
  241. package/dist/components/assignee-picker/assignee-picker-spring.js +21 -0
  242. package/dist/components/assignee-picker/assignee-picker-spring.js.map +1 -0
  243. package/dist/components/assignee-picker/assignee-picker.d.ts +47 -0
  244. package/dist/components/assignee-picker/assignee-picker.d.ts.map +1 -0
  245. package/dist/components/assignee-picker/assignee-picker.js +370 -0
  246. package/dist/components/assignee-picker/assignee-picker.js.map +1 -0
  247. package/dist/components/assignee-picker/index.d.ts +2 -0
  248. package/dist/components/assignee-picker/index.js +2 -0
  249. package/dist/components/assignee-picker/meta.js +17 -0
  250. package/dist/components/assignee-picker/meta.js.map +1 -0
  251. package/dist/components/avatar/avatar.d.ts +1 -1
  252. package/dist/components/avatar-group/avatar-group.d.ts +41 -0
  253. package/dist/components/avatar-group/avatar-group.d.ts.map +1 -0
  254. package/dist/components/avatar-group/avatar-group.js +103 -0
  255. package/dist/components/avatar-group/avatar-group.js.map +1 -0
  256. package/dist/components/avatar-group/index.d.ts +2 -0
  257. package/dist/components/avatar-group/index.js +2 -0
  258. package/dist/components/avatar-group/meta.js +17 -0
  259. package/dist/components/avatar-group/meta.js.map +1 -0
  260. package/dist/components/badge/badge.d.ts +1 -1
  261. package/dist/components/bar-loader/bar-loader.d.ts +170 -0
  262. package/dist/components/bar-loader/bar-loader.d.ts.map +1 -0
  263. package/dist/components/bar-loader/bar-loader.js +469 -0
  264. package/dist/components/bar-loader/bar-loader.js.map +1 -0
  265. package/dist/components/bar-loader/index.d.ts +2 -0
  266. package/dist/components/bar-loader/index.js +2 -0
  267. package/dist/components/bar-loader/meta.js +17 -0
  268. package/dist/components/bar-loader/meta.js.map +1 -0
  269. package/dist/components/book/book.d.ts +35 -0
  270. package/dist/components/book/book.d.ts.map +1 -0
  271. package/dist/components/book/book.js +183 -0
  272. package/dist/components/book/book.js.map +1 -0
  273. package/dist/components/book/index.d.ts +2 -0
  274. package/dist/components/book/index.js +2 -0
  275. package/dist/components/book/meta.js +17 -0
  276. package/dist/components/book/meta.js.map +1 -0
  277. package/dist/components/breadcrumb/breadcrumb.d.ts +60 -0
  278. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  279. package/dist/components/breadcrumb/breadcrumb.js +158 -0
  280. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  281. package/dist/components/breadcrumb/index.d.ts +2 -0
  282. package/dist/components/breadcrumb/index.js +2 -0
  283. package/dist/components/breadcrumb/meta.js +17 -0
  284. package/dist/components/breadcrumb/meta.js.map +1 -0
  285. package/dist/components/browser-tabs/browser-tabs-spring.js +21 -0
  286. package/dist/components/browser-tabs/browser-tabs-spring.js.map +1 -0
  287. package/dist/components/browser-tabs/browser-tabs.d.ts +62 -0
  288. package/dist/components/browser-tabs/browser-tabs.d.ts.map +1 -0
  289. package/dist/components/browser-tabs/browser-tabs.js +418 -0
  290. package/dist/components/browser-tabs/browser-tabs.js.map +1 -0
  291. package/dist/components/browser-tabs/index.d.ts +2 -0
  292. package/dist/components/browser-tabs/index.js +2 -0
  293. package/dist/components/browser-tabs/meta.js +17 -0
  294. package/dist/components/browser-tabs/meta.js.map +1 -0
  295. package/dist/components/button/button.d.ts +4 -2
  296. package/dist/components/button/button.d.ts.map +1 -1
  297. package/dist/components/button/button.js +48 -5
  298. package/dist/components/button/button.js.map +1 -1
  299. package/dist/components/calendar/calendar.js +2 -2
  300. package/dist/components/calendar/calendar.js.map +1 -1
  301. package/dist/components/canvas-toolbar/canvas-toolbar.d.ts +62 -0
  302. package/dist/components/canvas-toolbar/canvas-toolbar.d.ts.map +1 -0
  303. package/dist/components/canvas-toolbar/canvas-toolbar.js +256 -0
  304. package/dist/components/canvas-toolbar/canvas-toolbar.js.map +1 -0
  305. package/dist/components/canvas-toolbar/index.d.ts +2 -0
  306. package/dist/components/canvas-toolbar/index.js +2 -0
  307. package/dist/components/canvas-toolbar/meta.js +17 -0
  308. package/dist/components/canvas-toolbar/meta.js.map +1 -0
  309. package/dist/components/card-spread/card-spread-layouts.d.ts +46 -0
  310. package/dist/components/card-spread/card-spread-layouts.d.ts.map +1 -0
  311. package/dist/components/card-spread/card-spread-layouts.js +235 -0
  312. package/dist/components/card-spread/card-spread-layouts.js.map +1 -0
  313. package/dist/components/card-spread/card-spread.d.ts +52 -0
  314. package/dist/components/card-spread/card-spread.d.ts.map +1 -0
  315. package/dist/components/card-spread/card-spread.js +224 -0
  316. package/dist/components/card-spread/card-spread.js.map +1 -0
  317. package/dist/components/card-spread/index.d.ts +3 -0
  318. package/dist/components/card-spread/index.js +3 -0
  319. package/dist/components/card-spread/meta.js +17 -0
  320. package/dist/components/card-spread/meta.js.map +1 -0
  321. package/dist/components/card-stack/card-stack-layout.js +98 -0
  322. package/dist/components/card-stack/card-stack-layout.js.map +1 -0
  323. package/dist/components/card-stack/card-stack.d.ts +29 -0
  324. package/dist/components/card-stack/card-stack.d.ts.map +1 -0
  325. package/dist/components/card-stack/card-stack.js +229 -0
  326. package/dist/components/card-stack/card-stack.js.map +1 -0
  327. package/dist/components/card-stack/index.d.ts +2 -0
  328. package/dist/components/card-stack/index.js +2 -0
  329. package/dist/components/card-stack/meta.js +17 -0
  330. package/dist/components/card-stack/meta.js.map +1 -0
  331. package/dist/components/carousel-3d/carousel-3d.d.ts +43 -0
  332. package/dist/components/carousel-3d/carousel-3d.d.ts.map +1 -0
  333. package/dist/components/carousel-3d/carousel-3d.js +336 -0
  334. package/dist/components/carousel-3d/carousel-3d.js.map +1 -0
  335. package/dist/components/carousel-3d/index.d.ts +2 -0
  336. package/dist/components/carousel-3d/index.js +2 -0
  337. package/dist/components/carousel-3d/meta.js +17 -0
  338. package/dist/components/carousel-3d/meta.js.map +1 -0
  339. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  340. package/dist/components/checkbox/checkbox.js +18 -0
  341. package/dist/components/checkbox/checkbox.js.map +1 -1
  342. package/dist/components/code-block/code-block.d.ts +1 -17
  343. package/dist/components/code-block/code-block.d.ts.map +1 -1
  344. package/dist/components/code-block/code-block.js +9 -79
  345. package/dist/components/code-block/code-block.js.map +1 -1
  346. package/dist/components/code-block/index.d.ts +3 -1
  347. package/dist/components/code-block/index.js +2 -1
  348. package/dist/components/code-block/meta.js +1 -1
  349. package/dist/components/code-block/meta.js.map +1 -1
  350. package/dist/components/collapsible/collapsible.d.ts +30 -0
  351. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  352. package/dist/components/collapsible/collapsible.js +38 -0
  353. package/dist/components/collapsible/collapsible.js.map +1 -0
  354. package/dist/components/collapsible/index.d.ts +2 -0
  355. package/dist/components/collapsible/index.js +2 -0
  356. package/dist/components/collapsible/meta.js +17 -0
  357. package/dist/components/collapsible/meta.js.map +1 -0
  358. package/dist/components/combobox/combobox.d.ts +28 -4
  359. package/dist/components/combobox/combobox.d.ts.map +1 -1
  360. package/dist/components/combobox/combobox.js +161 -66
  361. package/dist/components/combobox/combobox.js.map +1 -1
  362. package/dist/components/combobox/index.d.ts +2 -2
  363. package/dist/components/combobox/index.js +2 -2
  364. package/dist/components/combobox/meta.js +1 -1
  365. package/dist/components/combobox/meta.js.map +1 -1
  366. package/dist/components/command/command.js +1 -1
  367. package/dist/components/command/command.js.map +1 -1
  368. package/dist/components/command-bar/command-bar.d.ts +37 -0
  369. package/dist/components/command-bar/command-bar.d.ts.map +1 -0
  370. package/dist/components/command-bar/command-bar.js +91 -0
  371. package/dist/components/command-bar/command-bar.js.map +1 -0
  372. package/dist/components/command-bar/index.d.ts +2 -0
  373. package/dist/components/command-bar/index.js +2 -0
  374. package/dist/components/command-bar/meta.js +17 -0
  375. package/dist/components/command-bar/meta.js.map +1 -0
  376. package/dist/components/comment-bubble/comment-bubble.d.ts +32 -0
  377. package/dist/components/comment-bubble/comment-bubble.d.ts.map +1 -0
  378. package/dist/components/comment-bubble/comment-bubble.js +174 -0
  379. package/dist/components/comment-bubble/comment-bubble.js.map +1 -0
  380. package/dist/components/comment-bubble/index.d.ts +2 -0
  381. package/dist/components/comment-bubble/index.js +2 -0
  382. package/dist/components/comment-bubble/meta.js +17 -0
  383. package/dist/components/comment-bubble/meta.js.map +1 -0
  384. package/dist/components/context-menu/context-menu.d.ts +49 -0
  385. package/dist/components/context-menu/context-menu.d.ts.map +1 -0
  386. package/dist/components/context-menu/context-menu.js +151 -0
  387. package/dist/components/context-menu/context-menu.js.map +1 -0
  388. package/dist/components/context-menu/index.d.ts +2 -0
  389. package/dist/components/context-menu/index.js +2 -0
  390. package/dist/components/context-menu/meta.js +17 -0
  391. package/dist/components/context-menu/meta.js.map +1 -0
  392. package/dist/components/contribution-graph/contribution-graph.d.ts +37 -0
  393. package/dist/components/contribution-graph/contribution-graph.d.ts.map +1 -0
  394. package/dist/components/contribution-graph/contribution-graph.js +298 -0
  395. package/dist/components/contribution-graph/contribution-graph.js.map +1 -0
  396. package/dist/components/contribution-graph/index.d.ts +2 -0
  397. package/dist/components/contribution-graph/index.js +2 -0
  398. package/dist/components/contribution-graph/meta.js +17 -0
  399. package/dist/components/contribution-graph/meta.js.map +1 -0
  400. package/dist/components/copy-button/copy-button.d.ts +81 -0
  401. package/dist/components/copy-button/copy-button.d.ts.map +1 -0
  402. package/dist/components/copy-button/copy-button.js +146 -0
  403. package/dist/components/copy-button/copy-button.js.map +1 -0
  404. package/dist/components/copy-button/index.d.ts +2 -0
  405. package/dist/components/copy-button/index.js +2 -0
  406. package/dist/components/copy-button/meta.js +17 -0
  407. package/dist/components/copy-button/meta.js.map +1 -0
  408. package/dist/components/create-menu/create-menu.d.ts +42 -0
  409. package/dist/components/create-menu/create-menu.d.ts.map +1 -0
  410. package/dist/components/create-menu/create-menu.js +197 -0
  411. package/dist/components/create-menu/create-menu.js.map +1 -0
  412. package/dist/components/create-menu/index.d.ts +2 -0
  413. package/dist/components/create-menu/index.js +2 -0
  414. package/dist/components/create-menu/meta.js +17 -0
  415. package/dist/components/create-menu/meta.js.map +1 -0
  416. package/dist/components/cursor-follow/cursor-follow.d.ts +17 -0
  417. package/dist/components/cursor-follow/cursor-follow.d.ts.map +1 -0
  418. package/dist/components/cursor-follow/cursor-follow.js +116 -0
  419. package/dist/components/cursor-follow/cursor-follow.js.map +1 -0
  420. package/dist/components/cursor-follow/index.d.ts +2 -0
  421. package/dist/components/cursor-follow/index.js +2 -0
  422. package/dist/components/cursor-follow/meta.js +17 -0
  423. package/dist/components/cursor-follow/meta.js.map +1 -0
  424. package/dist/components/data-table/data-table.d.ts.map +1 -1
  425. package/dist/components/data-table/data-table.js +4 -1
  426. package/dist/components/data-table/data-table.js.map +1 -1
  427. package/dist/components/dial/dial.d.ts +32 -0
  428. package/dist/components/dial/dial.d.ts.map +1 -0
  429. package/dist/components/dial/dial.js +195 -0
  430. package/dist/components/dial/dial.js.map +1 -0
  431. package/dist/components/dial/index.d.ts +2 -0
  432. package/dist/components/dial/index.js +2 -0
  433. package/dist/components/dial/meta.js +17 -0
  434. package/dist/components/dial/meta.js.map +1 -0
  435. package/dist/components/dialog/dialog.d.ts +8 -1
  436. package/dist/components/dialog/dialog.d.ts.map +1 -1
  437. package/dist/components/dialog/dialog.js +24 -7
  438. package/dist/components/dialog/dialog.js.map +1 -1
  439. package/dist/components/dialog/meta.js +1 -1
  440. package/dist/components/dialog/meta.js.map +1 -1
  441. package/dist/components/diff-viewer/diff-viewer.d.ts +12 -1
  442. package/dist/components/diff-viewer/diff-viewer.d.ts.map +1 -1
  443. package/dist/components/diff-viewer/diff-viewer.js +100 -28
  444. package/dist/components/diff-viewer/diff-viewer.js.map +1 -1
  445. package/dist/components/diff-viewer/meta.js +1 -1
  446. package/dist/components/diff-viewer/meta.js.map +1 -1
  447. package/dist/components/direction/direction.d.ts +35 -0
  448. package/dist/components/direction/direction.d.ts.map +1 -0
  449. package/dist/components/direction/direction.js +14 -0
  450. package/dist/components/direction/direction.js.map +1 -0
  451. package/dist/components/direction/index.d.ts +2 -0
  452. package/dist/components/direction/index.js +2 -0
  453. package/dist/components/direction/meta.js +17 -0
  454. package/dist/components/direction/meta.js.map +1 -0
  455. package/dist/components/dither-area/dither-area.d.ts +46 -0
  456. package/dist/components/dither-area/dither-area.d.ts.map +1 -0
  457. package/dist/components/dither-area/dither-area.js +186 -0
  458. package/dist/components/dither-area/dither-area.js.map +1 -0
  459. package/dist/components/dither-area/index.d.ts +2 -0
  460. package/dist/components/dither-area/index.js +2 -0
  461. package/dist/components/dither-area/meta.js +17 -0
  462. package/dist/components/dither-area/meta.js.map +1 -0
  463. package/dist/components/dither-bar/dither-bar.d.ts +47 -0
  464. package/dist/components/dither-bar/dither-bar.d.ts.map +1 -0
  465. package/dist/components/dither-bar/dither-bar.js +261 -0
  466. package/dist/components/dither-bar/dither-bar.js.map +1 -0
  467. package/dist/components/dither-bar/index.d.ts +2 -0
  468. package/dist/components/dither-bar/index.js +2 -0
  469. package/dist/components/dither-bar/meta.js +17 -0
  470. package/dist/components/dither-bar/meta.js.map +1 -0
  471. package/dist/components/dither-canvas/dither-canvas.d.ts +76 -0
  472. package/dist/components/dither-canvas/dither-canvas.d.ts.map +1 -0
  473. package/dist/components/dither-canvas/dither-canvas.js +236 -0
  474. package/dist/components/dither-canvas/dither-canvas.js.map +1 -0
  475. package/dist/components/dither-canvas/dither-engine.d.ts +132 -0
  476. package/dist/components/dither-canvas/dither-engine.d.ts.map +1 -0
  477. package/dist/components/dither-canvas/dither-engine.js +243 -0
  478. package/dist/components/dither-canvas/dither-engine.js.map +1 -0
  479. package/dist/components/dither-canvas/dither-geometry.d.ts +73 -0
  480. package/dist/components/dither-canvas/dither-geometry.d.ts.map +1 -0
  481. package/dist/components/dither-canvas/dither-geometry.js +205 -0
  482. package/dist/components/dither-canvas/dither-geometry.js.map +1 -0
  483. package/dist/components/dither-canvas/dither-scrubber.d.ts +64 -0
  484. package/dist/components/dither-canvas/dither-scrubber.d.ts.map +1 -0
  485. package/dist/components/dither-canvas/dither-scrubber.js +130 -0
  486. package/dist/components/dither-canvas/dither-scrubber.js.map +1 -0
  487. package/dist/components/dither-canvas/index.d.ts +5 -0
  488. package/dist/components/dither-canvas/index.js +5 -0
  489. package/dist/components/dither-canvas/meta.js +22 -0
  490. package/dist/components/dither-canvas/meta.js.map +1 -0
  491. package/dist/components/dither-donut/dither-donut.d.ts +46 -0
  492. package/dist/components/dither-donut/dither-donut.d.ts.map +1 -0
  493. package/dist/components/dither-donut/dither-donut.js +241 -0
  494. package/dist/components/dither-donut/dither-donut.js.map +1 -0
  495. package/dist/components/dither-donut/index.d.ts +2 -0
  496. package/dist/components/dither-donut/index.js +2 -0
  497. package/dist/components/dither-donut/meta.js +17 -0
  498. package/dist/components/dither-donut/meta.js.map +1 -0
  499. package/dist/components/dither-funnel/dither-funnel.d.ts +53 -0
  500. package/dist/components/dither-funnel/dither-funnel.d.ts.map +1 -0
  501. package/dist/components/dither-funnel/dither-funnel.js +176 -0
  502. package/dist/components/dither-funnel/dither-funnel.js.map +1 -0
  503. package/dist/components/dither-funnel/index.d.ts +2 -0
  504. package/dist/components/dither-funnel/index.js +2 -0
  505. package/dist/components/dither-funnel/meta.js +17 -0
  506. package/dist/components/dither-funnel/meta.js.map +1 -0
  507. package/dist/components/dither-gauge/dither-gauge.d.ts +48 -0
  508. package/dist/components/dither-gauge/dither-gauge.d.ts.map +1 -0
  509. package/dist/components/dither-gauge/dither-gauge.js +189 -0
  510. package/dist/components/dither-gauge/dither-gauge.js.map +1 -0
  511. package/dist/components/dither-gauge/index.d.ts +2 -0
  512. package/dist/components/dither-gauge/index.js +2 -0
  513. package/dist/components/dither-gauge/meta.js +17 -0
  514. package/dist/components/dither-gauge/meta.js.map +1 -0
  515. package/dist/components/dither-heatmap/dither-heatmap.d.ts +63 -0
  516. package/dist/components/dither-heatmap/dither-heatmap.d.ts.map +1 -0
  517. package/dist/components/dither-heatmap/dither-heatmap.js +298 -0
  518. package/dist/components/dither-heatmap/dither-heatmap.js.map +1 -0
  519. package/dist/components/dither-heatmap/index.d.ts +2 -0
  520. package/dist/components/dither-heatmap/index.js +2 -0
  521. package/dist/components/dither-heatmap/meta.js +17 -0
  522. package/dist/components/dither-heatmap/meta.js.map +1 -0
  523. package/dist/components/dither-line/dither-line.d.ts +41 -0
  524. package/dist/components/dither-line/dither-line.d.ts.map +1 -0
  525. package/dist/components/dither-line/dither-line.js +164 -0
  526. package/dist/components/dither-line/dither-line.js.map +1 -0
  527. package/dist/components/dither-line/index.d.ts +2 -0
  528. package/dist/components/dither-line/index.js +2 -0
  529. package/dist/components/dither-line/meta.js +17 -0
  530. package/dist/components/dither-line/meta.js.map +1 -0
  531. package/dist/components/dither-meter/dither-meter.d.ts +51 -0
  532. package/dist/components/dither-meter/dither-meter.d.ts.map +1 -0
  533. package/dist/components/dither-meter/dither-meter.js +211 -0
  534. package/dist/components/dither-meter/dither-meter.js.map +1 -0
  535. package/dist/components/dither-meter/index.d.ts +2 -0
  536. package/dist/components/dither-meter/index.js +2 -0
  537. package/dist/components/dither-meter/meta.js +17 -0
  538. package/dist/components/dither-meter/meta.js.map +1 -0
  539. package/dist/components/dither-scatter/dither-scatter.d.ts +53 -0
  540. package/dist/components/dither-scatter/dither-scatter.d.ts.map +1 -0
  541. package/dist/components/dither-scatter/dither-scatter.js +211 -0
  542. package/dist/components/dither-scatter/dither-scatter.js.map +1 -0
  543. package/dist/components/dither-scatter/index.d.ts +2 -0
  544. package/dist/components/dither-scatter/index.js +2 -0
  545. package/dist/components/dither-scatter/meta.js +17 -0
  546. package/dist/components/dither-scatter/meta.js.map +1 -0
  547. package/dist/components/dot-morph-button/dot-morph-button.d.ts +18 -0
  548. package/dist/components/dot-morph-button/dot-morph-button.d.ts.map +1 -0
  549. package/dist/components/dot-morph-button/dot-morph-button.js +43 -0
  550. package/dist/components/dot-morph-button/dot-morph-button.js.map +1 -0
  551. package/dist/components/dot-morph-button/index.d.ts +2 -0
  552. package/dist/components/dot-morph-button/index.js +2 -0
  553. package/dist/components/dot-morph-button/meta.js +17 -0
  554. package/dist/components/dot-morph-button/meta.js.map +1 -0
  555. package/dist/components/dots-loader/dots-loader.d.ts +186 -0
  556. package/dist/components/dots-loader/dots-loader.d.ts.map +1 -0
  557. package/dist/components/dots-loader/dots-loader.js +412 -0
  558. package/dist/components/dots-loader/dots-loader.js.map +1 -0
  559. package/dist/components/dots-loader/index.d.ts +2 -0
  560. package/dist/components/dots-loader/index.js +2 -0
  561. package/dist/components/dots-loader/meta.js +17 -0
  562. package/dist/components/dots-loader/meta.js.map +1 -0
  563. package/dist/components/drag-stepper/drag-stepper.d.ts +39 -0
  564. package/dist/components/drag-stepper/drag-stepper.d.ts.map +1 -0
  565. package/dist/components/drag-stepper/drag-stepper.js +232 -0
  566. package/dist/components/drag-stepper/drag-stepper.js.map +1 -0
  567. package/dist/components/drag-stepper/index.d.ts +2 -0
  568. package/dist/components/drag-stepper/index.js +2 -0
  569. package/dist/components/drag-stepper/meta.js +17 -0
  570. package/dist/components/drag-stepper/meta.js.map +1 -0
  571. package/dist/components/drawer/drawer.d.ts +9 -1
  572. package/dist/components/drawer/drawer.d.ts.map +1 -1
  573. package/dist/components/drawer/drawer.js +24 -5
  574. package/dist/components/drawer/drawer.js.map +1 -1
  575. package/dist/components/drawer/meta.js +1 -1
  576. package/dist/components/drawer/meta.js.map +1 -1
  577. package/dist/components/dropdown-menu/dropdown-menu.d.ts +5 -0
  578. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  579. package/dist/components/dropdown-menu/dropdown-menu.js +34 -13
  580. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  581. package/dist/components/dropdown-menu/meta.js +1 -1
  582. package/dist/components/dropdown-menu/meta.js.map +1 -1
  583. package/dist/components/effect-button/effect-button.d.ts +28 -0
  584. package/dist/components/effect-button/effect-button.d.ts.map +1 -0
  585. package/dist/components/effect-button/effect-button.js +176 -0
  586. package/dist/components/effect-button/effect-button.js.map +1 -0
  587. package/dist/components/effect-button/index.d.ts +2 -0
  588. package/dist/components/effect-button/index.js +2 -0
  589. package/dist/components/effect-button/meta.js +17 -0
  590. package/dist/components/effect-button/meta.js.map +1 -0
  591. package/dist/components/escape-button/escape-button.d.ts +25 -0
  592. package/dist/components/escape-button/escape-button.d.ts.map +1 -0
  593. package/dist/components/escape-button/escape-button.js +154 -0
  594. package/dist/components/escape-button/escape-button.js.map +1 -0
  595. package/dist/components/escape-button/index.d.ts +2 -0
  596. package/dist/components/escape-button/index.js +2 -0
  597. package/dist/components/escape-button/meta.js +17 -0
  598. package/dist/components/escape-button/meta.js.map +1 -0
  599. package/dist/components/expandable-cards/expandable-cards.d.ts +42 -0
  600. package/dist/components/expandable-cards/expandable-cards.d.ts.map +1 -0
  601. package/dist/components/expandable-cards/expandable-cards.js +312 -0
  602. package/dist/components/expandable-cards/expandable-cards.js.map +1 -0
  603. package/dist/components/expandable-cards/index.d.ts +2 -0
  604. package/dist/components/expandable-cards/index.js +2 -0
  605. package/dist/components/expandable-cards/meta.js +17 -0
  606. package/dist/components/expandable-cards/meta.js.map +1 -0
  607. package/dist/components/expandable-list/expandable-list.d.ts +35 -0
  608. package/dist/components/expandable-list/expandable-list.d.ts.map +1 -0
  609. package/dist/components/expandable-list/expandable-list.js +180 -0
  610. package/dist/components/expandable-list/expandable-list.js.map +1 -0
  611. package/dist/components/expandable-list/index.d.ts +2 -0
  612. package/dist/components/expandable-list/index.js +2 -0
  613. package/dist/components/expandable-list/meta.js +21 -0
  614. package/dist/components/expandable-list/meta.js.map +1 -0
  615. package/dist/components/expanding-search/expanding-search.d.ts +30 -0
  616. package/dist/components/expanding-search/expanding-search.d.ts.map +1 -0
  617. package/dist/components/expanding-search/expanding-search.js +141 -0
  618. package/dist/components/expanding-search/expanding-search.js.map +1 -0
  619. package/dist/components/expanding-search/index.d.ts +2 -0
  620. package/dist/components/expanding-search/index.js +2 -0
  621. package/dist/components/expanding-search/meta.js +17 -0
  622. package/dist/components/expanding-search/meta.js.map +1 -0
  623. package/dist/components/exposure-slider/exposure-slider.d.ts +33 -0
  624. package/dist/components/exposure-slider/exposure-slider.d.ts.map +1 -0
  625. package/dist/components/exposure-slider/exposure-slider.js +227 -0
  626. package/dist/components/exposure-slider/exposure-slider.js.map +1 -0
  627. package/dist/components/exposure-slider/index.d.ts +2 -0
  628. package/dist/components/exposure-slider/index.js +2 -0
  629. package/dist/components/exposure-slider/meta.js +17 -0
  630. package/dist/components/exposure-slider/meta.js.map +1 -0
  631. package/dist/components/file-upload/file-upload.d.ts +13 -2
  632. package/dist/components/file-upload/file-upload.d.ts.map +1 -1
  633. package/dist/components/file-upload/file-upload.js +166 -95
  634. package/dist/components/file-upload/file-upload.js.map +1 -1
  635. package/dist/components/file-upload/meta.js +1 -1
  636. package/dist/components/file-upload/meta.js.map +1 -1
  637. package/dist/components/focus-blur-links/focus-blur-links.d.ts +25 -0
  638. package/dist/components/focus-blur-links/focus-blur-links.d.ts.map +1 -0
  639. package/dist/components/focus-blur-links/focus-blur-links.js +92 -0
  640. package/dist/components/focus-blur-links/focus-blur-links.js.map +1 -0
  641. package/dist/components/focus-blur-links/index.d.ts +2 -0
  642. package/dist/components/focus-blur-links/index.js +2 -0
  643. package/dist/components/focus-blur-links/meta.js +17 -0
  644. package/dist/components/focus-blur-links/meta.js.map +1 -0
  645. package/dist/components/folding-frame/folding-frame.d.ts +38 -0
  646. package/dist/components/folding-frame/folding-frame.d.ts.map +1 -0
  647. package/dist/components/folding-frame/folding-frame.js +298 -0
  648. package/dist/components/folding-frame/folding-frame.js.map +1 -0
  649. package/dist/components/folding-frame/index.d.ts +2 -0
  650. package/dist/components/folding-frame/index.js +2 -0
  651. package/dist/components/folding-frame/meta.js +17 -0
  652. package/dist/components/folding-frame/meta.js.map +1 -0
  653. package/dist/components/form/form.d.ts +11 -2
  654. package/dist/components/form/form.d.ts.map +1 -1
  655. package/dist/components/form/form.js +55 -5
  656. package/dist/components/form/form.js.map +1 -1
  657. package/dist/components/form/meta.js +1 -1
  658. package/dist/components/form/meta.js.map +1 -1
  659. package/dist/components/glass-bubble/glass-bubble.d.ts +59 -0
  660. package/dist/components/glass-bubble/glass-bubble.d.ts.map +1 -0
  661. package/dist/components/glass-bubble/glass-bubble.js +308 -0
  662. package/dist/components/glass-bubble/glass-bubble.js.map +1 -0
  663. package/dist/components/glass-bubble/index.d.ts +2 -0
  664. package/dist/components/glass-bubble/index.js +2 -0
  665. package/dist/components/glass-bubble/meta.js +17 -0
  666. package/dist/components/glass-bubble/meta.js.map +1 -0
  667. package/dist/components/glow-card/glow-card.d.ts +34 -0
  668. package/dist/components/glow-card/glow-card.d.ts.map +1 -0
  669. package/dist/components/glow-card/glow-card.js +104 -0
  670. package/dist/components/glow-card/glow-card.js.map +1 -0
  671. package/dist/components/glow-card/index.d.ts +2 -0
  672. package/dist/components/glow-card/index.js +2 -0
  673. package/dist/components/glow-card/meta.js +17 -0
  674. package/dist/components/glow-card/meta.js.map +1 -0
  675. package/dist/components/goo-ball/goo-ball.d.ts +48 -0
  676. package/dist/components/goo-ball/goo-ball.d.ts.map +1 -0
  677. package/dist/components/goo-ball/goo-ball.js +295 -0
  678. package/dist/components/goo-ball/goo-ball.js.map +1 -0
  679. package/dist/components/goo-ball/index.d.ts +2 -0
  680. package/dist/components/goo-ball/index.js +2 -0
  681. package/dist/components/goo-ball/meta.js +21 -0
  682. package/dist/components/goo-ball/meta.js.map +1 -0
  683. package/dist/components/goo-tabs/goo-tabs.d.ts +37 -0
  684. package/dist/components/goo-tabs/goo-tabs.d.ts.map +1 -0
  685. package/dist/components/goo-tabs/goo-tabs.js +286 -0
  686. package/dist/components/goo-tabs/goo-tabs.js.map +1 -0
  687. package/dist/components/goo-tabs/index.d.ts +2 -0
  688. package/dist/components/goo-tabs/index.js +2 -0
  689. package/dist/components/goo-tabs/meta.js +17 -0
  690. package/dist/components/goo-tabs/meta.js.map +1 -0
  691. package/dist/components/gooey-popover/gooey-popover.d.ts +32 -0
  692. package/dist/components/gooey-popover/gooey-popover.d.ts.map +1 -0
  693. package/dist/components/gooey-popover/gooey-popover.js +257 -0
  694. package/dist/components/gooey-popover/gooey-popover.js.map +1 -0
  695. package/dist/components/gooey-popover/index.d.ts +2 -0
  696. package/dist/components/gooey-popover/index.js +2 -0
  697. package/dist/components/gooey-popover/meta.js +17 -0
  698. package/dist/components/gooey-popover/meta.js.map +1 -0
  699. package/dist/components/gradient-orb/gradient-orb.d.ts +39 -0
  700. package/dist/components/gradient-orb/gradient-orb.d.ts.map +1 -0
  701. package/dist/components/gradient-orb/gradient-orb.js +185 -0
  702. package/dist/components/gradient-orb/gradient-orb.js.map +1 -0
  703. package/dist/components/gradient-orb/index.d.ts +2 -0
  704. package/dist/components/gradient-orb/index.js +2 -0
  705. package/dist/components/gradient-orb/meta.js +17 -0
  706. package/dist/components/gradient-orb/meta.js.map +1 -0
  707. package/dist/components/grid-loader/grid-loader.d.ts +224 -0
  708. package/dist/components/grid-loader/grid-loader.d.ts.map +1 -0
  709. package/dist/components/grid-loader/grid-loader.js +271 -0
  710. package/dist/components/grid-loader/grid-loader.js.map +1 -0
  711. package/dist/components/grid-loader/index.d.ts +2 -0
  712. package/dist/components/grid-loader/index.js +2 -0
  713. package/dist/components/grid-loader/meta.js +17 -0
  714. package/dist/components/grid-loader/meta.js.map +1 -0
  715. package/dist/components/image-accordion/image-accordion.d.ts +40 -0
  716. package/dist/components/image-accordion/image-accordion.d.ts.map +1 -0
  717. package/dist/components/image-accordion/image-accordion.js +118 -0
  718. package/dist/components/image-accordion/image-accordion.js.map +1 -0
  719. package/dist/components/image-accordion/index.d.ts +2 -0
  720. package/dist/components/image-accordion/index.js +2 -0
  721. package/dist/components/image-accordion/meta.js +17 -0
  722. package/dist/components/image-accordion/meta.js.map +1 -0
  723. package/dist/components/image-metadata/image-metadata.d.ts +34 -0
  724. package/dist/components/image-metadata/image-metadata.d.ts.map +1 -0
  725. package/dist/components/image-metadata/image-metadata.js +178 -0
  726. package/dist/components/image-metadata/image-metadata.js.map +1 -0
  727. package/dist/components/image-metadata/index.d.ts +2 -0
  728. package/dist/components/image-metadata/index.js +2 -0
  729. package/dist/components/image-metadata/meta.js +17 -0
  730. package/dist/components/image-metadata/meta.js.map +1 -0
  731. package/dist/components/image-selector/image-selector.d.ts +37 -0
  732. package/dist/components/image-selector/image-selector.d.ts.map +1 -0
  733. package/dist/components/image-selector/image-selector.js +253 -0
  734. package/dist/components/image-selector/image-selector.js.map +1 -0
  735. package/dist/components/image-selector/index.d.ts +2 -0
  736. package/dist/components/image-selector/index.js +2 -0
  737. package/dist/components/image-selector/meta.js +17 -0
  738. package/dist/components/image-selector/meta.js.map +1 -0
  739. package/dist/components/inline-confirm/index.d.ts +2 -0
  740. package/dist/components/inline-confirm/index.js +2 -0
  741. package/dist/components/inline-confirm/inline-confirm.d.ts +38 -0
  742. package/dist/components/inline-confirm/inline-confirm.d.ts.map +1 -0
  743. package/dist/components/inline-confirm/inline-confirm.js +246 -0
  744. package/dist/components/inline-confirm/inline-confirm.js.map +1 -0
  745. package/dist/components/inline-confirm/meta.js +17 -0
  746. package/dist/components/inline-confirm/meta.js.map +1 -0
  747. package/dist/components/input/floating-label-input.d.ts +26 -0
  748. package/dist/components/input/floating-label-input.d.ts.map +1 -0
  749. package/dist/components/input/floating-label-input.js +47 -0
  750. package/dist/components/input/floating-label-input.js.map +1 -0
  751. package/dist/components/input/index.d.ts +2 -1
  752. package/dist/components/input/index.js +2 -1
  753. package/dist/components/input/input.js +1 -1
  754. package/dist/components/input/input.js.map +1 -1
  755. package/dist/components/input/meta.js +2 -2
  756. package/dist/components/input/meta.js.map +1 -1
  757. package/dist/components/invite-carousel/carousel-controls.js +189 -0
  758. package/dist/components/invite-carousel/carousel-controls.js.map +1 -0
  759. package/dist/components/invite-carousel/index.d.ts +2 -0
  760. package/dist/components/invite-carousel/index.js +2 -0
  761. package/dist/components/invite-carousel/invite-carousel.d.ts +56 -0
  762. package/dist/components/invite-carousel/invite-carousel.d.ts.map +1 -0
  763. package/dist/components/invite-carousel/invite-carousel.js +207 -0
  764. package/dist/components/invite-carousel/invite-carousel.js.map +1 -0
  765. package/dist/components/invite-carousel/meta.js +17 -0
  766. package/dist/components/invite-carousel/meta.js.map +1 -0
  767. package/dist/components/island/index.d.ts +2 -0
  768. package/dist/components/island/index.js +2 -0
  769. package/dist/components/island/island.d.ts +30 -0
  770. package/dist/components/island/island.d.ts.map +1 -0
  771. package/dist/components/island/island.js +94 -0
  772. package/dist/components/island/island.js.map +1 -0
  773. package/dist/components/island/meta.js +17 -0
  774. package/dist/components/island/meta.js.map +1 -0
  775. package/dist/components/liquid-toggle/index.d.ts +2 -0
  776. package/dist/components/liquid-toggle/index.js +2 -0
  777. package/dist/components/liquid-toggle/liquid-toggle.d.ts +19 -0
  778. package/dist/components/liquid-toggle/liquid-toggle.d.ts.map +1 -0
  779. package/dist/components/liquid-toggle/liquid-toggle.js +175 -0
  780. package/dist/components/liquid-toggle/liquid-toggle.js.map +1 -0
  781. package/dist/components/liquid-toggle/meta.js +21 -0
  782. package/dist/components/liquid-toggle/meta.js.map +1 -0
  783. package/dist/components/log-viewer/log-viewer.js +2 -2
  784. package/dist/components/log-viewer/log-viewer.js.map +1 -1
  785. package/dist/components/magnetic-button/index.d.ts +2 -0
  786. package/dist/components/magnetic-button/index.js +2 -0
  787. package/dist/components/magnetic-button/magnetic-button.d.ts +32 -0
  788. package/dist/components/magnetic-button/magnetic-button.d.ts.map +1 -0
  789. package/dist/components/magnetic-button/magnetic-button.js +138 -0
  790. package/dist/components/magnetic-button/magnetic-button.js.map +1 -0
  791. package/dist/components/magnetic-button/meta.js +17 -0
  792. package/dist/components/magnetic-button/meta.js.map +1 -0
  793. package/dist/components/magnetic-select/index.d.ts +2 -0
  794. package/dist/components/magnetic-select/index.js +2 -0
  795. package/dist/components/magnetic-select/magnetic-select-spring.js +21 -0
  796. package/dist/components/magnetic-select/magnetic-select-spring.js.map +1 -0
  797. package/dist/components/magnetic-select/magnetic-select.d.ts +44 -0
  798. package/dist/components/magnetic-select/magnetic-select.d.ts.map +1 -0
  799. package/dist/components/magnetic-select/magnetic-select.js +330 -0
  800. package/dist/components/magnetic-select/magnetic-select.js.map +1 -0
  801. package/dist/components/magnetic-select/meta.js +17 -0
  802. package/dist/components/magnetic-select/meta.js.map +1 -0
  803. package/dist/components/magnify-dock/index.d.ts +2 -0
  804. package/dist/components/magnify-dock/index.js +2 -0
  805. package/dist/components/magnify-dock/magnify-dock.d.ts +40 -0
  806. package/dist/components/magnify-dock/magnify-dock.d.ts.map +1 -0
  807. package/dist/components/magnify-dock/magnify-dock.js +183 -0
  808. package/dist/components/magnify-dock/magnify-dock.js.map +1 -0
  809. package/dist/components/magnify-dock/meta.js +17 -0
  810. package/dist/components/magnify-dock/meta.js.map +1 -0
  811. package/dist/components/marquee/index.d.ts +2 -0
  812. package/dist/components/marquee/index.js +2 -0
  813. package/dist/components/marquee/marquee.d.ts +30 -0
  814. package/dist/components/marquee/marquee.d.ts.map +1 -0
  815. package/dist/components/marquee/marquee.js +117 -0
  816. package/dist/components/marquee/marquee.js.map +1 -0
  817. package/dist/components/marquee/meta.js +17 -0
  818. package/dist/components/marquee/meta.js.map +1 -0
  819. package/dist/components/meter/meter.js +1 -1
  820. package/dist/components/meter/meter.js.map +1 -1
  821. package/dist/components/morph-button/index.d.ts +2 -0
  822. package/dist/components/morph-button/index.js +2 -0
  823. package/dist/components/morph-button/meta.js +17 -0
  824. package/dist/components/morph-button/meta.js.map +1 -0
  825. package/dist/components/morph-button/morph-button.d.ts +57 -0
  826. package/dist/components/morph-button/morph-button.d.ts.map +1 -0
  827. package/dist/components/morph-button/morph-button.js +220 -0
  828. package/dist/components/morph-button/morph-button.js.map +1 -0
  829. package/dist/components/morph-surface/index.d.ts +2 -0
  830. package/dist/components/morph-surface/index.js +2 -0
  831. package/dist/components/morph-surface/meta.js +17 -0
  832. package/dist/components/morph-surface/meta.js.map +1 -0
  833. package/dist/components/morph-surface/morph-surface.d.ts +51 -0
  834. package/dist/components/morph-surface/morph-surface.d.ts.map +1 -0
  835. package/dist/components/morph-surface/morph-surface.js +228 -0
  836. package/dist/components/morph-surface/morph-surface.js.map +1 -0
  837. package/dist/components/notification-badge/index.d.ts +2 -0
  838. package/dist/components/notification-badge/index.js +2 -0
  839. package/dist/components/notification-badge/meta.js +17 -0
  840. package/dist/components/notification-badge/meta.js.map +1 -0
  841. package/dist/components/notification-badge/notification-badge.d.ts +40 -0
  842. package/dist/components/notification-badge/notification-badge.d.ts.map +1 -0
  843. package/dist/components/notification-badge/notification-badge.js +107 -0
  844. package/dist/components/notification-badge/notification-badge.js.map +1 -0
  845. package/dist/components/notify-button/index.d.ts +2 -0
  846. package/dist/components/notify-button/index.js +2 -0
  847. package/dist/components/notify-button/meta.js +17 -0
  848. package/dist/components/notify-button/meta.js.map +1 -0
  849. package/dist/components/notify-button/notify-button.d.ts +28 -0
  850. package/dist/components/notify-button/notify-button.d.ts.map +1 -0
  851. package/dist/components/notify-button/notify-button.js +114 -0
  852. package/dist/components/notify-button/notify-button.js.map +1 -0
  853. package/dist/components/now-playing/index.d.ts +2 -0
  854. package/dist/components/now-playing/index.js +2 -0
  855. package/dist/components/now-playing/meta.js +17 -0
  856. package/dist/components/now-playing/meta.js.map +1 -0
  857. package/dist/components/now-playing/now-playing.d.ts +39 -0
  858. package/dist/components/now-playing/now-playing.d.ts.map +1 -0
  859. package/dist/components/now-playing/now-playing.js +354 -0
  860. package/dist/components/now-playing/now-playing.js.map +1 -0
  861. package/dist/components/number-flow/index.d.ts +2 -0
  862. package/dist/components/number-flow/index.js +2 -0
  863. package/dist/components/number-flow/meta.js +17 -0
  864. package/dist/components/number-flow/meta.js.map +1 -0
  865. package/dist/components/number-flow/number-flow.d.ts +45 -0
  866. package/dist/components/number-flow/number-flow.d.ts.map +1 -0
  867. package/dist/components/number-flow/number-flow.js +226 -0
  868. package/dist/components/number-flow/number-flow.js.map +1 -0
  869. package/dist/components/orb-face/index.d.ts +2 -0
  870. package/dist/components/orb-face/index.js +2 -0
  871. package/dist/components/orb-face/meta.js +17 -0
  872. package/dist/components/orb-face/meta.js.map +1 -0
  873. package/dist/components/orb-face/orb-face.d.ts +29 -0
  874. package/dist/components/orb-face/orb-face.d.ts.map +1 -0
  875. package/dist/components/orb-face/orb-face.js +353 -0
  876. package/dist/components/orb-face/orb-face.js.map +1 -0
  877. package/dist/components/otp-input/index.d.ts +2 -0
  878. package/dist/components/otp-input/index.js +2 -0
  879. package/dist/components/otp-input/meta.js +17 -0
  880. package/dist/components/otp-input/meta.js.map +1 -0
  881. package/dist/components/otp-input/otp-input.d.ts +36 -0
  882. package/dist/components/otp-input/otp-input.d.ts.map +1 -0
  883. package/dist/components/otp-input/otp-input.js +249 -0
  884. package/dist/components/otp-input/otp-input.js.map +1 -0
  885. package/dist/components/pagination/index.d.ts +2 -2
  886. package/dist/components/pagination/meta.js +2 -2
  887. package/dist/components/pagination/meta.js.map +1 -1
  888. package/dist/components/pagination/pagination-indicator.js +76 -0
  889. package/dist/components/pagination/pagination-indicator.js.map +1 -0
  890. package/dist/components/pagination/pagination.d.ts +10 -2
  891. package/dist/components/pagination/pagination.d.ts.map +1 -1
  892. package/dist/components/pagination/pagination.js +16 -6
  893. package/dist/components/pagination/pagination.js.map +1 -1
  894. package/dist/components/palette-generator/index.d.ts +2 -0
  895. package/dist/components/palette-generator/index.js +2 -0
  896. package/dist/components/palette-generator/meta.js +17 -0
  897. package/dist/components/palette-generator/meta.js.map +1 -0
  898. package/dist/components/palette-generator/palette-generator.d.ts +43 -0
  899. package/dist/components/palette-generator/palette-generator.d.ts.map +1 -0
  900. package/dist/components/palette-generator/palette-generator.js +199 -0
  901. package/dist/components/palette-generator/palette-generator.js.map +1 -0
  902. package/dist/components/permission-matrix/permission-matrix.js +3 -3
  903. package/dist/components/permission-matrix/permission-matrix.js.map +1 -1
  904. package/dist/components/photo-stack/index.d.ts +2 -0
  905. package/dist/components/photo-stack/index.js +2 -0
  906. package/dist/components/photo-stack/meta.js +17 -0
  907. package/dist/components/photo-stack/meta.js.map +1 -0
  908. package/dist/components/photo-stack/photo-stack.d.ts +30 -0
  909. package/dist/components/photo-stack/photo-stack.d.ts.map +1 -0
  910. package/dist/components/photo-stack/photo-stack.js +236 -0
  911. package/dist/components/photo-stack/photo-stack.js.map +1 -0
  912. package/dist/components/photo-tabs/index.d.ts +2 -0
  913. package/dist/components/photo-tabs/index.js +2 -0
  914. package/dist/components/photo-tabs/meta.js +17 -0
  915. package/dist/components/photo-tabs/meta.js.map +1 -0
  916. package/dist/components/photo-tabs/photo-tabs.d.ts +35 -0
  917. package/dist/components/photo-tabs/photo-tabs.d.ts.map +1 -0
  918. package/dist/components/photo-tabs/photo-tabs.js +82 -0
  919. package/dist/components/photo-tabs/photo-tabs.js.map +1 -0
  920. package/dist/components/pixel-avatar/index.d.ts +2 -0
  921. package/dist/components/pixel-avatar/index.js +2 -0
  922. package/dist/components/pixel-avatar/meta.js +17 -0
  923. package/dist/components/pixel-avatar/meta.js.map +1 -0
  924. package/dist/components/pixel-avatar/pixel-avatar.d.ts +23 -0
  925. package/dist/components/pixel-avatar/pixel-avatar.d.ts.map +1 -0
  926. package/dist/components/pixel-avatar/pixel-avatar.js +181 -0
  927. package/dist/components/pixel-avatar/pixel-avatar.js.map +1 -0
  928. package/dist/components/product-card/index.d.ts +2 -0
  929. package/dist/components/product-card/index.js +2 -0
  930. package/dist/components/product-card/meta.js +17 -0
  931. package/dist/components/product-card/meta.js.map +1 -0
  932. package/dist/components/product-card/product-card.d.ts +43 -0
  933. package/dist/components/product-card/product-card.d.ts.map +1 -0
  934. package/dist/components/product-card/product-card.js +249 -0
  935. package/dist/components/product-card/product-card.js.map +1 -0
  936. package/dist/components/progress/meta.js +1 -1
  937. package/dist/components/progress/meta.js.map +1 -1
  938. package/dist/components/progress/progress.d.ts +21 -2
  939. package/dist/components/progress/progress.d.ts.map +1 -1
  940. package/dist/components/progress/progress.js +56 -6
  941. package/dist/components/progress/progress.js.map +1 -1
  942. package/dist/components/pull-to-refresh/index.d.ts +2 -0
  943. package/dist/components/pull-to-refresh/index.js +2 -0
  944. package/dist/components/pull-to-refresh/meta.js +17 -0
  945. package/dist/components/pull-to-refresh/meta.js.map +1 -0
  946. package/dist/components/pull-to-refresh/pull-to-refresh.d.ts +47 -0
  947. package/dist/components/pull-to-refresh/pull-to-refresh.d.ts.map +1 -0
  948. package/dist/components/pull-to-refresh/pull-to-refresh.js +302 -0
  949. package/dist/components/pull-to-refresh/pull-to-refresh.js.map +1 -0
  950. package/dist/components/radial-menu/index.d.ts +2 -0
  951. package/dist/components/radial-menu/index.js +2 -0
  952. package/dist/components/radial-menu/meta.js +17 -0
  953. package/dist/components/radial-menu/meta.js.map +1 -0
  954. package/dist/components/radial-menu/radial-menu.d.ts +44 -0
  955. package/dist/components/radial-menu/radial-menu.d.ts.map +1 -0
  956. package/dist/components/radial-menu/radial-menu.js +313 -0
  957. package/dist/components/radial-menu/radial-menu.js.map +1 -0
  958. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  959. package/dist/components/radio-group/radio-group.js +4 -1
  960. package/dist/components/radio-group/radio-group.js.map +1 -1
  961. package/dist/components/range-dial/index.d.ts +2 -0
  962. package/dist/components/range-dial/index.js +2 -0
  963. package/dist/components/range-dial/meta.js +17 -0
  964. package/dist/components/range-dial/meta.js.map +1 -0
  965. package/dist/components/range-dial/range-dial.d.ts +33 -0
  966. package/dist/components/range-dial/range-dial.d.ts.map +1 -0
  967. package/dist/components/range-dial/range-dial.js +308 -0
  968. package/dist/components/range-dial/range-dial.js.map +1 -0
  969. package/dist/components/record-diff/record-diff.js +4 -4
  970. package/dist/components/record-diff/record-diff.js.map +1 -1
  971. package/dist/components/reorder-list/index.d.ts +2 -0
  972. package/dist/components/reorder-list/index.js +2 -0
  973. package/dist/components/reorder-list/meta.js +17 -0
  974. package/dist/components/reorder-list/meta.js.map +1 -0
  975. package/dist/components/reorder-list/reorder-list.d.ts +79 -0
  976. package/dist/components/reorder-list/reorder-list.d.ts.map +1 -0
  977. package/dist/components/reorder-list/reorder-list.js +471 -0
  978. package/dist/components/reorder-list/reorder-list.js.map +1 -0
  979. package/dist/components/reviews-carousel/carousel-controls.js +189 -0
  980. package/dist/components/reviews-carousel/carousel-controls.js.map +1 -0
  981. package/dist/components/reviews-carousel/index.d.ts +2 -0
  982. package/dist/components/reviews-carousel/index.js +2 -0
  983. package/dist/components/reviews-carousel/meta.js +17 -0
  984. package/dist/components/reviews-carousel/meta.js.map +1 -0
  985. package/dist/components/reviews-carousel/reviews-carousel.d.ts +46 -0
  986. package/dist/components/reviews-carousel/reviews-carousel.d.ts.map +1 -0
  987. package/dist/components/reviews-carousel/reviews-carousel.js +177 -0
  988. package/dist/components/reviews-carousel/reviews-carousel.js.map +1 -0
  989. package/dist/components/rich-popover/index.d.ts +2 -0
  990. package/dist/components/rich-popover/index.js +2 -0
  991. package/dist/components/rich-popover/meta.js +17 -0
  992. package/dist/components/rich-popover/meta.js.map +1 -0
  993. package/dist/components/rich-popover/rich-popover.d.ts +36 -0
  994. package/dist/components/rich-popover/rich-popover.d.ts.map +1 -0
  995. package/dist/components/rich-popover/rich-popover.js +157 -0
  996. package/dist/components/rich-popover/rich-popover.js.map +1 -0
  997. package/dist/components/ring-loader/index.d.ts +2 -0
  998. package/dist/components/ring-loader/index.js +2 -0
  999. package/dist/components/ring-loader/meta.js +17 -0
  1000. package/dist/components/ring-loader/meta.js.map +1 -0
  1001. package/dist/components/ring-loader/ring-loader.d.ts +31 -0
  1002. package/dist/components/ring-loader/ring-loader.d.ts.map +1 -0
  1003. package/dist/components/ring-loader/ring-loader.js +597 -0
  1004. package/dist/components/ring-loader/ring-loader.js.map +1 -0
  1005. package/dist/components/scramble-text/index.d.ts +2 -0
  1006. package/dist/components/scramble-text/index.js +2 -0
  1007. package/dist/components/scramble-text/meta.js +17 -0
  1008. package/dist/components/scramble-text/meta.js.map +1 -0
  1009. package/dist/components/scramble-text/scramble-text.d.ts +35 -0
  1010. package/dist/components/scramble-text/scramble-text.d.ts.map +1 -0
  1011. package/dist/components/scramble-text/scramble-text.js +151 -0
  1012. package/dist/components/scramble-text/scramble-text.js.map +1 -0
  1013. package/dist/components/scroll-reveal-text/index.d.ts +2 -0
  1014. package/dist/components/scroll-reveal-text/index.js +2 -0
  1015. package/dist/components/scroll-reveal-text/meta.js +17 -0
  1016. package/dist/components/scroll-reveal-text/meta.js.map +1 -0
  1017. package/dist/components/scroll-reveal-text/scroll-reveal-text.d.ts +22 -0
  1018. package/dist/components/scroll-reveal-text/scroll-reveal-text.d.ts.map +1 -0
  1019. package/dist/components/scroll-reveal-text/scroll-reveal-text.js +113 -0
  1020. package/dist/components/scroll-reveal-text/scroll-reveal-text.js.map +1 -0
  1021. package/dist/components/scrubber/index.d.ts +2 -0
  1022. package/dist/components/scrubber/index.js +2 -0
  1023. package/dist/components/scrubber/meta.js +17 -0
  1024. package/dist/components/scrubber/meta.js.map +1 -0
  1025. package/dist/components/scrubber/scrubber.d.ts +37 -0
  1026. package/dist/components/scrubber/scrubber.d.ts.map +1 -0
  1027. package/dist/components/scrubber/scrubber.js +217 -0
  1028. package/dist/components/scrubber/scrubber.js.map +1 -0
  1029. package/dist/components/select/meta.js +1 -1
  1030. package/dist/components/select/meta.js.map +1 -1
  1031. package/dist/components/select/select.d.ts +5 -0
  1032. package/dist/components/select/select.d.ts.map +1 -1
  1033. package/dist/components/select/select.js +29 -7
  1034. package/dist/components/select/select.js.map +1 -1
  1035. package/dist/components/selection-list/index.d.ts +2 -0
  1036. package/dist/components/selection-list/index.js +2 -0
  1037. package/dist/components/selection-list/meta.js +17 -0
  1038. package/dist/components/selection-list/meta.js.map +1 -0
  1039. package/dist/components/selection-list/selection-list-spring.js +21 -0
  1040. package/dist/components/selection-list/selection-list-spring.js.map +1 -0
  1041. package/dist/components/selection-list/selection-list.d.ts +42 -0
  1042. package/dist/components/selection-list/selection-list.d.ts.map +1 -0
  1043. package/dist/components/selection-list/selection-list.js +355 -0
  1044. package/dist/components/selection-list/selection-list.js.map +1 -0
  1045. package/dist/components/shader-transition/index.d.ts +4 -0
  1046. package/dist/components/shader-transition/index.js +4 -0
  1047. package/dist/components/shader-transition/meta.js +21 -0
  1048. package/dist/components/shader-transition/meta.js.map +1 -0
  1049. package/dist/components/shader-transition/shader-transition-engine.d.ts +39 -0
  1050. package/dist/components/shader-transition/shader-transition-engine.d.ts.map +1 -0
  1051. package/dist/components/shader-transition/shader-transition-engine.js +294 -0
  1052. package/dist/components/shader-transition/shader-transition-engine.js.map +1 -0
  1053. package/dist/components/shader-transition/shader-transition-presets.d.ts +222 -0
  1054. package/dist/components/shader-transition/shader-transition-presets.d.ts.map +1 -0
  1055. package/dist/components/shader-transition/shader-transition-presets.js +346 -0
  1056. package/dist/components/shader-transition/shader-transition-presets.js.map +1 -0
  1057. package/dist/components/shader-transition/shader-transition.d.ts +35 -0
  1058. package/dist/components/shader-transition/shader-transition.d.ts.map +1 -0
  1059. package/dist/components/shader-transition/shader-transition.js +314 -0
  1060. package/dist/components/shader-transition/shader-transition.js.map +1 -0
  1061. package/dist/components/shape-loader/index.d.ts +2 -0
  1062. package/dist/components/shape-loader/index.js +2 -0
  1063. package/dist/components/shape-loader/meta.js +17 -0
  1064. package/dist/components/shape-loader/meta.js.map +1 -0
  1065. package/dist/components/shape-loader/shape-loader-variants.d.ts +8 -0
  1066. package/dist/components/shape-loader/shape-loader-variants.d.ts.map +1 -0
  1067. package/dist/components/shape-loader/shape-loader-variants.js +635 -0
  1068. package/dist/components/shape-loader/shape-loader-variants.js.map +1 -0
  1069. package/dist/components/shape-loader/shape-loader.d.ts +26 -0
  1070. package/dist/components/shape-loader/shape-loader.d.ts.map +1 -0
  1071. package/dist/components/shape-loader/shape-loader.js +99 -0
  1072. package/dist/components/shape-loader/shape-loader.js.map +1 -0
  1073. package/dist/components/sheet/meta.js +1 -1
  1074. package/dist/components/sheet/meta.js.map +1 -1
  1075. package/dist/components/sheet/sheet.d.ts +10 -2
  1076. package/dist/components/sheet/sheet.d.ts.map +1 -1
  1077. package/dist/components/sheet/sheet.js +25 -6
  1078. package/dist/components/sheet/sheet.js.map +1 -1
  1079. package/dist/components/shimmer-text/index.d.ts +2 -0
  1080. package/dist/components/shimmer-text/index.js +2 -0
  1081. package/dist/components/shimmer-text/meta.js +17 -0
  1082. package/dist/components/shimmer-text/meta.js.map +1 -0
  1083. package/dist/components/shimmer-text/shimmer-text.d.ts +33 -0
  1084. package/dist/components/shimmer-text/shimmer-text.d.ts.map +1 -0
  1085. package/dist/components/shimmer-text/shimmer-text.js +120 -0
  1086. package/dist/components/shimmer-text/shimmer-text.js.map +1 -0
  1087. package/dist/components/sidebar/index.d.ts +2 -0
  1088. package/dist/components/sidebar/index.js +2 -0
  1089. package/dist/components/sidebar/meta.js +17 -0
  1090. package/dist/components/sidebar/meta.js.map +1 -0
  1091. package/dist/components/sidebar/sidebar.d.ts +69 -0
  1092. package/dist/components/sidebar/sidebar.d.ts.map +1 -0
  1093. package/dist/components/sidebar/sidebar.js +256 -0
  1094. package/dist/components/sidebar/sidebar.js.map +1 -0
  1095. package/dist/components/skeleton/index.d.ts +2 -2
  1096. package/dist/components/skeleton/meta.js +1 -1
  1097. package/dist/components/skeleton/meta.js.map +1 -1
  1098. package/dist/components/skeleton/skeleton.d.ts +14 -2
  1099. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  1100. package/dist/components/skeleton/skeleton.js +24 -5
  1101. package/dist/components/skeleton/skeleton.js.map +1 -1
  1102. package/dist/components/slide-to-confirm/index.d.ts +2 -0
  1103. package/dist/components/slide-to-confirm/index.js +2 -0
  1104. package/dist/components/slide-to-confirm/meta.js +21 -0
  1105. package/dist/components/slide-to-confirm/meta.js.map +1 -0
  1106. package/dist/components/slide-to-confirm/slide-to-confirm.d.ts +38 -0
  1107. package/dist/components/slide-to-confirm/slide-to-confirm.d.ts.map +1 -0
  1108. package/dist/components/slide-to-confirm/slide-to-confirm.js +389 -0
  1109. package/dist/components/slide-to-confirm/slide-to-confirm.js.map +1 -0
  1110. package/dist/components/slosh-slider/index.d.ts +2 -0
  1111. package/dist/components/slosh-slider/index.js +2 -0
  1112. package/dist/components/slosh-slider/meta.js +21 -0
  1113. package/dist/components/slosh-slider/meta.js.map +1 -0
  1114. package/dist/components/slosh-slider/slosh-slider.d.ts +43 -0
  1115. package/dist/components/slosh-slider/slosh-slider.d.ts.map +1 -0
  1116. package/dist/components/slosh-slider/slosh-slider.js +140 -0
  1117. package/dist/components/slosh-slider/slosh-slider.js.map +1 -0
  1118. package/dist/components/social-selector/index.d.ts +2 -0
  1119. package/dist/components/social-selector/index.js +2 -0
  1120. package/dist/components/social-selector/meta.js +17 -0
  1121. package/dist/components/social-selector/meta.js.map +1 -0
  1122. package/dist/components/social-selector/social-selector.d.ts +45 -0
  1123. package/dist/components/social-selector/social-selector.d.ts.map +1 -0
  1124. package/dist/components/social-selector/social-selector.js +128 -0
  1125. package/dist/components/social-selector/social-selector.js.map +1 -0
  1126. package/dist/components/spinner/spinner.d.ts +1 -1
  1127. package/dist/components/star-count/index.d.ts +2 -0
  1128. package/dist/components/star-count/index.js +2 -0
  1129. package/dist/components/star-count/meta.js +17 -0
  1130. package/dist/components/star-count/meta.js.map +1 -0
  1131. package/dist/components/star-count/star-count.d.ts +35 -0
  1132. package/dist/components/star-count/star-count.d.ts.map +1 -0
  1133. package/dist/components/star-count/star-count.js +94 -0
  1134. package/dist/components/star-count/star-count.js.map +1 -0
  1135. package/dist/components/stepper/index.d.ts +2 -0
  1136. package/dist/components/stepper/index.js +2 -0
  1137. package/dist/components/stepper/meta.js +17 -0
  1138. package/dist/components/stepper/meta.js.map +1 -0
  1139. package/dist/components/stepper/stepper.d.ts +45 -0
  1140. package/dist/components/stepper/stepper.d.ts.map +1 -0
  1141. package/dist/components/stepper/stepper.js +207 -0
  1142. package/dist/components/stepper/stepper.js.map +1 -0
  1143. package/dist/components/swipe-carousel/carousel-controls.js +98 -0
  1144. package/dist/components/swipe-carousel/carousel-controls.js.map +1 -0
  1145. package/dist/components/swipe-carousel/index.d.ts +2 -0
  1146. package/dist/components/swipe-carousel/index.js +2 -0
  1147. package/dist/components/swipe-carousel/meta.js +17 -0
  1148. package/dist/components/swipe-carousel/meta.js.map +1 -0
  1149. package/dist/components/swipe-carousel/swipe-carousel.d.ts +27 -0
  1150. package/dist/components/swipe-carousel/swipe-carousel.d.ts.map +1 -0
  1151. package/dist/components/swipe-carousel/swipe-carousel.js +288 -0
  1152. package/dist/components/swipe-carousel/swipe-carousel.js.map +1 -0
  1153. package/dist/components/switch/meta.js +1 -1
  1154. package/dist/components/switch/meta.js.map +1 -1
  1155. package/dist/components/switch/switch.d.ts +25 -3
  1156. package/dist/components/switch/switch.d.ts.map +1 -1
  1157. package/dist/components/switch/switch.js +20 -4
  1158. package/dist/components/switch/switch.js.map +1 -1
  1159. package/dist/components/switchboard-card/index.d.ts +2 -0
  1160. package/dist/components/switchboard-card/index.js +2 -0
  1161. package/dist/components/switchboard-card/meta.js +17 -0
  1162. package/dist/components/switchboard-card/meta.js.map +1 -0
  1163. package/dist/components/switchboard-card/switchboard-card.d.ts +44 -0
  1164. package/dist/components/switchboard-card/switchboard-card.d.ts.map +1 -0
  1165. package/dist/components/switchboard-card/switchboard-card.js +169 -0
  1166. package/dist/components/switchboard-card/switchboard-card.js.map +1 -0
  1167. package/dist/components/table/table.js +2 -2
  1168. package/dist/components/table/table.js.map +1 -1
  1169. package/dist/components/tabs/index.d.ts +2 -2
  1170. package/dist/components/tabs/index.js +2 -2
  1171. package/dist/components/tabs/meta.js +1 -1
  1172. package/dist/components/tabs/meta.js.map +1 -1
  1173. package/dist/components/tabs/tabs.d.ts +6 -2
  1174. package/dist/components/tabs/tabs.d.ts.map +1 -1
  1175. package/dist/components/tabs/tabs.js +112 -10
  1176. package/dist/components/tabs/tabs.js.map +1 -1
  1177. package/dist/components/tags-input/meta.js +1 -1
  1178. package/dist/components/tags-input/meta.js.map +1 -1
  1179. package/dist/components/tags-input/tags-input.d.ts +7 -1
  1180. package/dist/components/tags-input/tags-input.d.ts.map +1 -1
  1181. package/dist/components/tags-input/tags-input.js +82 -6
  1182. package/dist/components/tags-input/tags-input.js.map +1 -1
  1183. package/dist/components/text-effect/index.d.ts +3 -0
  1184. package/dist/components/text-effect/index.js +3 -0
  1185. package/dist/components/text-effect/meta.js +17 -0
  1186. package/dist/components/text-effect/meta.js.map +1 -0
  1187. package/dist/components/text-effect/text-effect-presets.d.ts +256 -0
  1188. package/dist/components/text-effect/text-effect-presets.d.ts.map +1 -0
  1189. package/dist/components/text-effect/text-effect-presets.js +292 -0
  1190. package/dist/components/text-effect/text-effect-presets.js.map +1 -0
  1191. package/dist/components/text-effect/text-effect.d.ts +58 -0
  1192. package/dist/components/text-effect/text-effect.d.ts.map +1 -0
  1193. package/dist/components/text-effect/text-effect.js +243 -0
  1194. package/dist/components/text-effect/text-effect.js.map +1 -0
  1195. package/dist/components/text-loader/index.d.ts +2 -0
  1196. package/dist/components/text-loader/index.js +2 -0
  1197. package/dist/components/text-loader/meta.js +17 -0
  1198. package/dist/components/text-loader/meta.js.map +1 -0
  1199. package/dist/components/text-loader/text-loader.d.ts +30 -0
  1200. package/dist/components/text-loader/text-loader.d.ts.map +1 -0
  1201. package/dist/components/text-loader/text-loader.js +514 -0
  1202. package/dist/components/text-loader/text-loader.js.map +1 -0
  1203. package/dist/components/text-swap/index.d.ts +3 -0
  1204. package/dist/components/text-swap/index.js +3 -0
  1205. package/dist/components/text-swap/meta.js +17 -0
  1206. package/dist/components/text-swap/meta.js.map +1 -0
  1207. package/dist/components/text-swap/text-rotate.d.ts +17 -0
  1208. package/dist/components/text-swap/text-rotate.d.ts.map +1 -0
  1209. package/dist/components/text-swap/text-rotate.js +51 -0
  1210. package/dist/components/text-swap/text-rotate.js.map +1 -0
  1211. package/dist/components/text-swap/text-swap.d.ts +41 -0
  1212. package/dist/components/text-swap/text-swap.d.ts.map +1 -0
  1213. package/dist/components/text-swap/text-swap.js +303 -0
  1214. package/dist/components/text-swap/text-swap.js.map +1 -0
  1215. package/dist/components/textarea/index.d.ts +2 -0
  1216. package/dist/components/textarea/index.js +2 -0
  1217. package/dist/components/textarea/meta.js +17 -0
  1218. package/dist/components/textarea/meta.js.map +1 -0
  1219. package/dist/components/textarea/textarea.d.ts +43 -0
  1220. package/dist/components/textarea/textarea.d.ts.map +1 -0
  1221. package/dist/components/textarea/textarea.js +119 -0
  1222. package/dist/components/textarea/textarea.js.map +1 -0
  1223. package/dist/components/tick-progress/index.d.ts +2 -0
  1224. package/dist/components/tick-progress/index.js +2 -0
  1225. package/dist/components/tick-progress/meta.js +17 -0
  1226. package/dist/components/tick-progress/meta.js.map +1 -0
  1227. package/dist/components/tick-progress/tick-progress.d.ts +28 -0
  1228. package/dist/components/tick-progress/tick-progress.d.ts.map +1 -0
  1229. package/dist/components/tick-progress/tick-progress.js +151 -0
  1230. package/dist/components/tick-progress/tick-progress.js.map +1 -0
  1231. package/dist/components/tilt-card/index.d.ts +2 -0
  1232. package/dist/components/tilt-card/index.js +2 -0
  1233. package/dist/components/tilt-card/meta.js +17 -0
  1234. package/dist/components/tilt-card/meta.js.map +1 -0
  1235. package/dist/components/tilt-card/tilt-card.d.ts +36 -0
  1236. package/dist/components/tilt-card/tilt-card.d.ts.map +1 -0
  1237. package/dist/components/tilt-card/tilt-card.js +135 -0
  1238. package/dist/components/tilt-card/tilt-card.js.map +1 -0
  1239. package/dist/components/time-range-picker/time-range-picker.js +3 -3
  1240. package/dist/components/time-range-picker/time-range-picker.js.map +1 -1
  1241. package/dist/components/time-stack/index.d.ts +2 -0
  1242. package/dist/components/time-stack/index.js +2 -0
  1243. package/dist/components/time-stack/meta.js +17 -0
  1244. package/dist/components/time-stack/meta.js.map +1 -0
  1245. package/dist/components/time-stack/time-stack.d.ts +37 -0
  1246. package/dist/components/time-stack/time-stack.d.ts.map +1 -0
  1247. package/dist/components/time-stack/time-stack.js +253 -0
  1248. package/dist/components/time-stack/time-stack.js.map +1 -0
  1249. package/dist/components/toast/meta.js +1 -1
  1250. package/dist/components/toast/meta.js.map +1 -1
  1251. package/dist/components/toast/toast.d.ts +13 -4
  1252. package/dist/components/toast/toast.d.ts.map +1 -1
  1253. package/dist/components/toast/toast.js +34 -11
  1254. package/dist/components/toast/toast.js.map +1 -1
  1255. package/dist/components/todo-tower/index.d.ts +2 -0
  1256. package/dist/components/todo-tower/index.js +2 -0
  1257. package/dist/components/todo-tower/meta.js +17 -0
  1258. package/dist/components/todo-tower/meta.js.map +1 -0
  1259. package/dist/components/todo-tower/todo-tower.d.ts +38 -0
  1260. package/dist/components/todo-tower/todo-tower.d.ts.map +1 -0
  1261. package/dist/components/todo-tower/todo-tower.js +284 -0
  1262. package/dist/components/todo-tower/todo-tower.js.map +1 -0
  1263. package/dist/components/tooltip/meta.js +1 -1
  1264. package/dist/components/tooltip/meta.js.map +1 -1
  1265. package/dist/components/tooltip/tooltip.d.ts +4 -0
  1266. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  1267. package/dist/components/tooltip/tooltip.js +20 -4
  1268. package/dist/components/tooltip/tooltip.js.map +1 -1
  1269. package/dist/components/tweet-card/index.d.ts +2 -0
  1270. package/dist/components/tweet-card/index.js +2 -0
  1271. package/dist/components/tweet-card/meta.js +17 -0
  1272. package/dist/components/tweet-card/meta.js.map +1 -0
  1273. package/dist/components/tweet-card/tweet-card.d.ts +57 -0
  1274. package/dist/components/tweet-card/tweet-card.d.ts.map +1 -0
  1275. package/dist/components/tweet-card/tweet-card.js +243 -0
  1276. package/dist/components/tweet-card/tweet-card.js.map +1 -0
  1277. package/dist/components/typewriter-text/index.d.ts +2 -0
  1278. package/dist/components/typewriter-text/index.js +2 -0
  1279. package/dist/components/typewriter-text/meta.js +17 -0
  1280. package/dist/components/typewriter-text/meta.js.map +1 -0
  1281. package/dist/components/typewriter-text/typewriter-text.d.ts +33 -0
  1282. package/dist/components/typewriter-text/typewriter-text.d.ts.map +1 -0
  1283. package/dist/components/typewriter-text/typewriter-text.js +135 -0
  1284. package/dist/components/typewriter-text/typewriter-text.js.map +1 -0
  1285. package/dist/components/uptime-matrix/index.d.ts +2 -0
  1286. package/dist/components/uptime-matrix/index.js +2 -0
  1287. package/dist/components/uptime-matrix/meta.js +17 -0
  1288. package/dist/components/uptime-matrix/meta.js.map +1 -0
  1289. package/dist/components/uptime-matrix/uptime-matrix.d.ts +60 -0
  1290. package/dist/components/uptime-matrix/uptime-matrix.d.ts.map +1 -0
  1291. package/dist/components/uptime-matrix/uptime-matrix.js +303 -0
  1292. package/dist/components/uptime-matrix/uptime-matrix.js.map +1 -0
  1293. package/dist/index.d.ts +256 -18
  1294. package/dist/index.js +134 -10
  1295. package/dist/lib/styles.d.ts +16 -1
  1296. package/dist/lib/styles.d.ts.map +1 -1
  1297. package/dist/lib/styles.js +16 -1
  1298. package/dist/lib/styles.js.map +1 -1
  1299. package/dist/registry/blocks.d.ts.map +1 -1
  1300. package/dist/registry/blocks.js +95 -9
  1301. package/dist/registry/blocks.js.map +1 -1
  1302. package/dist/registry/components.d.ts.map +1 -1
  1303. package/dist/registry/components.js +278 -50
  1304. package/dist/registry/components.js.map +1 -1
  1305. package/dist/registry/schema.d.ts +9 -1
  1306. package/dist/registry/schema.d.ts.map +1 -1
  1307. package/dist/registry/schema.js +2 -1
  1308. package/dist/registry/schema.js.map +1 -1
  1309. package/package.json +6 -4
  1310. package/src/components/accordion/accordion.tsx +1 -1
  1311. package/src/components/account-menu/account-menu.tsx +338 -0
  1312. package/src/components/account-menu/index.ts +12 -0
  1313. package/src/components/account-menu/meta.ts +19 -0
  1314. package/src/components/action-node/action-node-spring.ts +34 -0
  1315. package/src/components/action-node/action-node.tsx +516 -0
  1316. package/src/components/action-node/index.ts +8 -0
  1317. package/src/components/action-node/meta.ts +21 -0
  1318. package/src/components/activity-feed/activity-feed.tsx +1 -1
  1319. package/src/components/ai-agent-plan/ai-agent-plan.tsx +0 -0
  1320. package/src/components/ai-agent-plan/index.ts +1 -0
  1321. package/src/components/ai-agent-plan/meta.ts +3 -1
  1322. package/src/components/ai-approval-request/ai-approval-request.tsx +103 -4
  1323. package/src/components/ai-approval-request/meta.ts +4 -1
  1324. package/src/components/ai-artifact/ai-artifact.tsx +203 -0
  1325. package/src/components/ai-artifact/index.ts +1 -0
  1326. package/src/components/ai-artifact/meta.ts +18 -0
  1327. package/src/components/ai-branch/ai-branch.tsx +222 -0
  1328. package/src/components/ai-branch/index.ts +11 -0
  1329. package/src/components/ai-branch/meta.ts +18 -0
  1330. package/src/components/ai-conversation/ai-conversation.tsx +142 -31
  1331. package/src/components/ai-conversation/index.ts +1 -0
  1332. package/src/components/ai-extraction-review/ai-extraction-review.tsx +1 -1
  1333. package/src/components/ai-loader/ai-loader.tsx +112 -0
  1334. package/src/components/ai-loader/index.ts +6 -0
  1335. package/src/components/ai-loader/meta.ts +18 -0
  1336. package/src/components/ai-message/ai-message.tsx +54 -9
  1337. package/src/components/ai-message/index.ts +2 -0
  1338. package/src/components/ai-message/meta.ts +2 -1
  1339. package/src/components/ai-prompt-input/ai-prompt-input.tsx +57 -19
  1340. package/src/components/ai-reasoning/ai-reasoning.tsx +192 -13
  1341. package/src/components/ai-reasoning/index.ts +1 -0
  1342. package/src/components/ai-reasoning/meta.ts +4 -2
  1343. package/src/components/ai-response/ai-response.tsx +12 -3
  1344. package/src/components/ai-response/index.ts +1 -0
  1345. package/src/components/ai-response/meta.ts +6 -3
  1346. package/src/components/ai-response/response-text.tsx +119 -0
  1347. package/src/components/ai-sources/ai-sources.tsx +191 -8
  1348. package/src/components/ai-sources/index.ts +1 -0
  1349. package/src/components/ai-sources/meta.ts +4 -2
  1350. package/src/components/ai-suggestions/ai-suggestions.tsx +130 -0
  1351. package/src/components/ai-suggestions/index.ts +6 -0
  1352. package/src/components/ai-suggestions/meta.ts +17 -0
  1353. package/src/components/ai-token-usage/ai-token-usage.tsx +288 -14
  1354. package/src/components/ai-token-usage/index.ts +5 -0
  1355. package/src/components/ai-token-usage/meta.ts +6 -2
  1356. package/src/components/ai-tool/ai-tool.tsx +125 -4
  1357. package/src/components/ai-tool/meta.ts +3 -1
  1358. package/src/components/animated-checklist/animated-checklist.tsx +324 -0
  1359. package/src/components/animated-checklist/index.ts +6 -0
  1360. package/src/components/animated-checklist/meta.ts +18 -0
  1361. package/src/components/app-stack/app-stack.tsx +414 -0
  1362. package/src/components/app-stack/index.ts +7 -0
  1363. package/src/components/app-stack/meta.ts +20 -0
  1364. package/src/components/aspect-morph/aspect-morph.tsx +272 -0
  1365. package/src/components/aspect-morph/index.ts +8 -0
  1366. package/src/components/aspect-morph/meta.ts +19 -0
  1367. package/src/components/assignee-picker/assignee-picker-spring.ts +33 -0
  1368. package/src/components/assignee-picker/assignee-picker.tsx +535 -0
  1369. package/src/components/assignee-picker/index.ts +6 -0
  1370. package/src/components/assignee-picker/meta.ts +21 -0
  1371. package/src/components/avatar-group/avatar-group.tsx +176 -0
  1372. package/src/components/avatar-group/index.ts +6 -0
  1373. package/src/components/avatar-group/meta.ts +18 -0
  1374. package/src/components/bar-loader/bar-loader.tsx +549 -0
  1375. package/src/components/bar-loader/index.ts +7 -0
  1376. package/src/components/bar-loader/meta.ts +18 -0
  1377. package/src/components/book/book.tsx +300 -0
  1378. package/src/components/book/index.ts +1 -0
  1379. package/src/components/book/meta.ts +18 -0
  1380. package/src/components/breadcrumb/breadcrumb.tsx +198 -0
  1381. package/src/components/breadcrumb/index.ts +11 -0
  1382. package/src/components/breadcrumb/meta.ts +20 -0
  1383. package/src/components/browser-tabs/browser-tabs-spring.ts +34 -0
  1384. package/src/components/browser-tabs/browser-tabs.tsx +608 -0
  1385. package/src/components/browser-tabs/index.ts +7 -0
  1386. package/src/components/browser-tabs/meta.ts +22 -0
  1387. package/src/components/button/button.tsx +57 -2
  1388. package/src/components/calendar/calendar.tsx +2 -2
  1389. package/src/components/canvas-toolbar/canvas-toolbar.tsx +457 -0
  1390. package/src/components/canvas-toolbar/index.ts +9 -0
  1391. package/src/components/canvas-toolbar/meta.ts +22 -0
  1392. package/src/components/card-spread/card-spread-layouts.ts +251 -0
  1393. package/src/components/card-spread/card-spread.tsx +415 -0
  1394. package/src/components/card-spread/index.ts +19 -0
  1395. package/src/components/card-spread/meta.ts +21 -0
  1396. package/src/components/card-stack/card-stack-layout.ts +100 -0
  1397. package/src/components/card-stack/card-stack.tsx +359 -0
  1398. package/src/components/card-stack/index.ts +1 -0
  1399. package/src/components/card-stack/meta.ts +20 -0
  1400. package/src/components/carousel-3d/carousel-3d.tsx +501 -0
  1401. package/src/components/carousel-3d/index.ts +7 -0
  1402. package/src/components/carousel-3d/meta.ts +20 -0
  1403. package/src/components/checkbox/checkbox.tsx +29 -1
  1404. package/src/components/code-block/code-block.tsx +11 -110
  1405. package/src/components/code-block/index.ts +4 -1
  1406. package/src/components/code-block/meta.ts +1 -1
  1407. package/src/components/collapsible/collapsible.tsx +63 -0
  1408. package/src/components/collapsible/index.ts +6 -0
  1409. package/src/components/collapsible/meta.ts +16 -0
  1410. package/src/components/combobox/combobox.tsx +167 -14
  1411. package/src/components/combobox/index.ts +1 -0
  1412. package/src/components/combobox/meta.ts +2 -1
  1413. package/src/components/command/command.tsx +1 -1
  1414. package/src/components/command-bar/command-bar.tsx +177 -0
  1415. package/src/components/command-bar/index.ts +1 -0
  1416. package/src/components/command-bar/meta.ts +17 -0
  1417. package/src/components/comment-bubble/comment-bubble.tsx +269 -0
  1418. package/src/components/comment-bubble/index.ts +6 -0
  1419. package/src/components/comment-bubble/meta.ts +18 -0
  1420. package/src/components/context-menu/context-menu.tsx +280 -0
  1421. package/src/components/context-menu/index.ts +21 -0
  1422. package/src/components/context-menu/meta.ts +19 -0
  1423. package/src/components/contribution-graph/contribution-graph.tsx +372 -0
  1424. package/src/components/contribution-graph/index.ts +6 -0
  1425. package/src/components/contribution-graph/meta.ts +19 -0
  1426. package/src/components/copy-button/copy-button.tsx +278 -0
  1427. package/src/components/copy-button/index.ts +6 -0
  1428. package/src/components/copy-button/meta.ts +19 -0
  1429. package/src/components/create-menu/create-menu.tsx +319 -0
  1430. package/src/components/create-menu/index.ts +7 -0
  1431. package/src/components/create-menu/meta.ts +21 -0
  1432. package/src/components/cursor-follow/cursor-follow.tsx +186 -0
  1433. package/src/components/cursor-follow/index.ts +1 -0
  1434. package/src/components/cursor-follow/meta.ts +19 -0
  1435. package/src/components/data-table/data-table.tsx +14 -3
  1436. package/src/components/dial/dial.tsx +308 -0
  1437. package/src/components/dial/index.ts +1 -0
  1438. package/src/components/dial/meta.ts +19 -0
  1439. package/src/components/dialog/dialog.tsx +80 -37
  1440. package/src/components/dialog/meta.ts +2 -1
  1441. package/src/components/diff-viewer/diff-viewer.tsx +160 -21
  1442. package/src/components/diff-viewer/meta.ts +4 -1
  1443. package/src/components/direction/direction.tsx +38 -0
  1444. package/src/components/direction/index.ts +1 -0
  1445. package/src/components/direction/meta.ts +19 -0
  1446. package/src/components/dither-area/dither-area.tsx +280 -0
  1447. package/src/components/dither-area/index.ts +9 -0
  1448. package/src/components/dither-area/meta.ts +18 -0
  1449. package/src/components/dither-bar/dither-bar.tsx +389 -0
  1450. package/src/components/dither-bar/index.ts +8 -0
  1451. package/src/components/dither-bar/meta.ts +19 -0
  1452. package/src/components/dither-canvas/canvas-mock.ts +143 -0
  1453. package/src/components/dither-canvas/dither-canvas.tsx +382 -0
  1454. package/src/components/dither-canvas/dither-engine.ts +354 -0
  1455. package/src/components/dither-canvas/dither-geometry.ts +295 -0
  1456. package/src/components/dither-canvas/dither-scrubber.tsx +244 -0
  1457. package/src/components/dither-canvas/index.ts +68 -0
  1458. package/src/components/dither-canvas/meta.ts +19 -0
  1459. package/src/components/dither-donut/dither-donut.tsx +377 -0
  1460. package/src/components/dither-donut/index.ts +7 -0
  1461. package/src/components/dither-donut/meta.ts +19 -0
  1462. package/src/components/dither-funnel/dither-funnel.tsx +273 -0
  1463. package/src/components/dither-funnel/index.ts +9 -0
  1464. package/src/components/dither-funnel/meta.ts +19 -0
  1465. package/src/components/dither-gauge/dither-gauge.tsx +279 -0
  1466. package/src/components/dither-gauge/index.ts +8 -0
  1467. package/src/components/dither-gauge/meta.ts +19 -0
  1468. package/src/components/dither-heatmap/dither-heatmap.tsx +453 -0
  1469. package/src/components/dither-heatmap/index.ts +10 -0
  1470. package/src/components/dither-heatmap/meta.ts +19 -0
  1471. package/src/components/dither-line/dither-line.tsx +244 -0
  1472. package/src/components/dither-line/index.ts +8 -0
  1473. package/src/components/dither-line/meta.ts +18 -0
  1474. package/src/components/dither-meter/dither-meter.tsx +299 -0
  1475. package/src/components/dither-meter/index.ts +8 -0
  1476. package/src/components/dither-meter/meta.ts +19 -0
  1477. package/src/components/dither-scatter/dither-scatter.tsx +317 -0
  1478. package/src/components/dither-scatter/index.ts +8 -0
  1479. package/src/components/dither-scatter/meta.ts +19 -0
  1480. package/src/components/dot-morph-button/dot-morph-button.tsx +86 -0
  1481. package/src/components/dot-morph-button/index.ts +5 -0
  1482. package/src/components/dot-morph-button/meta.ts +17 -0
  1483. package/src/components/dots-loader/dots-loader.tsx +451 -0
  1484. package/src/components/dots-loader/index.ts +7 -0
  1485. package/src/components/dots-loader/meta.ts +17 -0
  1486. package/src/components/drag-stepper/drag-stepper.tsx +367 -0
  1487. package/src/components/drag-stepper/index.ts +1 -0
  1488. package/src/components/drag-stepper/meta.ts +23 -0
  1489. package/src/components/drawer/drawer.tsx +78 -35
  1490. package/src/components/drawer/meta.ts +1 -1
  1491. package/src/components/dropdown-menu/dropdown-menu.tsx +61 -18
  1492. package/src/components/dropdown-menu/meta.ts +2 -1
  1493. package/src/components/effect-button/effect-button.tsx +310 -0
  1494. package/src/components/effect-button/index.ts +8 -0
  1495. package/src/components/effect-button/meta.ts +18 -0
  1496. package/src/components/escape-button/escape-button.tsx +232 -0
  1497. package/src/components/escape-button/index.ts +1 -0
  1498. package/src/components/escape-button/meta.ts +18 -0
  1499. package/src/components/expandable-cards/expandable-cards.tsx +435 -0
  1500. package/src/components/expandable-cards/index.ts +6 -0
  1501. package/src/components/expandable-cards/meta.ts +20 -0
  1502. package/src/components/expandable-list/expandable-list.tsx +260 -0
  1503. package/src/components/expandable-list/index.ts +6 -0
  1504. package/src/components/expandable-list/meta.ts +19 -0
  1505. package/src/components/expanding-search/expanding-search.tsx +244 -0
  1506. package/src/components/expanding-search/index.ts +5 -0
  1507. package/src/components/expanding-search/meta.ts +19 -0
  1508. package/src/components/exposure-slider/exposure-slider.tsx +351 -0
  1509. package/src/components/exposure-slider/index.ts +5 -0
  1510. package/src/components/exposure-slider/meta.ts +20 -0
  1511. package/src/components/file-upload/file-upload.tsx +134 -12
  1512. package/src/components/file-upload/meta.ts +2 -1
  1513. package/src/components/focus-blur-links/focus-blur-links.tsx +189 -0
  1514. package/src/components/focus-blur-links/index.ts +7 -0
  1515. package/src/components/focus-blur-links/meta.ts +18 -0
  1516. package/src/components/folding-frame/folding-frame.tsx +435 -0
  1517. package/src/components/folding-frame/index.ts +1 -0
  1518. package/src/components/folding-frame/meta.ts +21 -0
  1519. package/src/components/form/form.tsx +105 -13
  1520. package/src/components/form/meta.ts +2 -1
  1521. package/src/components/glass-bubble/glass-bubble.tsx +418 -0
  1522. package/src/components/glass-bubble/index.ts +9 -0
  1523. package/src/components/glass-bubble/meta.ts +20 -0
  1524. package/src/components/glow-card/glow-card.tsx +195 -0
  1525. package/src/components/glow-card/index.ts +7 -0
  1526. package/src/components/glow-card/meta.ts +18 -0
  1527. package/src/components/goo-ball/goo-ball.tsx +379 -0
  1528. package/src/components/goo-ball/index.ts +7 -0
  1529. package/src/components/goo-ball/meta.ts +19 -0
  1530. package/src/components/goo-tabs/goo-tabs.tsx +389 -0
  1531. package/src/components/goo-tabs/index.ts +11 -0
  1532. package/src/components/goo-tabs/meta.ts +20 -0
  1533. package/src/components/gooey-popover/gooey-popover.tsx +332 -0
  1534. package/src/components/gooey-popover/index.ts +1 -0
  1535. package/src/components/gooey-popover/meta.ts +20 -0
  1536. package/src/components/gradient-orb/gradient-orb.tsx +230 -0
  1537. package/src/components/gradient-orb/index.ts +6 -0
  1538. package/src/components/gradient-orb/meta.ts +17 -0
  1539. package/src/components/grid-loader/grid-loader.tsx +364 -0
  1540. package/src/components/grid-loader/index.ts +10 -0
  1541. package/src/components/grid-loader/meta.ts +17 -0
  1542. package/src/components/image-accordion/image-accordion.tsx +230 -0
  1543. package/src/components/image-accordion/index.ts +6 -0
  1544. package/src/components/image-accordion/meta.ts +20 -0
  1545. package/src/components/image-metadata/image-metadata.tsx +265 -0
  1546. package/src/components/image-metadata/index.ts +6 -0
  1547. package/src/components/image-metadata/meta.ts +19 -0
  1548. package/src/components/image-selector/image-selector.tsx +338 -0
  1549. package/src/components/image-selector/index.ts +6 -0
  1550. package/src/components/image-selector/meta.ts +20 -0
  1551. package/src/components/inline-confirm/index.ts +6 -0
  1552. package/src/components/inline-confirm/inline-confirm.tsx +363 -0
  1553. package/src/components/inline-confirm/meta.ts +18 -0
  1554. package/src/components/input/floating-label-input.tsx +110 -0
  1555. package/src/components/input/index.ts +5 -0
  1556. package/src/components/input/input.tsx +1 -1
  1557. package/src/components/input/meta.ts +3 -2
  1558. package/src/components/invite-carousel/carousel-controls.tsx +291 -0
  1559. package/src/components/invite-carousel/index.ts +8 -0
  1560. package/src/components/invite-carousel/invite-carousel.tsx +359 -0
  1561. package/src/components/invite-carousel/meta.ts +21 -0
  1562. package/src/components/island/index.ts +7 -0
  1563. package/src/components/island/island.tsx +162 -0
  1564. package/src/components/island/meta.ts +18 -0
  1565. package/src/components/liquid-toggle/index.ts +1 -0
  1566. package/src/components/liquid-toggle/liquid-toggle.tsx +254 -0
  1567. package/src/components/liquid-toggle/meta.ts +18 -0
  1568. package/src/components/log-viewer/log-viewer.tsx +2 -2
  1569. package/src/components/magnetic-button/index.ts +1 -0
  1570. package/src/components/magnetic-button/magnetic-button.tsx +218 -0
  1571. package/src/components/magnetic-button/meta.ts +18 -0
  1572. package/src/components/magnetic-select/index.ts +6 -0
  1573. package/src/components/magnetic-select/magnetic-select-spring.ts +33 -0
  1574. package/src/components/magnetic-select/magnetic-select.tsx +426 -0
  1575. package/src/components/magnetic-select/meta.ts +19 -0
  1576. package/src/components/magnify-dock/index.ts +7 -0
  1577. package/src/components/magnify-dock/magnify-dock.tsx +308 -0
  1578. package/src/components/magnify-dock/meta.ts +21 -0
  1579. package/src/components/marquee/index.ts +1 -0
  1580. package/src/components/marquee/marquee.tsx +215 -0
  1581. package/src/components/marquee/meta.ts +19 -0
  1582. package/src/components/meter/meter.tsx +1 -1
  1583. package/src/components/morph-button/index.ts +7 -0
  1584. package/src/components/morph-button/meta.ts +18 -0
  1585. package/src/components/morph-button/morph-button.tsx +390 -0
  1586. package/src/components/morph-surface/index.ts +7 -0
  1587. package/src/components/morph-surface/meta.ts +21 -0
  1588. package/src/components/morph-surface/morph-surface.tsx +367 -0
  1589. package/src/components/notification-badge/index.ts +6 -0
  1590. package/src/components/notification-badge/meta.ts +19 -0
  1591. package/src/components/notification-badge/notification-badge.tsx +183 -0
  1592. package/src/components/notify-button/index.ts +1 -0
  1593. package/src/components/notify-button/meta.ts +17 -0
  1594. package/src/components/notify-button/notify-button.tsx +194 -0
  1595. package/src/components/now-playing/index.ts +1 -0
  1596. package/src/components/now-playing/meta.ts +19 -0
  1597. package/src/components/now-playing/now-playing.tsx +474 -0
  1598. package/src/components/number-flow/index.ts +10 -0
  1599. package/src/components/number-flow/meta.ts +18 -0
  1600. package/src/components/number-flow/number-flow.tsx +330 -0
  1601. package/src/components/orb-face/index.ts +1 -0
  1602. package/src/components/orb-face/meta.ts +18 -0
  1603. package/src/components/orb-face/orb-face.tsx +431 -0
  1604. package/src/components/otp-input/index.ts +6 -0
  1605. package/src/components/otp-input/meta.ts +21 -0
  1606. package/src/components/otp-input/otp-input.tsx +407 -0
  1607. package/src/components/pagination/index.ts +1 -0
  1608. package/src/components/pagination/meta.ts +4 -2
  1609. package/src/components/pagination/pagination-indicator.tsx +95 -0
  1610. package/src/components/pagination/pagination.tsx +50 -5
  1611. package/src/components/palette-generator/index.ts +8 -0
  1612. package/src/components/palette-generator/meta.ts +17 -0
  1613. package/src/components/palette-generator/palette-generator.tsx +300 -0
  1614. package/src/components/permission-matrix/permission-matrix.tsx +4 -4
  1615. package/src/components/photo-stack/index.ts +1 -0
  1616. package/src/components/photo-stack/meta.ts +19 -0
  1617. package/src/components/photo-stack/photo-stack.tsx +310 -0
  1618. package/src/components/photo-tabs/index.ts +1 -0
  1619. package/src/components/photo-tabs/meta.ts +18 -0
  1620. package/src/components/photo-tabs/photo-tabs.tsx +180 -0
  1621. package/src/components/pixel-avatar/index.ts +1 -0
  1622. package/src/components/pixel-avatar/meta.ts +17 -0
  1623. package/src/components/pixel-avatar/pixel-avatar.tsx +249 -0
  1624. package/src/components/product-card/index.ts +1 -0
  1625. package/src/components/product-card/meta.ts +20 -0
  1626. package/src/components/product-card/product-card.tsx +313 -0
  1627. package/src/components/progress/meta.ts +2 -1
  1628. package/src/components/progress/progress.tsx +123 -27
  1629. package/src/components/pull-to-refresh/index.ts +7 -0
  1630. package/src/components/pull-to-refresh/meta.ts +20 -0
  1631. package/src/components/pull-to-refresh/pull-to-refresh.tsx +421 -0
  1632. package/src/components/radial-menu/index.ts +7 -0
  1633. package/src/components/radial-menu/meta.ts +22 -0
  1634. package/src/components/radial-menu/radial-menu.tsx +441 -0
  1635. package/src/components/radio-group/radio-group.tsx +12 -1
  1636. package/src/components/range-dial/index.ts +1 -0
  1637. package/src/components/range-dial/meta.ts +21 -0
  1638. package/src/components/range-dial/range-dial.tsx +428 -0
  1639. package/src/components/record-diff/record-diff.tsx +4 -4
  1640. package/src/components/reorder-list/index.ts +10 -0
  1641. package/src/components/reorder-list/meta.ts +21 -0
  1642. package/src/components/reorder-list/reorder-list.tsx +627 -0
  1643. package/src/components/reviews-carousel/carousel-controls.tsx +291 -0
  1644. package/src/components/reviews-carousel/index.ts +7 -0
  1645. package/src/components/reviews-carousel/meta.ts +21 -0
  1646. package/src/components/reviews-carousel/reviews-carousel.tsx +301 -0
  1647. package/src/components/rich-popover/index.ts +1 -0
  1648. package/src/components/rich-popover/meta.ts +18 -0
  1649. package/src/components/rich-popover/rich-popover.tsx +228 -0
  1650. package/src/components/ring-loader/index.ts +7 -0
  1651. package/src/components/ring-loader/meta.ts +17 -0
  1652. package/src/components/ring-loader/ring-loader.tsx +795 -0
  1653. package/src/components/scramble-text/index.ts +8 -0
  1654. package/src/components/scramble-text/meta.ts +17 -0
  1655. package/src/components/scramble-text/scramble-text.tsx +250 -0
  1656. package/src/components/scroll-reveal-text/index.ts +6 -0
  1657. package/src/components/scroll-reveal-text/meta.ts +18 -0
  1658. package/src/components/scroll-reveal-text/scroll-reveal-text.tsx +193 -0
  1659. package/src/components/scrubber/index.ts +1 -0
  1660. package/src/components/scrubber/meta.ts +20 -0
  1661. package/src/components/scrubber/scrubber.tsx +348 -0
  1662. package/src/components/select/meta.ts +2 -1
  1663. package/src/components/select/select.tsx +71 -24
  1664. package/src/components/selection-list/index.ts +6 -0
  1665. package/src/components/selection-list/meta.ts +21 -0
  1666. package/src/components/selection-list/selection-list-spring.ts +33 -0
  1667. package/src/components/selection-list/selection-list.tsx +497 -0
  1668. package/src/components/shader-transition/index.ts +21 -0
  1669. package/src/components/shader-transition/meta.ts +23 -0
  1670. package/src/components/shader-transition/shader-transition-engine.ts +396 -0
  1671. package/src/components/shader-transition/shader-transition-presets.ts +424 -0
  1672. package/src/components/shader-transition/shader-transition.tsx +470 -0
  1673. package/src/components/shader-transition/webgl-mock.ts +176 -0
  1674. package/src/components/shape-loader/index.ts +7 -0
  1675. package/src/components/shape-loader/meta.ts +17 -0
  1676. package/src/components/shape-loader/shape-loader-variants.tsx +717 -0
  1677. package/src/components/shape-loader/shape-loader.tsx +149 -0
  1678. package/src/components/sheet/meta.ts +1 -1
  1679. package/src/components/sheet/sheet.tsx +80 -34
  1680. package/src/components/shimmer-text/index.ts +7 -0
  1681. package/src/components/shimmer-text/meta.ts +18 -0
  1682. package/src/components/shimmer-text/shimmer-text.tsx +218 -0
  1683. package/src/components/sidebar/index.ts +19 -0
  1684. package/src/components/sidebar/meta.ts +25 -0
  1685. package/src/components/sidebar/sidebar.tsx +374 -0
  1686. package/src/components/skeleton/index.ts +1 -1
  1687. package/src/components/skeleton/meta.ts +2 -1
  1688. package/src/components/skeleton/skeleton.tsx +49 -7
  1689. package/src/components/slide-to-confirm/index.ts +6 -0
  1690. package/src/components/slide-to-confirm/meta.ts +20 -0
  1691. package/src/components/slide-to-confirm/slide-to-confirm.tsx +519 -0
  1692. package/src/components/slosh-slider/index.ts +6 -0
  1693. package/src/components/slosh-slider/meta.ts +20 -0
  1694. package/src/components/slosh-slider/slosh-slider.tsx +266 -0
  1695. package/src/components/social-selector/index.ts +6 -0
  1696. package/src/components/social-selector/meta.ts +18 -0
  1697. package/src/components/social-selector/social-selector.tsx +247 -0
  1698. package/src/components/star-count/index.ts +1 -0
  1699. package/src/components/star-count/meta.ts +18 -0
  1700. package/src/components/star-count/star-count.tsx +161 -0
  1701. package/src/components/stepper/index.ts +8 -0
  1702. package/src/components/stepper/meta.ts +20 -0
  1703. package/src/components/stepper/stepper.tsx +364 -0
  1704. package/src/components/swipe-carousel/carousel-controls.tsx +148 -0
  1705. package/src/components/swipe-carousel/index.ts +6 -0
  1706. package/src/components/swipe-carousel/meta.ts +21 -0
  1707. package/src/components/swipe-carousel/swipe-carousel.tsx +407 -0
  1708. package/src/components/switch/meta.ts +3 -1
  1709. package/src/components/switch/switch.tsx +69 -4
  1710. package/src/components/switchboard-card/index.ts +6 -0
  1711. package/src/components/switchboard-card/meta.ts +18 -0
  1712. package/src/components/switchboard-card/switchboard-card.tsx +312 -0
  1713. package/src/components/table/table.tsx +3 -3
  1714. package/src/components/tabs/index.ts +1 -0
  1715. package/src/components/tabs/meta.ts +3 -1
  1716. package/src/components/tabs/tabs.tsx +144 -4
  1717. package/src/components/tags-input/meta.ts +2 -1
  1718. package/src/components/tags-input/tags-input.tsx +123 -5
  1719. package/src/components/text-effect/index.ts +10 -0
  1720. package/src/components/text-effect/meta.ts +18 -0
  1721. package/src/components/text-effect/text-effect-presets.ts +305 -0
  1722. package/src/components/text-effect/text-effect.tsx +454 -0
  1723. package/src/components/text-loader/index.ts +7 -0
  1724. package/src/components/text-loader/meta.ts +17 -0
  1725. package/src/components/text-loader/text-loader.tsx +585 -0
  1726. package/src/components/text-swap/index.ts +9 -0
  1727. package/src/components/text-swap/meta.ts +20 -0
  1728. package/src/components/text-swap/text-rotate.tsx +76 -0
  1729. package/src/components/text-swap/text-swap.tsx +414 -0
  1730. package/src/components/textarea/index.ts +1 -0
  1731. package/src/components/textarea/meta.ts +21 -0
  1732. package/src/components/textarea/textarea.tsx +210 -0
  1733. package/src/components/tick-progress/index.ts +1 -0
  1734. package/src/components/tick-progress/meta.ts +19 -0
  1735. package/src/components/tick-progress/tick-progress.tsx +253 -0
  1736. package/src/components/tilt-card/index.ts +6 -0
  1737. package/src/components/tilt-card/meta.ts +18 -0
  1738. package/src/components/tilt-card/tilt-card.tsx +256 -0
  1739. package/src/components/time-range-picker/time-range-picker.tsx +3 -3
  1740. package/src/components/time-stack/index.ts +6 -0
  1741. package/src/components/time-stack/meta.ts +19 -0
  1742. package/src/components/time-stack/time-stack.tsx +385 -0
  1743. package/src/components/toast/meta.ts +2 -1
  1744. package/src/components/toast/toast.tsx +81 -15
  1745. package/src/components/todo-tower/index.ts +1 -0
  1746. package/src/components/todo-tower/meta.ts +18 -0
  1747. package/src/components/todo-tower/todo-tower.tsx +429 -0
  1748. package/src/components/tooltip/meta.ts +1 -1
  1749. package/src/components/tooltip/tooltip.tsx +39 -15
  1750. package/src/components/tweet-card/index.ts +11 -0
  1751. package/src/components/tweet-card/meta.ts +19 -0
  1752. package/src/components/tweet-card/tweet-card.tsx +372 -0
  1753. package/src/components/typewriter-text/index.ts +6 -0
  1754. package/src/components/typewriter-text/meta.ts +17 -0
  1755. package/src/components/typewriter-text/typewriter-text.tsx +214 -0
  1756. package/src/components/uptime-matrix/index.ts +11 -0
  1757. package/src/components/uptime-matrix/meta.ts +20 -0
  1758. package/src/components/uptime-matrix/uptime-matrix.tsx +443 -0
  1759. package/src/index.ts +114 -0
  1760. package/src/lib/styles.ts +16 -0
  1761. package/src/registry/blocks.ts +86 -0
  1762. package/src/registry/components.ts +228 -0
  1763. package/src/registry/schema.ts +9 -0
  1764. package/src/blocks/admin-users/admin-users.tsx +0 -251
  1765. package/src/blocks/admin-users/index.ts +0 -1
  1766. package/src/blocks/admin-users/meta.ts +0 -27
  1767. package/src/blocks/ai-chat/ai-chat.tsx +0 -280
  1768. package/src/blocks/ai-chat/index.ts +0 -7
  1769. package/src/blocks/ai-chat/meta.ts +0 -32
  1770. package/src/blocks/dashboard/dashboard.tsx +0 -192
  1771. package/src/blocks/dashboard/index.ts +0 -6
  1772. package/src/blocks/dashboard/meta.ts +0 -18
  1773. package/src/blocks/forgot-password/forgot-password.tsx +0 -158
  1774. package/src/blocks/forgot-password/index.ts +0 -1
  1775. package/src/blocks/forgot-password/meta.ts +0 -18
  1776. package/src/blocks/login/index.ts +0 -1
  1777. package/src/blocks/login/login.tsx +0 -178
  1778. package/src/blocks/login/meta.ts +0 -18
  1779. package/src/blocks/pricing/index.ts +0 -1
  1780. package/src/blocks/pricing/meta.ts +0 -18
  1781. package/src/blocks/pricing/pricing.tsx +0 -176
  1782. package/src/blocks/settings/index.ts +0 -6
  1783. package/src/blocks/settings/meta.ts +0 -29
  1784. package/src/blocks/settings/settings.tsx +0 -317
  1785. package/src/blocks/signup/index.ts +0 -1
  1786. package/src/blocks/signup/meta.ts +0 -18
  1787. package/src/blocks/signup/signup.tsx +0 -240
@@ -23,12 +23,17 @@ function describeRevision(added, removed) {
23
23
  return parts.join(", ");
24
24
  }
25
25
  const PlanContext = createContext(null);
26
+ /** Display options, separate from PlanContext so a lone AgentPlanStep still works. */
27
+ const PlanOptionsContext = createContext({
28
+ quietCompleted: false,
29
+ runningIndicator: "pulse"
30
+ });
26
31
  function usePlanContext(component) {
27
32
  const context = useContext(PlanContext);
28
33
  if (!context) throw new Error(`${component} must be rendered inside <AgentPlan>.`);
29
34
  return context;
30
35
  }
31
- function AgentPlan({ className, steps, label, children, ...props }) {
36
+ function AgentPlan({ className, steps, label, children, quietCompleted = false, runningIndicator = "pulse", ...props }) {
32
37
  const flat = useMemo(() => flatten(steps), [steps]);
33
38
  const ids = flat.map((step) => step.id);
34
39
  const [seen, setSeen] = useState(ids);
@@ -49,20 +54,27 @@ function AgentPlan({ className, steps, label, children, ...props }) {
49
54
  flat,
50
55
  currentIndex
51
56
  ]);
57
+ const options = useMemo(() => ({
58
+ quietCompleted,
59
+ runningIndicator
60
+ }), [quietCompleted, runningIndicator]);
52
61
  return /* @__PURE__ */ jsx(PlanContext.Provider, {
53
62
  value: context,
54
- children: /* @__PURE__ */ jsxs("div", {
55
- "data-slot": "agent-plan",
56
- "aria-label": label,
57
- role: "group",
58
- className: cn("flex flex-col gap-2", className),
59
- ...props,
60
- children: [children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AgentPlanSummary, {}), /* @__PURE__ */ jsx(AgentPlanSteps, {})] }), /* @__PURE__ */ jsx("span", {
61
- "aria-live": "polite",
62
- "data-slot": "agent-plan-revision",
63
- className: "sr-only",
64
- children: revision
65
- })]
63
+ children: /* @__PURE__ */ jsx(PlanOptionsContext.Provider, {
64
+ value: options,
65
+ children: /* @__PURE__ */ jsxs("div", {
66
+ "data-slot": "agent-plan",
67
+ "aria-label": label,
68
+ role: "group",
69
+ className: cn("flex flex-col gap-2", className),
70
+ ...props,
71
+ children: [children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AgentPlanSummary, {}), /* @__PURE__ */ jsx(AgentPlanSteps, {})] }), /* @__PURE__ */ jsx("span", {
72
+ "aria-live": "polite",
73
+ "data-slot": "agent-plan-revision",
74
+ className: "sr-only",
75
+ children: revision
76
+ })]
77
+ })
66
78
  })
67
79
  });
68
80
  }
@@ -90,36 +102,59 @@ function AgentPlanSteps({ className, ...props }) {
90
102
  });
91
103
  }
92
104
  function AgentPlanStep({ className, step, nested = false, ...props }) {
93
- const { status, title, detail, error, steps: children } = step;
105
+ const { status, title, detail, error, note, steps: children } = step;
106
+ const { quietCompleted, runningIndicator } = useContext(PlanOptionsContext);
107
+ const sweeping = runningIndicator === "sweep" && status === "running";
94
108
  return /* @__PURE__ */ jsxs("li", {
95
109
  "data-slot": "agent-plan-step",
96
110
  "data-status": status,
97
111
  "aria-current": status === "running" ? "step" : void 0,
98
- className: cn("flex flex-col gap-1", nested && "ml-5", className),
112
+ className: cn("flex flex-col gap-1", nested && "ms-5", className),
99
113
  ...props,
100
114
  children: [/* @__PURE__ */ jsxs("div", {
101
- className: "flex items-start gap-2",
102
- children: [/* @__PURE__ */ jsx(StepMarker, { status }), /* @__PURE__ */ jsxs("div", {
103
- className: "flex min-w-0 flex-1 flex-col",
104
- children: [
105
- /* @__PURE__ */ jsxs("span", {
106
- className: cn("text-sm", status === "pending" && "text-muted-foreground", status === "skipped" && "text-muted-foreground line-through", status === "failed" && "text-destructive", status === "running" && "font-medium"),
107
- children: [title, /* @__PURE__ */ jsxs("span", {
108
- className: "sr-only",
109
- children: [", ", STATUS_LABEL[status]]
110
- })]
111
- }),
112
- detail ? /* @__PURE__ */ jsx("span", {
113
- className: "text-xs text-muted-foreground",
114
- children: detail
115
- }) : null,
116
- status === "failed" && error ? /* @__PURE__ */ jsx("span", {
117
- "data-slot": "agent-plan-error",
118
- className: "text-xs text-destructive",
119
- children: error
120
- }) : null
121
- ]
122
- })]
115
+ className: cn("flex items-start gap-2", sweeping && "relative"),
116
+ children: [
117
+ /* @__PURE__ */ jsx(StepMarker, {
118
+ status,
119
+ pulse: runningIndicator === "pulse"
120
+ }),
121
+ /* @__PURE__ */ jsxs("div", {
122
+ className: "flex min-w-0 flex-1 flex-col",
123
+ children: [
124
+ /* @__PURE__ */ jsxs("span", {
125
+ className: cn("text-sm", status === "pending" && "text-muted-foreground", status === "skipped" && "text-muted-foreground line-through", status === "failed" && "text-destructive", status === "running" && "font-medium", quietCompleted && "transition-[color,translate] duration-[calc(250ms*var(--motion-scale))] ease-[var(--ease-out-quint)]", quietCompleted && status === "done" && "translate-y-px text-muted-foreground"),
126
+ children: [title, /* @__PURE__ */ jsxs("span", {
127
+ className: "sr-only",
128
+ children: [", ", STATUS_LABEL[status]]
129
+ })]
130
+ }),
131
+ detail ? /* @__PURE__ */ jsx("span", {
132
+ className: "text-xs text-muted-foreground",
133
+ children: detail
134
+ }) : null,
135
+ status === "failed" && error ? /* @__PURE__ */ jsx("span", {
136
+ "data-slot": "agent-plan-error",
137
+ className: "text-xs text-destructive",
138
+ children: error
139
+ }) : null
140
+ ]
141
+ }),
142
+ note !== void 0 && note !== null ? /* @__PURE__ */ jsx("span", {
143
+ "data-slot": "agent-plan-note",
144
+ className: "ms-auto shrink-0 text-xs text-muted-foreground tabular-nums",
145
+ children: note
146
+ }) : null,
147
+ sweeping ? /* @__PURE__ */ jsx("span", {
148
+ "aria-hidden": "true",
149
+ "data-slot": "agent-plan-sweep",
150
+ className: "pointer-events-none absolute inset-x-0 bottom-0 h-px opacity-50",
151
+ style: {
152
+ backgroundImage: "linear-gradient(90deg, transparent, currentColor 50%, transparent)",
153
+ backgroundSize: "50% 100%",
154
+ backgroundRepeat: "no-repeat"
155
+ }
156
+ }) : null
157
+ ]
123
158
  }), children && children.length > 0 ? /* @__PURE__ */ jsx("ol", {
124
159
  className: "flex list-none flex-col gap-1",
125
160
  children: children.map((child) => /* @__PURE__ */ jsx(AgentPlanStep, {
@@ -129,25 +164,57 @@ function AgentPlanStep({ className, step, nested = false, ...props }) {
129
164
  }) : null]
130
165
  });
131
166
  }
167
+ const PREFIX = "dowel-ai-agent-plan";
168
+ const STYLES = `
169
+ @keyframes ${PREFIX}-draw{from{stroke-dashoffset:1}}
170
+ @keyframes ${PREFIX}-sweep{from{background-position-x:-100%}to{background-position-x:200%}}
171
+ [data-slot=agent-plan-marker] [data-part=glyph]{stroke-dasharray:1 1;animation:${PREFIX}-draw calc(200ms * var(--motion-scale,1)) var(--ease-out-quint) both}
172
+ [data-slot=agent-plan-sweep]{animation:${PREFIX}-sweep calc(1400ms * var(--motion-scale,1)) var(--ease-in-out-quint) infinite}
173
+ [data-slot=agent-plan-sweep]:dir(rtl){animation-direction:reverse}
174
+ `;
175
+ const CHECK_PATH = "M 3.5 7.5 L 6 10 L 10.5 4.5";
176
+ const CROSS_PATH = "M 5 5 L 9 9 M 9 5 L 5 9";
177
+ /** A drawn glyph. Mounts when the status changes, which is what plays the draw. */
178
+ function MarkerGlyph({ d }) {
179
+ return /* @__PURE__ */ jsx("svg", {
180
+ viewBox: "0 0 14 14",
181
+ fill: "none",
182
+ className: "size-3",
183
+ children: /* @__PURE__ */ jsx("path", {
184
+ "data-part": "glyph",
185
+ d,
186
+ pathLength: 1,
187
+ stroke: "currentColor",
188
+ strokeWidth: "1.8",
189
+ strokeLinecap: "round",
190
+ strokeLinejoin: "round"
191
+ })
192
+ });
193
+ }
132
194
  /**
133
195
  * The status shape.
134
196
  *
135
197
  * aria-hidden throughout: every marker repeats what the step already states in
136
198
  * text, and announcing both means hearing the status twice per step.
137
199
  */
138
- function StepMarker({ status }) {
200
+ function StepMarker({ status, pulse }) {
139
201
  const base = "mt-0.5 grid size-4 shrink-0 place-items-center rounded-full border text-[9px]";
140
- if (status === "running") return /* @__PURE__ */ jsx("span", {
202
+ const sheet = /* @__PURE__ */ jsx("style", {
203
+ href: PREFIX,
204
+ precedence: "dowel",
205
+ children: STYLES
206
+ });
207
+ if (status === "running") return /* @__PURE__ */ jsxs("span", {
141
208
  "aria-hidden": "true",
142
209
  "data-slot": "agent-plan-marker",
143
- className: cn(base, "animate-pulse-soft border-primary bg-primary/15 text-primary"),
144
- children: /* @__PURE__ */ jsx("span", { className: "size-1.5 rounded-full bg-primary" })
210
+ className: cn(base, pulse && "animate-pulse-soft", "border-primary bg-primary/15 text-primary"),
211
+ children: [sheet, /* @__PURE__ */ jsx("span", { className: "size-1.5 rounded-full bg-primary" })]
145
212
  });
146
- return /* @__PURE__ */ jsx("span", {
213
+ return /* @__PURE__ */ jsxs("span", {
147
214
  "aria-hidden": "true",
148
215
  "data-slot": "agent-plan-marker",
149
216
  className: cn(base, status === "done" && "border-success bg-success text-success-foreground", status === "failed" && "border-destructive bg-destructive text-destructive-foreground", status === "skipped" && "border-border-strong text-muted-foreground", status === "pending" && "border-border-strong"),
150
- children: status === "done" ? "" : status === "failed" ? "" : status === "skipped" ? "–" : null
217
+ children: [sheet, status === "done" ? /* @__PURE__ */ jsx(MarkerGlyph, { d: CHECK_PATH }, "done") : status === "failed" ? /* @__PURE__ */ jsx(MarkerGlyph, { d: CROSS_PATH }, "failed") : status === "skipped" ? "–" : null]
151
218
  });
152
219
  }
153
220
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-plan.js","names":[],"sources":["../../../src/components/ai-agent-plan/ai-agent-plan.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useMemo,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * What an agent intends to do, and how far through it is.\n *\n * Not a stepper. A wizard's steps are decided up front and never change; an\n * agent's plan is a hypothesis it revises as it learns — it adds a step when a\n * lookup fails, drops one that turned out to be unnecessary, and reorders when\n * a dependency appears. Every stepper treats its step list as fixed, so a plan\n * rendered in one either silently mutates under the reader or re-renders from\n * scratch and loses their place.\n *\n * So revision is the feature here, not an edge case. When the plan changes, the\n * change is announced — \"the model added a step\" is information, and watching a\n * list quietly grow is not the same as being told.\n *\n * Approval is not here. Deciding whether a plan may run is a different\n * component with a different shape; this one displays and reports.\n */\n\nexport type StepStatus = \"pending\" | \"running\" | \"done\" | \"failed\" | \"skipped\";\n\nexport interface PlanStep {\n id: string;\n title: string;\n status: StepStatus;\n /** What the step will do, or what it found. Shown under the title. */\n detail?: string;\n /** Why it failed. Shown only when the status is \"failed\". */\n error?: string;\n /** One level of sub-steps. Deeper nesting is a tree, which this is not. */\n steps?: PlanStep[];\n}\n\nconst STATUS_LABEL: Record<StepStatus, string> = {\n pending: \"Not started\",\n running: \"In progress\",\n done: \"Done\",\n failed: \"Failed\",\n skipped: \"Skipped\",\n};\n\n/** Flattens one level, so counting and \"step N of M\" include sub-steps. */\nfunction flatten(steps: PlanStep[]): PlanStep[] {\n return steps.flatMap((step) => [step, ...(step.steps ?? [])]);\n}\n\nfunction describeRevision(added: PlanStep[], removed: number): string {\n const parts: string[] = [];\n if (added.length === 1 && added[0]) parts.push(`Plan updated: added \"${added[0].title}\"`);\n else if (added.length > 1) parts.push(`Plan updated: ${String(added.length)} steps added`);\n if (removed === 1) parts.push(\"1 step removed\");\n else if (removed > 1) parts.push(`${String(removed)} steps removed`);\n return parts.join(\", \");\n}\n\ninterface PlanContextValue {\n steps: PlanStep[];\n flat: PlanStep[];\n currentIndex: number;\n}\n\nconst PlanContext = createContext<PlanContextValue | null>(null);\n\nfunction usePlanContext(component: string): PlanContextValue {\n const context = useContext(PlanContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <AgentPlan>.`);\n }\n return context;\n}\n\nexport interface AgentPlanProps extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n steps: PlanStep[];\n /** Names the plan, so the list is not an unlabelled sequence. */\n label: string;\n children?: ReactNode;\n}\n\nexport function AgentPlan({ className, steps, label, children, ...props }: AgentPlanProps) {\n const flat = useMemo(() => flatten(steps), [steps]);\n const ids = flat.map((step) => step.id);\n\n // Revision detection, adjusted during render rather than in an effect: an\n // effect would announce a frame after the change is already on screen, and a\n // ref read during render is unsafe under concurrent rendering.\n const [seen, setSeen] = useState<string[]>(ids);\n const [revision, setRevision] = useState(\"\");\n\n if (ids.join(\"\u0000\") !== seen.join(\"\u0000\")) {\n const added = flat.filter((step) => !seen.includes(step.id));\n const removed = seen.filter((id) => !ids.includes(id)).length;\n setSeen(ids);\n // A plan whose steps only changed status has not been revised. Only\n // structural change is worth interrupting for.\n setRevision(added.length > 0 || removed > 0 ? describeRevision(added, removed) : \"\");\n }\n\n const currentIndex = flat.findIndex((step) => step.status === \"running\");\n\n const context = useMemo<PlanContextValue>(\n () => ({ steps, flat, currentIndex }),\n [steps, flat, currentIndex],\n );\n\n return (\n <PlanContext.Provider value={context}>\n <div\n data-slot=\"agent-plan\"\n aria-label={label}\n role=\"group\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children ?? (\n <>\n <AgentPlanSummary />\n <AgentPlanSteps />\n </>\n )}\n\n {/* Structural changes only. Announcing every status transition would\n talk over the reader continuously on a plan of any length. */}\n <span aria-live=\"polite\" data-slot=\"agent-plan-revision\" className=\"sr-only\">\n {revision}\n </span>\n </div>\n </PlanContext.Provider>\n );\n}\n\n/** \"Step 3 of 6\" plus the overall state, in words. */\nexport function AgentPlanSummary({ className, ...props }: ComponentPropsWithRef<\"p\">) {\n const { flat, currentIndex } = usePlanContext(\"AgentPlanSummary\");\n\n const done = flat.filter((step) => step.status === \"done\").length;\n const failed = flat.filter((step) => step.status === \"failed\").length;\n const running = currentIndex >= 0;\n const started = flat.some((step) => step.status !== \"pending\");\n\n const message = !started\n ? `Proposed plan, ${String(flat.length)} steps`\n : running\n ? `Step ${String(currentIndex + 1)} of ${String(flat.length)}`\n : failed > 0\n ? `${String(done)} of ${String(flat.length)} done, ${String(failed)} failed`\n : `${String(done)} of ${String(flat.length)} done`;\n\n return (\n <p\n data-slot=\"agent-plan-summary\"\n className={cn(\"text-xs text-muted-foreground tabular-nums\", className)}\n {...props}\n >\n {message}\n </p>\n );\n}\n\nexport function AgentPlanSteps({ className, ...props }: ComponentPropsWithRef<\"ol\">) {\n const { steps } = usePlanContext(\"AgentPlanSteps\");\n\n return (\n // An ordered list: a plan is a sequence, and the order carries meaning that\n // an unordered list would throw away.\n <ol\n data-slot=\"agent-plan-steps\"\n className={cn(\"flex list-none flex-col gap-1\", className)}\n {...props}\n >\n {steps.map((step) => (\n <AgentPlanStep key={step.id} step={step} />\n ))}\n </ol>\n );\n}\n\nexport interface AgentPlanStepProps extends Omit<ComponentPropsWithRef<\"li\">, \"children\"> {\n step: PlanStep;\n /** Set on sub-steps. Not part of the public API surface. */\n nested?: boolean;\n}\n\nexport function AgentPlanStep({\n className,\n step,\n nested = false,\n ...props\n}: AgentPlanStepProps) {\n const { status, title, detail, error, steps: children } = step;\n\n return (\n <li\n data-slot=\"agent-plan-step\"\n data-status={status}\n // Marks where the reader is in the sequence without moving focus, which\n // would fight anyone reading ahead.\n aria-current={status === \"running\" ? \"step\" : undefined}\n className={cn(\"flex flex-col gap-1\", nested && \"ml-5\", className)}\n {...props}\n >\n <div className=\"flex items-start gap-2\">\n <StepMarker status={status} />\n\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span\n className={cn(\n \"text-sm\",\n status === \"pending\" && \"text-muted-foreground\",\n status === \"skipped\" && \"text-muted-foreground line-through\",\n status === \"failed\" && \"text-destructive\",\n status === \"running\" && \"font-medium\",\n )}\n >\n {title}\n {/* Status in text, always. The marker is a shape and a colour, and\n neither is information on its own. */}\n <span className=\"sr-only\">, {STATUS_LABEL[status]}</span>\n </span>\n\n {detail ? <span className=\"text-xs text-muted-foreground\">{detail}</span> : null}\n {status === \"failed\" && error ? (\n <span data-slot=\"agent-plan-error\" className=\"text-xs text-destructive\">\n {error}\n </span>\n ) : null}\n </div>\n </div>\n\n {children && children.length > 0 ? (\n <ol className=\"flex list-none flex-col gap-1\">\n {children.map((child) => (\n <AgentPlanStep key={child.id} step={child} nested />\n ))}\n </ol>\n ) : null}\n </li>\n );\n}\n\n/**\n * The status shape.\n *\n * aria-hidden throughout: every marker repeats what the step already states in\n * text, and announcing both means hearing the status twice per step.\n */\nfunction StepMarker({ status }: { status: StepStatus }) {\n const base = \"mt-0.5 grid size-4 shrink-0 place-items-center rounded-full border text-[9px]\";\n\n if (status === \"running\") {\n return (\n // Deliberately not data-motion=\"indicator\". The bar for that exemption is\n // that stopping the animation would say something false, and it would\n // not: the step already states \"In progress\" in text and carries\n // aria-current. This pulse is reinforcement, so under reduced motion it\n // stops like any other decoration.\n <span\n aria-hidden=\"true\"\n data-slot=\"agent-plan-marker\"\n className={cn(base, \"animate-pulse-soft border-primary bg-primary/15 text-primary\")}\n >\n <span className=\"size-1.5 rounded-full bg-primary\" />\n </span>\n );\n }\n\n return (\n <span\n aria-hidden=\"true\"\n data-slot=\"agent-plan-marker\"\n className={cn(\n base,\n status === \"done\" && \"border-success bg-success text-success-foreground\",\n status === \"failed\" && \"border-destructive bg-destructive text-destructive-foreground\",\n status === \"skipped\" && \"border-border-strong text-muted-foreground\",\n status === \"pending\" && \"border-border-strong\",\n )}\n >\n {status === \"done\" ? \"✓\" : status === \"failed\" ? \"✕\" : status === \"skipped\" ? \"–\" : null}\n </span>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ai-agent-plan.js","names":[],"sources":["../../../src/components/ai-agent-plan/ai-agent-plan.tsx"],"sourcesContent":["\"use client\";\n\n// Motion from SmoothUI AI Task List (MIT, © 2024 Eduardo Calvo). See THIRD_PARTY_NOTICES.md.\nimport {\n createContext,\n useContext,\n useMemo,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\n/**\n * What an agent intends to do, and how far through it is.\n *\n * Not a stepper. A wizard's steps are decided up front and never change; an\n * agent's plan is a hypothesis it revises as it learns — it adds a step when a\n * lookup fails, drops one that turned out to be unnecessary, and reorders when\n * a dependency appears. Every stepper treats its step list as fixed, so a plan\n * rendered in one either silently mutates under the reader or re-renders from\n * scratch and loses their place.\n *\n * So revision is the feature here, not an edge case. When the plan changes, the\n * change is announced — \"the model added a step\" is information, and watching a\n * list quietly grow is not the same as being told.\n *\n * Approval is not here. Deciding whether a plan may run is a different\n * component with a different shape; this one displays and reports.\n */\n\nexport type StepStatus = \"pending\" | \"running\" | \"done\" | \"failed\" | \"skipped\";\n\nexport interface PlanStep {\n id: string;\n title: string;\n status: StepStatus;\n /** What the step will do, or what it found. Shown under the title. */\n detail?: string;\n /** Why it failed. Shown only when the status is \"failed\". */\n error?: string;\n /** One level of sub-steps. Deeper nesting is a tree, which this is not. */\n steps?: PlanStep[];\n /** A short end-aligned note, e.g. \"12/12\" or \"3 files\". Read after the title. */\n note?: ReactNode;\n}\n\nconst STATUS_LABEL: Record<StepStatus, string> = {\n pending: \"Not started\",\n running: \"In progress\",\n done: \"Done\",\n failed: \"Failed\",\n skipped: \"Skipped\",\n};\n\n/** Flattens one level, so counting and \"step N of M\" include sub-steps. */\nfunction flatten(steps: PlanStep[]): PlanStep[] {\n return steps.flatMap((step) => [step, ...(step.steps ?? [])]);\n}\n\nfunction describeRevision(added: PlanStep[], removed: number): string {\n const parts: string[] = [];\n if (added.length === 1 && added[0]) parts.push(`Plan updated: added \"${added[0].title}\"`);\n else if (added.length > 1) parts.push(`Plan updated: ${String(added.length)} steps added`);\n if (removed === 1) parts.push(\"1 step removed\");\n else if (removed > 1) parts.push(`${String(removed)} steps removed`);\n return parts.join(\", \");\n}\n\ninterface PlanContextValue {\n steps: PlanStep[];\n flat: PlanStep[];\n currentIndex: number;\n}\n\nconst PlanContext = createContext<PlanContextValue | null>(null);\n\n/** How the running step is marked. */\nexport type PlanRunningIndicator = \"pulse\" | \"sweep\";\n\ninterface PlanOptions {\n quietCompleted: boolean;\n runningIndicator: PlanRunningIndicator;\n}\n\n/** Display options, separate from PlanContext so a lone AgentPlanStep still works. */\nconst PlanOptionsContext = createContext<PlanOptions>({\n quietCompleted: false,\n runningIndicator: \"pulse\",\n});\n\nfunction usePlanContext(component: string): PlanContextValue {\n const context = useContext(PlanContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <AgentPlan>.`);\n }\n return context;\n}\n\nexport interface AgentPlanProps extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n steps: PlanStep[];\n /** Names the plan, so the list is not an unlabelled sequence. */\n label: string;\n children?: ReactNode;\n /** Completed steps recede, so the running one is what stands out. */\n quietCompleted?: boolean;\n /**\n * How the running step is marked: `pulse` pulses its marker; `sweep` runs a\n * light along the bottom of its row instead — one moving thing at a time.\n */\n runningIndicator?: PlanRunningIndicator;\n}\n\nexport function AgentPlan({\n className,\n steps,\n label,\n children,\n quietCompleted = false,\n runningIndicator = \"pulse\",\n ...props\n}: AgentPlanProps) {\n const flat = useMemo(() => flatten(steps), [steps]);\n const ids = flat.map((step) => step.id);\n\n // Revision detection, adjusted during render rather than in an effect: an\n // effect would announce a frame after the change is already on screen, and a\n // ref read during render is unsafe under concurrent rendering.\n const [seen, setSeen] = useState<string[]>(ids);\n const [revision, setRevision] = useState(\"\");\n\n if (ids.join(\"\\u0000\") !== seen.join(\"\\u0000\")) {\n const added = flat.filter((step) => !seen.includes(step.id));\n const removed = seen.filter((id) => !ids.includes(id)).length;\n setSeen(ids);\n // A plan whose steps only changed status has not been revised. Only\n // structural change is worth interrupting for.\n setRevision(added.length > 0 || removed > 0 ? describeRevision(added, removed) : \"\");\n }\n\n const currentIndex = flat.findIndex((step) => step.status === \"running\");\n\n const context = useMemo<PlanContextValue>(\n () => ({ steps, flat, currentIndex }),\n [steps, flat, currentIndex],\n );\n\n const options = useMemo<PlanOptions>(\n () => ({ quietCompleted, runningIndicator }),\n [quietCompleted, runningIndicator],\n );\n\n return (\n <PlanContext.Provider value={context}>\n <PlanOptionsContext.Provider value={options}>\n <div\n data-slot=\"agent-plan\"\n aria-label={label}\n role=\"group\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children ?? (\n <>\n <AgentPlanSummary />\n <AgentPlanSteps />\n </>\n )}\n\n {/* Structural changes only. Announcing every status transition would\n talk over the reader continuously on a plan of any length. */}\n <span aria-live=\"polite\" data-slot=\"agent-plan-revision\" className=\"sr-only\">\n {revision}\n </span>\n </div>\n </PlanOptionsContext.Provider>\n </PlanContext.Provider>\n );\n}\n\n/** \"Step 3 of 6\" plus the overall state, in words. */\nexport function AgentPlanSummary({ className, ...props }: ComponentPropsWithRef<\"p\">) {\n const { flat, currentIndex } = usePlanContext(\"AgentPlanSummary\");\n\n const done = flat.filter((step) => step.status === \"done\").length;\n const failed = flat.filter((step) => step.status === \"failed\").length;\n const running = currentIndex >= 0;\n const started = flat.some((step) => step.status !== \"pending\");\n\n const message = !started\n ? `Proposed plan, ${String(flat.length)} steps`\n : running\n ? `Step ${String(currentIndex + 1)} of ${String(flat.length)}`\n : failed > 0\n ? `${String(done)} of ${String(flat.length)} done, ${String(failed)} failed`\n : `${String(done)} of ${String(flat.length)} done`;\n\n return (\n <p\n data-slot=\"agent-plan-summary\"\n className={cn(\"text-xs text-muted-foreground tabular-nums\", className)}\n {...props}\n >\n {message}\n </p>\n );\n}\n\nexport function AgentPlanSteps({ className, ...props }: ComponentPropsWithRef<\"ol\">) {\n const { steps } = usePlanContext(\"AgentPlanSteps\");\n\n return (\n // An ordered list: a plan is a sequence, and the order carries meaning that\n // an unordered list would throw away.\n <ol\n data-slot=\"agent-plan-steps\"\n className={cn(\"flex list-none flex-col gap-1\", className)}\n {...props}\n >\n {steps.map((step) => (\n <AgentPlanStep key={step.id} step={step} />\n ))}\n </ol>\n );\n}\n\nexport interface AgentPlanStepProps extends Omit<ComponentPropsWithRef<\"li\">, \"children\"> {\n step: PlanStep;\n /** Set on sub-steps. Not part of the public API surface. */\n nested?: boolean;\n}\n\nexport function AgentPlanStep({\n className,\n step,\n nested = false,\n ...props\n}: AgentPlanStepProps) {\n const { status, title, detail, error, note, steps: children } = step;\n const { quietCompleted, runningIndicator } = useContext(PlanOptionsContext);\n const sweeping = runningIndicator === \"sweep\" && status === \"running\";\n\n return (\n <li\n data-slot=\"agent-plan-step\"\n data-status={status}\n // Marks where the reader is in the sequence without moving focus, which\n // would fight anyone reading ahead.\n aria-current={status === \"running\" ? \"step\" : undefined}\n className={cn(\"flex flex-col gap-1\", nested && \"ms-5\", className)}\n {...props}\n >\n <div className={cn(\"flex items-start gap-2\", sweeping && \"relative\")}>\n <StepMarker status={status} pulse={runningIndicator === \"pulse\"} />\n\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <span\n className={cn(\n \"text-sm\",\n status === \"pending\" && \"text-muted-foreground\",\n status === \"skipped\" && \"text-muted-foreground line-through\",\n status === \"failed\" && \"text-destructive\",\n status === \"running\" && \"font-medium\",\n // A token rather than opacity, so the contrast audit covers it.\n quietCompleted &&\n \"transition-[color,translate] duration-[calc(250ms*var(--motion-scale))] ease-[var(--ease-out-quint)]\",\n quietCompleted && status === \"done\" && \"translate-y-px text-muted-foreground\",\n )}\n >\n {title}\n {/* Status in text, always. The marker is a shape and a colour, and\n neither is information on its own. */}\n <span className=\"sr-only\">, {STATUS_LABEL[status]}</span>\n </span>\n\n {detail ? <span className=\"text-xs text-muted-foreground\">{detail}</span> : null}\n {status === \"failed\" && error ? (\n <span data-slot=\"agent-plan-error\" className=\"text-xs text-destructive\">\n {error}\n </span>\n ) : null}\n </div>\n\n {note !== undefined && note !== null ? (\n <span\n data-slot=\"agent-plan-note\"\n className=\"ms-auto shrink-0 text-xs text-muted-foreground tabular-nums\"\n >\n {note}\n </span>\n ) : null}\n\n {sweeping ? (\n // Decoration, like the pulse it replaces: the step already says \"In\n // progress\" and carries aria-current, so this stops under reduced\n // motion rather than being exempted as an indicator.\n <span\n aria-hidden=\"true\"\n data-slot=\"agent-plan-sweep\"\n className=\"pointer-events-none absolute inset-x-0 bottom-0 h-px opacity-50\"\n style={{\n backgroundImage:\n \"linear-gradient(90deg, transparent, currentColor 50%, transparent)\",\n backgroundSize: \"50% 100%\",\n backgroundRepeat: \"no-repeat\",\n }}\n />\n ) : null}\n </div>\n\n {children && children.length > 0 ? (\n <ol className=\"flex list-none flex-col gap-1\">\n {children.map((child) => (\n <AgentPlanStep key={child.id} step={child} nested />\n ))}\n </ol>\n ) : null}\n </li>\n );\n}\n\nconst PREFIX = \"dowel-ai-agent-plan\";\n\n/* The check and cross draw in when a step finishes; the sweep travels along\n * the running row, and runs the other way in RTL. */\nconst STYLES = `\n@keyframes ${PREFIX}-draw{from{stroke-dashoffset:1}}\n@keyframes ${PREFIX}-sweep{from{background-position-x:-100%}to{background-position-x:200%}}\n[data-slot=agent-plan-marker] [data-part=glyph]{stroke-dasharray:1 1;animation:${PREFIX}-draw calc(200ms * var(--motion-scale,1)) var(--ease-out-quint) both}\n[data-slot=agent-plan-sweep]{animation:${PREFIX}-sweep calc(1400ms * var(--motion-scale,1)) var(--ease-in-out-quint) infinite}\n[data-slot=agent-plan-sweep]:dir(rtl){animation-direction:reverse}\n`;\n\nconst CHECK_PATH = \"M 3.5 7.5 L 6 10 L 10.5 4.5\";\nconst CROSS_PATH = \"M 5 5 L 9 9 M 9 5 L 5 9\";\n\n/** A drawn glyph. Mounts when the status changes, which is what plays the draw. */\nfunction MarkerGlyph({ d }: { d: string }) {\n return (\n <svg viewBox=\"0 0 14 14\" fill=\"none\" className=\"size-3\">\n <path\n data-part=\"glyph\"\n d={d}\n pathLength={1}\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\n/**\n * The status shape.\n *\n * aria-hidden throughout: every marker repeats what the step already states in\n * text, and announcing both means hearing the status twice per step.\n */\nfunction StepMarker({ status, pulse }: { status: StepStatus; pulse: boolean }) {\n const base = \"mt-0.5 grid size-4 shrink-0 place-items-center rounded-full border text-[9px]\";\n const sheet = (\n <style href={PREFIX} precedence=\"dowel\">\n {STYLES}\n </style>\n );\n\n if (status === \"running\") {\n return (\n // Deliberately not data-motion=\"indicator\". The bar for that exemption is\n // that stopping the animation would say something false, and it would\n // not: the step already states \"In progress\" in text and carries\n // aria-current. This pulse is reinforcement, so under reduced motion it\n // stops like any other decoration.\n <span\n aria-hidden=\"true\"\n data-slot=\"agent-plan-marker\"\n className={cn(\n base,\n pulse && \"animate-pulse-soft\",\n \"border-primary bg-primary/15 text-primary\",\n )}\n >\n {sheet}\n <span className=\"size-1.5 rounded-full bg-primary\" />\n </span>\n );\n }\n\n return (\n <span\n aria-hidden=\"true\"\n data-slot=\"agent-plan-marker\"\n className={cn(\n base,\n status === \"done\" && \"border-success bg-success text-success-foreground\",\n status === \"failed\" && \"border-destructive bg-destructive text-destructive-foreground\",\n status === \"skipped\" && \"border-border-strong text-muted-foreground\",\n status === \"pending\" && \"border-border-strong\",\n )}\n >\n {sheet}\n {status === \"done\" ? (\n <MarkerGlyph key=\"done\" d={CHECK_PATH} />\n ) : status === \"failed\" ? (\n <MarkerGlyph key=\"failed\" d={CROSS_PATH} />\n ) : status === \"skipped\" ? (\n \"–\"\n ) : null}\n </span>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { AgentPlan, AgentPlanProps, AgentPlanStep, AgentPlanStepProps, AgentPlanSteps, AgentPlanSummary, PlanStep, StepStatus } from "./ai-agent-plan.js";
2
- export { AgentPlan, type AgentPlanProps, AgentPlanStep, type AgentPlanStepProps, AgentPlanSteps, AgentPlanSummary, type PlanStep, type StepStatus };
1
+ import { AgentPlan, AgentPlanProps, AgentPlanStep, AgentPlanStepProps, AgentPlanSteps, AgentPlanSummary, PlanRunningIndicator, PlanStep, StepStatus } from "./ai-agent-plan.js";
2
+ export { AgentPlan, type AgentPlanProps, AgentPlanStep, type AgentPlanStepProps, AgentPlanSteps, AgentPlanSummary, type PlanRunningIndicator, type PlanStep, type StepStatus };
@@ -9,7 +9,7 @@ const meta = defineMeta({
9
9
  dependencies: [],
10
10
  registryDependencies: [],
11
11
  files: ["ai-agent-plan.tsx"],
12
- a11y: "An ordered list, because a plan is a sequence and the order carries meaning an unordered list would discard. The running step carries aria-current=\"step\", which marks the reader's place without moving focus and fighting anyone reading ahead. Every status is stated in text as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. The live region reports structural revisions only — announcing every status transition would talk over the reader continuously on a plan of any length."
12
+ a11y: "An ordered list, because a plan is a sequence and the order carries meaning an unordered list would discard. The running step carries aria-current=\"step\", which marks the reader's place without moving focus and fighting anyone reading ahead. Every status is stated in text as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. The live region reports structural revisions only — announcing every status transition would talk over the reader continuously on a plan of any length. Drawn checks and crosses live inside the hidden markers; quietCompleted dims finished steps with a contrast-audited token, and the optional sweep is decoration that stops under reduced motion."
13
13
  });
14
14
  //#endregion
15
15
  export { meta };
@@ -1 +1 @@
1
- {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/ai-agent-plan/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"ai-agent-plan\",\n title: \"AI Agent Plan\",\n description: \"What an agent intends to do — including when it changes its mind mid-run.\",\n category: \"ai\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [],\n files: [\"ai-agent-plan.tsx\"],\n a11y:\n \"An ordered list, because a plan is a sequence and the order carries meaning an unordered \" +\n 'list would discard. The running step carries aria-current=\"step\", which marks the reader\\'s ' +\n \"place without moving focus and fighting anyone reading ahead. Every status is stated in text \" +\n \"as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. \" +\n \"The live region reports structural revisions only — announcing every status transition would \" +\n \"talk over the reader continuously on a plan of any length.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC;CACf,sBAAsB,CAAC;CACvB,OAAO,CAAC,mBAAmB;CAC3B,MACE;AAMJ,CAAC"}
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/ai-agent-plan/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"ai-agent-plan\",\n title: \"AI Agent Plan\",\n description: \"What an agent intends to do — including when it changes its mind mid-run.\",\n category: \"ai\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [],\n files: [\"ai-agent-plan.tsx\"],\n a11y:\n \"An ordered list, because a plan is a sequence and the order carries meaning an unordered \" +\n 'list would discard. The running step carries aria-current=\"step\", which marks the reader\\'s ' +\n \"place without moving focus and fighting anyone reading ahead. Every status is stated in text \" +\n \"as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. \" +\n \"The live region reports structural revisions only — announcing every status transition would \" +\n \"talk over the reader continuously on a plan of any length. Drawn checks and crosses live \" +\n \"inside the hidden markers; quietCompleted dims finished steps with a contrast-audited token, \" +\n \"and the optional sweep is decoration that stops under reduced motion.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC;CACf,sBAAsB,CAAC;CACvB,OAAO,CAAC,mBAAmB;CAC3B,MACE;AAQJ,CAAC"}
@@ -10,7 +10,7 @@ import { ComponentPropsWithRef } from "react";
10
10
  */
11
11
  type AgentState = "idle" | "thinking" | "working" | "waiting" | "done" | "error";
12
12
  declare const agentStatusVariants: (props?: ({
13
- state?: "done" | "error" | "idle" | "thinking" | "working" | "waiting" | null | undefined;
13
+ state?: "done" | "thinking" | "error" | "idle" | "working" | "waiting" | null | undefined;
14
14
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
15
  interface AgentStatusProps extends ComponentPropsWithRef<"span">, VariantProps<typeof agentStatusVariants> {
16
16
  state?: AgentState;
@@ -60,8 +60,15 @@ interface ApprovalRequestProps extends Omit<ComponentPropsWithRef<"section">, "o
60
60
  /** Set once decided, to render the outcome instead of the controls. */
61
61
  decision?: ApprovalDecision;
62
62
  children?: ReactNode;
63
+ /**
64
+ * Keep focus in the request as its controls swap: onto the outcome when a
65
+ * decision lands, into the reason field when Deny… opens, and back to Deny…
66
+ * from Back. Only acts when focus was already inside the request, so a
67
+ * decision applied elsewhere (another tab, a replay) never steals focus.
68
+ */
69
+ manageFocus?: boolean;
63
70
  }
64
- declare function ApprovalRequest({ className, tool, summary, arguments: proposed, fields, onDecision, streaming, irreversible, decision, children, ...props }: ApprovalRequestProps): import("react").JSX.Element;
71
+ declare function ApprovalRequest({ className, tool, summary, arguments: proposed, fields, onDecision, streaming, irreversible, decision, children, manageFocus, ref, ...props }: ApprovalRequestProps): import("react").JSX.Element;
65
72
  //#endregion
66
73
  export { ApprovalDecision, ApprovalField, ApprovalRequest, ApprovalRequestProps, ApprovalScope };
67
74
  //# sourceMappingURL=ai-approval-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-approval-request.d.ts","names":[],"sources":["../../../src/components/ai-approval-request/ai-approval-request.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;KA2BY;KAEA;EAEN;EACA,OAAO;EACP,WAAW;EACX;;EAEA;EAAiB;;UAEN;EACf;EACA;;EAEA;;EAEA;;UAGe,6BAA6B,KAC5C;;EAIA;;EAEA;;EAEA,WAAW;;EAEX,QAAQ;EACR,aAAa,UAAU;;;;;EAKvB;;;;;EAKA;;EAEA,WAAW;EACX,WAAW;;iBAGG,kBACd,WACA,MACA,SACA,WAAW,UACX,QACA,YACA,WACA,cACA,UACA,aACG,SACF,uCAAoB,IAAA"}
1
+ {"version":3,"file":"ai-approval-request.d.ts","names":[],"sources":["../../../src/components/ai-approval-request/ai-approval-request.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;KAoCY;KAEA;EAEN;EACA,OAAO;EACP,WAAW;EACX;;EAEA;EAAiB;;UAEN;EACf;EACA;;EAEA;;EAEA;;UAGe,6BAA6B,KAC5C;;EAIA;;EAEA;;EAEA,WAAW;;EAEX,QAAQ;EACR,aAAa,UAAU;;;;;EAKvB;;;;;EAKA;;EAEA,WAAW;EACX,WAAW;;;;;;;EAOX;;iBAgBc,kBACd,WACA,MACA,SACA,WAAW,UACX,QACA,YACA,WACA,cACA,UACA,UACA,aACA,QACG,SACF,uCAAoB,IAAA"}
@@ -2,13 +2,50 @@
2
2
  import { disabledStyles, focusRing } from "../../lib/styles.js";
3
3
  import { cn } from "../../lib/utils.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
- import { useId, useMemo, useState } from "react";
5
+ import { useId, useLayoutEffect, useMemo, useRef, useState } from "react";
6
6
  //#region src/components/ai-approval-request/ai-approval-request.tsx
7
- function ApprovalRequest({ className, tool, summary, arguments: proposed, fields, onDecision, streaming = false, irreversible, decision, children, ...props }) {
7
+ const PREFIX = "dowel-ai-approval-request";
8
+ const STYLES = `
9
+ @keyframes ${PREFIX}-resolve{from{opacity:0;scale:.97}}
10
+ @keyframes ${PREFIX}-reveal{from{opacity:0;translate:0 4px}}
11
+ [data-slot=approval-request][data-resolved=live] [data-slot=approval-outcome]{animation:${PREFIX}-resolve calc(250ms * var(--motion-scale,1)) var(--ease-out-quint) both}
12
+ [data-slot=approval-deny]{animation:${PREFIX}-reveal calc(200ms * var(--motion-scale,1)) var(--ease-out-quint) both}
13
+ `;
14
+ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields, onDecision, streaming = false, irreversible, decision, children, manageFocus = true, ref, ...props }) {
8
15
  const headingId = useId();
9
16
  const [edits, setEdits] = useState({});
10
17
  const [denying, setDenying] = useState(false);
11
18
  const [reason, setReason] = useState("");
19
+ const [initiallyDecided] = useState(decision !== void 0);
20
+ const sectionRef = useRef(null);
21
+ const outcomeRef = useRef(null);
22
+ const reasonRef = useRef(null);
23
+ const denyRef = useRef(null);
24
+ const focusTarget = useRef(null);
25
+ function queueFocus(target) {
26
+ if (!manageFocus) return;
27
+ const inside = sectionRef.current?.contains(document.activeElement) ?? false;
28
+ focusTarget.current = inside ? target : null;
29
+ }
30
+ useLayoutEffect(() => {
31
+ const target = focusTarget.current;
32
+ if (!target) return;
33
+ const element = target === "outcome" ? outcomeRef.current : target === "reason" ? reasonRef.current : denyRef.current;
34
+ if (!element) return;
35
+ focusTarget.current = null;
36
+ const active = document.activeElement;
37
+ if (!active || active === document.body || (sectionRef.current?.contains(active) ?? false)) element.focus();
38
+ }, [decision !== void 0, denying]);
39
+ const setSectionRef = (node) => {
40
+ sectionRef.current = node;
41
+ if (typeof ref === "function") return ref(node);
42
+ if (ref) ref.current = node;
43
+ };
44
+ const sheet = /* @__PURE__ */ jsx("style", {
45
+ href: PREFIX,
46
+ precedence: "dowel",
47
+ children: STYLES
48
+ });
12
49
  const values = useMemo(() => ({
13
50
  ...proposed,
14
51
  ...edits
@@ -17,22 +54,31 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
17
54
  const missing = fields.filter((field) => proposed[field.name] === void 0);
18
55
  const settled = !streaming && missing.length === 0;
19
56
  if (decision) return /* @__PURE__ */ jsxs("section", {
57
+ ref: setSectionRef,
20
58
  "data-slot": "approval-request",
21
59
  "data-state": decision.approved ? "approved" : "denied",
60
+ "data-resolved": initiallyDecided ? void 0 : "live",
22
61
  "aria-labelledby": headingId,
23
62
  className: cn("rounded-lg border p-4 text-sm", decision.approved ? "border-border bg-muted/40" : "border-border bg-muted/40", className),
24
63
  ...props,
25
- children: [/* @__PURE__ */ jsx("h3", {
26
- id: headingId,
27
- className: "text-sm font-medium",
28
- children: summary
29
- }), /* @__PURE__ */ jsx("p", {
30
- "data-slot": "approval-outcome",
31
- className: "mt-1 text-xs text-muted-foreground",
32
- children: decision.approved ? `Approved ${decision.scope === "always" ? "for every call to this tool" : "once"}` + (decision.edited.length > 0 ? `, with ${String(decision.edited.length)} argument${decision.edited.length === 1 ? "" : "s"} corrected` : "") : `Denied${decision.reason ? `: ${decision.reason}` : ""}`
33
- })]
64
+ children: [
65
+ sheet,
66
+ /* @__PURE__ */ jsx("h3", {
67
+ id: headingId,
68
+ className: "text-sm font-medium",
69
+ children: summary
70
+ }),
71
+ /* @__PURE__ */ jsx("p", {
72
+ ref: outcomeRef,
73
+ tabIndex: -1,
74
+ "data-slot": "approval-outcome",
75
+ className: "mt-1 text-xs text-muted-foreground outline-none",
76
+ children: decision.approved ? `Approved ${decision.scope === "always" ? "for every call to this tool" : "once"}` + (decision.edited.length > 0 ? `, with ${String(decision.edited.length)} argument${decision.edited.length === 1 ? "" : "s"} corrected` : "") : `Denied${decision.reason ? `: ${decision.reason}` : ""}`
77
+ })
78
+ ]
34
79
  });
35
80
  return /* @__PURE__ */ jsxs("section", {
81
+ ref: setSectionRef,
36
82
  "data-slot": "approval-request",
37
83
  "data-state": settled ? "pending" : "forming",
38
84
  "aria-labelledby": headingId,
@@ -40,6 +86,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
40
86
  className: cn("rounded-lg border border-border bg-card p-4", className),
41
87
  ...props,
42
88
  children: [
89
+ sheet,
43
90
  /* @__PURE__ */ jsxs("div", {
44
91
  className: "flex flex-wrap items-baseline justify-between gap-2",
45
92
  children: [/* @__PURE__ */ jsx("h3", {
@@ -77,6 +124,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
77
124
  children: irreversible
78
125
  }) : null,
79
126
  denying ? /* @__PURE__ */ jsxs("div", {
127
+ "data-slot": "approval-deny",
80
128
  className: "mt-3 flex flex-col gap-2",
81
129
  children: [
82
130
  /* @__PURE__ */ jsx("label", {
@@ -85,6 +133,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
85
133
  children: "Why not? The model sees this."
86
134
  }),
87
135
  /* @__PURE__ */ jsx("textarea", {
136
+ ref: reasonRef,
88
137
  id: `${headingId}-reason`,
89
138
  rows: 2,
90
139
  value: reason,
@@ -98,6 +147,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
98
147
  children: [/* @__PURE__ */ jsx(Action, {
99
148
  variant: "destructive",
100
149
  onClick: () => {
150
+ queueFocus("outcome");
101
151
  onDecision({
102
152
  approved: false,
103
153
  reason: reason.trim() || void 0
@@ -106,6 +156,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
106
156
  children: "Deny"
107
157
  }), /* @__PURE__ */ jsx(Action, {
108
158
  onClick: () => {
159
+ queueFocus("deny");
109
160
  setDenying(false);
110
161
  },
111
162
  children: "Back"
@@ -119,6 +170,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
119
170
  variant: "primary",
120
171
  disabled: !settled,
121
172
  onClick: () => {
173
+ queueFocus("outcome");
122
174
  onDecision({
123
175
  approved: true,
124
176
  scope: "once",
@@ -131,6 +183,7 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
131
183
  /* @__PURE__ */ jsxs(Action, {
132
184
  disabled: !settled,
133
185
  onClick: () => {
186
+ queueFocus("outcome");
134
187
  onDecision({
135
188
  approved: true,
136
189
  scope: "always",
@@ -141,7 +194,9 @@ function ApprovalRequest({ className, tool, summary, arguments: proposed, fields
141
194
  children: ["Always allow ", tool]
142
195
  }),
143
196
  /* @__PURE__ */ jsx(Action, {
197
+ ref: denyRef,
144
198
  onClick: () => {
199
+ queueFocus("reason");
145
200
  setDenying(true);
146
201
  },
147
202
  children: "Deny…"
@@ -208,7 +263,7 @@ function ApprovalArgument({ field, value, arrived, changed, onChange }) {
208
263
  function Action({ className, variant = "default", ...props }) {
209
264
  return /* @__PURE__ */ jsx("button", {
210
265
  type: "button",
211
- className: cn("rounded-md border px-2.5 py-1 text-xs font-medium transition-colors", variant === "primary" && "border-primary bg-primary text-primary-foreground hover:bg-primary-hover", variant === "destructive" && "border-destructive bg-destructive text-destructive-foreground hover:bg-destructive/90", variant === "default" && "border-input bg-background hover:bg-accent hover:text-accent-foreground", focusRing, disabledStyles, className),
266
+ className: cn("rounded-md border px-2.5 py-1 text-xs font-medium", "transition-[color,background-color,border-color,scale] duration-[var(--duration-fast)] ease-[var(--ease-out-quint)] active:scale-[0.99]", variant === "primary" && "border-primary bg-primary text-primary-foreground hover:bg-primary-hover", variant === "destructive" && "border-destructive bg-destructive text-destructive-foreground hover:bg-destructive/90", variant === "default" && "border-input bg-background hover:bg-accent hover:text-accent-foreground", focusRing, disabledStyles, className),
212
267
  ...props
213
268
  });
214
269
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-approval-request.js","names":[],"sources":["../../../src/components/ai-approval-request/ai-approval-request.tsx"],"sourcesContent":["\"use client\";\n\nimport { useId, useMemo, useState, type ComponentPropsWithRef, type ReactNode } from \"react\";\n\nimport { disabledStyles, focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * The gate between an agent deciding to act and it acting.\n *\n * Two things separate this from the confirmations that already exist.\n *\n * The first is that the proposed arguments are editable. Every implementation\n * surveyed returns a boolean over a read-only payload, which forces a false\n * choice: approve a call whose recipient is wrong, or deny it and make the\n * model try again. \"Approve this, but fix the address first\" is the answer\n * people actually want, and it is only possible if the arguments are fields.\n * Edited values come back in the decision, and are marked as changed so an\n * audit trail can tell the model's proposal from the human's correction.\n *\n * The second is that it renders while the arguments are still arriving. The\n * common implementation returns null until the tool input is complete, which\n * means nothing is on screen at the moment approval becomes relevant and the\n * request appears abruptly, fully formed. Here the request is visible as it\n * forms, with the decision held until there is something whole to decide on.\n */\n\nexport type ApprovalScope = \"once\" | \"always\";\n\nexport type ApprovalDecision =\n | {\n approved: true;\n scope: ApprovalScope;\n arguments: Record<string, string>;\n edited: string[];\n }\n | { approved: false; reason?: string };\n\nexport interface ApprovalField {\n name: string;\n label: string;\n /** A textarea instead of a single line. For message bodies and prompts. */\n multiline?: boolean;\n /** Locked arguments are shown but not editable — an id, a resolved amount. */\n readOnly?: boolean;\n}\n\nexport interface ApprovalRequestProps extends Omit<\n ComponentPropsWithRef<\"section\">,\n \"onSubmit\" | \"children\"\n> {\n /** The tool the model wants to call, as it named it. */\n tool: string;\n /** What the call will do, in the reader's language rather than the API's. */\n summary: string;\n /** Proposed arguments. Missing keys are treated as still arriving. */\n arguments: Record<string, string>;\n /** Which arguments to show, in order, and which may be changed. */\n fields: ApprovalField[];\n onDecision: (decision: ApprovalDecision) => void;\n /**\n * True while the model is still producing the arguments. The request renders\n * anyway; only the decision waits.\n */\n streaming?: boolean;\n /**\n * Said plainly above the controls when the call cannot be taken back. Not a\n * severity colour — the sentence is the warning.\n */\n irreversible?: string;\n /** Set once decided, to render the outcome instead of the controls. */\n decision?: ApprovalDecision;\n children?: ReactNode;\n}\n\nexport function ApprovalRequest({\n className,\n tool,\n summary,\n arguments: proposed,\n fields,\n onDecision,\n streaming = false,\n irreversible,\n decision,\n children,\n ...props\n}: ApprovalRequestProps) {\n const headingId = useId();\n const [edits, setEdits] = useState<Record<string, string>>({});\n const [denying, setDenying] = useState(false);\n const [reason, setReason] = useState(\"\");\n\n // The model's proposal with the human's corrections applied on top. Keeping\n // them apart is what lets the component say which is which.\n const values = useMemo(() => ({ ...proposed, ...edits }), [proposed, edits]);\n\n const edited = useMemo(\n () => Object.keys(edits).filter((name) => edits[name] !== proposed[name]),\n [edits, proposed],\n );\n\n const missing = fields.filter((field) => proposed[field.name] === undefined);\n const settled = !streaming && missing.length === 0;\n\n if (decision) {\n return (\n <section\n data-slot=\"approval-request\"\n data-state={decision.approved ? \"approved\" : \"denied\"}\n aria-labelledby={headingId}\n className={cn(\n \"rounded-lg border p-4 text-sm\",\n decision.approved ? \"border-border bg-muted/40\" : \"border-border bg-muted/40\",\n className,\n )}\n {...props}\n >\n <h3 id={headingId} className=\"text-sm font-medium\">\n {summary}\n </h3>\n <p data-slot=\"approval-outcome\" className=\"mt-1 text-xs text-muted-foreground\">\n {decision.approved\n ? `Approved ${decision.scope === \"always\" ? \"for every call to this tool\" : \"once\"}` +\n (decision.edited.length > 0\n ? `, with ${String(decision.edited.length)} argument${decision.edited.length === 1 ? \"\" : \"s\"} corrected`\n : \"\")\n : `Denied${decision.reason ? `: ${decision.reason}` : \"\"}`}\n </p>\n </section>\n );\n }\n\n return (\n <section\n data-slot=\"approval-request\"\n data-state={settled ? \"pending\" : \"forming\"}\n aria-labelledby={headingId}\n // Busy while the arguments are still arriving, so a reader is told the\n // request is not yet whole rather than acting on half of it.\n aria-busy={!settled}\n className={cn(\"rounded-lg border border-border bg-card p-4\", className)}\n {...props}\n >\n <div className=\"flex flex-wrap items-baseline justify-between gap-2\">\n <h3 id={headingId} className=\"text-sm font-medium\">\n {summary}\n </h3>\n <code className=\"rounded bg-muted px-1.5 py-0.5 font-mono text-2xs text-muted-foreground\">\n {tool}\n </code>\n </div>\n\n <dl className=\"mt-3 flex flex-col gap-2.5\">\n {fields.map((field) => {\n const arrived = proposed[field.name] !== undefined;\n const changed = edited.includes(field.name);\n\n return (\n <ApprovalArgument\n key={field.name}\n field={field}\n value={values[field.name] ?? \"\"}\n arrived={arrived}\n changed={changed}\n onChange={(next) => {\n setEdits((current) => ({ ...current, [field.name]: next }));\n }}\n />\n );\n })}\n </dl>\n\n {children}\n\n {irreversible ? (\n <p data-slot=\"approval-warning\" className=\"mt-3 text-xs text-destructive\">\n {irreversible}\n </p>\n ) : null}\n\n {denying ? (\n <div className=\"mt-3 flex flex-col gap-2\">\n <label htmlFor={`${headingId}-reason`} className=\"text-xs text-muted-foreground\">\n Why not? The model sees this.\n </label>\n <textarea\n id={`${headingId}-reason`}\n rows={2}\n value={reason}\n onChange={(event) => {\n setReason(event.target.value);\n }}\n className={cn(\n \"w-full resize-none rounded-md border border-input bg-background px-2 py-1.5 text-sm\",\n focusRing,\n )}\n />\n <div className=\"flex flex-wrap gap-2\">\n <Action\n variant=\"destructive\"\n onClick={() => {\n onDecision({ approved: false, reason: reason.trim() || undefined });\n }}\n >\n Deny\n </Action>\n <Action\n onClick={() => {\n setDenying(false);\n }}\n >\n Back\n </Action>\n </div>\n </div>\n ) : (\n <div className=\"mt-4 flex flex-wrap items-center gap-2\">\n <Action\n variant=\"primary\"\n disabled={!settled}\n onClick={() => {\n onDecision({ approved: true, scope: \"once\", arguments: values, edited });\n }}\n >\n {edited.length > 0 ? \"Approve with changes\" : \"Approve once\"}\n </Action>\n\n {/* Scope is a separate decision from approval, and blanket consent\n should never be the easiest button to reach. */}\n <Action\n disabled={!settled}\n onClick={() => {\n onDecision({ approved: true, scope: \"always\", arguments: values, edited });\n }}\n >\n Always allow {tool}\n </Action>\n\n <Action\n onClick={() => {\n setDenying(true);\n }}\n >\n Deny…\n </Action>\n\n {!settled ? (\n <span aria-live=\"polite\" className=\"text-xs text-muted-foreground\">\n Waiting for the model to finish the request\n </span>\n ) : null}\n </div>\n )}\n </section>\n );\n}\n\nfunction ApprovalArgument({\n field,\n value,\n arrived,\n changed,\n onChange,\n}: {\n field: ApprovalField;\n value: string;\n arrived: boolean;\n changed: boolean;\n onChange: (value: string) => void;\n}) {\n const id = useId();\n const changedId = useId();\n const editable = !field.readOnly && arrived;\n\n return (\n <div\n data-slot=\"approval-argument\"\n data-changed={changed || undefined}\n className=\"flex flex-col gap-1\"\n >\n <dt className=\"flex items-baseline gap-1\">\n <label htmlFor={editable ? id : undefined} className=\"text-xs text-muted-foreground\">\n {field.label}\n </label>\n {/* Outside the label, and attached as a description instead. Inside it,\n editing a field would rename the field — a screen reader user would\n hear its accessible name change under them mid-edit. Marked in text\n rather than by border colour alone, because an audit trail has to\n tell the model's proposal from the human's correction. */}\n {changed ? (\n <span id={changedId} className=\"text-xs text-warning\">\n · changed from the model&rsquo;s proposal\n </span>\n ) : null}\n </dt>\n <dd className=\"m-0\">\n {!arrived ? (\n <span\n aria-hidden=\"true\"\n className=\"block h-8 w-full animate-pulse-soft rounded-md bg-muted\"\n />\n ) : editable ? (\n field.multiline ? (\n <textarea\n id={id}\n aria-describedby={changed ? changedId : undefined}\n rows={3}\n value={value}\n onChange={(event) => {\n onChange(event.target.value);\n }}\n className={cn(\n \"w-full resize-none rounded-md border border-input bg-background px-2 py-1.5 font-mono text-xs\",\n changed && \"border-warning\",\n focusRing,\n )}\n />\n ) : (\n <input\n id={id}\n type=\"text\"\n aria-describedby={changed ? changedId : undefined}\n value={value}\n onChange={(event) => {\n onChange(event.target.value);\n }}\n className={cn(\n \"w-full rounded-md border border-input bg-background px-2 py-1.5 font-mono text-xs\",\n changed && \"border-warning\",\n focusRing,\n )}\n />\n )\n ) : (\n <p className=\"rounded-md bg-muted px-2 py-1.5 font-mono text-xs break-words\">\n {value}\n </p>\n )}\n </dd>\n </div>\n );\n}\n\nfunction Action({\n className,\n variant = \"default\",\n ...props\n}: ComponentPropsWithRef<\"button\"> & { variant?: \"default\" | \"primary\" | \"destructive\" }) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"rounded-md border px-2.5 py-1 text-xs font-medium transition-colors\",\n variant === \"primary\" &&\n \"border-primary bg-primary text-primary-foreground hover:bg-primary-hover\",\n variant === \"destructive\" &&\n \"border-destructive bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n variant === \"default\" &&\n \"border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n focusRing,\n disabledStyles,\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ai-approval-request.js","names":[],"sources":["../../../src/components/ai-approval-request/ai-approval-request.tsx"],"sourcesContent":["\"use client\";\n\n// Motion from SmoothUI AI Approval (MIT, © 2024 Eduardo Calvo). See THIRD_PARTY_NOTICES.md.\nimport {\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from \"react\";\n\nimport { disabledStyles, focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * The gate between an agent deciding to act and it acting.\n *\n * Two things separate this from the confirmations that already exist.\n *\n * The first is that the proposed arguments are editable. Every implementation\n * surveyed returns a boolean over a read-only payload, which forces a false\n * choice: approve a call whose recipient is wrong, or deny it and make the\n * model try again. \"Approve this, but fix the address first\" is the answer\n * people actually want, and it is only possible if the arguments are fields.\n * Edited values come back in the decision, and are marked as changed so an\n * audit trail can tell the model's proposal from the human's correction.\n *\n * The second is that it renders while the arguments are still arriving. The\n * common implementation returns null until the tool input is complete, which\n * means nothing is on screen at the moment approval becomes relevant and the\n * request appears abruptly, fully formed. Here the request is visible as it\n * forms, with the decision held until there is something whole to decide on.\n */\n\nexport type ApprovalScope = \"once\" | \"always\";\n\nexport type ApprovalDecision =\n | {\n approved: true;\n scope: ApprovalScope;\n arguments: Record<string, string>;\n edited: string[];\n }\n | { approved: false; reason?: string };\n\nexport interface ApprovalField {\n name: string;\n label: string;\n /** A textarea instead of a single line. For message bodies and prompts. */\n multiline?: boolean;\n /** Locked arguments are shown but not editable — an id, a resolved amount. */\n readOnly?: boolean;\n}\n\nexport interface ApprovalRequestProps extends Omit<\n ComponentPropsWithRef<\"section\">,\n \"onSubmit\" | \"children\"\n> {\n /** The tool the model wants to call, as it named it. */\n tool: string;\n /** What the call will do, in the reader's language rather than the API's. */\n summary: string;\n /** Proposed arguments. Missing keys are treated as still arriving. */\n arguments: Record<string, string>;\n /** Which arguments to show, in order, and which may be changed. */\n fields: ApprovalField[];\n onDecision: (decision: ApprovalDecision) => void;\n /**\n * True while the model is still producing the arguments. The request renders\n * anyway; only the decision waits.\n */\n streaming?: boolean;\n /**\n * Said plainly above the controls when the call cannot be taken back. Not a\n * severity colour — the sentence is the warning.\n */\n irreversible?: string;\n /** Set once decided, to render the outcome instead of the controls. */\n decision?: ApprovalDecision;\n children?: ReactNode;\n /**\n * Keep focus in the request as its controls swap: onto the outcome when a\n * decision lands, into the reason field when Deny… opens, and back to Deny…\n * from Back. Only acts when focus was already inside the request, so a\n * decision applied elsewhere (another tab, a replay) never steals focus.\n */\n manageFocus?: boolean;\n}\n\nconst PREFIX = \"dowel-ai-approval-request\";\n\n/* The outcome resolves in when a decision lands live (a replayed one does not\n * animate), and the deny panel rises in. */\nconst STYLES = `\n@keyframes ${PREFIX}-resolve{from{opacity:0;scale:.97}}\n@keyframes ${PREFIX}-reveal{from{opacity:0;translate:0 4px}}\n[data-slot=approval-request][data-resolved=live] [data-slot=approval-outcome]{animation:${PREFIX}-resolve calc(250ms * var(--motion-scale,1)) var(--ease-out-quint) both}\n[data-slot=approval-deny]{animation:${PREFIX}-reveal calc(200ms * var(--motion-scale,1)) var(--ease-out-quint) both}\n`;\n\ntype FocusTarget = \"outcome\" | \"reason\" | \"deny\";\n\nexport function ApprovalRequest({\n className,\n tool,\n summary,\n arguments: proposed,\n fields,\n onDecision,\n streaming = false,\n irreversible,\n decision,\n children,\n manageFocus = true,\n ref,\n ...props\n}: ApprovalRequestProps) {\n const headingId = useId();\n const [edits, setEdits] = useState<Record<string, string>>({});\n const [denying, setDenying] = useState(false);\n const [reason, setReason] = useState(\"\");\n\n // A decision present on first render is a replay: it neither animates nor\n // takes focus.\n const [initiallyDecided] = useState(decision !== undefined);\n const sectionRef = useRef<HTMLElement | null>(null);\n const outcomeRef = useRef<HTMLParagraphElement | null>(null);\n const reasonRef = useRef<HTMLTextAreaElement | null>(null);\n const denyRef = useRef<HTMLButtonElement | null>(null);\n // Where focus should go after the next swap. Set only by the reader's own\n // actions, and only while focus is inside the request.\n const focusTarget = useRef<FocusTarget | null>(null);\n\n function queueFocus(target: FocusTarget) {\n if (!manageFocus) return;\n const inside = sectionRef.current?.contains(document.activeElement) ?? false;\n focusTarget.current = inside ? target : null;\n }\n\n const decided = decision !== undefined;\n useLayoutEffect(() => {\n const target = focusTarget.current;\n if (!target) return;\n const element =\n target === \"outcome\"\n ? outcomeRef.current\n : target === \"reason\"\n ? reasonRef.current\n : denyRef.current;\n if (!element) return;\n focusTarget.current = null;\n // If the reader moved on while an async decision was pending, leave them be.\n const active = document.activeElement;\n const stillHere =\n !active || active === document.body || (sectionRef.current?.contains(active) ?? false);\n if (stillHere) element.focus();\n }, [decided, denying]);\n\n const setSectionRef = (node: HTMLElement | null) => {\n sectionRef.current = node;\n if (typeof ref === \"function\") return ref(node);\n if (ref) ref.current = node;\n };\n\n const sheet = (\n <style href={PREFIX} precedence=\"dowel\">\n {STYLES}\n </style>\n );\n\n // The model's proposal with the human's corrections applied on top. Keeping\n // them apart is what lets the component say which is which.\n const values = useMemo(() => ({ ...proposed, ...edits }), [proposed, edits]);\n\n const edited = useMemo(\n () => Object.keys(edits).filter((name) => edits[name] !== proposed[name]),\n [edits, proposed],\n );\n\n const missing = fields.filter((field) => proposed[field.name] === undefined);\n const settled = !streaming && missing.length === 0;\n\n if (decision) {\n return (\n <section\n ref={setSectionRef}\n data-slot=\"approval-request\"\n data-state={decision.approved ? \"approved\" : \"denied\"}\n data-resolved={initiallyDecided ? undefined : \"live\"}\n aria-labelledby={headingId}\n className={cn(\n \"rounded-lg border p-4 text-sm\",\n decision.approved ? \"border-border bg-muted/40\" : \"border-border bg-muted/40\",\n className,\n )}\n {...props}\n >\n {sheet}\n <h3 id={headingId} className=\"text-sm font-medium\">\n {summary}\n </h3>\n {/* tabIndex -1: a focus target for the person who just decided, so\n they hear the outcome, but never a Tab stop. */}\n <p\n ref={outcomeRef}\n tabIndex={-1}\n data-slot=\"approval-outcome\"\n className=\"mt-1 text-xs text-muted-foreground outline-none\"\n >\n {decision.approved\n ? `Approved ${decision.scope === \"always\" ? \"for every call to this tool\" : \"once\"}` +\n (decision.edited.length > 0\n ? `, with ${String(decision.edited.length)} argument${decision.edited.length === 1 ? \"\" : \"s\"} corrected`\n : \"\")\n : `Denied${decision.reason ? `: ${decision.reason}` : \"\"}`}\n </p>\n </section>\n );\n }\n\n return (\n <section\n ref={setSectionRef}\n data-slot=\"approval-request\"\n data-state={settled ? \"pending\" : \"forming\"}\n aria-labelledby={headingId}\n // Busy while the arguments are still arriving, so a reader is told the\n // request is not yet whole rather than acting on half of it.\n aria-busy={!settled}\n className={cn(\"rounded-lg border border-border bg-card p-4\", className)}\n {...props}\n >\n {sheet}\n <div className=\"flex flex-wrap items-baseline justify-between gap-2\">\n <h3 id={headingId} className=\"text-sm font-medium\">\n {summary}\n </h3>\n <code className=\"rounded bg-muted px-1.5 py-0.5 font-mono text-2xs text-muted-foreground\">\n {tool}\n </code>\n </div>\n\n <dl className=\"mt-3 flex flex-col gap-2.5\">\n {fields.map((field) => {\n const arrived = proposed[field.name] !== undefined;\n const changed = edited.includes(field.name);\n\n return (\n <ApprovalArgument\n key={field.name}\n field={field}\n value={values[field.name] ?? \"\"}\n arrived={arrived}\n changed={changed}\n onChange={(next) => {\n setEdits((current) => ({ ...current, [field.name]: next }));\n }}\n />\n );\n })}\n </dl>\n\n {children}\n\n {irreversible ? (\n <p data-slot=\"approval-warning\" className=\"mt-3 text-xs text-destructive\">\n {irreversible}\n </p>\n ) : null}\n\n {denying ? (\n <div data-slot=\"approval-deny\" className=\"mt-3 flex flex-col gap-2\">\n <label htmlFor={`${headingId}-reason`} className=\"text-xs text-muted-foreground\">\n Why not? The model sees this.\n </label>\n <textarea\n ref={reasonRef}\n id={`${headingId}-reason`}\n rows={2}\n value={reason}\n onChange={(event) => {\n setReason(event.target.value);\n }}\n className={cn(\n \"w-full resize-none rounded-md border border-input bg-background px-2 py-1.5 text-sm\",\n focusRing,\n )}\n />\n <div className=\"flex flex-wrap gap-2\">\n <Action\n variant=\"destructive\"\n onClick={() => {\n queueFocus(\"outcome\");\n onDecision({ approved: false, reason: reason.trim() || undefined });\n }}\n >\n Deny\n </Action>\n <Action\n onClick={() => {\n queueFocus(\"deny\");\n setDenying(false);\n }}\n >\n Back\n </Action>\n </div>\n </div>\n ) : (\n <div className=\"mt-4 flex flex-wrap items-center gap-2\">\n <Action\n variant=\"primary\"\n disabled={!settled}\n onClick={() => {\n queueFocus(\"outcome\");\n onDecision({ approved: true, scope: \"once\", arguments: values, edited });\n }}\n >\n {edited.length > 0 ? \"Approve with changes\" : \"Approve once\"}\n </Action>\n\n {/* Scope is a separate decision from approval, and blanket consent\n should never be the easiest button to reach. */}\n <Action\n disabled={!settled}\n onClick={() => {\n queueFocus(\"outcome\");\n onDecision({ approved: true, scope: \"always\", arguments: values, edited });\n }}\n >\n Always allow {tool}\n </Action>\n\n <Action\n ref={denyRef}\n onClick={() => {\n queueFocus(\"reason\");\n setDenying(true);\n }}\n >\n Deny…\n </Action>\n\n {!settled ? (\n <span aria-live=\"polite\" className=\"text-xs text-muted-foreground\">\n Waiting for the model to finish the request\n </span>\n ) : null}\n </div>\n )}\n </section>\n );\n}\n\nfunction ApprovalArgument({\n field,\n value,\n arrived,\n changed,\n onChange,\n}: {\n field: ApprovalField;\n value: string;\n arrived: boolean;\n changed: boolean;\n onChange: (value: string) => void;\n}) {\n const id = useId();\n const changedId = useId();\n const editable = !field.readOnly && arrived;\n\n return (\n <div\n data-slot=\"approval-argument\"\n data-changed={changed || undefined}\n className=\"flex flex-col gap-1\"\n >\n <dt className=\"flex items-baseline gap-1\">\n <label htmlFor={editable ? id : undefined} className=\"text-xs text-muted-foreground\">\n {field.label}\n </label>\n {/* Outside the label, and attached as a description instead. Inside it,\n editing a field would rename the field — a screen reader user would\n hear its accessible name change under them mid-edit. Marked in text\n rather than by border colour alone, because an audit trail has to\n tell the model's proposal from the human's correction. */}\n {changed ? (\n <span id={changedId} className=\"text-xs text-warning\">\n · changed from the model&rsquo;s proposal\n </span>\n ) : null}\n </dt>\n <dd className=\"m-0\">\n {!arrived ? (\n <span\n aria-hidden=\"true\"\n className=\"block h-8 w-full animate-pulse-soft rounded-md bg-muted\"\n />\n ) : editable ? (\n field.multiline ? (\n <textarea\n id={id}\n aria-describedby={changed ? changedId : undefined}\n rows={3}\n value={value}\n onChange={(event) => {\n onChange(event.target.value);\n }}\n className={cn(\n \"w-full resize-none rounded-md border border-input bg-background px-2 py-1.5 font-mono text-xs\",\n changed && \"border-warning\",\n focusRing,\n )}\n />\n ) : (\n <input\n id={id}\n type=\"text\"\n aria-describedby={changed ? changedId : undefined}\n value={value}\n onChange={(event) => {\n onChange(event.target.value);\n }}\n className={cn(\n \"w-full rounded-md border border-input bg-background px-2 py-1.5 font-mono text-xs\",\n changed && \"border-warning\",\n focusRing,\n )}\n />\n )\n ) : (\n <p className=\"rounded-md bg-muted px-2 py-1.5 font-mono text-xs break-words\">\n {value}\n </p>\n )}\n </dd>\n </div>\n );\n}\n\nfunction Action({\n className,\n variant = \"default\",\n ...props\n}: ComponentPropsWithRef<\"button\"> & { variant?: \"default\" | \"primary\" | \"destructive\" }) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"rounded-md border px-2.5 py-1 text-xs font-medium\",\n \"transition-[color,background-color,border-color,scale] duration-[var(--duration-fast)] ease-[var(--ease-out-quint)] active:scale-[0.99]\",\n variant === \"primary\" &&\n \"border-primary bg-primary text-primary-foreground hover:bg-primary-hover\",\n variant === \"destructive\" &&\n \"border-destructive bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n variant === \"default\" &&\n \"border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n focusRing,\n disabledStyles,\n className,\n )}\n {...props}\n />\n );\n}\n"],"mappings":"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"}