@sero-ai/ui 0.4.1 → 0.4.2

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 (279) hide show
  1. package/.turbo/turbo-build.log +628 -615
  2. package/.turbo/turbo-test.log +18 -0
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/dist/components/ai-elements/agent.cjs +6 -6
  5. package/dist/components/ai-elements/agent.js +6 -6
  6. package/dist/components/ai-elements/artifact.cjs +2 -2
  7. package/dist/components/ai-elements/artifact.js +2 -2
  8. package/dist/components/ai-elements/attachments.cjs +2 -2
  9. package/dist/components/ai-elements/attachments.js +2 -2
  10. package/dist/components/ai-elements/chain-of-thought.cjs +2 -2
  11. package/dist/components/ai-elements/chain-of-thought.js +2 -2
  12. package/dist/components/ai-elements/code-block.cjs +7 -5
  13. package/dist/components/ai-elements/code-block.d.cts +2 -1
  14. package/dist/components/ai-elements/code-block.d.ts +2 -1
  15. package/dist/components/ai-elements/code-block.js +7 -5
  16. package/dist/components/ai-elements/commit.cjs +2 -2
  17. package/dist/components/ai-elements/commit.js +2 -2
  18. package/dist/components/ai-elements/confirmation.cjs +1 -1
  19. package/dist/components/ai-elements/confirmation.js +1 -1
  20. package/dist/components/ai-elements/conversation.cjs +2 -2
  21. package/dist/components/ai-elements/conversation.js +2 -2
  22. package/dist/components/ai-elements/environment-variables.cjs +3 -3
  23. package/dist/components/ai-elements/environment-variables.js +3 -3
  24. package/dist/components/ai-elements/file-tree.cjs +1 -1
  25. package/dist/components/ai-elements/file-tree.js +1 -1
  26. package/dist/components/ai-elements/inline-citation.cjs +3 -3
  27. package/dist/components/ai-elements/inline-citation.js +3 -3
  28. package/dist/components/ai-elements/jsx-preview.cjs +1 -1
  29. package/dist/components/ai-elements/jsx-preview.js +1 -1
  30. package/dist/components/ai-elements/message.cjs +1 -1
  31. package/dist/components/ai-elements/message.js +1 -1
  32. package/dist/components/ai-elements/package-info.cjs +4 -4
  33. package/dist/components/ai-elements/package-info.js +4 -4
  34. package/dist/components/ai-elements/prompt-input-context.cjs +2 -3
  35. package/dist/components/ai-elements/prompt-input-context.js +2 -3
  36. package/dist/components/ai-elements/queue.cjs +2 -2
  37. package/dist/components/ai-elements/queue.js +2 -2
  38. package/dist/components/ai-elements/reasoning.cjs +2 -2
  39. package/dist/components/ai-elements/reasoning.js +2 -2
  40. package/dist/components/ai-elements/sandbox.cjs +3 -3
  41. package/dist/components/ai-elements/sandbox.js +3 -3
  42. package/dist/components/ai-elements/schema-display.cjs +12 -12
  43. package/dist/components/ai-elements/schema-display.js +12 -12
  44. package/dist/components/ai-elements/speech-input.cjs +18 -2
  45. package/dist/components/ai-elements/speech-input.js +16 -0
  46. package/dist/components/ai-elements/stack-trace.cjs +1 -1
  47. package/dist/components/ai-elements/stack-trace.js +1 -1
  48. package/dist/components/ai-elements/task.cjs +3 -3
  49. package/dist/components/ai-elements/task.js +3 -3
  50. package/dist/components/ai-elements/terminal.cjs +2 -2
  51. package/dist/components/ai-elements/terminal.js +2 -2
  52. package/dist/components/ai-elements/test-results.cjs +4 -4
  53. package/dist/components/ai-elements/test-results.js +4 -4
  54. package/dist/components/ai-elements/tool.cjs +4 -4
  55. package/dist/components/ai-elements/tool.js +4 -4
  56. package/dist/components/ai-elements/transcription.cjs +1 -1
  57. package/dist/components/ai-elements/transcription.js +1 -1
  58. package/dist/components/ai-elements/web-preview.cjs +2 -2
  59. package/dist/components/ai-elements/web-preview.js +2 -2
  60. package/dist/components/context-editor/CapabilitySection.cjs +2 -2
  61. package/dist/components/context-editor/CapabilitySection.js +2 -2
  62. package/dist/components/context-editor/ContextEditor.cjs +2 -2
  63. package/dist/components/context-editor/ContextEditor.js +2 -2
  64. package/dist/components/context-editor/PresetBar.cjs +3 -3
  65. package/dist/components/context-editor/PresetBar.js +3 -3
  66. package/dist/components/context-editor/SystemPromptSection.cjs +4 -4
  67. package/dist/components/context-editor/SystemPromptSection.js +4 -4
  68. package/dist/components/context-editor/parts.cjs +6 -6
  69. package/dist/components/context-editor/parts.js +6 -6
  70. package/dist/components/dashboard/activity-list.cjs +2 -2
  71. package/dist/components/dashboard/activity-list.js +2 -2
  72. package/dist/components/dashboard/empty-state.cjs +1 -1
  73. package/dist/components/dashboard/empty-state.js +1 -1
  74. package/dist/components/dashboard/item-list.cjs +2 -2
  75. package/dist/components/dashboard/item-list.js +2 -2
  76. package/dist/components/dashboard/layout.cjs +1 -1
  77. package/dist/components/dashboard/layout.js +1 -1
  78. package/dist/components/dashboard/metric.cjs +1 -1
  79. package/dist/components/dashboard/metric.js +1 -1
  80. package/dist/components/dashboard/stale-indicator.cjs +1 -1
  81. package/dist/components/dashboard/stale-indicator.js +1 -1
  82. package/dist/components/dashboard/typography.cjs +4 -4
  83. package/dist/components/dashboard/typography.d.cts +1 -1
  84. package/dist/components/dashboard/typography.d.ts +1 -1
  85. package/dist/components/dashboard/typography.js +4 -4
  86. package/dist/components/model-selection/available-model-picker.cjs +6 -6
  87. package/dist/components/model-selection/available-model-picker.js +6 -6
  88. package/dist/components/model-selection/thinking-level-picker.cjs +1 -1
  89. package/dist/components/model-selection/thinking-level-picker.js +1 -1
  90. package/dist/components/model-selection/thinking-picker.cjs +70 -0
  91. package/dist/components/model-selection/thinking-picker.d.cts +12 -0
  92. package/dist/components/model-selection/thinking-picker.d.ts +12 -0
  93. package/dist/components/model-selection/thinking-picker.js +70 -0
  94. package/dist/components/ui/accordion.cjs +2 -2
  95. package/dist/components/ui/accordion.js +2 -2
  96. package/dist/components/ui/alert-dialog.cjs +4 -2
  97. package/dist/components/ui/alert-dialog.js +4 -2
  98. package/dist/components/ui/alert.cjs +2 -2
  99. package/dist/components/ui/alert.js +2 -2
  100. package/dist/components/ui/avatar.cjs +2 -2
  101. package/dist/components/ui/avatar.js +2 -2
  102. package/dist/components/ui/breadcrumb.cjs +1 -1
  103. package/dist/components/ui/breadcrumb.js +1 -1
  104. package/dist/components/ui/button-group.cjs +1 -1
  105. package/dist/components/ui/button-group.js +1 -1
  106. package/dist/components/ui/button.cjs +1 -1
  107. package/dist/components/ui/button.js +1 -1
  108. package/dist/components/ui/calendar.cjs +2 -2
  109. package/dist/components/ui/calendar.js +2 -2
  110. package/dist/components/ui/card.cjs +1 -1
  111. package/dist/components/ui/card.js +1 -1
  112. package/dist/components/ui/carousel.cjs +3 -2
  113. package/dist/components/ui/carousel.js +2 -1
  114. package/dist/components/ui/chart.cjs +36 -27
  115. package/dist/components/ui/chart.d.cts +21 -17
  116. package/dist/components/ui/chart.d.ts +21 -17
  117. package/dist/components/ui/chart.js +30 -21
  118. package/dist/components/ui/combobox.cjs +7 -5
  119. package/dist/components/ui/combobox.js +7 -5
  120. package/dist/components/ui/command.cjs +3 -3
  121. package/dist/components/ui/command.js +3 -3
  122. package/dist/components/ui/context-menu.cjs +10 -7
  123. package/dist/components/ui/context-menu.js +10 -7
  124. package/dist/components/ui/dialog.cjs +4 -2
  125. package/dist/components/ui/dialog.js +4 -2
  126. package/dist/components/ui/drawer.cjs +4 -2
  127. package/dist/components/ui/drawer.js +4 -2
  128. package/dist/components/ui/dropdown-menu.cjs +10 -7
  129. package/dist/components/ui/dropdown-menu.js +10 -7
  130. package/dist/components/ui/empty.cjs +2 -2
  131. package/dist/components/ui/empty.js +2 -2
  132. package/dist/components/ui/field.cjs +5 -5
  133. package/dist/components/ui/field.js +5 -5
  134. package/dist/components/ui/form.cjs +2 -2
  135. package/dist/components/ui/form.js +2 -2
  136. package/dist/components/ui/hover-card.cjs +3 -1
  137. package/dist/components/ui/hover-card.js +3 -1
  138. package/dist/components/ui/input-group.cjs +3 -3
  139. package/dist/components/ui/input-group.js +3 -3
  140. package/dist/components/ui/input-otp.cjs +1 -1
  141. package/dist/components/ui/input-otp.js +1 -1
  142. package/dist/components/ui/input.cjs +1 -1
  143. package/dist/components/ui/input.js +1 -1
  144. package/dist/components/ui/item.cjs +3 -3
  145. package/dist/components/ui/item.js +3 -3
  146. package/dist/components/ui/label.cjs +1 -1
  147. package/dist/components/ui/label.js +1 -1
  148. package/dist/components/ui/menubar.cjs +9 -7
  149. package/dist/components/ui/menubar.js +9 -7
  150. package/dist/components/ui/native-select.cjs +1 -1
  151. package/dist/components/ui/native-select.js +1 -1
  152. package/dist/components/ui/navigation-menu.cjs +2 -2
  153. package/dist/components/ui/navigation-menu.js +2 -2
  154. package/dist/components/ui/plugin-safety-disclaimer.cjs +1 -1
  155. package/dist/components/ui/plugin-safety-disclaimer.js +1 -1
  156. package/dist/components/ui/popover.cjs +4 -2
  157. package/dist/components/ui/popover.js +4 -2
  158. package/dist/components/ui/select.cjs +5 -3
  159. package/dist/components/ui/select.js +5 -3
  160. package/dist/components/ui/sheet.cjs +4 -2
  161. package/dist/components/ui/sheet.js +4 -2
  162. package/dist/components/ui/sidebar.cjs +5 -5
  163. package/dist/components/ui/sidebar.js +5 -5
  164. package/dist/components/ui/table.cjs +2 -2
  165. package/dist/components/ui/table.js +2 -2
  166. package/dist/components/ui/tabs.cjs +1 -1
  167. package/dist/components/ui/tabs.js +1 -1
  168. package/dist/components/ui/textarea.cjs +1 -1
  169. package/dist/components/ui/textarea.js +1 -1
  170. package/dist/components/ui/toggle.cjs +1 -1
  171. package/dist/components/ui/toggle.js +1 -1
  172. package/dist/components/ui/tooltip.cjs +3 -1
  173. package/dist/components/ui/tooltip.js +3 -1
  174. package/dist/index.cjs +5 -1
  175. package/dist/index.d.cts +2 -0
  176. package/dist/index.d.ts +2 -0
  177. package/dist/index.js +5 -1
  178. package/dist/plugin-style-scope-context.cjs +10 -0
  179. package/dist/plugin-style-scope-context.d.cts +13 -0
  180. package/dist/plugin-style-scope-context.d.ts +13 -0
  181. package/dist/plugin-style-scope-context.js +10 -0
  182. package/dist/plugin-style-scope.cjs +25 -0
  183. package/dist/plugin-style-scope.d.cts +11 -0
  184. package/dist/plugin-style-scope.d.ts +11 -0
  185. package/dist/plugin-style-scope.js +25 -0
  186. package/dist/reference.cjs +15 -15
  187. package/dist/reference.js +15 -15
  188. package/dist/styles/globals.css +22 -3
  189. package/dist/styles/plugin-theme.css +80 -0
  190. package/dist/styles/plugin.css +14 -2
  191. package/package.json +2 -2
  192. package/src/components/ai-elements/agent.tsx +6 -6
  193. package/src/components/ai-elements/artifact.tsx +2 -2
  194. package/src/components/ai-elements/attachments.tsx +2 -2
  195. package/src/components/ai-elements/chain-of-thought.tsx +2 -2
  196. package/src/components/ai-elements/code-block.tsx +6 -3
  197. package/src/components/ai-elements/commit.tsx +2 -2
  198. package/src/components/ai-elements/confirmation.tsx +1 -1
  199. package/src/components/ai-elements/conversation.tsx +2 -2
  200. package/src/components/ai-elements/environment-variables.tsx +3 -3
  201. package/src/components/ai-elements/file-tree.tsx +1 -1
  202. package/src/components/ai-elements/inline-citation.tsx +3 -3
  203. package/src/components/ai-elements/jsx-preview.tsx +1 -1
  204. package/src/components/ai-elements/message.tsx +1 -1
  205. package/src/components/ai-elements/package-info.tsx +4 -4
  206. package/src/components/ai-elements/prompt-input-context.tsx +3 -2
  207. package/src/components/ai-elements/queue.tsx +2 -2
  208. package/src/components/ai-elements/reasoning.tsx +2 -2
  209. package/src/components/ai-elements/sandbox.tsx +3 -3
  210. package/src/components/ai-elements/schema-display.tsx +12 -12
  211. package/src/components/ai-elements/speech-input.tsx +17 -0
  212. package/src/components/ai-elements/stack-trace.tsx +1 -1
  213. package/src/components/ai-elements/task.tsx +3 -3
  214. package/src/components/ai-elements/terminal.tsx +2 -2
  215. package/src/components/ai-elements/test-results.tsx +4 -4
  216. package/src/components/ai-elements/tool.tsx +4 -4
  217. package/src/components/ai-elements/transcription.tsx +1 -1
  218. package/src/components/ai-elements/web-preview.tsx +2 -2
  219. package/src/components/context-editor/CapabilitySection.tsx +2 -2
  220. package/src/components/context-editor/ContextEditor.tsx +2 -2
  221. package/src/components/context-editor/PresetBar.tsx +3 -3
  222. package/src/components/context-editor/SystemPromptSection.tsx +4 -4
  223. package/src/components/context-editor/parts.tsx +6 -6
  224. package/src/components/dashboard/activity-list.tsx +2 -2
  225. package/src/components/dashboard/empty-state.tsx +1 -1
  226. package/src/components/dashboard/item-list.tsx +2 -2
  227. package/src/components/dashboard/layout.tsx +1 -1
  228. package/src/components/dashboard/metric.tsx +1 -1
  229. package/src/components/dashboard/stale-indicator.tsx +1 -1
  230. package/src/components/dashboard/typography.tsx +5 -5
  231. package/src/components/model-selection/available-model-picker.tsx +7 -7
  232. package/src/components/model-selection/thinking-level-picker.tsx +1 -1
  233. package/src/components/model-selection/thinking-picker.tsx +90 -0
  234. package/src/components/ui/accordion.tsx +2 -2
  235. package/src/components/ui/alert-dialog.tsx +4 -2
  236. package/src/components/ui/alert.tsx +2 -2
  237. package/src/components/ui/avatar.tsx +2 -2
  238. package/src/components/ui/breadcrumb.tsx +1 -1
  239. package/src/components/ui/button-group.tsx +1 -1
  240. package/src/components/ui/button.tsx +1 -1
  241. package/src/components/ui/calendar.tsx +3 -3
  242. package/src/components/ui/card.tsx +1 -1
  243. package/src/components/ui/carousel.tsx +2 -1
  244. package/src/components/ui/chart.tsx +54 -36
  245. package/src/components/ui/combobox.tsx +7 -5
  246. package/src/components/ui/command.tsx +3 -3
  247. package/src/components/ui/context-menu.tsx +10 -7
  248. package/src/components/ui/dialog.tsx +4 -2
  249. package/src/components/ui/drawer.tsx +4 -2
  250. package/src/components/ui/dropdown-menu.tsx +10 -7
  251. package/src/components/ui/empty.tsx +2 -2
  252. package/src/components/ui/field.tsx +5 -5
  253. package/src/components/ui/form.tsx +2 -2
  254. package/src/components/ui/hover-card.tsx +3 -1
  255. package/src/components/ui/input-group.tsx +3 -3
  256. package/src/components/ui/input-otp.tsx +1 -1
  257. package/src/components/ui/input.tsx +1 -1
  258. package/src/components/ui/item.tsx +3 -3
  259. package/src/components/ui/label.tsx +1 -1
  260. package/src/components/ui/menubar.tsx +9 -7
  261. package/src/components/ui/native-select.tsx +1 -1
  262. package/src/components/ui/navigation-menu.tsx +2 -2
  263. package/src/components/ui/plugin-safety-disclaimer.tsx +1 -1
  264. package/src/components/ui/popover.tsx +4 -2
  265. package/src/components/ui/select.tsx +5 -3
  266. package/src/components/ui/sheet.tsx +4 -2
  267. package/src/components/ui/sidebar.tsx +5 -5
  268. package/src/components/ui/table.tsx +2 -2
  269. package/src/components/ui/tabs.tsx +1 -1
  270. package/src/components/ui/textarea.tsx +1 -1
  271. package/src/components/ui/toggle.tsx +1 -1
  272. package/src/components/ui/tooltip.tsx +3 -1
  273. package/src/index.ts +2 -0
  274. package/src/plugin-style-scope-context.ts +21 -0
  275. package/src/plugin-style-scope.test.tsx +38 -0
  276. package/src/plugin-style-scope.tsx +35 -0
  277. package/src/styles/globals.css +22 -3
  278. package/src/styles/plugin-theme.css +80 -0
  279. package/src/styles/plugin.css +14 -2
@@ -5,6 +5,7 @@ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
5
5
  import { ContextMenu as ContextMenuPrimitive } from "radix-ui"
6
6
 
7
7
  import { cn } from "../../lib/utils"
8
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
8
9
 
9
10
  function ContextMenu({
10
11
  ...props
@@ -31,8 +32,9 @@ function ContextMenuGroup({
31
32
  function ContextMenuPortal({
32
33
  ...props
33
34
  }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {
35
+ const container = usePluginPortalContainer()
34
36
  return (
35
- <ContextMenuPrimitive.Portal data-slot="context-menu-portal" {...props} />
37
+ <ContextMenuPrimitive.Portal data-slot="context-menu-portal" container={container} {...props} />
36
38
  )
37
39
  }
38
40
 
@@ -66,7 +68,7 @@ function ContextMenuSubTrigger({
66
68
  data-slot="context-menu-sub-trigger"
67
69
  data-inset={inset}
68
70
  className={cn(
69
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
71
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-base outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
70
72
  className
71
73
  )}
72
74
  {...props}
@@ -97,8 +99,9 @@ function ContextMenuContent({
97
99
  className,
98
100
  ...props
99
101
  }: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {
102
+ const container = usePluginPortalContainer()
100
103
  return (
101
- <ContextMenuPrimitive.Portal>
104
+ <ContextMenuPrimitive.Portal container={container}>
102
105
  <ContextMenuPrimitive.Content
103
106
  data-slot="context-menu-content"
104
107
  className={cn(
@@ -126,7 +129,7 @@ function ContextMenuItem({
126
129
  data-inset={inset}
127
130
  data-variant={variant}
128
131
  className={cn(
129
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-3 py-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
132
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-3 py-2 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
130
133
  className
131
134
  )}
132
135
  {...props}
@@ -144,7 +147,7 @@ function ContextMenuCheckboxItem({
144
147
  <ContextMenuPrimitive.CheckboxItem
145
148
  data-slot="context-menu-checkbox-item"
146
149
  className={cn(
147
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
150
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
148
151
  className
149
152
  )}
150
153
  checked={checked}
@@ -169,7 +172,7 @@ function ContextMenuRadioItem({
169
172
  <ContextMenuPrimitive.RadioItem
170
173
  data-slot="context-menu-radio-item"
171
174
  className={cn(
172
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
175
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
173
176
  className
174
177
  )}
175
178
  {...props}
@@ -196,7 +199,7 @@ function ContextMenuLabel({
196
199
  data-slot="context-menu-label"
197
200
  data-inset={inset}
198
201
  className={cn(
199
- "text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
202
+ "text-foreground px-2 py-1.5 text-base font-medium data-[inset]:pl-8",
200
203
  className
201
204
  )}
202
205
  {...props}
@@ -5,6 +5,7 @@ import { XIcon } from "lucide-react"
5
5
  import { Dialog as DialogPrimitive } from "radix-ui"
6
6
 
7
7
  import { cn } from "../../lib/utils"
8
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
8
9
  import { Button } from "./button"
9
10
 
10
11
  function Dialog({
@@ -22,7 +23,8 @@ function DialogTrigger({
22
23
  function DialogPortal({
23
24
  ...props
24
25
  }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
25
- return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />
26
+ const container = usePluginPortalContainer()
27
+ return <DialogPrimitive.Portal data-slot="dialog-portal" container={container} {...props} />
26
28
  }
27
29
 
28
30
  function DialogClose({
@@ -138,7 +140,7 @@ function DialogDescription({
138
140
  return (
139
141
  <DialogPrimitive.Description
140
142
  data-slot="dialog-description"
141
- className={cn("text-muted-foreground text-sm", className)}
143
+ className={cn("text-muted-foreground text-base", className)}
142
144
  {...props}
143
145
  />
144
146
  )
@@ -2,6 +2,7 @@ import * as React from "react"
2
2
  import { Drawer as DrawerPrimitive } from "vaul"
3
3
 
4
4
  import { cn } from "../../lib/utils"
5
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
5
6
 
6
7
  function Drawer({
7
8
  ...props
@@ -18,7 +19,8 @@ function DrawerTrigger({
18
19
  function DrawerPortal({
19
20
  ...props
20
21
  }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {
21
- return <DrawerPrimitive.Portal data-slot="drawer-portal" {...props} />
22
+ const container = usePluginPortalContainer()
23
+ return <DrawerPrimitive.Portal data-slot="drawer-portal" container={container} {...props} />
22
24
  }
23
25
 
24
26
  function DrawerClose({
@@ -113,7 +115,7 @@ function DrawerDescription({
113
115
  return (
114
116
  <DrawerPrimitive.Description
115
117
  data-slot="drawer-description"
116
- className={cn("text-muted-foreground text-sm", className)}
118
+ className={cn("text-muted-foreground text-base", className)}
117
119
  {...props}
118
120
  />
119
121
  )
@@ -5,6 +5,7 @@ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
5
5
  import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
6
6
 
7
7
  import { cn } from "../../lib/utils"
8
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
8
9
 
9
10
  function DropdownMenu({
10
11
  ...props
@@ -15,8 +16,9 @@ function DropdownMenu({
15
16
  function DropdownMenuPortal({
16
17
  ...props
17
18
  }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
19
+ const container = usePluginPortalContainer()
18
20
  return (
19
- <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
21
+ <DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" container={container} {...props} />
20
22
  )
21
23
  }
22
24
 
@@ -36,8 +38,9 @@ function DropdownMenuContent({
36
38
  sideOffset = 4,
37
39
  ...props
38
40
  }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {
41
+ const container = usePluginPortalContainer()
39
42
  return (
40
- <DropdownMenuPrimitive.Portal>
43
+ <DropdownMenuPrimitive.Portal container={container}>
41
44
  <DropdownMenuPrimitive.Content
42
45
  data-slot="dropdown-menu-content"
43
46
  sideOffset={sideOffset}
@@ -74,7 +77,7 @@ function DropdownMenuItem({
74
77
  data-inset={inset}
75
78
  data-variant={variant}
76
79
  className={cn(
77
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
80
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
78
81
  className
79
82
  )}
80
83
  {...props}
@@ -92,7 +95,7 @@ function DropdownMenuCheckboxItem({
92
95
  <DropdownMenuPrimitive.CheckboxItem
93
96
  data-slot="dropdown-menu-checkbox-item"
94
97
  className={cn(
95
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
98
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
96
99
  className
97
100
  )}
98
101
  checked={checked}
@@ -128,7 +131,7 @@ function DropdownMenuRadioItem({
128
131
  <DropdownMenuPrimitive.RadioItem
129
132
  data-slot="dropdown-menu-radio-item"
130
133
  className={cn(
131
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
134
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
132
135
  className
133
136
  )}
134
137
  {...props}
@@ -155,7 +158,7 @@ function DropdownMenuLabel({
155
158
  data-slot="dropdown-menu-label"
156
159
  data-inset={inset}
157
160
  className={cn(
158
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
161
+ "px-2 py-1.5 text-base font-medium data-[inset]:pl-8",
159
162
  className
160
163
  )}
161
164
  {...props}
@@ -211,7 +214,7 @@ function DropdownMenuSubTrigger({
211
214
  data-slot="dropdown-menu-sub-trigger"
212
215
  data-inset={inset}
213
216
  className={cn(
214
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
217
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-base outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
215
218
  className
216
219
  )}
217
220
  {...props}
@@ -73,7 +73,7 @@ function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) {
73
73
  <div
74
74
  data-slot="empty-description"
75
75
  className={cn(
76
- "text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
76
+ "text-muted-foreground [&>a:hover]:text-primary text-base/relaxed [&>a]:underline [&>a]:underline-offset-4",
77
77
  className
78
78
  )}
79
79
  {...props}
@@ -86,7 +86,7 @@ function EmptyContent({ className, ...props }: React.ComponentProps<"div">) {
86
86
  <div
87
87
  data-slot="empty-content"
88
88
  className={cn(
89
- "flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance",
89
+ "flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-base text-balance",
90
90
  className
91
91
  )}
92
92
  {...props}
@@ -33,7 +33,7 @@ function FieldLegend({
33
33
  className={cn(
34
34
  "mb-3 font-medium",
35
35
  "data-[variant=legend]:text-base",
36
- "data-[variant=label]:text-sm",
36
+ "data-[variant=label]:text-base",
37
37
  className
38
38
  )}
39
39
  {...props}
@@ -130,7 +130,7 @@ function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
130
130
  <div
131
131
  data-slot="field-label"
132
132
  className={cn(
133
- "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
133
+ "flex w-fit items-center gap-2 text-base leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
134
134
  className
135
135
  )}
136
136
  {...props}
@@ -143,7 +143,7 @@ function FieldDescription({ className, ...props }: React.ComponentProps<"p">) {
143
143
  <p
144
144
  data-slot="field-description"
145
145
  className={cn(
146
- "text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
146
+ "text-muted-foreground text-base leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
147
147
  "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5",
148
148
  "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
149
149
  className
@@ -165,7 +165,7 @@ function FieldSeparator({
165
165
  data-slot="field-separator"
166
166
  data-content={!!children}
167
167
  className={cn(
168
- "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
168
+ "relative -my-2 h-5 text-base group-data-[variant=outline]/field-group:-mb-2",
169
169
  className
170
170
  )}
171
171
  {...props}
@@ -226,7 +226,7 @@ function FieldError({
226
226
  <div
227
227
  role="alert"
228
228
  data-slot="field-error"
229
- className={cn("text-destructive text-sm font-normal", className)}
229
+ className={cn("text-destructive text-base font-normal", className)}
230
230
  {...props}
231
231
  >
232
232
  {content}
@@ -127,7 +127,7 @@ function FormDescription({ className, ...props }: React.ComponentProps<"p">) {
127
127
  <p
128
128
  data-slot="form-description"
129
129
  id={formDescriptionId}
130
- className={cn("text-muted-foreground text-sm", className)}
130
+ className={cn("text-muted-foreground text-base", className)}
131
131
  {...props}
132
132
  />
133
133
  )
@@ -145,7 +145,7 @@ function FormMessage({ className, ...props }: React.ComponentProps<"p">) {
145
145
  <p
146
146
  data-slot="form-message"
147
147
  id={formMessageId}
148
- className={cn("text-destructive text-sm", className)}
148
+ className={cn("text-destructive text-base", className)}
149
149
  {...props}
150
150
  >
151
151
  {body}
@@ -2,6 +2,7 @@ import * as React from "react"
2
2
  import { HoverCard as HoverCardPrimitive } from "radix-ui"
3
3
 
4
4
  import { cn } from "../../lib/utils"
5
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
5
6
 
6
7
  function HoverCard({
7
8
  ...props
@@ -23,8 +24,9 @@ function HoverCardContent({
23
24
  sideOffset = 4,
24
25
  ...props
25
26
  }: React.ComponentProps<typeof HoverCardPrimitive.Content>) {
27
+ const container = usePluginPortalContainer()
26
28
  return (
27
- <HoverCardPrimitive.Portal data-slot="hover-card-portal">
29
+ <HoverCardPrimitive.Portal data-slot="hover-card-portal" container={container}>
28
30
  <HoverCardPrimitive.Content
29
31
  data-slot="hover-card-content"
30
32
  align={align}
@@ -35,7 +35,7 @@ function InputGroup({ className, ...props }: React.ComponentProps<"div">) {
35
35
  }
36
36
 
37
37
  const inputGroupAddonVariants = cva(
38
- "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",
38
+ "text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-base font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",
39
39
  {
40
40
  variants: {
41
41
  align: {
@@ -78,7 +78,7 @@ function InputGroupAddon({
78
78
  }
79
79
 
80
80
  const inputGroupButtonVariants = cva(
81
- "text-sm shadow-none flex gap-2 items-center",
81
+ "text-base shadow-none flex gap-2 items-center",
82
82
  {
83
83
  variants: {
84
84
  size: {
@@ -118,7 +118,7 @@ function InputGroupText({ className, ...props }: React.ComponentProps<"span">) {
118
118
  return (
119
119
  <span
120
120
  className={cn(
121
- "text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
121
+ "text-muted-foreground flex items-center gap-2 text-base [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
122
122
  className
123
123
  )}
124
124
  {...props}
@@ -51,7 +51,7 @@ function InputOTPSlot({
51
51
  data-slot="input-otp-slot"
52
52
  data-active={isActive}
53
53
  className={cn(
54
- "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex size-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
54
+ "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex size-9 items-center justify-center border-y border-r text-base shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
55
55
  className
56
56
  )}
57
57
  {...props}
@@ -10,7 +10,7 @@ function Input({ className, type, placeholder, "aria-label": ariaLabel, ...props
10
10
  type={type}
11
11
  data-slot="input"
12
12
  className={cn(
13
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
13
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-base file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-base",
14
14
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
15
15
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
16
16
  className
@@ -31,7 +31,7 @@ function ItemSeparator({
31
31
  }
32
32
 
33
33
  const itemVariants = cva(
34
- "group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
34
+ "group/item flex items-center border border-transparent text-base rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
35
35
  {
36
36
  variants: {
37
37
  variant: {
@@ -121,7 +121,7 @@ function ItemTitle({ className, ...props }: React.ComponentProps<"div">) {
121
121
  <div
122
122
  data-slot="item-title"
123
123
  className={cn(
124
- "flex w-fit items-center gap-2 text-sm leading-snug font-medium",
124
+ "flex w-fit items-center gap-2 text-base leading-snug font-medium",
125
125
  className
126
126
  )}
127
127
  {...props}
@@ -134,7 +134,7 @@ function ItemDescription({ className, ...props }: React.ComponentProps<"p">) {
134
134
  <p
135
135
  data-slot="item-description"
136
136
  className={cn(
137
- "text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance",
137
+ "text-muted-foreground line-clamp-2 text-base leading-normal font-normal text-balance",
138
138
  "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
139
139
  className
140
140
  )}
@@ -11,7 +11,7 @@ function Label({
11
11
  <LabelPrimitive.Root
12
12
  data-slot="label"
13
13
  className={cn(
14
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
14
+ "flex items-center gap-2 text-base leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
15
15
  className
16
16
  )}
17
17
  {...props}
@@ -5,6 +5,7 @@ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react"
5
5
  import { Menubar as MenubarPrimitive } from "radix-ui"
6
6
 
7
7
  import { cn } from "../../lib/utils"
8
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
8
9
 
9
10
  function Menubar({
10
11
  className,
@@ -37,7 +38,8 @@ function MenubarGroup({
37
38
  function MenubarPortal({
38
39
  ...props
39
40
  }: React.ComponentProps<typeof MenubarPrimitive.Portal>) {
40
- return <MenubarPrimitive.Portal data-slot="menubar-portal" {...props} />
41
+ const container = usePluginPortalContainer()
42
+ return <MenubarPrimitive.Portal data-slot="menubar-portal" container={container} {...props} />
41
43
  }
42
44
 
43
45
  function MenubarRadioGroup({
@@ -56,7 +58,7 @@ function MenubarTrigger({
56
58
  <MenubarPrimitive.Trigger
57
59
  data-slot="menubar-trigger"
58
60
  className={cn(
59
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
61
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-base font-medium outline-hidden select-none",
60
62
  className
61
63
  )}
62
64
  {...props}
@@ -103,7 +105,7 @@ function MenubarItem({
103
105
  data-inset={inset}
104
106
  data-variant={variant}
105
107
  className={cn(
106
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
108
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
107
109
  className
108
110
  )}
109
111
  {...props}
@@ -121,7 +123,7 @@ function MenubarCheckboxItem({
121
123
  <MenubarPrimitive.CheckboxItem
122
124
  data-slot="menubar-checkbox-item"
123
125
  className={cn(
124
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
126
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
125
127
  className
126
128
  )}
127
129
  checked={checked}
@@ -146,7 +148,7 @@ function MenubarRadioItem({
146
148
  <MenubarPrimitive.RadioItem
147
149
  data-slot="menubar-radio-item"
148
150
  className={cn(
149
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
151
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
150
152
  className
151
153
  )}
152
154
  {...props}
@@ -173,7 +175,7 @@ function MenubarLabel({
173
175
  data-slot="menubar-label"
174
176
  data-inset={inset}
175
177
  className={cn(
176
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
178
+ "px-2 py-1.5 text-base font-medium data-[inset]:pl-8",
177
179
  className
178
180
  )}
179
181
  {...props}
@@ -229,7 +231,7 @@ function MenubarSubTrigger({
229
231
  data-slot="menubar-sub-trigger"
230
232
  data-inset={inset}
231
233
  className={cn(
232
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
234
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-base outline-none select-none data-[inset]:pl-8",
233
235
  className
234
236
  )}
235
237
  {...props}
@@ -19,7 +19,7 @@ function NativeSelect({
19
19
  data-slot="native-select"
20
20
  data-size={size}
21
21
  className={cn(
22
- "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1",
22
+ "border-input placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 dark:hover:bg-input/50 h-9 w-full min-w-0 appearance-none rounded-md border bg-transparent px-3 py-2 pr-9 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1",
23
23
  "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
24
24
  "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
25
25
  className
@@ -59,7 +59,7 @@ function NavigationMenuItem({
59
59
  }
60
60
 
61
61
  const navigationMenuTriggerStyle = cva(
62
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
62
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-base font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
63
63
  )
64
64
 
65
65
  function NavigationMenuTrigger({
@@ -129,7 +129,7 @@ function NavigationMenuLink({
129
129
  <NavigationMenuPrimitive.Link
130
130
  data-slot="navigation-menu-link"
131
131
  className={cn(
132
- "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
132
+ "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-base transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
133
133
  className
134
134
  )}
135
135
  {...props}
@@ -10,7 +10,7 @@ export function PluginSafetyDisclaimer({ className }: PluginSafetyDisclaimerProp
10
10
  <div
11
11
  role="note"
12
12
  className={cn(
13
- 'flex shrink-0 items-start gap-2 border-t border-status-warning-border bg-status-warning-faint px-4 py-2.5 text-[11px] leading-5 text-[var(--text-secondary)]',
13
+ 'flex shrink-0 items-start gap-2 border-t border-status-warning-border bg-status-warning-faint px-4 py-2.5 text-sm leading-5 text-[var(--text-secondary)]',
14
14
  className,
15
15
  )}
16
16
  >
@@ -2,6 +2,7 @@ import * as React from "react"
2
2
  import { Popover as PopoverPrimitive } from "radix-ui"
3
3
 
4
4
  import { cn } from "../../lib/utils"
5
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
5
6
 
6
7
  function Popover({
7
8
  ...props
@@ -21,8 +22,9 @@ function PopoverContent({
21
22
  sideOffset = 4,
22
23
  ...props
23
24
  }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
25
+ const container = usePluginPortalContainer()
24
26
  return (
25
- <PopoverPrimitive.Portal>
27
+ <PopoverPrimitive.Portal container={container}>
26
28
  <PopoverPrimitive.Content
27
29
  data-slot="popover-content"
28
30
  align={align}
@@ -47,7 +49,7 @@ function PopoverHeader({ className, ...props }: React.ComponentProps<"div">) {
47
49
  return (
48
50
  <div
49
51
  data-slot="popover-header"
50
- className={cn("flex flex-col gap-1 text-sm", className)}
52
+ className={cn("flex flex-col gap-1 text-base", className)}
51
53
  {...props}
52
54
  />
53
55
  )
@@ -5,6 +5,7 @@ import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react"
5
5
  import { Select as SelectPrimitive } from "radix-ui"
6
6
 
7
7
  import { cn } from "../../lib/utils"
8
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
8
9
 
9
10
  function Select({
10
11
  ...props
@@ -37,7 +38,7 @@ function SelectTrigger({
37
38
  data-slot="select-trigger"
38
39
  data-size={size}
39
40
  className={cn(
40
- "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
41
+ "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-base whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
41
42
  className
42
43
  )}
43
44
  {...props}
@@ -57,8 +58,9 @@ function SelectContent({
57
58
  align = "center",
58
59
  ...props
59
60
  }: React.ComponentProps<typeof SelectPrimitive.Content>) {
61
+ const container = usePluginPortalContainer()
60
62
  return (
61
- <SelectPrimitive.Portal>
63
+ <SelectPrimitive.Portal container={container}>
62
64
  <SelectPrimitive.Content
63
65
  data-slot="select-content"
64
66
  className={cn(
@@ -109,7 +111,7 @@ function SelectItem({
109
111
  <SelectPrimitive.Item
110
112
  data-slot="select-item"
111
113
  className={cn(
112
- "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
114
+ "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-base outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
113
115
  className
114
116
  )}
115
117
  {...props}
@@ -5,6 +5,7 @@ import { XIcon } from "lucide-react"
5
5
  import { Dialog as SheetPrimitive } from "radix-ui"
6
6
 
7
7
  import { cn } from "../../lib/utils"
8
+ import { usePluginPortalContainer } from "../../plugin-style-scope-context"
8
9
 
9
10
  function Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {
10
11
  return <SheetPrimitive.Root data-slot="sheet" {...props} />
@@ -25,7 +26,8 @@ function SheetClose({
25
26
  function SheetPortal({
26
27
  ...props
27
28
  }: React.ComponentProps<typeof SheetPrimitive.Portal>) {
28
- return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />
29
+ const container = usePluginPortalContainer()
30
+ return <SheetPrimitive.Portal data-slot="sheet-portal" container={container} {...props} />
29
31
  }
30
32
 
31
33
  function SheetOverlay({
@@ -127,7 +129,7 @@ function SheetDescription({
127
129
  return (
128
130
  <SheetPrimitive.Description
129
131
  data-slot="sheet-description"
130
- className={cn("text-muted-foreground text-sm", className)}
132
+ className={cn("text-muted-foreground text-base", className)}
131
133
  {...props}
132
134
  />
133
135
  )