@dowel-ui/react 0.7.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 (1655) hide show
  1. package/README.md +3 -3
  2. package/dist/blocks/cta-banner/meta.js +18 -0
  3. package/dist/blocks/cta-banner/meta.js.map +1 -0
  4. package/dist/blocks/cta-centered/meta.js +18 -0
  5. package/dist/blocks/cta-centered/meta.js.map +1 -0
  6. package/dist/blocks/cta-split-image/meta.js +18 -0
  7. package/dist/blocks/cta-split-image/meta.js.map +1 -0
  8. package/dist/blocks/faq-accordion/meta.js +18 -0
  9. package/dist/blocks/faq-accordion/meta.js.map +1 -0
  10. package/dist/blocks/faq-categorized/meta.js +18 -0
  11. package/dist/blocks/faq-categorized/meta.js.map +1 -0
  12. package/dist/blocks/faq-searchable/meta.js +22 -0
  13. package/dist/blocks/faq-searchable/meta.js.map +1 -0
  14. package/dist/blocks/faq-tabbed-grid/meta.js +18 -0
  15. package/dist/blocks/faq-tabbed-grid/meta.js.map +1 -0
  16. package/dist/blocks/features-alternating/meta.js +18 -0
  17. package/dist/blocks/features-alternating/meta.js.map +1 -0
  18. package/dist/blocks/features-bento/meta.js +18 -0
  19. package/dist/blocks/features-bento/meta.js.map +1 -0
  20. package/dist/blocks/features-icon-grid/meta.js +18 -0
  21. package/dist/blocks/features-icon-grid/meta.js.map +1 -0
  22. package/dist/blocks/footer-mega/meta.js +22 -0
  23. package/dist/blocks/footer-mega/meta.js.map +1 -0
  24. package/dist/blocks/footer-minimal/meta.js +18 -0
  25. package/dist/blocks/footer-minimal/meta.js.map +1 -0
  26. package/dist/blocks/footer-newsletter/meta.js +22 -0
  27. package/dist/blocks/footer-newsletter/meta.js.map +1 -0
  28. package/dist/blocks/footer-simple/meta.js +18 -0
  29. package/dist/blocks/footer-simple/meta.js.map +1 -0
  30. package/dist/blocks/hero-grid/meta.js +18 -0
  31. package/dist/blocks/hero-grid/meta.js.map +1 -0
  32. package/dist/blocks/hero-minimal/meta.js +18 -0
  33. package/dist/blocks/hero-minimal/meta.js.map +1 -0
  34. package/dist/blocks/hero-perspective-grid/meta.js +18 -0
  35. package/dist/blocks/hero-perspective-grid/meta.js.map +1 -0
  36. package/dist/blocks/hero-product/meta.js +22 -0
  37. package/dist/blocks/hero-product/meta.js.map +1 -0
  38. package/dist/blocks/hero-split-image/meta.js +22 -0
  39. package/dist/blocks/hero-split-image/meta.js.map +1 -0
  40. package/dist/blocks/hero-spotlight/meta.js +18 -0
  41. package/dist/blocks/hero-spotlight/meta.js.map +1 -0
  42. package/dist/blocks/logo-cloud-simple/meta.js +18 -0
  43. package/dist/blocks/logo-cloud-simple/meta.js.map +1 -0
  44. package/dist/blocks/logo-grid-tooltips/meta.js +18 -0
  45. package/dist/blocks/logo-grid-tooltips/meta.js.map +1 -0
  46. package/dist/blocks/logo-links-marquee/meta.js +18 -0
  47. package/dist/blocks/logo-links-marquee/meta.js.map +1 -0
  48. package/dist/blocks/logo-marquee/meta.js +18 -0
  49. package/dist/blocks/logo-marquee/meta.js.map +1 -0
  50. package/dist/blocks/pricing-single-plan/meta.js +25 -0
  51. package/dist/blocks/pricing-single-plan/meta.js.map +1 -0
  52. package/dist/blocks/pricing-three-tier/meta.js +25 -0
  53. package/dist/blocks/pricing-three-tier/meta.js.map +1 -0
  54. package/dist/blocks/pricing-two-tier/meta.js +25 -0
  55. package/dist/blocks/pricing-two-tier/meta.js.map +1 -0
  56. package/dist/blocks/stats-grid/meta.js +18 -0
  57. package/dist/blocks/stats-grid/meta.js.map +1 -0
  58. package/dist/blocks/stats-trend-cards/meta.js +22 -0
  59. package/dist/blocks/stats-trend-cards/meta.js.map +1 -0
  60. package/dist/blocks/team-carousel/meta.js +22 -0
  61. package/dist/blocks/team-carousel/meta.js.map +1 -0
  62. package/dist/blocks/team-grid/meta.js +18 -0
  63. package/dist/blocks/team-grid/meta.js.map +1 -0
  64. package/dist/blocks/testimonial-rotator/meta.js +18 -0
  65. package/dist/blocks/testimonial-rotator/meta.js.map +1 -0
  66. package/dist/blocks/testimonial-spotlight/meta.js +22 -0
  67. package/dist/blocks/testimonial-spotlight/meta.js.map +1 -0
  68. package/dist/blocks/testimonial-star-grid/meta.js +18 -0
  69. package/dist/blocks/testimonial-star-grid/meta.js.map +1 -0
  70. package/dist/components/account-menu/account-menu.d.ts +56 -0
  71. package/dist/components/account-menu/account-menu.d.ts.map +1 -0
  72. package/dist/components/account-menu/account-menu.js +247 -0
  73. package/dist/components/account-menu/account-menu.js.map +1 -0
  74. package/dist/components/account-menu/index.d.ts +2 -0
  75. package/dist/components/account-menu/index.js +2 -0
  76. package/dist/components/account-menu/meta.js +24 -0
  77. package/dist/components/account-menu/meta.js.map +1 -0
  78. package/dist/components/action-node/action-node-spring.js +21 -0
  79. package/dist/components/action-node/action-node-spring.js.map +1 -0
  80. package/dist/components/action-node/action-node.d.ts +67 -0
  81. package/dist/components/action-node/action-node.d.ts.map +1 -0
  82. package/dist/components/action-node/action-node.js +374 -0
  83. package/dist/components/action-node/action-node.js.map +1 -0
  84. package/dist/components/action-node/index.d.ts +2 -0
  85. package/dist/components/action-node/index.js +2 -0
  86. package/dist/components/action-node/meta.js +17 -0
  87. package/dist/components/action-node/meta.js.map +1 -0
  88. package/dist/components/ai-agent-plan/ai-agent-plan.d.ts +13 -2
  89. package/dist/components/ai-agent-plan/ai-agent-plan.d.ts.map +1 -1
  90. package/dist/components/ai-agent-plan/ai-agent-plan.js +109 -42
  91. package/dist/components/ai-agent-plan/ai-agent-plan.js.map +1 -1
  92. package/dist/components/ai-agent-plan/index.d.ts +2 -2
  93. package/dist/components/ai-agent-plan/meta.js +1 -1
  94. package/dist/components/ai-agent-plan/meta.js.map +1 -1
  95. package/dist/components/ai-agent-status/ai-agent-status.d.ts +1 -1
  96. package/dist/components/ai-approval-request/ai-approval-request.d.ts +8 -1
  97. package/dist/components/ai-approval-request/ai-approval-request.d.ts.map +1 -1
  98. package/dist/components/ai-approval-request/ai-approval-request.js +67 -12
  99. package/dist/components/ai-approval-request/ai-approval-request.js.map +1 -1
  100. package/dist/components/ai-approval-request/meta.js +1 -1
  101. package/dist/components/ai-approval-request/meta.js.map +1 -1
  102. package/dist/components/ai-artifact/ai-artifact.d.ts +27 -0
  103. package/dist/components/ai-artifact/ai-artifact.d.ts.map +1 -0
  104. package/dist/components/ai-artifact/ai-artifact.js +142 -0
  105. package/dist/components/ai-artifact/ai-artifact.js.map +1 -0
  106. package/dist/components/ai-artifact/index.d.ts +2 -0
  107. package/dist/components/ai-artifact/index.js +2 -0
  108. package/dist/components/ai-artifact/meta.js +17 -0
  109. package/dist/components/ai-artifact/meta.js.map +1 -0
  110. package/dist/components/ai-branch/ai-branch.d.ts +32 -0
  111. package/dist/components/ai-branch/ai-branch.d.ts.map +1 -0
  112. package/dist/components/ai-branch/ai-branch.js +160 -0
  113. package/dist/components/ai-branch/ai-branch.js.map +1 -0
  114. package/dist/components/ai-branch/index.d.ts +2 -0
  115. package/dist/components/ai-branch/index.js +2 -0
  116. package/dist/components/ai-branch/meta.js +17 -0
  117. package/dist/components/ai-branch/meta.js.map +1 -0
  118. package/dist/components/ai-conversation/ai-conversation.d.ts +16 -4
  119. package/dist/components/ai-conversation/ai-conversation.d.ts.map +1 -1
  120. package/dist/components/ai-conversation/ai-conversation.js +78 -10
  121. package/dist/components/ai-conversation/ai-conversation.js.map +1 -1
  122. package/dist/components/ai-conversation/index.d.ts +2 -2
  123. package/dist/components/ai-loader/ai-loader.d.ts +22 -0
  124. package/dist/components/ai-loader/ai-loader.d.ts.map +1 -0
  125. package/dist/components/ai-loader/ai-loader.js +78 -0
  126. package/dist/components/ai-loader/ai-loader.js.map +1 -0
  127. package/dist/components/ai-loader/index.d.ts +2 -0
  128. package/dist/components/ai-loader/index.js +2 -0
  129. package/dist/components/ai-loader/meta.js +21 -0
  130. package/dist/components/ai-loader/meta.js.map +1 -0
  131. package/dist/components/ai-message/ai-message.d.ts +13 -2
  132. package/dist/components/ai-message/ai-message.d.ts.map +1 -1
  133. package/dist/components/ai-message/ai-message.js +29 -5
  134. package/dist/components/ai-message/ai-message.js.map +1 -1
  135. package/dist/components/ai-message/index.d.ts +2 -2
  136. package/dist/components/ai-message/index.js +2 -2
  137. package/dist/components/ai-message/meta.js +1 -1
  138. package/dist/components/ai-message/meta.js.map +1 -1
  139. package/dist/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -1
  140. package/dist/components/ai-prompt-input/ai-prompt-input.js +45 -26
  141. package/dist/components/ai-prompt-input/ai-prompt-input.js.map +1 -1
  142. package/dist/components/ai-reasoning/ai-reasoning.d.ts +39 -11
  143. package/dist/components/ai-reasoning/ai-reasoning.d.ts.map +1 -1
  144. package/dist/components/ai-reasoning/ai-reasoning.js +113 -9
  145. package/dist/components/ai-reasoning/ai-reasoning.js.map +1 -1
  146. package/dist/components/ai-reasoning/index.d.ts +2 -2
  147. package/dist/components/ai-reasoning/index.js +2 -2
  148. package/dist/components/ai-reasoning/meta.js +2 -2
  149. package/dist/components/ai-reasoning/meta.js.map +1 -1
  150. package/dist/components/ai-response/ai-response.d.ts +4 -0
  151. package/dist/components/ai-response/ai-response.d.ts.map +1 -1
  152. package/dist/components/ai-response/ai-response.js +5 -1
  153. package/dist/components/ai-response/ai-response.js.map +1 -1
  154. package/dist/components/ai-response/index.d.ts +2 -1
  155. package/dist/components/ai-response/index.js +2 -1
  156. package/dist/components/ai-response/meta.js +3 -3
  157. package/dist/components/ai-response/meta.js.map +1 -1
  158. package/dist/components/ai-response/response-text.d.ts +42 -0
  159. package/dist/components/ai-response/response-text.d.ts.map +1 -0
  160. package/dist/components/ai-response/response-text.js +63 -0
  161. package/dist/components/ai-response/response-text.js.map +1 -0
  162. package/dist/components/ai-sources/ai-sources.d.ts +31 -5
  163. package/dist/components/ai-sources/ai-sources.d.ts.map +1 -1
  164. package/dist/components/ai-sources/ai-sources.js +188 -47
  165. package/dist/components/ai-sources/ai-sources.js.map +1 -1
  166. package/dist/components/ai-sources/index.d.ts +2 -2
  167. package/dist/components/ai-sources/index.js +2 -2
  168. package/dist/components/ai-sources/meta.js +2 -2
  169. package/dist/components/ai-sources/meta.js.map +1 -1
  170. package/dist/components/ai-suggestions/ai-suggestions.d.ts +24 -0
  171. package/dist/components/ai-suggestions/ai-suggestions.d.ts.map +1 -0
  172. package/dist/components/ai-suggestions/ai-suggestions.js +68 -0
  173. package/dist/components/ai-suggestions/ai-suggestions.js.map +1 -0
  174. package/dist/components/ai-suggestions/index.d.ts +2 -0
  175. package/dist/components/ai-suggestions/index.js +2 -0
  176. package/dist/components/ai-suggestions/meta.js +17 -0
  177. package/dist/components/ai-suggestions/meta.js.map +1 -0
  178. package/dist/components/ai-token-usage/ai-token-usage.d.ts +40 -3
  179. package/dist/components/ai-token-usage/ai-token-usage.d.ts.map +1 -1
  180. package/dist/components/ai-token-usage/ai-token-usage.js +201 -24
  181. package/dist/components/ai-token-usage/ai-token-usage.js.map +1 -1
  182. package/dist/components/ai-token-usage/index.d.ts +2 -2
  183. package/dist/components/ai-token-usage/index.js +2 -2
  184. package/dist/components/ai-token-usage/meta.js +2 -2
  185. package/dist/components/ai-token-usage/meta.js.map +1 -1
  186. package/dist/components/ai-tool/ai-tool.d.ts +12 -1
  187. package/dist/components/ai-tool/ai-tool.d.ts.map +1 -1
  188. package/dist/components/ai-tool/ai-tool.js +82 -5
  189. package/dist/components/ai-tool/ai-tool.js.map +1 -1
  190. package/dist/components/ai-tool/meta.js +1 -1
  191. package/dist/components/ai-tool/meta.js.map +1 -1
  192. package/dist/components/alert/alert.d.ts +1 -1
  193. package/dist/components/animated-checklist/animated-checklist.d.ts +40 -0
  194. package/dist/components/animated-checklist/animated-checklist.d.ts.map +1 -0
  195. package/dist/components/animated-checklist/animated-checklist.js +198 -0
  196. package/dist/components/animated-checklist/animated-checklist.js.map +1 -0
  197. package/dist/components/animated-checklist/index.d.ts +2 -0
  198. package/dist/components/animated-checklist/index.js +2 -0
  199. package/dist/components/animated-checklist/meta.js +17 -0
  200. package/dist/components/animated-checklist/meta.js.map +1 -0
  201. package/dist/components/app-stack/app-stack.d.ts +40 -0
  202. package/dist/components/app-stack/app-stack.d.ts.map +1 -0
  203. package/dist/components/app-stack/app-stack.js +260 -0
  204. package/dist/components/app-stack/app-stack.js.map +1 -0
  205. package/dist/components/app-stack/index.d.ts +2 -0
  206. package/dist/components/app-stack/index.js +2 -0
  207. package/dist/components/app-stack/meta.js +17 -0
  208. package/dist/components/app-stack/meta.js.map +1 -0
  209. package/dist/components/aspect-morph/aspect-morph.d.ts +50 -0
  210. package/dist/components/aspect-morph/aspect-morph.d.ts.map +1 -0
  211. package/dist/components/aspect-morph/aspect-morph.js +171 -0
  212. package/dist/components/aspect-morph/aspect-morph.js.map +1 -0
  213. package/dist/components/aspect-morph/index.d.ts +2 -0
  214. package/dist/components/aspect-morph/index.js +2 -0
  215. package/dist/components/aspect-morph/meta.js +17 -0
  216. package/dist/components/aspect-morph/meta.js.map +1 -0
  217. package/dist/components/assignee-picker/assignee-picker-spring.js +21 -0
  218. package/dist/components/assignee-picker/assignee-picker-spring.js.map +1 -0
  219. package/dist/components/assignee-picker/assignee-picker.d.ts +47 -0
  220. package/dist/components/assignee-picker/assignee-picker.d.ts.map +1 -0
  221. package/dist/components/assignee-picker/assignee-picker.js +370 -0
  222. package/dist/components/assignee-picker/assignee-picker.js.map +1 -0
  223. package/dist/components/assignee-picker/index.d.ts +2 -0
  224. package/dist/components/assignee-picker/index.js +2 -0
  225. package/dist/components/assignee-picker/meta.js +17 -0
  226. package/dist/components/assignee-picker/meta.js.map +1 -0
  227. package/dist/components/avatar/avatar.d.ts +1 -1
  228. package/dist/components/avatar-group/avatar-group.d.ts +41 -0
  229. package/dist/components/avatar-group/avatar-group.d.ts.map +1 -0
  230. package/dist/components/avatar-group/avatar-group.js +103 -0
  231. package/dist/components/avatar-group/avatar-group.js.map +1 -0
  232. package/dist/components/avatar-group/index.d.ts +2 -0
  233. package/dist/components/avatar-group/index.js +2 -0
  234. package/dist/components/avatar-group/meta.js +17 -0
  235. package/dist/components/avatar-group/meta.js.map +1 -0
  236. package/dist/components/badge/badge.d.ts +1 -1
  237. package/dist/components/bar-loader/bar-loader.d.ts +170 -0
  238. package/dist/components/bar-loader/bar-loader.d.ts.map +1 -0
  239. package/dist/components/bar-loader/bar-loader.js +469 -0
  240. package/dist/components/bar-loader/bar-loader.js.map +1 -0
  241. package/dist/components/bar-loader/index.d.ts +2 -0
  242. package/dist/components/bar-loader/index.js +2 -0
  243. package/dist/components/bar-loader/meta.js +17 -0
  244. package/dist/components/bar-loader/meta.js.map +1 -0
  245. package/dist/components/book/book.d.ts +35 -0
  246. package/dist/components/book/book.d.ts.map +1 -0
  247. package/dist/components/book/book.js +183 -0
  248. package/dist/components/book/book.js.map +1 -0
  249. package/dist/components/book/index.d.ts +2 -0
  250. package/dist/components/book/index.js +2 -0
  251. package/dist/components/book/meta.js +17 -0
  252. package/dist/components/book/meta.js.map +1 -0
  253. package/dist/components/breadcrumb/breadcrumb.d.ts +10 -2
  254. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  255. package/dist/components/breadcrumb/breadcrumb.js +21 -4
  256. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  257. package/dist/components/breadcrumb/index.d.ts +2 -2
  258. package/dist/components/breadcrumb/meta.js +1 -1
  259. package/dist/components/breadcrumb/meta.js.map +1 -1
  260. package/dist/components/browser-tabs/browser-tabs-spring.js +21 -0
  261. package/dist/components/browser-tabs/browser-tabs-spring.js.map +1 -0
  262. package/dist/components/browser-tabs/browser-tabs.d.ts +62 -0
  263. package/dist/components/browser-tabs/browser-tabs.d.ts.map +1 -0
  264. package/dist/components/browser-tabs/browser-tabs.js +418 -0
  265. package/dist/components/browser-tabs/browser-tabs.js.map +1 -0
  266. package/dist/components/browser-tabs/index.d.ts +2 -0
  267. package/dist/components/browser-tabs/index.js +2 -0
  268. package/dist/components/browser-tabs/meta.js +17 -0
  269. package/dist/components/browser-tabs/meta.js.map +1 -0
  270. package/dist/components/button/button.d.ts +4 -2
  271. package/dist/components/button/button.d.ts.map +1 -1
  272. package/dist/components/button/button.js +48 -5
  273. package/dist/components/button/button.js.map +1 -1
  274. package/dist/components/canvas-toolbar/canvas-toolbar.d.ts +62 -0
  275. package/dist/components/canvas-toolbar/canvas-toolbar.d.ts.map +1 -0
  276. package/dist/components/canvas-toolbar/canvas-toolbar.js +256 -0
  277. package/dist/components/canvas-toolbar/canvas-toolbar.js.map +1 -0
  278. package/dist/components/canvas-toolbar/index.d.ts +2 -0
  279. package/dist/components/canvas-toolbar/index.js +2 -0
  280. package/dist/components/canvas-toolbar/meta.js +17 -0
  281. package/dist/components/canvas-toolbar/meta.js.map +1 -0
  282. package/dist/components/card-spread/card-spread-layouts.d.ts +46 -0
  283. package/dist/components/card-spread/card-spread-layouts.d.ts.map +1 -0
  284. package/dist/components/card-spread/card-spread-layouts.js +235 -0
  285. package/dist/components/card-spread/card-spread-layouts.js.map +1 -0
  286. package/dist/components/card-spread/card-spread.d.ts +52 -0
  287. package/dist/components/card-spread/card-spread.d.ts.map +1 -0
  288. package/dist/components/card-spread/card-spread.js +224 -0
  289. package/dist/components/card-spread/card-spread.js.map +1 -0
  290. package/dist/components/card-spread/index.d.ts +3 -0
  291. package/dist/components/card-spread/index.js +3 -0
  292. package/dist/components/card-spread/meta.js +17 -0
  293. package/dist/components/card-spread/meta.js.map +1 -0
  294. package/dist/components/card-stack/card-stack-layout.js +98 -0
  295. package/dist/components/card-stack/card-stack-layout.js.map +1 -0
  296. package/dist/components/card-stack/card-stack.d.ts +29 -0
  297. package/dist/components/card-stack/card-stack.d.ts.map +1 -0
  298. package/dist/components/card-stack/card-stack.js +229 -0
  299. package/dist/components/card-stack/card-stack.js.map +1 -0
  300. package/dist/components/card-stack/index.d.ts +2 -0
  301. package/dist/components/card-stack/index.js +2 -0
  302. package/dist/components/card-stack/meta.js +17 -0
  303. package/dist/components/card-stack/meta.js.map +1 -0
  304. package/dist/components/carousel-3d/carousel-3d.d.ts +43 -0
  305. package/dist/components/carousel-3d/carousel-3d.d.ts.map +1 -0
  306. package/dist/components/carousel-3d/carousel-3d.js +336 -0
  307. package/dist/components/carousel-3d/carousel-3d.js.map +1 -0
  308. package/dist/components/carousel-3d/index.d.ts +2 -0
  309. package/dist/components/carousel-3d/index.js +2 -0
  310. package/dist/components/carousel-3d/meta.js +17 -0
  311. package/dist/components/carousel-3d/meta.js.map +1 -0
  312. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  313. package/dist/components/checkbox/checkbox.js +18 -0
  314. package/dist/components/checkbox/checkbox.js.map +1 -1
  315. package/dist/components/code-block/code-block.d.ts +1 -17
  316. package/dist/components/code-block/code-block.d.ts.map +1 -1
  317. package/dist/components/code-block/code-block.js +9 -79
  318. package/dist/components/code-block/code-block.js.map +1 -1
  319. package/dist/components/code-block/index.d.ts +3 -1
  320. package/dist/components/code-block/index.js +2 -1
  321. package/dist/components/code-block/meta.js +1 -1
  322. package/dist/components/code-block/meta.js.map +1 -1
  323. package/dist/components/combobox/combobox.d.ts +28 -4
  324. package/dist/components/combobox/combobox.d.ts.map +1 -1
  325. package/dist/components/combobox/combobox.js +160 -65
  326. package/dist/components/combobox/combobox.js.map +1 -1
  327. package/dist/components/combobox/index.d.ts +2 -2
  328. package/dist/components/combobox/index.js +2 -2
  329. package/dist/components/combobox/meta.js +1 -1
  330. package/dist/components/combobox/meta.js.map +1 -1
  331. package/dist/components/command-bar/command-bar.d.ts +37 -0
  332. package/dist/components/command-bar/command-bar.d.ts.map +1 -0
  333. package/dist/components/command-bar/command-bar.js +91 -0
  334. package/dist/components/command-bar/command-bar.js.map +1 -0
  335. package/dist/components/command-bar/index.d.ts +2 -0
  336. package/dist/components/command-bar/index.js +2 -0
  337. package/dist/components/command-bar/meta.js +17 -0
  338. package/dist/components/command-bar/meta.js.map +1 -0
  339. package/dist/components/comment-bubble/comment-bubble.d.ts +32 -0
  340. package/dist/components/comment-bubble/comment-bubble.d.ts.map +1 -0
  341. package/dist/components/comment-bubble/comment-bubble.js +174 -0
  342. package/dist/components/comment-bubble/comment-bubble.js.map +1 -0
  343. package/dist/components/comment-bubble/index.d.ts +2 -0
  344. package/dist/components/comment-bubble/index.js +2 -0
  345. package/dist/components/comment-bubble/meta.js +17 -0
  346. package/dist/components/comment-bubble/meta.js.map +1 -0
  347. package/dist/components/context-menu/context-menu.d.ts +49 -0
  348. package/dist/components/context-menu/context-menu.d.ts.map +1 -0
  349. package/dist/components/context-menu/context-menu.js +151 -0
  350. package/dist/components/context-menu/context-menu.js.map +1 -0
  351. package/dist/components/context-menu/index.d.ts +2 -0
  352. package/dist/components/context-menu/index.js +2 -0
  353. package/dist/components/context-menu/meta.js +17 -0
  354. package/dist/components/context-menu/meta.js.map +1 -0
  355. package/dist/components/contribution-graph/contribution-graph.d.ts +37 -0
  356. package/dist/components/contribution-graph/contribution-graph.d.ts.map +1 -0
  357. package/dist/components/contribution-graph/contribution-graph.js +298 -0
  358. package/dist/components/contribution-graph/contribution-graph.js.map +1 -0
  359. package/dist/components/contribution-graph/index.d.ts +2 -0
  360. package/dist/components/contribution-graph/index.js +2 -0
  361. package/dist/components/contribution-graph/meta.js +17 -0
  362. package/dist/components/contribution-graph/meta.js.map +1 -0
  363. package/dist/components/copy-button/copy-button.d.ts +81 -0
  364. package/dist/components/copy-button/copy-button.d.ts.map +1 -0
  365. package/dist/components/copy-button/copy-button.js +146 -0
  366. package/dist/components/copy-button/copy-button.js.map +1 -0
  367. package/dist/components/copy-button/index.d.ts +2 -0
  368. package/dist/components/copy-button/index.js +2 -0
  369. package/dist/components/copy-button/meta.js +17 -0
  370. package/dist/components/copy-button/meta.js.map +1 -0
  371. package/dist/components/create-menu/create-menu.d.ts +42 -0
  372. package/dist/components/create-menu/create-menu.d.ts.map +1 -0
  373. package/dist/components/create-menu/create-menu.js +197 -0
  374. package/dist/components/create-menu/create-menu.js.map +1 -0
  375. package/dist/components/create-menu/index.d.ts +2 -0
  376. package/dist/components/create-menu/index.js +2 -0
  377. package/dist/components/create-menu/meta.js +17 -0
  378. package/dist/components/create-menu/meta.js.map +1 -0
  379. package/dist/components/cursor-follow/cursor-follow.d.ts +17 -0
  380. package/dist/components/cursor-follow/cursor-follow.d.ts.map +1 -0
  381. package/dist/components/cursor-follow/cursor-follow.js +116 -0
  382. package/dist/components/cursor-follow/cursor-follow.js.map +1 -0
  383. package/dist/components/cursor-follow/index.d.ts +2 -0
  384. package/dist/components/cursor-follow/index.js +2 -0
  385. package/dist/components/cursor-follow/meta.js +17 -0
  386. package/dist/components/cursor-follow/meta.js.map +1 -0
  387. package/dist/components/dial/dial.d.ts +32 -0
  388. package/dist/components/dial/dial.d.ts.map +1 -0
  389. package/dist/components/dial/dial.js +195 -0
  390. package/dist/components/dial/dial.js.map +1 -0
  391. package/dist/components/dial/index.d.ts +2 -0
  392. package/dist/components/dial/index.js +2 -0
  393. package/dist/components/dial/meta.js +17 -0
  394. package/dist/components/dial/meta.js.map +1 -0
  395. package/dist/components/dialog/dialog.d.ts +8 -1
  396. package/dist/components/dialog/dialog.d.ts.map +1 -1
  397. package/dist/components/dialog/dialog.js +22 -5
  398. package/dist/components/dialog/dialog.js.map +1 -1
  399. package/dist/components/dialog/meta.js +1 -1
  400. package/dist/components/dialog/meta.js.map +1 -1
  401. package/dist/components/diff-viewer/diff-viewer.d.ts +12 -1
  402. package/dist/components/diff-viewer/diff-viewer.d.ts.map +1 -1
  403. package/dist/components/diff-viewer/diff-viewer.js +98 -26
  404. package/dist/components/diff-viewer/diff-viewer.js.map +1 -1
  405. package/dist/components/diff-viewer/meta.js +1 -1
  406. package/dist/components/diff-viewer/meta.js.map +1 -1
  407. package/dist/components/dither-area/dither-area.d.ts +46 -0
  408. package/dist/components/dither-area/dither-area.d.ts.map +1 -0
  409. package/dist/components/dither-area/dither-area.js +186 -0
  410. package/dist/components/dither-area/dither-area.js.map +1 -0
  411. package/dist/components/dither-area/index.d.ts +2 -0
  412. package/dist/components/dither-area/index.js +2 -0
  413. package/dist/components/dither-area/meta.js +17 -0
  414. package/dist/components/dither-area/meta.js.map +1 -0
  415. package/dist/components/dither-bar/dither-bar.d.ts +47 -0
  416. package/dist/components/dither-bar/dither-bar.d.ts.map +1 -0
  417. package/dist/components/dither-bar/dither-bar.js +261 -0
  418. package/dist/components/dither-bar/dither-bar.js.map +1 -0
  419. package/dist/components/dither-bar/index.d.ts +2 -0
  420. package/dist/components/dither-bar/index.js +2 -0
  421. package/dist/components/dither-bar/meta.js +17 -0
  422. package/dist/components/dither-bar/meta.js.map +1 -0
  423. package/dist/components/dither-canvas/dither-canvas.d.ts +76 -0
  424. package/dist/components/dither-canvas/dither-canvas.d.ts.map +1 -0
  425. package/dist/components/dither-canvas/dither-canvas.js +236 -0
  426. package/dist/components/dither-canvas/dither-canvas.js.map +1 -0
  427. package/dist/components/dither-canvas/dither-engine.d.ts +132 -0
  428. package/dist/components/dither-canvas/dither-engine.d.ts.map +1 -0
  429. package/dist/components/dither-canvas/dither-engine.js +243 -0
  430. package/dist/components/dither-canvas/dither-engine.js.map +1 -0
  431. package/dist/components/dither-canvas/dither-geometry.d.ts +73 -0
  432. package/dist/components/dither-canvas/dither-geometry.d.ts.map +1 -0
  433. package/dist/components/dither-canvas/dither-geometry.js +205 -0
  434. package/dist/components/dither-canvas/dither-geometry.js.map +1 -0
  435. package/dist/components/dither-canvas/dither-scrubber.d.ts +64 -0
  436. package/dist/components/dither-canvas/dither-scrubber.d.ts.map +1 -0
  437. package/dist/components/dither-canvas/dither-scrubber.js +130 -0
  438. package/dist/components/dither-canvas/dither-scrubber.js.map +1 -0
  439. package/dist/components/dither-canvas/index.d.ts +5 -0
  440. package/dist/components/dither-canvas/index.js +5 -0
  441. package/dist/components/dither-canvas/meta.js +22 -0
  442. package/dist/components/dither-canvas/meta.js.map +1 -0
  443. package/dist/components/dither-donut/dither-donut.d.ts +46 -0
  444. package/dist/components/dither-donut/dither-donut.d.ts.map +1 -0
  445. package/dist/components/dither-donut/dither-donut.js +241 -0
  446. package/dist/components/dither-donut/dither-donut.js.map +1 -0
  447. package/dist/components/dither-donut/index.d.ts +2 -0
  448. package/dist/components/dither-donut/index.js +2 -0
  449. package/dist/components/dither-donut/meta.js +17 -0
  450. package/dist/components/dither-donut/meta.js.map +1 -0
  451. package/dist/components/dither-funnel/dither-funnel.d.ts +53 -0
  452. package/dist/components/dither-funnel/dither-funnel.d.ts.map +1 -0
  453. package/dist/components/dither-funnel/dither-funnel.js +176 -0
  454. package/dist/components/dither-funnel/dither-funnel.js.map +1 -0
  455. package/dist/components/dither-funnel/index.d.ts +2 -0
  456. package/dist/components/dither-funnel/index.js +2 -0
  457. package/dist/components/dither-funnel/meta.js +17 -0
  458. package/dist/components/dither-funnel/meta.js.map +1 -0
  459. package/dist/components/dither-gauge/dither-gauge.d.ts +48 -0
  460. package/dist/components/dither-gauge/dither-gauge.d.ts.map +1 -0
  461. package/dist/components/dither-gauge/dither-gauge.js +189 -0
  462. package/dist/components/dither-gauge/dither-gauge.js.map +1 -0
  463. package/dist/components/dither-gauge/index.d.ts +2 -0
  464. package/dist/components/dither-gauge/index.js +2 -0
  465. package/dist/components/dither-gauge/meta.js +17 -0
  466. package/dist/components/dither-gauge/meta.js.map +1 -0
  467. package/dist/components/dither-heatmap/dither-heatmap.d.ts +63 -0
  468. package/dist/components/dither-heatmap/dither-heatmap.d.ts.map +1 -0
  469. package/dist/components/dither-heatmap/dither-heatmap.js +298 -0
  470. package/dist/components/dither-heatmap/dither-heatmap.js.map +1 -0
  471. package/dist/components/dither-heatmap/index.d.ts +2 -0
  472. package/dist/components/dither-heatmap/index.js +2 -0
  473. package/dist/components/dither-heatmap/meta.js +17 -0
  474. package/dist/components/dither-heatmap/meta.js.map +1 -0
  475. package/dist/components/dither-line/dither-line.d.ts +41 -0
  476. package/dist/components/dither-line/dither-line.d.ts.map +1 -0
  477. package/dist/components/dither-line/dither-line.js +164 -0
  478. package/dist/components/dither-line/dither-line.js.map +1 -0
  479. package/dist/components/dither-line/index.d.ts +2 -0
  480. package/dist/components/dither-line/index.js +2 -0
  481. package/dist/components/dither-line/meta.js +17 -0
  482. package/dist/components/dither-line/meta.js.map +1 -0
  483. package/dist/components/dither-meter/dither-meter.d.ts +51 -0
  484. package/dist/components/dither-meter/dither-meter.d.ts.map +1 -0
  485. package/dist/components/dither-meter/dither-meter.js +211 -0
  486. package/dist/components/dither-meter/dither-meter.js.map +1 -0
  487. package/dist/components/dither-meter/index.d.ts +2 -0
  488. package/dist/components/dither-meter/index.js +2 -0
  489. package/dist/components/dither-meter/meta.js +17 -0
  490. package/dist/components/dither-meter/meta.js.map +1 -0
  491. package/dist/components/dither-scatter/dither-scatter.d.ts +53 -0
  492. package/dist/components/dither-scatter/dither-scatter.d.ts.map +1 -0
  493. package/dist/components/dither-scatter/dither-scatter.js +211 -0
  494. package/dist/components/dither-scatter/dither-scatter.js.map +1 -0
  495. package/dist/components/dither-scatter/index.d.ts +2 -0
  496. package/dist/components/dither-scatter/index.js +2 -0
  497. package/dist/components/dither-scatter/meta.js +17 -0
  498. package/dist/components/dither-scatter/meta.js.map +1 -0
  499. package/dist/components/dot-morph-button/dot-morph-button.d.ts +18 -0
  500. package/dist/components/dot-morph-button/dot-morph-button.d.ts.map +1 -0
  501. package/dist/components/dot-morph-button/dot-morph-button.js +43 -0
  502. package/dist/components/dot-morph-button/dot-morph-button.js.map +1 -0
  503. package/dist/components/dot-morph-button/index.d.ts +2 -0
  504. package/dist/components/dot-morph-button/index.js +2 -0
  505. package/dist/components/dot-morph-button/meta.js +17 -0
  506. package/dist/components/dot-morph-button/meta.js.map +1 -0
  507. package/dist/components/dots-loader/dots-loader.d.ts +186 -0
  508. package/dist/components/dots-loader/dots-loader.d.ts.map +1 -0
  509. package/dist/components/dots-loader/dots-loader.js +412 -0
  510. package/dist/components/dots-loader/dots-loader.js.map +1 -0
  511. package/dist/components/dots-loader/index.d.ts +2 -0
  512. package/dist/components/dots-loader/index.js +2 -0
  513. package/dist/components/dots-loader/meta.js +17 -0
  514. package/dist/components/dots-loader/meta.js.map +1 -0
  515. package/dist/components/drag-stepper/drag-stepper.d.ts +39 -0
  516. package/dist/components/drag-stepper/drag-stepper.d.ts.map +1 -0
  517. package/dist/components/drag-stepper/drag-stepper.js +232 -0
  518. package/dist/components/drag-stepper/drag-stepper.js.map +1 -0
  519. package/dist/components/drag-stepper/index.d.ts +2 -0
  520. package/dist/components/drag-stepper/index.js +2 -0
  521. package/dist/components/drag-stepper/meta.js +17 -0
  522. package/dist/components/drag-stepper/meta.js.map +1 -0
  523. package/dist/components/drawer/drawer.d.ts +9 -1
  524. package/dist/components/drawer/drawer.d.ts.map +1 -1
  525. package/dist/components/drawer/drawer.js +23 -4
  526. package/dist/components/drawer/drawer.js.map +1 -1
  527. package/dist/components/drawer/meta.js +1 -1
  528. package/dist/components/drawer/meta.js.map +1 -1
  529. package/dist/components/dropdown-menu/dropdown-menu.d.ts +5 -0
  530. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  531. package/dist/components/dropdown-menu/dropdown-menu.js +25 -5
  532. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  533. package/dist/components/dropdown-menu/meta.js +1 -1
  534. package/dist/components/dropdown-menu/meta.js.map +1 -1
  535. package/dist/components/effect-button/effect-button.d.ts +28 -0
  536. package/dist/components/effect-button/effect-button.d.ts.map +1 -0
  537. package/dist/components/effect-button/effect-button.js +176 -0
  538. package/dist/components/effect-button/effect-button.js.map +1 -0
  539. package/dist/components/effect-button/index.d.ts +2 -0
  540. package/dist/components/effect-button/index.js +2 -0
  541. package/dist/components/effect-button/meta.js +17 -0
  542. package/dist/components/effect-button/meta.js.map +1 -0
  543. package/dist/components/escape-button/escape-button.d.ts +25 -0
  544. package/dist/components/escape-button/escape-button.d.ts.map +1 -0
  545. package/dist/components/escape-button/escape-button.js +154 -0
  546. package/dist/components/escape-button/escape-button.js.map +1 -0
  547. package/dist/components/escape-button/index.d.ts +2 -0
  548. package/dist/components/escape-button/index.js +2 -0
  549. package/dist/components/escape-button/meta.js +17 -0
  550. package/dist/components/escape-button/meta.js.map +1 -0
  551. package/dist/components/expandable-cards/expandable-cards.d.ts +42 -0
  552. package/dist/components/expandable-cards/expandable-cards.d.ts.map +1 -0
  553. package/dist/components/expandable-cards/expandable-cards.js +312 -0
  554. package/dist/components/expandable-cards/expandable-cards.js.map +1 -0
  555. package/dist/components/expandable-cards/index.d.ts +2 -0
  556. package/dist/components/expandable-cards/index.js +2 -0
  557. package/dist/components/expandable-cards/meta.js +17 -0
  558. package/dist/components/expandable-cards/meta.js.map +1 -0
  559. package/dist/components/expandable-list/expandable-list.d.ts +35 -0
  560. package/dist/components/expandable-list/expandable-list.d.ts.map +1 -0
  561. package/dist/components/expandable-list/expandable-list.js +180 -0
  562. package/dist/components/expandable-list/expandable-list.js.map +1 -0
  563. package/dist/components/expandable-list/index.d.ts +2 -0
  564. package/dist/components/expandable-list/index.js +2 -0
  565. package/dist/components/expandable-list/meta.js +21 -0
  566. package/dist/components/expandable-list/meta.js.map +1 -0
  567. package/dist/components/expanding-search/expanding-search.d.ts +30 -0
  568. package/dist/components/expanding-search/expanding-search.d.ts.map +1 -0
  569. package/dist/components/expanding-search/expanding-search.js +141 -0
  570. package/dist/components/expanding-search/expanding-search.js.map +1 -0
  571. package/dist/components/expanding-search/index.d.ts +2 -0
  572. package/dist/components/expanding-search/index.js +2 -0
  573. package/dist/components/expanding-search/meta.js +17 -0
  574. package/dist/components/expanding-search/meta.js.map +1 -0
  575. package/dist/components/exposure-slider/exposure-slider.d.ts +33 -0
  576. package/dist/components/exposure-slider/exposure-slider.d.ts.map +1 -0
  577. package/dist/components/exposure-slider/exposure-slider.js +227 -0
  578. package/dist/components/exposure-slider/exposure-slider.js.map +1 -0
  579. package/dist/components/exposure-slider/index.d.ts +2 -0
  580. package/dist/components/exposure-slider/index.js +2 -0
  581. package/dist/components/exposure-slider/meta.js +17 -0
  582. package/dist/components/exposure-slider/meta.js.map +1 -0
  583. package/dist/components/file-upload/file-upload.d.ts +13 -2
  584. package/dist/components/file-upload/file-upload.d.ts.map +1 -1
  585. package/dist/components/file-upload/file-upload.js +166 -95
  586. package/dist/components/file-upload/file-upload.js.map +1 -1
  587. package/dist/components/file-upload/meta.js +1 -1
  588. package/dist/components/file-upload/meta.js.map +1 -1
  589. package/dist/components/focus-blur-links/focus-blur-links.d.ts +25 -0
  590. package/dist/components/focus-blur-links/focus-blur-links.d.ts.map +1 -0
  591. package/dist/components/focus-blur-links/focus-blur-links.js +92 -0
  592. package/dist/components/focus-blur-links/focus-blur-links.js.map +1 -0
  593. package/dist/components/focus-blur-links/index.d.ts +2 -0
  594. package/dist/components/focus-blur-links/index.js +2 -0
  595. package/dist/components/focus-blur-links/meta.js +17 -0
  596. package/dist/components/focus-blur-links/meta.js.map +1 -0
  597. package/dist/components/folding-frame/folding-frame.d.ts +38 -0
  598. package/dist/components/folding-frame/folding-frame.d.ts.map +1 -0
  599. package/dist/components/folding-frame/folding-frame.js +298 -0
  600. package/dist/components/folding-frame/folding-frame.js.map +1 -0
  601. package/dist/components/folding-frame/index.d.ts +2 -0
  602. package/dist/components/folding-frame/index.js +2 -0
  603. package/dist/components/folding-frame/meta.js +17 -0
  604. package/dist/components/folding-frame/meta.js.map +1 -0
  605. package/dist/components/form/form.d.ts +11 -2
  606. package/dist/components/form/form.d.ts.map +1 -1
  607. package/dist/components/form/form.js +55 -5
  608. package/dist/components/form/form.js.map +1 -1
  609. package/dist/components/form/meta.js +1 -1
  610. package/dist/components/form/meta.js.map +1 -1
  611. package/dist/components/glass-bubble/glass-bubble.d.ts +59 -0
  612. package/dist/components/glass-bubble/glass-bubble.d.ts.map +1 -0
  613. package/dist/components/glass-bubble/glass-bubble.js +308 -0
  614. package/dist/components/glass-bubble/glass-bubble.js.map +1 -0
  615. package/dist/components/glass-bubble/index.d.ts +2 -0
  616. package/dist/components/glass-bubble/index.js +2 -0
  617. package/dist/components/glass-bubble/meta.js +17 -0
  618. package/dist/components/glass-bubble/meta.js.map +1 -0
  619. package/dist/components/glow-card/glow-card.d.ts +34 -0
  620. package/dist/components/glow-card/glow-card.d.ts.map +1 -0
  621. package/dist/components/glow-card/glow-card.js +104 -0
  622. package/dist/components/glow-card/glow-card.js.map +1 -0
  623. package/dist/components/glow-card/index.d.ts +2 -0
  624. package/dist/components/glow-card/index.js +2 -0
  625. package/dist/components/glow-card/meta.js +17 -0
  626. package/dist/components/glow-card/meta.js.map +1 -0
  627. package/dist/components/goo-ball/goo-ball.d.ts +48 -0
  628. package/dist/components/goo-ball/goo-ball.d.ts.map +1 -0
  629. package/dist/components/goo-ball/goo-ball.js +295 -0
  630. package/dist/components/goo-ball/goo-ball.js.map +1 -0
  631. package/dist/components/goo-ball/index.d.ts +2 -0
  632. package/dist/components/goo-ball/index.js +2 -0
  633. package/dist/components/goo-ball/meta.js +21 -0
  634. package/dist/components/goo-ball/meta.js.map +1 -0
  635. package/dist/components/goo-tabs/goo-tabs.d.ts +37 -0
  636. package/dist/components/goo-tabs/goo-tabs.d.ts.map +1 -0
  637. package/dist/components/goo-tabs/goo-tabs.js +286 -0
  638. package/dist/components/goo-tabs/goo-tabs.js.map +1 -0
  639. package/dist/components/goo-tabs/index.d.ts +2 -0
  640. package/dist/components/goo-tabs/index.js +2 -0
  641. package/dist/components/goo-tabs/meta.js +17 -0
  642. package/dist/components/goo-tabs/meta.js.map +1 -0
  643. package/dist/components/gooey-popover/gooey-popover.d.ts +32 -0
  644. package/dist/components/gooey-popover/gooey-popover.d.ts.map +1 -0
  645. package/dist/components/gooey-popover/gooey-popover.js +257 -0
  646. package/dist/components/gooey-popover/gooey-popover.js.map +1 -0
  647. package/dist/components/gooey-popover/index.d.ts +2 -0
  648. package/dist/components/gooey-popover/index.js +2 -0
  649. package/dist/components/gooey-popover/meta.js +17 -0
  650. package/dist/components/gooey-popover/meta.js.map +1 -0
  651. package/dist/components/gradient-orb/gradient-orb.d.ts +39 -0
  652. package/dist/components/gradient-orb/gradient-orb.d.ts.map +1 -0
  653. package/dist/components/gradient-orb/gradient-orb.js +185 -0
  654. package/dist/components/gradient-orb/gradient-orb.js.map +1 -0
  655. package/dist/components/gradient-orb/index.d.ts +2 -0
  656. package/dist/components/gradient-orb/index.js +2 -0
  657. package/dist/components/gradient-orb/meta.js +17 -0
  658. package/dist/components/gradient-orb/meta.js.map +1 -0
  659. package/dist/components/grid-loader/grid-loader.d.ts +224 -0
  660. package/dist/components/grid-loader/grid-loader.d.ts.map +1 -0
  661. package/dist/components/grid-loader/grid-loader.js +271 -0
  662. package/dist/components/grid-loader/grid-loader.js.map +1 -0
  663. package/dist/components/grid-loader/index.d.ts +2 -0
  664. package/dist/components/grid-loader/index.js +2 -0
  665. package/dist/components/grid-loader/meta.js +17 -0
  666. package/dist/components/grid-loader/meta.js.map +1 -0
  667. package/dist/components/image-accordion/image-accordion.d.ts +40 -0
  668. package/dist/components/image-accordion/image-accordion.d.ts.map +1 -0
  669. package/dist/components/image-accordion/image-accordion.js +118 -0
  670. package/dist/components/image-accordion/image-accordion.js.map +1 -0
  671. package/dist/components/image-accordion/index.d.ts +2 -0
  672. package/dist/components/image-accordion/index.js +2 -0
  673. package/dist/components/image-accordion/meta.js +17 -0
  674. package/dist/components/image-accordion/meta.js.map +1 -0
  675. package/dist/components/image-metadata/image-metadata.d.ts +34 -0
  676. package/dist/components/image-metadata/image-metadata.d.ts.map +1 -0
  677. package/dist/components/image-metadata/image-metadata.js +178 -0
  678. package/dist/components/image-metadata/image-metadata.js.map +1 -0
  679. package/dist/components/image-metadata/index.d.ts +2 -0
  680. package/dist/components/image-metadata/index.js +2 -0
  681. package/dist/components/image-metadata/meta.js +17 -0
  682. package/dist/components/image-metadata/meta.js.map +1 -0
  683. package/dist/components/image-selector/image-selector.d.ts +37 -0
  684. package/dist/components/image-selector/image-selector.d.ts.map +1 -0
  685. package/dist/components/image-selector/image-selector.js +253 -0
  686. package/dist/components/image-selector/image-selector.js.map +1 -0
  687. package/dist/components/image-selector/index.d.ts +2 -0
  688. package/dist/components/image-selector/index.js +2 -0
  689. package/dist/components/image-selector/meta.js +17 -0
  690. package/dist/components/image-selector/meta.js.map +1 -0
  691. package/dist/components/inline-confirm/index.d.ts +2 -0
  692. package/dist/components/inline-confirm/index.js +2 -0
  693. package/dist/components/inline-confirm/inline-confirm.d.ts +38 -0
  694. package/dist/components/inline-confirm/inline-confirm.d.ts.map +1 -0
  695. package/dist/components/inline-confirm/inline-confirm.js +246 -0
  696. package/dist/components/inline-confirm/inline-confirm.js.map +1 -0
  697. package/dist/components/inline-confirm/meta.js +17 -0
  698. package/dist/components/inline-confirm/meta.js.map +1 -0
  699. package/dist/components/input/floating-label-input.d.ts +26 -0
  700. package/dist/components/input/floating-label-input.d.ts.map +1 -0
  701. package/dist/components/input/floating-label-input.js +47 -0
  702. package/dist/components/input/floating-label-input.js.map +1 -0
  703. package/dist/components/input/index.d.ts +2 -1
  704. package/dist/components/input/index.js +2 -1
  705. package/dist/components/input/meta.js +2 -2
  706. package/dist/components/input/meta.js.map +1 -1
  707. package/dist/components/invite-carousel/carousel-controls.js +189 -0
  708. package/dist/components/invite-carousel/carousel-controls.js.map +1 -0
  709. package/dist/components/invite-carousel/index.d.ts +2 -0
  710. package/dist/components/invite-carousel/index.js +2 -0
  711. package/dist/components/invite-carousel/invite-carousel.d.ts +56 -0
  712. package/dist/components/invite-carousel/invite-carousel.d.ts.map +1 -0
  713. package/dist/components/invite-carousel/invite-carousel.js +207 -0
  714. package/dist/components/invite-carousel/invite-carousel.js.map +1 -0
  715. package/dist/components/invite-carousel/meta.js +17 -0
  716. package/dist/components/invite-carousel/meta.js.map +1 -0
  717. package/dist/components/island/index.d.ts +2 -0
  718. package/dist/components/island/index.js +2 -0
  719. package/dist/components/island/island.d.ts +30 -0
  720. package/dist/components/island/island.d.ts.map +1 -0
  721. package/dist/components/island/island.js +94 -0
  722. package/dist/components/island/island.js.map +1 -0
  723. package/dist/components/island/meta.js +17 -0
  724. package/dist/components/island/meta.js.map +1 -0
  725. package/dist/components/liquid-toggle/index.d.ts +2 -0
  726. package/dist/components/liquid-toggle/index.js +2 -0
  727. package/dist/components/liquid-toggle/liquid-toggle.d.ts +19 -0
  728. package/dist/components/liquid-toggle/liquid-toggle.d.ts.map +1 -0
  729. package/dist/components/liquid-toggle/liquid-toggle.js +175 -0
  730. package/dist/components/liquid-toggle/liquid-toggle.js.map +1 -0
  731. package/dist/components/liquid-toggle/meta.js +21 -0
  732. package/dist/components/liquid-toggle/meta.js.map +1 -0
  733. package/dist/components/magnetic-button/index.d.ts +2 -0
  734. package/dist/components/magnetic-button/index.js +2 -0
  735. package/dist/components/magnetic-button/magnetic-button.d.ts +32 -0
  736. package/dist/components/magnetic-button/magnetic-button.d.ts.map +1 -0
  737. package/dist/components/magnetic-button/magnetic-button.js +138 -0
  738. package/dist/components/magnetic-button/magnetic-button.js.map +1 -0
  739. package/dist/components/magnetic-button/meta.js +17 -0
  740. package/dist/components/magnetic-button/meta.js.map +1 -0
  741. package/dist/components/magnetic-select/index.d.ts +2 -0
  742. package/dist/components/magnetic-select/index.js +2 -0
  743. package/dist/components/magnetic-select/magnetic-select-spring.js +21 -0
  744. package/dist/components/magnetic-select/magnetic-select-spring.js.map +1 -0
  745. package/dist/components/magnetic-select/magnetic-select.d.ts +44 -0
  746. package/dist/components/magnetic-select/magnetic-select.d.ts.map +1 -0
  747. package/dist/components/magnetic-select/magnetic-select.js +330 -0
  748. package/dist/components/magnetic-select/magnetic-select.js.map +1 -0
  749. package/dist/components/magnetic-select/meta.js +17 -0
  750. package/dist/components/magnetic-select/meta.js.map +1 -0
  751. package/dist/components/magnify-dock/index.d.ts +2 -0
  752. package/dist/components/magnify-dock/index.js +2 -0
  753. package/dist/components/magnify-dock/magnify-dock.d.ts +40 -0
  754. package/dist/components/magnify-dock/magnify-dock.d.ts.map +1 -0
  755. package/dist/components/magnify-dock/magnify-dock.js +183 -0
  756. package/dist/components/magnify-dock/magnify-dock.js.map +1 -0
  757. package/dist/components/magnify-dock/meta.js +17 -0
  758. package/dist/components/magnify-dock/meta.js.map +1 -0
  759. package/dist/components/marquee/index.d.ts +2 -0
  760. package/dist/components/marquee/index.js +2 -0
  761. package/dist/components/marquee/marquee.d.ts +30 -0
  762. package/dist/components/marquee/marquee.d.ts.map +1 -0
  763. package/dist/components/marquee/marquee.js +117 -0
  764. package/dist/components/marquee/marquee.js.map +1 -0
  765. package/dist/components/marquee/meta.js +17 -0
  766. package/dist/components/marquee/meta.js.map +1 -0
  767. package/dist/components/morph-button/index.d.ts +2 -0
  768. package/dist/components/morph-button/index.js +2 -0
  769. package/dist/components/morph-button/meta.js +17 -0
  770. package/dist/components/morph-button/meta.js.map +1 -0
  771. package/dist/components/morph-button/morph-button.d.ts +57 -0
  772. package/dist/components/morph-button/morph-button.d.ts.map +1 -0
  773. package/dist/components/morph-button/morph-button.js +220 -0
  774. package/dist/components/morph-button/morph-button.js.map +1 -0
  775. package/dist/components/morph-surface/index.d.ts +2 -0
  776. package/dist/components/morph-surface/index.js +2 -0
  777. package/dist/components/morph-surface/meta.js +17 -0
  778. package/dist/components/morph-surface/meta.js.map +1 -0
  779. package/dist/components/morph-surface/morph-surface.d.ts +51 -0
  780. package/dist/components/morph-surface/morph-surface.d.ts.map +1 -0
  781. package/dist/components/morph-surface/morph-surface.js +228 -0
  782. package/dist/components/morph-surface/morph-surface.js.map +1 -0
  783. package/dist/components/notification-badge/index.d.ts +2 -0
  784. package/dist/components/notification-badge/index.js +2 -0
  785. package/dist/components/notification-badge/meta.js +17 -0
  786. package/dist/components/notification-badge/meta.js.map +1 -0
  787. package/dist/components/notification-badge/notification-badge.d.ts +40 -0
  788. package/dist/components/notification-badge/notification-badge.d.ts.map +1 -0
  789. package/dist/components/notification-badge/notification-badge.js +107 -0
  790. package/dist/components/notification-badge/notification-badge.js.map +1 -0
  791. package/dist/components/notify-button/index.d.ts +2 -0
  792. package/dist/components/notify-button/index.js +2 -0
  793. package/dist/components/notify-button/meta.js +17 -0
  794. package/dist/components/notify-button/meta.js.map +1 -0
  795. package/dist/components/notify-button/notify-button.d.ts +28 -0
  796. package/dist/components/notify-button/notify-button.d.ts.map +1 -0
  797. package/dist/components/notify-button/notify-button.js +114 -0
  798. package/dist/components/notify-button/notify-button.js.map +1 -0
  799. package/dist/components/now-playing/index.d.ts +2 -0
  800. package/dist/components/now-playing/index.js +2 -0
  801. package/dist/components/now-playing/meta.js +17 -0
  802. package/dist/components/now-playing/meta.js.map +1 -0
  803. package/dist/components/now-playing/now-playing.d.ts +39 -0
  804. package/dist/components/now-playing/now-playing.d.ts.map +1 -0
  805. package/dist/components/now-playing/now-playing.js +354 -0
  806. package/dist/components/now-playing/now-playing.js.map +1 -0
  807. package/dist/components/number-flow/index.d.ts +2 -0
  808. package/dist/components/number-flow/index.js +2 -0
  809. package/dist/components/number-flow/meta.js +17 -0
  810. package/dist/components/number-flow/meta.js.map +1 -0
  811. package/dist/components/number-flow/number-flow.d.ts +45 -0
  812. package/dist/components/number-flow/number-flow.d.ts.map +1 -0
  813. package/dist/components/number-flow/number-flow.js +226 -0
  814. package/dist/components/number-flow/number-flow.js.map +1 -0
  815. package/dist/components/orb-face/index.d.ts +2 -0
  816. package/dist/components/orb-face/index.js +2 -0
  817. package/dist/components/orb-face/meta.js +17 -0
  818. package/dist/components/orb-face/meta.js.map +1 -0
  819. package/dist/components/orb-face/orb-face.d.ts +29 -0
  820. package/dist/components/orb-face/orb-face.d.ts.map +1 -0
  821. package/dist/components/orb-face/orb-face.js +353 -0
  822. package/dist/components/orb-face/orb-face.js.map +1 -0
  823. package/dist/components/otp-input/index.d.ts +2 -0
  824. package/dist/components/otp-input/index.js +2 -0
  825. package/dist/components/otp-input/meta.js +17 -0
  826. package/dist/components/otp-input/meta.js.map +1 -0
  827. package/dist/components/otp-input/otp-input.d.ts +36 -0
  828. package/dist/components/otp-input/otp-input.d.ts.map +1 -0
  829. package/dist/components/otp-input/otp-input.js +249 -0
  830. package/dist/components/otp-input/otp-input.js.map +1 -0
  831. package/dist/components/pagination/index.d.ts +2 -2
  832. package/dist/components/pagination/meta.js +2 -2
  833. package/dist/components/pagination/meta.js.map +1 -1
  834. package/dist/components/pagination/pagination-indicator.js +76 -0
  835. package/dist/components/pagination/pagination-indicator.js.map +1 -0
  836. package/dist/components/pagination/pagination.d.ts +10 -2
  837. package/dist/components/pagination/pagination.d.ts.map +1 -1
  838. package/dist/components/pagination/pagination.js +13 -4
  839. package/dist/components/pagination/pagination.js.map +1 -1
  840. package/dist/components/palette-generator/index.d.ts +2 -0
  841. package/dist/components/palette-generator/index.js +2 -0
  842. package/dist/components/palette-generator/meta.js +17 -0
  843. package/dist/components/palette-generator/meta.js.map +1 -0
  844. package/dist/components/palette-generator/palette-generator.d.ts +43 -0
  845. package/dist/components/palette-generator/palette-generator.d.ts.map +1 -0
  846. package/dist/components/palette-generator/palette-generator.js +199 -0
  847. package/dist/components/palette-generator/palette-generator.js.map +1 -0
  848. package/dist/components/photo-stack/index.d.ts +2 -0
  849. package/dist/components/photo-stack/index.js +2 -0
  850. package/dist/components/photo-stack/meta.js +17 -0
  851. package/dist/components/photo-stack/meta.js.map +1 -0
  852. package/dist/components/photo-stack/photo-stack.d.ts +30 -0
  853. package/dist/components/photo-stack/photo-stack.d.ts.map +1 -0
  854. package/dist/components/photo-stack/photo-stack.js +236 -0
  855. package/dist/components/photo-stack/photo-stack.js.map +1 -0
  856. package/dist/components/photo-tabs/index.d.ts +2 -0
  857. package/dist/components/photo-tabs/index.js +2 -0
  858. package/dist/components/photo-tabs/meta.js +17 -0
  859. package/dist/components/photo-tabs/meta.js.map +1 -0
  860. package/dist/components/photo-tabs/photo-tabs.d.ts +35 -0
  861. package/dist/components/photo-tabs/photo-tabs.d.ts.map +1 -0
  862. package/dist/components/photo-tabs/photo-tabs.js +82 -0
  863. package/dist/components/photo-tabs/photo-tabs.js.map +1 -0
  864. package/dist/components/pixel-avatar/index.d.ts +2 -0
  865. package/dist/components/pixel-avatar/index.js +2 -0
  866. package/dist/components/pixel-avatar/meta.js +17 -0
  867. package/dist/components/pixel-avatar/meta.js.map +1 -0
  868. package/dist/components/pixel-avatar/pixel-avatar.d.ts +23 -0
  869. package/dist/components/pixel-avatar/pixel-avatar.d.ts.map +1 -0
  870. package/dist/components/pixel-avatar/pixel-avatar.js +181 -0
  871. package/dist/components/pixel-avatar/pixel-avatar.js.map +1 -0
  872. package/dist/components/product-card/index.d.ts +2 -0
  873. package/dist/components/product-card/index.js +2 -0
  874. package/dist/components/product-card/meta.js +17 -0
  875. package/dist/components/product-card/meta.js.map +1 -0
  876. package/dist/components/product-card/product-card.d.ts +43 -0
  877. package/dist/components/product-card/product-card.d.ts.map +1 -0
  878. package/dist/components/product-card/product-card.js +249 -0
  879. package/dist/components/product-card/product-card.js.map +1 -0
  880. package/dist/components/progress/meta.js +1 -1
  881. package/dist/components/progress/meta.js.map +1 -1
  882. package/dist/components/progress/progress.d.ts +22 -3
  883. package/dist/components/progress/progress.d.ts.map +1 -1
  884. package/dist/components/progress/progress.js +56 -6
  885. package/dist/components/progress/progress.js.map +1 -1
  886. package/dist/components/pull-to-refresh/index.d.ts +2 -0
  887. package/dist/components/pull-to-refresh/index.js +2 -0
  888. package/dist/components/pull-to-refresh/meta.js +17 -0
  889. package/dist/components/pull-to-refresh/meta.js.map +1 -0
  890. package/dist/components/pull-to-refresh/pull-to-refresh.d.ts +47 -0
  891. package/dist/components/pull-to-refresh/pull-to-refresh.d.ts.map +1 -0
  892. package/dist/components/pull-to-refresh/pull-to-refresh.js +302 -0
  893. package/dist/components/pull-to-refresh/pull-to-refresh.js.map +1 -0
  894. package/dist/components/radial-menu/index.d.ts +2 -0
  895. package/dist/components/radial-menu/index.js +2 -0
  896. package/dist/components/radial-menu/meta.js +17 -0
  897. package/dist/components/radial-menu/meta.js.map +1 -0
  898. package/dist/components/radial-menu/radial-menu.d.ts +44 -0
  899. package/dist/components/radial-menu/radial-menu.d.ts.map +1 -0
  900. package/dist/components/radial-menu/radial-menu.js +313 -0
  901. package/dist/components/radial-menu/radial-menu.js.map +1 -0
  902. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  903. package/dist/components/radio-group/radio-group.js +4 -1
  904. package/dist/components/radio-group/radio-group.js.map +1 -1
  905. package/dist/components/range-dial/index.d.ts +2 -0
  906. package/dist/components/range-dial/index.js +2 -0
  907. package/dist/components/range-dial/meta.js +17 -0
  908. package/dist/components/range-dial/meta.js.map +1 -0
  909. package/dist/components/range-dial/range-dial.d.ts +33 -0
  910. package/dist/components/range-dial/range-dial.d.ts.map +1 -0
  911. package/dist/components/range-dial/range-dial.js +308 -0
  912. package/dist/components/range-dial/range-dial.js.map +1 -0
  913. package/dist/components/reorder-list/index.d.ts +2 -0
  914. package/dist/components/reorder-list/index.js +2 -0
  915. package/dist/components/reorder-list/meta.js +17 -0
  916. package/dist/components/reorder-list/meta.js.map +1 -0
  917. package/dist/components/reorder-list/reorder-list.d.ts +79 -0
  918. package/dist/components/reorder-list/reorder-list.d.ts.map +1 -0
  919. package/dist/components/reorder-list/reorder-list.js +471 -0
  920. package/dist/components/reorder-list/reorder-list.js.map +1 -0
  921. package/dist/components/reviews-carousel/carousel-controls.js +189 -0
  922. package/dist/components/reviews-carousel/carousel-controls.js.map +1 -0
  923. package/dist/components/reviews-carousel/index.d.ts +2 -0
  924. package/dist/components/reviews-carousel/index.js +2 -0
  925. package/dist/components/reviews-carousel/meta.js +17 -0
  926. package/dist/components/reviews-carousel/meta.js.map +1 -0
  927. package/dist/components/reviews-carousel/reviews-carousel.d.ts +46 -0
  928. package/dist/components/reviews-carousel/reviews-carousel.d.ts.map +1 -0
  929. package/dist/components/reviews-carousel/reviews-carousel.js +177 -0
  930. package/dist/components/reviews-carousel/reviews-carousel.js.map +1 -0
  931. package/dist/components/rich-popover/index.d.ts +2 -0
  932. package/dist/components/rich-popover/index.js +2 -0
  933. package/dist/components/rich-popover/meta.js +17 -0
  934. package/dist/components/rich-popover/meta.js.map +1 -0
  935. package/dist/components/rich-popover/rich-popover.d.ts +36 -0
  936. package/dist/components/rich-popover/rich-popover.d.ts.map +1 -0
  937. package/dist/components/rich-popover/rich-popover.js +157 -0
  938. package/dist/components/rich-popover/rich-popover.js.map +1 -0
  939. package/dist/components/ring-loader/index.d.ts +2 -0
  940. package/dist/components/ring-loader/index.js +2 -0
  941. package/dist/components/ring-loader/meta.js +17 -0
  942. package/dist/components/ring-loader/meta.js.map +1 -0
  943. package/dist/components/ring-loader/ring-loader.d.ts +31 -0
  944. package/dist/components/ring-loader/ring-loader.d.ts.map +1 -0
  945. package/dist/components/ring-loader/ring-loader.js +597 -0
  946. package/dist/components/ring-loader/ring-loader.js.map +1 -0
  947. package/dist/components/scramble-text/index.d.ts +2 -0
  948. package/dist/components/scramble-text/index.js +2 -0
  949. package/dist/components/scramble-text/meta.js +17 -0
  950. package/dist/components/scramble-text/meta.js.map +1 -0
  951. package/dist/components/scramble-text/scramble-text.d.ts +35 -0
  952. package/dist/components/scramble-text/scramble-text.d.ts.map +1 -0
  953. package/dist/components/scramble-text/scramble-text.js +151 -0
  954. package/dist/components/scramble-text/scramble-text.js.map +1 -0
  955. package/dist/components/scroll-reveal-text/index.d.ts +2 -0
  956. package/dist/components/scroll-reveal-text/index.js +2 -0
  957. package/dist/components/scroll-reveal-text/meta.js +17 -0
  958. package/dist/components/scroll-reveal-text/meta.js.map +1 -0
  959. package/dist/components/scroll-reveal-text/scroll-reveal-text.d.ts +22 -0
  960. package/dist/components/scroll-reveal-text/scroll-reveal-text.d.ts.map +1 -0
  961. package/dist/components/scroll-reveal-text/scroll-reveal-text.js +113 -0
  962. package/dist/components/scroll-reveal-text/scroll-reveal-text.js.map +1 -0
  963. package/dist/components/scrubber/index.d.ts +2 -0
  964. package/dist/components/scrubber/index.js +2 -0
  965. package/dist/components/scrubber/meta.js +17 -0
  966. package/dist/components/scrubber/meta.js.map +1 -0
  967. package/dist/components/scrubber/scrubber.d.ts +37 -0
  968. package/dist/components/scrubber/scrubber.d.ts.map +1 -0
  969. package/dist/components/scrubber/scrubber.js +217 -0
  970. package/dist/components/scrubber/scrubber.js.map +1 -0
  971. package/dist/components/select/meta.js +1 -1
  972. package/dist/components/select/meta.js.map +1 -1
  973. package/dist/components/select/select.d.ts +5 -0
  974. package/dist/components/select/select.d.ts.map +1 -1
  975. package/dist/components/select/select.js +27 -5
  976. package/dist/components/select/select.js.map +1 -1
  977. package/dist/components/selection-list/index.d.ts +2 -0
  978. package/dist/components/selection-list/index.js +2 -0
  979. package/dist/components/selection-list/meta.js +17 -0
  980. package/dist/components/selection-list/meta.js.map +1 -0
  981. package/dist/components/selection-list/selection-list-spring.js +21 -0
  982. package/dist/components/selection-list/selection-list-spring.js.map +1 -0
  983. package/dist/components/selection-list/selection-list.d.ts +42 -0
  984. package/dist/components/selection-list/selection-list.d.ts.map +1 -0
  985. package/dist/components/selection-list/selection-list.js +355 -0
  986. package/dist/components/selection-list/selection-list.js.map +1 -0
  987. package/dist/components/shader-transition/index.d.ts +4 -0
  988. package/dist/components/shader-transition/index.js +4 -0
  989. package/dist/components/shader-transition/meta.js +21 -0
  990. package/dist/components/shader-transition/meta.js.map +1 -0
  991. package/dist/components/shader-transition/shader-transition-engine.d.ts +39 -0
  992. package/dist/components/shader-transition/shader-transition-engine.d.ts.map +1 -0
  993. package/dist/components/shader-transition/shader-transition-engine.js +294 -0
  994. package/dist/components/shader-transition/shader-transition-engine.js.map +1 -0
  995. package/dist/components/shader-transition/shader-transition-presets.d.ts +222 -0
  996. package/dist/components/shader-transition/shader-transition-presets.d.ts.map +1 -0
  997. package/dist/components/shader-transition/shader-transition-presets.js +346 -0
  998. package/dist/components/shader-transition/shader-transition-presets.js.map +1 -0
  999. package/dist/components/shader-transition/shader-transition.d.ts +35 -0
  1000. package/dist/components/shader-transition/shader-transition.d.ts.map +1 -0
  1001. package/dist/components/shader-transition/shader-transition.js +314 -0
  1002. package/dist/components/shader-transition/shader-transition.js.map +1 -0
  1003. package/dist/components/shape-loader/index.d.ts +2 -0
  1004. package/dist/components/shape-loader/index.js +2 -0
  1005. package/dist/components/shape-loader/meta.js +17 -0
  1006. package/dist/components/shape-loader/meta.js.map +1 -0
  1007. package/dist/components/shape-loader/shape-loader-variants.d.ts +8 -0
  1008. package/dist/components/shape-loader/shape-loader-variants.d.ts.map +1 -0
  1009. package/dist/components/shape-loader/shape-loader-variants.js +635 -0
  1010. package/dist/components/shape-loader/shape-loader-variants.js.map +1 -0
  1011. package/dist/components/shape-loader/shape-loader.d.ts +26 -0
  1012. package/dist/components/shape-loader/shape-loader.d.ts.map +1 -0
  1013. package/dist/components/shape-loader/shape-loader.js +99 -0
  1014. package/dist/components/shape-loader/shape-loader.js.map +1 -0
  1015. package/dist/components/sheet/meta.js +1 -1
  1016. package/dist/components/sheet/meta.js.map +1 -1
  1017. package/dist/components/sheet/sheet.d.ts +10 -2
  1018. package/dist/components/sheet/sheet.d.ts.map +1 -1
  1019. package/dist/components/sheet/sheet.js +23 -4
  1020. package/dist/components/sheet/sheet.js.map +1 -1
  1021. package/dist/components/shimmer-text/index.d.ts +2 -0
  1022. package/dist/components/shimmer-text/index.js +2 -0
  1023. package/dist/components/shimmer-text/meta.js +17 -0
  1024. package/dist/components/shimmer-text/meta.js.map +1 -0
  1025. package/dist/components/shimmer-text/shimmer-text.d.ts +33 -0
  1026. package/dist/components/shimmer-text/shimmer-text.d.ts.map +1 -0
  1027. package/dist/components/shimmer-text/shimmer-text.js +120 -0
  1028. package/dist/components/shimmer-text/shimmer-text.js.map +1 -0
  1029. package/dist/components/skeleton/index.d.ts +2 -2
  1030. package/dist/components/skeleton/meta.js +1 -1
  1031. package/dist/components/skeleton/meta.js.map +1 -1
  1032. package/dist/components/skeleton/skeleton.d.ts +14 -2
  1033. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  1034. package/dist/components/skeleton/skeleton.js +24 -5
  1035. package/dist/components/skeleton/skeleton.js.map +1 -1
  1036. package/dist/components/slide-to-confirm/index.d.ts +2 -0
  1037. package/dist/components/slide-to-confirm/index.js +2 -0
  1038. package/dist/components/slide-to-confirm/meta.js +21 -0
  1039. package/dist/components/slide-to-confirm/meta.js.map +1 -0
  1040. package/dist/components/slide-to-confirm/slide-to-confirm.d.ts +38 -0
  1041. package/dist/components/slide-to-confirm/slide-to-confirm.d.ts.map +1 -0
  1042. package/dist/components/slide-to-confirm/slide-to-confirm.js +389 -0
  1043. package/dist/components/slide-to-confirm/slide-to-confirm.js.map +1 -0
  1044. package/dist/components/slosh-slider/index.d.ts +2 -0
  1045. package/dist/components/slosh-slider/index.js +2 -0
  1046. package/dist/components/slosh-slider/meta.js +21 -0
  1047. package/dist/components/slosh-slider/meta.js.map +1 -0
  1048. package/dist/components/slosh-slider/slosh-slider.d.ts +43 -0
  1049. package/dist/components/slosh-slider/slosh-slider.d.ts.map +1 -0
  1050. package/dist/components/slosh-slider/slosh-slider.js +140 -0
  1051. package/dist/components/slosh-slider/slosh-slider.js.map +1 -0
  1052. package/dist/components/social-selector/index.d.ts +2 -0
  1053. package/dist/components/social-selector/index.js +2 -0
  1054. package/dist/components/social-selector/meta.js +17 -0
  1055. package/dist/components/social-selector/meta.js.map +1 -0
  1056. package/dist/components/social-selector/social-selector.d.ts +45 -0
  1057. package/dist/components/social-selector/social-selector.d.ts.map +1 -0
  1058. package/dist/components/social-selector/social-selector.js +128 -0
  1059. package/dist/components/social-selector/social-selector.js.map +1 -0
  1060. package/dist/components/spinner/spinner.d.ts +1 -1
  1061. package/dist/components/star-count/index.d.ts +2 -0
  1062. package/dist/components/star-count/index.js +2 -0
  1063. package/dist/components/star-count/meta.js +17 -0
  1064. package/dist/components/star-count/meta.js.map +1 -0
  1065. package/dist/components/star-count/star-count.d.ts +35 -0
  1066. package/dist/components/star-count/star-count.d.ts.map +1 -0
  1067. package/dist/components/star-count/star-count.js +94 -0
  1068. package/dist/components/star-count/star-count.js.map +1 -0
  1069. package/dist/components/stepper/index.d.ts +2 -0
  1070. package/dist/components/stepper/index.js +2 -0
  1071. package/dist/components/stepper/meta.js +17 -0
  1072. package/dist/components/stepper/meta.js.map +1 -0
  1073. package/dist/components/stepper/stepper.d.ts +45 -0
  1074. package/dist/components/stepper/stepper.d.ts.map +1 -0
  1075. package/dist/components/stepper/stepper.js +207 -0
  1076. package/dist/components/stepper/stepper.js.map +1 -0
  1077. package/dist/components/swipe-carousel/carousel-controls.js +98 -0
  1078. package/dist/components/swipe-carousel/carousel-controls.js.map +1 -0
  1079. package/dist/components/swipe-carousel/index.d.ts +2 -0
  1080. package/dist/components/swipe-carousel/index.js +2 -0
  1081. package/dist/components/swipe-carousel/meta.js +17 -0
  1082. package/dist/components/swipe-carousel/meta.js.map +1 -0
  1083. package/dist/components/swipe-carousel/swipe-carousel.d.ts +27 -0
  1084. package/dist/components/swipe-carousel/swipe-carousel.d.ts.map +1 -0
  1085. package/dist/components/swipe-carousel/swipe-carousel.js +288 -0
  1086. package/dist/components/swipe-carousel/swipe-carousel.js.map +1 -0
  1087. package/dist/components/switch/meta.js +1 -1
  1088. package/dist/components/switch/meta.js.map +1 -1
  1089. package/dist/components/switch/switch.d.ts +25 -3
  1090. package/dist/components/switch/switch.d.ts.map +1 -1
  1091. package/dist/components/switch/switch.js +20 -4
  1092. package/dist/components/switch/switch.js.map +1 -1
  1093. package/dist/components/switchboard-card/index.d.ts +2 -0
  1094. package/dist/components/switchboard-card/index.js +2 -0
  1095. package/dist/components/switchboard-card/meta.js +17 -0
  1096. package/dist/components/switchboard-card/meta.js.map +1 -0
  1097. package/dist/components/switchboard-card/switchboard-card.d.ts +44 -0
  1098. package/dist/components/switchboard-card/switchboard-card.d.ts.map +1 -0
  1099. package/dist/components/switchboard-card/switchboard-card.js +169 -0
  1100. package/dist/components/switchboard-card/switchboard-card.js.map +1 -0
  1101. package/dist/components/tabs/index.d.ts +2 -2
  1102. package/dist/components/tabs/index.js +2 -2
  1103. package/dist/components/tabs/meta.js +1 -1
  1104. package/dist/components/tabs/meta.js.map +1 -1
  1105. package/dist/components/tabs/tabs.d.ts +6 -2
  1106. package/dist/components/tabs/tabs.d.ts.map +1 -1
  1107. package/dist/components/tabs/tabs.js +112 -10
  1108. package/dist/components/tabs/tabs.js.map +1 -1
  1109. package/dist/components/tags-input/meta.js +1 -1
  1110. package/dist/components/tags-input/meta.js.map +1 -1
  1111. package/dist/components/tags-input/tags-input.d.ts +7 -1
  1112. package/dist/components/tags-input/tags-input.d.ts.map +1 -1
  1113. package/dist/components/tags-input/tags-input.js +82 -6
  1114. package/dist/components/tags-input/tags-input.js.map +1 -1
  1115. package/dist/components/text-effect/index.d.ts +3 -0
  1116. package/dist/components/text-effect/index.js +3 -0
  1117. package/dist/components/text-effect/meta.js +17 -0
  1118. package/dist/components/text-effect/meta.js.map +1 -0
  1119. package/dist/components/text-effect/text-effect-presets.d.ts +256 -0
  1120. package/dist/components/text-effect/text-effect-presets.d.ts.map +1 -0
  1121. package/dist/components/text-effect/text-effect-presets.js +292 -0
  1122. package/dist/components/text-effect/text-effect-presets.js.map +1 -0
  1123. package/dist/components/text-effect/text-effect.d.ts +58 -0
  1124. package/dist/components/text-effect/text-effect.d.ts.map +1 -0
  1125. package/dist/components/text-effect/text-effect.js +243 -0
  1126. package/dist/components/text-effect/text-effect.js.map +1 -0
  1127. package/dist/components/text-loader/index.d.ts +2 -0
  1128. package/dist/components/text-loader/index.js +2 -0
  1129. package/dist/components/text-loader/meta.js +17 -0
  1130. package/dist/components/text-loader/meta.js.map +1 -0
  1131. package/dist/components/text-loader/text-loader.d.ts +30 -0
  1132. package/dist/components/text-loader/text-loader.d.ts.map +1 -0
  1133. package/dist/components/text-loader/text-loader.js +514 -0
  1134. package/dist/components/text-loader/text-loader.js.map +1 -0
  1135. package/dist/components/text-swap/index.d.ts +3 -0
  1136. package/dist/components/text-swap/index.js +3 -0
  1137. package/dist/components/text-swap/meta.js +17 -0
  1138. package/dist/components/text-swap/meta.js.map +1 -0
  1139. package/dist/components/text-swap/text-rotate.d.ts +17 -0
  1140. package/dist/components/text-swap/text-rotate.d.ts.map +1 -0
  1141. package/dist/components/text-swap/text-rotate.js +51 -0
  1142. package/dist/components/text-swap/text-rotate.js.map +1 -0
  1143. package/dist/components/text-swap/text-swap.d.ts +41 -0
  1144. package/dist/components/text-swap/text-swap.d.ts.map +1 -0
  1145. package/dist/components/text-swap/text-swap.js +303 -0
  1146. package/dist/components/text-swap/text-swap.js.map +1 -0
  1147. package/dist/components/tick-progress/index.d.ts +2 -0
  1148. package/dist/components/tick-progress/index.js +2 -0
  1149. package/dist/components/tick-progress/meta.js +17 -0
  1150. package/dist/components/tick-progress/meta.js.map +1 -0
  1151. package/dist/components/tick-progress/tick-progress.d.ts +28 -0
  1152. package/dist/components/tick-progress/tick-progress.d.ts.map +1 -0
  1153. package/dist/components/tick-progress/tick-progress.js +151 -0
  1154. package/dist/components/tick-progress/tick-progress.js.map +1 -0
  1155. package/dist/components/tilt-card/index.d.ts +2 -0
  1156. package/dist/components/tilt-card/index.js +2 -0
  1157. package/dist/components/tilt-card/meta.js +17 -0
  1158. package/dist/components/tilt-card/meta.js.map +1 -0
  1159. package/dist/components/tilt-card/tilt-card.d.ts +36 -0
  1160. package/dist/components/tilt-card/tilt-card.d.ts.map +1 -0
  1161. package/dist/components/tilt-card/tilt-card.js +135 -0
  1162. package/dist/components/tilt-card/tilt-card.js.map +1 -0
  1163. package/dist/components/time-stack/index.d.ts +2 -0
  1164. package/dist/components/time-stack/index.js +2 -0
  1165. package/dist/components/time-stack/meta.js +17 -0
  1166. package/dist/components/time-stack/meta.js.map +1 -0
  1167. package/dist/components/time-stack/time-stack.d.ts +37 -0
  1168. package/dist/components/time-stack/time-stack.d.ts.map +1 -0
  1169. package/dist/components/time-stack/time-stack.js +253 -0
  1170. package/dist/components/time-stack/time-stack.js.map +1 -0
  1171. package/dist/components/toast/meta.js +1 -1
  1172. package/dist/components/toast/meta.js.map +1 -1
  1173. package/dist/components/toast/toast.d.ts +13 -4
  1174. package/dist/components/toast/toast.d.ts.map +1 -1
  1175. package/dist/components/toast/toast.js +32 -9
  1176. package/dist/components/toast/toast.js.map +1 -1
  1177. package/dist/components/todo-tower/index.d.ts +2 -0
  1178. package/dist/components/todo-tower/index.js +2 -0
  1179. package/dist/components/todo-tower/meta.js +17 -0
  1180. package/dist/components/todo-tower/meta.js.map +1 -0
  1181. package/dist/components/todo-tower/todo-tower.d.ts +38 -0
  1182. package/dist/components/todo-tower/todo-tower.d.ts.map +1 -0
  1183. package/dist/components/todo-tower/todo-tower.js +284 -0
  1184. package/dist/components/todo-tower/todo-tower.js.map +1 -0
  1185. package/dist/components/tooltip/meta.js +1 -1
  1186. package/dist/components/tooltip/meta.js.map +1 -1
  1187. package/dist/components/tooltip/tooltip.d.ts +4 -0
  1188. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  1189. package/dist/components/tooltip/tooltip.js +20 -4
  1190. package/dist/components/tooltip/tooltip.js.map +1 -1
  1191. package/dist/components/tweet-card/index.d.ts +2 -0
  1192. package/dist/components/tweet-card/index.js +2 -0
  1193. package/dist/components/tweet-card/meta.js +17 -0
  1194. package/dist/components/tweet-card/meta.js.map +1 -0
  1195. package/dist/components/tweet-card/tweet-card.d.ts +57 -0
  1196. package/dist/components/tweet-card/tweet-card.d.ts.map +1 -0
  1197. package/dist/components/tweet-card/tweet-card.js +243 -0
  1198. package/dist/components/tweet-card/tweet-card.js.map +1 -0
  1199. package/dist/components/typewriter-text/index.d.ts +2 -0
  1200. package/dist/components/typewriter-text/index.js +2 -0
  1201. package/dist/components/typewriter-text/meta.js +17 -0
  1202. package/dist/components/typewriter-text/meta.js.map +1 -0
  1203. package/dist/components/typewriter-text/typewriter-text.d.ts +33 -0
  1204. package/dist/components/typewriter-text/typewriter-text.d.ts.map +1 -0
  1205. package/dist/components/typewriter-text/typewriter-text.js +135 -0
  1206. package/dist/components/typewriter-text/typewriter-text.js.map +1 -0
  1207. package/dist/components/uptime-matrix/index.d.ts +2 -0
  1208. package/dist/components/uptime-matrix/index.js +2 -0
  1209. package/dist/components/uptime-matrix/meta.js +17 -0
  1210. package/dist/components/uptime-matrix/meta.js.map +1 -0
  1211. package/dist/components/uptime-matrix/uptime-matrix.d.ts +60 -0
  1212. package/dist/components/uptime-matrix/uptime-matrix.d.ts.map +1 -0
  1213. package/dist/components/uptime-matrix/uptime-matrix.js +303 -0
  1214. package/dist/components/uptime-matrix/uptime-matrix.js.map +1 -0
  1215. package/dist/index.d.ts +246 -18
  1216. package/dist/index.js +128 -9
  1217. package/dist/registry/blocks.d.ts.map +1 -1
  1218. package/dist/registry/blocks.js +69 -1
  1219. package/dist/registry/blocks.js.map +1 -1
  1220. package/dist/registry/components.d.ts.map +1 -1
  1221. package/dist/registry/components.js +219 -1
  1222. package/dist/registry/components.js.map +1 -1
  1223. package/dist/registry/schema.d.ts +1 -1
  1224. package/dist/registry/schema.d.ts.map +1 -1
  1225. package/dist/registry/schema.js +2 -1
  1226. package/dist/registry/schema.js.map +1 -1
  1227. package/package.json +5 -4
  1228. package/src/components/account-menu/account-menu.tsx +338 -0
  1229. package/src/components/account-menu/index.ts +12 -0
  1230. package/src/components/account-menu/meta.ts +19 -0
  1231. package/src/components/action-node/action-node-spring.ts +34 -0
  1232. package/src/components/action-node/action-node.tsx +516 -0
  1233. package/src/components/action-node/index.ts +8 -0
  1234. package/src/components/action-node/meta.ts +21 -0
  1235. package/src/components/ai-agent-plan/ai-agent-plan.tsx +0 -0
  1236. package/src/components/ai-agent-plan/index.ts +1 -0
  1237. package/src/components/ai-agent-plan/meta.ts +3 -1
  1238. package/src/components/ai-approval-request/ai-approval-request.tsx +103 -4
  1239. package/src/components/ai-approval-request/meta.ts +4 -1
  1240. package/src/components/ai-artifact/ai-artifact.tsx +203 -0
  1241. package/src/components/ai-artifact/index.ts +1 -0
  1242. package/src/components/ai-artifact/meta.ts +18 -0
  1243. package/src/components/ai-branch/ai-branch.tsx +222 -0
  1244. package/src/components/ai-branch/index.ts +11 -0
  1245. package/src/components/ai-branch/meta.ts +18 -0
  1246. package/src/components/ai-conversation/ai-conversation.tsx +142 -31
  1247. package/src/components/ai-conversation/index.ts +1 -0
  1248. package/src/components/ai-loader/ai-loader.tsx +112 -0
  1249. package/src/components/ai-loader/index.ts +6 -0
  1250. package/src/components/ai-loader/meta.ts +18 -0
  1251. package/src/components/ai-message/ai-message.tsx +54 -9
  1252. package/src/components/ai-message/index.ts +2 -0
  1253. package/src/components/ai-message/meta.ts +2 -1
  1254. package/src/components/ai-prompt-input/ai-prompt-input.tsx +56 -18
  1255. package/src/components/ai-reasoning/ai-reasoning.tsx +191 -12
  1256. package/src/components/ai-reasoning/index.ts +1 -0
  1257. package/src/components/ai-reasoning/meta.ts +4 -2
  1258. package/src/components/ai-response/ai-response.tsx +10 -1
  1259. package/src/components/ai-response/index.ts +1 -0
  1260. package/src/components/ai-response/meta.ts +6 -3
  1261. package/src/components/ai-response/response-text.tsx +119 -0
  1262. package/src/components/ai-sources/ai-sources.tsx +191 -8
  1263. package/src/components/ai-sources/index.ts +1 -0
  1264. package/src/components/ai-sources/meta.ts +4 -2
  1265. package/src/components/ai-suggestions/ai-suggestions.tsx +130 -0
  1266. package/src/components/ai-suggestions/index.ts +6 -0
  1267. package/src/components/ai-suggestions/meta.ts +17 -0
  1268. package/src/components/ai-token-usage/ai-token-usage.tsx +288 -14
  1269. package/src/components/ai-token-usage/index.ts +5 -0
  1270. package/src/components/ai-token-usage/meta.ts +6 -2
  1271. package/src/components/ai-tool/ai-tool.tsx +124 -3
  1272. package/src/components/ai-tool/meta.ts +3 -1
  1273. package/src/components/animated-checklist/animated-checklist.tsx +324 -0
  1274. package/src/components/animated-checklist/index.ts +6 -0
  1275. package/src/components/animated-checklist/meta.ts +18 -0
  1276. package/src/components/app-stack/app-stack.tsx +414 -0
  1277. package/src/components/app-stack/index.ts +7 -0
  1278. package/src/components/app-stack/meta.ts +20 -0
  1279. package/src/components/aspect-morph/aspect-morph.tsx +272 -0
  1280. package/src/components/aspect-morph/index.ts +8 -0
  1281. package/src/components/aspect-morph/meta.ts +19 -0
  1282. package/src/components/assignee-picker/assignee-picker-spring.ts +33 -0
  1283. package/src/components/assignee-picker/assignee-picker.tsx +535 -0
  1284. package/src/components/assignee-picker/index.ts +6 -0
  1285. package/src/components/assignee-picker/meta.ts +21 -0
  1286. package/src/components/avatar-group/avatar-group.tsx +176 -0
  1287. package/src/components/avatar-group/index.ts +6 -0
  1288. package/src/components/avatar-group/meta.ts +18 -0
  1289. package/src/components/bar-loader/bar-loader.tsx +549 -0
  1290. package/src/components/bar-loader/index.ts +7 -0
  1291. package/src/components/bar-loader/meta.ts +18 -0
  1292. package/src/components/book/book.tsx +300 -0
  1293. package/src/components/book/index.ts +1 -0
  1294. package/src/components/book/meta.ts +18 -0
  1295. package/src/components/breadcrumb/breadcrumb.tsx +50 -9
  1296. package/src/components/breadcrumb/index.ts +1 -0
  1297. package/src/components/breadcrumb/meta.ts +2 -1
  1298. package/src/components/browser-tabs/browser-tabs-spring.ts +34 -0
  1299. package/src/components/browser-tabs/browser-tabs.tsx +608 -0
  1300. package/src/components/browser-tabs/index.ts +7 -0
  1301. package/src/components/browser-tabs/meta.ts +22 -0
  1302. package/src/components/button/button.tsx +57 -2
  1303. package/src/components/canvas-toolbar/canvas-toolbar.tsx +457 -0
  1304. package/src/components/canvas-toolbar/index.ts +9 -0
  1305. package/src/components/canvas-toolbar/meta.ts +22 -0
  1306. package/src/components/card-spread/card-spread-layouts.ts +251 -0
  1307. package/src/components/card-spread/card-spread.tsx +415 -0
  1308. package/src/components/card-spread/index.ts +19 -0
  1309. package/src/components/card-spread/meta.ts +21 -0
  1310. package/src/components/card-stack/card-stack-layout.ts +100 -0
  1311. package/src/components/card-stack/card-stack.tsx +359 -0
  1312. package/src/components/card-stack/index.ts +1 -0
  1313. package/src/components/card-stack/meta.ts +20 -0
  1314. package/src/components/carousel-3d/carousel-3d.tsx +501 -0
  1315. package/src/components/carousel-3d/index.ts +7 -0
  1316. package/src/components/carousel-3d/meta.ts +20 -0
  1317. package/src/components/checkbox/checkbox.tsx +29 -1
  1318. package/src/components/code-block/code-block.tsx +11 -110
  1319. package/src/components/code-block/index.ts +4 -1
  1320. package/src/components/code-block/meta.ts +1 -1
  1321. package/src/components/combobox/combobox.tsx +165 -12
  1322. package/src/components/combobox/index.ts +1 -0
  1323. package/src/components/combobox/meta.ts +2 -1
  1324. package/src/components/command-bar/command-bar.tsx +177 -0
  1325. package/src/components/command-bar/index.ts +1 -0
  1326. package/src/components/command-bar/meta.ts +17 -0
  1327. package/src/components/comment-bubble/comment-bubble.tsx +269 -0
  1328. package/src/components/comment-bubble/index.ts +6 -0
  1329. package/src/components/comment-bubble/meta.ts +18 -0
  1330. package/src/components/context-menu/context-menu.tsx +280 -0
  1331. package/src/components/context-menu/index.ts +21 -0
  1332. package/src/components/context-menu/meta.ts +19 -0
  1333. package/src/components/contribution-graph/contribution-graph.tsx +372 -0
  1334. package/src/components/contribution-graph/index.ts +6 -0
  1335. package/src/components/contribution-graph/meta.ts +19 -0
  1336. package/src/components/copy-button/copy-button.tsx +278 -0
  1337. package/src/components/copy-button/index.ts +6 -0
  1338. package/src/components/copy-button/meta.ts +19 -0
  1339. package/src/components/create-menu/create-menu.tsx +319 -0
  1340. package/src/components/create-menu/index.ts +7 -0
  1341. package/src/components/create-menu/meta.ts +21 -0
  1342. package/src/components/cursor-follow/cursor-follow.tsx +186 -0
  1343. package/src/components/cursor-follow/index.ts +1 -0
  1344. package/src/components/cursor-follow/meta.ts +19 -0
  1345. package/src/components/dial/dial.tsx +308 -0
  1346. package/src/components/dial/index.ts +1 -0
  1347. package/src/components/dial/meta.ts +19 -0
  1348. package/src/components/dialog/dialog.tsx +79 -36
  1349. package/src/components/dialog/meta.ts +2 -1
  1350. package/src/components/diff-viewer/diff-viewer.tsx +158 -19
  1351. package/src/components/diff-viewer/meta.ts +4 -1
  1352. package/src/components/dither-area/dither-area.tsx +280 -0
  1353. package/src/components/dither-area/index.ts +9 -0
  1354. package/src/components/dither-area/meta.ts +18 -0
  1355. package/src/components/dither-bar/dither-bar.tsx +389 -0
  1356. package/src/components/dither-bar/index.ts +8 -0
  1357. package/src/components/dither-bar/meta.ts +19 -0
  1358. package/src/components/dither-canvas/canvas-mock.ts +143 -0
  1359. package/src/components/dither-canvas/dither-canvas.tsx +382 -0
  1360. package/src/components/dither-canvas/dither-engine.ts +354 -0
  1361. package/src/components/dither-canvas/dither-geometry.ts +295 -0
  1362. package/src/components/dither-canvas/dither-scrubber.tsx +244 -0
  1363. package/src/components/dither-canvas/index.ts +68 -0
  1364. package/src/components/dither-canvas/meta.ts +19 -0
  1365. package/src/components/dither-donut/dither-donut.tsx +377 -0
  1366. package/src/components/dither-donut/index.ts +7 -0
  1367. package/src/components/dither-donut/meta.ts +19 -0
  1368. package/src/components/dither-funnel/dither-funnel.tsx +273 -0
  1369. package/src/components/dither-funnel/index.ts +9 -0
  1370. package/src/components/dither-funnel/meta.ts +19 -0
  1371. package/src/components/dither-gauge/dither-gauge.tsx +279 -0
  1372. package/src/components/dither-gauge/index.ts +8 -0
  1373. package/src/components/dither-gauge/meta.ts +19 -0
  1374. package/src/components/dither-heatmap/dither-heatmap.tsx +453 -0
  1375. package/src/components/dither-heatmap/index.ts +10 -0
  1376. package/src/components/dither-heatmap/meta.ts +19 -0
  1377. package/src/components/dither-line/dither-line.tsx +244 -0
  1378. package/src/components/dither-line/index.ts +8 -0
  1379. package/src/components/dither-line/meta.ts +18 -0
  1380. package/src/components/dither-meter/dither-meter.tsx +299 -0
  1381. package/src/components/dither-meter/index.ts +8 -0
  1382. package/src/components/dither-meter/meta.ts +19 -0
  1383. package/src/components/dither-scatter/dither-scatter.tsx +317 -0
  1384. package/src/components/dither-scatter/index.ts +8 -0
  1385. package/src/components/dither-scatter/meta.ts +19 -0
  1386. package/src/components/dot-morph-button/dot-morph-button.tsx +86 -0
  1387. package/src/components/dot-morph-button/index.ts +5 -0
  1388. package/src/components/dot-morph-button/meta.ts +17 -0
  1389. package/src/components/dots-loader/dots-loader.tsx +451 -0
  1390. package/src/components/dots-loader/index.ts +7 -0
  1391. package/src/components/dots-loader/meta.ts +17 -0
  1392. package/src/components/drag-stepper/drag-stepper.tsx +367 -0
  1393. package/src/components/drag-stepper/index.ts +1 -0
  1394. package/src/components/drag-stepper/meta.ts +23 -0
  1395. package/src/components/drawer/drawer.tsx +77 -34
  1396. package/src/components/drawer/meta.ts +1 -1
  1397. package/src/components/dropdown-menu/dropdown-menu.tsx +47 -10
  1398. package/src/components/dropdown-menu/meta.ts +2 -1
  1399. package/src/components/effect-button/effect-button.tsx +310 -0
  1400. package/src/components/effect-button/index.ts +8 -0
  1401. package/src/components/effect-button/meta.ts +18 -0
  1402. package/src/components/escape-button/escape-button.tsx +232 -0
  1403. package/src/components/escape-button/index.ts +1 -0
  1404. package/src/components/escape-button/meta.ts +18 -0
  1405. package/src/components/expandable-cards/expandable-cards.tsx +435 -0
  1406. package/src/components/expandable-cards/index.ts +6 -0
  1407. package/src/components/expandable-cards/meta.ts +20 -0
  1408. package/src/components/expandable-list/expandable-list.tsx +260 -0
  1409. package/src/components/expandable-list/index.ts +6 -0
  1410. package/src/components/expandable-list/meta.ts +19 -0
  1411. package/src/components/expanding-search/expanding-search.tsx +244 -0
  1412. package/src/components/expanding-search/index.ts +5 -0
  1413. package/src/components/expanding-search/meta.ts +19 -0
  1414. package/src/components/exposure-slider/exposure-slider.tsx +351 -0
  1415. package/src/components/exposure-slider/index.ts +5 -0
  1416. package/src/components/exposure-slider/meta.ts +20 -0
  1417. package/src/components/file-upload/file-upload.tsx +134 -12
  1418. package/src/components/file-upload/meta.ts +2 -1
  1419. package/src/components/focus-blur-links/focus-blur-links.tsx +189 -0
  1420. package/src/components/focus-blur-links/index.ts +7 -0
  1421. package/src/components/focus-blur-links/meta.ts +18 -0
  1422. package/src/components/folding-frame/folding-frame.tsx +435 -0
  1423. package/src/components/folding-frame/index.ts +1 -0
  1424. package/src/components/folding-frame/meta.ts +21 -0
  1425. package/src/components/form/form.tsx +105 -13
  1426. package/src/components/form/meta.ts +2 -1
  1427. package/src/components/glass-bubble/glass-bubble.tsx +418 -0
  1428. package/src/components/glass-bubble/index.ts +9 -0
  1429. package/src/components/glass-bubble/meta.ts +20 -0
  1430. package/src/components/glow-card/glow-card.tsx +195 -0
  1431. package/src/components/glow-card/index.ts +7 -0
  1432. package/src/components/glow-card/meta.ts +18 -0
  1433. package/src/components/goo-ball/goo-ball.tsx +379 -0
  1434. package/src/components/goo-ball/index.ts +7 -0
  1435. package/src/components/goo-ball/meta.ts +19 -0
  1436. package/src/components/goo-tabs/goo-tabs.tsx +389 -0
  1437. package/src/components/goo-tabs/index.ts +11 -0
  1438. package/src/components/goo-tabs/meta.ts +20 -0
  1439. package/src/components/gooey-popover/gooey-popover.tsx +332 -0
  1440. package/src/components/gooey-popover/index.ts +1 -0
  1441. package/src/components/gooey-popover/meta.ts +20 -0
  1442. package/src/components/gradient-orb/gradient-orb.tsx +230 -0
  1443. package/src/components/gradient-orb/index.ts +6 -0
  1444. package/src/components/gradient-orb/meta.ts +17 -0
  1445. package/src/components/grid-loader/grid-loader.tsx +364 -0
  1446. package/src/components/grid-loader/index.ts +10 -0
  1447. package/src/components/grid-loader/meta.ts +17 -0
  1448. package/src/components/image-accordion/image-accordion.tsx +230 -0
  1449. package/src/components/image-accordion/index.ts +6 -0
  1450. package/src/components/image-accordion/meta.ts +20 -0
  1451. package/src/components/image-metadata/image-metadata.tsx +265 -0
  1452. package/src/components/image-metadata/index.ts +6 -0
  1453. package/src/components/image-metadata/meta.ts +19 -0
  1454. package/src/components/image-selector/image-selector.tsx +338 -0
  1455. package/src/components/image-selector/index.ts +6 -0
  1456. package/src/components/image-selector/meta.ts +20 -0
  1457. package/src/components/inline-confirm/index.ts +6 -0
  1458. package/src/components/inline-confirm/inline-confirm.tsx +363 -0
  1459. package/src/components/inline-confirm/meta.ts +18 -0
  1460. package/src/components/input/floating-label-input.tsx +110 -0
  1461. package/src/components/input/index.ts +5 -0
  1462. package/src/components/input/meta.ts +3 -2
  1463. package/src/components/invite-carousel/carousel-controls.tsx +291 -0
  1464. package/src/components/invite-carousel/index.ts +8 -0
  1465. package/src/components/invite-carousel/invite-carousel.tsx +359 -0
  1466. package/src/components/invite-carousel/meta.ts +21 -0
  1467. package/src/components/island/index.ts +7 -0
  1468. package/src/components/island/island.tsx +162 -0
  1469. package/src/components/island/meta.ts +18 -0
  1470. package/src/components/liquid-toggle/index.ts +1 -0
  1471. package/src/components/liquid-toggle/liquid-toggle.tsx +254 -0
  1472. package/src/components/liquid-toggle/meta.ts +18 -0
  1473. package/src/components/magnetic-button/index.ts +1 -0
  1474. package/src/components/magnetic-button/magnetic-button.tsx +218 -0
  1475. package/src/components/magnetic-button/meta.ts +18 -0
  1476. package/src/components/magnetic-select/index.ts +6 -0
  1477. package/src/components/magnetic-select/magnetic-select-spring.ts +33 -0
  1478. package/src/components/magnetic-select/magnetic-select.tsx +426 -0
  1479. package/src/components/magnetic-select/meta.ts +19 -0
  1480. package/src/components/magnify-dock/index.ts +7 -0
  1481. package/src/components/magnify-dock/magnify-dock.tsx +308 -0
  1482. package/src/components/magnify-dock/meta.ts +21 -0
  1483. package/src/components/marquee/index.ts +1 -0
  1484. package/src/components/marquee/marquee.tsx +215 -0
  1485. package/src/components/marquee/meta.ts +19 -0
  1486. package/src/components/morph-button/index.ts +7 -0
  1487. package/src/components/morph-button/meta.ts +18 -0
  1488. package/src/components/morph-button/morph-button.tsx +390 -0
  1489. package/src/components/morph-surface/index.ts +7 -0
  1490. package/src/components/morph-surface/meta.ts +21 -0
  1491. package/src/components/morph-surface/morph-surface.tsx +367 -0
  1492. package/src/components/notification-badge/index.ts +6 -0
  1493. package/src/components/notification-badge/meta.ts +19 -0
  1494. package/src/components/notification-badge/notification-badge.tsx +183 -0
  1495. package/src/components/notify-button/index.ts +1 -0
  1496. package/src/components/notify-button/meta.ts +17 -0
  1497. package/src/components/notify-button/notify-button.tsx +194 -0
  1498. package/src/components/now-playing/index.ts +1 -0
  1499. package/src/components/now-playing/meta.ts +19 -0
  1500. package/src/components/now-playing/now-playing.tsx +474 -0
  1501. package/src/components/number-flow/index.ts +10 -0
  1502. package/src/components/number-flow/meta.ts +18 -0
  1503. package/src/components/number-flow/number-flow.tsx +330 -0
  1504. package/src/components/orb-face/index.ts +1 -0
  1505. package/src/components/orb-face/meta.ts +18 -0
  1506. package/src/components/orb-face/orb-face.tsx +431 -0
  1507. package/src/components/otp-input/index.ts +6 -0
  1508. package/src/components/otp-input/meta.ts +21 -0
  1509. package/src/components/otp-input/otp-input.tsx +407 -0
  1510. package/src/components/pagination/index.ts +1 -0
  1511. package/src/components/pagination/meta.ts +4 -2
  1512. package/src/components/pagination/pagination-indicator.tsx +95 -0
  1513. package/src/components/pagination/pagination.tsx +37 -3
  1514. package/src/components/palette-generator/index.ts +8 -0
  1515. package/src/components/palette-generator/meta.ts +17 -0
  1516. package/src/components/palette-generator/palette-generator.tsx +300 -0
  1517. package/src/components/photo-stack/index.ts +1 -0
  1518. package/src/components/photo-stack/meta.ts +19 -0
  1519. package/src/components/photo-stack/photo-stack.tsx +310 -0
  1520. package/src/components/photo-tabs/index.ts +1 -0
  1521. package/src/components/photo-tabs/meta.ts +18 -0
  1522. package/src/components/photo-tabs/photo-tabs.tsx +180 -0
  1523. package/src/components/pixel-avatar/index.ts +1 -0
  1524. package/src/components/pixel-avatar/meta.ts +17 -0
  1525. package/src/components/pixel-avatar/pixel-avatar.tsx +249 -0
  1526. package/src/components/product-card/index.ts +1 -0
  1527. package/src/components/product-card/meta.ts +20 -0
  1528. package/src/components/product-card/product-card.tsx +313 -0
  1529. package/src/components/progress/meta.ts +2 -1
  1530. package/src/components/progress/progress.tsx +123 -27
  1531. package/src/components/pull-to-refresh/index.ts +7 -0
  1532. package/src/components/pull-to-refresh/meta.ts +20 -0
  1533. package/src/components/pull-to-refresh/pull-to-refresh.tsx +421 -0
  1534. package/src/components/radial-menu/index.ts +7 -0
  1535. package/src/components/radial-menu/meta.ts +22 -0
  1536. package/src/components/radial-menu/radial-menu.tsx +441 -0
  1537. package/src/components/radio-group/radio-group.tsx +12 -1
  1538. package/src/components/range-dial/index.ts +1 -0
  1539. package/src/components/range-dial/meta.ts +21 -0
  1540. package/src/components/range-dial/range-dial.tsx +428 -0
  1541. package/src/components/reorder-list/index.ts +10 -0
  1542. package/src/components/reorder-list/meta.ts +21 -0
  1543. package/src/components/reorder-list/reorder-list.tsx +627 -0
  1544. package/src/components/reviews-carousel/carousel-controls.tsx +291 -0
  1545. package/src/components/reviews-carousel/index.ts +7 -0
  1546. package/src/components/reviews-carousel/meta.ts +21 -0
  1547. package/src/components/reviews-carousel/reviews-carousel.tsx +301 -0
  1548. package/src/components/rich-popover/index.ts +1 -0
  1549. package/src/components/rich-popover/meta.ts +18 -0
  1550. package/src/components/rich-popover/rich-popover.tsx +228 -0
  1551. package/src/components/ring-loader/index.ts +7 -0
  1552. package/src/components/ring-loader/meta.ts +17 -0
  1553. package/src/components/ring-loader/ring-loader.tsx +795 -0
  1554. package/src/components/scramble-text/index.ts +8 -0
  1555. package/src/components/scramble-text/meta.ts +17 -0
  1556. package/src/components/scramble-text/scramble-text.tsx +250 -0
  1557. package/src/components/scroll-reveal-text/index.ts +6 -0
  1558. package/src/components/scroll-reveal-text/meta.ts +18 -0
  1559. package/src/components/scroll-reveal-text/scroll-reveal-text.tsx +193 -0
  1560. package/src/components/scrubber/index.ts +1 -0
  1561. package/src/components/scrubber/meta.ts +20 -0
  1562. package/src/components/scrubber/scrubber.tsx +348 -0
  1563. package/src/components/select/meta.ts +2 -1
  1564. package/src/components/select/select.tsx +69 -22
  1565. package/src/components/selection-list/index.ts +6 -0
  1566. package/src/components/selection-list/meta.ts +21 -0
  1567. package/src/components/selection-list/selection-list-spring.ts +33 -0
  1568. package/src/components/selection-list/selection-list.tsx +497 -0
  1569. package/src/components/shader-transition/index.ts +21 -0
  1570. package/src/components/shader-transition/meta.ts +23 -0
  1571. package/src/components/shader-transition/shader-transition-engine.ts +396 -0
  1572. package/src/components/shader-transition/shader-transition-presets.ts +424 -0
  1573. package/src/components/shader-transition/shader-transition.tsx +470 -0
  1574. package/src/components/shader-transition/webgl-mock.ts +176 -0
  1575. package/src/components/shape-loader/index.ts +7 -0
  1576. package/src/components/shape-loader/meta.ts +17 -0
  1577. package/src/components/shape-loader/shape-loader-variants.tsx +717 -0
  1578. package/src/components/shape-loader/shape-loader.tsx +149 -0
  1579. package/src/components/sheet/meta.ts +1 -1
  1580. package/src/components/sheet/sheet.tsx +73 -31
  1581. package/src/components/shimmer-text/index.ts +7 -0
  1582. package/src/components/shimmer-text/meta.ts +18 -0
  1583. package/src/components/shimmer-text/shimmer-text.tsx +218 -0
  1584. package/src/components/skeleton/index.ts +1 -1
  1585. package/src/components/skeleton/meta.ts +2 -1
  1586. package/src/components/skeleton/skeleton.tsx +49 -7
  1587. package/src/components/slide-to-confirm/index.ts +6 -0
  1588. package/src/components/slide-to-confirm/meta.ts +20 -0
  1589. package/src/components/slide-to-confirm/slide-to-confirm.tsx +519 -0
  1590. package/src/components/slosh-slider/index.ts +6 -0
  1591. package/src/components/slosh-slider/meta.ts +20 -0
  1592. package/src/components/slosh-slider/slosh-slider.tsx +266 -0
  1593. package/src/components/social-selector/index.ts +6 -0
  1594. package/src/components/social-selector/meta.ts +18 -0
  1595. package/src/components/social-selector/social-selector.tsx +247 -0
  1596. package/src/components/star-count/index.ts +1 -0
  1597. package/src/components/star-count/meta.ts +18 -0
  1598. package/src/components/star-count/star-count.tsx +161 -0
  1599. package/src/components/stepper/index.ts +8 -0
  1600. package/src/components/stepper/meta.ts +20 -0
  1601. package/src/components/stepper/stepper.tsx +364 -0
  1602. package/src/components/swipe-carousel/carousel-controls.tsx +148 -0
  1603. package/src/components/swipe-carousel/index.ts +6 -0
  1604. package/src/components/swipe-carousel/meta.ts +21 -0
  1605. package/src/components/swipe-carousel/swipe-carousel.tsx +407 -0
  1606. package/src/components/switch/meta.ts +3 -1
  1607. package/src/components/switch/switch.tsx +69 -4
  1608. package/src/components/switchboard-card/index.ts +6 -0
  1609. package/src/components/switchboard-card/meta.ts +18 -0
  1610. package/src/components/switchboard-card/switchboard-card.tsx +312 -0
  1611. package/src/components/tabs/index.ts +1 -0
  1612. package/src/components/tabs/meta.ts +3 -1
  1613. package/src/components/tabs/tabs.tsx +144 -4
  1614. package/src/components/tags-input/meta.ts +2 -1
  1615. package/src/components/tags-input/tags-input.tsx +122 -4
  1616. package/src/components/text-effect/index.ts +10 -0
  1617. package/src/components/text-effect/meta.ts +18 -0
  1618. package/src/components/text-effect/text-effect-presets.ts +305 -0
  1619. package/src/components/text-effect/text-effect.tsx +454 -0
  1620. package/src/components/text-loader/index.ts +7 -0
  1621. package/src/components/text-loader/meta.ts +17 -0
  1622. package/src/components/text-loader/text-loader.tsx +585 -0
  1623. package/src/components/text-swap/index.ts +9 -0
  1624. package/src/components/text-swap/meta.ts +20 -0
  1625. package/src/components/text-swap/text-rotate.tsx +76 -0
  1626. package/src/components/text-swap/text-swap.tsx +414 -0
  1627. package/src/components/tick-progress/index.ts +1 -0
  1628. package/src/components/tick-progress/meta.ts +19 -0
  1629. package/src/components/tick-progress/tick-progress.tsx +253 -0
  1630. package/src/components/tilt-card/index.ts +6 -0
  1631. package/src/components/tilt-card/meta.ts +18 -0
  1632. package/src/components/tilt-card/tilt-card.tsx +256 -0
  1633. package/src/components/time-stack/index.ts +6 -0
  1634. package/src/components/time-stack/meta.ts +19 -0
  1635. package/src/components/time-stack/time-stack.tsx +385 -0
  1636. package/src/components/toast/meta.ts +2 -1
  1637. package/src/components/toast/toast.tsx +67 -9
  1638. package/src/components/todo-tower/index.ts +1 -0
  1639. package/src/components/todo-tower/meta.ts +18 -0
  1640. package/src/components/todo-tower/todo-tower.tsx +429 -0
  1641. package/src/components/tooltip/meta.ts +1 -1
  1642. package/src/components/tooltip/tooltip.tsx +39 -15
  1643. package/src/components/tweet-card/index.ts +11 -0
  1644. package/src/components/tweet-card/meta.ts +19 -0
  1645. package/src/components/tweet-card/tweet-card.tsx +372 -0
  1646. package/src/components/typewriter-text/index.ts +6 -0
  1647. package/src/components/typewriter-text/meta.ts +17 -0
  1648. package/src/components/typewriter-text/typewriter-text.tsx +214 -0
  1649. package/src/components/uptime-matrix/index.ts +11 -0
  1650. package/src/components/uptime-matrix/meta.ts +20 -0
  1651. package/src/components/uptime-matrix/uptime-matrix.tsx +443 -0
  1652. package/src/index.ts +109 -0
  1653. package/src/registry/blocks.ts +68 -0
  1654. package/src/registry/components.ts +218 -0
  1655. package/src/registry/schema.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","names":[],"sources":["../../../src/components/code-block/code-block.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useEffect, useRef, useState, type ComponentPropsWithRef } from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * A block of code, with a copy control.\n *\n * Syntax highlighting is deliberately not built in. A highlighter is a large\n * dependency, a theme system of its own, and a choice between build-time and\n * runtime that belongs to the application. Pass already-highlighted markup as\n * children and the styling here applies to it; pass a plain string and it\n * renders as plain code.\n */\n\nexport interface CodeBlockProps extends ComponentPropsWithRef<\"div\"> {\n /** Shown in the header and used as the language hint. */\n language?: string;\n /** Filename or other caption for the header. */\n title?: string;\n /**\n * The text the copy button puts on the clipboard.\n *\n * Required when children are rendered markup, because reading text back out\n * of highlighted DOM loses whitespace in ways that break pasted code.\n */\n code?: string;\n /** Hides the copy control. */\n hideCopy?: boolean;\n}\n\nexport function CodeBlock({\n className,\n language,\n title,\n code,\n hideCopy,\n children,\n ...props\n}: CodeBlockProps) {\n const preRef = useRef<HTMLPreElement | null>(null);\n const showHeader = Boolean(title ?? language) || !hideCopy;\n\n return (\n <div\n data-slot=\"code-block\"\n data-language={language}\n className={cn(\"overflow-hidden rounded-lg border border-border bg-muted/40\", className)}\n {...props}\n >\n {showHeader ? (\n <div className=\"flex items-center gap-2 border-b border-border px-3 py-1.5\">\n <span className=\"truncate text-2xs font-medium text-muted-foreground\">\n {title ?? language}\n </span>\n {hideCopy ? null : (\n <CopyButton getText={() => code ?? preRef.current?.textContent ?? \"\"} />\n )}\n </div>\n ) : null}\n <pre\n ref={preRef}\n // Focusable named region: code overflows horizontally, and a scroll box\n // that cannot take focus is unreachable by keyboard.\n tabIndex={0}\n role=\"region\"\n aria-label={title ?? (language ? `${language} code` : \"Code\")}\n className={cn(\n \"overflow-x-auto p-3 font-mono text-xs leading-relaxed\",\n focusRing,\n \"focus-visible:ring-inset\",\n )}\n >\n <code>{children}</code>\n </pre>\n </div>\n );\n}\n\nexport interface CopyButtonProps extends Omit<ComponentPropsWithRef<\"button\">, \"onClick\"> {\n getText: () => string;\n label?: string;\n copiedLabel?: string;\n /** How long the confirmation stays, in milliseconds. */\n resetAfter?: number;\n}\n\n/**\n * Copies text and confirms it.\n *\n * The confirmation is announced politely as well as shown — a checkmark that\n * only appears visually leaves a screen reader user with no idea whether the\n * button did anything. Failure is surfaced too, rather than silently looking\n * like success, since the clipboard API can be refused outright.\n */\nexport function CopyButton({\n className,\n getText,\n label = \"Copy code\",\n copiedLabel = \"Copied\",\n resetAfter = 2000,\n ...props\n}: CopyButtonProps) {\n const [state, setState] = useState<\"idle\" | \"copied\" | \"error\">(\"idle\");\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(\n () => () => {\n if (timer.current) clearTimeout(timer.current);\n },\n [],\n );\n\n const copy = useCallback(() => {\n const reset = () => {\n if (timer.current) clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n setState(\"idle\");\n }, resetAfter);\n };\n\n navigator.clipboard.writeText(getText()).then(\n () => {\n setState(\"copied\");\n reset();\n },\n () => {\n // Refused by the browser or unavailable outside a secure context.\n // Saying so beats pretending it worked.\n setState(\"error\");\n reset();\n },\n );\n }, [getText, resetAfter]);\n\n return (\n <button\n type=\"button\"\n data-slot=\"copy-button\"\n data-state={state}\n onClick={copy}\n aria-label={label}\n className={cn(\n \"ms-auto grid size-6 shrink-0 place-items-center rounded text-muted-foreground\",\n \"transition-colors duration-[var(--duration-fast)] hover:bg-accent hover:text-foreground\",\n focusRing,\n className,\n )}\n {...props}\n >\n {state === \"copied\" ? (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\" className=\"size-3.5\">\n <path\n d=\"m5 13 4 4L19 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\" className=\"size-3.5\">\n <rect\n x=\"9\"\n y=\"9\"\n width=\"12\"\n height=\"12\"\n rx=\"2\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n <path\n d=\"M5 15H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n )}\n {/* Announced, not just drawn. */}\n <span role=\"status\" aria-live=\"polite\" className=\"sr-only\">\n {state === \"copied\" ? copiedLabel : state === \"error\" ? \"Copy failed\" : \"\"}\n </span>\n </button>\n );\n}\n"],"mappings":";;;;;;AAiCA,SAAgB,UAAU,EACxB,WACA,UACA,OACA,MACA,UACA,UACA,GAAG,SACc;CACjB,MAAM,SAAS,OAA8B,IAAI;CACjD,MAAM,aAAa,QAAQ,SAAS,QAAQ,KAAK,CAAC;CAElD,OACE,qBAAC,OAAD;EACE,aAAU;EACV,iBAAe;EACf,WAAW,GAAG,+DAA+D,SAAS;EACtF,GAAI;EAJN,UAAA,CAMG,aACC,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD;IAAM,WAAU;IACb,UAAA,SAAS;GACN,CAAA,GACL,WAAW,OACV,oBAAC,YAAD,EAAY,eAAe,QAAQ,OAAO,SAAS,eAAe,GAAK,CAAA,CAEtE;EACH,CAAA,IAAA,MACJ,oBAAC,OAAD;GACE,KAAK;GAGL,UAAU;GACV,MAAK;GACL,cAAY,UAAU,WAAW,GAAG,SAAS,SAAS;GACtD,WAAW,GACT,yDACA,WACA,0BACF;GAEA,UAAA,oBAAC,QAAD,EAAO,SAAe,CAAA;EACnB,CAAA,CACF;;AAET;;;;;;;;;AAkBA,SAAgB,WAAW,EACzB,WACA,SACA,QAAQ,aACR,cAAc,UACd,aAAa,KACb,GAAG,SACe;CAClB,MAAM,CAAC,OAAO,YAAY,SAAsC,MAAM;CACtE,MAAM,QAAQ,OAA6C,IAAI;CAE/D,sBACc;EACV,IAAI,MAAM,SAAS,aAAa,MAAM,OAAO;CAC/C,GACA,CAAC,CACH;CAEA,MAAM,OAAO,kBAAkB;EAC7B,MAAM,cAAc;GAClB,IAAI,MAAM,SAAS,aAAa,MAAM,OAAO;GAC7C,MAAM,UAAU,iBAAiB;IAC/B,SAAS,MAAM;GACjB,GAAG,UAAU;EACf;EAEA,UAAU,UAAU,UAAU,QAAQ,CAAC,CAAC,CAAC,WACjC;GACJ,SAAS,QAAQ;GACjB,MAAM;EACR,SACM;GAGJ,SAAS,OAAO;GAChB,MAAM;EACR,CACF;CACF,GAAG,CAAC,SAAS,UAAU,CAAC;CAExB,OACE,qBAAC,UAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,SAAS;EACT,cAAY;EACZ,WAAW,GACT,iFACA,2FACA,WACA,SACF;EACA,GAAI;EAZN,UAAA,CAcG,UAAU,WACT,oBAAC,OAAD;GAAK,SAAQ;GAAY,MAAK;GAAO,eAAY;GAAO,WAAU;GAChE,UAAA,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;GAChB,CAAA;EACE,CAAA,IAEL,qBAAC,OAAD;GAAK,SAAQ;GAAY,MAAK;GAAO,eAAY;GAAO,WAAU;GAAlE,UAAA,CACE,oBAAC,QAAD;IACE,GAAE;IACF,GAAE;IACF,OAAM;IACN,QAAO;IACP,IAAG;IACH,QAAO;IACP,aAAY;GACb,CAAA,GACD,oBAAC,QAAD;IACE,GAAE;IACF,QAAO;IACP,aAAY;IACZ,eAAc;GACf,CAAA,CACE;EAGP,CAAA,GAAA,oBAAC,QAAD;GAAM,MAAK;GAAS,aAAU;GAAS,WAAU;GAC9C,UAAA,UAAU,WAAW,cAAc,UAAU,UAAU,gBAAgB;EACpE,CAAA,CACA;;AAEZ"}
1
+ {"version":3,"file":"code-block.js","names":[],"sources":["../../../src/components/code-block/code-block.tsx"],"sourcesContent":["\"use client\";\n\nimport { useRef, type ComponentPropsWithRef } from \"react\";\n\nimport { CopyButton } from \"@/components/copy-button\";\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * A block of code, with a copy control.\n *\n * Syntax highlighting is deliberately not built in. A highlighter is a large\n * dependency, a theme system of its own, and a choice between build-time and\n * runtime that belongs to the application. Pass already-highlighted markup as\n * children and the styling here applies to it; pass a plain string and it\n * renders as plain code.\n */\n\nexport interface CodeBlockProps extends ComponentPropsWithRef<\"div\"> {\n /** Shown in the header and used as the language hint. */\n language?: string;\n /** Filename or other caption for the header. */\n title?: string;\n /**\n * The text the copy button puts on the clipboard.\n *\n * Required when children are rendered markup, because reading text back out\n * of highlighted DOM loses whitespace in ways that break pasted code.\n */\n code?: string;\n /** Hides the copy control. */\n hideCopy?: boolean;\n}\n\nexport function CodeBlock({\n className,\n language,\n title,\n code,\n hideCopy,\n children,\n ...props\n}: CodeBlockProps) {\n const preRef = useRef<HTMLPreElement | null>(null);\n const showHeader = Boolean(title ?? language) || !hideCopy;\n\n return (\n <div\n data-slot=\"code-block\"\n data-language={language}\n className={cn(\"overflow-hidden rounded-lg border border-border bg-muted/40\", className)}\n {...props}\n >\n {showHeader ? (\n <div className=\"flex items-center gap-2 border-b border-border px-3 py-1.5\">\n <span className=\"truncate text-2xs font-medium text-muted-foreground\">\n {title ?? language}\n </span>\n {hideCopy ? null : (\n <CopyButton\n value={() => code ?? preRef.current?.textContent ?? \"\"}\n variant=\"ghost\"\n aria-label=\"Copy code\"\n className={cn(\n \"ms-auto size-6 rounded text-muted-foreground hover:text-foreground\",\n \"[&_svg:not([class*='size-'])]:size-3.5\",\n )}\n />\n )}\n </div>\n ) : null}\n <pre\n ref={preRef}\n // Focusable named region: code overflows horizontally, and a scroll box\n // that cannot take focus is unreachable by keyboard.\n tabIndex={0}\n role=\"region\"\n aria-label={title ?? (language ? `${language} code` : \"Code\")}\n className={cn(\n \"overflow-x-auto p-3 font-mono text-xs leading-relaxed\",\n focusRing,\n \"focus-visible:ring-inset\",\n )}\n >\n <code>{children}</code>\n </pre>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAkCA,SAAgB,UAAU,EACxB,WACA,UACA,OACA,MACA,UACA,UACA,GAAG,SACc;CACjB,MAAM,SAAS,OAA8B,IAAI;CACjD,MAAM,aAAa,QAAQ,SAAS,QAAQ,KAAK,CAAC;CAElD,OACE,qBAAC,OAAD;EACE,aAAU;EACV,iBAAe;EACf,WAAW,GAAG,+DAA+D,SAAS;EACtF,GAAI;EAJN,UAAA,CAMG,aACC,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD;IAAM,WAAU;IACb,UAAA,SAAS;GACN,CAAA,GACL,WAAW,OACV,oBAAC,YAAD;IACE,aAAa,QAAQ,OAAO,SAAS,eAAe;IACpD,SAAQ;IACR,cAAW;IACX,WAAW,GACT,sEACA,wCACF;GACD,CAAA,CAEA;EACH,CAAA,IAAA,MACJ,oBAAC,OAAD;GACE,KAAK;GAGL,UAAU;GACV,MAAK;GACL,cAAY,UAAU,WAAW,GAAG,SAAS,SAAS;GACtD,WAAW,GACT,yDACA,WACA,0BACF;GAEA,UAAA,oBAAC,QAAD,EAAO,SAAe,CAAA;EACnB,CAAA,CACF;;AAET"}
@@ -1,2 +1,4 @@
1
- import { CodeBlock, CodeBlockProps, CopyButton, CopyButtonProps } from "./code-block.js";
1
+ import { CodeBlock, CodeBlockProps } from "./code-block.js";
2
+ import { CopyButton, CopyButtonProps } from "../copy-button/copy-button.js";
3
+ import "../copy-button/index.js";
2
4
  export { CodeBlock, type CodeBlockProps, CopyButton, type CopyButtonProps };
@@ -1,2 +1,3 @@
1
- import { CodeBlock, CopyButton } from "./code-block.js";
1
+ import { CopyButton } from "../copy-button/copy-button.js";
2
+ import { CodeBlock } from "./code-block.js";
2
3
  export { CodeBlock, CopyButton };
@@ -7,7 +7,7 @@ const meta = defineMeta({
7
7
  category: "data",
8
8
  status: "stable",
9
9
  dependencies: [],
10
- registryDependencies: [],
10
+ registryDependencies: ["copy-button"],
11
11
  files: ["code-block.tsx"],
12
12
  a11y: "The pre is a focusable named region, since code overflows horizontally and an unfocusable scroll box is unreachable by keyboard. Copying is announced through a polite live region as well as shown, and a refused clipboard write reports failure rather than looking like success."
13
13
  });
@@ -1 +1 @@
1
- {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/code-block/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"code-block\",\n title: \"Code Block\",\n description: \"A block of code with a copy control, ready for any highlighter.\",\n category: \"data\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [],\n files: [\"code-block.tsx\"],\n a11y:\n \"The pre is a focusable named region, since code overflows horizontally and an unfocusable \" +\n \"scroll box is unreachable by keyboard. Copying is announced through a polite live region as \" +\n \"well as shown, and a refused clipboard write reports failure rather than looking like \" +\n \"success.\",\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,gBAAgB;CACxB,MACE;AAIJ,CAAC"}
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/code-block/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"code-block\",\n title: \"Code Block\",\n description: \"A block of code with a copy control, ready for any highlighter.\",\n category: \"data\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [\"copy-button\"],\n files: [\"code-block.tsx\"],\n a11y:\n \"The pre is a focusable named region, since code overflows horizontally and an unfocusable \" +\n \"scroll box is unreachable by keyboard. Copying is announced through a polite live region as \" +\n \"well as shown, and a refused clipboard write reports failure rather than looking like \" +\n \"success.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC;CACf,sBAAsB,CAAC,aAAa;CACpC,OAAO,CAAC,gBAAgB;CACxB,MACE;AAIJ,CAAC"}
@@ -27,9 +27,25 @@ interface ComboboxProps {
27
27
  onOpenChange?: (open: boolean) => void;
28
28
  /** Overrides how a search string is matched against an option. */
29
29
  filter?: (search: string, haystack: string[]) => boolean;
30
+ /**
31
+ * Set `false` when the options are already the results for the search — for
32
+ * example when `onSearchChange` fetches them — so they are not filtered twice.
33
+ */
34
+ shouldFilter?: boolean;
35
+ /** Called as the search text changes, including the reset when it closes. */
36
+ onSearchChange?: (search: string) => void;
37
+ /** Milliseconds of quiet typing before `onSearchChange` fires. */
38
+ searchDebounce?: number;
39
+ /**
40
+ * Results are on their way: the listbox is `aria-busy`, `ComboboxLoading`
41
+ * shows and `ComboboxEmpty` holds back, so "No results" never flashes first.
42
+ */
43
+ loading?: boolean;
44
+ /** Choosing the selected option again clears it, reporting `""`. */
45
+ allowDeselect?: boolean;
30
46
  children?: ReactNode;
31
47
  }
32
- declare function Combobox({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, filter, children }: ComboboxProps): import("react").JSX.Element;
48
+ declare function Combobox({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, filter: filterProp, shouldFilter, onSearchChange, searchDebounce, loading, allowDeselect, children }: ComboboxProps): import("react").JSX.Element;
33
49
  interface ComboboxTriggerProps extends ComponentPropsWithRef<"button"> {
34
50
  /** Shown when nothing is selected. */
35
51
  placeholder?: string;
@@ -40,8 +56,11 @@ interface ComboboxContentProps extends ComponentPropsWithRef<typeof Popover.Cont
40
56
  label?: string;
41
57
  }
42
58
  declare function ComboboxContent({ className, align, sideOffset, label, children, ...props }: ComboboxContentProps): import("react").JSX.Element;
43
- type ComboboxInputProps = Omit<ComponentPropsWithRef<"input">, "value" | "onChange">;
44
- declare function ComboboxInput({ className, ...props }: ComboboxInputProps): import("react").JSX.Element;
59
+ interface ComboboxInputProps extends Omit<ComponentPropsWithRef<"input">, "value" | "onChange"> {
60
+ /** Shows a button that clears the search while there is text to clear. */
61
+ clearable?: boolean;
62
+ }
63
+ declare function ComboboxInput({ className, clearable, ...props }: ComboboxInputProps): import("react").JSX.Element;
45
64
  declare function ComboboxList({ className, ...props }: ComponentPropsWithRef<"div">): import("react").JSX.Element;
46
65
  interface ComboboxItemProps extends Omit<ComponentPropsWithRef<"div">, "onSelect" | "children"> {
47
66
  /** The value reported by onValueChange, and the primary search term. */
@@ -54,6 +73,11 @@ interface ComboboxItemProps extends Omit<ComponentPropsWithRef<"div">, "onSelect
54
73
  declare function ComboboxItem({ className, value, keywords, disabled, children, ...props }: ComboboxItemProps): import("react").JSX.Element | null;
55
74
  /** Shown only when the filter leaves nothing. */
56
75
  declare function ComboboxEmpty({ className, children, ...props }: ComponentPropsWithRef<"div">): import("react").JSX.Element | null;
76
+ /**
77
+ * Shown only while `loading` is set on Combobox. Render it beside ComboboxList,
78
+ * as with ComboboxEmpty; pass a Spinner as a child if wanted.
79
+ */
80
+ declare function ComboboxLoading({ className, children, ...props }: ComponentPropsWithRef<"div">): import("react").JSX.Element | null;
57
81
  //#endregion
58
- export { Combobox, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxList, ComboboxProps, ComboboxTrigger, ComboboxTriggerProps, defaultComboboxFilter };
82
+ export { Combobox, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxList, ComboboxLoading, ComboboxProps, ComboboxTrigger, ComboboxTriggerProps, defaultComboboxFilter };
59
83
  //# sourceMappingURL=combobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.d.ts","names":[],"sources":["../../../src/components/combobox/combobox.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;iBAqCgB,sBAAsB,gBAAgB;UAkCrC;EACf;EACA;EACA,iBAAiB;EACjB;EACA;EACA,gBAAgB;;EAEhB,UAAU,gBAAgB;EAC1B,WAAW;;iBAGG,WACd,OAAO,WACP,cACA,eACA,MAAM,UACN,aACA,cACA,QACA,YACC,gCAAa,IAAA;UA4FC,6BAA6B;;EAE5C;;iBAGc,kBACd,WACA,aACA,aACG,SACF,uCAAoB,IAAA;UA0CN,6BAA6B,6BACrC,QAAiB;;EAGxB;;iBAGc,kBACd,WACA,OACA,YACA,OACA,aACG,SACF,uCAAoB,IAAA;KAiCX,qBAAqB,KAAK;iBAEtB,gBAAgB,cAAc,SAAS,qCAAkB,IAAA;iBAkHzD,eAAe,cAAc,SAAS,+CAA4B,IAAA;UAejE,0BAA0B,KACzC;;EAIA;;EAEA;EACA;EACA,WAAW;;iBAGG,eACd,WACA,OACA,UACA,UACA,aACG,SACF,oCAAiB,IAAA;;iBAgGJ,gBAAgB,WAAW,aAAa,SAAS,+CAA4B,IAAA"}
1
+ {"version":3,"file":"combobox.d.ts","names":[],"sources":["../../../src/components/combobox/combobox.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;iBAuCgB,sBAAsB,gBAAgB;UAmCrC;EACf;EACA;EACA,iBAAiB;EACjB;EACA;EACA,gBAAgB;;EAEhB,UAAU,gBAAgB;;;;;EAK1B;;EAEA,kBAAkB;;EAElB;;;;;EAKA;;EAEA;EACA,WAAW;;iBAoBG,WACd,OAAO,WACP,cACA,eACA,MAAM,UACN,aACA,cACA,QAAQ,YACR,cACA,gBACA,gBACA,SACA,eACA,YACC,gCAAa,IAAA;UAmIC,6BAA6B;;EAE5C;;iBAGc,kBACd,WACA,aACA,aACG,SACF,uCAAoB,IAAA;UA+CN,6BAA6B,6BACrC,QAAiB;;EAGxB;;iBAGc,kBACd,WACA,OACA,YACA,OACA,aACG,SACF,uCAAoB,IAAA;UAiCN,2BAA2B,KAC1C;;EAIA;;iBAGc,gBAAgB,WAAW,cAAsB,SAAS,qCAAkB,IAAA;iBAgJ5E,eAAe,cAAc,SAAS,+CAA4B,IAAA;UAgBjE,0BAA0B,KACzC;;EAIA;;EAEA;EACA;EACA,WAAW;;iBAGG,eACd,WACA,OACA,UACA,UACA,aACG,SACF,oCAAiB,IAAA;;iBAmGJ,gBAAgB,WAAW,aAAa,SAAS,+CAA4B,IAAA;;;;;iBAoB7E,kBACd,WACA,aACG,SACF,+CAA4B,IAAA"}
@@ -32,13 +32,41 @@ function useCombobox(component) {
32
32
  if (!context) throw new Error(`${component} must be rendered inside <Combobox>.`);
33
33
  return context;
34
34
  }
35
- function Combobox({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen = false, onOpenChange, filter = defaultComboboxFilter, children }) {
35
+ const ITEM_KEYFRAMES = `
36
+ @keyframes dowel-combobox-item-in{from{opacity:0;transform:translateY(0.25rem)}}
37
+ [data-slot="combobox-item"]{animation:dowel-combobox-item-in var(--duration-normal) var(--ease-out-quint) backwards}
38
+ ${Array.from({ length: 8 }, (_, index) => `[data-slot="combobox-item"]:nth-child(${String(index + 2)}){animation-delay:calc(${String((index + 1) * 20)}ms * var(--motion-scale, 1))}`).join("")}
39
+ `;
40
+ function Combobox({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen = false, onOpenChange, filter: filterProp = defaultComboboxFilter, shouldFilter = true, onSearchChange, searchDebounce = 0, loading = false, allowDeselect = false, children }) {
36
41
  const uid = useId();
42
+ const filter = shouldFilter ? filterProp : acceptAll;
37
43
  const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
38
44
  const value = valueProp === void 0 ? uncontrolledValue : valueProp;
39
45
  const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
40
46
  const open = openProp === void 0 ? uncontrolledOpen : openProp;
41
- const [search, setSearch] = useState("");
47
+ const [search, setSearchState] = useState("");
48
+ const searchRef = useRef("");
49
+ const debounceRef = useRef(void 0);
50
+ const onSearchChangeRef = useRef(onSearchChange);
51
+ useEffect(() => {
52
+ onSearchChangeRef.current = onSearchChange;
53
+ }, [onSearchChange]);
54
+ const setSearch = useCallback((next) => {
55
+ if (next === searchRef.current) return;
56
+ searchRef.current = next;
57
+ setSearchState(next);
58
+ clearTimeout(debounceRef.current);
59
+ if (searchDebounce <= 0) {
60
+ onSearchChangeRef.current?.(next);
61
+ return;
62
+ }
63
+ debounceRef.current = setTimeout(() => {
64
+ onSearchChangeRef.current?.(next);
65
+ }, searchDebounce);
66
+ }, [searchDebounce]);
67
+ useEffect(() => () => {
68
+ clearTimeout(debounceRef.current);
69
+ }, []);
42
70
  const [activeValue, setActiveValue] = useState(void 0);
43
71
  const listRef = useRef(null);
44
72
  const visibleValues = useRef(/* @__PURE__ */ new Set());
@@ -58,15 +86,22 @@ function Combobox({ value: valueProp, defaultValue, onValueChange, open: openPro
58
86
  setSearch("");
59
87
  setActiveValue(void 0);
60
88
  }
61
- }, [openProp, onOpenChange]);
62
- const select = useCallback((next) => {
63
- if (valueProp === void 0) setUncontrolledValue(next);
89
+ }, [
90
+ openProp,
91
+ onOpenChange,
92
+ setSearch
93
+ ]);
94
+ const select = useCallback((chosen) => {
95
+ const next = allowDeselect && chosen === value ? "" : chosen;
96
+ if (valueProp === void 0) setUncontrolledValue(next || void 0);
64
97
  onValueChange?.(next);
65
98
  setOpen(false);
66
99
  }, [
67
100
  valueProp,
68
101
  onValueChange,
69
- setOpen
102
+ setOpen,
103
+ allowDeselect,
104
+ value
70
105
  ]);
71
106
  const context = useMemo(() => ({
72
107
  open,
@@ -83,11 +118,14 @@ function Combobox({ value: valueProp, defaultValue, onValueChange, open: openPro
83
118
  optionId: (optionValue) => `${uid}-option-${optionValue.replace(/\s+/g, "-").toLowerCase()}`,
84
119
  listRef,
85
120
  registerVisible,
86
- visibleCount
121
+ visibleCount,
122
+ loading
87
123
  }), [
88
124
  open,
89
125
  setOpen,
90
126
  search,
127
+ setSearch,
128
+ loading,
91
129
  value,
92
130
  select,
93
131
  activeValue,
@@ -105,6 +143,9 @@ function Combobox({ value: valueProp, defaultValue, onValueChange, open: openPro
105
143
  })
106
144
  });
107
145
  }
146
+ function acceptAll() {
147
+ return true;
148
+ }
108
149
  function ComboboxTrigger({ className, placeholder = "Select…", children, ...props }) {
109
150
  const { value, open } = useCombobox("ComboboxTrigger");
110
151
  return /* @__PURE__ */ jsx(Popover.Trigger, {
@@ -122,7 +163,8 @@ function ComboboxTrigger({ className, placeholder = "Select…", children, ...pr
122
163
  viewBox: "0 0 24 24",
123
164
  fill: "none",
124
165
  "aria-hidden": "true",
125
- className: "size-4 shrink-0 opacity-60",
166
+ "data-slot": "combobox-chevron",
167
+ className: cn("size-4 shrink-0 opacity-60", "transition-[rotate] duration-[var(--duration-normal)] ease-[var(--ease-out-quint)]", open && "rotate-180"),
126
168
  children: /* @__PURE__ */ jsx("path", {
127
169
  d: "m7 10 5 5 5-5",
128
170
  stroke: "currentColor",
@@ -153,7 +195,7 @@ function visibleOptions(list) {
153
195
  if (!list) return [];
154
196
  return Array.from(list.querySelectorAll("[role=\"option\"]:not([data-disabled])"));
155
197
  }
156
- function ComboboxInput({ className, ...props }) {
198
+ function ComboboxInput({ className, clearable = false, ...props }) {
157
199
  const { search, setSearch, activeValue, setActiveValue, select, setOpen, listId, inputId, optionId, listRef } = useCombobox("ComboboxInput");
158
200
  const inputRef = useRef(null);
159
201
  useEffect(() => {
@@ -207,51 +249,81 @@ function ComboboxInput({ className, ...props }) {
207
249
  }
208
250
  return /* @__PURE__ */ jsxs("div", {
209
251
  className: "flex items-center gap-2 border-b border-border px-3",
210
- children: [/* @__PURE__ */ jsxs("svg", {
211
- viewBox: "0 0 24 24",
212
- fill: "none",
213
- "aria-hidden": "true",
214
- className: "size-4 shrink-0 opacity-55",
215
- children: [/* @__PURE__ */ jsx("circle", {
216
- cx: "11",
217
- cy: "11",
218
- r: "7",
219
- stroke: "currentColor",
220
- strokeWidth: "2"
221
- }), /* @__PURE__ */ jsx("path", {
222
- d: "m20 20-3.5-3.5",
223
- stroke: "currentColor",
224
- strokeWidth: "2",
225
- strokeLinecap: "round"
226
- })]
227
- }), /* @__PURE__ */ jsx("input", {
228
- ref: inputRef,
229
- id: inputId,
230
- "data-slot": "combobox-input",
231
- type: "text",
232
- role: "combobox",
233
- autoComplete: "off",
234
- "aria-expanded": "true",
235
- "aria-controls": listId,
236
- "aria-autocomplete": "list",
237
- "aria-activedescendant": activeValue ? optionId(activeValue) : void 0,
238
- value: search,
239
- onChange: (event) => {
240
- setSearch(event.target.value);
241
- setActiveValue(void 0);
242
- },
243
- onKeyDown: handleKeyDown,
244
- className: cn("h-10 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground", className),
245
- ...props
246
- })]
252
+ children: [
253
+ /* @__PURE__ */ jsxs("svg", {
254
+ viewBox: "0 0 24 24",
255
+ fill: "none",
256
+ "aria-hidden": "true",
257
+ className: "size-4 shrink-0 opacity-55",
258
+ children: [/* @__PURE__ */ jsx("circle", {
259
+ cx: "11",
260
+ cy: "11",
261
+ r: "7",
262
+ stroke: "currentColor",
263
+ strokeWidth: "2"
264
+ }), /* @__PURE__ */ jsx("path", {
265
+ d: "m20 20-3.5-3.5",
266
+ stroke: "currentColor",
267
+ strokeWidth: "2",
268
+ strokeLinecap: "round"
269
+ })]
270
+ }),
271
+ /* @__PURE__ */ jsx("input", {
272
+ ref: inputRef,
273
+ id: inputId,
274
+ "data-slot": "combobox-input",
275
+ type: "text",
276
+ role: "combobox",
277
+ autoComplete: "off",
278
+ "aria-expanded": "true",
279
+ "aria-controls": listId,
280
+ "aria-autocomplete": "list",
281
+ "aria-activedescendant": activeValue ? optionId(activeValue) : void 0,
282
+ value: search,
283
+ onChange: (event) => {
284
+ setSearch(event.target.value);
285
+ setActiveValue(void 0);
286
+ },
287
+ onKeyDown: handleKeyDown,
288
+ className: cn("h-10 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground", className),
289
+ ...props
290
+ }),
291
+ clearable && search ? /* @__PURE__ */ jsx("button", {
292
+ type: "button",
293
+ "data-slot": "combobox-clear",
294
+ "aria-label": "Clear search",
295
+ onMouseDown: (event) => {
296
+ event.preventDefault();
297
+ },
298
+ onClick: () => {
299
+ setSearch("");
300
+ setActiveValue(void 0);
301
+ inputRef.current?.focus();
302
+ },
303
+ className: cn("-me-1 grid size-6 shrink-0 place-items-center rounded-sm opacity-60 hover:opacity-100", "transition-opacity duration-[var(--duration-fast)]", focusRing),
304
+ children: /* @__PURE__ */ jsx("svg", {
305
+ viewBox: "0 0 24 24",
306
+ fill: "none",
307
+ "aria-hidden": "true",
308
+ className: "size-3.5",
309
+ children: /* @__PURE__ */ jsx("path", {
310
+ d: "M6 6l12 12M18 6 6 18",
311
+ stroke: "currentColor",
312
+ strokeWidth: "2",
313
+ strokeLinecap: "round"
314
+ })
315
+ })
316
+ }) : null
317
+ ]
247
318
  });
248
319
  }
249
320
  function ComboboxList({ className, ...props }) {
250
- const { listId, listRef } = useCombobox("ComboboxList");
321
+ const { listId, listRef, loading } = useCombobox("ComboboxList");
251
322
  return /* @__PURE__ */ jsx("div", {
252
323
  ref: listRef,
253
324
  id: listId,
254
325
  role: "listbox",
326
+ "aria-busy": loading || void 0,
255
327
  "data-slot": "combobox-list",
256
328
  className: cn("max-h-64 overflow-y-auto overscroll-contain p-1", className),
257
329
  ...props
@@ -310,28 +382,36 @@ function ComboboxItem({ className, value, keywords, disabled, children, ...props
310
382
  },
311
383
  className: cn("relative flex cursor-default items-center gap-2 rounded-md py-1.5 ps-2 pe-8 text-sm outline-none select-none", "transition-colors duration-[var(--duration-instant)]", "data-[active]:bg-accent data-[active]:text-accent-foreground", "data-[disabled]:pointer-events-none data-[disabled]:opacity-55", "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
312
384
  ...props,
313
- children: [children ?? value, selected ? /* @__PURE__ */ jsx("span", {
314
- className: "absolute end-2 grid size-4 place-items-center",
315
- children: /* @__PURE__ */ jsx("svg", {
316
- viewBox: "0 0 24 24",
317
- fill: "none",
318
- "aria-hidden": "true",
319
- className: "size-3.5",
320
- children: /* @__PURE__ */ jsx("path", {
321
- d: "m5 13 4 4L19 7",
322
- stroke: "currentColor",
323
- strokeWidth: "2.5",
324
- strokeLinecap: "round",
325
- strokeLinejoin: "round"
385
+ children: [
386
+ /* @__PURE__ */ jsx("style", {
387
+ href: "dowel-combobox",
388
+ precedence: "dowel",
389
+ children: ITEM_KEYFRAMES
390
+ }),
391
+ children ?? value,
392
+ selected ? /* @__PURE__ */ jsx("span", {
393
+ className: "absolute end-2 grid size-4 place-items-center",
394
+ children: /* @__PURE__ */ jsx("svg", {
395
+ viewBox: "0 0 24 24",
396
+ fill: "none",
397
+ "aria-hidden": "true",
398
+ className: "size-3.5",
399
+ children: /* @__PURE__ */ jsx("path", {
400
+ d: "m5 13 4 4L19 7",
401
+ stroke: "currentColor",
402
+ strokeWidth: "2.5",
403
+ strokeLinecap: "round",
404
+ strokeLinejoin: "round"
405
+ })
326
406
  })
327
- })
328
- }) : null]
407
+ }) : null
408
+ ]
329
409
  });
330
410
  }
331
411
  /** Shown only when the filter leaves nothing. */
332
412
  function ComboboxEmpty({ className, children, ...props }) {
333
- const { visibleCount } = useCombobox("ComboboxEmpty");
334
- if (visibleCount > 0) return null;
413
+ const { visibleCount, loading } = useCombobox("ComboboxEmpty");
414
+ if (visibleCount > 0 || loading) return null;
335
415
  return /* @__PURE__ */ jsx("div", {
336
416
  "data-slot": "combobox-empty",
337
417
  role: "presentation",
@@ -340,7 +420,22 @@ function ComboboxEmpty({ className, children, ...props }) {
340
420
  children: children ?? "No results found."
341
421
  });
342
422
  }
423
+ /**
424
+ * Shown only while `loading` is set on Combobox. Render it beside ComboboxList,
425
+ * as with ComboboxEmpty; pass a Spinner as a child if wanted.
426
+ */
427
+ function ComboboxLoading({ className, children, ...props }) {
428
+ const { loading } = useCombobox("ComboboxLoading");
429
+ if (!loading) return null;
430
+ return /* @__PURE__ */ jsx("div", {
431
+ "data-slot": "combobox-loading",
432
+ role: "status",
433
+ className: cn("flex items-center justify-center gap-2 px-3 py-6 text-sm text-muted-foreground", "animate-float-in", className),
434
+ ...props,
435
+ children: children ?? "Loading…"
436
+ });
437
+ }
343
438
  //#endregion
344
- export { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, defaultComboboxFilter };
439
+ export { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxLoading, ComboboxTrigger, defaultComboboxFilter };
345
440
 
346
441
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","names":["PopoverPrimitive"],"sources":["../../../src/components/combobox/combobox.tsx"],"sourcesContent":["\"use client\";\n\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * A searchable single-select.\n *\n * Implements the ARIA combobox pattern directly on a popover rather than\n * depending on a command-menu package: the input owns `role=\"combobox\"`, the\n * list owns `role=\"listbox\"`, and the active option is tracked with\n * `aria-activedescendant` so focus never leaves the input while typing.\n *\n * Navigation reads the rendered options from the DOM rather than a registry,\n * which keeps the active option correct as filtering adds and removes items —\n * a registry has to be kept in sync with what is actually on screen, and drifts.\n *\n * This version is single-select and flat. Multi-select and grouping can be\n * added without changing this API.\n */\n\n/** Default match: case-insensitive substring over the value and any keywords. */\nexport function defaultComboboxFilter(search: string, haystack: string[]): boolean {\n const needle = search.trim().toLowerCase();\n if (!needle) return true;\n return haystack.some((entry) => entry.toLowerCase().includes(needle));\n}\n\ninterface ComboboxContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n search: string;\n setSearch: (search: string) => void;\n value: string | undefined;\n select: (value: string) => void;\n activeValue: string | undefined;\n setActiveValue: (value: string | undefined) => void;\n filter: (search: string, haystack: string[]) => boolean;\n listId: string;\n inputId: string;\n optionId: (value: string) => string;\n listRef: React.RefObject<HTMLDivElement | null>;\n registerVisible: (value: string, visible: boolean) => void;\n visibleCount: number;\n}\n\nconst ComboboxContext = createContext<ComboboxContextValue | null>(null);\n\nfunction useCombobox(component: string): ComboboxContextValue {\n const context = useContext(ComboboxContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <Combobox>.`);\n }\n return context;\n}\n\nexport interface ComboboxProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Overrides how a search string is matched against an option. */\n filter?: (search: string, haystack: string[]) => boolean;\n children?: ReactNode;\n}\n\nexport function Combobox({\n value: valueProp,\n defaultValue,\n onValueChange,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n filter = defaultComboboxFilter,\n children,\n}: ComboboxProps) {\n const uid = useId();\n\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = valueProp === undefined ? uncontrolledValue : valueProp;\n\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = openProp === undefined ? uncontrolledOpen : openProp;\n\n const [search, setSearch] = useState(\"\");\n const [activeValue, setActiveValue] = useState<string | undefined>(undefined);\n const listRef = useRef<HTMLDivElement | null>(null);\n\n // Counted rather than listed: the empty state only needs to know whether\n // anything survived the filter.\n const visibleValues = useRef(new Set<string>());\n const [visibleCount, setVisibleCount] = useState(0);\n\n const registerVisible = useCallback((optionValue: string, visible: boolean) => {\n const set = visibleValues.current;\n const had = set.has(optionValue);\n if (visible && !had) set.add(optionValue);\n else if (!visible && had) set.delete(optionValue);\n else return;\n setVisibleCount(set.size);\n }, []);\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (openProp === undefined) setUncontrolledOpen(next);\n onOpenChange?.(next);\n // Reopening should start from a clean search rather than resuming a\n // half-typed query the user has forgotten about.\n if (!next) {\n setSearch(\"\");\n setActiveValue(undefined);\n }\n },\n [openProp, onOpenChange],\n );\n\n const select = useCallback(\n (next: string) => {\n if (valueProp === undefined) setUncontrolledValue(next);\n onValueChange?.(next);\n setOpen(false);\n },\n [valueProp, onValueChange, setOpen],\n );\n\n const context = useMemo<ComboboxContextValue>(\n () => ({\n open,\n setOpen,\n search,\n setSearch,\n value,\n select,\n activeValue,\n setActiveValue,\n filter,\n listId: `${uid}-list`,\n inputId: `${uid}-input`,\n optionId: (optionValue: string) =>\n `${uid}-option-${optionValue.replace(/\\s+/g, \"-\").toLowerCase()}`,\n listRef,\n registerVisible,\n visibleCount,\n }),\n [\n open,\n setOpen,\n search,\n value,\n select,\n activeValue,\n filter,\n uid,\n registerVisible,\n visibleCount,\n ],\n );\n\n return (\n <ComboboxContext.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n {children}\n </PopoverPrimitive.Root>\n </ComboboxContext.Provider>\n );\n}\n\nexport interface ComboboxTriggerProps extends ComponentPropsWithRef<\"button\"> {\n /** Shown when nothing is selected. */\n placeholder?: string;\n}\n\nexport function ComboboxTrigger({\n className,\n placeholder = \"Select…\",\n children,\n ...props\n}: ComboboxTriggerProps) {\n const { value, open } = useCombobox(\"ComboboxTrigger\");\n\n return (\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n data-slot=\"combobox-trigger\"\n aria-expanded={open}\n className={cn(\n \"flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-background\",\n \"px-3 text-sm shadow-xs transition-[border-color,box-shadow] duration-[var(--duration-fast)]\",\n \"focus-visible:border-ring\",\n \"disabled:cursor-not-allowed disabled:opacity-55\",\n \"aria-invalid:border-destructive\",\n focusRing,\n className,\n )}\n {...props}\n >\n <span className={cn(\"truncate\", !value && \"text-muted-foreground\")}>\n {children ?? value ?? placeholder}\n </span>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className=\"size-4 shrink-0 opacity-60\"\n >\n <path\n d=\"m7 10 5 5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </PopoverPrimitive.Trigger>\n );\n}\n\nexport interface ComboboxContentProps extends ComponentPropsWithRef<\n typeof PopoverPrimitive.Content\n> {\n /** Names the popover, which carries role=\"dialog\". */\n label?: string;\n}\n\nexport function ComboboxContent({\n className,\n align = \"start\",\n sideOffset = 6,\n label = \"Search options\",\n children,\n ...props\n}: ComboboxContentProps) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"combobox-content\"\n align={align}\n sideOffset={sideOffset}\n aria-label={label}\n // Focus belongs in the search input, which the input claims on mount.\n onOpenAutoFocus={(event) => {\n event.preventDefault();\n }}\n className={cn(\n \"z-[var(--z-popover)] w-[var(--radix-popover-trigger-width)] min-w-48 overflow-hidden\",\n \"rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-lg\",\n \"origin-[var(--radix-popover-content-transform-origin)]\",\n \"data-[state=closed]:animate-float-out data-[state=open]:animate-float-in\",\n className,\n )}\n {...props}\n >\n {children}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n}\n\n/** Options currently rendered, in DOM order and excluding disabled ones. */\nfunction visibleOptions(list: HTMLElement | null): HTMLElement[] {\n if (!list) return [];\n return Array.from(list.querySelectorAll<HTMLElement>('[role=\"option\"]:not([data-disabled])'));\n}\n\nexport type ComboboxInputProps = Omit<ComponentPropsWithRef<\"input\">, \"value\" | \"onChange\">;\n\nexport function ComboboxInput({ className, ...props }: ComboboxInputProps) {\n const {\n search,\n setSearch,\n activeValue,\n setActiveValue,\n select,\n setOpen,\n listId,\n inputId,\n optionId,\n listRef,\n } = useCombobox(\"ComboboxInput\");\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n inputRef.current?.focus();\n }, []);\n\n const move = useCallback(\n (delta: number | \"first\" | \"last\") => {\n const options = visibleOptions(listRef.current);\n if (options.length === 0) return;\n\n const currentIndex = options.findIndex((option) => option.dataset.value === activeValue);\n\n let nextIndex: number;\n if (delta === \"first\") nextIndex = 0;\n else if (delta === \"last\") nextIndex = options.length - 1;\n else if (currentIndex === -1) nextIndex = delta > 0 ? 0 : options.length - 1;\n // Wraps, so holding an arrow key never dead-ends at the edge of the list.\n else nextIndex = (currentIndex + delta + options.length) % options.length;\n\n const next = options[nextIndex];\n if (!next) return;\n setActiveValue(next.dataset.value);\n next.scrollIntoView({ block: \"nearest\" });\n },\n [activeValue, listRef, setActiveValue],\n );\n\n function handleKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n move(1);\n break;\n case \"ArrowUp\":\n event.preventDefault();\n move(-1);\n break;\n case \"Home\":\n event.preventDefault();\n move(\"first\");\n break;\n case \"End\":\n event.preventDefault();\n move(\"last\");\n break;\n case \"Enter\": {\n if (activeValue === undefined) return;\n event.preventDefault();\n select(activeValue);\n break;\n }\n case \"Escape\":\n event.preventDefault();\n setOpen(false);\n break;\n default:\n break;\n }\n }\n\n return (\n <div className=\"flex items-center gap-2 border-b border-border px-3\">\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className=\"size-4 shrink-0 opacity-55\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"m20 20-3.5-3.5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n <input\n ref={inputRef}\n id={inputId}\n data-slot=\"combobox-input\"\n type=\"text\"\n role=\"combobox\"\n autoComplete=\"off\"\n aria-expanded=\"true\"\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeValue ? optionId(activeValue) : undefined}\n value={search}\n onChange={(event) => {\n setSearch(event.target.value);\n // The previous active option may have just been filtered out.\n setActiveValue(undefined);\n }}\n onKeyDown={handleKeyDown}\n className={cn(\n \"h-10 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nexport function ComboboxList({ className, ...props }: ComponentPropsWithRef<\"div\">) {\n const { listId, listRef } = useCombobox(\"ComboboxList\");\n\n return (\n <div\n ref={listRef}\n id={listId}\n role=\"listbox\"\n data-slot=\"combobox-list\"\n className={cn(\"max-h-64 overflow-y-auto overscroll-contain p-1\", className)}\n {...props}\n />\n );\n}\n\nexport interface ComboboxItemProps extends Omit<\n ComponentPropsWithRef<\"div\">,\n \"onSelect\" | \"children\"\n> {\n /** The value reported by onValueChange, and the primary search term. */\n value: string;\n /** Extra search terms that are not shown, such as synonyms or an id. */\n keywords?: string[];\n disabled?: boolean;\n children?: ReactNode;\n}\n\nexport function ComboboxItem({\n className,\n value,\n keywords,\n disabled,\n children,\n ...props\n}: ComboboxItemProps) {\n const {\n search,\n filter,\n value: selectedValue,\n activeValue,\n setActiveValue,\n select,\n optionId,\n registerVisible,\n } = useCombobox(\"ComboboxItem\");\n\n // A string child is the visible label, so it is searchable for free. Richer\n // children cannot be read purely, so those pass `keywords` instead.\n const haystack = useMemo(\n () => [value, ...(keywords ?? []), typeof children === \"string\" ? children : \"\"],\n [value, keywords, children],\n );\n\n const visible = filter(search, haystack);\n const selected = selectedValue === value;\n const active = activeValue === value;\n\n useEffect(() => {\n registerVisible(value, visible && !disabled);\n return () => {\n registerVisible(value, false);\n };\n }, [registerVisible, value, visible, disabled]);\n\n if (!visible) return null;\n\n return (\n <div\n id={optionId(value)}\n role=\"option\"\n data-slot=\"combobox-item\"\n data-value={value}\n data-active={active || undefined}\n data-disabled={disabled || undefined}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n // Programmatically focusable but out of the tab order: in an\n // aria-activedescendant listbox the input keeps real focus and options are\n // only virtually focused, so they must never become tab stops.\n tabIndex={-1}\n onPointerMove={() => {\n if (!disabled) setActiveValue(value);\n }}\n onMouseDown={(event) => {\n // Without this, pressing on an option blurs the search input, which\n // breaks aria-activedescendant and can dismiss the popover before the\n // click ever lands.\n event.preventDefault();\n }}\n onClick={() => {\n if (!disabled) select(value);\n }}\n onKeyDown={(event) => {\n // Reachable only if a consumer focuses an option directly; the normal\n // path is Enter on the input, handled by ComboboxInput.\n if (disabled) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n select(value);\n }\n }}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-md py-1.5 ps-2 pe-8 text-sm outline-none select-none\",\n \"transition-colors duration-[var(--duration-instant)]\",\n \"data-[active]:bg-accent data-[active]:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-55\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children ?? value}\n {selected ? (\n <span className=\"absolute end-2 grid size-4 place-items-center\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\" className=\"size-3.5\">\n <path\n d=\"m5 13 4 4L19 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n ) : null}\n </div>\n );\n}\n\n/** Shown only when the filter leaves nothing. */\nexport function ComboboxEmpty({ className, children, ...props }: ComponentPropsWithRef<\"div\">) {\n const { visibleCount } = useCombobox(\"ComboboxEmpty\");\n if (visibleCount > 0) return null;\n\n return (\n <div\n data-slot=\"combobox-empty\"\n role=\"presentation\"\n className={cn(\"px-3 py-6 text-center text-sm text-muted-foreground\", className)}\n {...props}\n >\n {children ?? \"No results found.\"}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","names":["PopoverPrimitive"],"sources":["../../../src/components/combobox/combobox.tsx"],"sourcesContent":["\"use client\";\n\n// Motion from SmoothUI Combobox and SearchableDropdown (MIT, © 2024 Eduardo Calvo). See THIRD_PARTY_NOTICES.md.\n\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from \"react\";\n\nimport { focusRing } from \"@/lib/styles\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * A searchable single-select.\n *\n * Implements the ARIA combobox pattern directly on a popover rather than\n * depending on a command-menu package: the input owns `role=\"combobox\"`, the\n * list owns `role=\"listbox\"`, and the active option is tracked with\n * `aria-activedescendant` so focus never leaves the input while typing.\n *\n * Navigation reads the rendered options from the DOM rather than a registry,\n * which keeps the active option correct as filtering adds and removes items —\n * a registry has to be kept in sync with what is actually on screen, and drifts.\n *\n * This version is single-select and flat. Multi-select and grouping can be\n * added without changing this API.\n */\n\n/** Default match: case-insensitive substring over the value and any keywords. */\nexport function defaultComboboxFilter(search: string, haystack: string[]): boolean {\n const needle = search.trim().toLowerCase();\n if (!needle) return true;\n return haystack.some((entry) => entry.toLowerCase().includes(needle));\n}\n\ninterface ComboboxContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n search: string;\n setSearch: (search: string) => void;\n value: string | undefined;\n select: (value: string) => void;\n activeValue: string | undefined;\n setActiveValue: (value: string | undefined) => void;\n filter: (search: string, haystack: string[]) => boolean;\n listId: string;\n inputId: string;\n optionId: (value: string) => string;\n listRef: React.RefObject<HTMLDivElement | null>;\n registerVisible: (value: string, visible: boolean) => void;\n visibleCount: number;\n loading: boolean;\n}\n\nconst ComboboxContext = createContext<ComboboxContextValue | null>(null);\n\nfunction useCombobox(component: string): ComboboxContextValue {\n const context = useContext(ComboboxContext);\n if (!context) {\n throw new Error(`${component} must be rendered inside <Combobox>.`);\n }\n return context;\n}\n\nexport interface ComboboxProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Overrides how a search string is matched against an option. */\n filter?: (search: string, haystack: string[]) => boolean;\n /**\n * Set `false` when the options are already the results for the search — for\n * example when `onSearchChange` fetches them — so they are not filtered twice.\n */\n shouldFilter?: boolean;\n /** Called as the search text changes, including the reset when it closes. */\n onSearchChange?: (search: string) => void;\n /** Milliseconds of quiet typing before `onSearchChange` fires. */\n searchDebounce?: number;\n /**\n * Results are on their way: the listbox is `aria-busy`, `ComboboxLoading`\n * shows and `ComboboxEmpty` holds back, so \"No results\" never flashes first.\n */\n loading?: boolean;\n /** Choosing the selected option again clears it, reporting `\"\"`. */\n allowDeselect?: boolean;\n children?: ReactNode;\n}\n\n/*\n * Motion (SmoothUI's Combobox): options rise in, the first few a beat apart,\n * and the trigger's chevron turns while open. Keyframes ship with the\n * component (ADR 0014); every duration and delay runs on the motion scale.\n */\nconst ITEM_STAGGER = Array.from(\n { length: 8 },\n (_, index) =>\n `[data-slot=\"combobox-item\"]:nth-child(${String(index + 2)}){animation-delay:calc(${String((index + 1) * 20)}ms * var(--motion-scale, 1))}`,\n).join(\"\");\n\nconst ITEM_KEYFRAMES = `\n@keyframes dowel-combobox-item-in{from{opacity:0;transform:translateY(0.25rem)}}\n[data-slot=\"combobox-item\"]{animation:dowel-combobox-item-in var(--duration-normal) var(--ease-out-quint) backwards}\n${ITEM_STAGGER}\n`;\n\nexport function Combobox({\n value: valueProp,\n defaultValue,\n onValueChange,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n filter: filterProp = defaultComboboxFilter,\n shouldFilter = true,\n onSearchChange,\n searchDebounce = 0,\n loading = false,\n allowDeselect = false,\n children,\n}: ComboboxProps) {\n const uid = useId();\n const filter = shouldFilter ? filterProp : acceptAll;\n\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const value = valueProp === undefined ? uncontrolledValue : valueProp;\n\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = openProp === undefined ? uncontrolledOpen : openProp;\n\n const [search, setSearchState] = useState(\"\");\n const searchRef = useRef(\"\");\n const debounceRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const onSearchChangeRef = useRef(onSearchChange);\n useEffect(() => {\n onSearchChangeRef.current = onSearchChange;\n }, [onSearchChange]);\n\n const setSearch = useCallback(\n (next: string) => {\n if (next === searchRef.current) return;\n searchRef.current = next;\n setSearchState(next);\n clearTimeout(debounceRef.current);\n if (searchDebounce <= 0) {\n onSearchChangeRef.current?.(next);\n return;\n }\n debounceRef.current = setTimeout(() => {\n onSearchChangeRef.current?.(next);\n }, searchDebounce);\n },\n [searchDebounce],\n );\n\n useEffect(\n () => () => {\n clearTimeout(debounceRef.current);\n },\n [],\n );\n const [activeValue, setActiveValue] = useState<string | undefined>(undefined);\n const listRef = useRef<HTMLDivElement | null>(null);\n\n // Counted rather than listed: the empty state only needs to know whether\n // anything survived the filter.\n const visibleValues = useRef(new Set<string>());\n const [visibleCount, setVisibleCount] = useState(0);\n\n const registerVisible = useCallback((optionValue: string, visible: boolean) => {\n const set = visibleValues.current;\n const had = set.has(optionValue);\n if (visible && !had) set.add(optionValue);\n else if (!visible && had) set.delete(optionValue);\n else return;\n setVisibleCount(set.size);\n }, []);\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (openProp === undefined) setUncontrolledOpen(next);\n onOpenChange?.(next);\n // Reopening should start from a clean search rather than resuming a\n // half-typed query the user has forgotten about.\n if (!next) {\n setSearch(\"\");\n setActiveValue(undefined);\n }\n },\n [openProp, onOpenChange, setSearch],\n );\n\n const select = useCallback(\n (chosen: string) => {\n const next = allowDeselect && chosen === value ? \"\" : chosen;\n if (valueProp === undefined) setUncontrolledValue(next || undefined);\n onValueChange?.(next);\n setOpen(false);\n },\n [valueProp, onValueChange, setOpen, allowDeselect, value],\n );\n\n const context = useMemo<ComboboxContextValue>(\n () => ({\n open,\n setOpen,\n search,\n setSearch,\n value,\n select,\n activeValue,\n setActiveValue,\n filter,\n listId: `${uid}-list`,\n inputId: `${uid}-input`,\n optionId: (optionValue: string) =>\n `${uid}-option-${optionValue.replace(/\\s+/g, \"-\").toLowerCase()}`,\n listRef,\n registerVisible,\n visibleCount,\n loading,\n }),\n [\n open,\n setOpen,\n search,\n setSearch,\n loading,\n value,\n select,\n activeValue,\n filter,\n uid,\n registerVisible,\n visibleCount,\n ],\n );\n\n return (\n <ComboboxContext.Provider value={context}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen}>\n {children}\n </PopoverPrimitive.Root>\n </ComboboxContext.Provider>\n );\n}\n\nfunction acceptAll(): boolean {\n return true;\n}\n\nexport interface ComboboxTriggerProps extends ComponentPropsWithRef<\"button\"> {\n /** Shown when nothing is selected. */\n placeholder?: string;\n}\n\nexport function ComboboxTrigger({\n className,\n placeholder = \"Select…\",\n children,\n ...props\n}: ComboboxTriggerProps) {\n const { value, open } = useCombobox(\"ComboboxTrigger\");\n\n return (\n <PopoverPrimitive.Trigger asChild>\n <button\n type=\"button\"\n data-slot=\"combobox-trigger\"\n aria-expanded={open}\n className={cn(\n \"flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-background\",\n \"px-3 text-sm shadow-xs transition-[border-color,box-shadow] duration-[var(--duration-fast)]\",\n \"focus-visible:border-ring\",\n \"disabled:cursor-not-allowed disabled:opacity-55\",\n \"aria-invalid:border-destructive\",\n focusRing,\n className,\n )}\n {...props}\n >\n <span className={cn(\"truncate\", !value && \"text-muted-foreground\")}>\n {children ?? value ?? placeholder}\n </span>\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n data-slot=\"combobox-chevron\"\n className={cn(\n \"size-4 shrink-0 opacity-60\",\n \"transition-[rotate] duration-[var(--duration-normal)] ease-[var(--ease-out-quint)]\",\n open && \"rotate-180\",\n )}\n >\n <path\n d=\"m7 10 5 5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </PopoverPrimitive.Trigger>\n );\n}\n\nexport interface ComboboxContentProps extends ComponentPropsWithRef<\n typeof PopoverPrimitive.Content\n> {\n /** Names the popover, which carries role=\"dialog\". */\n label?: string;\n}\n\nexport function ComboboxContent({\n className,\n align = \"start\",\n sideOffset = 6,\n label = \"Search options\",\n children,\n ...props\n}: ComboboxContentProps) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"combobox-content\"\n align={align}\n sideOffset={sideOffset}\n aria-label={label}\n // Focus belongs in the search input, which the input claims on mount.\n onOpenAutoFocus={(event) => {\n event.preventDefault();\n }}\n className={cn(\n \"z-[var(--z-popover)] w-[var(--radix-popover-trigger-width)] min-w-48 overflow-hidden\",\n \"rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-lg\",\n \"origin-[var(--radix-popover-content-transform-origin)]\",\n \"data-[state=closed]:animate-float-out data-[state=open]:animate-float-in\",\n className,\n )}\n {...props}\n >\n {children}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n}\n\n/** Options currently rendered, in DOM order and excluding disabled ones. */\nfunction visibleOptions(list: HTMLElement | null): HTMLElement[] {\n if (!list) return [];\n return Array.from(list.querySelectorAll<HTMLElement>('[role=\"option\"]:not([data-disabled])'));\n}\n\nexport interface ComboboxInputProps extends Omit<\n ComponentPropsWithRef<\"input\">,\n \"value\" | \"onChange\"\n> {\n /** Shows a button that clears the search while there is text to clear. */\n clearable?: boolean;\n}\n\nexport function ComboboxInput({ className, clearable = false, ...props }: ComboboxInputProps) {\n const {\n search,\n setSearch,\n activeValue,\n setActiveValue,\n select,\n setOpen,\n listId,\n inputId,\n optionId,\n listRef,\n } = useCombobox(\"ComboboxInput\");\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n inputRef.current?.focus();\n }, []);\n\n const move = useCallback(\n (delta: number | \"first\" | \"last\") => {\n const options = visibleOptions(listRef.current);\n if (options.length === 0) return;\n\n const currentIndex = options.findIndex((option) => option.dataset.value === activeValue);\n\n let nextIndex: number;\n if (delta === \"first\") nextIndex = 0;\n else if (delta === \"last\") nextIndex = options.length - 1;\n else if (currentIndex === -1) nextIndex = delta > 0 ? 0 : options.length - 1;\n // Wraps, so holding an arrow key never dead-ends at the edge of the list.\n else nextIndex = (currentIndex + delta + options.length) % options.length;\n\n const next = options[nextIndex];\n if (!next) return;\n setActiveValue(next.dataset.value);\n next.scrollIntoView({ block: \"nearest\" });\n },\n [activeValue, listRef, setActiveValue],\n );\n\n function handleKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n move(1);\n break;\n case \"ArrowUp\":\n event.preventDefault();\n move(-1);\n break;\n case \"Home\":\n event.preventDefault();\n move(\"first\");\n break;\n case \"End\":\n event.preventDefault();\n move(\"last\");\n break;\n case \"Enter\": {\n if (activeValue === undefined) return;\n event.preventDefault();\n select(activeValue);\n break;\n }\n case \"Escape\":\n event.preventDefault();\n setOpen(false);\n break;\n default:\n break;\n }\n }\n\n return (\n <div className=\"flex items-center gap-2 border-b border-border px-3\">\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n className=\"size-4 shrink-0 opacity-55\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"m20 20-3.5-3.5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n <input\n ref={inputRef}\n id={inputId}\n data-slot=\"combobox-input\"\n type=\"text\"\n role=\"combobox\"\n autoComplete=\"off\"\n aria-expanded=\"true\"\n aria-controls={listId}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeValue ? optionId(activeValue) : undefined}\n value={search}\n onChange={(event) => {\n setSearch(event.target.value);\n // The previous active option may have just been filtered out.\n setActiveValue(undefined);\n }}\n onKeyDown={handleKeyDown}\n className={cn(\n \"h-10 w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n {clearable && search ? (\n <button\n type=\"button\"\n data-slot=\"combobox-clear\"\n aria-label=\"Clear search\"\n // Keeps focus, and so aria-activedescendant, in the input.\n onMouseDown={(event) => {\n event.preventDefault();\n }}\n onClick={() => {\n setSearch(\"\");\n setActiveValue(undefined);\n inputRef.current?.focus();\n }}\n className={cn(\n \"-me-1 grid size-6 shrink-0 place-items-center rounded-sm opacity-60 hover:opacity-100\",\n \"transition-opacity duration-[var(--duration-fast)]\",\n focusRing,\n )}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\" className=\"size-3.5\">\n <path\n d=\"M6 6l12 12M18 6 6 18\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n ) : null}\n </div>\n );\n}\n\nexport function ComboboxList({ className, ...props }: ComponentPropsWithRef<\"div\">) {\n const { listId, listRef, loading } = useCombobox(\"ComboboxList\");\n\n return (\n <div\n ref={listRef}\n id={listId}\n role=\"listbox\"\n aria-busy={loading || undefined}\n data-slot=\"combobox-list\"\n className={cn(\"max-h-64 overflow-y-auto overscroll-contain p-1\", className)}\n {...props}\n />\n );\n}\n\nexport interface ComboboxItemProps extends Omit<\n ComponentPropsWithRef<\"div\">,\n \"onSelect\" | \"children\"\n> {\n /** The value reported by onValueChange, and the primary search term. */\n value: string;\n /** Extra search terms that are not shown, such as synonyms or an id. */\n keywords?: string[];\n disabled?: boolean;\n children?: ReactNode;\n}\n\nexport function ComboboxItem({\n className,\n value,\n keywords,\n disabled,\n children,\n ...props\n}: ComboboxItemProps) {\n const {\n search,\n filter,\n value: selectedValue,\n activeValue,\n setActiveValue,\n select,\n optionId,\n registerVisible,\n } = useCombobox(\"ComboboxItem\");\n\n // A string child is the visible label, so it is searchable for free. Richer\n // children cannot be read purely, so those pass `keywords` instead.\n const haystack = useMemo(\n () => [value, ...(keywords ?? []), typeof children === \"string\" ? children : \"\"],\n [value, keywords, children],\n );\n\n const visible = filter(search, haystack);\n const selected = selectedValue === value;\n const active = activeValue === value;\n\n useEffect(() => {\n registerVisible(value, visible && !disabled);\n return () => {\n registerVisible(value, false);\n };\n }, [registerVisible, value, visible, disabled]);\n\n if (!visible) return null;\n\n return (\n <div\n id={optionId(value)}\n role=\"option\"\n data-slot=\"combobox-item\"\n data-value={value}\n data-active={active || undefined}\n data-disabled={disabled || undefined}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n // Programmatically focusable but out of the tab order: in an\n // aria-activedescendant listbox the input keeps real focus and options are\n // only virtually focused, so they must never become tab stops.\n tabIndex={-1}\n onPointerMove={() => {\n if (!disabled) setActiveValue(value);\n }}\n onMouseDown={(event) => {\n // Without this, pressing on an option blurs the search input, which\n // breaks aria-activedescendant and can dismiss the popover before the\n // click ever lands.\n event.preventDefault();\n }}\n onClick={() => {\n if (!disabled) select(value);\n }}\n onKeyDown={(event) => {\n // Reachable only if a consumer focuses an option directly; the normal\n // path is Enter on the input, handled by ComboboxInput.\n if (disabled) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n select(value);\n }\n }}\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-md py-1.5 ps-2 pe-8 text-sm outline-none select-none\",\n \"transition-colors duration-[var(--duration-instant)]\",\n \"data-[active]:bg-accent data-[active]:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-55\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <style href=\"dowel-combobox\" precedence=\"dowel\">\n {ITEM_KEYFRAMES}\n </style>\n {children ?? value}\n {selected ? (\n <span className=\"absolute end-2 grid size-4 place-items-center\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\" className=\"size-3.5\">\n <path\n d=\"m5 13 4 4L19 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n ) : null}\n </div>\n );\n}\n\n/** Shown only when the filter leaves nothing. */\nexport function ComboboxEmpty({ className, children, ...props }: ComponentPropsWithRef<\"div\">) {\n const { visibleCount, loading } = useCombobox(\"ComboboxEmpty\");\n if (visibleCount > 0 || loading) return null;\n\n return (\n <div\n data-slot=\"combobox-empty\"\n role=\"presentation\"\n className={cn(\"px-3 py-6 text-center text-sm text-muted-foreground\", className)}\n {...props}\n >\n {children ?? \"No results found.\"}\n </div>\n );\n}\n\n/**\n * Shown only while `loading` is set on Combobox. Render it beside ComboboxList,\n * as with ComboboxEmpty; pass a Spinner as a child if wanted.\n */\nexport function ComboboxLoading({\n className,\n children,\n ...props\n}: ComponentPropsWithRef<\"div\">) {\n const { loading } = useCombobox(\"ComboboxLoading\");\n if (!loading) return null;\n\n return (\n <div\n data-slot=\"combobox-loading\"\n role=\"status\"\n className={cn(\n \"flex items-center justify-center gap-2 px-3 py-6 text-sm text-muted-foreground\",\n \"animate-float-in\",\n className,\n )}\n {...props}\n >\n {children ?? \"Loading…\"}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { Combobox, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxList, ComboboxProps, ComboboxTrigger, ComboboxTriggerProps, defaultComboboxFilter } from "./combobox.js";
2
- export { Combobox, ComboboxContent, type ComboboxContentProps, ComboboxEmpty, ComboboxInput, type ComboboxInputProps, ComboboxItem, type ComboboxItemProps, ComboboxList, type ComboboxProps, ComboboxTrigger, type ComboboxTriggerProps, defaultComboboxFilter };
1
+ import { Combobox, ComboboxContent, ComboboxContentProps, ComboboxEmpty, ComboboxInput, ComboboxInputProps, ComboboxItem, ComboboxItemProps, ComboboxList, ComboboxLoading, ComboboxProps, ComboboxTrigger, ComboboxTriggerProps, defaultComboboxFilter } from "./combobox.js";
2
+ export { Combobox, ComboboxContent, type ComboboxContentProps, ComboboxEmpty, ComboboxInput, type ComboboxInputProps, ComboboxItem, type ComboboxItemProps, ComboboxList, ComboboxLoading, type ComboboxProps, ComboboxTrigger, type ComboboxTriggerProps, defaultComboboxFilter };
@@ -1,2 +1,2 @@
1
- import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, defaultComboboxFilter } from "./combobox.js";
2
- export { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, defaultComboboxFilter };
1
+ import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxLoading, ComboboxTrigger, defaultComboboxFilter } from "./combobox.js";
2
+ export { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxLoading, ComboboxTrigger, defaultComboboxFilter };
@@ -9,7 +9,7 @@ const meta = defineMeta({
9
9
  dependencies: ["radix-ui"],
10
10
  registryDependencies: [],
11
11
  files: ["combobox.tsx"],
12
- a11y: "The input owns role=\"combobox\" with aria-expanded, aria-controls and aria-autocomplete; the list owns role=\"listbox\" and each option role=\"option\" with aria-selected. Focus stays in the input while arrow keys move aria-activedescendant, so typing is never interrupted. Arrow navigation wraps, Home/End jump, Enter selects the active option and Escape closes."
12
+ a11y: "The input owns role=\"combobox\" with aria-expanded, aria-controls and aria-autocomplete; the list owns role=\"listbox\" and each option role=\"option\" with aria-selected. Focus stays in the input while arrow keys move aria-activedescendant, so typing is never interrupted. Arrow navigation wraps, Home/End jump, Enter selects the active option and Escape closes. With loading set, the listbox is aria-busy, ComboboxLoading is a status and the empty state waits for the answer. The optional clear button is a named button that returns focus to the input."
13
13
  });
14
14
  //#endregion
15
15
  export { meta };
@@ -1 +1 @@
1
- {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/combobox/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"combobox\",\n title: \"Combobox\",\n description: \"A searchable single-select built on the ARIA combobox pattern.\",\n category: \"form\",\n status: \"stable\",\n dependencies: [\"radix-ui\"],\n registryDependencies: [],\n files: [\"combobox.tsx\"],\n a11y:\n 'The input owns role=\"combobox\" with aria-expanded, aria-controls and aria-autocomplete; ' +\n 'the list owns role=\"listbox\" and each option role=\"option\" with aria-selected. Focus stays ' +\n \"in the input while arrow keys move aria-activedescendant, so typing is never interrupted. \" +\n \"Arrow navigation wraps, Home/End jump, Enter selects the active option and Escape closes.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,UAAU;CACzB,sBAAsB,CAAC;CACvB,OAAO,CAAC,cAAc;CACtB,MACE;AAIJ,CAAC"}
1
+ {"version":3,"file":"meta.js","names":[],"sources":["../../../src/components/combobox/meta.ts"],"sourcesContent":["import { defineMeta } from \"@/registry/schema\";\n\nexport const meta = defineMeta({\n name: \"combobox\",\n title: \"Combobox\",\n description: \"A searchable single-select built on the ARIA combobox pattern.\",\n category: \"form\",\n status: \"stable\",\n dependencies: [\"radix-ui\"],\n registryDependencies: [],\n files: [\"combobox.tsx\"],\n a11y:\n 'The input owns role=\"combobox\" with aria-expanded, aria-controls and aria-autocomplete; ' +\n 'the list owns role=\"listbox\" and each option role=\"option\" with aria-selected. Focus stays ' +\n \"in the input while arrow keys move aria-activedescendant, so typing is never interrupted. \" +\n \"Arrow navigation wraps, Home/End jump, Enter selects the active option and Escape closes.\" +\n \" With loading set, the listbox is aria-busy, ComboboxLoading is a status and the empty state waits for the answer. The optional clear button is a named button that returns focus to the input.\",\n});\n"],"mappings":";;AAEA,MAAa,OAAO,WAAW;CAC7B,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;CACV,QAAQ;CACR,cAAc,CAAC,UAAU;CACzB,sBAAsB,CAAC;CACvB,OAAO,CAAC,cAAc;CACtB,MACE;AAKJ,CAAC"}