@databricks/appkit-ui 0.11.2 → 0.12.1

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 (447) hide show
  1. package/CLAUDE.md +155 -143
  2. package/NOTICE.md +1 -0
  3. package/dist/cli/commands/docs.js +80 -17
  4. package/dist/cli/commands/docs.js.map +1 -1
  5. package/dist/react/charts/area/index.d.ts +2 -2
  6. package/dist/react/charts/bar/index.d.ts +2 -2
  7. package/dist/react/charts/base.d.ts +2 -2
  8. package/dist/react/charts/base.d.ts.map +1 -1
  9. package/dist/react/charts/base.js.map +1 -1
  10. package/dist/react/charts/chart-error-boundary.js.map +1 -1
  11. package/dist/react/charts/create-chart.d.ts +2 -2
  12. package/dist/react/charts/create-chart.d.ts.map +1 -1
  13. package/dist/react/charts/create-chart.js.map +1 -1
  14. package/dist/react/charts/empty.js.map +1 -1
  15. package/dist/react/charts/error.js.map +1 -1
  16. package/dist/react/charts/heatmap/index.d.ts +2 -2
  17. package/dist/react/charts/line/index.d.ts +2 -2
  18. package/dist/react/charts/loading.js.map +1 -1
  19. package/dist/react/charts/options.d.ts.map +1 -1
  20. package/dist/react/charts/pie/index.d.ts +3 -3
  21. package/dist/react/charts/radar/index.d.ts +2 -2
  22. package/dist/react/charts/scatter/index.d.ts +2 -2
  23. package/dist/react/charts/wrapper.d.ts +2 -2
  24. package/dist/react/charts/wrapper.d.ts.map +1 -1
  25. package/dist/react/charts/wrapper.js.map +1 -1
  26. package/dist/react/genie/genie-chat-input.d.ts +23 -0
  27. package/dist/react/genie/genie-chat-input.d.ts.map +1 -0
  28. package/dist/react/genie/genie-chat-input.js +58 -0
  29. package/dist/react/genie/genie-chat-input.js.map +1 -0
  30. package/dist/react/genie/genie-chat-message-list.d.ts +21 -0
  31. package/dist/react/genie/genie-chat-message-list.d.ts.map +1 -0
  32. package/dist/react/genie/genie-chat-message-list.js +64 -0
  33. package/dist/react/genie/genie-chat-message-list.js.map +1 -0
  34. package/dist/react/genie/genie-chat-message.d.ts +18 -0
  35. package/dist/react/genie/genie-chat-message.d.ts.map +1 -0
  36. package/dist/react/genie/genie-chat-message.js +71 -0
  37. package/dist/react/genie/genie-chat-message.js.map +1 -0
  38. package/dist/react/genie/genie-chat.d.ts +14 -0
  39. package/dist/react/genie/genie-chat.d.ts.map +1 -0
  40. package/dist/react/genie/genie-chat.js +47 -0
  41. package/dist/react/genie/genie-chat.js.map +1 -0
  42. package/dist/react/genie/index.js +5 -0
  43. package/dist/react/genie/types.d.ts +44 -0
  44. package/dist/react/genie/types.d.ts.map +1 -0
  45. package/dist/react/genie/use-genie-chat.d.ts +17 -0
  46. package/dist/react/genie/use-genie-chat.d.ts.map +1 -0
  47. package/dist/react/genie/use-genie-chat.js +254 -0
  48. package/dist/react/genie/use-genie-chat.js.map +1 -0
  49. package/dist/react/index.d.ts +8 -1
  50. package/dist/react/index.js +14 -8
  51. package/dist/react/portal-container-context.js.map +1 -1
  52. package/dist/react/table/data-table.js +2 -2
  53. package/dist/react/table/data-table.js.map +1 -1
  54. package/dist/react/table/empty.js.map +1 -1
  55. package/dist/react/table/error.js.map +1 -1
  56. package/dist/react/table/loading.js.map +1 -1
  57. package/dist/react/table/table-wrapper.js +2 -2
  58. package/dist/react/table/table-wrapper.js.map +1 -1
  59. package/dist/react/ui/accordion.d.ts +5 -5
  60. package/dist/react/ui/accordion.d.ts.map +1 -1
  61. package/dist/react/ui/accordion.js.map +1 -1
  62. package/dist/react/ui/alert-dialog.d.ts +12 -12
  63. package/dist/react/ui/alert-dialog.js +1 -1
  64. package/dist/react/ui/alert-dialog.js.map +1 -1
  65. package/dist/react/ui/alert.d.ts +4 -4
  66. package/dist/react/ui/alert.d.ts.map +1 -1
  67. package/dist/react/ui/alert.js.map +1 -1
  68. package/dist/react/ui/aspect-ratio.d.ts +2 -2
  69. package/dist/react/ui/aspect-ratio.js.map +1 -1
  70. package/dist/react/ui/avatar.d.ts +4 -4
  71. package/dist/react/ui/avatar.js.map +1 -1
  72. package/dist/react/ui/badge.d.ts +4 -4
  73. package/dist/react/ui/badge.js.map +1 -1
  74. package/dist/react/ui/breadcrumb.d.ts +8 -8
  75. package/dist/react/ui/breadcrumb.js +1 -1
  76. package/dist/react/ui/breadcrumb.js.map +1 -1
  77. package/dist/react/ui/button-group.d.ts +6 -6
  78. package/dist/react/ui/button-group.js.map +1 -1
  79. package/dist/react/ui/button.d.ts +4 -4
  80. package/dist/react/ui/button.js.map +1 -1
  81. package/dist/react/ui/calendar.d.ts +3 -3
  82. package/dist/react/ui/calendar.js.map +1 -1
  83. package/dist/react/ui/card.d.ts +8 -8
  84. package/dist/react/ui/card.js.map +1 -1
  85. package/dist/react/ui/carousel.d.ts +6 -6
  86. package/dist/react/ui/carousel.js.map +1 -1
  87. package/dist/react/ui/chart.d.ts +5 -5
  88. package/dist/react/ui/chart.js.map +1 -1
  89. package/dist/react/ui/checkbox.d.ts +2 -2
  90. package/dist/react/ui/checkbox.js.map +1 -1
  91. package/dist/react/ui/collapsible.d.ts +4 -4
  92. package/dist/react/ui/collapsible.js.map +1 -1
  93. package/dist/react/ui/command.d.ts +10 -10
  94. package/dist/react/ui/command.js.map +1 -1
  95. package/dist/react/ui/context-menu.d.ts +16 -16
  96. package/dist/react/ui/context-menu.js.map +1 -1
  97. package/dist/react/ui/dialog.d.ts +11 -11
  98. package/dist/react/ui/dialog.d.ts.map +1 -1
  99. package/dist/react/ui/dialog.js.map +1 -1
  100. package/dist/react/ui/drawer.d.ts +11 -11
  101. package/dist/react/ui/drawer.js.map +1 -1
  102. package/dist/react/ui/dropdown-menu.d.ts +16 -16
  103. package/dist/react/ui/dropdown-menu.js.map +1 -1
  104. package/dist/react/ui/empty.d.ts +7 -7
  105. package/dist/react/ui/empty.js.map +1 -1
  106. package/dist/react/ui/field.d.ts +11 -11
  107. package/dist/react/ui/field.js.map +1 -1
  108. package/dist/react/ui/form.d.ts +7 -7
  109. package/dist/react/ui/form.js.map +1 -1
  110. package/dist/react/ui/hover-card.d.ts +4 -4
  111. package/dist/react/ui/hover-card.js.map +1 -1
  112. package/dist/react/ui/index.js +5 -5
  113. package/dist/react/ui/input-group.d.ts +7 -7
  114. package/dist/react/ui/input-group.js.map +1 -1
  115. package/dist/react/ui/input-otp.d.ts +5 -5
  116. package/dist/react/ui/input-otp.js.map +1 -1
  117. package/dist/react/ui/input.d.ts +2 -2
  118. package/dist/react/ui/input.js.map +1 -1
  119. package/dist/react/ui/item.d.ts +11 -11
  120. package/dist/react/ui/item.js.map +1 -1
  121. package/dist/react/ui/kbd.d.ts +3 -3
  122. package/dist/react/ui/kbd.js.map +1 -1
  123. package/dist/react/ui/label.d.ts +2 -2
  124. package/dist/react/ui/label.js.map +1 -1
  125. package/dist/react/ui/menubar.d.ts +17 -17
  126. package/dist/react/ui/menubar.js.map +1 -1
  127. package/dist/react/ui/navigation-menu.d.ts +9 -9
  128. package/dist/react/ui/navigation-menu.js +1 -1
  129. package/dist/react/ui/navigation-menu.js.map +1 -1
  130. package/dist/react/ui/pagination.d.ts +8 -8
  131. package/dist/react/ui/pagination.js.map +1 -1
  132. package/dist/react/ui/popover.d.ts +5 -5
  133. package/dist/react/ui/popover.js.map +1 -1
  134. package/dist/react/ui/progress.d.ts +2 -2
  135. package/dist/react/ui/progress.js.map +1 -1
  136. package/dist/react/ui/radio-group.d.ts +3 -3
  137. package/dist/react/ui/radio-group.js.map +1 -1
  138. package/dist/react/ui/resizable.d.ts +4 -4
  139. package/dist/react/ui/resizable.js.map +1 -1
  140. package/dist/react/ui/scroll-area.d.ts +3 -3
  141. package/dist/react/ui/scroll-area.js.map +1 -1
  142. package/dist/react/ui/select.d.ts +11 -11
  143. package/dist/react/ui/select.js.map +1 -1
  144. package/dist/react/ui/separator.d.ts +2 -2
  145. package/dist/react/ui/separator.js.map +1 -1
  146. package/dist/react/ui/sheet.d.ts +9 -9
  147. package/dist/react/ui/sheet.js.map +1 -1
  148. package/dist/react/ui/sidebar.d.ts +24 -24
  149. package/dist/react/ui/sidebar.js +2 -2
  150. package/dist/react/ui/sidebar.js.map +1 -1
  151. package/dist/react/ui/skeleton.d.ts +2 -2
  152. package/dist/react/ui/skeleton.js.map +1 -1
  153. package/dist/react/ui/slider.d.ts +2 -2
  154. package/dist/react/ui/slider.js.map +1 -1
  155. package/dist/react/ui/sonner.d.ts +2 -2
  156. package/dist/react/ui/sonner.js.map +1 -1
  157. package/dist/react/ui/spinner.d.ts +2 -2
  158. package/dist/react/ui/spinner.js.map +1 -1
  159. package/dist/react/ui/switch.d.ts +2 -2
  160. package/dist/react/ui/switch.js.map +1 -1
  161. package/dist/react/ui/table.d.ts +9 -9
  162. package/dist/react/ui/table.js.map +1 -1
  163. package/dist/react/ui/tabs.d.ts +5 -5
  164. package/dist/react/ui/tabs.js.map +1 -1
  165. package/dist/react/ui/textarea.d.ts +2 -2
  166. package/dist/react/ui/textarea.js.map +1 -1
  167. package/dist/react/ui/toggle-group.d.ts +3 -3
  168. package/dist/react/ui/toggle-group.js.map +1 -1
  169. package/dist/react/ui/toggle.d.ts +2 -2
  170. package/dist/react/ui/toggle.js.map +1 -1
  171. package/dist/react/ui/tooltip.d.ts +5 -5
  172. package/dist/react/ui/tooltip.d.ts.map +1 -1
  173. package/dist/react/ui/tooltip.js.map +1 -1
  174. package/dist/shared/src/genie.d.ts +48 -0
  175. package/dist/shared/src/genie.d.ts.map +1 -0
  176. package/docs/{docs/api → api}/appkit/Class.AppKitError.md +8 -8
  177. package/docs/{docs/api → api}/appkit/Class.AuthenticationError.md +9 -9
  178. package/docs/{docs/api → api}/appkit/Class.ConfigurationError.md +9 -9
  179. package/docs/{docs/api → api}/appkit/Class.ConnectionError.md +9 -9
  180. package/docs/{docs/api → api}/appkit/Class.ExecutionError.md +9 -9
  181. package/docs/{docs/api → api}/appkit/Class.InitializationError.md +9 -9
  182. package/docs/{docs/api → api}/appkit/Class.Plugin.md +2 -2
  183. package/docs/{docs/api → api}/appkit/Class.ResourceRegistry.md +11 -11
  184. package/docs/{docs/api → api}/appkit/Class.ServerError.md +9 -9
  185. package/docs/{docs/api → api}/appkit/Class.TunnelError.md +9 -9
  186. package/docs/{docs/api → api}/appkit/Class.ValidationError.md +9 -9
  187. package/docs/{docs/api → api}/appkit/Function.createApp.md +3 -3
  188. package/docs/{docs/api → api}/appkit/Function.createLakebasePool.md +1 -1
  189. package/docs/{docs/api → api}/appkit/Function.generateDatabaseCredential.md +2 -2
  190. package/docs/{docs/api → api}/appkit/Function.getLakebaseOrmConfig.md +1 -1
  191. package/docs/{docs/api → api}/appkit/Function.getLakebasePgConfig.md +1 -1
  192. package/docs/{docs/api → api}/appkit/Function.getPluginManifest.md +1 -1
  193. package/docs/{docs/api → api}/appkit/Function.getUsernameWithApiLookup.md +1 -1
  194. package/docs/{docs/api → api}/appkit/Function.getWorkspaceClient.md +1 -1
  195. package/docs/{docs/api → api}/appkit/Interface.ResourceEntry.md +8 -8
  196. package/docs/{docs/api → api}/appkit/Interface.ResourceRequirement.md +1 -1
  197. package/docs/api/appkit-ui/genie/GenieChat.md +43 -0
  198. package/docs/api/appkit-ui/genie/GenieChatInput.md +27 -0
  199. package/docs/api/appkit-ui/genie/GenieChatMessage.md +25 -0
  200. package/docs/api/appkit-ui/genie/GenieChatMessageList.md +26 -0
  201. package/docs/{docs/api → api}/appkit-ui/styling.md +1 -1
  202. package/docs/api/appkit.md +78 -0
  203. package/docs/{docs/api.md → api.md} +4 -4
  204. package/docs/{docs/app-management.md → app-management.md} +2 -2
  205. package/docs/{docs/architecture.md → architecture.md} +6 -6
  206. package/docs/{docs/configuration.md → configuration.md} +2 -2
  207. package/docs/{docs/development → development}/ai-assisted-development.md +5 -3
  208. package/docs/{docs/development → development}/llm-guide.md +7 -6
  209. package/docs/{docs/development → development}/local-development.md +2 -2
  210. package/docs/{docs/development → development}/project-setup.md +3 -3
  211. package/docs/{docs/development → development}/remote-bridge.md +1 -1
  212. package/docs/{docs/development → development}/type-generation.md +2 -2
  213. package/docs/development.md +22 -0
  214. package/docs/{docs/plugins → plugins}/analytics.md +1 -1
  215. package/docs/{docs/plugins → plugins}/custom-plugins.md +6 -6
  216. package/docs/{docs/plugins → plugins}/lakebase.md +25 -24
  217. package/docs/{docs/plugins.md → plugins.md} +2 -2
  218. package/{docs/docs.md → docs.md} +4 -4
  219. package/llms.txt +155 -143
  220. package/package.json +3 -1
  221. package/docs/docs/api/appkit/Class.AppKitError/index.html +0 -79
  222. package/docs/docs/api/appkit/Class.AuthenticationError/index.html +0 -110
  223. package/docs/docs/api/appkit/Class.ConfigurationError/index.html +0 -112
  224. package/docs/docs/api/appkit/Class.ConnectionError/index.html +0 -120
  225. package/docs/docs/api/appkit/Class.ExecutionError/index.html +0 -116
  226. package/docs/docs/api/appkit/Class.InitializationError/index.html +0 -104
  227. package/docs/docs/api/appkit/Class.Plugin/index.html +0 -168
  228. package/docs/docs/api/appkit/Class.ResourceRegistry/index.html +0 -150
  229. package/docs/docs/api/appkit/Class.ServerError/index.html +0 -108
  230. package/docs/docs/api/appkit/Class.TunnelError/index.html +0 -108
  231. package/docs/docs/api/appkit/Class.ValidationError/index.html +0 -106
  232. package/docs/docs/api/appkit/Enumeration.RequestedClaimsPermissionSet/index.html +0 -21
  233. package/docs/docs/api/appkit/Enumeration.ResourceType/index.html +0 -53
  234. package/docs/docs/api/appkit/Function.appKitTypesPlugin/index.html +0 -24
  235. package/docs/docs/api/appkit/Function.createApp/index.html +0 -24
  236. package/docs/docs/api/appkit/Function.createLakebasePool/index.html +0 -24
  237. package/docs/docs/api/appkit/Function.generateDatabaseCredential/index.html +0 -30
  238. package/docs/docs/api/appkit/Function.getExecutionContext/index.html +0 -26
  239. package/docs/docs/api/appkit/Function.getLakebaseOrmConfig/index.html +0 -39
  240. package/docs/docs/api/appkit/Function.getLakebasePgConfig/index.html +0 -27
  241. package/docs/docs/api/appkit/Function.getPluginManifest/index.html +0 -26
  242. package/docs/docs/api/appkit/Function.getResourceRequirements/index.html +0 -28
  243. package/docs/docs/api/appkit/Function.getUsernameWithApiLookup/index.html +0 -35
  244. package/docs/docs/api/appkit/Function.getWorkspaceClient/index.html +0 -22
  245. package/docs/docs/api/appkit/Function.isSQLTypeMarker/index.html +0 -25
  246. package/docs/docs/api/appkit/Interface.BasePluginConfig/index.html +0 -28
  247. package/docs/docs/api/appkit/Interface.CacheConfig/index.html +0 -63
  248. package/docs/docs/api/appkit/Interface.DatabaseCredential/index.html +0 -28
  249. package/docs/docs/api/appkit/Interface.GenerateDatabaseCredentialRequest/index.html +0 -32
  250. package/docs/docs/api/appkit/Interface.ITelemetry/index.html +0 -73
  251. package/docs/docs/api/appkit/Interface.LakebasePoolConfig/index.html +0 -75
  252. package/docs/docs/api/appkit/Interface.PluginManifest/index.html +0 -67
  253. package/docs/docs/api/appkit/Interface.RequestedClaims/index.html +0 -26
  254. package/docs/docs/api/appkit/Interface.RequestedResource/index.html +0 -27
  255. package/docs/docs/api/appkit/Interface.ResourceEntry/index.html +0 -83
  256. package/docs/docs/api/appkit/Interface.ResourceFieldEntry/index.html +0 -26
  257. package/docs/docs/api/appkit/Interface.ResourceRequirement/index.html +0 -51
  258. package/docs/docs/api/appkit/Interface.StreamExecutionSettings/index.html +0 -26
  259. package/docs/docs/api/appkit/Interface.TelemetryConfig/index.html +0 -32
  260. package/docs/docs/api/appkit/Interface.ValidationResult/index.html +0 -29
  261. package/docs/docs/api/appkit/TypeAlias.ConfigSchema/index.html +0 -21
  262. package/docs/docs/api/appkit/TypeAlias.IAppRouter/index.html +0 -18
  263. package/docs/docs/api/appkit/TypeAlias.ResourcePermission/index.html +0 -18
  264. package/docs/docs/api/appkit/TypeAlias.ToPlugin/index.html +0 -23
  265. package/docs/docs/api/appkit/Variable.sql/index.html +0 -98
  266. package/docs/docs/api/appkit/index.html +0 -30
  267. package/docs/docs/api/appkit-ui/data/AreaChart/index.html +0 -29
  268. package/docs/docs/api/appkit-ui/data/BarChart/index.html +0 -29
  269. package/docs/docs/api/appkit-ui/data/DataTable/index.html +0 -36
  270. package/docs/docs/api/appkit-ui/data/DonutChart/index.html +0 -29
  271. package/docs/docs/api/appkit-ui/data/HeatmapChart/index.html +0 -35
  272. package/docs/docs/api/appkit-ui/data/LineChart/index.html +0 -29
  273. package/docs/docs/api/appkit-ui/data/PieChart/index.html +0 -29
  274. package/docs/docs/api/appkit-ui/data/RadarChart/index.html +0 -29
  275. package/docs/docs/api/appkit-ui/data/ScatterChart/index.html +0 -29
  276. package/docs/docs/api/appkit-ui/index.html +0 -23
  277. package/docs/docs/api/appkit-ui/styling/index.html +0 -74
  278. package/docs/docs/api/appkit-ui/ui/Accordion/index.html +0 -48
  279. package/docs/docs/api/appkit-ui/ui/Alert/index.html +0 -41
  280. package/docs/docs/api/appkit-ui/ui/AlertDialog/index.html +0 -97
  281. package/docs/docs/api/appkit-ui/ui/AspectRatio/index.html +0 -27
  282. package/docs/docs/api/appkit-ui/ui/Avatar/index.html +0 -41
  283. package/docs/docs/api/appkit-ui/ui/Badge/index.html +0 -27
  284. package/docs/docs/api/appkit-ui/ui/Breadcrumb/index.html +0 -69
  285. package/docs/docs/api/appkit-ui/ui/Button/index.html +0 -27
  286. package/docs/docs/api/appkit-ui/ui/ButtonGroup/index.html +0 -38
  287. package/docs/docs/api/appkit-ui/ui/Calendar/index.html +0 -34
  288. package/docs/docs/api/appkit-ui/ui/Card/index.html +0 -69
  289. package/docs/docs/api/appkit-ui/ui/Carousel/index.html +0 -55
  290. package/docs/docs/api/appkit-ui/ui/ChartContainer/index.html +0 -58
  291. package/docs/docs/api/appkit-ui/ui/Checkbox/index.html +0 -27
  292. package/docs/docs/api/appkit-ui/ui/Collapsible/index.html +0 -41
  293. package/docs/docs/api/appkit-ui/ui/Command/index.html +0 -83
  294. package/docs/docs/api/appkit-ui/ui/ContextMenu/index.html +0 -111
  295. package/docs/docs/api/appkit-ui/ui/Dialog/index.html +0 -90
  296. package/docs/docs/api/appkit-ui/ui/Drawer/index.html +0 -90
  297. package/docs/docs/api/appkit-ui/ui/DropdownMenu/index.html +0 -111
  298. package/docs/docs/api/appkit-ui/ui/Empty/index.html +0 -54
  299. package/docs/docs/api/appkit-ui/ui/Field/index.html +0 -87
  300. package/docs/docs/api/appkit-ui/ui/FormControl/index.html +0 -59
  301. package/docs/docs/api/appkit-ui/ui/HoverCard/index.html +0 -39
  302. package/docs/docs/api/appkit-ui/ui/Input/index.html +0 -27
  303. package/docs/docs/api/appkit-ui/ui/InputGroup/index.html +0 -59
  304. package/docs/docs/api/appkit-ui/ui/InputOTP/index.html +0 -48
  305. package/docs/docs/api/appkit-ui/ui/Item/index.html +0 -78
  306. package/docs/docs/api/appkit-ui/ui/Kbd/index.html +0 -30
  307. package/docs/docs/api/appkit-ui/ui/Label/index.html +0 -27
  308. package/docs/docs/api/appkit-ui/ui/Menubar/index.html +0 -117
  309. package/docs/docs/api/appkit-ui/ui/NavigationMenu/index.html +0 -76
  310. package/docs/docs/api/appkit-ui/ui/Pagination/index.html +0 -69
  311. package/docs/docs/api/appkit-ui/ui/Popover/index.html +0 -45
  312. package/docs/docs/api/appkit-ui/ui/Progress/index.html +0 -27
  313. package/docs/docs/api/appkit-ui/ui/RadioGroup/index.html +0 -33
  314. package/docs/docs/api/appkit-ui/ui/ResizableHandle/index.html +0 -41
  315. package/docs/docs/api/appkit-ui/ui/ScrollArea/index.html +0 -34
  316. package/docs/docs/api/appkit-ui/ui/Select/index.html +0 -82
  317. package/docs/docs/api/appkit-ui/ui/Separator/index.html +0 -27
  318. package/docs/docs/api/appkit-ui/ui/Sheet/index.html +0 -76
  319. package/docs/docs/api/appkit-ui/ui/Sidebar/index.html +0 -183
  320. package/docs/docs/api/appkit-ui/ui/Skeleton/index.html +0 -27
  321. package/docs/docs/api/appkit-ui/ui/Slider/index.html +0 -27
  322. package/docs/docs/api/appkit-ui/ui/Spinner/index.html +0 -24
  323. package/docs/docs/api/appkit-ui/ui/Switch/index.html +0 -27
  324. package/docs/docs/api/appkit-ui/ui/Table/index.html +0 -69
  325. package/docs/docs/api/appkit-ui/ui/Tabs/index.html +0 -48
  326. package/docs/docs/api/appkit-ui/ui/Textarea/index.html +0 -27
  327. package/docs/docs/api/appkit-ui/ui/Toaster/index.html +0 -27
  328. package/docs/docs/api/appkit-ui/ui/Toggle/index.html +0 -27
  329. package/docs/docs/api/appkit-ui/ui/ToggleGroup/index.html +0 -33
  330. package/docs/docs/api/appkit-ui/ui/Tooltip/index.html +0 -46
  331. package/docs/docs/api/appkit.md +0 -78
  332. package/docs/docs/api/index.html +0 -28
  333. package/docs/docs/app-management/index.html +0 -106
  334. package/docs/docs/architecture/index.html +0 -71
  335. package/docs/docs/category/development/index.html +0 -16
  336. package/docs/docs/category/development.md +0 -3
  337. package/docs/docs/configuration/index.html +0 -66
  338. package/docs/docs/core-principles/index.html +0 -38
  339. package/docs/docs/development/ai-assisted-development/index.html +0 -33
  340. package/docs/docs/development/index.html +0 -35
  341. package/docs/docs/development/llm-guide/index.html +0 -84
  342. package/docs/docs/development/local-development/index.html +0 -27
  343. package/docs/docs/development/project-setup/index.html +0 -69
  344. package/docs/docs/development/remote-bridge/index.html +0 -76
  345. package/docs/docs/development/type-generation/index.html +0 -65
  346. package/docs/docs/development.md +0 -22
  347. package/docs/docs/index.html +0 -58
  348. package/docs/docs/plugins/analytics/index.html +0 -53
  349. package/docs/docs/plugins/caching/index.html +0 -23
  350. package/docs/docs/plugins/custom-plugins/index.html +0 -49
  351. package/docs/docs/plugins/execution-context/index.html +0 -40
  352. package/docs/docs/plugins/index.html +0 -29
  353. package/docs/docs/plugins/lakebase/index.html +0 -62
  354. package/docs/docs/plugins/plugin-management/index.html +0 -44
  355. package/docs/docs/plugins/server/index.html +0 -45
  356. /package/docs/{docs/api → api}/appkit/Enumeration.RequestedClaimsPermissionSet.md +0 -0
  357. /package/docs/{docs/api → api}/appkit/Enumeration.ResourceType.md +0 -0
  358. /package/docs/{docs/api → api}/appkit/Function.appKitTypesPlugin.md +0 -0
  359. /package/docs/{docs/api → api}/appkit/Function.getExecutionContext.md +0 -0
  360. /package/docs/{docs/api → api}/appkit/Function.getResourceRequirements.md +0 -0
  361. /package/docs/{docs/api → api}/appkit/Function.isSQLTypeMarker.md +0 -0
  362. /package/docs/{docs/api → api}/appkit/Interface.BasePluginConfig.md +0 -0
  363. /package/docs/{docs/api → api}/appkit/Interface.CacheConfig.md +0 -0
  364. /package/docs/{docs/api → api}/appkit/Interface.DatabaseCredential.md +0 -0
  365. /package/docs/{docs/api → api}/appkit/Interface.GenerateDatabaseCredentialRequest.md +0 -0
  366. /package/docs/{docs/api → api}/appkit/Interface.ITelemetry.md +0 -0
  367. /package/docs/{docs/api → api}/appkit/Interface.LakebasePoolConfig.md +0 -0
  368. /package/docs/{docs/api → api}/appkit/Interface.PluginManifest.md +0 -0
  369. /package/docs/{docs/api → api}/appkit/Interface.RequestedClaims.md +0 -0
  370. /package/docs/{docs/api → api}/appkit/Interface.RequestedResource.md +0 -0
  371. /package/docs/{docs/api → api}/appkit/Interface.ResourceFieldEntry.md +0 -0
  372. /package/docs/{docs/api → api}/appkit/Interface.StreamExecutionSettings.md +0 -0
  373. /package/docs/{docs/api → api}/appkit/Interface.TelemetryConfig.md +0 -0
  374. /package/docs/{docs/api → api}/appkit/Interface.ValidationResult.md +0 -0
  375. /package/docs/{docs/api → api}/appkit/TypeAlias.ConfigSchema.md +0 -0
  376. /package/docs/{docs/api → api}/appkit/TypeAlias.IAppRouter.md +0 -0
  377. /package/docs/{docs/api → api}/appkit/TypeAlias.ResourcePermission.md +0 -0
  378. /package/docs/{docs/api → api}/appkit/TypeAlias.ToPlugin.md +0 -0
  379. /package/docs/{docs/api → api}/appkit/Variable.sql.md +0 -0
  380. /package/docs/{docs/api → api}/appkit-ui/data/AreaChart.md +0 -0
  381. /package/docs/{docs/api → api}/appkit-ui/data/BarChart.md +0 -0
  382. /package/docs/{docs/api → api}/appkit-ui/data/DataTable.md +0 -0
  383. /package/docs/{docs/api → api}/appkit-ui/data/DonutChart.md +0 -0
  384. /package/docs/{docs/api → api}/appkit-ui/data/HeatmapChart.md +0 -0
  385. /package/docs/{docs/api → api}/appkit-ui/data/LineChart.md +0 -0
  386. /package/docs/{docs/api → api}/appkit-ui/data/PieChart.md +0 -0
  387. /package/docs/{docs/api → api}/appkit-ui/data/RadarChart.md +0 -0
  388. /package/docs/{docs/api → api}/appkit-ui/data/ScatterChart.md +0 -0
  389. /package/docs/{docs/api → api}/appkit-ui/ui/Accordion.md +0 -0
  390. /package/docs/{docs/api → api}/appkit-ui/ui/Alert.md +0 -0
  391. /package/docs/{docs/api → api}/appkit-ui/ui/AlertDialog.md +0 -0
  392. /package/docs/{docs/api → api}/appkit-ui/ui/AspectRatio.md +0 -0
  393. /package/docs/{docs/api → api}/appkit-ui/ui/Avatar.md +0 -0
  394. /package/docs/{docs/api → api}/appkit-ui/ui/Badge.md +0 -0
  395. /package/docs/{docs/api → api}/appkit-ui/ui/Breadcrumb.md +0 -0
  396. /package/docs/{docs/api → api}/appkit-ui/ui/Button.md +0 -0
  397. /package/docs/{docs/api → api}/appkit-ui/ui/ButtonGroup.md +0 -0
  398. /package/docs/{docs/api → api}/appkit-ui/ui/Calendar.md +0 -0
  399. /package/docs/{docs/api → api}/appkit-ui/ui/Card.md +0 -0
  400. /package/docs/{docs/api → api}/appkit-ui/ui/Carousel.md +0 -0
  401. /package/docs/{docs/api → api}/appkit-ui/ui/ChartContainer.md +0 -0
  402. /package/docs/{docs/api → api}/appkit-ui/ui/Checkbox.md +0 -0
  403. /package/docs/{docs/api → api}/appkit-ui/ui/Collapsible.md +0 -0
  404. /package/docs/{docs/api → api}/appkit-ui/ui/Command.md +0 -0
  405. /package/docs/{docs/api → api}/appkit-ui/ui/ContextMenu.md +0 -0
  406. /package/docs/{docs/api → api}/appkit-ui/ui/Dialog.md +0 -0
  407. /package/docs/{docs/api → api}/appkit-ui/ui/Drawer.md +0 -0
  408. /package/docs/{docs/api → api}/appkit-ui/ui/DropdownMenu.md +0 -0
  409. /package/docs/{docs/api → api}/appkit-ui/ui/Empty.md +0 -0
  410. /package/docs/{docs/api → api}/appkit-ui/ui/Field.md +0 -0
  411. /package/docs/{docs/api → api}/appkit-ui/ui/FormControl.md +0 -0
  412. /package/docs/{docs/api → api}/appkit-ui/ui/HoverCard.md +0 -0
  413. /package/docs/{docs/api → api}/appkit-ui/ui/Input.md +0 -0
  414. /package/docs/{docs/api → api}/appkit-ui/ui/InputGroup.md +0 -0
  415. /package/docs/{docs/api → api}/appkit-ui/ui/InputOTP.md +0 -0
  416. /package/docs/{docs/api → api}/appkit-ui/ui/Item.md +0 -0
  417. /package/docs/{docs/api → api}/appkit-ui/ui/Kbd.md +0 -0
  418. /package/docs/{docs/api → api}/appkit-ui/ui/Label.md +0 -0
  419. /package/docs/{docs/api → api}/appkit-ui/ui/Menubar.md +0 -0
  420. /package/docs/{docs/api → api}/appkit-ui/ui/NavigationMenu.md +0 -0
  421. /package/docs/{docs/api → api}/appkit-ui/ui/Pagination.md +0 -0
  422. /package/docs/{docs/api → api}/appkit-ui/ui/Popover.md +0 -0
  423. /package/docs/{docs/api → api}/appkit-ui/ui/Progress.md +0 -0
  424. /package/docs/{docs/api → api}/appkit-ui/ui/RadioGroup.md +0 -0
  425. /package/docs/{docs/api → api}/appkit-ui/ui/ResizableHandle.md +0 -0
  426. /package/docs/{docs/api → api}/appkit-ui/ui/ScrollArea.md +0 -0
  427. /package/docs/{docs/api → api}/appkit-ui/ui/Select.md +0 -0
  428. /package/docs/{docs/api → api}/appkit-ui/ui/Separator.md +0 -0
  429. /package/docs/{docs/api → api}/appkit-ui/ui/Sheet.md +0 -0
  430. /package/docs/{docs/api → api}/appkit-ui/ui/Sidebar.md +0 -0
  431. /package/docs/{docs/api → api}/appkit-ui/ui/Skeleton.md +0 -0
  432. /package/docs/{docs/api → api}/appkit-ui/ui/Slider.md +0 -0
  433. /package/docs/{docs/api → api}/appkit-ui/ui/Spinner.md +0 -0
  434. /package/docs/{docs/api → api}/appkit-ui/ui/Switch.md +0 -0
  435. /package/docs/{docs/api → api}/appkit-ui/ui/Table.md +0 -0
  436. /package/docs/{docs/api → api}/appkit-ui/ui/Tabs.md +0 -0
  437. /package/docs/{docs/api → api}/appkit-ui/ui/Textarea.md +0 -0
  438. /package/docs/{docs/api → api}/appkit-ui/ui/Toaster.md +0 -0
  439. /package/docs/{docs/api → api}/appkit-ui/ui/Toggle.md +0 -0
  440. /package/docs/{docs/api → api}/appkit-ui/ui/ToggleGroup.md +0 -0
  441. /package/docs/{docs/api → api}/appkit-ui/ui/Tooltip.md +0 -0
  442. /package/docs/{docs/api → api}/appkit-ui.md +0 -0
  443. /package/docs/{docs/core-principles.md → core-principles.md} +0 -0
  444. /package/docs/{docs/plugins → plugins}/caching.md +0 -0
  445. /package/docs/{docs/plugins → plugins}/execution-context.md +0 -0
  446. /package/docs/{docs/plugins → plugins}/plugin-management.md +0 -0
  447. /package/docs/{docs/plugins → plugins}/server.md +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../../src/react/ui/dropdown-menu.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\n/** Menu that displays when triggered by a button or element */\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n container,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal\n data-slot=\"dropdown-menu-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal container={useResolvedPortalContainer()}>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"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\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":";;;;;;;;AAQA,SAAS,aAAa,EACpB,GAAG,SACuD;AAC1D,QAAO,oBAAC,sBAAsB;EAAK,aAAU;EAAgB,GAAI;GAAS;;AAG5E,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,2BAA2B,UAAU;EAChD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,aAAa,GACb,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB;EAAO,WAAW,4BAA4B;YACnE,oBAAC,sBAAsB;GACrB,aAAU;GACE;GACZ,WAAW,GACT,0jBACA,UACD;GACD,GAAI;IACJ;GAC2B;;AAInC,SAAS,kBAAkB,EACzB,GAAG,SACwD;AAC3D,QACE,oBAAC,sBAAsB;EAAM,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,iBAAiB,EACxB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,+mBACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,yBAAyB,EAChC,WACA,UACA,SACA,GAAG,SAC+D;AAClE,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,gTACA,UACD;EACQ;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,sBAAsB,2BACrB,oBAAC,aAAU,WAAU,WAAW,GACI;IACjC,EACN;GACkC;;AAIzC,SAAS,uBAAuB,EAC9B,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;AAC/D,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,gTACA,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,sBAAsB,2BACrB,oBAAC,cAAW,WAAU,wBAAwB,GACV;IACjC,EACN;GAC+B;;AAItC,SAAS,kBAAkB,EACzB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,qDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,qBAAqB,EAC5B,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,GAAG,SACsD;AACzD,QAAO,oBAAC,sBAAsB;EAAI,aAAU;EAAoB,GAAI;GAAS;;AAG/E,SAAS,uBAAuB,EAC9B,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,8WACA,UACD;EACD,GAAI;aAEH,UACD,oBAAC,oBAAiB,WAAU,mBAAmB;GACd;;AAIvC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,ifACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../../src/react/ui/dropdown-menu.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\n/** Menu that displays when triggered by a button or element */\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n container,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal\n data-slot=\"dropdown-menu-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal container={useResolvedPortalContainer()}>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"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\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":";;;;;;;;AAQA,SAAS,aAAa,EACpB,GAAG,SACuD;AAC1D,QAAO,oBAAC,sBAAsB,MAAvB;EAA4B,aAAU;EAAgB,GAAI;EAAS;;AAG5E,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,sBAAsB,QAAvB;EACE,aAAU;EACV,WAAW,2BAA2B,UAAU;EAChD,GAAI;EACJ;;AAIN,SAAS,oBAAoB,EAC3B,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB,SAAvB;EACE,aAAU;EACV,GAAI;EACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,aAAa,GACb,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB,QAAvB;EAA8B,WAAW,4BAA4B;YACnE,oBAAC,sBAAsB,SAAvB;GACE,aAAU;GACE;GACZ,WAAW,GACT,0jBACA,UACD;GACD,GAAI;GACJ;EAC2B;;AAInC,SAAS,kBAAkB,EACzB,GAAG,SACwD;AAC3D,QACE,oBAAC,sBAAsB,OAAvB;EAA6B,aAAU;EAAsB,GAAI;EAAS;;AAI9E,SAAS,iBAAiB,EACxB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAAC,sBAAsB,MAAvB;EACE,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,+mBACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,yBAAyB,EAChC,WACA,UACA,SACA,GAAG,SAC+D;AAClE,QACE,qBAAC,sBAAsB,cAAvB;EACE,aAAU;EACV,WAAW,GACT,gTACA,UACD;EACQ;EACT,GAAI;YAPN,CASE,oBAAC,QAAD;GAAM,WAAU;aACd,oBAAC,sBAAsB,eAAvB,YACE,oBAAC,WAAD,EAAW,WAAU,UAAW,GACI;GACjC,GACN,SACkC;;;AAIzC,SAAS,uBAAuB,EAC9B,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB,YAAvB;EACE,aAAU;EACV,GAAI;EACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;AAC/D,QACE,qBAAC,sBAAsB,WAAvB;EACE,aAAU;EACV,WAAW,GACT,gTACA,UACD;EACD,GAAI;YANN,CAQE,oBAAC,QAAD;GAAM,WAAU;aACd,oBAAC,sBAAsB,eAAvB,YACE,oBAAC,YAAD,EAAY,WAAU,uBAAwB,GACV;GACjC,GACN,SAC+B;;;AAItC,SAAS,kBAAkB,EACzB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAAC,sBAAsB,OAAvB;EACE,aAAU;EACV,cAAY;EACZ,WAAW,GACT,qDACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAAC,sBAAsB,WAAvB;EACE,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;EACJ;;AAIN,SAAS,qBAAqB,EAC5B,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC,QAAD;EACE,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,gBAAgB,EACvB,GAAG,SACsD;AACzD,QAAO,oBAAC,sBAAsB,KAAvB;EAA2B,aAAU;EAAoB,GAAI;EAAS;;AAG/E,SAAS,uBAAuB,EAC9B,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,sBAAsB,YAAvB;EACE,aAAU;EACV,cAAY;EACZ,WAAW,GACT,8WACA,UACD;EACD,GAAI;YAPN,CASG,UACD,oBAAC,kBAAD,EAAkB,WAAU,kBAAmB,EACd;;;AAIvC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB,YAAvB;EACE,aAAU;EACV,WAAW,GACT,ifACA,UACD;EACD,GAAI;EACJ"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime119 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime111 from "react/jsx-runtime";
2
2
  import { VariantProps } from "class-variance-authority";
3
3
  import * as class_variance_authority_types3 from "class-variance-authority/types";
4
4
 
@@ -7,11 +7,11 @@ import * as class_variance_authority_types3 from "class-variance-authority/types
7
7
  declare function Empty({
8
8
  className,
9
9
  ...props
10
- }: React.ComponentProps<"div">): react_jsx_runtime119.JSX.Element;
10
+ }: React.ComponentProps<"div">): react_jsx_runtime111.JSX.Element;
11
11
  declare function EmptyHeader({
12
12
  className,
13
13
  ...props
14
- }: React.ComponentProps<"div">): react_jsx_runtime119.JSX.Element;
14
+ }: React.ComponentProps<"div">): react_jsx_runtime111.JSX.Element;
15
15
  declare const emptyMediaVariants: (props?: ({
16
16
  variant?: "default" | "icon" | null | undefined;
17
17
  } & class_variance_authority_types3.ClassProp) | undefined) => string;
@@ -19,19 +19,19 @@ declare function EmptyMedia({
19
19
  className,
20
20
  variant,
21
21
  ...props
22
- }: React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>): react_jsx_runtime119.JSX.Element;
22
+ }: React.ComponentProps<"div"> & VariantProps<typeof emptyMediaVariants>): react_jsx_runtime111.JSX.Element;
23
23
  declare function EmptyTitle({
24
24
  className,
25
25
  ...props
26
- }: React.ComponentProps<"div">): react_jsx_runtime119.JSX.Element;
26
+ }: React.ComponentProps<"div">): react_jsx_runtime111.JSX.Element;
27
27
  declare function EmptyDescription({
28
28
  className,
29
29
  ...props
30
- }: React.ComponentProps<"p">): react_jsx_runtime119.JSX.Element;
30
+ }: React.ComponentProps<"p">): react_jsx_runtime111.JSX.Element;
31
31
  declare function EmptyContent({
32
32
  className,
33
33
  ...props
34
- }: React.ComponentProps<"div">): react_jsx_runtime119.JSX.Element;
34
+ }: React.ComponentProps<"div">): react_jsx_runtime111.JSX.Element;
35
35
  //#endregion
36
36
  export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle };
37
37
  //# sourceMappingURL=empty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty.js","names":[],"sources":["../../../src/react/ui/empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Empty state component for displaying no-data scenarios */\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"flex max-w-sm flex-col items-center gap-2 text-center\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n"],"mappings":";;;;;;AAKA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;AACnE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gIACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,qBAAqB,IACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,WAAW,EAClB,WACA,UAAU,WACV,GAAG,SACqE;AACxE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,mBAAmB;GAAE;GAAS;GAAW,CAAC,CAAC;EACzD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,2GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iFACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"empty.js","names":[],"sources":["../../../src/react/ui/empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Empty state component for displaying no-data scenarios */\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"flex max-w-sm flex-col items-center gap-2 text-center\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n"],"mappings":";;;;;;AAKA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;AACnE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,gIACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;EACJ;;AAIN,MAAM,qBAAqB,IACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,WAAW,EAClB,WACA,UAAU,WACV,GAAG,SACqE;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,mBAAmB;GAAE;GAAS;GAAW,CAAC,CAAC;EACzD,GAAI;EACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;EACJ;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,2GACA,UACD;EACD,GAAI;EACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,iFACA,UACD;EACD,GAAI;EACJ"}
@@ -1,5 +1,5 @@
1
1
  import { Label } from "./label.js";
2
- import * as react_jsx_runtime125 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime138 from "react/jsx-runtime";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import * as class_variance_authority_types4 from "class-variance-authority/types";
5
5
 
@@ -8,7 +8,7 @@ import * as class_variance_authority_types4 from "class-variance-authority/types
8
8
  declare function FieldSet({
9
9
  className,
10
10
  ...props
11
- }: React.ComponentProps<"fieldset">): react_jsx_runtime125.JSX.Element;
11
+ }: React.ComponentProps<"fieldset">): react_jsx_runtime138.JSX.Element;
12
12
  /** Title or caption for a fieldset */
13
13
  declare function FieldLegend({
14
14
  className,
@@ -16,12 +16,12 @@ declare function FieldLegend({
16
16
  ...props
17
17
  }: React.ComponentProps<"legend"> & {
18
18
  variant?: "legend" | "label";
19
- }): react_jsx_runtime125.JSX.Element;
19
+ }): react_jsx_runtime138.JSX.Element;
20
20
  /** Container for organizing multiple fields */
21
21
  declare function FieldGroup({
22
22
  className,
23
23
  ...props
24
- }: React.ComponentProps<"div">): react_jsx_runtime125.JSX.Element;
24
+ }: React.ComponentProps<"div">): react_jsx_runtime138.JSX.Element;
25
25
  declare const fieldVariants: (props?: ({
26
26
  orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
27
27
  } & class_variance_authority_types4.ClassProp) | undefined) => string;
@@ -30,27 +30,27 @@ declare function Field({
30
30
  className,
31
31
  orientation,
32
32
  ...props
33
- }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): react_jsx_runtime125.JSX.Element;
33
+ }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>): react_jsx_runtime138.JSX.Element;
34
34
  /** Container for field label, description, and error messages */
35
35
  declare function FieldContent({
36
36
  className,
37
37
  ...props
38
- }: React.ComponentProps<"div">): react_jsx_runtime125.JSX.Element;
38
+ }: React.ComponentProps<"div">): react_jsx_runtime138.JSX.Element;
39
39
  /** Label for a form field */
40
40
  declare function FieldLabel({
41
41
  className,
42
42
  ...props
43
- }: React.ComponentProps<typeof Label>): react_jsx_runtime125.JSX.Element;
43
+ }: React.ComponentProps<typeof Label>): react_jsx_runtime138.JSX.Element;
44
44
  /** Title text for a field */
45
45
  declare function FieldTitle({
46
46
  className,
47
47
  ...props
48
- }: React.ComponentProps<"div">): react_jsx_runtime125.JSX.Element;
48
+ }: React.ComponentProps<"div">): react_jsx_runtime138.JSX.Element;
49
49
  /** Helper text providing additional context for a field */
50
50
  declare function FieldDescription({
51
51
  className,
52
52
  ...props
53
- }: React.ComponentProps<"p">): react_jsx_runtime125.JSX.Element;
53
+ }: React.ComponentProps<"p">): react_jsx_runtime138.JSX.Element;
54
54
  /** Visual separator between fields with optional label */
55
55
  declare function FieldSeparator({
56
56
  children,
@@ -58,7 +58,7 @@ declare function FieldSeparator({
58
58
  ...props
59
59
  }: React.ComponentProps<"div"> & {
60
60
  children?: React.ReactNode;
61
- }): react_jsx_runtime125.JSX.Element;
61
+ }): react_jsx_runtime138.JSX.Element;
62
62
  /** Error message display for invalid field values */
63
63
  declare function FieldError({
64
64
  className,
@@ -69,7 +69,7 @@ declare function FieldError({
69
69
  errors?: Array<{
70
70
  message?: string;
71
71
  } | undefined>;
72
- }): react_jsx_runtime125.JSX.Element | null;
72
+ }): react_jsx_runtime138.JSX.Element | null;
73
73
  //#endregion
74
74
  export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };
75
75
  //# sourceMappingURL=field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","names":[],"sources":["../../../src/react/ui/field.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\nimport { Separator } from \"./separator\";\n\n/** Container for grouping related form fields */\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title or caption for a fieldset */\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Container for organizing multiple fields */\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-3 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n responsive: [\n \"flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n },\n);\n\n/** Form field wrapper with label and input positioning */\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\n/** Container for field label, description, and error messages */\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Label for a form field */\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title text for a field */\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Helper text providing additional context for a field */\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Visual separator between fields with optional label */\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\n/** Error message display for invalid field values */\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ];\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>,\n )}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":";;;;;;;;;AAQA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,uBACA,gFACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,YAAY,EACnB,WACA,UAAU,UACV,GAAG,SACiE;AACpE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GACT,oBACA,mCACA,gCACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,0IACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,gBAAgB,IACpB,sEACA;CACE,UAAU,EACR,aAAa;EACX,UAAU,CAAC,4CAA4C;EACvD,YAAY;GACV;GACA;GACA;GACD;EACD,YAAY;GACV;GACA;GACA;GACD;EACF,EACF;CACD,iBAAiB,EACf,aAAa,YACd;CACF,CACF;;AAGD,SAAS,MAAM,EACb,WACA,cAAc,YACd,GAAG,SACgE;AACnE,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,GAAG,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU;EACxD,GAAI;GACJ;;;AAKN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iEACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAClB,WACA,GAAG,SACkC;AACrC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gHACA,qKACA,6HACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,8GACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yHACA,gEACA,qEACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,eAAe,EACtB,UACA,WACA,GAAG,SAGF;AACD,QACE,qBAAC;EACC,aAAU;EACV,gBAAc,CAAC,CAAC;EAChB,WAAW,GACT,6EACA,UACD;EACD,GAAI;aAEJ,oBAAC,aAAU,WAAU,6BAA6B,EACjD,YACC,oBAAC;GACC,WAAU;GACV,aAAU;GAET;IACI;GAEL;;;AAKV,SAAS,WAAW,EAClB,WACA,UACA,QACA,GAAG,SAGF;CACD,MAAM,UAAU,cAAc;AAC5B,MAAI,SACF,QAAO;AAGT,MAAI,CAAC,QAAQ,OACX,QAAO;EAGT,MAAM,eAAe,CACnB,GAAG,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,SAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,CACpE;AAED,MAAI,cAAc,UAAU,EAC1B,QAAO,aAAa,IAAI;AAG1B,SACE,oBAAC;GAAG,WAAU;aACX,aAAa,KACX,OAAO,UACN,OAAO,WAAW,oBAAC,kBAAgB,MAAM,WAAd,MAA2B,CACzD;IACE;IAEN,CAAC,UAAU,OAAO,CAAC;AAEtB,KAAI,CAAC,QACH,QAAO;AAGT,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,UAAU;EAChE,GAAI;YAEH;GACG"}
1
+ {"version":3,"file":"field.js","names":[],"sources":["../../../src/react/ui/field.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\nimport { Separator } from \"./separator\";\n\n/** Container for grouping related form fields */\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6\",\n \"has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title or caption for a fieldset */\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium\",\n \"data-[variant=legend]:text-base\",\n \"data-[variant=label]:text-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Container for organizing multiple fields */\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva(\n \"group/field flex w-full gap-3 data-[invalid=true]:text-destructive\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n responsive: [\n \"flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n },\n);\n\n/** Form field wrapper with label and input positioning */\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\n/** Container for field label, description, and error messages */\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"group/field-content flex flex-1 flex-col gap-1.5 leading-snug\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Label for a form field */\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title text for a field */\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Helper text providing additional context for a field */\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance\",\n \"last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Visual separator between fields with optional label */\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\n/** Error message display for invalid field values */\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ];\n\n if (uniqueErrors?.length == 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>,\n )}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"text-destructive text-sm font-normal\", className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":";;;;;;;;;AAQA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;AAC3E,QACE,oBAAC,YAAD;EACE,aAAU;EACV,WAAW,GACT,uBACA,gFACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,YAAY,EACnB,WACA,UAAU,UACV,GAAG,SACiE;AACpE,QACE,oBAAC,UAAD;EACE,aAAU;EACV,gBAAc;EACd,WAAW,GACT,oBACA,mCACA,gCACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,0IACA,UACD;EACD,GAAI;EACJ;;AAIN,MAAM,gBAAgB,IACpB,sEACA;CACE,UAAU,EACR,aAAa;EACX,UAAU,CAAC,4CAA4C;EACvD,YAAY;GACV;GACA;GACA;GACD;EACD,YAAY;GACV;GACA;GACA;GACD;EACF,EACF;CACD,iBAAiB,EACf,aAAa,YACd;CACF,CACF;;AAGD,SAAS,MAAM,EACb,WACA,cAAc,YACd,GAAG,SACgE;AACnE,QACE,oBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,GAAG,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU;EACxD,GAAI;EACJ;;;AAKN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,iEACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAClB,WACA,GAAG,SACkC;AACrC,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,gHACA,qKACA,6HACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,8GACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC,KAAD;EACE,aAAU;EACV,WAAW,GACT,yHACA,gEACA,qEACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,eAAe,EACtB,UACA,WACA,GAAG,SAGF;AACD,QACE,qBAAC,OAAD;EACE,aAAU;EACV,gBAAc,CAAC,CAAC;EAChB,WAAW,GACT,6EACA,UACD;EACD,GAAI;YAPN,CASE,oBAAC,WAAD,EAAW,WAAU,4BAA6B,GACjD,YACC,oBAAC,QAAD;GACE,WAAU;GACV,aAAU;GAET;GACI,EAEL;;;;AAKV,SAAS,WAAW,EAClB,WACA,UACA,QACA,GAAG,SAGF;CACD,MAAM,UAAU,cAAc;AAC5B,MAAI,SACF,QAAO;AAGT,MAAI,CAAC,QAAQ,OACX,QAAO;EAGT,MAAM,eAAe,CACnB,GAAG,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,SAAS,MAAM,CAAC,CAAC,CAAC,QAAQ,CACpE;AAED,MAAI,cAAc,UAAU,EAC1B,QAAO,aAAa,IAAI;AAG1B,SACE,oBAAC,MAAD;GAAI,WAAU;aACX,aAAa,KACX,OAAO,UACN,OAAO,WAAW,oBAAC,MAAD,YAAiB,MAAM,SAAa,EAA3B,MAA2B,CACzD;GACE;IAEN,CAAC,UAAU,OAAO,CAAC;AAEtB,KAAI,CAAC,QACH,QAAO;AAGT,QACE,oBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,UAAU;EAChE,GAAI;YAEH;EACG"}
@@ -1,5 +1,5 @@
1
1
  import * as react2 from "react";
2
- import * as react_jsx_runtime135 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime132 from "react/jsx-runtime";
3
3
  import { Slot } from "@radix-ui/react-slot";
4
4
  import * as LabelPrimitive from "@radix-ui/react-label";
5
5
  import * as react_hook_form0 from "react-hook-form";
@@ -11,7 +11,7 @@ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransfor
11
11
  /** Controlled field component for react-hook-form integration */
12
12
  declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
13
13
  ...props
14
- }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime135.JSX.Element;
14
+ }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime132.JSX.Element;
15
15
  declare const useFormField: () => {
16
16
  invalid: boolean;
17
17
  isDirty: boolean;
@@ -28,26 +28,26 @@ declare const useFormField: () => {
28
28
  declare function FormItem({
29
29
  className,
30
30
  ...props
31
- }: react2.ComponentProps<"div">): react_jsx_runtime135.JSX.Element;
31
+ }: react2.ComponentProps<"div">): react_jsx_runtime132.JSX.Element;
32
32
  /** Label for a form field with error state styling */
33
33
  declare function FormLabel({
34
34
  className,
35
35
  ...props
36
- }: react2.ComponentProps<typeof LabelPrimitive.Root>): react_jsx_runtime135.JSX.Element;
36
+ }: react2.ComponentProps<typeof LabelPrimitive.Root>): react_jsx_runtime132.JSX.Element;
37
37
  /** Wrapper for form control elements with accessibility attributes */
38
38
  declare function FormControl({
39
39
  ...props
40
- }: react2.ComponentProps<typeof Slot>): react_jsx_runtime135.JSX.Element;
40
+ }: react2.ComponentProps<typeof Slot>): react_jsx_runtime132.JSX.Element;
41
41
  /** Helper text providing guidance for a form field */
42
42
  declare function FormDescription({
43
43
  className,
44
44
  ...props
45
- }: react2.ComponentProps<"p">): react_jsx_runtime135.JSX.Element;
45
+ }: react2.ComponentProps<"p">): react_jsx_runtime132.JSX.Element;
46
46
  /** Validation error message for a form field */
47
47
  declare function FormMessage({
48
48
  className,
49
49
  ...props
50
- }: react2.ComponentProps<"p">): react_jsx_runtime135.JSX.Element | null;
50
+ }: react2.ComponentProps<"p">): react_jsx_runtime132.JSX.Element | null;
51
51
  //#endregion
52
52
  export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
53
53
  //# sourceMappingURL=form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","names":["React"],"sources":["../../../src/react/ui/form.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\n\n/** Form context provider using react-hook-form */\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\n/** Controlled field component for react-hook-form integration */\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\n/** Container for a single form field with label and messages */\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\n/** Label for a form field with error state styling */\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\"data-[error=true]:text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\n/** Wrapper for form control elements with accessibility attributes */\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\n/** Helper text providing guidance for a form field */\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Validation error message for a form field */\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-destructive text-sm\", className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],"mappings":";;;;;;;;;;;AAmBA,MAAM,OAAO;AASb,MAAM,mBAAmBA,QAAM,cAC7B,EAAE,CACH;;AAGD,MAAM,aAGJ,EACA,GAAG,YACuC;AAC1C,QACE,oBAAC,iBAAiB;EAAS,OAAO,EAAE,MAAM,MAAM,MAAM;YACpD,oBAAC,cAAW,GAAI,QAAS;GACC;;AAIhC,MAAM,qBAAqB;CACzB,MAAM,eAAeA,QAAM,WAAW,iBAAiB;CACvD,MAAM,cAAcA,QAAM,WAAW,gBAAgB;CACrD,MAAM,EAAE,kBAAkB,gBAAgB;CAC1C,MAAM,YAAY,aAAa,EAAE,MAAM,aAAa,MAAM,CAAC;CAC3D,MAAM,aAAa,cAAc,aAAa,MAAM,UAAU;AAE9D,KAAI,CAAC,aACH,OAAM,IAAI,MAAM,iDAAiD;CAGnE,MAAM,EAAE,OAAO;AAEf,QAAO;EACL;EACA,MAAM,aAAa;EACnB,YAAY,GAAG,GAAG;EAClB,mBAAmB,GAAG,GAAG;EACzB,eAAe,GAAG,GAAG;EACrB,GAAG;EACJ;;AAOH,MAAM,kBAAkBA,QAAM,cAC5B,EAAE,CACH;;AAGD,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;CACtE,MAAM,KAAKA,QAAM,OAAO;AAExB,QACE,oBAAC,gBAAgB;EAAS,OAAO,EAAE,IAAI;YACrC,oBAAC;GACC,aAAU;GACV,WAAW,GAAG,cAAc,UAAU;GACtC,GAAI;IACJ;GACuB;;;AAK/B,SAAS,UAAU,EACjB,WACA,GAAG,SACgD;CACnD,MAAM,EAAE,OAAO,eAAe,cAAc;AAE5C,QACE,oBAAC;EACC,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,GAAG,sCAAsC,UAAU;EAC9D,SAAS;EACT,GAAI;GACJ;;;AAKN,SAAS,YAAY,EAAE,GAAG,SAA4C;CACpE,MAAM,EAAE,OAAO,YAAY,mBAAmB,kBAC5C,cAAc;AAEhB,QACE,oBAAC;EACC,aAAU;EACV,IAAI;EACJ,oBACE,CAAC,QACG,GAAG,sBACH,GAAG,kBAAkB,GAAG;EAE9B,gBAAc,CAAC,CAAC;EAChB,GAAI;GACJ;;;AAKN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAoC;CAC3E,MAAM,EAAE,sBAAsB,cAAc;AAE5C,QACE,oBAAC;EACC,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;;AAKN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAoC;CACvE,MAAM,EAAE,OAAO,kBAAkB,cAAc;CAC/C,MAAM,OAAO,QAAQ,OAAO,OAAO,WAAW,GAAG,GAAG,MAAM;AAE1D,KAAI,CAAC,KACH,QAAO;AAGT,QACE,oBAAC;EACC,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;YAEH;GACC"}
1
+ {"version":3,"file":"form.js","names":["React"],"sources":["../../../src/react/ui/form.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport type * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\n\n/** Form context provider using react-hook-form */\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\n/** Controlled field component for react-hook-form integration */\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\n/** Container for a single form field with label and messages */\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\n/** Label for a form field with error state styling */\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\"data-[error=true]:text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\n/** Wrapper for form control elements with accessibility attributes */\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\n/** Helper text providing guidance for a form field */\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Validation error message for a form field */\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-destructive text-sm\", className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],"mappings":";;;;;;;;;;;AAmBA,MAAM,OAAO;AASb,MAAM,mBAAmBA,QAAM,cAC7B,EAAE,CACH;;AAGD,MAAM,aAGJ,EACA,GAAG,YACuC;AAC1C,QACE,oBAAC,iBAAiB,UAAlB;EAA2B,OAAO,EAAE,MAAM,MAAM,MAAM;YACpD,oBAAC,YAAD,EAAY,GAAI,OAAS;EACC;;AAIhC,MAAM,qBAAqB;CACzB,MAAM,eAAeA,QAAM,WAAW,iBAAiB;CACvD,MAAM,cAAcA,QAAM,WAAW,gBAAgB;CACrD,MAAM,EAAE,kBAAkB,gBAAgB;CAC1C,MAAM,YAAY,aAAa,EAAE,MAAM,aAAa,MAAM,CAAC;CAC3D,MAAM,aAAa,cAAc,aAAa,MAAM,UAAU;AAE9D,KAAI,CAAC,aACH,OAAM,IAAI,MAAM,iDAAiD;CAGnE,MAAM,EAAE,OAAO;AAEf,QAAO;EACL;EACA,MAAM,aAAa;EACnB,YAAY,GAAG,GAAG;EAClB,mBAAmB,GAAG,GAAG;EACzB,eAAe,GAAG,GAAG;EACrB,GAAG;EACJ;;AAOH,MAAM,kBAAkBA,QAAM,cAC5B,EAAE,CACH;;AAGD,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;CACtE,MAAM,KAAKA,QAAM,OAAO;AAExB,QACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO,EAAE,IAAI;YACrC,oBAAC,OAAD;GACE,aAAU;GACV,WAAW,GAAG,cAAc,UAAU;GACtC,GAAI;GACJ;EACuB;;;AAK/B,SAAS,UAAU,EACjB,WACA,GAAG,SACgD;CACnD,MAAM,EAAE,OAAO,eAAe,cAAc;AAE5C,QACE,oBAAC,OAAD;EACE,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,GAAG,sCAAsC,UAAU;EAC9D,SAAS;EACT,GAAI;EACJ;;;AAKN,SAAS,YAAY,EAAE,GAAG,SAA4C;CACpE,MAAM,EAAE,OAAO,YAAY,mBAAmB,kBAC5C,cAAc;AAEhB,QACE,oBAAC,MAAD;EACE,aAAU;EACV,IAAI;EACJ,oBACE,CAAC,QACG,GAAG,sBACH,GAAG,kBAAkB,GAAG;EAE9B,gBAAc,CAAC,CAAC;EAChB,GAAI;EACJ;;;AAKN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAoC;CAC3E,MAAM,EAAE,sBAAsB,cAAc;AAE5C,QACE,oBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;EACJ;;;AAKN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAoC;CACvE,MAAM,EAAE,OAAO,kBAAkB,cAAc;CAC/C,MAAM,OAAO,QAAQ,OAAO,OAAO,WAAW,GAAG,GAAG,MAAM;AAE1D,KAAI,CAAC,KACH,QAAO;AAGT,QACE,oBAAC,KAAD;EACE,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;YAEH;EACC"}
@@ -1,21 +1,21 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime141 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime149 from "react/jsx-runtime";
3
3
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
4
4
 
5
5
  //#region src/react/ui/hover-card.d.ts
6
6
  /** Content card that appears when hovering over an element */
7
7
  declare function HoverCard({
8
8
  ...props
9
- }: React$1.ComponentProps<typeof HoverCardPrimitive.Root>): react_jsx_runtime141.JSX.Element;
9
+ }: React$1.ComponentProps<typeof HoverCardPrimitive.Root>): react_jsx_runtime149.JSX.Element;
10
10
  declare function HoverCardTrigger({
11
11
  ...props
12
- }: React$1.ComponentProps<typeof HoverCardPrimitive.Trigger>): react_jsx_runtime141.JSX.Element;
12
+ }: React$1.ComponentProps<typeof HoverCardPrimitive.Trigger>): react_jsx_runtime149.JSX.Element;
13
13
  declare function HoverCardContent({
14
14
  className,
15
15
  align,
16
16
  sideOffset,
17
17
  ...props
18
- }: React$1.ComponentProps<typeof HoverCardPrimitive.Content>): react_jsx_runtime141.JSX.Element;
18
+ }: React$1.ComponentProps<typeof HoverCardPrimitive.Content>): react_jsx_runtime149.JSX.Element;
19
19
  //#endregion
20
20
  export { HoverCard, HoverCardContent, HoverCardTrigger };
21
21
  //# sourceMappingURL=hover-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.js","names":[],"sources":["../../../src/react/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\n/** Content card that appears when hovering over an element */\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal\n data-slot=\"hover-card-portal\"\n container={useResolvedPortalContainer()}\n >\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;;;;AASA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB;EAAK,aAAU;EAAa,GAAI;GAAS;;AAGtE,SAAS,iBAAiB,EACxB,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAQ,aAAU;EAAqB,GAAI;GAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAW,4BAA4B;YAEvC,oBAAC,mBAAmB;GAClB,aAAU;GACH;GACK;GACZ,WAAW,GACT,qeACA,UACD;GACD,GAAI;IACJ;GACwB"}
1
+ {"version":3,"file":"hover-card.js","names":[],"sources":["../../../src/react/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\n/** Content card that appears when hovering over an element */\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal\n data-slot=\"hover-card-portal\"\n container={useResolvedPortalContainer()}\n >\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;;;;AASA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB,MAApB;EAAyB,aAAU;EAAa,GAAI;EAAS;;AAGtE,SAAS,iBAAiB,EACxB,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB,SAApB;EAA4B,aAAU;EAAqB,GAAI;EAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB,QAApB;EACE,aAAU;EACV,WAAW,4BAA4B;YAEvC,oBAAC,mBAAmB,SAApB;GACE,aAAU;GACH;GACK;GACZ,WAAW,GACT,qeACA,UACD;GACD,GAAI;GACJ;EACwB"}
@@ -1,4 +1,9 @@
1
1
  import { Button, buttonVariants } from "./button.js";
2
+ import { ScrollArea, ScrollBar } from "./scroll-area.js";
3
+ import { Skeleton } from "./skeleton.js";
4
+ import { Spinner } from "./spinner.js";
5
+ import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
6
+ import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
2
7
  import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./dropdown-menu.js";
3
8
  import { Input } from "./input.js";
4
9
  import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "./select.js";
@@ -8,13 +13,11 @@ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./
8
13
  import { Alert, AlertDescription, AlertTitle } from "./alert.js";
9
14
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from "./alert-dialog.js";
10
15
  import { AspectRatio } from "./aspect-ratio.js";
11
- import { Avatar, AvatarFallback, AvatarImage } from "./avatar.js";
12
16
  import { Badge, badgeVariants } from "./badge.js";
13
17
  import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
14
18
  import { Separator } from "./separator.js";
15
19
  import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants } from "./button-group.js";
16
20
  import { Calendar, CalendarDayButton } from "./calendar.js";
17
- import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
18
21
  import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "./carousel.js";
19
22
  import { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from "./chart.js";
20
23
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible.js";
@@ -39,14 +42,11 @@ import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "./popove
39
42
  import { Progress } from "./progress.js";
40
43
  import { RadioGroup, RadioGroupItem } from "./radio-group.js";
41
44
  import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./resizable.js";
42
- import { ScrollArea, ScrollBar } from "./scroll-area.js";
43
45
  import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./sheet.js";
44
- import { Skeleton } from "./skeleton.js";
45
46
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
46
47
  import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar } from "./sidebar.js";
47
48
  import { Slider } from "./slider.js";
48
49
  import { Toaster } from "./sonner.js";
49
- import { Spinner } from "./spinner.js";
50
50
  import { Switch } from "./switch.js";
51
51
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "./tabs.js";
52
52
  import { Toggle, toggleVariants } from "./toggle.js";
@@ -1,6 +1,6 @@
1
1
  import { Button } from "./button.js";
2
2
  import * as React$1 from "react";
3
- import * as react_jsx_runtime145 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime152 from "react/jsx-runtime";
4
4
  import { VariantProps } from "class-variance-authority";
5
5
  import * as class_variance_authority_types5 from "class-variance-authority/types";
6
6
 
@@ -9,7 +9,7 @@ import * as class_variance_authority_types5 from "class-variance-authority/types
9
9
  declare function InputGroup({
10
10
  className,
11
11
  ...props
12
- }: React$1.ComponentProps<"div">): react_jsx_runtime145.JSX.Element;
12
+ }: React$1.ComponentProps<"div">): react_jsx_runtime152.JSX.Element;
13
13
  declare const inputGroupAddonVariants: (props?: ({
14
14
  align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
15
15
  } & class_variance_authority_types5.ClassProp) | undefined) => string;
@@ -18,7 +18,7 @@ declare function InputGroupAddon({
18
18
  className,
19
19
  align,
20
20
  ...props
21
- }: React$1.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime145.JSX.Element;
21
+ }: React$1.ComponentProps<"div"> & VariantProps<typeof inputGroupAddonVariants>): react_jsx_runtime152.JSX.Element;
22
22
  declare const inputGroupButtonVariants: (props?: ({
23
23
  size?: "sm" | "icon-sm" | "xs" | "icon-xs" | null | undefined;
24
24
  } & class_variance_authority_types5.ClassProp) | undefined) => string;
@@ -29,22 +29,22 @@ declare function InputGroupButton({
29
29
  variant,
30
30
  size,
31
31
  ...props
32
- }: Omit<React$1.ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): react_jsx_runtime145.JSX.Element;
32
+ }: Omit<React$1.ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): react_jsx_runtime152.JSX.Element;
33
33
  /** Static text or icon displayed within an input group */
34
34
  declare function InputGroupText({
35
35
  className,
36
36
  ...props
37
- }: React$1.ComponentProps<"span">): react_jsx_runtime145.JSX.Element;
37
+ }: React$1.ComponentProps<"span">): react_jsx_runtime152.JSX.Element;
38
38
  /** Text input styled for use within an input group */
39
39
  declare function InputGroupInput({
40
40
  className,
41
41
  ...props
42
- }: React$1.ComponentProps<"input">): react_jsx_runtime145.JSX.Element;
42
+ }: React$1.ComponentProps<"input">): react_jsx_runtime152.JSX.Element;
43
43
  /** Textarea styled for use within an input group */
44
44
  declare function InputGroupTextarea({
45
45
  className,
46
46
  ...props
47
- }: React$1.ComponentProps<"textarea">): react_jsx_runtime145.JSX.Element;
47
+ }: React$1.ComponentProps<"textarea">): react_jsx_runtime152.JSX.Element;
48
48
  //#endregion
49
49
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };
50
50
  //# sourceMappingURL=input-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.js","names":[],"sources":["../../../src/react/ui/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\n/** Container for combining input fields with addons and buttons */\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"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\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\n/** Decorative content positioned at the start or end of an input group */\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\n/** Button integrated within an input group */\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/** Static text or icon displayed within an input group */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Text input styled for use within an input group */\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Textarea styled for use within an input group */\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,WAAW,GACT,4JACA,sCAGA,mDACA,iDACA,kIACA,4HAGA,mMAGA,kLAEA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,0BAA0B,IAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;;AAGD,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,GAAG,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,MAAM;AACd,OAAK,EAAE,OAAuB,QAAQ,SAAS,CAC7C;AAEF,KAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEhE,GAAI;GACJ;;AAIN,MAAM,2BAA2B,IAC/B,+CACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WACE;EACF,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CACF;;AAGD,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,UAAU,SACV,OAAO,MACP,GAAG,SAE4C;AAC/C,QACE,oBAAC;EACO;EACN,aAAW;EACF;EACT,WAAW,GAAG,yBAAyB,EAAE,MAAM,CAAC,EAAE,UAAU;EAC5D,GAAI;GACJ;;;AAKN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,oBAAC;EACC,WAAW,GACT,0HACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC6B;AAChC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACgC;AACnC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qHACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"input-group.js","names":[],"sources":["../../../src/react/ui/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\n/** Container for combining input fields with addons and buttons */\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"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\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\n/** Decorative content positioned at the start or end of an input group */\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\n/** Button integrated within an input group */\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/** Static text or icon displayed within an input group */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Text input styled for use within an input group */\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Textarea styled for use within an input group */\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAW,GACT,4JACA,sCAGA,mDACA,iDACA,kIACA,4HAGA,mMAGA,kLAEA,UACD;EACD,GAAI;EACJ;;AAIN,MAAM,0BAA0B,IAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;;AAGD,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,oBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,GAAG,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,MAAM;AACd,OAAK,EAAE,OAAuB,QAAQ,SAAS,CAC7C;AAEF,KAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEhE,GAAI;EACJ;;AAIN,MAAM,2BAA2B,IAC/B,+CACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WACE;EACF,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CACF;;AAGD,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,UAAU,SACV,OAAO,MACP,GAAG,SAE4C;AAC/C,QACE,oBAAC,QAAD;EACQ;EACN,aAAW;EACF;EACT,WAAW,GAAG,yBAAyB,EAAE,MAAM,CAAC,EAAE,UAAU;EAC5D,GAAI;EACJ;;;AAKN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,oBAAC,QAAD;EACE,WAAW,GACT,0HACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC6B;AAChC,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACgC;AACnC,QACE,oBAAC,UAAD;EACE,aAAU;EACV,WAAW,GACT,qHACA,UACD;EACD,GAAI;EACJ"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime151 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime158 from "react/jsx-runtime";
3
3
  import { OTPInput } from "input-otp";
4
4
 
5
5
  //#region src/react/ui/input-otp.d.ts
@@ -10,12 +10,12 @@ declare function InputOTP({
10
10
  ...props
11
11
  }: React$1.ComponentProps<typeof OTPInput> & {
12
12
  containerClassName?: string;
13
- }): react_jsx_runtime151.JSX.Element;
13
+ }): react_jsx_runtime158.JSX.Element;
14
14
  /** Container grouping OTP input slots together */
15
15
  declare function InputOTPGroup({
16
16
  className,
17
17
  ...props
18
- }: React$1.ComponentProps<"div">): react_jsx_runtime151.JSX.Element;
18
+ }: React$1.ComponentProps<"div">): react_jsx_runtime158.JSX.Element;
19
19
  /** Individual character slot within the OTP input */
20
20
  declare function InputOTPSlot({
21
21
  index,
@@ -23,11 +23,11 @@ declare function InputOTPSlot({
23
23
  ...props
24
24
  }: React$1.ComponentProps<"div"> & {
25
25
  index: number;
26
- }): react_jsx_runtime151.JSX.Element;
26
+ }): react_jsx_runtime158.JSX.Element;
27
27
  /** Visual separator between OTP slot groups */
28
28
  declare function InputOTPSeparator({
29
29
  ...props
30
- }: React$1.ComponentProps<"div">): react_jsx_runtime151.JSX.Element;
30
+ }: React$1.ComponentProps<"div">): react_jsx_runtime158.JSX.Element;
31
31
  //#endregion
32
32
  export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
33
33
  //# sourceMappingURL=input-otp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.js","names":["React"],"sources":["../../../src/react/ui/input-otp.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** One-time password input with individual character slots */\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-disabled:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\n/** Container grouping OTP input slots together */\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n );\n}\n\n/** Individual character slot within the OTP input */\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"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 h-9 w-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]\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\n/** Visual separator between OTP slot groups */\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"mappings":";;;;;;;;AAOA,SAAS,SAAS,EAChB,WACA,oBACA,GAAG,SAGF;AACD,QACE,oBAAC;EACC,aAAU;EACV,oBAAoB,GAClB,mDACA,mBACD;EACD,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;GACJ;;;AAKN,SAAS,cAAc,EAAE,WAAW,GAAG,SAAsC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,qBAAqB,UAAU;EAC7C,GAAI;GACJ;;;AAKN,SAAS,aAAa,EACpB,OACA,WACA,GAAG,SAGF;CAED,MAAM,EAAE,MAAM,cAAc,aADJA,QAAM,WAAW,gBAAgB,EACC,MAAM,UAAU,EAAE;AAE5E,QACE,qBAAC;EACC,aAAU;EACV,eAAa;EACb,WAAW,GACT,4fACA,UACD;EACD,GAAI;aAEH,MACA,gBACC,oBAAC;GAAI,WAAU;aACb,oBAAC,SAAI,WAAU,6DAA6D;IACxE;GAEJ;;;AAKV,SAAS,kBAAkB,EAAE,GAAG,SAAsC;AACpE,QACE,oBAAC;EAAI,aAAU;EAAsB,MAAK;EAAY,GAAI;YACxD,oBAAC,cAAY;GACT"}
1
+ {"version":3,"file":"input-otp.js","names":["React"],"sources":["../../../src/react/ui/input-otp.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** One-time password input with individual character slots */\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-disabled:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\n/** Container grouping OTP input slots together */\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n );\n}\n\n/** Individual character slot within the OTP input */\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"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 h-9 w-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]\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\n/** Visual separator between OTP slot groups */\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"mappings":";;;;;;;;AAOA,SAAS,SAAS,EAChB,WACA,oBACA,GAAG,SAGF;AACD,QACE,oBAAC,UAAD;EACE,aAAU;EACV,oBAAoB,GAClB,mDACA,mBACD;EACD,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;EACJ;;;AAKN,SAAS,cAAc,EAAE,WAAW,GAAG,SAAsC;AAC3E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,qBAAqB,UAAU;EAC7C,GAAI;EACJ;;;AAKN,SAAS,aAAa,EACpB,OACA,WACA,GAAG,SAGF;CAED,MAAM,EAAE,MAAM,cAAc,aADJA,QAAM,WAAW,gBAAgB,EACC,MAAM,UAAU,EAAE;AAE5E,QACE,qBAAC,OAAD;EACE,aAAU;EACV,eAAa;EACb,WAAW,GACT,4fACA,UACD;EACD,GAAI;YAPN,CASG,MACA,gBACC,oBAAC,OAAD;GAAK,WAAU;aACb,oBAAC,OAAD,EAAK,WAAU,4DAA6D;GACxE,EAEJ;;;;AAKV,SAAS,kBAAkB,EAAE,GAAG,SAAsC;AACpE,QACE,oBAAC,OAAD;EAAK,aAAU;EAAsB,MAAK;EAAY,GAAI;YACxD,oBAAC,WAAD,EAAa;EACT"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime144 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime148 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/ui/input.d.ts
5
5
  /** Text input field for single-line user input */
@@ -7,7 +7,7 @@ declare function Input({
7
7
  className,
8
8
  type,
9
9
  ...props
10
- }: React$1.ComponentProps<"input">): react_jsx_runtime144.JSX.Element;
10
+ }: React$1.ComponentProps<"input">): react_jsx_runtime148.JSX.Element;
11
11
  //#endregion
12
12
  export { Input };
13
13
  //# sourceMappingURL=input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../../../src/react/ui/input.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Text input field for single-line user input */\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"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\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;;AAKA,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAwC;AAC3E,QACE,oBAAC;EACO;EACN,aAAU;EACV,WAAW,GACT,8bACA,iFACA,0GACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"input.js","names":[],"sources":["../../../src/react/ui/input.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Text input field for single-line user input */\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"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\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;;AAKA,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAwC;AAC3E,QACE,oBAAC,SAAD;EACQ;EACN,aAAU;EACV,WAAW,GACT,8bACA,iFACA,0GACA,UACD;EACD,GAAI;EACJ"}