@alexgorbatchev/shadcn 0.0.18 → 0.0.20

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 (502) hide show
  1. package/README.md +32 -9
  2. package/dist/{chunk-q2ewq67a.js → chunk-02qymemz.js} +1 -1
  3. package/dist/{chunk-q9qm7skj.js → chunk-0ewzb2ax.js} +4 -4
  4. package/dist/{chunk-rrd9fsz6.js → chunk-14qj6w54.js} +5 -5
  5. package/dist/{chunk-yn3e9w1j.js → chunk-1c5jjkhw.js} +1 -1
  6. package/dist/{chunk-6aqm34nb.js → chunk-1qhf8gh8.js} +4 -3
  7. package/dist/{chunk-tsekdy3w.js → chunk-1tgrhacr.js} +12 -3
  8. package/dist/{chunk-zgpdhtkw.js → chunk-21x1n6gn.js} +6 -6
  9. package/dist/{chunk-22678d2t.js → chunk-24pefkd5.js} +1 -1
  10. package/dist/{chunk-msave608.js → chunk-2bx2r98r.js} +1 -1
  11. package/dist/{chunk-41wykzq3.js → chunk-2tmvz090.js} +1 -1
  12. package/dist/{chunk-gknaq8ep.js → chunk-3d9v39ga.js} +1 -1
  13. package/dist/{chunk-2b9agdrf.js → chunk-3dyqen8w.js} +1 -1
  14. package/dist/{chunk-f63f8w58.js → chunk-3jrsp186.js} +1 -1
  15. package/dist/{chunk-njzam0hx.js → chunk-3qqdfft7.js} +1 -0
  16. package/dist/{chunk-gfm2arhj.js → chunk-43hfchxf.js} +1 -1
  17. package/dist/{chunk-6xr41wyr.js → chunk-46jdxdzy.js} +3 -3
  18. package/dist/{chunk-x7z9jzyf.js → chunk-4djw71cv.js} +22 -12
  19. package/dist/{chunk-fh3nme7f.js → chunk-4drqqqz1.js} +1 -1
  20. package/dist/{chunk-mjpc4qf7.js → chunk-52e8a05a.js} +1 -1
  21. package/dist/{chunk-1hbge1cb.js → chunk-553bzh59.js} +1 -1
  22. package/dist/{chunk-a6e11wj6.js → chunk-5ayp2vkw.js} +1 -1
  23. package/dist/{chunk-19441s27.js → chunk-5pvyxayg.js} +2 -2
  24. package/dist/{chunk-vx7c2xhq.js → chunk-5v4typ39.js} +3 -3
  25. package/dist/{chunk-gt8m0zeq.js → chunk-5wndb6hx.js} +1 -1
  26. package/dist/{chunk-550z7s64.js → chunk-6432235c.js} +3 -3
  27. package/dist/{chunk-0xrvhezs.js → chunk-6f3qpy7v.js} +1 -1
  28. package/dist/{chunk-2gten6a1.js → chunk-6wvhq8wq.js} +2 -2
  29. package/dist/{chunk-zhnwybhq.js → chunk-70vndezn.js} +16 -5
  30. package/dist/{chunk-r7fy89jq.js → chunk-79667fz5.js} +3 -3
  31. package/dist/{chunk-4gby2v61.js → chunk-7pyt4e5t.js} +1 -1
  32. package/dist/{chunk-c6nvc3ft.js → chunk-84ca0dpc.js} +2 -2
  33. package/dist/{chunk-9msk1t9e.js → chunk-8a15x4a8.js} +1 -1
  34. package/dist/{chunk-0qcknj5n.js → chunk-8fcjx3he.js} +5 -5
  35. package/dist/{chunk-h8awhm19.js → chunk-96wh7ccv.js} +1 -1
  36. package/dist/{chunk-pe1vvkp7.js → chunk-9jct7hv0.js} +3 -3
  37. package/dist/{chunk-xqn8mef3.js → chunk-a6kyjjfk.js} +1 -0
  38. package/dist/chunk-aa7m22zj.js +22 -0
  39. package/dist/{chunk-h77yk9sn.js → chunk-bcpy6gpz.js} +1 -1
  40. package/dist/chunk-bygq5yqf.js +139 -0
  41. package/dist/{chunk-2m0zpzbm.js → chunk-cn81dnqb.js} +1 -0
  42. package/dist/{chunk-m1a9e1py.js → chunk-d2z4gebj.js} +1 -1
  43. package/dist/{chunk-mx21wpq0.js → chunk-d4bm5rzy.js} +12 -2
  44. package/dist/{chunk-jy6nfnbx.js → chunk-d9jbqd99.js} +2 -2
  45. package/dist/{chunk-3hvpcsb4.js → chunk-dgkj6442.js} +1 -1
  46. package/dist/{chunk-wwfj7ga3.js → chunk-djm7qq62.js} +1 -1
  47. package/dist/{chunk-9dw4dyzq.js → chunk-e0pv0me5.js} +1 -1
  48. package/dist/{chunk-dd53t01w.js → chunk-ecmk3vgd.js} +1 -1
  49. package/dist/{chunk-0yqwq0ev.js → chunk-eq88qk1d.js} +10 -10
  50. package/dist/{chunk-jq6tc65r.js → chunk-f5hphka1.js} +7 -1
  51. package/dist/{chunk-7g39g3h8.js → chunk-fb6h4fzt.js} +1 -1
  52. package/dist/{chunk-fq8taatb.js → chunk-fba5hr7b.js} +1 -1
  53. package/dist/{chunk-3esarnmt.js → chunk-g03nphs1.js} +1 -1
  54. package/dist/{chunk-jxwfkmdh.js → chunk-gabqzfq0.js} +3 -3
  55. package/dist/{chunk-zcwynyr0.js → chunk-gykrcxd1.js} +1 -0
  56. package/dist/{chunk-xvs5y4v7.js → chunk-h979cxnh.js} +15 -4
  57. package/dist/{chunk-m54kq3he.js → chunk-hh43wg05.js} +22 -12
  58. package/dist/{chunk-6hbx647r.js → chunk-j4gd5awk.js} +6 -6
  59. package/dist/{chunk-j5wk4ffj.js → chunk-jba22682.js} +3 -3
  60. package/dist/{chunk-5h7vkgvz.js → chunk-jf0y740b.js} +1 -1
  61. package/dist/{chunk-avrh238b.js → chunk-jpamrhdk.js} +1 -1
  62. package/dist/{chunk-gyg2s982.js → chunk-k4qz4q7r.js} +1 -0
  63. package/dist/{chunk-erpzgt57.js → chunk-kv1akmf5.js} +1 -1
  64. package/dist/{chunk-2g0zzx6f.js → chunk-m2ct74my.js} +1 -0
  65. package/dist/{chunk-34ndz1gf.js → chunk-mrrbycgx.js} +3 -3
  66. package/dist/chunk-mz3e810d.js +83 -0
  67. package/dist/{chunk-serw27sv.js → chunk-nkw2vsf3.js} +1 -0
  68. package/dist/{chunk-wf5cnpdg.js → chunk-p45ytcc2.js} +3 -3
  69. package/dist/{chunk-86211e5a.js → chunk-p8gshf3k.js} +1 -1
  70. package/dist/{chunk-dnja1pz5.js → chunk-p8qtk151.js} +1 -1
  71. package/dist/{chunk-3552jz55.js → chunk-qcsxnn16.js} +1 -0
  72. package/dist/{chunk-q40gqpwh.js → chunk-qgjjcmpa.js} +1 -1
  73. package/dist/{chunk-jwajmmfb.js → chunk-qv19jhdk.js} +1 -1
  74. package/dist/{chunk-1x2ch0xc.js → chunk-rffrerg5.js} +3 -1
  75. package/dist/{chunk-hhvp5352.js → chunk-s46hvhjw.js} +1 -1
  76. package/dist/{chunk-h561m2ae.js → chunk-s83v0taa.js} +1 -1
  77. package/dist/{chunk-emasqc8x.js → chunk-sat9hjv7.js} +1 -1
  78. package/dist/{chunk-ets9h67e.js → chunk-tea1nrwn.js} +2 -2
  79. package/dist/{chunk-47xfhw4f.js → chunk-v9r6t8bz.js} +1 -0
  80. package/dist/{chunk-48b1ya7g.js → chunk-ve9gpkxd.js} +1 -1
  81. package/dist/{chunk-jacxpetf.js → chunk-vjtbpkht.js} +2 -2
  82. package/dist/{chunk-1apg76a7.js → chunk-vq8nc5xa.js} +1 -1
  83. package/dist/{chunk-55bcw5ff.js → chunk-w1w71edg.js} +1 -0
  84. package/dist/{chunk-9zyam2cn.js → chunk-wkpf4bv7.js} +1 -1
  85. package/dist/{chunk-ed49y20r.js → chunk-ws4y7ctw.js} +1 -1
  86. package/dist/{chunk-ha24sd50.js → chunk-ykt5sv7n.js} +1 -1
  87. package/dist/{chunk-yncp9nsv.js → chunk-z4jpedvh.js} +1 -0
  88. package/dist/{chunk-b12s32e3.js → chunk-zj06vvcz.js} +1 -1
  89. package/dist/{chunk-5h6m9dsm.js → chunk-ztcbee24.js} +1 -1
  90. package/dist/components/AlertDialog.d.ts +1 -1
  91. package/dist/components/ButtonLink.d.ts +12 -0
  92. package/dist/components/Card.d.ts +6 -2
  93. package/dist/components/ContextMenu.d.ts +1 -1
  94. package/dist/components/DensityProvider.d.ts +9 -4
  95. package/dist/components/Dialog.d.ts +1 -1
  96. package/dist/components/Drawer.d.ts +1 -1
  97. package/dist/components/DropdownMenu.d.ts +1 -1
  98. package/dist/components/ScrollGuard.d.ts +6 -0
  99. package/dist/components/Toast.d.ts +1 -1
  100. package/dist/components/assistant-ui/elements/AgentCard.js +1 -1
  101. package/dist/components/assistant-ui/elements/ApprovalCard.js +1 -1
  102. package/dist/components/assistant-ui/elements/ArtifactCard.js +1 -1
  103. package/dist/components/assistant-ui/elements/BackgroundInbox.js +2 -2
  104. package/dist/components/assistant-ui/elements/Chart.js +2 -2
  105. package/dist/components/assistant-ui/elements/ChatPanel.js +1 -1
  106. package/dist/components/assistant-ui/elements/Citation.js +3 -2
  107. package/dist/components/assistant-ui/elements/CodeDiff.js +2 -2
  108. package/dist/components/assistant-ui/elements/CommandPalette.js +4 -3
  109. package/dist/components/assistant-ui/elements/ComparisonCard.js +1 -1
  110. package/dist/components/assistant-ui/elements/ComposerContext.js +3 -2
  111. package/dist/components/assistant-ui/elements/ContextDisplay.js +9 -8
  112. package/dist/components/assistant-ui/elements/ContextDisplayBar.js +6 -5
  113. package/dist/components/assistant-ui/elements/ContextDisplayContent.js +3 -2
  114. package/dist/components/assistant-ui/elements/ContextDisplayRing.js +6 -5
  115. package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +3 -2
  116. package/dist/components/assistant-ui/elements/ContextDisplayText.js +6 -5
  117. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +3 -2
  118. package/dist/components/assistant-ui/elements/ConversationMap.js +3 -2
  119. package/dist/components/assistant-ui/elements/DataTable.js +2 -2
  120. package/dist/components/assistant-ui/elements/EditMessage.js +2 -2
  121. package/dist/components/assistant-ui/elements/ElicitationForm.js +2 -2
  122. package/dist/components/assistant-ui/elements/FeedbackDialog.js +2 -2
  123. package/dist/components/assistant-ui/elements/FileTree.js +2 -2
  124. package/dist/components/assistant-ui/elements/FlowGraph.js +2 -2
  125. package/dist/components/assistant-ui/elements/GenerativeUi.js +5 -4
  126. package/dist/components/assistant-ui/elements/Image.js +3 -2
  127. package/dist/components/assistant-ui/elements/ImageGallery.js +3 -2
  128. package/dist/components/assistant-ui/elements/MarkdownText.js +4 -3
  129. package/dist/components/assistant-ui/elements/McpServerPanel.js +2 -2
  130. package/dist/components/assistant-ui/elements/MermaidDiagram.js +4 -3
  131. package/dist/components/assistant-ui/elements/MermaidZoom.js +3 -2
  132. package/dist/components/assistant-ui/elements/ModelPicker.js +2 -2
  133. package/dist/components/assistant-ui/elements/ModelSelector.js +13 -12
  134. package/dist/components/assistant-ui/elements/ModelSelectorContent.js +10 -9
  135. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +4 -3
  136. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +4 -3
  137. package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +4 -3
  138. package/dist/components/assistant-ui/elements/ModelSelectorItem.js +4 -3
  139. package/dist/components/assistant-ui/elements/ModelSelectorList.js +6 -5
  140. package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +3 -2
  141. package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +4 -3
  142. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +4 -3
  143. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +3 -2
  144. package/dist/components/assistant-ui/elements/ReasoningPanel.js +1 -1
  145. package/dist/components/assistant-ui/elements/RecommendationCard.js +1 -1
  146. package/dist/components/assistant-ui/elements/RegenerateMenu.js +3 -2
  147. package/dist/components/assistant-ui/elements/ScheduleCard.js +1 -1
  148. package/dist/components/assistant-ui/elements/ScrollAnchor.js +1 -1
  149. package/dist/components/assistant-ui/elements/SettingsPanel.js +1 -1
  150. package/dist/components/assistant-ui/elements/SpecSheet.js +1 -1
  151. package/dist/components/assistant-ui/elements/TaskCard.js +1 -1
  152. package/dist/components/assistant-ui/elements/TooltipIconButton.js +3 -2
  153. package/dist/components/assistant-ui/index.js +61 -60
  154. package/dist/components/assistant-ui/native/AssistantModal.js +11 -10
  155. package/dist/components/assistant-ui/native/AssistantSidebar.js +11 -10
  156. package/dist/components/assistant-ui/native/AttachmentPreview.js +5 -4
  157. package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +1 -1
  158. package/dist/components/assistant-ui/native/ContextDisplay.js +11 -10
  159. package/dist/components/assistant-ui/native/ContextDisplayBar.js +8 -7
  160. package/dist/components/assistant-ui/native/ContextDisplayRing.js +8 -7
  161. package/dist/components/assistant-ui/native/ContextDisplayRoot.js +5 -4
  162. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +4 -3
  163. package/dist/components/assistant-ui/native/ContextDisplayText.js +8 -7
  164. package/dist/components/assistant-ui/native/ConversationMapAui.js +4 -3
  165. package/dist/components/assistant-ui/native/McpConfigDialog.js +3 -2
  166. package/dist/components/assistant-ui/native/MermaidDiagram.js +5 -4
  167. package/dist/components/assistant-ui/native/MessageTiming.js +3 -2
  168. package/dist/components/assistant-ui/native/ModelSelector.js +15 -14
  169. package/dist/components/assistant-ui/native/Reasoning.js +5 -4
  170. package/dist/components/assistant-ui/native/TaskCard.js +6 -5
  171. package/dist/components/assistant-ui/native/TaskGroup.js +7 -6
  172. package/dist/components/assistant-ui/native/TaskTray.js +3 -2
  173. package/dist/components/assistant-ui/native/Thread.js +9 -8
  174. package/dist/components/assistant-ui/native/ThreadList.js +1 -1
  175. package/dist/components/assistant-ui/native/ThreadListSidebar.js +5 -4
  176. package/dist/components/assistant-ui/native/VoiceControl.js +6 -5
  177. package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +4 -3
  178. package/dist/components/assistant-ui/native/VoiceMuteButton.js +4 -3
  179. package/dist/components/assistant-ui/native/index.js +53 -52
  180. package/dist/components/command/index.js +3 -2
  181. package/dist/components/questionnaire/index.js +2 -2
  182. package/dist/components/resizable/Resizable.d.ts +1 -1
  183. package/dist/components/resizable/index.js +1 -1
  184. package/dist/hooks/useCardSpotlight.d.ts +7 -0
  185. package/dist/hooks/usePortalNode.d.ts +14 -0
  186. package/dist/index.d.ts +3 -0
  187. package/dist/index.js +649 -435
  188. package/dist/theme.css +91 -16
  189. package/dist/utils/observeScrollGuards.d.ts +4 -0
  190. package/llms/components/actions/Button.md +433 -0
  191. package/llms/components/actions/ButtonGroup.md +278 -0
  192. package/llms/components/actions/ButtonLink.md +189 -0
  193. package/llms/components/actions/Toggle.md +191 -0
  194. package/llms/components/actions/ToggleGroup.md +161 -0
  195. package/llms/components/assistant-ui/elements/agents-tasks/AgentCard.md +60 -0
  196. package/llms/components/assistant-ui/elements/agents-tasks/AgentHandoff.md +78 -0
  197. package/llms/components/assistant-ui/elements/agents-tasks/AgentPlan.md +57 -0
  198. package/llms/components/assistant-ui/elements/agents-tasks/AgentStatus.md +88 -0
  199. package/llms/components/assistant-ui/elements/agents-tasks/JobProgress.md +84 -0
  200. package/llms/components/assistant-ui/elements/agents-tasks/RunActivity.md +75 -0
  201. package/llms/components/assistant-ui/elements/agents-tasks/ScheduleCard.md +91 -0
  202. package/llms/components/assistant-ui/elements/agents-tasks/StoppedRun.md +54 -0
  203. package/llms/components/assistant-ui/elements/agents-tasks/SubagentList.md +72 -0
  204. package/llms/components/assistant-ui/elements/agents-tasks/TaskCard.md +101 -0
  205. package/llms/components/assistant-ui/elements/agents-tasks/TaskStateIcon.md +86 -0
  206. package/llms/components/assistant-ui/elements/agents-tasks/TodoList.md +99 -0
  207. package/llms/components/assistant-ui/elements/branding/ClaudeLogo.md +36 -0
  208. package/llms/components/assistant-ui/elements/branding/GeminiLogo.md +47 -0
  209. package/llms/components/assistant-ui/elements/branding/GitHubIcon.md +41 -0
  210. package/llms/components/assistant-ui/elements/branding/OpenAILogo.md +36 -0
  211. package/llms/components/assistant-ui/elements/code-diffs/CodeDiff.md +67 -0
  212. package/llms/components/assistant-ui/elements/code-diffs/CodeRunner.md +66 -0
  213. package/llms/components/assistant-ui/elements/code-diffs/DiffViewer.md +144 -0
  214. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerContent.md +50 -0
  215. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerFile.md +50 -0
  216. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerFileBadge.md +50 -0
  217. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerFileContent.md +59 -0
  218. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerHeader.md +81 -0
  219. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerLine.md +50 -0
  220. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerSplitLine.md +55 -0
  221. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerStats.md +50 -0
  222. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerText.md +44 -0
  223. package/llms/components/assistant-ui/elements/code-diffs/ReviewableDiff.md +102 -0
  224. package/llms/components/assistant-ui/elements/code-diffs/ShikiHighlighter.md +131 -0
  225. package/llms/components/assistant-ui/elements/code-diffs/SyntaxHighlighter.md +62 -0
  226. package/llms/components/assistant-ui/elements/code-diffs/TerminalAnsiFragment.md +66 -0
  227. package/llms/components/assistant-ui/elements/code-diffs/TerminalBlock.md +131 -0
  228. package/llms/components/assistant-ui/elements/composer/CommandPalette.md +79 -0
  229. package/llms/components/assistant-ui/elements/composer/Composer.md +62 -0
  230. package/llms/components/assistant-ui/elements/composer/ComposerActions.md +34 -0
  231. package/llms/components/assistant-ui/elements/composer/ComposerAttachButton.md +50 -0
  232. package/llms/components/assistant-ui/elements/composer/ComposerAttachmentChip.md +58 -0
  233. package/llms/components/assistant-ui/elements/composer/ComposerAttachments.md +42 -0
  234. package/llms/components/assistant-ui/elements/composer/ComposerBar.md +42 -0
  235. package/llms/components/assistant-ui/elements/composer/ComposerCommandItem.md +42 -0
  236. package/llms/components/assistant-ui/elements/composer/ComposerContext.md +50 -0
  237. package/llms/components/assistant-ui/elements/composer/ComposerInput.md +56 -0
  238. package/llms/components/assistant-ui/elements/composer/ComposerMenu.md +59 -0
  239. package/llms/components/assistant-ui/elements/composer/ComposerMenuItem.md +50 -0
  240. package/llms/components/assistant-ui/elements/composer/ComposerModelItem.md +42 -0
  241. package/llms/components/assistant-ui/elements/composer/ComposerModelTrigger.md +42 -0
  242. package/llms/components/assistant-ui/elements/composer/ComposerPersonItem.md +42 -0
  243. package/llms/components/assistant-ui/elements/composer/ComposerSend.md +58 -0
  244. package/llms/components/assistant-ui/elements/composer/ComposerToolbar.md +34 -0
  245. package/llms/components/assistant-ui/elements/composer/ComposerVoice.md +58 -0
  246. package/llms/components/assistant-ui/elements/composer/ComposerVoiceButton.md +50 -0
  247. package/llms/components/assistant-ui/elements/composer/MobileComposer.md +82 -0
  248. package/llms/components/assistant-ui/elements/composer/PromptLibrary.md +99 -0
  249. package/llms/components/assistant-ui/elements/composer/Suggestions.md +62 -0
  250. package/llms/components/assistant-ui/elements/context/ContextBreakdown.md +58 -0
  251. package/llms/components/assistant-ui/elements/context/ContextDisplay.md +37 -0
  252. package/llms/components/assistant-ui/elements/context/ContextDisplayBar.md +28 -0
  253. package/llms/components/assistant-ui/elements/context/ContextDisplayContent.md +31 -0
  254. package/llms/components/assistant-ui/elements/context/ContextDisplayRing.md +28 -0
  255. package/llms/components/assistant-ui/elements/context/ContextDisplayRoot.md +54 -0
  256. package/llms/components/assistant-ui/elements/context/ContextDisplayText.md +28 -0
  257. package/llms/components/assistant-ui/elements/context/ContextDisplayTrigger.md +51 -0
  258. package/llms/components/assistant-ui/elements/context/ContextDisplayValue.md +58 -0
  259. package/llms/components/assistant-ui/elements/context/MemoryChips.md +57 -0
  260. package/llms/components/assistant-ui/elements/conversations/BackgroundInbox.md +57 -0
  261. package/llms/components/assistant-ui/elements/conversations/CanvasSplit.md +68 -0
  262. package/llms/components/assistant-ui/elements/conversations/ChatPanel.md +82 -0
  263. package/llms/components/assistant-ui/elements/conversations/CheckpointHistory.md +57 -0
  264. package/llms/components/assistant-ui/elements/conversations/ConversationMap.md +59 -0
  265. package/llms/components/assistant-ui/elements/conversations/ConversationSearch.md +83 -0
  266. package/llms/components/assistant-ui/elements/conversations/DaySeparator.md +44 -0
  267. package/llms/components/assistant-ui/elements/conversations/DraftRestore.md +48 -0
  268. package/llms/components/assistant-ui/elements/conversations/EditMessage.md +97 -0
  269. package/llms/components/assistant-ui/elements/conversations/LauncherBubble.md +79 -0
  270. package/llms/components/assistant-ui/elements/conversations/MessageActions.md +68 -0
  271. package/llms/components/assistant-ui/elements/conversations/MessageAttachments.md +57 -0
  272. package/llms/components/assistant-ui/elements/conversations/MessageBranches.md +76 -0
  273. package/llms/components/assistant-ui/elements/conversations/MessagePair.md +57 -0
  274. package/llms/components/assistant-ui/elements/conversations/MessageQueue.md +54 -0
  275. package/llms/components/assistant-ui/elements/conversations/MessageTiming.md +78 -0
  276. package/llms/components/assistant-ui/elements/conversations/QuoteReply.md +83 -0
  277. package/llms/components/assistant-ui/elements/conversations/RegenerateMenu.md +117 -0
  278. package/llms/components/assistant-ui/elements/conversations/ScrollAnchor.md +56 -0
  279. package/llms/components/assistant-ui/elements/conversations/SharedConversation.md +81 -0
  280. package/llms/components/assistant-ui/elements/conversations/ThreadList.md +121 -0
  281. package/llms/components/assistant-ui/elements/conversations/ThreadSearch.md +131 -0
  282. package/llms/components/assistant-ui/elements/data-visualization/ActivityGraph.md +51 -0
  283. package/llms/components/assistant-ui/elements/data-visualization/ArtifactCard.md +50 -0
  284. package/llms/components/assistant-ui/elements/data-visualization/Chart.md +58 -0
  285. package/llms/components/assistant-ui/elements/data-visualization/ComparisonCard.md +58 -0
  286. package/llms/components/assistant-ui/elements/data-visualization/CostMeter.md +49 -0
  287. package/llms/components/assistant-ui/elements/data-visualization/DataTable.md +240 -0
  288. package/llms/components/assistant-ui/elements/data-visualization/Diagram.md +77 -0
  289. package/llms/components/assistant-ui/elements/data-visualization/DotMatrix.md +188 -0
  290. package/llms/components/assistant-ui/elements/data-visualization/FlowGraph.md +61 -0
  291. package/llms/components/assistant-ui/elements/data-visualization/GenerativeUi.md +110 -0
  292. package/llms/components/assistant-ui/elements/data-visualization/GenerativeUiTheme.md +67 -0
  293. package/llms/components/assistant-ui/elements/data-visualization/GeoMap.md +91 -0
  294. package/llms/components/assistant-ui/elements/data-visualization/HeatGraph.md +57 -0
  295. package/llms/components/assistant-ui/elements/data-visualization/MapAnswer.md +58 -0
  296. package/llms/components/assistant-ui/elements/data-visualization/MermaidDiagram.md +66 -0
  297. package/llms/components/assistant-ui/elements/data-visualization/NumberRoll.md +88 -0
  298. package/llms/components/assistant-ui/elements/data-visualization/NumberRollDigit.md +28 -0
  299. package/llms/components/assistant-ui/elements/data-visualization/NumberRollPart.md +28 -0
  300. package/llms/components/assistant-ui/elements/data-visualization/NumberTicker.md +87 -0
  301. package/llms/components/assistant-ui/elements/data-visualization/RecommendationCard.md +86 -0
  302. package/llms/components/assistant-ui/elements/data-visualization/ScoreBreakdown.md +72 -0
  303. package/llms/components/assistant-ui/elements/data-visualization/ShareMeter.md +50 -0
  304. package/llms/components/assistant-ui/elements/data-visualization/SpecSheet.md +69 -0
  305. package/llms/components/assistant-ui/elements/data-visualization/Timeline.md +72 -0
  306. package/llms/components/assistant-ui/elements/data-visualization/TraceWaterfall.md +88 -0
  307. package/llms/components/assistant-ui/elements/media-voice/AudioPlayer.md +50 -0
  308. package/llms/components/assistant-ui/elements/media-voice/File.md +122 -0
  309. package/llms/components/assistant-ui/elements/media-voice/FileTree.md +59 -0
  310. package/llms/components/assistant-ui/elements/media-voice/Image.md +201 -0
  311. package/llms/components/assistant-ui/elements/media-voice/ImageGallery.md +64 -0
  312. package/llms/components/assistant-ui/elements/media-voice/ImageGeneration.md +50 -0
  313. package/llms/components/assistant-ui/elements/media-voice/ReadAloud.md +89 -0
  314. package/llms/components/assistant-ui/elements/media-voice/SpeakerIdentity.md +60 -0
  315. package/llms/components/assistant-ui/elements/media-voice/VideoPlayer.md +42 -0
  316. package/llms/components/assistant-ui/elements/media-voice/VoiceConversation.md +78 -0
  317. package/llms/components/assistant-ui/elements/media-voice/VoiceOrb.md +110 -0
  318. package/llms/components/assistant-ui/elements/models/ModelPicker.md +79 -0
  319. package/llms/components/assistant-ui/elements/models/ModelSelector.md +48 -0
  320. package/llms/components/assistant-ui/elements/models/ModelSelectorContent.md +45 -0
  321. package/llms/components/assistant-ui/elements/models/ModelSelectorEffort.md +31 -0
  322. package/llms/components/assistant-ui/elements/models/ModelSelectorEmpty.md +30 -0
  323. package/llms/components/assistant-ui/elements/models/ModelSelectorFocusAnchor.md +31 -0
  324. package/llms/components/assistant-ui/elements/models/ModelSelectorGroup.md +40 -0
  325. package/llms/components/assistant-ui/elements/models/ModelSelectorItem.md +38 -0
  326. package/llms/components/assistant-ui/elements/models/ModelSelectorList.md +30 -0
  327. package/llms/components/assistant-ui/elements/models/ModelSelectorRoot.md +72 -0
  328. package/llms/components/assistant-ui/elements/models/ModelSelectorSearch.md +31 -0
  329. package/llms/components/assistant-ui/elements/models/ModelSelectorSeparator.md +34 -0
  330. package/llms/components/assistant-ui/elements/models/ModelSelectorTrigger.md +66 -0
  331. package/llms/components/assistant-ui/elements/models/ModelSelectorValue.md +32 -0
  332. package/llms/components/assistant-ui/elements/models/ReasoningEffort.md +86 -0
  333. package/llms/components/assistant-ui/elements/reasoning/GenerationLoader.md +88 -0
  334. package/llms/components/assistant-ui/elements/reasoning/ReasoningContent.md +59 -0
  335. package/llms/components/assistant-ui/elements/reasoning/ReasoningFade.md +62 -0
  336. package/llms/components/assistant-ui/elements/reasoning/ReasoningPanel.md +75 -0
  337. package/llms/components/assistant-ui/elements/reasoning/ReasoningRoot.md +101 -0
  338. package/llms/components/assistant-ui/elements/reasoning/ReasoningText.md +59 -0
  339. package/llms/components/assistant-ui/elements/reasoning/ReasoningTrigger.md +59 -0
  340. package/llms/components/assistant-ui/elements/reasoning/ThinkingIndicator.md +54 -0
  341. package/llms/components/assistant-ui/elements/reasoning/TypingIndicator.md +62 -0
  342. package/llms/components/assistant-ui/elements/sources-research/Citation.md +103 -0
  343. package/llms/components/assistant-ui/elements/sources-research/ConfidenceMarker.md +94 -0
  344. package/llms/components/assistant-ui/elements/sources-research/DocumentReference.md +60 -0
  345. package/llms/components/assistant-ui/elements/sources-research/InlineCitation.md +56 -0
  346. package/llms/components/assistant-ui/elements/sources-research/LinkPreview.md +65 -0
  347. package/llms/components/assistant-ui/elements/sources-research/ResearchReport.md +72 -0
  348. package/llms/components/assistant-ui/elements/sources-research/RetrievalChunks.md +75 -0
  349. package/llms/components/assistant-ui/elements/sources-research/SourceGlyph.md +54 -0
  350. package/llms/components/assistant-ui/elements/sources-research/Sources.md +150 -0
  351. package/llms/components/assistant-ui/elements/sources-research/WebPreview.md +80 -0
  352. package/llms/components/assistant-ui/elements/sources-research/WebSearch.md +72 -0
  353. package/llms/components/assistant-ui/elements/states-settings/ConnectionState.md +58 -0
  354. package/llms/components/assistant-ui/elements/states-settings/ElicitationForm.md +101 -0
  355. package/llms/components/assistant-ui/elements/states-settings/EmptyState.md +64 -0
  356. package/llms/components/assistant-ui/elements/states-settings/EmptyStateComposer.md +88 -0
  357. package/llms/components/assistant-ui/elements/states-settings/EmptyStateGreeting.md +56 -0
  358. package/llms/components/assistant-ui/elements/states-settings/EmptyStateSuggestion.md +66 -0
  359. package/llms/components/assistant-ui/elements/states-settings/EmptyStateSuggestions.md +61 -0
  360. package/llms/components/assistant-ui/elements/states-settings/ErrorState.md +47 -0
  361. package/llms/components/assistant-ui/elements/states-settings/EveAskQuestion.md +166 -0
  362. package/llms/components/assistant-ui/elements/states-settings/FeedbackDialog.md +85 -0
  363. package/llms/components/assistant-ui/elements/states-settings/Onboarding.md +84 -0
  364. package/llms/components/assistant-ui/elements/states-settings/OptionList.md +74 -0
  365. package/llms/components/assistant-ui/elements/states-settings/OptionText.md +38 -0
  366. package/llms/components/assistant-ui/elements/states-settings/QuestionFlow.md +85 -0
  367. package/llms/components/assistant-ui/elements/states-settings/QuotaBanner.md +91 -0
  368. package/llms/components/assistant-ui/elements/states-settings/SettingsPanel.md +92 -0
  369. package/llms/components/assistant-ui/elements/text-formatting/DirectiveText.md +94 -0
  370. package/llms/components/assistant-ui/elements/text-formatting/Frac.md +28 -0
  371. package/llms/components/assistant-ui/elements/text-formatting/MarkdownText.md +66 -0
  372. package/llms/components/assistant-ui/elements/text-formatting/MathBlock.md +67 -0
  373. package/llms/components/assistant-ui/elements/text-formatting/StreamingText.md +62 -0
  374. package/llms/components/assistant-ui/elements/text-formatting/Sub.md +28 -0
  375. package/llms/components/assistant-ui/elements/text-formatting/Sup.md +28 -0
  376. package/llms/components/assistant-ui/elements/tools-approvals/ApprovalCard.md +96 -0
  377. package/llms/components/assistant-ui/elements/tools-approvals/ComputerUse.md +58 -0
  378. package/llms/components/assistant-ui/elements/tools-approvals/GuardrailNotice.md +78 -0
  379. package/llms/components/assistant-ui/elements/tools-approvals/McpServerPanel.md +73 -0
  380. package/llms/components/assistant-ui/elements/tools-approvals/PermissionGrant.md +104 -0
  381. package/llms/components/assistant-ui/elements/tools-approvals/ToolCall.md +81 -0
  382. package/llms/components/assistant-ui/elements/tools-approvals/ToolError.md +89 -0
  383. package/llms/components/assistant-ui/elements/tools-approvals/ToolGroup.md +101 -0
  384. package/llms/components/assistant-ui/elements/tools-approvals/ToolTimeline.md +87 -0
  385. package/llms/components/assistant-ui/native/agents-tasks/AgentStatus.md +87 -0
  386. package/llms/components/assistant-ui/native/agents-tasks/TaskCard.md +111 -0
  387. package/llms/components/assistant-ui/native/agents-tasks/TaskGroup.md +82 -0
  388. package/llms/components/assistant-ui/native/agents-tasks/TaskTray.md +66 -0
  389. package/llms/components/assistant-ui/native/code-diffs/SyntaxHighlighter.md +48 -0
  390. package/llms/components/assistant-ui/native/composer/AttachmentPreview.md +58 -0
  391. package/llms/components/assistant-ui/native/composer/ComposerTriggerPopover.md +42 -0
  392. package/llms/components/assistant-ui/native/composer/FollowupSuggestionsRow.md +36 -0
  393. package/llms/components/assistant-ui/native/context/ContextDisplay.md +42 -0
  394. package/llms/components/assistant-ui/native/context/ContextDisplayBar.md +52 -0
  395. package/llms/components/assistant-ui/native/context/ContextDisplayRing.md +52 -0
  396. package/llms/components/assistant-ui/native/context/ContextDisplayRoot.md +42 -0
  397. package/llms/components/assistant-ui/native/context/ContextDisplayRuntimeRoot.md +42 -0
  398. package/llms/components/assistant-ui/native/context/ContextDisplayText.md +52 -0
  399. package/llms/components/assistant-ui/native/conversations/AssistantModal.md +60 -0
  400. package/llms/components/assistant-ui/native/conversations/AssistantSidebar.md +44 -0
  401. package/llms/components/assistant-ui/native/conversations/ConversationMapAui.md +50 -0
  402. package/llms/components/assistant-ui/native/conversations/MessageTiming.md +83 -0
  403. package/llms/components/assistant-ui/native/conversations/QuoteBlock.md +34 -0
  404. package/llms/components/assistant-ui/native/conversations/SelectionToolbar.md +53 -0
  405. package/llms/components/assistant-ui/native/conversations/Thread.md +144 -0
  406. package/llms/components/assistant-ui/native/conversations/ThreadList.md +67 -0
  407. package/llms/components/assistant-ui/native/conversations/ThreadListSidebar.md +45 -0
  408. package/llms/components/assistant-ui/native/data-visualization/MermaidDiagram.md +34 -0
  409. package/llms/components/assistant-ui/native/media-voice/VoiceConnectButton.md +69 -0
  410. package/llms/components/assistant-ui/native/media-voice/VoiceControl.md +52 -0
  411. package/llms/components/assistant-ui/native/media-voice/VoiceConversation.md +64 -0
  412. package/llms/components/assistant-ui/native/media-voice/VoiceDisconnectButton.md +53 -0
  413. package/llms/components/assistant-ui/native/media-voice/VoiceMuteButton.md +59 -0
  414. package/llms/components/assistant-ui/native/media-voice/VoiceOrb.md +66 -0
  415. package/llms/components/assistant-ui/native/media-voice/VoiceStatusDot.md +58 -0
  416. package/llms/components/assistant-ui/native/models/ModelSelector.md +50 -0
  417. package/llms/components/assistant-ui/native/reasoning/Reasoning.md +87 -0
  418. package/llms/components/assistant-ui/native/sources-research/Sources.md +145 -0
  419. package/llms/components/assistant-ui/native/text-formatting/DirectiveText.md +42 -0
  420. package/llms/components/assistant-ui/native/tools-approvals/McpConfigDialog.md +54 -0
  421. package/llms/components/assistant-ui/native/tools-approvals/ToolFallbackApproval.md +352 -0
  422. package/llms/components/assistant-ui/native/tools-approvals/ToolFallbackRoot.md +84 -0
  423. package/llms/components/assistant-ui/native/tools-approvals/ToolGroup.md +63 -0
  424. package/llms/components/data-display/Avatar.md +254 -0
  425. package/llms/components/data-display/Badge.md +221 -0
  426. package/llms/components/data-display/Carousel.md +465 -0
  427. package/llms/components/data-display/Chart.md +546 -0
  428. package/llms/components/data-display/Item.md +502 -0
  429. package/llms/components/data-display/JsonViewer.md +38 -0
  430. package/llms/components/data-display/Kbd.md +99 -0
  431. package/llms/components/data-display/Table.md +254 -0
  432. package/llms/components/data-display/VirtualTable.md +57 -0
  433. package/llms/components/dates/Calendar.md +539 -0
  434. package/llms/components/dates/PersianCalendar.md +117 -0
  435. package/llms/components/drag-drop/DragDropPreview.md +46 -0
  436. package/llms/components/drag-drop/DragDropProvider.md +28 -0
  437. package/llms/components/feedback/Alert.md +117 -0
  438. package/llms/components/feedback/Empty.md +193 -0
  439. package/llms/components/feedback/EmptyState.md +38 -0
  440. package/llms/components/feedback/PageMessage.md +49 -0
  441. package/llms/components/feedback/Progress.md +140 -0
  442. package/llms/components/feedback/Skeleton.md +157 -0
  443. package/llms/components/feedback/Sonner.md +325 -0
  444. package/llms/components/feedback/Spinner.md +119 -0
  445. package/llms/components/feedback/Toast.md +242 -0
  446. package/llms/components/forms/Checkbox.md +204 -0
  447. package/llms/components/forms/Combobox.md +594 -0
  448. package/llms/components/forms/Field.md +511 -0
  449. package/llms/components/forms/ImagePicker.md +63 -0
  450. package/llms/components/forms/InlineEdit.md +67 -0
  451. package/llms/components/forms/Input.md +380 -0
  452. package/llms/components/forms/InputGroup.md +628 -0
  453. package/llms/components/forms/InputOTP.md +400 -0
  454. package/llms/components/forms/Label.md +181 -0
  455. package/llms/components/forms/NativeSelect.md +128 -0
  456. package/llms/components/forms/Questionnaire.md +267 -0
  457. package/llms/components/forms/RadioGroup.md +401 -0
  458. package/llms/components/forms/Select.md +575 -0
  459. package/llms/components/forms/Slider.md +234 -0
  460. package/llms/components/forms/StarRating.md +60 -0
  461. package/llms/components/forms/Switch.md +240 -0
  462. package/llms/components/forms/Textarea.md +219 -0
  463. package/llms/components/layout/Accordion.md +249 -0
  464. package/llms/components/layout/AspectRatio.md +68 -0
  465. package/llms/components/layout/Card.md +391 -0
  466. package/llms/components/layout/Collapsible.md +231 -0
  467. package/llms/components/layout/Resizable.md +267 -0
  468. package/llms/components/layout/ScrollArea.md +170 -0
  469. package/llms/components/layout/Separator.md +104 -0
  470. package/llms/components/layout/SplitView.md +92 -0
  471. package/llms/components/messaging/Attachment.md +324 -0
  472. package/llms/components/messaging/Bubble.md +411 -0
  473. package/llms/components/messaging/Marker.md +203 -0
  474. package/llms/components/messaging/Message.md +268 -0
  475. package/llms/components/messaging/MessageScroller.md +227 -0
  476. package/llms/components/navigation/Breadcrumb.md +159 -0
  477. package/llms/components/navigation/Command.md +471 -0
  478. package/llms/components/navigation/ContextMenu.md +596 -0
  479. package/llms/components/navigation/DropdownMenu.md +602 -0
  480. package/llms/components/navigation/Menubar.md +397 -0
  481. package/llms/components/navigation/NavigationMenu.md +379 -0
  482. package/llms/components/navigation/Pagination.md +222 -0
  483. package/llms/components/navigation/Sidebar.md +330 -0
  484. package/llms/components/navigation/Tabs.md +418 -0
  485. package/llms/components/overlays/AlertDialog.md +365 -0
  486. package/llms/components/overlays/ConfirmationDialog.md +77 -0
  487. package/llms/components/overlays/Dialog.md +559 -0
  488. package/llms/components/overlays/Drawer.md +597 -0
  489. package/llms/components/overlays/HoverCard.md +276 -0
  490. package/llms/components/overlays/Popover.md +286 -0
  491. package/llms/components/overlays/Sheet.md +433 -0
  492. package/llms/components/overlays/Tooltip.md +318 -0
  493. package/llms/components/providers/DensityProvider.md +171 -0
  494. package/llms/components/providers/DirectionProvider.md +39 -0
  495. package/llms/components/providers/PortalProvider.md +264 -0
  496. package/llms/components/providers/ScrollGuard.md +24 -0
  497. package/llms/components/providers/ThemeProvider.md +71 -0
  498. package/llms/setup.md +380 -0
  499. package/llms.txt +428 -0
  500. package/package.json +8 -5
  501. package/dist/chunk-czg9p52v.js +0 -74
  502. package/dist/chunk-fqekyjkh.js +0 -65
@@ -0,0 +1,628 @@
1
+ # InputGroup
2
+
3
+ Story: @alexgorbatchev/shadcn/components/forms/InputGroup
4
+ Source: src/components/stories/forms/InputGroup.stories.tsx
5
+
6
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/forms/InputGroup.stories.tsx)
7
+
8
+ ## Public imports
9
+
10
+ ```tsx
11
+ import { InputGroup, InputGroupInput, InputGroupTextarea, InputGroupAddon, InputGroupButton, InputGroupText, Field, FieldGroup, FieldLabel, FieldError, FieldDescription, Button, DirectionProvider, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem } from "@alexgorbatchev/shadcn";
12
+ ```
13
+
14
+ ## Supporting imports
15
+
16
+ ```tsx
17
+ import { useId, useRef, useState } from "react";
18
+ import type { InputState } from "@base-ui/react/input";
19
+ import type { ButtonState } from "@base-ui/react/button";
20
+ import { SearchIcon, CopyIcon } from "lucide-react";
21
+ ```
22
+
23
+ ## Default component
24
+
25
+ ```tsx
26
+ InputGroup
27
+ ```
28
+
29
+ ## Default args
30
+
31
+ ```tsx
32
+ { onClick: fn() }
33
+ ```
34
+
35
+ ## Default render
36
+
37
+ ```tsx
38
+ (args) => (<InputGroup {...args} aria-label="Project search">
39
+ <InputGroupInput aria-label="Search" placeholder="Search projects"/>
40
+ <InputGroupAddon aria-label="Search adornment">
41
+ <SearchIcon aria-hidden/>
42
+ </InputGroupAddon>
43
+ <InputGroupAddon align="inline-end">
44
+ <InputGroupText>⌘K</InputGroupText>
45
+ </InputGroupAddon>
46
+ </InputGroup>)
47
+ ```
48
+
49
+ ## Examples
50
+
51
+ Storybook CSF excerpts. Default args and render apply unless overridden. Local helpers, fixtures, decorators, and providers may be required; these are reference excerpts, not standalone consumer modules. Interaction tests are omitted.
52
+
53
+ ### Search
54
+
55
+ ```tsx
56
+ {}
57
+ ```
58
+
59
+ ### WithAction
60
+
61
+ ```tsx
62
+ {
63
+ render: function Render(args) {
64
+ const [value, setValue] = useState("https://example.com");
65
+ const [result, setResult] = useState("");
66
+ return (<Field>
67
+ <InputGroup {...args}>
68
+ <InputGroupInput aria-label="Project URL" value={value} onValueChange={setValue}/>
69
+ <InputGroupAddon align="inline-end">
70
+ <InputGroupButton aria-label="Copy URL" onClick={async () => {
71
+ try {
72
+ await navigator.clipboard.writeText(value);
73
+ setResult("URL copied");
74
+ }
75
+ catch {
76
+ setResult("Clipboard access denied.");
77
+ }
78
+ }}>
79
+ <CopyIcon aria-hidden/>
80
+ </InputGroupButton>
81
+ </InputGroupAddon>
82
+ </InputGroup>
83
+ <output aria-label="Copy result">{result}</output>
84
+ </Field>);
85
+ }
86
+ }
87
+ ```
88
+
89
+ ### Disabled
90
+
91
+ ```tsx
92
+ {
93
+ render: (args) => (<InputGroup {...args}>
94
+ <InputGroupInput aria-label="Disabled search" disabled placeholder="Search"/>
95
+ <InputGroupAddon aria-label="Disabled adornment">
96
+ <SearchIcon aria-hidden/>
97
+ </InputGroupAddon>
98
+ </InputGroup>)
99
+ }
100
+ ```
101
+
102
+ ### DisabledInputWithAction
103
+
104
+ ```tsx
105
+ {
106
+ render: function Render(args) {
107
+ const [details, setDetails] = useState("Choose Details to inspect the project.");
108
+ return (<Field>
109
+ <InputGroup {...args}>
110
+ <InputGroupInput aria-label="Project code" defaultValue="AG-42" disabled/>
111
+ <InputGroupAddon>
112
+ <InputGroupText>Project</InputGroupText>
113
+ </InputGroupAddon>
114
+ <InputGroupAddon align="inline-end">
115
+ <InputGroupButton onClick={() => setDetails("Project AG-42")}>Details</InputGroupButton>
116
+ </InputGroupAddon>
117
+ </InputGroup>
118
+ <output aria-label="Project details">{details}</output>
119
+ </Field>);
120
+ }
121
+ }
122
+ ```
123
+
124
+ ### Invalid
125
+
126
+ ```tsx
127
+ {
128
+ render: (args) => (<Field data-invalid>
129
+ <InputGroup {...args}>
130
+ <InputGroupInput aria-label="Invalid search" aria-invalid defaultValue="?" aria-describedby="input-group-error"/>
131
+ <InputGroupAddon>
132
+ <SearchIcon aria-hidden/>
133
+ </InputGroupAddon>
134
+ </InputGroup>
135
+ <FieldError id="input-group-error">Enter a project name.</FieldError>
136
+ </Field>)
137
+ }
138
+ ```
139
+
140
+ ### Textarea
141
+
142
+ ```tsx
143
+ {
144
+ render: function Render(args) {
145
+ const [result, setResult] = useState("");
146
+ return (<form aria-label="Comment form" onSubmit={(event) => {
147
+ event.preventDefault();
148
+ setResult(String(new FormData(event.currentTarget).get("comment")));
149
+ }}>
150
+ <Field>
151
+ <InputGroup {...args}>
152
+ <InputGroupTextarea name="comment" aria-label="Comment" placeholder="Write a comment"/>
153
+ <InputGroupAddon align="block-end">
154
+ <InputGroupText>Markdown supported</InputGroupText>
155
+ <InputGroupButton type="submit" variant="default" size="sm">
156
+ Post
157
+ </InputGroupButton>
158
+ </InputGroupAddon>
159
+ </InputGroup>
160
+ <output aria-label="Posted comment">{result}</output>
161
+ </Field>
162
+ </form>);
163
+ }
164
+ }
165
+ ```
166
+
167
+ ### AddonCallback
168
+
169
+ ```tsx
170
+ {
171
+ render: (args) => (<InputGroup>
172
+ <InputGroupInput aria-label="Callback search"/>
173
+ <InputGroupAddon onClick={args.onClick}>
174
+ <InputGroupText>Search projects</InputGroupText>
175
+ </InputGroupAddon>
176
+ </InputGroup>)
177
+ }
178
+ ```
179
+
180
+ ### CancelledAddonFocus
181
+
182
+ ```tsx
183
+ {
184
+ render: (args) => (<FieldGroup>
185
+ <Button>Keep focus</Button>
186
+ <InputGroup {...args}>
187
+ <InputGroupInput aria-label="Cancelled search"/>
188
+ <InputGroupAddon onClick={(event) => event.preventDefault()}>
189
+ <InputGroupText>Cancelled addon</InputGroupText>
190
+ </InputGroupAddon>
191
+ </InputGroup>
192
+ </FieldGroup>)
193
+ }
194
+ ```
195
+
196
+ ### LinkAddon
197
+
198
+ ```tsx
199
+ {
200
+ render: (args) => (<InputGroup {...args}>
201
+ <InputGroupInput aria-label="Help search"/>
202
+ <InputGroupAddon align="inline-end">
203
+ <a href="#input-group-help" onClick={(event) => event.preventDefault()}>
204
+ Search help
205
+ </a>
206
+ </InputGroupAddon>
207
+ </InputGroup>)
208
+ }
209
+ ```
210
+
211
+ ### NativeInputCallbacks
212
+
213
+ ```tsx
214
+ {
215
+ render: function Render(args) {
216
+ const [isDisabled, setIsDisabled] = useState(false);
217
+ return (<Field>
218
+ <InputGroup {...args}>
219
+ <InputGroupInput aria-label="Native callback input" disabled={isDisabled} className={(state: InputState) => (state.disabled ? "h-12" : "h-8")}/>
220
+ <InputGroupAddon>
221
+ <InputGroupText>Native state</InputGroupText>
222
+ </InputGroupAddon>
223
+ </InputGroup>
224
+ <Button onClick={() => setIsDisabled(true)}>Disable callback input</Button>
225
+ </Field>);
226
+ }
227
+ }
228
+ ```
229
+
230
+ ### NativeButtonCallbacks
231
+
232
+ ```tsx
233
+ {
234
+ render: function Render(args) {
235
+ const [isDisabled, setIsDisabled] = useState(false);
236
+ return (<InputGroup {...args}>
237
+ <InputGroupInput aria-label="Native button input"/>
238
+ <InputGroupAddon align="inline-end">
239
+ <InputGroupButton disabled={isDisabled} className={(state: ButtonState) => (state.disabled ? "h-12" : "h-8")} onClick={() => setIsDisabled(true)}>
240
+ Disable action
241
+ </InputGroupButton>
242
+ </InputGroupAddon>
243
+ </InputGroup>);
244
+ }
245
+ }
246
+ ```
247
+
248
+ ### NativeRenderAndRefs
249
+
250
+ ```tsx
251
+ {
252
+ render: function Render(args) {
253
+ const inputRef = useRef<HTMLInputElement>(null);
254
+ const textareaRef = useRef<HTMLTextAreaElement>(null);
255
+ const buttonRef = useRef<HTMLButtonElement>(null);
256
+ return (<FieldGroup>
257
+ <InputGroup {...args}>
258
+ <InputGroupInput aria-label="Rendered input" render={<input data-testid="InputGroup--custom-input"/>} ref={inputRef}/>
259
+ <InputGroupAddon align="inline-end">
260
+ <InputGroupButton render={<button data-testid="InputGroup--custom-button"/>} ref={buttonRef}>
261
+ Native button
262
+ </InputGroupButton>
263
+ </InputGroupAddon>
264
+ </InputGroup>
265
+ <InputGroup>
266
+ <InputGroupTextarea aria-label="Native textarea" ref={textareaRef}/>
267
+ </InputGroup>
268
+ <Button onClick={() => inputRef.current?.focus()}>Focus input ref</Button>
269
+ <Button onClick={() => textareaRef.current?.focus()}>Focus textarea ref</Button>
270
+ <Button onClick={() => buttonRef.current?.focus()}>Focus button ref</Button>
271
+ </FieldGroup>);
272
+ }
273
+ }
274
+ ```
275
+
276
+ ### FormSubmissionAndReset
277
+
278
+ ```tsx
279
+ {
280
+ render: function Render(args) {
281
+ const [result, setResult] = useState("");
282
+ const id = useId();
283
+ return (<form aria-label="Group form" onSubmit={(event) => {
284
+ event.preventDefault();
285
+ setResult(JSON.stringify(Object.fromEntries(new FormData(event.currentTarget))));
286
+ }}>
287
+ <FieldGroup>
288
+ <Field>
289
+ <FieldLabel htmlFor={id}>Profile name</FieldLabel>
290
+ <InputGroup {...args}>
291
+ <InputGroupInput id={id} name="name" defaultValue="alex" required/>
292
+ <InputGroupAddon align="inline-end">
293
+ <InputGroupButton>Preview</InputGroupButton>
294
+ </InputGroupAddon>
295
+ </InputGroup>
296
+ </Field>
297
+ <InputGroup>
298
+ <InputGroupInput aria-label="Omitted name" name="omitted" defaultValue="hidden" disabled/>
299
+ </InputGroup>
300
+ <InputGroup>
301
+ <InputGroupTextarea aria-label="Profile notes" name="notes" defaultValue="Initial notes"/>
302
+ <InputGroupAddon align="block-end">
303
+ <InputGroupButton type="submit">Save group</InputGroupButton>
304
+ <InputGroupButton type="reset">Reset group</InputGroupButton>
305
+ </InputGroupAddon>
306
+ </InputGroup>
307
+ <output aria-label="Saved group">{result}</output>
308
+ </FieldGroup>
309
+ </form>);
310
+ }
311
+ }
312
+ ```
313
+
314
+ ### BlockStart
315
+
316
+ ```tsx
317
+ {
318
+ render: (args) => (<InputGroup {...args} aria-label="Block group">
319
+ <InputGroupInput aria-label="Block name"/>
320
+ <InputGroupAddon align="block-start">
321
+ <InputGroupText>Project name</InputGroupText>
322
+ </InputGroupAddon>
323
+ </InputGroup>)
324
+ }
325
+ ```
326
+
327
+ ### ReadOnly
328
+
329
+ ```tsx
330
+ {
331
+ render: (args) => (<InputGroup {...args}>
332
+ <InputGroupInput aria-label="Reference" readOnly defaultValue="REF-001"/>
333
+ <InputGroupAddon>
334
+ <InputGroupText>Reference code</InputGroupText>
335
+ </InputGroupAddon>
336
+ </InputGroup>)
337
+ }
338
+ ```
339
+
340
+ ### RTL
341
+
342
+ ```tsx
343
+ {
344
+ args: { dir: "rtl" }
345
+ }
346
+ ```
347
+
348
+ ### Compact
349
+
350
+ ```tsx
351
+ {
352
+ args: { density: "compact" }
353
+ }
354
+ ```
355
+
356
+ ### Comfortable
357
+
358
+ ```tsx
359
+ {
360
+ args: { density: "comfortable" }
361
+ }
362
+ ```
363
+
364
+ ### ButtonSizes
365
+
366
+ ```tsx
367
+ {
368
+ args: { density: "comfortable" },
369
+ render: (args) => (<FieldGroup>
370
+ <InputGroup {...args} aria-label="Small action group">
371
+ <InputGroupInput aria-label="Small action input"/>
372
+ <InputGroupAddon align="inline-end">
373
+ <InputGroupButton size="sm">Small action</InputGroupButton>
374
+ </InputGroupAddon>
375
+ </InputGroup>
376
+ <InputGroup {...args} aria-label="Small icon group">
377
+ <InputGroupInput aria-label="Small icon input"/>
378
+ <InputGroupAddon align="inline-end">
379
+ <InputGroupButton size="icon-sm" aria-label="Small icon action">
380
+ <SearchIcon aria-hidden/>
381
+ </InputGroupButton>
382
+ </InputGroupAddon>
383
+ </InputGroup>
384
+ <InputGroup {...args} aria-label="Extra small action group">
385
+ <InputGroupInput aria-label="Extra small action input"/>
386
+ <InputGroupAddon align="inline-end">
387
+ <InputGroupButton size="xs">Extra small action</InputGroupButton>
388
+ </InputGroupAddon>
389
+ </InputGroup>
390
+ <InputGroup {...args} aria-label="Extra small icon group">
391
+ <InputGroupInput aria-label="Extra small icon input"/>
392
+ <InputGroupAddon align="inline-end">
393
+ <InputGroupButton size="icon-xs" aria-label="Extra small icon action">
394
+ <SearchIcon aria-hidden/>
395
+ </InputGroupButton>
396
+ </InputGroupAddon>
397
+ </InputGroup>
398
+ </FieldGroup>)
399
+ }
400
+ ```
401
+
402
+ ### CompactButtonSizes
403
+
404
+ ```tsx
405
+ {
406
+ args: { density: "compact" },
407
+ render: (args) => (<FieldGroup>
408
+ <InputGroup {...args} aria-label="Small action group">
409
+ <InputGroupInput aria-label="Small action input"/>
410
+ <InputGroupAddon align="inline-end">
411
+ <InputGroupButton size="sm">Small action</InputGroupButton>
412
+ </InputGroupAddon>
413
+ </InputGroup>
414
+ <InputGroup {...args} aria-label="Small icon group">
415
+ <InputGroupInput aria-label="Small icon input"/>
416
+ <InputGroupAddon align="inline-end">
417
+ <InputGroupButton size="icon-sm" aria-label="Small icon action">
418
+ <SearchIcon aria-hidden/>
419
+ </InputGroupButton>
420
+ </InputGroupAddon>
421
+ </InputGroup>
422
+ <InputGroup {...args} aria-label="Extra small action group">
423
+ <InputGroupInput aria-label="Extra small action input"/>
424
+ <InputGroupAddon align="inline-end">
425
+ <InputGroupButton size="xs">Extra small action</InputGroupButton>
426
+ </InputGroupAddon>
427
+ </InputGroup>
428
+ <InputGroup {...args} aria-label="Extra small icon group">
429
+ <InputGroupInput aria-label="Extra small icon input"/>
430
+ <InputGroupAddon align="inline-end">
431
+ <InputGroupButton size="icon-xs" aria-label="Extra small icon action">
432
+ <SearchIcon aria-hidden/>
433
+ </InputGroupButton>
434
+ </InputGroupAddon>
435
+ </InputGroup>
436
+ </FieldGroup>)
437
+ }
438
+ ```
439
+
440
+ ### InlineEnd
441
+
442
+ ```tsx
443
+ {
444
+ render: (args) => (<InputGroup {...args}>
445
+ <InputGroupInput aria-label="Filter projects"/>
446
+ <InputGroupAddon align="inline-end" aria-label="Filter icon">
447
+ <SearchIcon aria-hidden/>
448
+ </InputGroupAddon>
449
+ </InputGroup>)
450
+ }
451
+ ```
452
+
453
+ ### TextAffixes
454
+
455
+ ```tsx
456
+ {
457
+ render: function Render(args) {
458
+ const id = useId();
459
+ return (<Field>
460
+ <FieldLabel htmlFor={id}>Budget (USD)</FieldLabel>
461
+ <InputGroup {...args}>
462
+ <InputGroupInput id={id} type="number" min={0} aria-describedby={id + "-help"}/>
463
+ <InputGroupAddon>
464
+ <InputGroupText>$</InputGroupText>
465
+ </InputGroupAddon>
466
+ <InputGroupAddon align="inline-end">
467
+ <InputGroupText>USD</InputGroupText>
468
+ </InputGroupAddon>
469
+ </InputGroup>
470
+ <FieldDescription id={id + "-help"}>Enter a nonnegative budget in US dollars.</FieldDescription>
471
+ </Field>);
472
+ }
473
+ }
474
+ ```
475
+
476
+ ### RightToLeftAffixes
477
+
478
+ ```tsx
479
+ {
480
+ render: function Render(args) {
481
+ const id = useId();
482
+ return (<Field>
483
+ <FieldLabel htmlFor={id}>Budget (USD)</FieldLabel>
484
+ <InputGroup {...args}>
485
+ <InputGroupInput id={id} type="number" min={0} aria-describedby={id + "-help"}/>
486
+ <InputGroupAddon>
487
+ <InputGroupText>$</InputGroupText>
488
+ </InputGroupAddon>
489
+ <InputGroupAddon align="inline-end">
490
+ <InputGroupText>USD</InputGroupText>
491
+ </InputGroupAddon>
492
+ </InputGroup>
493
+ <FieldDescription id={id + "-help"}>Enter a nonnegative budget in US dollars.</FieldDescription>
494
+ </Field>);
495
+ },
496
+ args: { dir: "rtl" },
497
+ decorators: [
498
+ (Story) => (<DirectionProvider direction="rtl">
499
+ <div dir="rtl" className="w-80">
500
+ <Story />
501
+ </div>
502
+ </DirectionProvider>),
503
+ ]
504
+ }
505
+ ```
506
+
507
+ ### DropdownAction
508
+
509
+ ```tsx
510
+ {
511
+ render: function Render(args) {
512
+ const [format, setFormat] = useState("Markdown");
513
+ return (<Field>
514
+ <InputGroup {...args}>
515
+ <InputGroupInput aria-label="File name"/>
516
+ <InputGroupAddon align="inline-end">
517
+ <DropdownMenu>
518
+ <DropdownMenuTrigger render={<InputGroupButton aria-label="File actions"/>}>Format</DropdownMenuTrigger>
519
+ <DropdownMenuContent align="end">
520
+ <DropdownMenuGroup>
521
+ <DropdownMenuItem onClick={() => setFormat("Markdown")}>Markdown</DropdownMenuItem>
522
+ <DropdownMenuItem onClick={() => setFormat("Plain text")}>Plain text</DropdownMenuItem>
523
+ </DropdownMenuGroup>
524
+ </DropdownMenuContent>
525
+ </DropdownMenu>
526
+ </InputGroupAddon>
527
+ </InputGroup>
528
+ <output aria-label="File format">{format}</output>
529
+ </Field>);
530
+ }
531
+ }
532
+ ```
533
+
534
+ ### RightToLeftDropdown
535
+
536
+ ```tsx
537
+ {
538
+ render: function Render(args) {
539
+ const [format, setFormat] = useState("Markdown");
540
+ return (<Field>
541
+ <InputGroup {...args}>
542
+ <InputGroupInput aria-label="File name"/>
543
+ <InputGroupAddon align="inline-end">
544
+ <DropdownMenu>
545
+ <DropdownMenuTrigger render={<InputGroupButton aria-label="File actions"/>}>Format</DropdownMenuTrigger>
546
+ <DropdownMenuContent align="end">
547
+ <DropdownMenuGroup>
548
+ <DropdownMenuItem onClick={() => setFormat("Markdown")}>Markdown</DropdownMenuItem>
549
+ <DropdownMenuItem onClick={() => setFormat("Plain text")}>Plain text</DropdownMenuItem>
550
+ </DropdownMenuGroup>
551
+ </DropdownMenuContent>
552
+ </DropdownMenu>
553
+ </InputGroupAddon>
554
+ </InputGroup>
555
+ <output aria-label="File format">{format}</output>
556
+ </Field>);
557
+ },
558
+ args: { dir: "rtl" },
559
+ decorators: [
560
+ (Story) => (<DirectionProvider direction="rtl">
561
+ <div dir="rtl" className="w-80">
562
+ <Story />
563
+ </div>
564
+ </DirectionProvider>),
565
+ ]
566
+ }
567
+ ```
568
+
569
+ ### BlockStartTextarea
570
+
571
+ ```tsx
572
+ {
573
+ render: (args) => (<InputGroup {...args}>
574
+ <InputGroupTextarea aria-label="Markdown notes"/>
575
+ <InputGroupAddon align="block-start">
576
+ <InputGroupText>Markdown editor</InputGroupText>
577
+ </InputGroupAddon>
578
+ </InputGroup>)
579
+ }
580
+ ```
581
+
582
+ ### CustomControl
583
+
584
+ ```tsx
585
+ {
586
+ render: function Render(args) {
587
+ const id = useId();
588
+ return (<Field>
589
+ <FieldLabel htmlFor={id}>Custom notes</FieldLabel>
590
+ <InputGroup {...args} aria-label="Custom notes group">
591
+ <textarea id={id} data-slot="input-group-control" aria-describedby={id + "-help"} className="field-sizing-content min-h-16 w-full resize-none bg-transparent px-control-x py-2 text-base outline-none"/>
592
+ <InputGroupAddon align="block-end">
593
+ <InputGroupText>Notes editor</InputGroupText>
594
+ </InputGroupAddon>
595
+ </InputGroup>
596
+ <FieldDescription id={id + "-help"}>The native custom control grows with its content.</FieldDescription>
597
+ </Field>);
598
+ }
599
+ }
600
+ ```
601
+
602
+ ### RightToLeftCustomControl
603
+
604
+ ```tsx
605
+ {
606
+ render: function Render(args) {
607
+ const id = useId();
608
+ return (<Field>
609
+ <FieldLabel htmlFor={id}>Custom notes</FieldLabel>
610
+ <InputGroup {...args} aria-label="Custom notes group">
611
+ <textarea id={id} data-slot="input-group-control" aria-describedby={id + "-help"} className="field-sizing-content min-h-16 w-full resize-none bg-transparent px-control-x py-2 text-base outline-none"/>
612
+ <InputGroupAddon align="block-end">
613
+ <InputGroupText>Notes editor</InputGroupText>
614
+ </InputGroupAddon>
615
+ </InputGroup>
616
+ <FieldDescription id={id + "-help"}>The native custom control grows with its content.</FieldDescription>
617
+ </Field>);
618
+ },
619
+ args: { dir: "rtl" },
620
+ decorators: [
621
+ (Story) => (<DirectionProvider direction="rtl">
622
+ <div dir="rtl" className="w-80">
623
+ <Story />
624
+ </div>
625
+ </DirectionProvider>),
626
+ ]
627
+ }
628
+ ```