@alexgorbatchev/shadcn 0.0.19 → 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 (495) hide show
  1. package/README.md +21 -2
  2. package/dist/{chunk-q2ewq67a.js → chunk-02qymemz.js} +1 -1
  3. package/dist/{chunk-k89xxj12.js → chunk-0ewzb2ax.js} +1 -1
  4. package/dist/{chunk-6wvtsf2m.js → chunk-14qj6w54.js} +5 -5
  5. package/dist/{chunk-0q6mg89k.js → chunk-1c5jjkhw.js} +1 -1
  6. package/dist/{chunk-38kwkd1a.js → chunk-1qhf8gh8.js} +3 -2
  7. package/dist/{chunk-zgpdhtkw.js → chunk-21x1n6gn.js} +6 -6
  8. package/dist/{chunk-h46mdagy.js → chunk-24pefkd5.js} +1 -1
  9. package/dist/{chunk-msave608.js → chunk-2bx2r98r.js} +1 -1
  10. package/dist/{chunk-41wykzq3.js → chunk-2tmvz090.js} +1 -1
  11. package/dist/{chunk-wxncy44f.js → chunk-3d9v39ga.js} +1 -1
  12. package/dist/{chunk-2b9agdrf.js → chunk-3dyqen8w.js} +1 -1
  13. package/dist/{chunk-f63f8w58.js → chunk-3jrsp186.js} +1 -1
  14. package/dist/{chunk-njzam0hx.js → chunk-3qqdfft7.js} +1 -0
  15. package/dist/{chunk-gfm2arhj.js → chunk-43hfchxf.js} +1 -1
  16. package/dist/{chunk-6xr41wyr.js → chunk-46jdxdzy.js} +3 -3
  17. package/dist/{chunk-x7z9jzyf.js → chunk-4djw71cv.js} +22 -12
  18. package/dist/{chunk-vpj3vk7v.js → chunk-4drqqqz1.js} +1 -1
  19. package/dist/{chunk-mjpc4qf7.js → chunk-52e8a05a.js} +1 -1
  20. package/dist/{chunk-82vfgkjv.js → chunk-553bzh59.js} +1 -1
  21. package/dist/{chunk-kc4mmrwk.js → chunk-5ayp2vkw.js} +1 -1
  22. package/dist/{chunk-19441s27.js → chunk-5pvyxayg.js} +2 -2
  23. package/dist/{chunk-vx7c2xhq.js → chunk-5v4typ39.js} +3 -3
  24. package/dist/{chunk-gt8m0zeq.js → chunk-5wndb6hx.js} +1 -1
  25. package/dist/{chunk-550z7s64.js → chunk-6432235c.js} +3 -3
  26. package/dist/{chunk-f73en61v.js → chunk-6f3qpy7v.js} +1 -1
  27. package/dist/{chunk-2gten6a1.js → chunk-6wvhq8wq.js} +2 -2
  28. package/dist/{chunk-717ggspf.js → chunk-70vndezn.js} +16 -5
  29. package/dist/{chunk-r7fy89jq.js → chunk-79667fz5.js} +3 -3
  30. package/dist/{chunk-waat2ksf.js → chunk-7pyt4e5t.js} +1 -1
  31. package/dist/{chunk-8x8yxf6x.js → chunk-84ca0dpc.js} +2 -2
  32. package/dist/{chunk-9msk1t9e.js → chunk-8a15x4a8.js} +1 -1
  33. package/dist/{chunk-f8758vjx.js → chunk-8fcjx3he.js} +5 -5
  34. package/dist/{chunk-h8awhm19.js → chunk-96wh7ccv.js} +1 -1
  35. package/dist/{chunk-pe1vvkp7.js → chunk-9jct7hv0.js} +3 -3
  36. package/dist/{chunk-xqn8mef3.js → chunk-a6kyjjfk.js} +1 -0
  37. package/dist/chunk-aa7m22zj.js +22 -0
  38. package/dist/{chunk-zhdp6qrb.js → chunk-bcpy6gpz.js} +1 -1
  39. package/dist/{chunk-v4yqjvzd.js → chunk-bygq5yqf.js} +31 -6
  40. package/dist/{chunk-2m0zpzbm.js → chunk-cn81dnqb.js} +1 -0
  41. package/dist/{chunk-m1a9e1py.js → chunk-d2z4gebj.js} +1 -1
  42. package/dist/{chunk-mx21wpq0.js → chunk-d4bm5rzy.js} +12 -2
  43. package/dist/{chunk-0zwxgwr4.js → chunk-d9jbqd99.js} +1 -1
  44. package/dist/{chunk-qw7229kj.js → chunk-dgkj6442.js} +1 -1
  45. package/dist/{chunk-r4fr62ca.js → chunk-djm7qq62.js} +1 -1
  46. package/dist/{chunk-9dw4dyzq.js → chunk-e0pv0me5.js} +1 -1
  47. package/dist/{chunk-k4vvp62d.js → chunk-ecmk3vgd.js} +1 -1
  48. package/dist/{chunk-2qxy1r5y.js → chunk-eq88qk1d.js} +10 -10
  49. package/dist/{chunk-jq6tc65r.js → chunk-f5hphka1.js} +7 -1
  50. package/dist/{chunk-2e4fnx0e.js → chunk-fb6h4fzt.js} +1 -1
  51. package/dist/{chunk-c900175p.js → chunk-fba5hr7b.js} +1 -1
  52. package/dist/{chunk-155c0btb.js → chunk-g03nphs1.js} +1 -1
  53. package/dist/{chunk-x82x81th.js → chunk-gabqzfq0.js} +3 -3
  54. package/dist/{chunk-zcwynyr0.js → chunk-gykrcxd1.js} +1 -0
  55. package/dist/{chunk-45kmek5e.js → chunk-h979cxnh.js} +14 -3
  56. package/dist/{chunk-m54kq3he.js → chunk-hh43wg05.js} +22 -12
  57. package/dist/{chunk-6hbx647r.js → chunk-j4gd5awk.js} +6 -6
  58. package/dist/{chunk-aewjmzt9.js → chunk-jba22682.js} +3 -3
  59. package/dist/{chunk-82cw4kcg.js → chunk-jf0y740b.js} +1 -1
  60. package/dist/{chunk-fyb0b7bp.js → chunk-jpamrhdk.js} +1 -1
  61. package/dist/{chunk-gyg2s982.js → chunk-k4qz4q7r.js} +1 -0
  62. package/dist/{chunk-s3b87adw.js → chunk-kv1akmf5.js} +1 -1
  63. package/dist/{chunk-2g0zzx6f.js → chunk-m2ct74my.js} +1 -0
  64. package/dist/{chunk-c6b2cfw4.js → chunk-mrrbycgx.js} +3 -3
  65. package/dist/chunk-mz3e810d.js +83 -0
  66. package/dist/{chunk-serw27sv.js → chunk-nkw2vsf3.js} +1 -0
  67. package/dist/{chunk-wf5cnpdg.js → chunk-p45ytcc2.js} +3 -3
  68. package/dist/{chunk-86211e5a.js → chunk-p8gshf3k.js} +1 -1
  69. package/dist/{chunk-cre60717.js → chunk-p8qtk151.js} +1 -1
  70. package/dist/{chunk-3552jz55.js → chunk-qcsxnn16.js} +1 -0
  71. package/dist/{chunk-q40gqpwh.js → chunk-qgjjcmpa.js} +1 -1
  72. package/dist/{chunk-dppmqr99.js → chunk-qv19jhdk.js} +1 -1
  73. package/dist/{chunk-1x2ch0xc.js → chunk-rffrerg5.js} +3 -1
  74. package/dist/{chunk-0jb0xgdb.js → chunk-s46hvhjw.js} +1 -1
  75. package/dist/{chunk-h561m2ae.js → chunk-s83v0taa.js} +1 -1
  76. package/dist/{chunk-emasqc8x.js → chunk-sat9hjv7.js} +1 -1
  77. package/dist/{chunk-akaezred.js → chunk-tea1nrwn.js} +2 -2
  78. package/dist/{chunk-47xfhw4f.js → chunk-v9r6t8bz.js} +1 -0
  79. package/dist/{chunk-48b1ya7g.js → chunk-ve9gpkxd.js} +1 -1
  80. package/dist/{chunk-jacxpetf.js → chunk-vjtbpkht.js} +2 -2
  81. package/dist/{chunk-g7v9cqyg.js → chunk-vq8nc5xa.js} +1 -1
  82. package/dist/{chunk-55bcw5ff.js → chunk-w1w71edg.js} +1 -0
  83. package/dist/{chunk-z5d2zpnj.js → chunk-wkpf4bv7.js} +1 -1
  84. package/dist/{chunk-ed49y20r.js → chunk-ws4y7ctw.js} +1 -1
  85. package/dist/{chunk-r3artnc9.js → chunk-ykt5sv7n.js} +1 -1
  86. package/dist/{chunk-yncp9nsv.js → chunk-z4jpedvh.js} +1 -0
  87. package/dist/{chunk-b12s32e3.js → chunk-zj06vvcz.js} +1 -1
  88. package/dist/{chunk-5h6m9dsm.js → chunk-ztcbee24.js} +1 -1
  89. package/dist/components/AlertDialog.d.ts +1 -1
  90. package/dist/components/ContextMenu.d.ts +1 -1
  91. package/dist/components/Dialog.d.ts +1 -1
  92. package/dist/components/Drawer.d.ts +1 -1
  93. package/dist/components/DropdownMenu.d.ts +1 -1
  94. package/dist/components/ScrollGuard.d.ts +6 -0
  95. package/dist/components/Toast.d.ts +1 -1
  96. package/dist/components/assistant-ui/elements/AgentCard.js +1 -1
  97. package/dist/components/assistant-ui/elements/ApprovalCard.js +1 -1
  98. package/dist/components/assistant-ui/elements/ArtifactCard.js +1 -1
  99. package/dist/components/assistant-ui/elements/BackgroundInbox.js +2 -2
  100. package/dist/components/assistant-ui/elements/Chart.js +2 -2
  101. package/dist/components/assistant-ui/elements/ChatPanel.js +1 -1
  102. package/dist/components/assistant-ui/elements/Citation.js +3 -2
  103. package/dist/components/assistant-ui/elements/CodeDiff.js +2 -2
  104. package/dist/components/assistant-ui/elements/CommandPalette.js +4 -3
  105. package/dist/components/assistant-ui/elements/ComparisonCard.js +1 -1
  106. package/dist/components/assistant-ui/elements/ComposerContext.js +3 -2
  107. package/dist/components/assistant-ui/elements/ContextDisplay.js +9 -8
  108. package/dist/components/assistant-ui/elements/ContextDisplayBar.js +6 -5
  109. package/dist/components/assistant-ui/elements/ContextDisplayContent.js +3 -2
  110. package/dist/components/assistant-ui/elements/ContextDisplayRing.js +6 -5
  111. package/dist/components/assistant-ui/elements/ContextDisplayRoot.js +3 -2
  112. package/dist/components/assistant-ui/elements/ContextDisplayText.js +6 -5
  113. package/dist/components/assistant-ui/elements/ContextDisplayTrigger.js +3 -2
  114. package/dist/components/assistant-ui/elements/ConversationMap.js +3 -2
  115. package/dist/components/assistant-ui/elements/DataTable.js +2 -2
  116. package/dist/components/assistant-ui/elements/EditMessage.js +2 -2
  117. package/dist/components/assistant-ui/elements/ElicitationForm.js +2 -2
  118. package/dist/components/assistant-ui/elements/FeedbackDialog.js +2 -2
  119. package/dist/components/assistant-ui/elements/FileTree.js +2 -2
  120. package/dist/components/assistant-ui/elements/FlowGraph.js +2 -2
  121. package/dist/components/assistant-ui/elements/GenerativeUi.js +5 -4
  122. package/dist/components/assistant-ui/elements/Image.js +3 -2
  123. package/dist/components/assistant-ui/elements/ImageGallery.js +3 -2
  124. package/dist/components/assistant-ui/elements/MarkdownText.js +4 -3
  125. package/dist/components/assistant-ui/elements/McpServerPanel.js +2 -2
  126. package/dist/components/assistant-ui/elements/MermaidDiagram.js +4 -3
  127. package/dist/components/assistant-ui/elements/MermaidZoom.js +3 -2
  128. package/dist/components/assistant-ui/elements/ModelPicker.js +2 -2
  129. package/dist/components/assistant-ui/elements/ModelSelector.js +13 -12
  130. package/dist/components/assistant-ui/elements/ModelSelectorContent.js +10 -9
  131. package/dist/components/assistant-ui/elements/ModelSelectorEmpty.js +4 -3
  132. package/dist/components/assistant-ui/elements/ModelSelectorFocusAnchor.js +4 -3
  133. package/dist/components/assistant-ui/elements/ModelSelectorGroup.js +4 -3
  134. package/dist/components/assistant-ui/elements/ModelSelectorItem.js +4 -3
  135. package/dist/components/assistant-ui/elements/ModelSelectorList.js +6 -5
  136. package/dist/components/assistant-ui/elements/ModelSelectorRoot.js +3 -2
  137. package/dist/components/assistant-ui/elements/ModelSelectorSearch.js +4 -3
  138. package/dist/components/assistant-ui/elements/ModelSelectorSeparator.js +4 -3
  139. package/dist/components/assistant-ui/elements/ModelSelectorTrigger.js +3 -2
  140. package/dist/components/assistant-ui/elements/ReasoningPanel.js +1 -1
  141. package/dist/components/assistant-ui/elements/RecommendationCard.js +1 -1
  142. package/dist/components/assistant-ui/elements/RegenerateMenu.js +3 -2
  143. package/dist/components/assistant-ui/elements/ScheduleCard.js +1 -1
  144. package/dist/components/assistant-ui/elements/ScrollAnchor.js +1 -1
  145. package/dist/components/assistant-ui/elements/SettingsPanel.js +1 -1
  146. package/dist/components/assistant-ui/elements/SpecSheet.js +1 -1
  147. package/dist/components/assistant-ui/elements/TaskCard.js +1 -1
  148. package/dist/components/assistant-ui/elements/TooltipIconButton.js +3 -2
  149. package/dist/components/assistant-ui/index.js +61 -60
  150. package/dist/components/assistant-ui/native/AssistantModal.js +10 -9
  151. package/dist/components/assistant-ui/native/AssistantSidebar.js +11 -10
  152. package/dist/components/assistant-ui/native/AttachmentPreview.js +5 -4
  153. package/dist/components/assistant-ui/native/ComposerTriggerPopover.js +1 -1
  154. package/dist/components/assistant-ui/native/ContextDisplay.js +11 -10
  155. package/dist/components/assistant-ui/native/ContextDisplayBar.js +8 -7
  156. package/dist/components/assistant-ui/native/ContextDisplayRing.js +8 -7
  157. package/dist/components/assistant-ui/native/ContextDisplayRoot.js +5 -4
  158. package/dist/components/assistant-ui/native/ContextDisplayRuntimeRoot.js +4 -3
  159. package/dist/components/assistant-ui/native/ContextDisplayText.js +8 -7
  160. package/dist/components/assistant-ui/native/ConversationMapAui.js +4 -3
  161. package/dist/components/assistant-ui/native/McpConfigDialog.js +3 -2
  162. package/dist/components/assistant-ui/native/MermaidDiagram.js +5 -4
  163. package/dist/components/assistant-ui/native/MessageTiming.js +3 -2
  164. package/dist/components/assistant-ui/native/ModelSelector.js +15 -14
  165. package/dist/components/assistant-ui/native/Reasoning.js +5 -4
  166. package/dist/components/assistant-ui/native/TaskCard.js +6 -5
  167. package/dist/components/assistant-ui/native/TaskGroup.js +7 -6
  168. package/dist/components/assistant-ui/native/TaskTray.js +3 -2
  169. package/dist/components/assistant-ui/native/Thread.js +9 -8
  170. package/dist/components/assistant-ui/native/ThreadListSidebar.js +4 -3
  171. package/dist/components/assistant-ui/native/VoiceControl.js +6 -5
  172. package/dist/components/assistant-ui/native/VoiceDisconnectButton.js +4 -3
  173. package/dist/components/assistant-ui/native/VoiceMuteButton.js +4 -3
  174. package/dist/components/assistant-ui/native/index.js +52 -51
  175. package/dist/components/command/index.js +3 -2
  176. package/dist/components/questionnaire/index.js +2 -2
  177. package/dist/components/resizable/Resizable.d.ts +1 -1
  178. package/dist/components/resizable/index.js +1 -1
  179. package/dist/hooks/usePortalNode.d.ts +14 -0
  180. package/dist/index.d.ts +2 -0
  181. package/dist/index.js +293 -121
  182. package/dist/theme.css +34 -35
  183. package/dist/utils/observeScrollGuards.d.ts +4 -0
  184. package/llms/components/actions/Button.md +433 -0
  185. package/llms/components/actions/ButtonGroup.md +278 -0
  186. package/llms/components/actions/ButtonLink.md +189 -0
  187. package/llms/components/actions/Toggle.md +191 -0
  188. package/llms/components/actions/ToggleGroup.md +161 -0
  189. package/llms/components/assistant-ui/elements/agents-tasks/AgentCard.md +60 -0
  190. package/llms/components/assistant-ui/elements/agents-tasks/AgentHandoff.md +78 -0
  191. package/llms/components/assistant-ui/elements/agents-tasks/AgentPlan.md +57 -0
  192. package/llms/components/assistant-ui/elements/agents-tasks/AgentStatus.md +88 -0
  193. package/llms/components/assistant-ui/elements/agents-tasks/JobProgress.md +84 -0
  194. package/llms/components/assistant-ui/elements/agents-tasks/RunActivity.md +75 -0
  195. package/llms/components/assistant-ui/elements/agents-tasks/ScheduleCard.md +91 -0
  196. package/llms/components/assistant-ui/elements/agents-tasks/StoppedRun.md +54 -0
  197. package/llms/components/assistant-ui/elements/agents-tasks/SubagentList.md +72 -0
  198. package/llms/components/assistant-ui/elements/agents-tasks/TaskCard.md +101 -0
  199. package/llms/components/assistant-ui/elements/agents-tasks/TaskStateIcon.md +86 -0
  200. package/llms/components/assistant-ui/elements/agents-tasks/TodoList.md +99 -0
  201. package/llms/components/assistant-ui/elements/branding/ClaudeLogo.md +36 -0
  202. package/llms/components/assistant-ui/elements/branding/GeminiLogo.md +47 -0
  203. package/llms/components/assistant-ui/elements/branding/GitHubIcon.md +41 -0
  204. package/llms/components/assistant-ui/elements/branding/OpenAILogo.md +36 -0
  205. package/llms/components/assistant-ui/elements/code-diffs/CodeDiff.md +67 -0
  206. package/llms/components/assistant-ui/elements/code-diffs/CodeRunner.md +66 -0
  207. package/llms/components/assistant-ui/elements/code-diffs/DiffViewer.md +144 -0
  208. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerContent.md +50 -0
  209. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerFile.md +50 -0
  210. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerFileBadge.md +50 -0
  211. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerFileContent.md +59 -0
  212. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerHeader.md +81 -0
  213. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerLine.md +50 -0
  214. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerSplitLine.md +55 -0
  215. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerStats.md +50 -0
  216. package/llms/components/assistant-ui/elements/code-diffs/DiffViewerText.md +44 -0
  217. package/llms/components/assistant-ui/elements/code-diffs/ReviewableDiff.md +102 -0
  218. package/llms/components/assistant-ui/elements/code-diffs/ShikiHighlighter.md +131 -0
  219. package/llms/components/assistant-ui/elements/code-diffs/SyntaxHighlighter.md +62 -0
  220. package/llms/components/assistant-ui/elements/code-diffs/TerminalAnsiFragment.md +66 -0
  221. package/llms/components/assistant-ui/elements/code-diffs/TerminalBlock.md +131 -0
  222. package/llms/components/assistant-ui/elements/composer/CommandPalette.md +79 -0
  223. package/llms/components/assistant-ui/elements/composer/Composer.md +62 -0
  224. package/llms/components/assistant-ui/elements/composer/ComposerActions.md +34 -0
  225. package/llms/components/assistant-ui/elements/composer/ComposerAttachButton.md +50 -0
  226. package/llms/components/assistant-ui/elements/composer/ComposerAttachmentChip.md +58 -0
  227. package/llms/components/assistant-ui/elements/composer/ComposerAttachments.md +42 -0
  228. package/llms/components/assistant-ui/elements/composer/ComposerBar.md +42 -0
  229. package/llms/components/assistant-ui/elements/composer/ComposerCommandItem.md +42 -0
  230. package/llms/components/assistant-ui/elements/composer/ComposerContext.md +50 -0
  231. package/llms/components/assistant-ui/elements/composer/ComposerInput.md +56 -0
  232. package/llms/components/assistant-ui/elements/composer/ComposerMenu.md +59 -0
  233. package/llms/components/assistant-ui/elements/composer/ComposerMenuItem.md +50 -0
  234. package/llms/components/assistant-ui/elements/composer/ComposerModelItem.md +42 -0
  235. package/llms/components/assistant-ui/elements/composer/ComposerModelTrigger.md +42 -0
  236. package/llms/components/assistant-ui/elements/composer/ComposerPersonItem.md +42 -0
  237. package/llms/components/assistant-ui/elements/composer/ComposerSend.md +58 -0
  238. package/llms/components/assistant-ui/elements/composer/ComposerToolbar.md +34 -0
  239. package/llms/components/assistant-ui/elements/composer/ComposerVoice.md +58 -0
  240. package/llms/components/assistant-ui/elements/composer/ComposerVoiceButton.md +50 -0
  241. package/llms/components/assistant-ui/elements/composer/MobileComposer.md +82 -0
  242. package/llms/components/assistant-ui/elements/composer/PromptLibrary.md +99 -0
  243. package/llms/components/assistant-ui/elements/composer/Suggestions.md +62 -0
  244. package/llms/components/assistant-ui/elements/context/ContextBreakdown.md +58 -0
  245. package/llms/components/assistant-ui/elements/context/ContextDisplay.md +37 -0
  246. package/llms/components/assistant-ui/elements/context/ContextDisplayBar.md +28 -0
  247. package/llms/components/assistant-ui/elements/context/ContextDisplayContent.md +31 -0
  248. package/llms/components/assistant-ui/elements/context/ContextDisplayRing.md +28 -0
  249. package/llms/components/assistant-ui/elements/context/ContextDisplayRoot.md +54 -0
  250. package/llms/components/assistant-ui/elements/context/ContextDisplayText.md +28 -0
  251. package/llms/components/assistant-ui/elements/context/ContextDisplayTrigger.md +51 -0
  252. package/llms/components/assistant-ui/elements/context/ContextDisplayValue.md +58 -0
  253. package/llms/components/assistant-ui/elements/context/MemoryChips.md +57 -0
  254. package/llms/components/assistant-ui/elements/conversations/BackgroundInbox.md +57 -0
  255. package/llms/components/assistant-ui/elements/conversations/CanvasSplit.md +68 -0
  256. package/llms/components/assistant-ui/elements/conversations/ChatPanel.md +82 -0
  257. package/llms/components/assistant-ui/elements/conversations/CheckpointHistory.md +57 -0
  258. package/llms/components/assistant-ui/elements/conversations/ConversationMap.md +59 -0
  259. package/llms/components/assistant-ui/elements/conversations/ConversationSearch.md +83 -0
  260. package/llms/components/assistant-ui/elements/conversations/DaySeparator.md +44 -0
  261. package/llms/components/assistant-ui/elements/conversations/DraftRestore.md +48 -0
  262. package/llms/components/assistant-ui/elements/conversations/EditMessage.md +97 -0
  263. package/llms/components/assistant-ui/elements/conversations/LauncherBubble.md +79 -0
  264. package/llms/components/assistant-ui/elements/conversations/MessageActions.md +68 -0
  265. package/llms/components/assistant-ui/elements/conversations/MessageAttachments.md +57 -0
  266. package/llms/components/assistant-ui/elements/conversations/MessageBranches.md +76 -0
  267. package/llms/components/assistant-ui/elements/conversations/MessagePair.md +57 -0
  268. package/llms/components/assistant-ui/elements/conversations/MessageQueue.md +54 -0
  269. package/llms/components/assistant-ui/elements/conversations/MessageTiming.md +78 -0
  270. package/llms/components/assistant-ui/elements/conversations/QuoteReply.md +83 -0
  271. package/llms/components/assistant-ui/elements/conversations/RegenerateMenu.md +117 -0
  272. package/llms/components/assistant-ui/elements/conversations/ScrollAnchor.md +56 -0
  273. package/llms/components/assistant-ui/elements/conversations/SharedConversation.md +81 -0
  274. package/llms/components/assistant-ui/elements/conversations/ThreadList.md +121 -0
  275. package/llms/components/assistant-ui/elements/conversations/ThreadSearch.md +131 -0
  276. package/llms/components/assistant-ui/elements/data-visualization/ActivityGraph.md +51 -0
  277. package/llms/components/assistant-ui/elements/data-visualization/ArtifactCard.md +50 -0
  278. package/llms/components/assistant-ui/elements/data-visualization/Chart.md +58 -0
  279. package/llms/components/assistant-ui/elements/data-visualization/ComparisonCard.md +58 -0
  280. package/llms/components/assistant-ui/elements/data-visualization/CostMeter.md +49 -0
  281. package/llms/components/assistant-ui/elements/data-visualization/DataTable.md +240 -0
  282. package/llms/components/assistant-ui/elements/data-visualization/Diagram.md +77 -0
  283. package/llms/components/assistant-ui/elements/data-visualization/DotMatrix.md +188 -0
  284. package/llms/components/assistant-ui/elements/data-visualization/FlowGraph.md +61 -0
  285. package/llms/components/assistant-ui/elements/data-visualization/GenerativeUi.md +110 -0
  286. package/llms/components/assistant-ui/elements/data-visualization/GenerativeUiTheme.md +67 -0
  287. package/llms/components/assistant-ui/elements/data-visualization/GeoMap.md +91 -0
  288. package/llms/components/assistant-ui/elements/data-visualization/HeatGraph.md +57 -0
  289. package/llms/components/assistant-ui/elements/data-visualization/MapAnswer.md +58 -0
  290. package/llms/components/assistant-ui/elements/data-visualization/MermaidDiagram.md +66 -0
  291. package/llms/components/assistant-ui/elements/data-visualization/NumberRoll.md +88 -0
  292. package/llms/components/assistant-ui/elements/data-visualization/NumberRollDigit.md +28 -0
  293. package/llms/components/assistant-ui/elements/data-visualization/NumberRollPart.md +28 -0
  294. package/llms/components/assistant-ui/elements/data-visualization/NumberTicker.md +87 -0
  295. package/llms/components/assistant-ui/elements/data-visualization/RecommendationCard.md +86 -0
  296. package/llms/components/assistant-ui/elements/data-visualization/ScoreBreakdown.md +72 -0
  297. package/llms/components/assistant-ui/elements/data-visualization/ShareMeter.md +50 -0
  298. package/llms/components/assistant-ui/elements/data-visualization/SpecSheet.md +69 -0
  299. package/llms/components/assistant-ui/elements/data-visualization/Timeline.md +72 -0
  300. package/llms/components/assistant-ui/elements/data-visualization/TraceWaterfall.md +88 -0
  301. package/llms/components/assistant-ui/elements/media-voice/AudioPlayer.md +50 -0
  302. package/llms/components/assistant-ui/elements/media-voice/File.md +122 -0
  303. package/llms/components/assistant-ui/elements/media-voice/FileTree.md +59 -0
  304. package/llms/components/assistant-ui/elements/media-voice/Image.md +201 -0
  305. package/llms/components/assistant-ui/elements/media-voice/ImageGallery.md +64 -0
  306. package/llms/components/assistant-ui/elements/media-voice/ImageGeneration.md +50 -0
  307. package/llms/components/assistant-ui/elements/media-voice/ReadAloud.md +89 -0
  308. package/llms/components/assistant-ui/elements/media-voice/SpeakerIdentity.md +60 -0
  309. package/llms/components/assistant-ui/elements/media-voice/VideoPlayer.md +42 -0
  310. package/llms/components/assistant-ui/elements/media-voice/VoiceConversation.md +78 -0
  311. package/llms/components/assistant-ui/elements/media-voice/VoiceOrb.md +110 -0
  312. package/llms/components/assistant-ui/elements/models/ModelPicker.md +79 -0
  313. package/llms/components/assistant-ui/elements/models/ModelSelector.md +48 -0
  314. package/llms/components/assistant-ui/elements/models/ModelSelectorContent.md +45 -0
  315. package/llms/components/assistant-ui/elements/models/ModelSelectorEffort.md +31 -0
  316. package/llms/components/assistant-ui/elements/models/ModelSelectorEmpty.md +30 -0
  317. package/llms/components/assistant-ui/elements/models/ModelSelectorFocusAnchor.md +31 -0
  318. package/llms/components/assistant-ui/elements/models/ModelSelectorGroup.md +40 -0
  319. package/llms/components/assistant-ui/elements/models/ModelSelectorItem.md +38 -0
  320. package/llms/components/assistant-ui/elements/models/ModelSelectorList.md +30 -0
  321. package/llms/components/assistant-ui/elements/models/ModelSelectorRoot.md +72 -0
  322. package/llms/components/assistant-ui/elements/models/ModelSelectorSearch.md +31 -0
  323. package/llms/components/assistant-ui/elements/models/ModelSelectorSeparator.md +34 -0
  324. package/llms/components/assistant-ui/elements/models/ModelSelectorTrigger.md +66 -0
  325. package/llms/components/assistant-ui/elements/models/ModelSelectorValue.md +32 -0
  326. package/llms/components/assistant-ui/elements/models/ReasoningEffort.md +86 -0
  327. package/llms/components/assistant-ui/elements/reasoning/GenerationLoader.md +88 -0
  328. package/llms/components/assistant-ui/elements/reasoning/ReasoningContent.md +59 -0
  329. package/llms/components/assistant-ui/elements/reasoning/ReasoningFade.md +62 -0
  330. package/llms/components/assistant-ui/elements/reasoning/ReasoningPanel.md +75 -0
  331. package/llms/components/assistant-ui/elements/reasoning/ReasoningRoot.md +101 -0
  332. package/llms/components/assistant-ui/elements/reasoning/ReasoningText.md +59 -0
  333. package/llms/components/assistant-ui/elements/reasoning/ReasoningTrigger.md +59 -0
  334. package/llms/components/assistant-ui/elements/reasoning/ThinkingIndicator.md +54 -0
  335. package/llms/components/assistant-ui/elements/reasoning/TypingIndicator.md +62 -0
  336. package/llms/components/assistant-ui/elements/sources-research/Citation.md +103 -0
  337. package/llms/components/assistant-ui/elements/sources-research/ConfidenceMarker.md +94 -0
  338. package/llms/components/assistant-ui/elements/sources-research/DocumentReference.md +60 -0
  339. package/llms/components/assistant-ui/elements/sources-research/InlineCitation.md +56 -0
  340. package/llms/components/assistant-ui/elements/sources-research/LinkPreview.md +65 -0
  341. package/llms/components/assistant-ui/elements/sources-research/ResearchReport.md +72 -0
  342. package/llms/components/assistant-ui/elements/sources-research/RetrievalChunks.md +75 -0
  343. package/llms/components/assistant-ui/elements/sources-research/SourceGlyph.md +54 -0
  344. package/llms/components/assistant-ui/elements/sources-research/Sources.md +150 -0
  345. package/llms/components/assistant-ui/elements/sources-research/WebPreview.md +80 -0
  346. package/llms/components/assistant-ui/elements/sources-research/WebSearch.md +72 -0
  347. package/llms/components/assistant-ui/elements/states-settings/ConnectionState.md +58 -0
  348. package/llms/components/assistant-ui/elements/states-settings/ElicitationForm.md +101 -0
  349. package/llms/components/assistant-ui/elements/states-settings/EmptyState.md +64 -0
  350. package/llms/components/assistant-ui/elements/states-settings/EmptyStateComposer.md +88 -0
  351. package/llms/components/assistant-ui/elements/states-settings/EmptyStateGreeting.md +56 -0
  352. package/llms/components/assistant-ui/elements/states-settings/EmptyStateSuggestion.md +66 -0
  353. package/llms/components/assistant-ui/elements/states-settings/EmptyStateSuggestions.md +61 -0
  354. package/llms/components/assistant-ui/elements/states-settings/ErrorState.md +47 -0
  355. package/llms/components/assistant-ui/elements/states-settings/EveAskQuestion.md +166 -0
  356. package/llms/components/assistant-ui/elements/states-settings/FeedbackDialog.md +85 -0
  357. package/llms/components/assistant-ui/elements/states-settings/Onboarding.md +84 -0
  358. package/llms/components/assistant-ui/elements/states-settings/OptionList.md +74 -0
  359. package/llms/components/assistant-ui/elements/states-settings/OptionText.md +38 -0
  360. package/llms/components/assistant-ui/elements/states-settings/QuestionFlow.md +85 -0
  361. package/llms/components/assistant-ui/elements/states-settings/QuotaBanner.md +91 -0
  362. package/llms/components/assistant-ui/elements/states-settings/SettingsPanel.md +92 -0
  363. package/llms/components/assistant-ui/elements/text-formatting/DirectiveText.md +94 -0
  364. package/llms/components/assistant-ui/elements/text-formatting/Frac.md +28 -0
  365. package/llms/components/assistant-ui/elements/text-formatting/MarkdownText.md +66 -0
  366. package/llms/components/assistant-ui/elements/text-formatting/MathBlock.md +67 -0
  367. package/llms/components/assistant-ui/elements/text-formatting/StreamingText.md +62 -0
  368. package/llms/components/assistant-ui/elements/text-formatting/Sub.md +28 -0
  369. package/llms/components/assistant-ui/elements/text-formatting/Sup.md +28 -0
  370. package/llms/components/assistant-ui/elements/tools-approvals/ApprovalCard.md +96 -0
  371. package/llms/components/assistant-ui/elements/tools-approvals/ComputerUse.md +58 -0
  372. package/llms/components/assistant-ui/elements/tools-approvals/GuardrailNotice.md +78 -0
  373. package/llms/components/assistant-ui/elements/tools-approvals/McpServerPanel.md +73 -0
  374. package/llms/components/assistant-ui/elements/tools-approvals/PermissionGrant.md +104 -0
  375. package/llms/components/assistant-ui/elements/tools-approvals/ToolCall.md +81 -0
  376. package/llms/components/assistant-ui/elements/tools-approvals/ToolError.md +89 -0
  377. package/llms/components/assistant-ui/elements/tools-approvals/ToolGroup.md +101 -0
  378. package/llms/components/assistant-ui/elements/tools-approvals/ToolTimeline.md +87 -0
  379. package/llms/components/assistant-ui/native/agents-tasks/AgentStatus.md +87 -0
  380. package/llms/components/assistant-ui/native/agents-tasks/TaskCard.md +111 -0
  381. package/llms/components/assistant-ui/native/agents-tasks/TaskGroup.md +82 -0
  382. package/llms/components/assistant-ui/native/agents-tasks/TaskTray.md +66 -0
  383. package/llms/components/assistant-ui/native/code-diffs/SyntaxHighlighter.md +48 -0
  384. package/llms/components/assistant-ui/native/composer/AttachmentPreview.md +58 -0
  385. package/llms/components/assistant-ui/native/composer/ComposerTriggerPopover.md +42 -0
  386. package/llms/components/assistant-ui/native/composer/FollowupSuggestionsRow.md +36 -0
  387. package/llms/components/assistant-ui/native/context/ContextDisplay.md +42 -0
  388. package/llms/components/assistant-ui/native/context/ContextDisplayBar.md +52 -0
  389. package/llms/components/assistant-ui/native/context/ContextDisplayRing.md +52 -0
  390. package/llms/components/assistant-ui/native/context/ContextDisplayRoot.md +42 -0
  391. package/llms/components/assistant-ui/native/context/ContextDisplayRuntimeRoot.md +42 -0
  392. package/llms/components/assistant-ui/native/context/ContextDisplayText.md +52 -0
  393. package/llms/components/assistant-ui/native/conversations/AssistantModal.md +60 -0
  394. package/llms/components/assistant-ui/native/conversations/AssistantSidebar.md +44 -0
  395. package/llms/components/assistant-ui/native/conversations/ConversationMapAui.md +50 -0
  396. package/llms/components/assistant-ui/native/conversations/MessageTiming.md +83 -0
  397. package/llms/components/assistant-ui/native/conversations/QuoteBlock.md +34 -0
  398. package/llms/components/assistant-ui/native/conversations/SelectionToolbar.md +53 -0
  399. package/llms/components/assistant-ui/native/conversations/Thread.md +144 -0
  400. package/llms/components/assistant-ui/native/conversations/ThreadList.md +67 -0
  401. package/llms/components/assistant-ui/native/conversations/ThreadListSidebar.md +45 -0
  402. package/llms/components/assistant-ui/native/data-visualization/MermaidDiagram.md +34 -0
  403. package/llms/components/assistant-ui/native/media-voice/VoiceConnectButton.md +69 -0
  404. package/llms/components/assistant-ui/native/media-voice/VoiceControl.md +52 -0
  405. package/llms/components/assistant-ui/native/media-voice/VoiceConversation.md +64 -0
  406. package/llms/components/assistant-ui/native/media-voice/VoiceDisconnectButton.md +53 -0
  407. package/llms/components/assistant-ui/native/media-voice/VoiceMuteButton.md +59 -0
  408. package/llms/components/assistant-ui/native/media-voice/VoiceOrb.md +66 -0
  409. package/llms/components/assistant-ui/native/media-voice/VoiceStatusDot.md +58 -0
  410. package/llms/components/assistant-ui/native/models/ModelSelector.md +50 -0
  411. package/llms/components/assistant-ui/native/reasoning/Reasoning.md +87 -0
  412. package/llms/components/assistant-ui/native/sources-research/Sources.md +145 -0
  413. package/llms/components/assistant-ui/native/text-formatting/DirectiveText.md +42 -0
  414. package/llms/components/assistant-ui/native/tools-approvals/McpConfigDialog.md +54 -0
  415. package/llms/components/assistant-ui/native/tools-approvals/ToolFallbackApproval.md +352 -0
  416. package/llms/components/assistant-ui/native/tools-approvals/ToolFallbackRoot.md +84 -0
  417. package/llms/components/assistant-ui/native/tools-approvals/ToolGroup.md +63 -0
  418. package/llms/components/data-display/Avatar.md +254 -0
  419. package/llms/components/data-display/Badge.md +221 -0
  420. package/llms/components/data-display/Carousel.md +465 -0
  421. package/llms/components/data-display/Chart.md +546 -0
  422. package/llms/components/data-display/Item.md +502 -0
  423. package/llms/components/data-display/JsonViewer.md +38 -0
  424. package/llms/components/data-display/Kbd.md +99 -0
  425. package/llms/components/data-display/Table.md +254 -0
  426. package/llms/components/data-display/VirtualTable.md +57 -0
  427. package/llms/components/dates/Calendar.md +539 -0
  428. package/llms/components/dates/PersianCalendar.md +117 -0
  429. package/llms/components/drag-drop/DragDropPreview.md +46 -0
  430. package/llms/components/drag-drop/DragDropProvider.md +28 -0
  431. package/llms/components/feedback/Alert.md +117 -0
  432. package/llms/components/feedback/Empty.md +193 -0
  433. package/llms/components/feedback/EmptyState.md +38 -0
  434. package/llms/components/feedback/PageMessage.md +49 -0
  435. package/llms/components/feedback/Progress.md +140 -0
  436. package/llms/components/feedback/Skeleton.md +157 -0
  437. package/llms/components/feedback/Sonner.md +325 -0
  438. package/llms/components/feedback/Spinner.md +119 -0
  439. package/llms/components/feedback/Toast.md +242 -0
  440. package/llms/components/forms/Checkbox.md +204 -0
  441. package/llms/components/forms/Combobox.md +594 -0
  442. package/llms/components/forms/Field.md +511 -0
  443. package/llms/components/forms/ImagePicker.md +63 -0
  444. package/llms/components/forms/InlineEdit.md +67 -0
  445. package/llms/components/forms/Input.md +380 -0
  446. package/llms/components/forms/InputGroup.md +628 -0
  447. package/llms/components/forms/InputOTP.md +400 -0
  448. package/llms/components/forms/Label.md +181 -0
  449. package/llms/components/forms/NativeSelect.md +128 -0
  450. package/llms/components/forms/Questionnaire.md +267 -0
  451. package/llms/components/forms/RadioGroup.md +401 -0
  452. package/llms/components/forms/Select.md +575 -0
  453. package/llms/components/forms/Slider.md +234 -0
  454. package/llms/components/forms/StarRating.md +60 -0
  455. package/llms/components/forms/Switch.md +240 -0
  456. package/llms/components/forms/Textarea.md +219 -0
  457. package/llms/components/layout/Accordion.md +249 -0
  458. package/llms/components/layout/AspectRatio.md +68 -0
  459. package/llms/components/layout/Card.md +391 -0
  460. package/llms/components/layout/Collapsible.md +231 -0
  461. package/llms/components/layout/Resizable.md +267 -0
  462. package/llms/components/layout/ScrollArea.md +170 -0
  463. package/llms/components/layout/Separator.md +104 -0
  464. package/llms/components/layout/SplitView.md +92 -0
  465. package/llms/components/messaging/Attachment.md +324 -0
  466. package/llms/components/messaging/Bubble.md +411 -0
  467. package/llms/components/messaging/Marker.md +203 -0
  468. package/llms/components/messaging/Message.md +268 -0
  469. package/llms/components/messaging/MessageScroller.md +227 -0
  470. package/llms/components/navigation/Breadcrumb.md +159 -0
  471. package/llms/components/navigation/Command.md +471 -0
  472. package/llms/components/navigation/ContextMenu.md +596 -0
  473. package/llms/components/navigation/DropdownMenu.md +602 -0
  474. package/llms/components/navigation/Menubar.md +397 -0
  475. package/llms/components/navigation/NavigationMenu.md +379 -0
  476. package/llms/components/navigation/Pagination.md +222 -0
  477. package/llms/components/navigation/Sidebar.md +330 -0
  478. package/llms/components/navigation/Tabs.md +418 -0
  479. package/llms/components/overlays/AlertDialog.md +365 -0
  480. package/llms/components/overlays/ConfirmationDialog.md +77 -0
  481. package/llms/components/overlays/Dialog.md +559 -0
  482. package/llms/components/overlays/Drawer.md +597 -0
  483. package/llms/components/overlays/HoverCard.md +276 -0
  484. package/llms/components/overlays/Popover.md +286 -0
  485. package/llms/components/overlays/Sheet.md +433 -0
  486. package/llms/components/overlays/Tooltip.md +318 -0
  487. package/llms/components/providers/DensityProvider.md +171 -0
  488. package/llms/components/providers/DirectionProvider.md +39 -0
  489. package/llms/components/providers/PortalProvider.md +264 -0
  490. package/llms/components/providers/ScrollGuard.md +24 -0
  491. package/llms/components/providers/ThemeProvider.md +71 -0
  492. package/llms/setup.md +380 -0
  493. package/llms.txt +428 -0
  494. package/package.json +6 -3
  495. package/dist/chunk-czg9p52v.js +0 -74
@@ -0,0 +1,267 @@
1
+ # Resizable
2
+
3
+ Story: @alexgorbatchev/shadcn/components/layout/Resizable
4
+ Source: src/components/stories/layout/Resizable.stories.tsx
5
+
6
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/layout/Resizable.stories.tsx)
7
+
8
+ ## Public imports
9
+
10
+ ```tsx
11
+ import { Button, DirectionProvider } from "@alexgorbatchev/shadcn";
12
+ import { Resizable, ResizableHandle, ResizablePanel } from "@alexgorbatchev/shadcn/resizable";
13
+ ```
14
+
15
+ ## Supporting imports
16
+
17
+ ```tsx
18
+ import { useState } from "react";
19
+ import { usePanelRef } from "react-resizable-panels";
20
+ ```
21
+
22
+ ## Default component
23
+
24
+ ```tsx
25
+ Resizable
26
+ ```
27
+
28
+ ## Story controls
29
+
30
+ ```tsx
31
+ { orientation: { control: "select", options: ["horizontal", "vertical"] } }
32
+ ```
33
+
34
+ ## Default args
35
+
36
+ ```tsx
37
+ { orientation: "horizontal", onLayoutChanged: fn() }
38
+ ```
39
+
40
+ ## Default render
41
+
42
+ ```tsx
43
+ (args) => (<div className="h-64 w-96 border border-border">
44
+ <Resizable {...args}>
45
+ <ResizablePanel id="primary" defaultSize="50%" minSize="20%" maxSize="80%">
46
+ <div className="flex size-full items-center justify-center">Primary</div>
47
+ </ResizablePanel>
48
+ <ResizableHandle withHandle aria-label="Resize panels"/>
49
+ <ResizablePanel id="secondary" defaultSize="50%" minSize="20%">
50
+ <div className="flex size-full items-center justify-center">Secondary</div>
51
+ </ResizablePanel>
52
+ </Resizable>
53
+ </div>)
54
+ ```
55
+
56
+ ## Examples
57
+
58
+ 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.
59
+
60
+ ### Horizontal
61
+
62
+ ```tsx
63
+ {}
64
+ ```
65
+
66
+ ### Vertical
67
+
68
+ ```tsx
69
+ {
70
+ args: { orientation: "vertical" }
71
+ }
72
+ ```
73
+
74
+ ### Disabled
75
+
76
+ ```tsx
77
+ {
78
+ args: { disabled: true }
79
+ }
80
+ ```
81
+
82
+ ### Nested
83
+
84
+ ```tsx
85
+ {
86
+ render: (args) => (<div className="h-64 w-96 border border-border">
87
+ <Resizable {...args} orientation="horizontal">
88
+ <ResizablePanel defaultSize="50%" minSize="20%" role="region" aria-label="Navigation panel">
89
+ <div className="p-panel">Navigation</div>
90
+ </ResizablePanel>
91
+ <ResizableHandle withHandle aria-label="Resize navigation"/>
92
+ <ResizablePanel defaultSize="50%" minSize="20%">
93
+ <Resizable orientation="vertical">
94
+ <ResizablePanel defaultSize="25%" minSize="10%" role="region" aria-label="Editor panel">
95
+ <div className="p-panel">Editor</div>
96
+ </ResizablePanel>
97
+ <ResizableHandle withHandle aria-label="Resize editor"/>
98
+ <ResizablePanel defaultSize="75%" minSize="20%" role="region" aria-label="Preview panel">
99
+ <div className="p-panel">Preview</div>
100
+ </ResizablePanel>
101
+ </Resizable>
102
+ </ResizablePanel>
103
+ </Resizable>
104
+ </div>)
105
+ }
106
+ ```
107
+
108
+ ### RightToLeftNested
109
+
110
+ ```tsx
111
+ {
112
+ render: (args) => (<div className="h-64 w-96 border border-border">
113
+ <Resizable {...args} orientation="horizontal">
114
+ <ResizablePanel defaultSize="50%" minSize="20%" role="region" aria-label="Navigation panel">
115
+ <div className="p-panel">Navigation</div>
116
+ </ResizablePanel>
117
+ <ResizableHandle withHandle aria-label="Resize navigation"/>
118
+ <ResizablePanel defaultSize="50%" minSize="20%">
119
+ <Resizable orientation="vertical">
120
+ <ResizablePanel defaultSize="25%" minSize="10%" role="region" aria-label="Editor panel">
121
+ <div className="p-panel">Editor</div>
122
+ </ResizablePanel>
123
+ <ResizableHandle withHandle aria-label="Resize editor"/>
124
+ <ResizablePanel defaultSize="75%" minSize="20%" role="region" aria-label="Preview panel">
125
+ <div className="p-panel">Preview</div>
126
+ </ResizablePanel>
127
+ </Resizable>
128
+ </ResizablePanel>
129
+ </Resizable>
130
+ </div>),
131
+ decorators: [
132
+ (Story) => (<DirectionProvider direction="rtl">
133
+ <div dir="rtl">
134
+ <Story />
135
+ </div>
136
+ </DirectionProvider>),
137
+ ]
138
+ }
139
+ ```
140
+
141
+ ### WithoutGrip
142
+
143
+ ```tsx
144
+ {
145
+ render: (args) => (<div className="h-64 w-96 border border-border">
146
+ <Resizable {...args} orientation="horizontal">
147
+ <ResizablePanel defaultSize="50%" minSize="20%" role="region" aria-label="First panel">
148
+ <div className="p-panel">First</div>
149
+ </ResizablePanel>
150
+ <ResizableHandle aria-label="Resize without grip"/>
151
+ <ResizablePanel defaultSize="50%" minSize="20%" role="region" aria-label="Second panel">
152
+ <div className="p-panel">Second</div>
153
+ </ResizablePanel>
154
+ </Resizable>
155
+ </div>)
156
+ }
157
+ ```
158
+
159
+ ### RightToLeftWithoutGrip
160
+
161
+ ```tsx
162
+ {
163
+ render: (args) => (<div className="h-64 w-96 border border-border">
164
+ <Resizable {...args} orientation="horizontal">
165
+ <ResizablePanel defaultSize="50%" minSize="20%" role="region" aria-label="First panel">
166
+ <div className="p-panel">First</div>
167
+ </ResizablePanel>
168
+ <ResizableHandle aria-label="Resize without grip"/>
169
+ <ResizablePanel defaultSize="50%" minSize="20%" role="region" aria-label="Second panel">
170
+ <div className="p-panel">Second</div>
171
+ </ResizablePanel>
172
+ </Resizable>
173
+ </div>),
174
+ decorators: RightToLeftNested.decorators
175
+ }
176
+ ```
177
+
178
+ ### Collapsible
179
+
180
+ ```tsx
181
+ {
182
+ render: function Render() {
183
+ const panelRef = usePanelRef();
184
+ const [size, setSize] = useState(50);
185
+ return (<div className="flex flex-col items-start gap-panel">
186
+ <div className="flex gap-control-gap">
187
+ <Button onClick={() => panelRef.current?.collapse()}>Collapse navigation</Button>
188
+ <Button onClick={() => panelRef.current?.expand()}>Expand navigation</Button>
189
+ <Button onClick={() => panelRef.current?.resize("60%")}>Resize to sixty</Button>
190
+ </div>
191
+ <div className="h-64 w-96 border border-border">
192
+ <Resizable orientation="horizontal">
193
+ <ResizablePanel panelRef={panelRef} defaultSize="50%" minSize="20%" maxSize="80%" collapsible collapsedSize="0%" onResize={(next) => setSize(next.asPercentage)} role="region" aria-label="Collapsible navigation">
194
+ <div className="p-panel">Navigation</div>
195
+ </ResizablePanel>
196
+ <ResizableHandle withHandle aria-label="Resize collapsible navigation"/>
197
+ <ResizablePanel defaultSize="50%" minSize="20%">
198
+ <div className="p-panel">Editor</div>
199
+ </ResizablePanel>
200
+ </Resizable>
201
+ </div>
202
+ <output aria-label="Navigation size">{Math.round(size)}%</output>
203
+ </div>);
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### RightToLeftCollapsible
209
+
210
+ ```tsx
211
+ {
212
+ render: function Render() {
213
+ const panelRef = usePanelRef();
214
+ const [size, setSize] = useState(50);
215
+ return (<div className="flex flex-col items-start gap-panel">
216
+ <div className="flex gap-control-gap">
217
+ <Button onClick={() => panelRef.current?.collapse()}>Collapse navigation</Button>
218
+ <Button onClick={() => panelRef.current?.expand()}>Expand navigation</Button>
219
+ <Button onClick={() => panelRef.current?.resize("60%")}>Resize to sixty</Button>
220
+ </div>
221
+ <div className="h-64 w-96 border border-border">
222
+ <Resizable orientation="horizontal">
223
+ <ResizablePanel panelRef={panelRef} defaultSize="50%" minSize="20%" maxSize="80%" collapsible collapsedSize="0%" onResize={(next) => setSize(next.asPercentage)} role="region" aria-label="Collapsible navigation">
224
+ <div className="p-panel">Navigation</div>
225
+ </ResizablePanel>
226
+ <ResizableHandle withHandle aria-label="Resize collapsible navigation"/>
227
+ <ResizablePanel defaultSize="50%" minSize="20%">
228
+ <div className="p-panel">Editor</div>
229
+ </ResizablePanel>
230
+ </Resizable>
231
+ </div>
232
+ <output aria-label="Navigation size">{Math.round(size)}%</output>
233
+ </div>);
234
+ },
235
+ decorators: RightToLeftNested.decorators
236
+ }
237
+ ```
238
+
239
+ ### KeyboardCollapse
240
+
241
+ ```tsx
242
+ {
243
+ render: function Render() {
244
+ const panelRef = usePanelRef();
245
+ const [size, setSize] = useState(50);
246
+ return (<div className="flex flex-col items-start gap-panel">
247
+ <div className="flex gap-control-gap">
248
+ <Button onClick={() => panelRef.current?.collapse()}>Collapse navigation</Button>
249
+ <Button onClick={() => panelRef.current?.expand()}>Expand navigation</Button>
250
+ <Button onClick={() => panelRef.current?.resize("60%")}>Resize to sixty</Button>
251
+ </div>
252
+ <div className="h-64 w-96 border border-border">
253
+ <Resizable orientation="horizontal">
254
+ <ResizablePanel panelRef={panelRef} defaultSize="50%" minSize="20%" maxSize="80%" collapsible collapsedSize="0%" onResize={(next) => setSize(next.asPercentage)} role="region" aria-label="Collapsible navigation">
255
+ <div className="p-panel">Navigation</div>
256
+ </ResizablePanel>
257
+ <ResizableHandle withHandle aria-label="Resize collapsible navigation"/>
258
+ <ResizablePanel defaultSize="50%" minSize="20%">
259
+ <div className="p-panel">Editor</div>
260
+ </ResizablePanel>
261
+ </Resizable>
262
+ </div>
263
+ <output aria-label="Navigation size">{Math.round(size)}%</output>
264
+ </div>);
265
+ }
266
+ }
267
+ ```
@@ -0,0 +1,170 @@
1
+ # ScrollArea
2
+
3
+ Story: @alexgorbatchev/shadcn/components/layout/ScrollArea
4
+ Source: src/components/stories/layout/ScrollArea.stories.tsx
5
+
6
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/layout/ScrollArea.stories.tsx)
7
+
8
+ ## Public imports
9
+
10
+ ```tsx
11
+ import { ScrollArea, ScrollBar, cn, DirectionProvider } from "@alexgorbatchev/shadcn";
12
+ ```
13
+
14
+ ## Supporting imports
15
+
16
+ ```tsx
17
+ import type { ComponentProps } from "react";
18
+ ```
19
+
20
+ ## Default component
21
+
22
+ ```tsx
23
+ ScrollArea
24
+ ```
25
+
26
+ ## Examples
27
+
28
+ 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.
29
+
30
+ ### NativeScrollbars
31
+
32
+ ```tsx
33
+ {
34
+ render: () => (<div role="region" aria-label="Native release history" tabIndex={0} className="h-48 w-64 overflow-auto border border-border bg-background focus-visible:outline-1 focus-visible:outline-ring">
35
+ <ol className="flex w-192 flex-col gap-4 p-panel">
36
+ {Array.from({ length: 30 }, (_, index) => (<li key={index}>Release {index + 1} — native browser scrolling in both directions</li>))}
37
+ </ol>
38
+ </div>)
39
+ }
40
+ ```
41
+
42
+ ### Default
43
+
44
+ ```tsx
45
+ {
46
+ render: ({ barClassName, ...args }) => (<ScrollArea {...args} aria-label="Release history" scrollbars={<ScrollBar className={barClassName}/>} className={(state) => cn("h-48 w-64 border border-border", typeof args.className === "function" ? args.className(state) : args.className)}>
47
+ <ol className="flex flex-col gap-4 p-panel">
48
+ {Array.from({ length: 30 }, (_, index) => (<li key={index}>Release {index + 1}</li>))}
49
+ </ol>
50
+ </ScrollArea>)
51
+ }
52
+ ```
53
+
54
+ ### FlexHeight
55
+
56
+ ```tsx
57
+ {
58
+ render: () => (<section data-scroll="none" aria-label="Release panel" className="flex max-h-64 w-64 flex-col gap-3 border p-4">
59
+ <h2 className="shrink-0">Release panel</h2>
60
+ <ScrollArea>
61
+ <ol className="flex flex-col gap-3">
62
+ {Array.from({ length: 30 }, (_, index) => (<li key={index}>Release {index + 1}</li>))}
63
+ </ol>
64
+ </ScrollArea>
65
+ <p className="shrink-0">Stationary footer</p>
66
+ </section>)
67
+ }
68
+ ```
69
+
70
+ ### StateCallback
71
+
72
+ ```tsx
73
+ {
74
+ render: ({ barClassName, ...args }) => (<ScrollArea {...args} aria-label="Release history" scrollbars={<ScrollBar className={barClassName}/>} className={(state) => cn("h-48 w-64 border border-border", typeof args.className === "function" ? args.className(state) : args.className)}>
75
+ <ol className="flex flex-col gap-4 p-panel">
76
+ {Array.from({ length: 30 }, (_, index) => (<li key={index}>Release {index + 1}</li>))}
77
+ </ol>
78
+ </ScrollArea>),
79
+ args: { className: fn(() => "min-w-64"), barClassName: fn(() => "") }
80
+ }
81
+ ```
82
+
83
+ ### Horizontal
84
+
85
+ ```tsx
86
+ {
87
+ render: () => (<ScrollArea aria-label="Horizontal releases" className="h-24 w-64 border border-border" scrollbars={<ScrollBar orientation="horizontal"/>}>
88
+ <ol className="flex w-max gap-4 p-panel">
89
+ {Array.from({ length: 12 }, (_, index) => (<li key={index} className="w-32 shrink-0">
90
+ Release {index + 1}
91
+ </li>))}
92
+ </ol>
93
+ </ScrollArea>)
94
+ }
95
+ ```
96
+
97
+ ### RightToLeft
98
+
99
+ ```tsx
100
+ {
101
+ render: () => (<ScrollArea aria-label="Horizontal releases" className="h-24 w-64 border border-border" scrollbars={<ScrollBar orientation="horizontal"/>}>
102
+ <ol className="flex w-max gap-4 p-panel">
103
+ {Array.from({ length: 12 }, (_, index) => (<li key={index} className="w-32 shrink-0">
104
+ Release {index + 1}
105
+ </li>))}
106
+ </ol>
107
+ </ScrollArea>),
108
+ decorators: [
109
+ (Story) => (<DirectionProvider direction="rtl">
110
+ <div dir="rtl">
111
+ <Story />
112
+ </div>
113
+ </DirectionProvider>),
114
+ ]
115
+ }
116
+ ```
117
+
118
+ ### BothDirections
119
+
120
+ ```tsx
121
+ {
122
+ render: () => (<ScrollArea aria-label="Release matrix" className="h-48 w-64 border border-border" scrollbars={<>
123
+ <ScrollBar />
124
+ <ScrollBar orientation="horizontal"/>
125
+ </>}>
126
+ <ol className="grid w-192 grid-cols-3 gap-4 p-panel">
127
+ {Array.from({ length: 90 }, (_, index) => (<li key={index}>Release {index + 1}</li>))}
128
+ </ol>
129
+ </ScrollArea>)
130
+ }
131
+ ```
132
+
133
+ ### NoOverflow
134
+
135
+ ```tsx
136
+ {
137
+ render: () => (<ScrollArea aria-label="Short release history" className="h-48 w-64 border border-border">
138
+ <p>Release 1</p>
139
+ </ScrollArea>)
140
+ }
141
+ ```
142
+
143
+ ### KeepMounted
144
+
145
+ ```tsx
146
+ {
147
+ render: () => (<ScrollArea aria-label="Persistent track" className="h-48 w-64 border border-border" scrollbars={<ScrollBar keepMounted/>}>
148
+ <p>Release 1</p>
149
+ </ScrollArea>)
150
+ }
151
+ ```
152
+
153
+ ### VerticalRightToLeft
154
+
155
+ ```tsx
156
+ {
157
+ render: ({ barClassName, ...args }) => (<ScrollArea {...args} aria-label="Release history" scrollbars={<ScrollBar className={barClassName}/>} className={(state) => cn("h-48 w-64 border border-border", typeof args.className === "function" ? args.className(state) : args.className)}>
158
+ <ol className="flex flex-col gap-4 p-panel">
159
+ {Array.from({ length: 30 }, (_, index) => (<li key={index}>Release {index + 1}</li>))}
160
+ </ol>
161
+ </ScrollArea>),
162
+ decorators: [
163
+ (Story) => (<DirectionProvider direction="rtl">
164
+ <div dir="rtl">
165
+ <Story />
166
+ </div>
167
+ </DirectionProvider>),
168
+ ]
169
+ }
170
+ ```
@@ -0,0 +1,104 @@
1
+ # Separator
2
+
3
+ Story: @alexgorbatchev/shadcn/components/layout/Separator
4
+ Source: src/components/stories/layout/Separator.stories.tsx
5
+
6
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/layout/Separator.stories.tsx)
7
+
8
+ ## Public imports
9
+
10
+ ```tsx
11
+ import { Separator } from "@alexgorbatchev/shadcn";
12
+ ```
13
+
14
+ ## Default component
15
+
16
+ ```tsx
17
+ Separator
18
+ ```
19
+
20
+ ## Default render
21
+
22
+ ```tsx
23
+ (args) => (<div className="flex flex-col gap-4">
24
+ <span>Project</span>
25
+ <Separator {...args}/>
26
+ <span>Settings</span>
27
+ </div>)
28
+ ```
29
+
30
+ ## Examples
31
+
32
+ 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.
33
+
34
+ ### Horizontal
35
+
36
+ ```tsx
37
+ {}
38
+ ```
39
+
40
+ ### Vertical
41
+
42
+ ```tsx
43
+ {
44
+ render: () => (<div className="flex h-10 items-center gap-4">
45
+ <span>Overview</span>
46
+ <Separator orientation="vertical"/>
47
+ <span>Settings</span>
48
+ </div>)
49
+ }
50
+ ```
51
+
52
+ ### NativeCallback
53
+
54
+ ```tsx
55
+ {
56
+ args: { orientation: "vertical", className: (state) => (state.orientation === "vertical" ? "h-12" : "h-8") }
57
+ }
58
+ ```
59
+
60
+ ### Navigation
61
+
62
+ ```tsx
63
+ {
64
+ render: () => (<nav aria-label="Project navigation" className="flex h-10 items-center gap-4">
65
+ <a href="#overview" onClick={(event) => event.preventDefault()}>
66
+ Overview
67
+ </a>
68
+ <Separator orientation="vertical"/>
69
+ <a href="#settings" onClick={(event) => event.preventDefault()}>
70
+ Settings
71
+ </a>
72
+ </nav>)
73
+ }
74
+ ```
75
+
76
+ ### List
77
+
78
+ ```tsx
79
+ {
80
+ render: () => (<div className="flex w-80 flex-col gap-2">
81
+ <dl>
82
+ <dt>Project</dt>
83
+ <dd>Design system</dd>
84
+ </dl>
85
+ <Separator />
86
+ <dl>
87
+ <dt>Status</dt>
88
+ <dd>Active</dd>
89
+ </dl>
90
+ </div>)
91
+ }
92
+ ```
93
+
94
+ ### RightToLeft
95
+
96
+ ```tsx
97
+ {
98
+ render: () => (<div dir="rtl" className="flex h-10 items-center gap-4">
99
+ <span>Overview</span>
100
+ <Separator orientation="vertical"/>
101
+ <span>Settings</span>
102
+ </div>)
103
+ }
104
+ ```
@@ -0,0 +1,92 @@
1
+ # SplitView
2
+
3
+ Story: @alexgorbatchev/shadcn/components/layout/SplitView
4
+ Source: src/components/stories/layout/SplitView.stories.tsx
5
+
6
+ [Full source and local helpers](https://github.com/alexgorbatchev/shadcn/blob/main/src/components/stories/layout/SplitView.stories.tsx)
7
+
8
+ ## Public imports
9
+
10
+ ```tsx
11
+ import { SplitView } from "@alexgorbatchev/shadcn/resizable";
12
+ import { Button } from "@alexgorbatchev/shadcn";
13
+ ```
14
+
15
+ ## Supporting imports
16
+
17
+ ```tsx
18
+ import { useId, useState } from "react";
19
+ ```
20
+
21
+ ## Default component
22
+
23
+ ```tsx
24
+ SplitView
25
+ ```
26
+
27
+ ## Default args
28
+
29
+ ```tsx
30
+ {
31
+ sidebarLabel: "Navigation",
32
+ contentLabel: "Content",
33
+ resizeLabel: "Resize navigation",
34
+ storageKey: "split-view-story",
35
+ defaultSidebarSize: 220,
36
+ }
37
+ ```
38
+
39
+ ## Default render
40
+
41
+ ```tsx
42
+ function Example(args) {
43
+ const key = useId();
44
+ const [isVisible, setVisible] = useState(true);
45
+ return (<div className="flex w-[900px] max-w-full flex-col gap-4">
46
+ <Button onClick={() => setVisible(!isVisible)}>{isVisible ? "Hide panels" : "Show panels"}</Button>
47
+ {isVisible && (<SplitView {...args} storageKey={key} sidebar={<h2>Navigation heading</h2>}>
48
+ <h2>Content heading</h2>
49
+ <p>Resizable content</p>
50
+ </SplitView>)}
51
+ </div>);
52
+ }
53
+ ```
54
+
55
+ ## Examples
56
+
57
+ 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.
58
+
59
+ ### Persistent
60
+
61
+ ```tsx
62
+ {}
63
+ ```
64
+
65
+ ### ExternalStorage
66
+
67
+ ```tsx
68
+ {
69
+ render: function Example(args) {
70
+ const [values] = useState(() => new Map<string, string>());
71
+ const [isSaved, setSaved] = useState(false);
72
+ const [storage] = useState(() => ({
73
+ getItem: (key: string) => values.get(key) ?? null,
74
+ setItem: (key: string, value: string) => {
75
+ values.set(key, value);
76
+ setSaved(true);
77
+ },
78
+ }));
79
+ const [isVisible, setVisible] = useState(true);
80
+ return (<div className="flex w-[900px] flex-col gap-4">
81
+ <Button onClick={() => setVisible(!isVisible)}>{isVisible ? "Hide panels" : "Show panels"}</Button>
82
+ {isVisible && (<SplitView {...args} storageKey="external-layout" storage={storage} sidebar={<h2>Navigation</h2>}>
83
+ <h2>Content</h2>
84
+ </SplitView>)}
85
+ <Button onClick={() => setVisible(values.has("react-resizable-panels:external-layout"))}>
86
+ Restore saved panels
87
+ </Button>
88
+ <p role="status">{isSaved ? "Layout saved" : "No saved layout"}</p>
89
+ </div>);
90
+ }
91
+ }
92
+ ```