@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
package/dist/index.js CHANGED
@@ -10,9 +10,12 @@ import {
10
10
  useDensity
11
11
  } from "./chunk-e6hk39ev.js";
12
12
  import {
13
- PortalContext,
14
13
  usePortalContainer2
15
14
  } from "./chunk-j89xg1ak.js";
15
+ import {
16
+ usePortalNode,
17
+ PortalProvider2
18
+ } from "./chunk-aa7m22zj.js";
16
19
  import {
17
20
  DirectionProvider2,
18
21
  useDirection2
@@ -33,7 +36,7 @@ import {
33
36
  DropdownMenuRadioItem2,
34
37
  DropdownMenuSeparator2,
35
38
  DropdownMenuShortcut2
36
- } from "./chunk-mx21wpq0.js";
39
+ } from "./chunk-d4bm5rzy.js";
37
40
  import {
38
41
  Popover2,
39
42
  PopoverTrigger2,
@@ -41,7 +44,7 @@ import {
41
44
  PopoverHeader2,
42
45
  PopoverTitle2,
43
46
  PopoverDescription2
44
- } from "./chunk-x7z9jzyf.js";
47
+ } from "./chunk-4djw71cv.js";
45
48
  import {
46
49
  Skeleton2
47
50
  } from "./chunk-d70rcwk7.js";
@@ -77,7 +80,7 @@ import {
77
80
  DialogFooter2,
78
81
  DialogTitle2,
79
82
  DialogDescription2
80
- } from "./chunk-717ggspf.js";
83
+ } from "./chunk-70vndezn.js";
81
84
  import {
82
85
  Slider2
83
86
  } from "./chunk-644cnngf.js";
@@ -92,7 +95,7 @@ import {
92
95
  Tooltip2,
93
96
  TooltipTrigger2,
94
97
  TooltipContent2
95
- } from "./chunk-czg9p52v.js";
98
+ } from "./chunk-mz3e810d.js";
96
99
  import {
97
100
  RadioGroup2,
98
101
  RadioGroupItem2
@@ -105,7 +108,7 @@ import {
105
108
  CardAction2,
106
109
  CardContent2,
107
110
  CardFooter2
108
- } from "./chunk-v4yqjvzd.js";
111
+ } from "./chunk-bygq5yqf.js";
109
112
  import {
110
113
  InputGroup2,
111
114
  InputGroupAddon2,
@@ -187,7 +190,7 @@ import {
187
190
  HoverCard2,
188
191
  HoverCardTrigger2,
189
192
  HoverCardContent2
190
- } from "./chunk-m54kq3he.js";
193
+ } from "./chunk-hh43wg05.js";
191
194
  import {
192
195
  Sheet2,
193
196
  SheetTrigger2,
@@ -221,7 +224,7 @@ import {
221
224
  SidebarMenuSub2,
222
225
  SidebarMenuSubItem2,
223
226
  SidebarMenuSubButton2
224
- } from "./chunk-45kmek5e.js";
227
+ } from "./chunk-h979cxnh.js";
225
228
  // src/components/ButtonLink.tsx
226
229
  import { mergeProps } from "@base-ui/react/merge-props";
227
230
  import { useRender } from "@base-ui/react/use-render";
@@ -406,22 +409,27 @@ function ComboboxContent({
406
409
  const resolvedDensity = useDensity(density);
407
410
  const direction = useDirection();
408
411
  const container = usePortalContainer2();
412
+ const portal = usePortalNode();
409
413
  return /* @__PURE__ */ jsx3(ComboboxPrimitive.Portal, {
410
414
  container,
411
- children: /* @__PURE__ */ jsx3(ComboboxPrimitive.Positioner, {
412
- side,
413
- sideOffset,
414
- align,
415
- alignOffset,
416
- anchor,
417
- className: "isolate ",
418
- children: /* @__PURE__ */ jsx3(ComboboxPrimitive.Popup, {
419
- dir: direction,
420
- "data-density": resolvedDensity,
421
- "data-slot": "combobox-content",
422
- "data-chips": !!anchor,
423
- className: (state) => cn2("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-control *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
424
- ...props
415
+ ref: portal.ref,
416
+ children: /* @__PURE__ */ jsx3(PortalProvider2, {
417
+ container: portal.node,
418
+ children: /* @__PURE__ */ jsx3(ComboboxPrimitive.Positioner, {
419
+ side,
420
+ sideOffset,
421
+ align,
422
+ alignOffset,
423
+ anchor,
424
+ className: "isolate ",
425
+ children: /* @__PURE__ */ jsx3(ComboboxPrimitive.Popup, {
426
+ dir: direction,
427
+ "data-density": resolvedDensity,
428
+ "data-slot": "combobox-content",
429
+ "data-chips": !!anchor,
430
+ className: (state) => cn2("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[chips=true]:min-w-(--anchor-width) *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-control *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
431
+ ...props
432
+ })
425
433
  })
426
434
  })
427
435
  });
@@ -574,6 +582,7 @@ function TabsContent({ density, className, ...props }) {
574
582
  return /* @__PURE__ */ jsx4(TabsPrimitive.Panel, {
575
583
  "data-density": density,
576
584
  "data-slot": "tabs-content",
585
+ "data-scroll": "none",
577
586
  className: (state) => cn2("flex-1 text-sm outline-none", typeof className === "function" ? className(state) : className),
578
587
  ...props
579
588
  });
@@ -890,12 +899,18 @@ function AlertDialogTrigger({ ...props }) {
890
899
  ...props
891
900
  });
892
901
  }
893
- function AlertDialogPortal({ container, ...props }) {
902
+ function AlertDialogPortal({ container, ref, children, ...props }) {
894
903
  const resolvedContainer = usePortalContainer2(container);
904
+ const portal = usePortalNode(ref);
895
905
  return /* @__PURE__ */ jsx10(AlertDialogPrimitive.Portal, {
896
906
  "data-slot": "alert-dialog-portal",
897
907
  container: resolvedContainer,
898
- ...props
908
+ ref: portal.ref,
909
+ ...props,
910
+ children: /* @__PURE__ */ jsx10(PortalProvider2, {
911
+ container: portal.node,
912
+ children
913
+ })
899
914
  });
900
915
  }
901
916
  function AlertDialogOverlay({ density, className, ...props }) {
@@ -917,6 +932,7 @@ function AlertDialogContent({ density, className, size = "default", ...props })
917
932
  dir: direction,
918
933
  "data-density": resolvedDensity,
919
934
  "data-slot": "alert-dialog-content",
935
+ "data-scroll": "none",
920
936
  "data-size": size,
921
937
  className: (state) => cn2("group/alert-dialog-content fixed top-1/2 left-1/2 grid w-full -translate-x-1/2 -translate-y-1/2 gap-panel rounded-md bg-popover p-panel text-popover-foreground border border-frame-edge shadow-frame duration-120 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:data-open:animate-none motion-reduce:data-closed:animate-none", typeof className === "function" ? className(state) : className),
922
938
  ...props
@@ -1044,29 +1060,34 @@ function SelectContent({
1044
1060
  const resolvedDensity = useDensity(density);
1045
1061
  const direction = useDirection4();
1046
1062
  const container = usePortalContainer2();
1063
+ const portal = usePortalNode();
1047
1064
  return /* @__PURE__ */ jsx11(SelectPrimitive.Portal, {
1048
1065
  container,
1049
- children: /* @__PURE__ */ jsx11(SelectPrimitive.Positioner, {
1050
- side,
1051
- sideOffset,
1052
- align,
1053
- alignOffset,
1054
- alignItemWithTrigger,
1055
- className: "isolate ",
1056
- children: /* @__PURE__ */ jsxs8(SelectPrimitive.Popup, {
1057
- dir: direction,
1058
- "data-density": resolvedDensity,
1059
- "data-slot": "select-content",
1060
- "data-align-trigger": alignItemWithTrigger,
1061
- className: (state) => cn2("relative isolate max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[align-trigger=true]:animate-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:animate-none", typeof className === "function" ? className(state) : className),
1062
- ...props,
1063
- children: [
1064
- /* @__PURE__ */ jsx11(SelectScrollUpButton, {}),
1065
- /* @__PURE__ */ jsx11(SelectPrimitive.List, {
1066
- children
1067
- }),
1068
- /* @__PURE__ */ jsx11(SelectScrollDownButton, {})
1069
- ]
1066
+ ref: portal.ref,
1067
+ children: /* @__PURE__ */ jsx11(PortalProvider2, {
1068
+ container: portal.node,
1069
+ children: /* @__PURE__ */ jsx11(SelectPrimitive.Positioner, {
1070
+ side,
1071
+ sideOffset,
1072
+ align,
1073
+ alignOffset,
1074
+ alignItemWithTrigger,
1075
+ className: "isolate ",
1076
+ children: /* @__PURE__ */ jsxs8(SelectPrimitive.Popup, {
1077
+ dir: direction,
1078
+ "data-density": resolvedDensity,
1079
+ "data-slot": "select-content",
1080
+ "data-align-trigger": alignItemWithTrigger,
1081
+ className: (state) => cn2("relative isolate max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover text-popover-foreground border border-frame-edge shadow-frame duration-120 data-[align-trigger=true]:animate-none data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 motion-reduce:animate-none", typeof className === "function" ? className(state) : className),
1082
+ ...props,
1083
+ children: [
1084
+ /* @__PURE__ */ jsx11(SelectScrollUpButton, {}),
1085
+ /* @__PURE__ */ jsx11(SelectPrimitive.List, {
1086
+ children
1087
+ }),
1088
+ /* @__PURE__ */ jsx11(SelectScrollDownButton, {})
1089
+ ]
1090
+ })
1070
1091
  })
1071
1092
  })
1072
1093
  });
@@ -1151,7 +1172,137 @@ function DensityProvider({
1151
1172
  // src/components/ThemeProvider.tsx
1152
1173
  import { useMemo } from "react";
1153
1174
  import { useIsomorphicLayoutEffect, useTernaryDarkMode } from "usehooks-ts";
1154
- import { jsx as jsx13 } from "react/jsx-runtime";
1175
+
1176
+ // src/components/ScrollGuard.tsx
1177
+ import { useEffect as useEffect2 } from "react";
1178
+
1179
+ // src/utils/observeScrollGuards.ts
1180
+ function throwViolation(error) {
1181
+ throw error;
1182
+ }
1183
+ function getViolation(element, view) {
1184
+ if (!element.getClientRects().length)
1185
+ return;
1186
+ const style = view.getComputedStyle(element);
1187
+ if (style.visibility !== "visible")
1188
+ return;
1189
+ const axes = [];
1190
+ if (["auto", "scroll"].includes(style.overflowX) && element.scrollWidth > element.clientWidth) {
1191
+ axes.push(`horizontal: ${element.scrollWidth}px > ${element.clientWidth}px`);
1192
+ }
1193
+ if (["auto", "scroll"].includes(style.overflowY) && element.scrollHeight > element.clientHeight) {
1194
+ axes.push(`vertical: ${element.scrollHeight}px > ${element.clientHeight}px`);
1195
+ }
1196
+ if (!axes.length)
1197
+ return;
1198
+ const slot = element.getAttribute("data-slot");
1199
+ const identity = element.id ? ` id="${element.id}"` : slot ? ` data-slot="${slot}"` : "";
1200
+ return `<${element.localName}${identity}> (${axes.join(", ")})`;
1201
+ }
1202
+ function observeScrollGuards(ownerDocument, reportViolation = throwViolation) {
1203
+ const view = ownerDocument.defaultView;
1204
+ if (!view)
1205
+ return () => {};
1206
+ let frame;
1207
+ let needsRefresh = true;
1208
+ let guarded = [];
1209
+ const observed = new Set;
1210
+ const reported = new WeakSet;
1211
+ const schedule = () => {
1212
+ frame ??= view.requestAnimationFrame(check);
1213
+ };
1214
+ const resizeObserver = new view.ResizeObserver(schedule);
1215
+ const refresh = () => {
1216
+ guarded = [...ownerDocument.querySelectorAll('[data-scroll="none"]')];
1217
+ const targets = new Set(guarded.flatMap((element) => [element, ...element.querySelectorAll("*")]));
1218
+ for (const element of observed) {
1219
+ if (!targets.has(element)) {
1220
+ resizeObserver.unobserve(element);
1221
+ observed.delete(element);
1222
+ }
1223
+ }
1224
+ for (const element of targets) {
1225
+ if (!observed.has(element)) {
1226
+ resizeObserver.observe(element);
1227
+ observed.add(element);
1228
+ }
1229
+ }
1230
+ needsRefresh = false;
1231
+ };
1232
+ const check = () => {
1233
+ frame = undefined;
1234
+ if (needsRefresh)
1235
+ refresh();
1236
+ const violations = [];
1237
+ for (const element of guarded) {
1238
+ const violation = getViolation(element, view);
1239
+ if (!violation) {
1240
+ reported.delete(element);
1241
+ } else if (!reported.has(element)) {
1242
+ reported.add(element);
1243
+ violations.push(violation);
1244
+ }
1245
+ }
1246
+ if (violations.length) {
1247
+ reportViolation(new Error(`[shadcn] Scrolling is forbidden by data-scroll="none": ${violations.join("; ")}. ` + "Move scrolling content into a nested ScrollArea or another explicit scroll viewport."));
1248
+ }
1249
+ };
1250
+ const mutations = new view.MutationObserver((records) => {
1251
+ needsRefresh ||= records.some((record) => record.type === "childList" || record.attributeName === "data-scroll");
1252
+ schedule();
1253
+ });
1254
+ mutations.observe(ownerDocument.documentElement, {
1255
+ subtree: true,
1256
+ childList: true,
1257
+ characterData: true,
1258
+ attributes: true
1259
+ });
1260
+ view.addEventListener("resize", schedule);
1261
+ ownerDocument.addEventListener("load", schedule, true);
1262
+ ownerDocument.addEventListener("transitionend", schedule, true);
1263
+ ownerDocument.addEventListener("animationend", schedule, true);
1264
+ ownerDocument.fonts.addEventListener("loadingdone", schedule);
1265
+ schedule();
1266
+ return () => {
1267
+ mutations.disconnect();
1268
+ resizeObserver.disconnect();
1269
+ if (frame !== undefined)
1270
+ view.cancelAnimationFrame(frame);
1271
+ view.removeEventListener("resize", schedule);
1272
+ ownerDocument.removeEventListener("load", schedule, true);
1273
+ ownerDocument.removeEventListener("transitionend", schedule, true);
1274
+ ownerDocument.removeEventListener("animationend", schedule, true);
1275
+ ownerDocument.fonts.removeEventListener("loadingdone", schedule);
1276
+ };
1277
+ }
1278
+
1279
+ // src/components/ScrollGuard.tsx
1280
+ "use client";
1281
+ var registrations = new WeakMap;
1282
+ function ScrollGuard({ ownerDocument }) {
1283
+ useEffect2(() => {
1284
+ if (process.env.NODE_ENV === "production")
1285
+ return;
1286
+ const target = ownerDocument ?? document;
1287
+ let registration = registrations.get(target);
1288
+ if (!registration) {
1289
+ registration = { users: 0, disconnect: observeScrollGuards(target) };
1290
+ registrations.set(target, registration);
1291
+ }
1292
+ registration.users++;
1293
+ return () => {
1294
+ registration.users--;
1295
+ if (!registration.users) {
1296
+ registration.disconnect();
1297
+ registrations.delete(target);
1298
+ }
1299
+ };
1300
+ }, [ownerDocument]);
1301
+ return null;
1302
+ }
1303
+
1304
+ // src/components/ThemeProvider.tsx
1305
+ import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
1155
1306
  function StoredThemeProvider({
1156
1307
  children,
1157
1308
  defaultTheme = "system",
@@ -1180,9 +1331,12 @@ function ThemePalette({
1180
1331
  document.documentElement.style.colorScheme = resolvedTheme;
1181
1332
  }, [resolvedTheme]);
1182
1333
  const value = useMemo(() => ({ theme, resolvedTheme, setTheme }), [theme, resolvedTheme, setTheme]);
1183
- return /* @__PURE__ */ jsx13(ThemeContext.Provider, {
1334
+ return /* @__PURE__ */ jsxs9(ThemeContext.Provider, {
1184
1335
  value,
1185
- children
1336
+ children: [
1337
+ /* @__PURE__ */ jsx13(ScrollGuard, {}),
1338
+ children
1339
+ ]
1186
1340
  });
1187
1341
  }
1188
1342
  function ControlledThemeProvider({
@@ -1229,7 +1383,7 @@ function AspectRatio({ ratio, className, style, ...props }) {
1229
1383
  import { ChevronRightIcon, MoreHorizontalIcon } from "lucide-react";
1230
1384
  import { mergeProps as mergeProps5 } from "@base-ui/react/merge-props";
1231
1385
  import { useRender as useRender5 } from "@base-ui/react/use-render";
1232
- import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
1386
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
1233
1387
  function Breadcrumb({ density, className, ...props }) {
1234
1388
  return /* @__PURE__ */ jsx15("nav", {
1235
1389
  "aria-label": "breadcrumb",
@@ -1293,7 +1447,7 @@ function BreadcrumbSeparator({ density, children, className, ...props }) {
1293
1447
  });
1294
1448
  }
1295
1449
  function BreadcrumbEllipsis({ density, className, ...props }) {
1296
- return /* @__PURE__ */ jsxs9("span", {
1450
+ return /* @__PURE__ */ jsxs10("span", {
1297
1451
  "data-density": density,
1298
1452
  "data-slot": "breadcrumb-ellipsis",
1299
1453
  role: "presentation",
@@ -1364,7 +1518,7 @@ function ButtonGroupSeparator({
1364
1518
  }
1365
1519
  // src/components/NativeSelect.tsx
1366
1520
  import { ChevronDownIcon as ChevronDownIcon4 } from "lucide-react";
1367
- import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
1521
+ import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
1368
1522
  function NativeSelect({
1369
1523
  density,
1370
1524
  className,
@@ -1372,7 +1526,7 @@ function NativeSelect({
1372
1526
  size = "default",
1373
1527
  ...props
1374
1528
  }) {
1375
- return /* @__PURE__ */ jsxs10("div", {
1529
+ return /* @__PURE__ */ jsxs11("div", {
1376
1530
  dir,
1377
1531
  className: cn2("group/native-select relative w-fit has-[select:disabled]:opacity-50", className),
1378
1532
  "data-density": density,
@@ -1544,7 +1698,7 @@ function ItemFooter({ density, className, ...props }) {
1544
1698
  }
1545
1699
  // src/components/Pagination.tsx
1546
1700
  import { ChevronLeftIcon, ChevronRightIcon as ChevronRightIcon2, MoreHorizontalIcon as MoreHorizontalIcon2 } from "lucide-react";
1547
- import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
1701
+ import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
1548
1702
  function Pagination({ density, className, ...props }) {
1549
1703
  return /* @__PURE__ */ jsx19("nav", {
1550
1704
  role: "navigation",
@@ -1591,7 +1745,7 @@ function PaginationPrevious({
1591
1745
  text = "Previous",
1592
1746
  ...props
1593
1747
  }) {
1594
- return /* @__PURE__ */ jsxs11(PaginationLink, {
1748
+ return /* @__PURE__ */ jsxs12(PaginationLink, {
1595
1749
  density,
1596
1750
  "aria-label": "Go to previous page",
1597
1751
  size: "default",
@@ -1610,7 +1764,7 @@ function PaginationPrevious({
1610
1764
  });
1611
1765
  }
1612
1766
  function PaginationNext({ density, className, text = "Next", ...props }) {
1613
- return /* @__PURE__ */ jsxs11(PaginationLink, {
1767
+ return /* @__PURE__ */ jsxs12(PaginationLink, {
1614
1768
  density,
1615
1769
  "aria-label": "Go to next page",
1616
1770
  size: "default",
@@ -1629,7 +1783,7 @@ function PaginationNext({ density, className, text = "Next", ...props }) {
1629
1783
  });
1630
1784
  }
1631
1785
  function PaginationEllipsis({ density, className, ...props }) {
1632
- return /* @__PURE__ */ jsxs11("span", {
1786
+ return /* @__PURE__ */ jsxs12("span", {
1633
1787
  "aria-hidden": true,
1634
1788
  "data-density": density,
1635
1789
  "data-slot": "pagination-ellipsis",
@@ -1646,7 +1800,7 @@ function PaginationEllipsis({ density, className, ...props }) {
1646
1800
  }
1647
1801
  // src/components/ScrollArea.tsx
1648
1802
  import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area";
1649
- import { jsx as jsx20, jsxs as jsxs12 } from "react/jsx-runtime";
1803
+ import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
1650
1804
  function ScrollArea({
1651
1805
  density,
1652
1806
  className,
@@ -1654,15 +1808,15 @@ function ScrollArea({
1654
1808
  scrollbars = /* @__PURE__ */ jsx20(ScrollBar, {}),
1655
1809
  ...props
1656
1810
  }) {
1657
- return /* @__PURE__ */ jsxs12(ScrollAreaPrimitive.Root, {
1811
+ return /* @__PURE__ */ jsxs13(ScrollAreaPrimitive.Root, {
1658
1812
  "data-density": density,
1659
1813
  "data-slot": "scroll-area",
1660
- className: (state) => cn2("relative", typeof className === "function" ? className(state) : className),
1814
+ className: (state) => cn2("relative flex min-h-0 flex-col", typeof className === "function" ? className(state) : className),
1661
1815
  ...props,
1662
1816
  children: [
1663
1817
  /* @__PURE__ */ jsx20(ScrollAreaPrimitive.Viewport, {
1664
1818
  "data-slot": "scroll-area-viewport",
1665
- className: "size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1",
1819
+ className: "size-full min-h-0 flex-1 rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1",
1666
1820
  children
1667
1821
  }),
1668
1822
  scrollbars,
@@ -1703,7 +1857,7 @@ function useDrawer() {
1703
1857
 
1704
1858
  // src/components/Drawer.tsx
1705
1859
  import { Drawer as DrawerPrimitive } from "@base-ui/react/drawer";
1706
- import { jsx as jsx21, jsxs as jsxs13 } from "react/jsx-runtime";
1860
+ import { jsx as jsx21, jsxs as jsxs14 } from "react/jsx-runtime";
1707
1861
  function Drawer({
1708
1862
  modal = true,
1709
1863
  showSwipeHandle = false,
@@ -1730,12 +1884,18 @@ function DrawerTrigger({ ...props }) {
1730
1884
  ...props
1731
1885
  });
1732
1886
  }
1733
- function DrawerPortal({ container, ...props }) {
1887
+ function DrawerPortal({ container, ref, children, ...props }) {
1734
1888
  const resolvedContainer = usePortalContainer2(container);
1889
+ const portal = usePortalNode(ref);
1735
1890
  return /* @__PURE__ */ jsx21(DrawerPrimitive.Portal, {
1736
1891
  "data-slot": "drawer-portal",
1737
1892
  container: resolvedContainer,
1738
- ...props
1893
+ ref: portal.ref,
1894
+ ...props,
1895
+ children: /* @__PURE__ */ jsx21(PortalProvider2, {
1896
+ container: portal.node,
1897
+ children
1898
+ })
1739
1899
  });
1740
1900
  }
1741
1901
  function DrawerClose({ ...props }) {
@@ -1767,7 +1927,7 @@ function DrawerContent({ density, className, children, ...props }) {
1767
1927
  const direction = useDirection2();
1768
1928
  const { hasSnapPoints, modal, showSwipeHandle, swipeDirection } = useDrawer();
1769
1929
  const swipeAxis = swipeDirection === "down" || swipeDirection === "up" ? "y" : "x";
1770
- return /* @__PURE__ */ jsxs13(DrawerPortal, {
1930
+ return /* @__PURE__ */ jsxs14(DrawerPortal, {
1771
1931
  "data-slot": "drawer-portal",
1772
1932
  children: [
1773
1933
  modal === true && /* @__PURE__ */ jsx21(DrawerOverlay, {
@@ -1778,9 +1938,10 @@ function DrawerContent({ density, className, children, ...props }) {
1778
1938
  "data-slot": "drawer-viewport",
1779
1939
  "data-modal": modal,
1780
1940
  className: "pointer-events-none fixed inset-0 select-none data-[modal=true]:pointer-events-auto",
1781
- children: /* @__PURE__ */ jsxs13(DrawerPrimitive.Popup, {
1941
+ children: /* @__PURE__ */ jsxs14(DrawerPrimitive.Popup, {
1782
1942
  "data-density": resolvedDensity,
1783
1943
  "data-slot": "drawer-popup",
1944
+ "data-scroll": "none",
1784
1945
  "data-swipe-axis": swipeAxis,
1785
1946
  "data-snap-points": hasSnapPoints ? "" : undefined,
1786
1947
  className: (state) => cn2("group/drawer-popup pointer-events-auto fixed m-(--drawer-inset,0px) flex h-(--drawer-content-height) max-h-(--drawer-content-max-height,none) min-h-0 w-(--drawer-content-width,auto) transform-[translate3d(var(--translate-x,0px),var(--translate-y,0px),0)] flex-col border border-frame-edge shadow-frame bg-popover text-sm text-popover-foreground transition-[transform,height,opacity,filter] duration-450 ease-[cubic-bezier(0.22,1,0.36,1)] will-change-transform outline-none select-none [interpolate-size:allow-keywords] data-[swipe-direction=down]:rounded-t-md data-[swipe-direction=down]:border-t data-[swipe-direction=left]:rounded-r-md data-[swipe-direction=left]:border-r data-[swipe-direction=right]:rounded-l-md data-[swipe-direction=right]:border-l data-[swipe-direction=up]:rounded-b-md data-[swipe-direction=up]:border-b", "data-nested-drawer-open:overflow-hidden data-nested-drawer-open:brightness-95", "after:pointer-events-none after:absolute after:bg-(--drawer-bleed-background,var(--color-popover)) data-[swipe-axis=x]:after:inset-y-0 data-[swipe-axis=x]:after:w-(--bleed) data-[swipe-axis=y]:after:inset-x-0 data-[swipe-axis=y]:after:h-(--bleed) data-[swipe-direction=down]:after:top-full data-[swipe-direction=left]:after:right-full data-[swipe-direction=right]:after:left-full data-[swipe-direction=up]:after:bottom-full", "[--drawer-content-height:var(--drawer-height,auto)] data-[swipe-axis=x]:[--drawer-content-width:75%] data-[swipe-axis=y]:[--drawer-content-max-height:calc(100dvh-6rem)] data-[swipe-axis=y]:data-snap-points:[--drawer-content-height:100dvh] data-[swipe-axis=x]:sm:[--drawer-content-width:24rem]", "[--bleed:3rem] [--peek:1rem] [--stack-height:var(--drawer-frontmost-height,var(--drawer-height,0px))] [--stack-peek-offset:max(0px,calc((var(--nested-drawers)-var(--stack-progress))*var(--peek)))] [--stack-progress:clamp(0,var(--drawer-swipe-progress),1)] [--stack-shrink:0]", "data-ending-style:transform-(--closed-transform) data-ending-style:opacity-[0.9999] data-ending-style:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-nested-drawer-swiping:duration-0 data-ending-style:data-nested-drawer-swiping:duration-[calc(var(--drawer-swipe-strength)*400ms)] data-starting-style:transform-(--closed-transform) data-swiping:duration-0 data-ending-style:data-swiping:duration-[calc(var(--drawer-swipe-strength)*400ms)]", "data-[swipe-axis=y]:inset-x-0 data-[swipe-axis=y]:data-nested-drawer-open:h-(--stack-height)", "data-[swipe-axis=x]:inset-y-0 data-[swipe-axis=x]:flex-row", "data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:origin-bottom data-[swipe-direction=down]:[--closed-transform:translate3d(0,calc(100%+var(--drawer-inset,0px)+2px),0)] data-[swipe-direction=down]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)-var(--stack-peek-offset)-(var(--stack-shrink)*var(--stack-height)))]", "data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:origin-top data-[swipe-direction=up]:[--closed-transform:translate3d(0,calc(-100%-var(--drawer-inset,0px)-2px),0)] data-[swipe-direction=up]:[--translate-y:calc(var(--drawer-snap-point-offset,0px)+var(--drawer-swipe-movement-y)+var(--stack-peek-offset)+(var(--stack-shrink)*var(--stack-height)))]", "data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:origin-left data-[swipe-direction=left]:[--closed-transform:translate3d(calc(-100%-var(--drawer-inset,0px)-2px),0,0)] data-[swipe-direction=left]:[--translate-x:calc(var(--drawer-swipe-movement-x)+var(--stack-peek-offset)+(var(--stack-shrink)*100%))]", "data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:origin-right data-[swipe-direction=right]:[--closed-transform:translate3d(calc(100%+var(--drawer-inset,0px)+2px),0,0)] data-[swipe-direction=right]:[--translate-x:calc(var(--drawer-swipe-movement-x)-var(--stack-peek-offset)-(var(--stack-shrink)*100%))]", typeof className === "function" ? className(state) : className),
@@ -1789,6 +1950,7 @@ function DrawerContent({ density, className, children, ...props }) {
1789
1950
  showSwipeHandle && /* @__PURE__ */ jsx21(DrawerSwipeHandle, {}),
1790
1951
  /* @__PURE__ */ jsx21(DrawerPrimitive.Content, {
1791
1952
  "data-slot": "drawer-content",
1953
+ "data-scroll": "none",
1792
1954
  className: "flex min-h-0 flex-1 flex-col overflow-hidden overscroll-contain rounded-[inherit] transition-opacity duration-300 ease-out select-text group-data-nested-drawer-open/drawer-popup:opacity-0 group-data-nested-drawer-swiping/drawer-popup:opacity-100 group-data-swiping/drawer-popup:select-none",
1793
1955
  children
1794
1956
  })
@@ -1834,19 +1996,25 @@ function DrawerDescription({ density, className, ...props }) {
1834
1996
  import { ChevronRightIcon as ChevronRightIcon3, CheckIcon as CheckIcon3 } from "lucide-react";
1835
1997
  import { useDirection as useDirection5 } from "@base-ui/react/direction-provider";
1836
1998
  import { ContextMenu as ContextMenuPrimitive } from "@base-ui/react/context-menu";
1837
- import { jsx as jsx22, jsxs as jsxs14 } from "react/jsx-runtime";
1999
+ import { jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
1838
2000
  function ContextMenu({ ...props }) {
1839
2001
  return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Root, {
1840
2002
  "data-slot": "context-menu",
1841
2003
  ...props
1842
2004
  });
1843
2005
  }
1844
- function ContextMenuPortal({ container, ...props }) {
2006
+ function ContextMenuPortal({ container, ref, children, ...props }) {
1845
2007
  const resolvedContainer = usePortalContainer2(container);
2008
+ const portal = usePortalNode(ref);
1846
2009
  return /* @__PURE__ */ jsx22(ContextMenuPrimitive.Portal, {
1847
2010
  "data-slot": "context-menu-portal",
1848
2011
  container: resolvedContainer,
1849
- ...props
2012
+ ref: portal.ref,
2013
+ ...props,
2014
+ children: /* @__PURE__ */ jsx22(PortalProvider2, {
2015
+ container: portal.node,
2016
+ children
2017
+ })
1850
2018
  });
1851
2019
  }
1852
2020
  function ContextMenuTrigger({ density, className, ...props }) {
@@ -1918,7 +2086,7 @@ function ContextMenuSub({ ...props }) {
1918
2086
  });
1919
2087
  }
1920
2088
  function ContextMenuSubTrigger({ density, className, inset, children, ...props }) {
1921
- return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.SubmenuTrigger, {
2089
+ return /* @__PURE__ */ jsxs15(ContextMenuPrimitive.SubmenuTrigger, {
1922
2090
  "data-density": density,
1923
2091
  "data-slot": "context-menu-sub-trigger",
1924
2092
  "data-inset": inset,
@@ -1948,7 +2116,7 @@ function ContextMenuCheckboxItem({
1948
2116
  inset,
1949
2117
  ...props
1950
2118
  }) {
1951
- return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.CheckboxItem, {
2119
+ return /* @__PURE__ */ jsxs15(ContextMenuPrimitive.CheckboxItem, {
1952
2120
  "data-density": density,
1953
2121
  "data-slot": "context-menu-checkbox-item",
1954
2122
  "data-inset": inset,
@@ -1973,7 +2141,7 @@ function ContextMenuRadioGroup({ ...props }) {
1973
2141
  });
1974
2142
  }
1975
2143
  function ContextMenuRadioItem({ density, className, children, inset, ...props }) {
1976
- return /* @__PURE__ */ jsxs14(ContextMenuPrimitive.RadioItem, {
2144
+ return /* @__PURE__ */ jsxs15(ContextMenuPrimitive.RadioItem, {
1977
2145
  "data-density": density,
1978
2146
  "data-slot": "context-menu-radio-item",
1979
2147
  "data-inset": inset,
@@ -2010,7 +2178,7 @@ function ContextMenuShortcut({ density, className, ...props }) {
2010
2178
  import { CheckIcon as CheckIcon4 } from "lucide-react";
2011
2179
  import { Menu as MenuPrimitive } from "@base-ui/react/menu";
2012
2180
  import { Menubar as MenubarPrimitive } from "@base-ui/react/menubar";
2013
- import { jsx as jsx23, jsxs as jsxs15 } from "react/jsx-runtime";
2181
+ import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
2014
2182
  function Menubar({ density, className, ...props }) {
2015
2183
  return /* @__PURE__ */ jsx23(MenubarPrimitive, {
2016
2184
  "data-density": density,
@@ -2081,7 +2249,7 @@ function MenubarCheckboxItem({
2081
2249
  inset,
2082
2250
  ...props
2083
2251
  }) {
2084
- return /* @__PURE__ */ jsxs15(MenuPrimitive.CheckboxItem, {
2252
+ return /* @__PURE__ */ jsxs16(MenuPrimitive.CheckboxItem, {
2085
2253
  "data-density": density,
2086
2254
  "data-slot": "menubar-checkbox-item",
2087
2255
  "data-inset": inset,
@@ -2106,7 +2274,7 @@ function MenubarRadioGroup({ ...props }) {
2106
2274
  });
2107
2275
  }
2108
2276
  function MenubarRadioItem({ density, className, children, inset, ...props }) {
2109
- return /* @__PURE__ */ jsxs15(MenuPrimitive.RadioItem, {
2277
+ return /* @__PURE__ */ jsxs16(MenuPrimitive.RadioItem, {
2110
2278
  "data-density": density,
2111
2279
  "data-slot": "menubar-radio-item",
2112
2280
  "data-inset": inset,
@@ -2175,7 +2343,7 @@ function MenubarSubContent({ density, className, ...props }) {
2175
2343
  import { ChevronDownIcon as ChevronDownIcon5 } from "lucide-react";
2176
2344
  import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu";
2177
2345
  import { cva as cva4 } from "class-variance-authority";
2178
- import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
2346
+ import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
2179
2347
  function NavigationMenu({
2180
2348
  density,
2181
2349
  align = "start",
@@ -2184,7 +2352,7 @@ function NavigationMenu({
2184
2352
  ...props
2185
2353
  }) {
2186
2354
  const resolvedDensity = useDensity(density);
2187
- return /* @__PURE__ */ jsxs16(NavigationMenuPrimitive.Root, {
2355
+ return /* @__PURE__ */ jsxs17(NavigationMenuPrimitive.Root, {
2188
2356
  "data-density": resolvedDensity,
2189
2357
  "data-slot": "navigation-menu",
2190
2358
  className: (state) => cn2("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", typeof className === "function" ? className(state) : className),
@@ -2216,7 +2384,7 @@ function NavigationMenuItem({ density, className, ...props }) {
2216
2384
  }
2217
2385
  var navigationMenuTriggerStyle = cva4("group/navigation-menu-trigger inline-flex h-control-lg w-max items-center justify-center rounded-sm px-control-x py-1.5 text-sm font-medium transition-colors outline-none hover:bg-muted focus:bg-muted focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted");
2218
2386
  function NavigationMenuTrigger({ density, className, children, ...props }) {
2219
- return /* @__PURE__ */ jsxs16(NavigationMenuPrimitive.Trigger, {
2387
+ return /* @__PURE__ */ jsxs17(NavigationMenuPrimitive.Trigger, {
2220
2388
  "data-density": density,
2221
2389
  "data-slot": "navigation-menu-trigger",
2222
2390
  className: (state) => cn2(navigationMenuTriggerStyle(), "group", typeof className === "function" ? className(state) : className),
@@ -2248,22 +2416,27 @@ function NavigationMenuPositioner({
2248
2416
  const resolvedDensity = useDensity(density);
2249
2417
  const direction = useDirection2();
2250
2418
  const container = usePortalContainer2();
2419
+ const portal = usePortalNode();
2251
2420
  return /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Portal, {
2252
2421
  container,
2253
- children: /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Positioner, {
2254
- dir: direction,
2255
- side,
2256
- sideOffset,
2257
- align,
2258
- alignOffset,
2259
- className: (state) => cn2("isolate h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", typeof className === "function" ? className(state) : className),
2260
- ...props,
2261
- children: /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Popup, {
2262
- "data-density": resolvedDensity,
2263
- "data-slot": "navigation-menu-popup",
2264
- className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-sm bg-popover text-popover-foreground border border-frame-edge shadow-frame transition-[opacity,transform,width,height,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:opacity-0",
2265
- children: /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Viewport, {
2266
- className: "relative size-full overflow-hidden"
2422
+ ref: portal.ref,
2423
+ children: /* @__PURE__ */ jsx24(PortalProvider2, {
2424
+ container: portal.node,
2425
+ children: /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Positioner, {
2426
+ dir: direction,
2427
+ side,
2428
+ sideOffset,
2429
+ align,
2430
+ alignOffset,
2431
+ className: (state) => cn2("isolate h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", typeof className === "function" ? className(state) : className),
2432
+ ...props,
2433
+ children: /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Popup, {
2434
+ "data-density": resolvedDensity,
2435
+ "data-slot": "navigation-menu-popup",
2436
+ className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-sm bg-popover text-popover-foreground border border-frame-edge shadow-frame transition-[opacity,transform,width,height,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:opacity-0",
2437
+ children: /* @__PURE__ */ jsx24(NavigationMenuPrimitive.Viewport, {
2438
+ className: "relative size-full overflow-hidden"
2439
+ })
2267
2440
  })
2268
2441
  })
2269
2442
  })
@@ -2294,18 +2467,24 @@ function NavigationMenuIndicator({
2294
2467
  // src/components/Toast.tsx
2295
2468
  import { Toast as ToastPrimitive } from "@base-ui/react/toast";
2296
2469
  import { CircleCheckIcon, InfoIcon, TriangleAlertIcon, OctagonXIcon, LoaderCircleIcon, XIcon as XIcon2 } from "lucide-react";
2297
- import { jsx as jsx25, jsxs as jsxs17, Fragment } from "react/jsx-runtime";
2470
+ import { jsx as jsx25, jsxs as jsxs18, Fragment } from "react/jsx-runtime";
2298
2471
  function ToastProvider(props) {
2299
2472
  return /* @__PURE__ */ jsx25(ToastPrimitive.Provider, {
2300
2473
  ...props
2301
2474
  });
2302
2475
  }
2303
- function ToastPortal({ container, ...props }) {
2476
+ function ToastPortal({ container, ref, children, ...props }) {
2304
2477
  const resolvedContainer = usePortalContainer2(container);
2478
+ const portal = usePortalNode(ref);
2305
2479
  return /* @__PURE__ */ jsx25(ToastPrimitive.Portal, {
2306
2480
  "data-slot": "toast-portal",
2307
2481
  container: resolvedContainer,
2308
- ...props
2482
+ ref: portal.ref,
2483
+ ...props,
2484
+ children: /* @__PURE__ */ jsx25(PortalProvider2, {
2485
+ container: portal.node,
2486
+ children
2487
+ })
2309
2488
  });
2310
2489
  }
2311
2490
  function ToastViewport({ density, dir, className, ...props }) {
@@ -2416,7 +2595,7 @@ function ToastList() {
2416
2595
  return /* @__PURE__ */ jsx25(Fragment, {
2417
2596
  children: toasts.map((toastItem) => /* @__PURE__ */ jsx25(Toast, {
2418
2597
  toast: toastItem,
2419
- children: /* @__PURE__ */ jsxs17(ToastContent, {
2598
+ children: /* @__PURE__ */ jsxs18(ToastContent, {
2420
2599
  children: [
2421
2600
  /* @__PURE__ */ jsx25("span", {
2422
2601
  "data-slot": "toast-icon",
@@ -2425,7 +2604,7 @@ function ToastList() {
2425
2604
  type: toastItem.type
2426
2605
  })
2427
2606
  }),
2428
- /* @__PURE__ */ jsxs17("div", {
2607
+ /* @__PURE__ */ jsxs18("div", {
2429
2608
  className: "flex min-w-0 flex-1 flex-col gap-1",
2430
2609
  children: [
2431
2610
  /* @__PURE__ */ jsx25(ToastTitle, {}),
@@ -2440,7 +2619,7 @@ function ToastList() {
2440
2619
  });
2441
2620
  }
2442
2621
  function ToastToaster({ children, density, ...props }) {
2443
- return /* @__PURE__ */ jsxs17(ToastProvider, {
2622
+ return /* @__PURE__ */ jsxs18(ToastProvider, {
2444
2623
  ...props,
2445
2624
  children: [
2446
2625
  children,
@@ -2774,8 +2953,8 @@ function AttachmentGroup({ density, className, ...props }) {
2774
2953
  });
2775
2954
  }
2776
2955
  // src/components/InlineEdit.tsx
2777
- import { useEffect as useEffect2, useRef as useRef4, useState as useState4 } from "react";
2778
- import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
2956
+ import { useEffect as useEffect3, useRef as useRef4, useState as useState4 } from "react";
2957
+ import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
2779
2958
  function InlineEdit({
2780
2959
  label,
2781
2960
  value,
@@ -2790,7 +2969,7 @@ function InlineEdit({
2790
2969
  const isFinished = useRef4(false);
2791
2970
  const [isSaving, setSaving] = useState4(false);
2792
2971
  const [error, setError] = useState4("");
2793
- useEffect2(() => {
2972
+ useEffect3(() => {
2794
2973
  input.current?.focus();
2795
2974
  if (shouldSelectOnMount)
2796
2975
  input.current?.select();
@@ -2810,7 +2989,7 @@ function InlineEdit({
2810
2989
  setSaving(false);
2811
2990
  }
2812
2991
  };
2813
- return /* @__PURE__ */ jsxs18("form", {
2992
+ return /* @__PURE__ */ jsxs19("form", {
2814
2993
  className: "flex min-w-0 flex-col gap-1",
2815
2994
  onSubmit: (event) => {
2816
2995
  event.preventDefault();
@@ -2880,7 +3059,7 @@ function StarRating({ label, value, disabled, density, onValueChange }) {
2880
3059
  }
2881
3060
  // src/components/ConfirmationDialog.tsx
2882
3061
  import { useState as useState5 } from "react";
2883
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
3062
+ import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
2884
3063
  function ConfirmationDialog({
2885
3064
  open,
2886
3065
  title,
@@ -2899,9 +3078,9 @@ function ConfirmationDialog({
2899
3078
  onOpenChange(next);
2900
3079
  }
2901
3080
  },
2902
- children: /* @__PURE__ */ jsxs19(AlertDialogContent, {
3081
+ children: /* @__PURE__ */ jsxs20(AlertDialogContent, {
2903
3082
  children: [
2904
- /* @__PURE__ */ jsxs19(AlertDialogHeader, {
3083
+ /* @__PURE__ */ jsxs20(AlertDialogHeader, {
2905
3084
  children: [
2906
3085
  /* @__PURE__ */ jsx32(AlertDialogTitle, {
2907
3086
  children: title
@@ -2917,7 +3096,7 @@ function ConfirmationDialog({
2917
3096
  children: error
2918
3097
  })
2919
3098
  }),
2920
- /* @__PURE__ */ jsxs19(AlertDialogFooter, {
3099
+ /* @__PURE__ */ jsxs20(AlertDialogFooter, {
2921
3100
  children: [
2922
3101
  /* @__PURE__ */ jsx32(AlertDialogCancel, {
2923
3102
  disabled: isPending,
@@ -2951,10 +3130,10 @@ import { useRef as useRef5 } from "react";
2951
3130
  import { ImageIcon, UploadIcon } from "lucide-react";
2952
3131
 
2953
3132
  // src/hooks/useObjectURL.ts
2954
- import { useEffect as useEffect3, useState as useState6 } from "react";
3133
+ import { useEffect as useEffect4, useState as useState6 } from "react";
2955
3134
  function useObjectURL(file) {
2956
3135
  const [url, setURL] = useState6();
2957
- useEffect3(() => {
3136
+ useEffect4(() => {
2958
3137
  if (!file) {
2959
3138
  setURL(undefined);
2960
3139
  return;
@@ -2967,16 +3146,16 @@ function useObjectURL(file) {
2967
3146
  }
2968
3147
 
2969
3148
  // src/components/ImagePicker.tsx
2970
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
3149
+ import { jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
2971
3150
  function ImagePicker({ src, file, label, disabled, onFileChange, onClear }) {
2972
3151
  const input = useRef5(null);
2973
3152
  const preview = useObjectURL(file);
2974
3153
  const image = file === null ? undefined : preview ?? src;
2975
- return /* @__PURE__ */ jsxs20("figure", {
3154
+ return /* @__PURE__ */ jsxs21("figure", {
2976
3155
  className: "flex min-w-0 flex-col items-center gap-3",
2977
3156
  "aria-label": label,
2978
3157
  children: [
2979
- /* @__PURE__ */ jsxs20(Avatar2, {
3158
+ /* @__PURE__ */ jsxs21(Avatar2, {
2980
3159
  size: "preview",
2981
3160
  shape: "square",
2982
3161
  children: [
@@ -3006,10 +3185,10 @@ function ImagePicker({ src, file, label, disabled, onFileChange, onClear }) {
3006
3185
  event.currentTarget.value = "";
3007
3186
  }
3008
3187
  }),
3009
- /* @__PURE__ */ jsxs20("div", {
3188
+ /* @__PURE__ */ jsxs21("div", {
3010
3189
  className: "flex flex-wrap justify-center gap-2",
3011
3190
  children: [
3012
- /* @__PURE__ */ jsxs20(Button2, {
3191
+ /* @__PURE__ */ jsxs21(Button2, {
3013
3192
  type: "button",
3014
3193
  variant: "outline",
3015
3194
  disabled,
@@ -3033,14 +3212,6 @@ function ImagePicker({ src, file, label, disabled, onFileChange, onClear }) {
3033
3212
  ]
3034
3213
  });
3035
3214
  }
3036
- // src/components/PortalProvider.tsx
3037
- import { jsx as jsx34 } from "react/jsx-runtime";
3038
- function PortalProvider({ container, children }) {
3039
- return /* @__PURE__ */ jsx34(PortalContext.Provider, {
3040
- value: container,
3041
- children
3042
- });
3043
- }
3044
3215
  export {
3045
3216
  Accordion,
3046
3217
  AccordionContent,
@@ -3272,7 +3443,7 @@ export {
3272
3443
  PopoverHeader2 as PopoverHeader,
3273
3444
  PopoverTitle2 as PopoverTitle,
3274
3445
  PopoverTrigger2 as PopoverTrigger,
3275
- PortalProvider,
3446
+ PortalProvider2 as PortalProvider,
3276
3447
  Progress2 as Progress,
3277
3448
  ProgressIndicator2 as ProgressIndicator,
3278
3449
  ProgressLabel2 as ProgressLabel,
@@ -3282,6 +3453,7 @@ export {
3282
3453
  RadioGroupItem2 as RadioGroupItem,
3283
3454
  ScrollArea,
3284
3455
  ScrollBar,
3456
+ ScrollGuard,
3285
3457
  Select,
3286
3458
  SelectContent,
3287
3459
  SelectGroup,