@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":"data-table.js","names":["Table"],"sources":["../../../src/react/table/data-table.tsx"],"sourcesContent":["import { flexRender } from \"@tanstack/react-table\";\nimport { ChevronDown } from \"lucide-react\";\nimport { formatFieldLabel } from \"../lib/format\";\nimport { Button } from \"../ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from \"../ui/dropdown-menu\";\nimport { Input } from \"../ui/input\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../ui/select\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\nimport { TableWrapper } from \"./table-wrapper\";\nimport type { DataTableLabels, DataTableProps } from \"./types\";\n\n/**\n * Production-ready data table with automatic data fetching and state management\n *\n * Features:\n * - Automatic column generation from data structure\n * - Integrated with useAnalyticsQuery for data fetching\n * - Built-in loading, error, and empty states\n * - Dynamic filtering, sorting and pagination\n * - Column visibility controls\n * - Responsive design\n * - Supports opinionated mode (auto columns) and full-control mode (`children(table)`)\n *\n * @param props - Props for the DataTable component\n * @param props.queryKey - The query key to fetch the data\n * @param props.parameters - The parameters to pass to the query. Required - use `{}` if none.\n * @param props.filterColumn - The column to filter by\n * @param props.filterPlaceholder - The placeholder for the filter input\n * @param props.children - Optional children for full control mode\n * @returns - The rendered data table component\n *\n * @example\n * // Opinionated mode\n * <DataTable\n * queryKey=\"users-list\"\n * parameters={{ status: \"active\" }}\n * filterColumn=\"email\"\n * filterPlaceholder=\"Filter by email...\"\n * />\n * @example\n * // full control mode\n * <DataTable queryKey=\"users-list\" parameters={{ status: \"active\" }}>\n * {(table) => (\n * <div>\n * <h2>Custom Table UI</h2>\n * {table.getRowModel().rows.map(row => (\n * <div key={row.id}>{row.original.name}</div>\n * ))}\n * </div>\n * )}\n * </DataTable>\n */\nexport function DataTable(props: DataTableProps) {\n const {\n parameters,\n queryKey,\n filterColumn,\n filterPlaceholder,\n transform,\n labels,\n ariaLabel,\n testId,\n className,\n enableRowSelection,\n onRowSelectionChange,\n children,\n pageSize = 10,\n pageSizeOptions = [10, 25, 50, 100],\n } = props;\n\n const defaultLabels: Required<DataTableLabels> = {\n columnsButton: \"Columns\",\n noResults: \"No results found.\",\n rowsFound: `\\${count} row(s) found`,\n previousButton: \"Previous\",\n nextButton: \"Next\",\n rowsPerPage: \"Rows per page\",\n showing: `Showing \\${from} to \\${to} of \\${total}`,\n };\n\n const finalLabels = { ...defaultLabels, ...labels };\n\n return (\n <TableWrapper\n queryKey={queryKey}\n parameters={parameters}\n ariaLabel={ariaLabel}\n testId={testId}\n className={className}\n transformer={transform}\n enableRowSelection={enableRowSelection}\n onRowSelectionChange={onRowSelectionChange}\n pageSize={pageSize}\n >\n {(table) => {\n if (children) {\n return children(table);\n }\n\n const data = table.options.data;\n\n const defaultFilterColumn =\n filterColumn ||\n (data && data.length > 0\n ? Object.keys(data[0] as Record<string, any>).find(\n (key) =>\n typeof (data[0] as Record<string, any>)[key] === \"string\",\n )\n : null);\n\n const totalRows = table.getFilteredRowModel().rows.length;\n const currentPage = table.getState().pagination.pageIndex + 1;\n const currentPageSize = table.getState().pagination.pageSize;\n const fromRow =\n totalRows === 0 ? 0 : (currentPage - 1) * currentPageSize + 1;\n const toRow = Math.min(currentPage * currentPageSize, totalRows);\n\n return (\n <div className=\"w-full\">\n <div className=\"flex items-center py-4 gap-2\">\n {defaultFilterColumn && (\n <Input\n placeholder={\n filterPlaceholder ||\n `Filter by ${formatFieldLabel(defaultFilterColumn)}...`\n }\n value={\n (table\n .getColumn(defaultFilterColumn)\n ?.getFilterValue() as string) ?? \"\"\n }\n onChange={(event) =>\n table\n .getColumn(defaultFilterColumn)\n ?.setFilterValue(event.target.value)\n }\n className=\"max-w-sm\"\n />\n )}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" className=\"ml-auto\">\n {finalLabels.columnsButton}{\" \"}\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {table\n .getAllColumns()\n .filter((column) => column.getCanHide())\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) =>\n column.toggleVisibility(!!value)\n }\n >\n {formatFieldLabel(column.id)}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <div className=\"overflow-hidden rounded-md border border-border\">\n <div className=\"max-h-[600px] overflow-y-auto\">\n <Table>\n <TableHeader className=\"sticky top-0 bg-background z-10\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const isSelectColumn = header.column.id === \"select\";\n return (\n <TableHead\n key={header.id}\n style={{\n width: header.getSize(),\n position: \"relative\",\n }}\n className={\n isSelectColumn ? \"w-[40px] p-0\" : undefined\n }\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => {\n const isSelectColumn = cell.column.id === \"select\";\n return (\n <TableCell\n key={cell.id}\n style={{\n width: cell.column.getSize(),\n }}\n className={\n isSelectColumn ? \"w-[40px] p-0\" : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n );\n })}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={table.getAllColumns().length}\n className=\"h-24 text-center\"\n >\n {finalLabels.noResults}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n </div>\n <div className=\"flex items-center justify-between py-4\">\n <div className=\"flex items-center gap-6\">\n <div className=\"text-foreground text-sm\">\n {totalRows > 0\n ? finalLabels.showing\n .replace(`\\${from}`, fromRow.toString())\n .replace(`\\${to}`, toRow.toString())\n .replace(`\\${total}`, totalRows.toString())\n : finalLabels.noResults}\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-foreground\">\n {finalLabels.rowsPerPage}\n </span>\n <Select\n value={currentPageSize.toString()}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"w-[70px]\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={size.toString()}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"space-x-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n {finalLabels.previousButton}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n {finalLabels.nextButton}\n </Button>\n </div>\n </div>\n </div>\n );\n }}\n </TableWrapper>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"data-table.js","names":["Table"],"sources":["../../../src/react/table/data-table.tsx"],"sourcesContent":["import { flexRender } from \"@tanstack/react-table\";\nimport { ChevronDown } from \"lucide-react\";\nimport { formatFieldLabel } from \"../lib/format\";\nimport { Button } from \"../ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from \"../ui/dropdown-menu\";\nimport { Input } from \"../ui/input\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../ui/select\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../ui/table\";\nimport { TableWrapper } from \"./table-wrapper\";\nimport type { DataTableLabels, DataTableProps } from \"./types\";\n\n/**\n * Production-ready data table with automatic data fetching and state management\n *\n * Features:\n * - Automatic column generation from data structure\n * - Integrated with useAnalyticsQuery for data fetching\n * - Built-in loading, error, and empty states\n * - Dynamic filtering, sorting and pagination\n * - Column visibility controls\n * - Responsive design\n * - Supports opinionated mode (auto columns) and full-control mode (`children(table)`)\n *\n * @param props - Props for the DataTable component\n * @param props.queryKey - The query key to fetch the data\n * @param props.parameters - The parameters to pass to the query. Required - use `{}` if none.\n * @param props.filterColumn - The column to filter by\n * @param props.filterPlaceholder - The placeholder for the filter input\n * @param props.children - Optional children for full control mode\n * @returns - The rendered data table component\n *\n * @example\n * // Opinionated mode\n * <DataTable\n * queryKey=\"users-list\"\n * parameters={{ status: \"active\" }}\n * filterColumn=\"email\"\n * filterPlaceholder=\"Filter by email...\"\n * />\n * @example\n * // full control mode\n * <DataTable queryKey=\"users-list\" parameters={{ status: \"active\" }}>\n * {(table) => (\n * <div>\n * <h2>Custom Table UI</h2>\n * {table.getRowModel().rows.map(row => (\n * <div key={row.id}>{row.original.name}</div>\n * ))}\n * </div>\n * )}\n * </DataTable>\n */\nexport function DataTable(props: DataTableProps) {\n const {\n parameters,\n queryKey,\n filterColumn,\n filterPlaceholder,\n transform,\n labels,\n ariaLabel,\n testId,\n className,\n enableRowSelection,\n onRowSelectionChange,\n children,\n pageSize = 10,\n pageSizeOptions = [10, 25, 50, 100],\n } = props;\n\n const defaultLabels: Required<DataTableLabels> = {\n columnsButton: \"Columns\",\n noResults: \"No results found.\",\n rowsFound: `\\${count} row(s) found`,\n previousButton: \"Previous\",\n nextButton: \"Next\",\n rowsPerPage: \"Rows per page\",\n showing: `Showing \\${from} to \\${to} of \\${total}`,\n };\n\n const finalLabels = { ...defaultLabels, ...labels };\n\n return (\n <TableWrapper\n queryKey={queryKey}\n parameters={parameters}\n ariaLabel={ariaLabel}\n testId={testId}\n className={className}\n transformer={transform}\n enableRowSelection={enableRowSelection}\n onRowSelectionChange={onRowSelectionChange}\n pageSize={pageSize}\n >\n {(table) => {\n if (children) {\n return children(table);\n }\n\n const data = table.options.data;\n\n const defaultFilterColumn =\n filterColumn ||\n (data && data.length > 0\n ? Object.keys(data[0] as Record<string, any>).find(\n (key) =>\n typeof (data[0] as Record<string, any>)[key] === \"string\",\n )\n : null);\n\n const totalRows = table.getFilteredRowModel().rows.length;\n const currentPage = table.getState().pagination.pageIndex + 1;\n const currentPageSize = table.getState().pagination.pageSize;\n const fromRow =\n totalRows === 0 ? 0 : (currentPage - 1) * currentPageSize + 1;\n const toRow = Math.min(currentPage * currentPageSize, totalRows);\n\n return (\n <div className=\"w-full\">\n <div className=\"flex items-center py-4 gap-2\">\n {defaultFilterColumn && (\n <Input\n placeholder={\n filterPlaceholder ||\n `Filter by ${formatFieldLabel(defaultFilterColumn)}...`\n }\n value={\n (table\n .getColumn(defaultFilterColumn)\n ?.getFilterValue() as string) ?? \"\"\n }\n onChange={(event) =>\n table\n .getColumn(defaultFilterColumn)\n ?.setFilterValue(event.target.value)\n }\n className=\"max-w-sm\"\n />\n )}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" className=\"ml-auto\">\n {finalLabels.columnsButton}{\" \"}\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n {table\n .getAllColumns()\n .filter((column) => column.getCanHide())\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) =>\n column.toggleVisibility(!!value)\n }\n >\n {formatFieldLabel(column.id)}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n <div className=\"overflow-hidden rounded-md border border-border\">\n <div className=\"max-h-[600px] overflow-y-auto\">\n <Table>\n <TableHeader className=\"sticky top-0 bg-background z-10\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const isSelectColumn = header.column.id === \"select\";\n return (\n <TableHead\n key={header.id}\n style={{\n width: header.getSize(),\n position: \"relative\",\n }}\n className={\n isSelectColumn ? \"w-[40px] p-0\" : undefined\n }\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => {\n const isSelectColumn = cell.column.id === \"select\";\n return (\n <TableCell\n key={cell.id}\n style={{\n width: cell.column.getSize(),\n }}\n className={\n isSelectColumn ? \"w-[40px] p-0\" : undefined\n }\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </TableCell>\n );\n })}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={table.getAllColumns().length}\n className=\"h-24 text-center\"\n >\n {finalLabels.noResults}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n </div>\n <div className=\"flex items-center justify-between py-4\">\n <div className=\"flex items-center gap-6\">\n <div className=\"text-foreground text-sm\">\n {totalRows > 0\n ? finalLabels.showing\n .replace(`\\${from}`, fromRow.toString())\n .replace(`\\${to}`, toRow.toString())\n .replace(`\\${total}`, totalRows.toString())\n : finalLabels.noResults}\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm text-foreground\">\n {finalLabels.rowsPerPage}\n </span>\n <Select\n value={currentPageSize.toString()}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"w-[70px]\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={size.toString()}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <div className=\"space-x-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n {finalLabels.previousButton}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n {finalLabels.nextButton}\n </Button>\n </div>\n </div>\n </div>\n );\n }}\n </TableWrapper>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"empty.js","names":[],"sources":["../../../src/react/table/empty.tsx"],"sourcesContent":["export function EmptyState() {\n return (\n <div className=\"w-full p-8 text-center\">\n <p className=\"text-sm text-muted-foreground\">No data available</p>\n </div>\n );\n}\n"],"mappings":";;;AAAA,SAAgB,aAAa;AAC3B,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAE,WAAU;aAAgC;IAAqB;GAC9D"}
1
+ {"version":3,"file":"empty.js","names":[],"sources":["../../../src/react/table/empty.tsx"],"sourcesContent":["export function EmptyState() {\n return (\n <div className=\"w-full p-8 text-center\">\n <p className=\"text-sm text-muted-foreground\">No data available</p>\n </div>\n );\n}\n"],"mappings":";;;AAAA,SAAgB,aAAa;AAC3B,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,KAAD;GAAG,WAAU;aAAgC;GAAqB;EAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","names":[],"sources":["../../../src/react/table/error.tsx"],"sourcesContent":["export function ErrorState({ error }: { error: string }) {\n return (\n <div className=\"w-full p-8 text-center\">\n <p className=\"text-sm text-destructive\">Error loading table: {error}</p>\n </div>\n );\n}\n"],"mappings":";;;AAAA,SAAgB,WAAW,EAAE,SAA4B;AACvD,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAE,WAAU;cAA2B,yBAAsB;IAAU;GACpE"}
1
+ {"version":3,"file":"error.js","names":[],"sources":["../../../src/react/table/error.tsx"],"sourcesContent":["export function ErrorState({ error }: { error: string }) {\n return (\n <div className=\"w-full p-8 text-center\">\n <p className=\"text-sm text-destructive\">Error loading table: {error}</p>\n </div>\n );\n}\n"],"mappings":";;;AAAA,SAAgB,WAAW,EAAE,SAA4B;AACvD,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,qBAAC,KAAD;GAAG,WAAU;aAAb,CAAwC,yBAAsB,MAAU;;EACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"loading.js","names":[],"sources":["../../../src/react/table/loading.tsx"],"sourcesContent":["export function LoadingSkeleton() {\n return (\n <div className=\"w-full space-y-3 mt-2\">\n <div className=\"flex items-center gap-2 mt-4\">\n <div className=\"h-10 bg-muted rounded animate-pulse flex-1 max-w-sm\" />\n <div className=\"h-10 bg-muted rounded animate-pulse w-24 ml-auto\" />\n </div>\n\n <div className=\"rounded-md border overflow-hidden\">\n <div className=\"border-b bg-secondary p-4\">\n <div className=\"flex gap-4\">\n <div className=\"h-8 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-8 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-8 bg-muted rounded animate-pulse flex-1\" />\n </div>\n </div>\n\n {Array.from({ length: 5 }).map(() => (\n <div\n key={`loading-row-${Math.random()}`}\n className=\"border-b p-4 last:border-b-0\"\n >\n <div className=\"flex gap-4\">\n <div className=\"h-6 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-6 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-6 bg-muted rounded animate-pulse flex-1\" />\n </div>\n </div>\n ))}\n </div>\n\n <div className=\"flex items-center justify-end gap-2\">\n <div className=\"h-4 bg-muted rounded animate-pulse w-32\" />\n <div className=\"h-9 bg-muted rounded animate-pulse w-20\" />\n <div className=\"h-9 bg-muted rounded animate-pulse w-20\" />\n </div>\n </div>\n );\n}\n"],"mappings":";;;AAAA,SAAgB,kBAAkB;AAChC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC,SAAI,WAAU,wDAAwD,EACvE,oBAAC,SAAI,WAAU,qDAAqD;KAChE;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAI,WAAU;eACb,qBAAC;MAAI,WAAU;;OACb,oBAAC,SAAI,WAAU,8CAA8C;OAC7D,oBAAC,SAAI,WAAU,8CAA8C;OAC7D,oBAAC,SAAI,WAAU,8CAA8C;;OACzD;MACF,EAEL,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,UACzB,oBAAC;KAEC,WAAU;eAEV,qBAAC;MAAI,WAAU;;OACb,oBAAC,SAAI,WAAU,8CAA8C;OAC7D,oBAAC,SAAI,WAAU,8CAA8C;OAC7D,oBAAC,SAAI,WAAU,8CAA8C;;OACzD;OAPD,eAAe,KAAK,QAAQ,GAQ7B,CACN;KACE;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC,SAAI,WAAU,4CAA4C;KAC3D,oBAAC,SAAI,WAAU,4CAA4C;KAC3D,oBAAC,SAAI,WAAU,4CAA4C;;KACvD;;GACF"}
1
+ {"version":3,"file":"loading.js","names":[],"sources":["../../../src/react/table/loading.tsx"],"sourcesContent":["export function LoadingSkeleton() {\n return (\n <div className=\"w-full space-y-3 mt-2\">\n <div className=\"flex items-center gap-2 mt-4\">\n <div className=\"h-10 bg-muted rounded animate-pulse flex-1 max-w-sm\" />\n <div className=\"h-10 bg-muted rounded animate-pulse w-24 ml-auto\" />\n </div>\n\n <div className=\"rounded-md border overflow-hidden\">\n <div className=\"border-b bg-secondary p-4\">\n <div className=\"flex gap-4\">\n <div className=\"h-8 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-8 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-8 bg-muted rounded animate-pulse flex-1\" />\n </div>\n </div>\n\n {Array.from({ length: 5 }).map(() => (\n <div\n key={`loading-row-${Math.random()}`}\n className=\"border-b p-4 last:border-b-0\"\n >\n <div className=\"flex gap-4\">\n <div className=\"h-6 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-6 bg-muted rounded animate-pulse flex-1\" />\n <div className=\"h-6 bg-muted rounded animate-pulse flex-1\" />\n </div>\n </div>\n ))}\n </div>\n\n <div className=\"flex items-center justify-end gap-2\">\n <div className=\"h-4 bg-muted rounded animate-pulse w-32\" />\n <div className=\"h-9 bg-muted rounded animate-pulse w-20\" />\n <div className=\"h-9 bg-muted rounded animate-pulse w-20\" />\n </div>\n </div>\n );\n}\n"],"mappings":";;;AAAA,SAAgB,kBAAkB;AAChC,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,OAAD,EAAK,WAAU,uDAAwD,GACvE,oBAAC,OAAD,EAAK,WAAU,oDAAqD,EAChE;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,OAAD;KAAK,WAAU;eACb,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD,EAAK,WAAU,6CAA8C;OAC7D,oBAAC,OAAD,EAAK,WAAU,6CAA8C;OAC7D,oBAAC,OAAD,EAAK,WAAU,6CAA8C;OACzD;;KACF,GAEL,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,UACzB,oBAAC,OAAD;KAEE,WAAU;eAEV,qBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,oBAAC,OAAD,EAAK,WAAU,6CAA8C;OAC7D,oBAAC,OAAD,EAAK,WAAU,6CAA8C;OAC7D,oBAAC,OAAD,EAAK,WAAU,6CAA8C;OACzD;;KACF,EARC,eAAe,KAAK,QAAQ,GAQ7B,CACN,CACE;;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf;KACE,oBAAC,OAAD,EAAK,WAAU,2CAA4C;KAC3D,oBAAC,OAAD,EAAK,WAAU,2CAA4C;KAC3D,oBAAC,OAAD,EAAK,WAAU,2CAA4C;KACvD;;GACF"}
@@ -1,6 +1,6 @@
1
1
  import { useAnalyticsQuery } from "../hooks/use-analytics-query.js";
2
- import { SAFE_KEY_REGEX, formatChartValue, formatFieldLabel } from "../lib/format.js";
3
2
  import { Button } from "../ui/button.js";
3
+ import { SAFE_KEY_REGEX, formatChartValue, formatFieldLabel } from "../lib/format.js";
4
4
  import { Checkbox } from "../ui/checkbox.js";
5
5
  import { EmptyState } from "./empty.js";
6
6
  import { ErrorState } from "./error.js";
@@ -8,8 +8,8 @@ import { LoadingSkeleton } from "./loading.js";
8
8
  import "../index.js";
9
9
  import { useEffect, useMemo, useState } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
- import { getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
12
11
  import { ArrowUpDown } from "lucide-react";
12
+ import { getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
13
13
 
14
14
  //#region src/react/table/table-wrapper.tsx
15
15
  const CHECKBOX_COLUMN_WIDTH = 40;
@@ -1 +1 @@
1
- {"version":3,"file":"table-wrapper.js","names":[],"sources":["../../../src/react/table/table-wrapper.tsx"],"sourcesContent":["import {\n type Column,\n type ColumnFiltersState,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n type SortingState,\n type Table,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\";\nimport { ArrowUpDown } from \"lucide-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAnalyticsQuery } from \"..\";\nimport {\n formatChartValue,\n formatFieldLabel,\n SAFE_KEY_REGEX,\n} from \"../lib/format\";\nimport { Button } from \"../ui/button\";\nimport { Checkbox } from \"../ui/checkbox\";\nimport { EmptyState } from \"./empty\";\nimport { ErrorState } from \"./error\";\nimport { LoadingSkeleton } from \"./loading\";\nimport type { TableWrapperProps } from \"./types\";\n\nconst CHECKBOX_COLUMN_WIDTH = 40;\n\n/**\n * Wrapper component for tables with automatic data fetching and state management\n * This component handles:\n * - Data fetching via useAnalyticsQuery\n * - Loading, error, and empty states with proper UI components\n * - Data transformation (optional)\n * - Dynamic column generation from data structure\n * - TanStack Table instance creation with all features (sorting, filtering, pagination, etc.)\n *\n * @template TRaw - The raw data type returned by the analytics query\n * @template TProcessed - The processed data type after transformation\n *\n * @param props - Props for the TableWrapper component\n * @param props.queryKey - The query key to fetch the data\n * @param props.parameters - The parameters to pass to the query\n * @param props.transformer - Optional function to transform raw data before creating table\n * @param props.children - Render function that receives the TanStack Table instance\n * @param props.className - Optional CSS class name for the wrapper\n * @param props.ariaLabel - Optional accessibility label\n * @param props.testId - Optional test ID for testing\n *\n * @returns The rendered table with state management\n */\nexport function TableWrapper<TRaw = any, TProcessed = any>(\n props: TableWrapperProps<TRaw, TProcessed>,\n) {\n const {\n queryKey,\n parameters,\n transformer,\n children,\n className,\n ariaLabel,\n testId,\n enableRowSelection = false,\n onRowSelectionChange,\n pageSize = 10,\n } = props;\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n\n const { data, loading, error } = useAnalyticsQuery<TRaw[]>(\n queryKey,\n parameters,\n );\n\n useEffect(() => {\n if (onRowSelectionChange && enableRowSelection) {\n onRowSelectionChange(rowSelection);\n }\n }, [rowSelection, onRowSelectionChange, enableRowSelection]);\n\n const hasData = data && data.length > 0;\n\n const processedData = hasData\n ? transformer\n ? transformer(data)\n : (data as unknown as TProcessed[])\n : [];\n\n const tableColumns = useMemo(() => {\n if (!hasData) return [];\n\n if (!processedData[0] || typeof processedData[0] !== \"object\") {\n console.warn(\"Invalid data format for DataTable\");\n return [];\n }\n\n const dataColumns = Object.keys(processedData[0] as object)\n .filter((key) => SAFE_KEY_REGEX.test(key))\n .map((key) => {\n const formattedLabel = formatFieldLabel(key);\n return {\n accessorKey: key,\n header: ({ column }: { column: Column<TProcessed> }) => {\n return (\n <Button\n variant=\"ghost\"\n onClick={() =>\n column.toggleSorting(column.getIsSorted() === \"asc\")\n }\n className=\"h-8 px-2\"\n >\n {formattedLabel}\n <ArrowUpDown className=\"ml-2 h-4 w-4\" />\n </Button>\n );\n },\n cell: ({ row }: { row: Row<TProcessed> }) => {\n const value = row.getValue(key);\n if (typeof value === \"number\" || Number.isFinite(Number(value))) {\n return (\n <div className=\"text-right font-mono\">\n {formatChartValue(Number(value), key)}\n </div>\n );\n }\n return <div>{String(value)}</div>;\n },\n };\n });\n\n if (enableRowSelection) {\n return [\n {\n id: \"select\",\n maxSize: CHECKBOX_COLUMN_WIDTH,\n minSize: CHECKBOX_COLUMN_WIDTH,\n header: ({ table }: { table: Table<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) =>\n table.toggleAllPageRowsSelected(!!value)\n }\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }: { row: Row<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n </div>\n ),\n enableSorting: false,\n enableHiding: false,\n },\n ...dataColumns,\n ];\n }\n\n return dataColumns;\n }, [hasData, processedData, enableRowSelection]);\n\n const table = useReactTable({\n data: processedData,\n columns: tableColumns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n initialState: {\n pagination: {\n pageSize: pageSize,\n },\n },\n });\n\n if (loading) return <LoadingSkeleton />;\n if (error)\n return (\n <ErrorState error={typeof error === \"string\" ? error : \"Unknown error\"} />\n );\n\n if (!hasData) return <EmptyState />;\n\n return (\n <section className={className} aria-label={ariaLabel} data-testid={testId}>\n {children(table)}\n </section>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"table-wrapper.js","names":[],"sources":["../../../src/react/table/table-wrapper.tsx"],"sourcesContent":["import {\n type Column,\n type ColumnFiltersState,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n type SortingState,\n type Table,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\";\nimport { ArrowUpDown } from \"lucide-react\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useAnalyticsQuery } from \"..\";\nimport {\n formatChartValue,\n formatFieldLabel,\n SAFE_KEY_REGEX,\n} from \"../lib/format\";\nimport { Button } from \"../ui/button\";\nimport { Checkbox } from \"../ui/checkbox\";\nimport { EmptyState } from \"./empty\";\nimport { ErrorState } from \"./error\";\nimport { LoadingSkeleton } from \"./loading\";\nimport type { TableWrapperProps } from \"./types\";\n\nconst CHECKBOX_COLUMN_WIDTH = 40;\n\n/**\n * Wrapper component for tables with automatic data fetching and state management\n * This component handles:\n * - Data fetching via useAnalyticsQuery\n * - Loading, error, and empty states with proper UI components\n * - Data transformation (optional)\n * - Dynamic column generation from data structure\n * - TanStack Table instance creation with all features (sorting, filtering, pagination, etc.)\n *\n * @template TRaw - The raw data type returned by the analytics query\n * @template TProcessed - The processed data type after transformation\n *\n * @param props - Props for the TableWrapper component\n * @param props.queryKey - The query key to fetch the data\n * @param props.parameters - The parameters to pass to the query\n * @param props.transformer - Optional function to transform raw data before creating table\n * @param props.children - Render function that receives the TanStack Table instance\n * @param props.className - Optional CSS class name for the wrapper\n * @param props.ariaLabel - Optional accessibility label\n * @param props.testId - Optional test ID for testing\n *\n * @returns The rendered table with state management\n */\nexport function TableWrapper<TRaw = any, TProcessed = any>(\n props: TableWrapperProps<TRaw, TProcessed>,\n) {\n const {\n queryKey,\n parameters,\n transformer,\n children,\n className,\n ariaLabel,\n testId,\n enableRowSelection = false,\n onRowSelectionChange,\n pageSize = 10,\n } = props;\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n\n const { data, loading, error } = useAnalyticsQuery<TRaw[]>(\n queryKey,\n parameters,\n );\n\n useEffect(() => {\n if (onRowSelectionChange && enableRowSelection) {\n onRowSelectionChange(rowSelection);\n }\n }, [rowSelection, onRowSelectionChange, enableRowSelection]);\n\n const hasData = data && data.length > 0;\n\n const processedData = hasData\n ? transformer\n ? transformer(data)\n : (data as unknown as TProcessed[])\n : [];\n\n const tableColumns = useMemo(() => {\n if (!hasData) return [];\n\n if (!processedData[0] || typeof processedData[0] !== \"object\") {\n console.warn(\"Invalid data format for DataTable\");\n return [];\n }\n\n const dataColumns = Object.keys(processedData[0] as object)\n .filter((key) => SAFE_KEY_REGEX.test(key))\n .map((key) => {\n const formattedLabel = formatFieldLabel(key);\n return {\n accessorKey: key,\n header: ({ column }: { column: Column<TProcessed> }) => {\n return (\n <Button\n variant=\"ghost\"\n onClick={() =>\n column.toggleSorting(column.getIsSorted() === \"asc\")\n }\n className=\"h-8 px-2\"\n >\n {formattedLabel}\n <ArrowUpDown className=\"ml-2 h-4 w-4\" />\n </Button>\n );\n },\n cell: ({ row }: { row: Row<TProcessed> }) => {\n const value = row.getValue(key);\n if (typeof value === \"number\" || Number.isFinite(Number(value))) {\n return (\n <div className=\"text-right font-mono\">\n {formatChartValue(Number(value), key)}\n </div>\n );\n }\n return <div>{String(value)}</div>;\n },\n };\n });\n\n if (enableRowSelection) {\n return [\n {\n id: \"select\",\n maxSize: CHECKBOX_COLUMN_WIDTH,\n minSize: CHECKBOX_COLUMN_WIDTH,\n header: ({ table }: { table: Table<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) =>\n table.toggleAllPageRowsSelected(!!value)\n }\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }: { row: Row<TProcessed> }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n </div>\n ),\n enableSorting: false,\n enableHiding: false,\n },\n ...dataColumns,\n ];\n }\n\n return dataColumns;\n }, [hasData, processedData, enableRowSelection]);\n\n const table = useReactTable({\n data: processedData,\n columns: tableColumns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n initialState: {\n pagination: {\n pageSize: pageSize,\n },\n },\n });\n\n if (loading) return <LoadingSkeleton />;\n if (error)\n return (\n <ErrorState error={typeof error === \"string\" ? error : \"Unknown error\"} />\n );\n\n if (!hasData) return <EmptyState />;\n\n return (\n <section className={className} aria-label={ariaLabel} data-testid={testId}>\n {children(table)}\n </section>\n );\n}\n"],"mappings":"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"}
@@ -1,29 +1,29 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime4 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime14 from "react/jsx-runtime";
3
3
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
4
4
 
5
5
  //#region src/react/ui/accordion.d.ts
6
6
  /** Collapsible content sections organized in a vertical stack */
7
7
  declare function Accordion({
8
8
  ...props
9
- }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime4.JSX.Element;
9
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime14.JSX.Element;
10
10
  /** Individual collapsible section within an accordion */
11
11
  declare function AccordionItem({
12
12
  className,
13
13
  ...props
14
- }: React$1.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime4.JSX.Element;
14
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Item>): react_jsx_runtime14.JSX.Element;
15
15
  /** Clickable button that triggers accordion content visibility */
16
16
  declare function AccordionTrigger({
17
17
  className,
18
18
  children,
19
19
  ...props
20
- }: React$1.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime4.JSX.Element;
20
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Trigger>): react_jsx_runtime14.JSX.Element;
21
21
  /** Content area that expands and collapses within an accordion item */
22
22
  declare function AccordionContent({
23
23
  className,
24
24
  children,
25
25
  ...props
26
- }: React$1.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime4.JSX.Element;
26
+ }: React$1.ComponentProps<typeof AccordionPrimitive.Content>): react_jsx_runtime14.JSX.Element;
27
27
  //#endregion
28
28
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
29
29
  //# sourceMappingURL=accordion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","names":[],"sources":["../../../src/react/ui/accordion.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAOS,SAAA;;GAEN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,kBAAA,CAAA,GAAA,CAAA;;AARS,iBAavD,aAAA,CAPS;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAUf,OAAA,CAAM,cAVS,CAAA,OAUa,kBAAA,CAAmB,IAVhC,CAAA,CAAA,EAUqC,kBAAA,CAAA,GAAA,CAAA,OAVrC;;iBAqBT,gBAAA,CAnByC;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAuB/C,OAAA,CAAM,cAvByC,CAAA,OAuBnB,kBAAA,CAAmB,OAvBA,CAAA,CAAA,EAuBQ,kBAAA,CAAA,GAAA,CAAA,OAvBR;;iBA0CzC,gBAAA,CA1C8C;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA8CpD,OAAA,CAAM,cA9C8C,CAAA,OA8CxB,kBAAA,CAAmB,OA9CK,CAAA,CAAA,EA8CG,kBAAA,CAAA,GAAA,CAAA,OA9CH"}
1
+ {"version":3,"file":"accordion.d.ts","names":[],"sources":["../../../src/react/ui/accordion.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAOS,SAAA;;GAEN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,mBAAA,CAAA,GAAA,CAAA;;AARS,iBAavD,aAAA,CAPS;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAUf,OAAA,CAAM,cAVS,CAAA,OAUa,kBAAA,CAAmB,IAVhC,CAAA,CAAA,EAUqC,mBAAA,CAAA,GAAA,CAAA,OAVrC;;iBAqBT,gBAAA,CAnByC;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAuB/C,OAAA,CAAM,cAvByC,CAAA,OAuBnB,kBAAA,CAAmB,OAvBA,CAAA,CAAA,EAuBQ,mBAAA,CAAA,GAAA,CAAA,OAvBR;;iBA0CzC,gBAAA,CA1C8C;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA8CpD,OAAA,CAAM,cA9C8C,CAAA,OA8CxB,kBAAA,CAAmB,OA9CK,CAAA,CAAA,EA8CG,mBAAA,CAAA,GAAA,CAAA,OA9CH"}
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","names":[],"sources":["../../../src/react/ui/accordion.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Collapsible content sections organized in a vertical stack */\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\n/** Individual collapsible section within an accordion */\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\n/** Clickable button that triggers accordion content visibility */\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\n/** Content area that expands and collapses within an accordion item */\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;;;;;AAOA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB;EAAK,aAAU;EAAY,GAAI;GAAS;;;AAIrE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;GACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAO,WAAU;YACnC,qBAAC,mBAAmB;GAClB,aAAU;GACV,WAAW,GACT,8SACA,UACD;GACD,GAAI;cAEH,UACD,oBAAC,mBAAgB,WAAU,gHAAgH;IAChH;GACH;;;AAKhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAU;EACV,GAAI;YAEJ,oBAAC;GAAI,WAAW,GAAG,aAAa,UAAU;GAAG;IAAe;GACjC"}
1
+ {"version":3,"file":"accordion.js","names":[],"sources":["../../../src/react/ui/accordion.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Collapsible content sections organized in a vertical stack */\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\n/** Individual collapsible section within an accordion */\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n );\n}\n\n/** Clickable button that triggers accordion content visibility */\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\n/** Content area that expands and collapses within an accordion item */\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;;;;;AAOA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB,MAApB;EAAyB,aAAU;EAAY,GAAI;EAAS;;;AAIrE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAAC,mBAAmB,MAApB;EACE,aAAU;EACV,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;EACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB,QAApB;EAA2B,WAAU;YACnC,qBAAC,mBAAmB,SAApB;GACE,aAAU;GACV,WAAW,GACT,8SACA,UACD;GACD,GAAI;aANN,CAQG,UACD,oBAAC,iBAAD,EAAiB,WAAU,+GAAgH,EAChH;;EACH;;;AAKhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB,SAApB;EACE,aAAU;EACV,WAAU;EACV,GAAI;YAEJ,oBAAC,OAAD;GAAK,WAAW,GAAG,aAAa,UAAU;GAAG;GAAe;EACjC"}
@@ -1,61 +1,61 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime11 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
3
3
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
4
4
 
5
5
  //#region src/react/ui/alert-dialog.d.ts
6
6
  /** Modal dialog that interrupts the user with critical information requiring immediate action */
7
7
  declare function AlertDialog({
8
8
  ...props
9
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime11.JSX.Element;
9
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime21.JSX.Element;
10
10
  /** Button that triggers the alert dialog to open */
11
11
  declare function AlertDialogTrigger({
12
12
  ...props
13
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime11.JSX.Element;
13
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime21.JSX.Element;
14
14
  /** Portal container for rendering alert dialog content outside the DOM hierarchy */
15
15
  declare function AlertDialogPortal({
16
16
  container,
17
17
  ...props
18
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime11.JSX.Element;
18
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime21.JSX.Element;
19
19
  /** Background overlay that dims content behind the alert dialog */
20
20
  declare function AlertDialogOverlay({
21
21
  className,
22
22
  ...props
23
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime11.JSX.Element;
23
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Overlay>): react_jsx_runtime21.JSX.Element;
24
24
  /** Main content container for the alert dialog */
25
25
  declare function AlertDialogContent({
26
26
  className,
27
27
  ...props
28
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime11.JSX.Element;
28
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime21.JSX.Element;
29
29
  /** Header section containing title and description */
30
30
  declare function AlertDialogHeader({
31
31
  className,
32
32
  ...props
33
- }: React$1.ComponentProps<"div">): react_jsx_runtime11.JSX.Element;
33
+ }: React$1.ComponentProps<"div">): react_jsx_runtime21.JSX.Element;
34
34
  /** Footer section containing action buttons */
35
35
  declare function AlertDialogFooter({
36
36
  className,
37
37
  ...props
38
- }: React$1.ComponentProps<"div">): react_jsx_runtime11.JSX.Element;
38
+ }: React$1.ComponentProps<"div">): react_jsx_runtime21.JSX.Element;
39
39
  /** Title heading for the alert dialog */
40
40
  declare function AlertDialogTitle({
41
41
  className,
42
42
  ...props
43
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime11.JSX.Element;
43
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Title>): react_jsx_runtime21.JSX.Element;
44
44
  /** Descriptive text explaining the alert */
45
45
  declare function AlertDialogDescription({
46
46
  className,
47
47
  ...props
48
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime11.JSX.Element;
48
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Description>): react_jsx_runtime21.JSX.Element;
49
49
  /** Primary action button that confirms the alert */
50
50
  declare function AlertDialogAction({
51
51
  className,
52
52
  ...props
53
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime11.JSX.Element;
53
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Action>): react_jsx_runtime21.JSX.Element;
54
54
  /** Cancel button that dismisses the alert dialog */
55
55
  declare function AlertDialogCancel({
56
56
  className,
57
57
  ...props
58
- }: React$1.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime11.JSX.Element;
58
+ }: React$1.ComponentProps<typeof AlertDialogPrimitive.Cancel>): react_jsx_runtime21.JSX.Element;
59
59
  //#endregion
60
60
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
61
61
  //# sourceMappingURL=alert-dialog.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { cn } from "../lib/utils.js";
2
- import { useResolvedPortalContainer } from "../portal-container-context.js";
3
2
  import { buttonVariants } from "./button.js";
3
+ import { useResolvedPortalContainer } from "../portal-container-context.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"alert-dialog.js","names":[],"sources":["../../../src/react/ui/alert-dialog.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\nimport { buttonVariants } from \"./button\";\n\n/** Modal dialog that interrupts the user with critical information requiring immediate action */\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\n/** Button that triggers the alert dialog to open */\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\n/** Portal container for rendering alert dialog content outside the DOM hierarchy */\nfunction AlertDialogPortal({\n container,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal\n data-slot=\"alert-dialog-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\n/** Background overlay that dims content behind the alert dialog */\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Main content container for the alert dialog */\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\n/** Header section containing title and description */\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\n/** Footer section containing action buttons */\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title heading for the alert dialog */\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n );\n}\n\n/** Descriptive text explaining the alert */\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Primary action button that confirms the alert */\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\n/** Cancel button that dismisses the alert dialog */\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n"],"mappings":";;;;;;;;AAQA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAe,GAAI;GAAS;;;AAI1E,SAAS,mBAAmB,EAC1B,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB;EAAQ,aAAU;EAAuB,GAAI;GAAS;;;AAKhF,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,2BAA2B,UAAU;EAChD,GAAI;GACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,qBAAC,gCACC,oBAAC,uBAAqB,EACtB,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GACT,+WACA,UACD;EACD,GAAI;GACJ,IACgB;;;AAKxB,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;EACxE,GAAI;GACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;AAC1D,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;GACJ;;;AAKN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,gBAAgB,EAAE,UAAU;EAC1C,GAAI;GACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB;EACpB,WAAW,GAAG,eAAe,EAAE,SAAS,WAAW,CAAC,EAAE,UAAU;EAChE,GAAI;GACJ"}
1
+ {"version":3,"file":"alert-dialog.js","names":[],"sources":["../../../src/react/ui/alert-dialog.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\nimport { buttonVariants } from \"./button\";\n\n/** Modal dialog that interrupts the user with critical information requiring immediate action */\nfunction AlertDialog({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\n/** Button that triggers the alert dialog to open */\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\n/** Portal container for rendering alert dialog content outside the DOM hierarchy */\nfunction AlertDialogPortal({\n container,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal\n data-slot=\"alert-dialog-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\n/** Background overlay that dims content behind the alert dialog */\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Main content container for the alert dialog */\nfunction AlertDialogContent({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\n/** Header section containing title and description */\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\n/** Footer section containing action buttons */\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title heading for the alert dialog */\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n );\n}\n\n/** Descriptive text explaining the alert */\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Primary action button that confirms the alert */\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\n/** Cancel button that dismisses the alert dialog */\nfunction AlertDialogCancel({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n"],"mappings":";;;;;;;;AAQA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB,MAAtB;EAA2B,aAAU;EAAe,GAAI;EAAS;;;AAI1E,SAAS,mBAAmB,EAC1B,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB,SAAtB;EAA8B,aAAU;EAAuB,GAAI;EAAS;;;AAKhF,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB,QAAtB;EACE,aAAU;EACV,WAAW,2BAA2B,UAAU;EAChD,GAAI;EACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,qBAAqB,SAAtB;EACE,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,qBAAC,mBAAD,aACE,oBAAC,oBAAD,EAAsB,GACtB,oBAAC,qBAAqB,SAAtB;EACE,aAAU;EACV,WAAW,GACT,+WACA,UACD;EACD,GAAI;EACJ,EACgB;;;AAKxB,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;EACxE,GAAI;EACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;AAC1D,QACE,oBAAC,qBAAqB,OAAtB;EACE,aAAU;EACV,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;EACJ;;;AAKN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,qBAAqB,aAAtB;EACE,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;EACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB,QAAtB;EACE,WAAW,GAAG,gBAAgB,EAAE,UAAU;EAC1C,GAAI;EACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,qBAAqB,QAAtB;EACE,WAAW,GAAG,eAAe,EAAE,SAAS,WAAW,CAAC,EAAE,UAAU;EAChE,GAAI;EACJ"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime8 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime18 from "react/jsx-runtime";
3
3
  import { VariantProps } from "class-variance-authority";
4
4
  import * as class_variance_authority_types0 from "class-variance-authority/types";
5
5
 
@@ -12,17 +12,17 @@ declare function Alert({
12
12
  className,
13
13
  variant,
14
14
  ...props
15
- }: React$1.ComponentProps<"div"> & VariantProps<typeof alertVariants>): react_jsx_runtime8.JSX.Element;
15
+ }: React$1.ComponentProps<"div"> & VariantProps<typeof alertVariants>): react_jsx_runtime18.JSX.Element;
16
16
  /** Title text for an alert component */
17
17
  declare function AlertTitle({
18
18
  className,
19
19
  ...props
20
- }: React$1.ComponentProps<"div">): react_jsx_runtime8.JSX.Element;
20
+ }: React$1.ComponentProps<"div">): react_jsx_runtime18.JSX.Element;
21
21
  /** Descriptive text content for an alert component */
22
22
  declare function AlertDescription({
23
23
  className,
24
24
  ...props
25
- }: React$1.ComponentProps<"div">): react_jsx_runtime8.JSX.Element;
25
+ }: React$1.ComponentProps<"div">): react_jsx_runtime18.JSX.Element;
26
26
  //#endregion
27
27
  export { Alert, AlertDescription, AlertTitle };
28
28
  //# sourceMappingURL=alert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","names":[],"sources":["../../../src/react/ui/alert.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAcL,+BAAA,CAAA;;AAlBiE,iBAqBzD,KAAA,CAHR;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAOE,OAAA,CAAM,cAPR,CAAA,KAAA,CAAA,GAOgC,YAPhC,CAAA,OAOoD,aAPpD,CAAA,CAAA,EAOkE,kBAAA,CAAA,GAAA,CAAA,OAPlE;;iBAmBQ,UAAA,CAhBK;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgB+B,OAAA,CAAM,cAhBrC,CAAA,KAAA,CAAA,CAAA,EAgB0D,kBAAA,CAAA,GAAA,CAAA,OAhB1D;;iBA8BL,gBAAA,CA5BP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+BC,OAAA,CAAM,cA/BP,CAAA,KAAA,CAAA,CAAA,EA+B4B,kBAAA,CAAA,GAAA,CAAA,OA/B5B"}
1
+ {"version":3,"file":"alert.d.ts","names":[],"sources":["../../../src/react/ui/alert.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAcL,+BAAA,CAAA;;AAlBiE,iBAqBzD,KAAA,CAHR;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAOE,OAAA,CAAM,cAPR,CAAA,KAAA,CAAA,GAOgC,YAPhC,CAAA,OAOoD,aAPpD,CAAA,CAAA,EAOkE,mBAAA,CAAA,GAAA,CAAA,OAPlE;;iBAmBQ,UAAA,CAhBK;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgB+B,OAAA,CAAM,cAhBrC,CAAA,KAAA,CAAA,CAAA,EAgB0D,mBAAA,CAAA,GAAA,CAAA,OAhB1D;;iBA8BL,gBAAA,CA5BP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+BC,OAAA,CAAM,cA/BP,CAAA,KAAA,CAAA,CAAA,EA+B4B,mBAAA,CAAA,GAAA,CAAA,OA/B5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","names":[],"sources":["../../../src/react/ui/alert.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n/** Displays important information with optional icon and multiple variants */\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\n/** Title text for an alert component */\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Descriptive text content for an alert component */\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n"],"mappings":";;;;;AAKA,MAAM,gBAAgB,IACpB,qOACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;;AAGD,SAAS,MAAM,EACb,WACA,SACA,GAAG,SACgE;AACnE,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,+DACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kGACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"alert.js","names":[],"sources":["../../../src/react/ui/alert.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n/** Displays important information with optional icon and multiple variants */\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\n/** Title text for an alert component */\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Descriptive text content for an alert component */\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n"],"mappings":";;;;;AAKA,MAAM,gBAAgB,IACpB,qOACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,aACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;;AAGD,SAAS,MAAM,EACb,WACA,SACA,GAAG,SACgE;AACnE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,+DACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,GAAG,SAC2B;AAC9B,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,kGACA,UACD;EACD,GAAI;EACJ"}
@@ -1,11 +1,11 @@
1
- import * as react_jsx_runtime22 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime32 from "react/jsx-runtime";
2
2
  import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
3
3
 
4
4
  //#region src/react/ui/aspect-ratio.d.ts
5
5
  /** Container that maintains a specific aspect ratio for its content */
6
6
  declare function AspectRatio({
7
7
  ...props
8
- }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): react_jsx_runtime22.JSX.Element;
8
+ }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): react_jsx_runtime32.JSX.Element;
9
9
  //#endregion
10
10
  export { AspectRatio };
11
11
  //# sourceMappingURL=aspect-ratio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aspect-ratio.js","names":[],"sources":["../../../src/react/ui/aspect-ratio.tsx"],"sourcesContent":["\"use client\";\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\n/** Container that maintains a specific aspect ratio for its content */\nfunction AspectRatio({\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return <AspectRatioPrimitive.Root data-slot=\"aspect-ratio\" {...props} />;\n}\n\nexport { AspectRatio };\n"],"mappings":";;;;;;;AAKA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAe,GAAI;GAAS"}
1
+ {"version":3,"file":"aspect-ratio.js","names":[],"sources":["../../../src/react/ui/aspect-ratio.tsx"],"sourcesContent":["\"use client\";\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\n/** Container that maintains a specific aspect ratio for its content */\nfunction AspectRatio({\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return <AspectRatioPrimitive.Root data-slot=\"aspect-ratio\" {...props} />;\n}\n\nexport { AspectRatio };\n"],"mappings":";;;;;;;AAKA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB,MAAtB;EAA2B,aAAU;EAAe,GAAI;EAAS"}
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime23 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime33 from "react/jsx-runtime";
3
3
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
4
4
 
5
5
  //#region src/react/ui/avatar.d.ts
@@ -7,17 +7,17 @@ import * as AvatarPrimitive from "@radix-ui/react-avatar";
7
7
  declare function Avatar({
8
8
  className,
9
9
  ...props
10
- }: React$1.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime23.JSX.Element;
10
+ }: React$1.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime33.JSX.Element;
11
11
  /** Image element for the avatar */
12
12
  declare function AvatarImage({
13
13
  className,
14
14
  ...props
15
- }: React$1.ComponentProps<typeof AvatarPrimitive.Image>): react_jsx_runtime23.JSX.Element;
15
+ }: React$1.ComponentProps<typeof AvatarPrimitive.Image>): react_jsx_runtime33.JSX.Element;
16
16
  /** Fallback content displayed when avatar image fails to load */
17
17
  declare function AvatarFallback({
18
18
  className,
19
19
  ...props
20
- }: React$1.ComponentProps<typeof AvatarPrimitive.Fallback>): react_jsx_runtime23.JSX.Element;
20
+ }: React$1.ComponentProps<typeof AvatarPrimitive.Fallback>): react_jsx_runtime33.JSX.Element;
21
21
  //#endregion
22
22
  export { Avatar, AvatarFallback, AvatarImage };
23
23
  //# sourceMappingURL=avatar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","names":[],"sources":["../../../src/react/ui/avatar.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Displays user profile picture or initials in a circular container */\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-8 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Image element for the avatar */\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\n/** Fallback content displayed when avatar image fails to load */\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"mappings":";;;;;;AAMA,SAAS,OAAO,EACd,WACA,GAAG,SACiD;AACpD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GACT,8DACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;AACrD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GAAG,2BAA2B,UAAU;EACnD,GAAI;GACJ;;;AAKN,SAAS,eAAe,EACtB,WACA,GAAG,SACqD;AACxD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GACT,oEACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"avatar.js","names":[],"sources":["../../../src/react/ui/avatar.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Displays user profile picture or initials in a circular container */\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n \"relative flex size-8 shrink-0 overflow-hidden rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Image element for the avatar */\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\n/** Fallback content displayed when avatar image fails to load */\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted flex size-full items-center justify-center rounded-full\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"mappings":";;;;;;AAMA,SAAS,OAAO,EACd,WACA,GAAG,SACiD;AACpD,QACE,oBAAC,gBAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,8DACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;AACrD,QACE,oBAAC,gBAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,2BAA2B,UAAU;EACnD,GAAI;EACJ;;;AAKN,SAAS,eAAe,EACtB,WACA,GAAG,SACqD;AACxD,QACE,oBAAC,gBAAgB,UAAjB;EACE,aAAU;EACV,WAAW,GACT,oEACA,UACD;EACD,GAAI;EACJ"}
@@ -1,12 +1,12 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime26 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime36 from "react/jsx-runtime";
3
3
  import { VariantProps } from "class-variance-authority";
4
- import * as class_variance_authority_types0 from "class-variance-authority/types";
4
+ import * as class_variance_authority_types1 from "class-variance-authority/types";
5
5
 
6
6
  //#region src/react/ui/badge.d.ts
7
7
  declare const badgeVariants: (props?: ({
8
8
  variant?: "default" | "destructive" | "secondary" | "outline" | null | undefined;
9
- } & class_variance_authority_types0.ClassProp) | undefined) => string;
9
+ } & class_variance_authority_types1.ClassProp) | undefined) => string;
10
10
  /** Small label for displaying status, categories, or counts */
11
11
  declare function Badge({
12
12
  className,
@@ -15,7 +15,7 @@ declare function Badge({
15
15
  ...props
16
16
  }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
17
17
  asChild?: boolean;
18
- }): react_jsx_runtime26.JSX.Element;
18
+ }): react_jsx_runtime36.JSX.Element;
19
19
  //#endregion
20
20
  export { Badge, badgeVariants };
21
21
  //# sourceMappingURL=badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","names":[],"sources":["../../../src/react/ui/badge.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n/** Small label for displaying status, categories, or counts */\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n"],"mappings":";;;;;;AAMA,MAAM,gBAAgB,IACpB,oZACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,aACE;EACF,SACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;;AAGD,SAAS,MAAM,EACb,WACA,SACA,UAAU,OACV,GAAG,SAEyD;AAG5D,QACE,oBAHW,UAAU,OAAO;EAI1B,aAAU;EACV,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;GACJ"}
1
+ {"version":3,"file":"badge.js","names":[],"sources":["../../../src/react/ui/badge.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\n/** Small label for displaying status, categories, or counts */\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\";\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n"],"mappings":";;;;;;AAMA,MAAM,gBAAgB,IACpB,oZACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,aACE;EACF,SACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;;AAGD,SAAS,MAAM,EACb,WACA,SACA,UAAU,OACV,GAAG,SAEyD;AAG5D,QACE,oBAHW,UAAU,OAAO,QAG5B;EACE,aAAU;EACV,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;EACJ"}
@@ -1,21 +1,21 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime27 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime37 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/ui/breadcrumb.d.ts
5
5
  /** Navigation component showing the current page's location in the site hierarchy */
6
6
  declare function Breadcrumb({
7
7
  ...props
8
- }: React$1.ComponentProps<"nav">): react_jsx_runtime27.JSX.Element;
8
+ }: React$1.ComponentProps<"nav">): react_jsx_runtime37.JSX.Element;
9
9
  /** Ordered list container for breadcrumb items */
10
10
  declare function BreadcrumbList({
11
11
  className,
12
12
  ...props
13
- }: React$1.ComponentProps<"ol">): react_jsx_runtime27.JSX.Element;
13
+ }: React$1.ComponentProps<"ol">): react_jsx_runtime37.JSX.Element;
14
14
  /** Individual item in the breadcrumb trail */
15
15
  declare function BreadcrumbItem({
16
16
  className,
17
17
  ...props
18
- }: React$1.ComponentProps<"li">): react_jsx_runtime27.JSX.Element;
18
+ }: React$1.ComponentProps<"li">): react_jsx_runtime37.JSX.Element;
19
19
  /** Clickable link within a breadcrumb item */
20
20
  declare function BreadcrumbLink({
21
21
  asChild,
@@ -23,23 +23,23 @@ declare function BreadcrumbLink({
23
23
  ...props
24
24
  }: React$1.ComponentProps<"a"> & {
25
25
  asChild?: boolean;
26
- }): react_jsx_runtime27.JSX.Element;
26
+ }): react_jsx_runtime37.JSX.Element;
27
27
  /** Current page indicator in the breadcrumb trail */
28
28
  declare function BreadcrumbPage({
29
29
  className,
30
30
  ...props
31
- }: React$1.ComponentProps<"span">): react_jsx_runtime27.JSX.Element;
31
+ }: React$1.ComponentProps<"span">): react_jsx_runtime37.JSX.Element;
32
32
  /** Visual separator between breadcrumb items */
33
33
  declare function BreadcrumbSeparator({
34
34
  children,
35
35
  className,
36
36
  ...props
37
- }: React$1.ComponentProps<"li">): react_jsx_runtime27.JSX.Element;
37
+ }: React$1.ComponentProps<"li">): react_jsx_runtime37.JSX.Element;
38
38
  /** Ellipsis indicator for collapsed breadcrumb items */
39
39
  declare function BreadcrumbEllipsis({
40
40
  className,
41
41
  ...props
42
- }: React$1.ComponentProps<"span">): react_jsx_runtime27.JSX.Element;
42
+ }: React$1.ComponentProps<"span">): react_jsx_runtime37.JSX.Element;
43
43
  //#endregion
44
44
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
45
45
  //# sourceMappingURL=breadcrumb.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../lib/utils.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { ChevronRight, MoreHorizontal } from "lucide-react";
4
3
  import { Slot } from "@radix-ui/react-slot";
4
+ import { ChevronRight, MoreHorizontal } from "lucide-react";
5
5
 
6
6
  //#region src/react/ui/breadcrumb.tsx
7
7
  /** Navigation component showing the current page's location in the site hierarchy */