@mastra/playground-ui 63.0.0-alpha.2 → 63.0.0-alpha.3

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 (692) hide show
  1. package/README.md +98 -0
  2. package/dist/{Avatar-D6ybWljK.cjs → Avatar-0u68PVfu.cjs} +34 -42
  3. package/dist/Avatar-0u68PVfu.cjs.map +1 -0
  4. package/dist/{Avatar-C2Sz53u5.js → Avatar-BwkyFiED.js} +20 -28
  5. package/dist/Avatar-BwkyFiED.js.map +1 -0
  6. package/dist/{Button-C8QDEN9j.js → Button-60jVnaHt.js} +10 -4
  7. package/dist/Button-60jVnaHt.js.map +1 -0
  8. package/dist/{Button-BfZzgZrA.cjs → Button-CAVPKK09.cjs} +10 -4
  9. package/dist/Button-CAVPKK09.cjs.map +1 -0
  10. package/dist/{ErrorBoundary-3wDeQWo0.js → ErrorBoundary-BqNfJHRT.js} +2 -2
  11. package/dist/{ErrorBoundary-3wDeQWo0.js.map → ErrorBoundary-BqNfJHRT.js.map} +1 -1
  12. package/dist/{ErrorBoundary-BLsO6xv6.cjs → ErrorBoundary-SRNDrd4h.cjs} +2 -2
  13. package/dist/{ErrorBoundary-BLsO6xv6.cjs.map → ErrorBoundary-SRNDrd4h.cjs.map} +1 -1
  14. package/dist/{alert-dialog-j626w-Qb.cjs → alert-dialog-C-ODvRWT.cjs} +3 -3
  15. package/dist/{alert-dialog-j626w-Qb.cjs.map → alert-dialog-C-ODvRWT.cjs.map} +1 -1
  16. package/dist/{alert-dialog-R9z2SJLl.js → alert-dialog-DVAC9zdj.js} +3 -3
  17. package/dist/{alert-dialog-R9z2SJLl.js.map → alert-dialog-DVAC9zdj.js.map} +1 -1
  18. package/dist/{ask-user-card-40a18Qea.cjs → ask-user-card-BMiCYmFY.cjs} +2 -2
  19. package/dist/{ask-user-card-40a18Qea.cjs.map → ask-user-card-BMiCYmFY.cjs.map} +1 -1
  20. package/dist/{ask-user-card-xR8YiiQa.js → ask-user-card-CmfZg1wt.js} +2 -2
  21. package/dist/{ask-user-card-xR8YiiQa.js.map → ask-user-card-CmfZg1wt.js.map} +1 -1
  22. package/dist/avatar-size-CNR0U-LW.js +27 -0
  23. package/dist/avatar-size-CNR0U-LW.js.map +1 -0
  24. package/dist/avatar-size-DxStOo5A.cjs +32 -0
  25. package/dist/avatar-size-DxStOo5A.cjs.map +1 -0
  26. package/dist/{code-block-DQJ3NHRf.cjs → code-block-BuGosknt.cjs} +4 -4
  27. package/dist/{code-block-DQJ3NHRf.cjs.map → code-block-BuGosknt.cjs.map} +1 -1
  28. package/dist/{code-block-BQZUoOfS.js → code-block-vvYFcnqm.js} +4 -4
  29. package/dist/{code-block-BQZUoOfS.js.map → code-block-vvYFcnqm.js.map} +1 -1
  30. package/dist/{code-editor-D69saH4C.js → code-editor-B_v1EfzX.js} +2 -2
  31. package/dist/{code-editor-D69saH4C.js.map → code-editor-B_v1EfzX.js.map} +1 -1
  32. package/dist/{code-editor-Dg6Y6Q8z.cjs → code-editor-CH8c-KF1.cjs} +2 -2
  33. package/dist/{code-editor-Dg6Y6Q8z.cjs.map → code-editor-CH8c-KF1.cjs.map} +1 -1
  34. package/dist/{collapsible-box-B7YQWv7L.js → collapsible-box-CMmJEn3f.js} +2 -2
  35. package/dist/{collapsible-box-B7YQWv7L.js.map → collapsible-box-CMmJEn3f.js.map} +1 -1
  36. package/dist/{collapsible-box-Bu2jHdsK.cjs → collapsible-box-oUO65pxW.cjs} +2 -2
  37. package/dist/{collapsible-box-Bu2jHdsK.cjs.map → collapsible-box-oUO65pxW.cjs.map} +1 -1
  38. package/dist/{combobox-D9CFzzx8.cjs → combobox-fEMKH9nJ.cjs} +3 -3
  39. package/dist/{combobox-D9CFzzx8.cjs.map → combobox-fEMKH9nJ.cjs.map} +1 -1
  40. package/dist/{combobox-DDUIREaG.js → combobox-so2V71F7.js} +3 -3
  41. package/dist/{combobox-DDUIREaG.js.map → combobox-so2V71F7.js.map} +1 -1
  42. package/dist/{combobox-styles-BGCZADLP.cjs → combobox-styles-BJPT0TpQ.cjs} +2 -2
  43. package/dist/{combobox-styles-BGCZADLP.cjs.map → combobox-styles-BJPT0TpQ.cjs.map} +1 -1
  44. package/dist/{combobox-styles-wLpeTjOR.js → combobox-styles-BQnNIOpr.js} +2 -2
  45. package/dist/{combobox-styles-wLpeTjOR.js.map → combobox-styles-BQnNIOpr.js.map} +1 -1
  46. package/dist/{command-DbZ6CSAy.cjs → command-B_C36ppQ.cjs} +2 -2
  47. package/dist/{command-DbZ6CSAy.cjs.map → command-B_C36ppQ.cjs.map} +1 -1
  48. package/dist/{command-DtIlcv-t.js → command-DMqzDhzs.js} +2 -2
  49. package/dist/{command-DtIlcv-t.js.map → command-DMqzDhzs.js.map} +1 -1
  50. package/dist/components/AlertDialog.cjs.js +1 -1
  51. package/dist/components/AlertDialog.es.js +1 -1
  52. package/dist/components/Avatar.cjs.js +1 -1
  53. package/dist/components/Avatar.es.js +1 -1
  54. package/dist/components/Button.cjs.js +1 -1
  55. package/dist/components/Button.es.js +2 -2
  56. package/dist/components/ClampedText.cjs.js +1 -1
  57. package/dist/components/ClampedText.es.js +1 -1
  58. package/dist/components/CodeBlock.cjs.js +1 -1
  59. package/dist/components/CodeBlock.es.js +1 -1
  60. package/dist/components/CodeEditor.cjs.js +1 -1
  61. package/dist/components/CodeEditor.es.js +1 -1
  62. package/dist/components/CollapsibleBox.cjs.js +1 -1
  63. package/dist/components/CollapsibleBox.es.js +1 -1
  64. package/dist/components/Combobox.cjs.js +2 -2
  65. package/dist/components/Combobox.es.js +2 -2
  66. package/dist/components/Command.cjs.js +1 -1
  67. package/dist/components/Command.es.js +1 -1
  68. package/dist/components/CommandPalette.cjs.js +1 -1
  69. package/dist/components/CommandPalette.es.js +1 -1
  70. package/dist/components/Comment.cjs.js +2 -2
  71. package/dist/components/Comment.es.js +2 -2
  72. package/dist/components/CopyButton.cjs.js +1 -1
  73. package/dist/components/CopyButton.es.js +1 -1
  74. package/dist/components/DataCodeSection.cjs.js +1 -1
  75. package/dist/components/DataCodeSection.es.js +1 -1
  76. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  77. package/dist/components/DataDetailsPanel.es.js +2 -2
  78. package/dist/components/DataList.cjs.js +15 -17
  79. package/dist/components/DataList.cjs.js.map +1 -1
  80. package/dist/components/DataList.es.js +4 -5
  81. package/dist/components/DataList.es.js.map +1 -1
  82. package/dist/components/DataPanel.cjs.js +1 -1
  83. package/dist/components/DataPanel.es.js +1 -1
  84. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  85. package/dist/components/DateRangeTimeline.es.js +1 -1
  86. package/dist/components/DateTimePicker.cjs.js +2 -2
  87. package/dist/components/DateTimePicker.es.js +2 -2
  88. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  89. package/dist/components/DateTimeRangePicker.es.js +1 -1
  90. package/dist/components/Dialog.cjs.js +2 -2
  91. package/dist/components/Dialog.es.js +2 -2
  92. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  93. package/dist/components/DisabledFeatureButton.es.js +1 -1
  94. package/dist/components/Drawer.cjs.js +1 -1
  95. package/dist/components/Drawer.es.js +1 -1
  96. package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
  97. package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
  98. package/dist/components/ErrorBoundary.cjs.js +1 -1
  99. package/dist/components/ErrorBoundary.es.js +1 -1
  100. package/dist/components/FilterBar.cjs.js +3 -3
  101. package/dist/components/FilterBar.es.js +4 -4
  102. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  103. package/dist/components/FormFieldBlocks.es.js +2 -2
  104. package/dist/components/InputGroup.cjs.js +1 -1
  105. package/dist/components/InputGroup.es.js +1 -1
  106. package/dist/components/InputNumber.cjs.js +2 -2
  107. package/dist/components/InputNumber.es.js +2 -2
  108. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  109. package/dist/components/JSONSchemaForm.es.js +2 -2
  110. package/dist/components/ListSearch.cjs.js +1 -1
  111. package/dist/components/ListSearch.es.js +1 -1
  112. package/dist/components/LogsDataList.cjs.js +5 -2
  113. package/dist/components/LogsDataList.cjs.js.map +1 -1
  114. package/dist/components/LogsDataList.es.js +5 -2
  115. package/dist/components/LogsDataList.es.js.map +1 -1
  116. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  117. package/dist/components/MarkdownRenderer.es.js +1 -1
  118. package/dist/components/Message.cjs.js +1 -1
  119. package/dist/components/Message.es.js +1 -1
  120. package/dist/components/MetricsCard.cjs.js +1 -1
  121. package/dist/components/MetricsCard.es.js +1 -1
  122. package/dist/components/Pagination.cjs.js +17 -0
  123. package/dist/components/Pagination.cjs.js.map +1 -0
  124. package/dist/components/Pagination.d.ts +2 -0
  125. package/dist/components/Pagination.es.js +2 -0
  126. package/dist/components/Pagination.es.js.map +1 -0
  127. package/dist/components/PrevNextNav.cjs.js +1 -1
  128. package/dist/components/PrevNextNav.es.js +1 -1
  129. package/dist/components/ProductAvatar.cjs.js +19 -2
  130. package/dist/components/ProductAvatar.cjs.js.map +1 -1
  131. package/dist/components/ProductAvatar.es.js +19 -2
  132. package/dist/components/ProductAvatar.es.js.map +1 -1
  133. package/dist/components/PropertyFilter.cjs.js +3 -3
  134. package/dist/components/PropertyFilter.es.js +4 -4
  135. package/dist/components/RuleBuilder.cjs.js +2 -2
  136. package/dist/components/RuleBuilder.es.js +2 -2
  137. package/dist/components/SavedViews.cjs.js +2 -2
  138. package/dist/components/SavedViews.es.js +2 -2
  139. package/dist/components/SearchInput.cjs.js +1 -1
  140. package/dist/components/SearchInput.es.js +1 -1
  141. package/dist/components/Select.cjs.js +1 -1
  142. package/dist/components/Select.es.js +1 -1
  143. package/dist/components/SideDialog.cjs.js +1 -1
  144. package/dist/components/SideDialog.es.js +1 -1
  145. package/dist/components/Sidebar.cjs.js +3 -3
  146. package/dist/components/Sidebar.es.js +3 -3
  147. package/dist/components/Table.cjs.js +286 -47
  148. package/dist/components/Table.cjs.js.map +1 -1
  149. package/dist/components/Table.es.js +284 -49
  150. package/dist/components/Table.es.js.map +1 -1
  151. package/dist/components/Tabs.cjs.js +1 -1
  152. package/dist/components/Tabs.es.js +1 -1
  153. package/dist/components/ThreadList.cjs.js +1 -1
  154. package/dist/components/ThreadList.es.js +1 -1
  155. package/dist/components/Truncate.cjs.js +1 -1
  156. package/dist/components/Truncate.es.js +1 -1
  157. package/dist/components/Workflow.cjs.js +6 -6
  158. package/dist/components/Workflow.es.js +6 -6
  159. package/dist/components/ai/activity.cjs.js +1 -1
  160. package/dist/components/ai/activity.es.js +1 -1
  161. package/dist/components/ai/ask-user.cjs.js +1 -1
  162. package/dist/components/ai/ask-user.es.js +1 -1
  163. package/dist/components/ai/plan.cjs.js +1 -1
  164. package/dist/components/ai/plan.es.js +1 -1
  165. package/dist/components/ai/tool-approval.cjs.js +1 -1
  166. package/dist/components/ai/tool-approval.es.js +1 -1
  167. package/dist/components/ai/tool-call.cjs.js +3 -3
  168. package/dist/components/ai/tool-call.es.js +3 -3
  169. package/dist/{copy-button-CUVxXN4H.cjs → copy-button-5tVWqoTk.cjs} +2 -2
  170. package/dist/{copy-button-CUVxXN4H.cjs.map → copy-button-5tVWqoTk.cjs.map} +1 -1
  171. package/dist/{copy-button-CDyuUYUr.js → copy-button-Af_Qt7G1.js} +2 -2
  172. package/dist/{copy-button-CDyuUYUr.js.map → copy-button-Af_Qt7G1.js.map} +1 -1
  173. package/dist/{data-code-section-B2Ea7FwM.cjs → data-code-section-Bs8sHDux.cjs} +5 -5
  174. package/dist/{data-code-section-B2Ea7FwM.cjs.map → data-code-section-Bs8sHDux.cjs.map} +1 -1
  175. package/dist/{data-code-section-DrJYy1dR.js → data-code-section-CqdjmClK.js} +5 -5
  176. package/dist/{data-code-section-DrJYy1dR.js.map → data-code-section-CqdjmClK.js.map} +1 -1
  177. package/dist/{data-list-top-BJCC62oy.js → data-list-B2ArWwsJ.js} +332 -5
  178. package/dist/data-list-B2ArWwsJ.js.map +1 -0
  179. package/dist/{data-list-top-Ds-NWyPO.cjs → data-list-BLfHObw8.cjs} +339 -13
  180. package/dist/data-list-BLfHObw8.cjs.map +1 -0
  181. package/dist/{data-list-skeleton-CfVsXhx1.cjs → data-list-skeleton-BGJD4qMF.cjs} +6 -6
  182. package/dist/{data-list-skeleton-CfVsXhx1.cjs.map → data-list-skeleton-BGJD4qMF.cjs.map} +1 -1
  183. package/dist/{data-list-skeleton-BmsDYJrA.js → data-list-skeleton-BNsWWamC.js} +2 -2
  184. package/dist/{data-list-skeleton-BmsDYJrA.js.map → data-list-skeleton-BNsWWamC.js.map} +1 -1
  185. package/dist/{data-panel-CTqb-0qN.cjs → data-panel-FG2S84x7.cjs} +45 -22
  186. package/dist/data-panel-FG2S84x7.cjs.map +1 -0
  187. package/dist/{data-panel-COU5dbUJ.js → data-panel-nbeducTl.js} +46 -23
  188. package/dist/data-panel-nbeducTl.js.map +1 -0
  189. package/dist/{date-time-range-picker-BvRPfy1i.cjs → date-time-range-picker-ByNvjYuV.cjs} +3 -3
  190. package/dist/{date-time-range-picker-BvRPfy1i.cjs.map → date-time-range-picker-ByNvjYuV.cjs.map} +1 -1
  191. package/dist/{date-time-range-picker-CIfaXUuy.js → date-time-range-picker-SU1Q1h1h.js} +3 -3
  192. package/dist/{date-time-range-picker-CIfaXUuy.js.map → date-time-range-picker-SU1Q1h1h.js.map} +1 -1
  193. package/dist/{dialog-DQI9ChYf.cjs → dialog-B5nLi0ER.cjs} +3 -3
  194. package/dist/{dialog-DQI9ChYf.cjs.map → dialog-B5nLi0ER.cjs.map} +1 -1
  195. package/dist/{dialog-DlZmNahd.js → dialog-Jz2ZfO-z.js} +3 -3
  196. package/dist/{dialog-DlZmNahd.js.map → dialog-Jz2ZfO-z.js.map} +1 -1
  197. package/dist/{dialog-action-c4nfPomF.js → dialog-action-BxXhAz-P.js} +3 -3
  198. package/dist/{dialog-action-c4nfPomF.js.map → dialog-action-BxXhAz-P.js.map} +1 -1
  199. package/dist/{dialog-action-gdo9CwUv.cjs → dialog-action-DdkbsKfP.cjs} +3 -3
  200. package/dist/{dialog-action-gdo9CwUv.cjs.map → dialog-action-DdkbsKfP.cjs.map} +1 -1
  201. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  202. package/dist/domains/auth/components/session-expired.es.js +1 -1
  203. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  204. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  205. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  206. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  207. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  208. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  209. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  210. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  211. package/dist/domains/chat/messages/dataset-save-action.cjs.js +6 -5
  212. package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
  213. package/dist/domains/chat/messages/dataset-save-action.es.js +6 -5
  214. package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
  215. package/dist/domains/chat/messages/message-row.cjs.js +3 -3
  216. package/dist/domains/chat/messages/message-row.es.js +3 -3
  217. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  218. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  219. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  220. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  221. package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
  222. package/dist/domains/chat/messages/skill-message.es.js +1 -1
  223. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  224. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  225. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  226. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  227. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  228. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  229. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  230. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  231. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  232. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  233. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
  234. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
  235. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  236. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  237. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  238. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  239. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  240. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  241. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
  242. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
  243. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  244. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  245. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +3 -3
  246. package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
  247. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +5 -3
  248. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  249. package/dist/domains/chat/tools/badges/workflow-badge.es.js +5 -3
  250. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  251. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  252. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  253. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  254. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  255. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +11 -6
  256. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
  257. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +11 -6
  258. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
  259. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
  260. package/dist/domains/logs/components/log-data-panel.es.js +3 -3
  261. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
  262. package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
  263. package/dist/domains/logs/components/logs-list-view.es.js +3 -2
  264. package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
  265. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  266. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  267. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  268. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  269. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  270. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  271. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  272. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  273. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  274. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  275. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  276. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  277. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  278. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  279. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  280. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  281. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  282. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  283. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  284. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  285. package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
  286. package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
  287. package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
  288. package/dist/domains/metrics/components/latency-card.es.js +1 -1
  289. package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
  290. package/dist/domains/metrics/components/scores-card.es.js +1 -1
  291. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  292. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  293. package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
  294. package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
  295. package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
  296. package/dist/domains/metrics/components/usage-card.es.js +1 -1
  297. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +5 -4
  298. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
  299. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +5 -4
  300. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
  301. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  302. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  303. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  304. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  305. package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
  306. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  307. package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
  308. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  309. package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
  310. package/dist/domains/traces/components/feedback-thread.es.js +4 -4
  311. package/dist/domains/traces/components/span-data-panel-view.cjs.js +3 -3
  312. package/dist/domains/traces/components/span-data-panel-view.es.js +3 -3
  313. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  314. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  315. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  316. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  317. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  318. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  319. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  320. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  321. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  322. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  323. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  324. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  325. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  326. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  327. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -3
  328. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +3 -3
  329. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  330. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  331. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  332. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  333. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  334. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  335. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  336. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  337. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
  338. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
  339. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
  340. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
  341. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
  342. package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
  343. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  344. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  345. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +4 -4
  346. package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -4
  347. package/dist/domains/traces/components/trace-data-panel.cjs.js +5 -3
  348. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  349. package/dist/domains/traces/components/trace-data-panel.es.js +5 -3
  350. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  351. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  352. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  353. package/dist/domains/traces/components/trace-span-panel.cjs.js +1 -1
  354. package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
  355. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  356. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  357. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
  358. package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
  359. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  360. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  361. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  362. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  363. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  364. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  365. package/dist/domains/traces/components/traces-list-view.cjs.js +4 -5
  366. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  367. package/dist/domains/traces/components/traces-list-view.es.js +3 -4
  368. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  369. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
  370. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  371. package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
  372. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  373. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  374. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  375. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  376. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  377. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  378. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  379. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  380. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  381. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
  382. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
  383. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  384. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  385. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  386. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  387. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  388. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  389. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  390. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  391. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
  392. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
  393. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  394. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  395. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  396. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  397. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  398. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  399. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  400. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  401. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  402. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  403. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  404. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  405. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  406. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  407. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  408. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  409. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
  410. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
  411. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  412. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  413. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  414. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  415. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +2 -2
  416. package/dist/domains/workflows/workflow/workflow-run-data.es.js +2 -2
  417. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
  418. package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
  419. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  420. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  421. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  422. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  423. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
  424. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  425. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
  426. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
  427. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  428. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  429. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  430. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  431. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  432. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  433. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
  434. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
  435. package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
  436. package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
  437. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
  438. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
  439. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  440. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  441. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
  442. package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
  443. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  444. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  445. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  446. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  447. package/dist/domains/workspace/components/workspace-tree.cjs.js +2 -2
  448. package/dist/domains/workspace/components/workspace-tree.es.js +2 -2
  449. package/dist/{drawer-CeUYCG-S.cjs → drawer-C6PBqg__.cjs} +2 -2
  450. package/dist/{drawer-CeUYCG-S.cjs.map → drawer-C6PBqg__.cjs.map} +1 -1
  451. package/dist/{drawer-CZlqOjd2.js → drawer-CwVDeB8H.js} +2 -2
  452. package/dist/{drawer-CZlqOjd2.js.map → drawer-CwVDeB8H.js.map} +1 -1
  453. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -6
  454. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js.map +1 -1
  455. package/dist/ee/signals/components/entity-index-compact-grid.es.js +6 -8
  456. package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
  457. package/dist/ee/signals/components/entity-index-list.cjs.js +33 -32
  458. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  459. package/dist/ee/signals/components/entity-index-list.es.js +35 -34
  460. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  461. package/dist/ee/signals/components/entity-index-model.cjs.js +7 -0
  462. package/dist/ee/signals/components/entity-index-model.cjs.js.map +1 -1
  463. package/dist/ee/signals/components/entity-index-model.es.js +7 -1
  464. package/dist/ee/signals/components/entity-index-model.es.js.map +1 -1
  465. package/dist/ee/signals/components/entity-index-status.cjs.js +26 -0
  466. package/dist/ee/signals/components/entity-index-status.cjs.js.map +1 -0
  467. package/dist/ee/signals/components/entity-index-status.d.ts +2 -0
  468. package/dist/ee/signals/components/entity-index-status.es.js +22 -0
  469. package/dist/ee/signals/components/entity-index-status.es.js.map +1 -0
  470. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  471. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  472. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +15 -13
  473. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  474. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +15 -13
  475. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  476. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  477. package/dist/ee/signals/examples-pager.es.js +1 -1
  478. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  479. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  480. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
  481. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
  482. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  483. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  484. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  485. package/dist/ee/signals/signals-error-state.es.js +1 -1
  486. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  487. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  488. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  489. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  490. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  491. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  492. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  493. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  494. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  495. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  496. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  497. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  498. package/dist/{filter-bar-chip-C_371aon.cjs → filter-bar-chip-BBErw_aR.cjs} +3 -3
  499. package/dist/{filter-bar-chip-C_371aon.cjs.map → filter-bar-chip-BBErw_aR.cjs.map} +1 -1
  500. package/dist/{filter-bar-chip-Dc6phYqZ.js → filter-bar-chip-DvRTWRwT.js} +3 -3
  501. package/dist/{filter-bar-chip-Dc6phYqZ.js.map → filter-bar-chip-DvRTWRwT.js.map} +1 -1
  502. package/dist/{input-group-BWsGYnES.js → input-group-CIIwoggO.js} +2 -2
  503. package/dist/{input-group-BWsGYnES.js.map → input-group-CIIwoggO.js.map} +1 -1
  504. package/dist/{input-group-Cy7k5JRg.cjs → input-group-DQuyC9Pz.cjs} +2 -2
  505. package/dist/{input-group-Cy7k5JRg.cjs.map → input-group-DQuyC9Pz.cjs.map} +1 -1
  506. package/dist/layout/tabbed-container.cjs.js +4 -4
  507. package/dist/layout/tabbed-container.es.js +4 -4
  508. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  509. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  510. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  511. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  512. package/dist/lib/form/components/date-field.cjs.js +1 -1
  513. package/dist/lib/form/components/date-field.es.js +1 -1
  514. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  515. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  516. package/dist/lib/form/components/record-field.cjs.js +1 -1
  517. package/dist/lib/form/components/record-field.es.js +1 -1
  518. package/dist/lib/form/components/select-field.cjs.js +1 -1
  519. package/dist/lib/form/components/select-field.es.js +1 -1
  520. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  521. package/dist/lib/form/components/submit-button.es.js +1 -1
  522. package/dist/{list-search-xHadeMHl.cjs → list-search-C5j3HYkb.cjs} +2 -2
  523. package/dist/{list-search-xHadeMHl.cjs.map → list-search-C5j3HYkb.cjs.map} +1 -1
  524. package/dist/{list-search-BNnMwbpv.js → list-search-Cwp-OPvC.js} +2 -2
  525. package/dist/{list-search-BNnMwbpv.js.map → list-search-Cwp-OPvC.js.map} +1 -1
  526. package/dist/{logs-data-list-C262Be3o.js → logs-data-list-B-gmgU74.js} +2 -3
  527. package/dist/{logs-data-list-C262Be3o.js.map → logs-data-list-B-gmgU74.js.map} +1 -1
  528. package/dist/{logs-data-list-DfuVMd6f.cjs → logs-data-list-CaXnNnC5.cjs} +21 -22
  529. package/dist/{logs-data-list-DfuVMd6f.cjs.map → logs-data-list-CaXnNnC5.cjs.map} +1 -1
  530. package/dist/{markdown-renderer-DaXAim8y.cjs → markdown-renderer-BXTNiZbz.cjs} +3 -3
  531. package/dist/{markdown-renderer-DaXAim8y.cjs.map → markdown-renderer-BXTNiZbz.cjs.map} +1 -1
  532. package/dist/{markdown-renderer-D5Wjk1Cs.js → markdown-renderer-Ct-q_KTF.js} +3 -3
  533. package/dist/{markdown-renderer-D5Wjk1Cs.js.map → markdown-renderer-Ct-q_KTF.js.map} +1 -1
  534. package/dist/{message-copy-button-CREuo4t5.cjs → message-copy-button-Cni-zv0j.cjs} +2 -2
  535. package/dist/{message-copy-button-CREuo4t5.cjs.map → message-copy-button-Cni-zv0j.cjs.map} +1 -1
  536. package/dist/{message-copy-button-BlwQej7y.js → message-copy-button-DDgqbtbv.js} +2 -2
  537. package/dist/{message-copy-button-BlwQej7y.js.map → message-copy-button-DDgqbtbv.js.map} +1 -1
  538. package/dist/{metrics-card-oEbbYDo7.js → metrics-card-C33VsuXf.js} +2 -2
  539. package/dist/{metrics-card-oEbbYDo7.js.map → metrics-card-C33VsuXf.js.map} +1 -1
  540. package/dist/{metrics-card-Bv2A5G41.cjs → metrics-card-CxOVpP1t.cjs} +2 -2
  541. package/dist/{metrics-card-Bv2A5G41.cjs.map → metrics-card-CxOVpP1t.cjs.map} +1 -1
  542. package/dist/new/layout/app-shell.cjs.js +9 -4
  543. package/dist/new/layout/app-shell.cjs.js.map +1 -1
  544. package/dist/new/layout/app-shell.es.js +10 -5
  545. package/dist/new/layout/app-shell.es.js.map +1 -1
  546. package/dist/pagination-range-BlUsZjqD.js +191 -0
  547. package/dist/pagination-range-BlUsZjqD.js.map +1 -0
  548. package/dist/pagination-range-C0i6gunh.cjs +200 -0
  549. package/dist/pagination-range-C0i6gunh.cjs.map +1 -0
  550. package/dist/{plan-CdtX72kw.cjs → plan-CL-lbDuy.cjs} +4 -4
  551. package/dist/{plan-CdtX72kw.cjs.map → plan-CL-lbDuy.cjs.map} +1 -1
  552. package/dist/{plan-Cl3-JgbI.js → plan-TXWANP1R.js} +4 -4
  553. package/dist/{plan-Cl3-JgbI.js.map → plan-TXWANP1R.js.map} +1 -1
  554. package/dist/primitives/menu-item.cjs.js +1 -1
  555. package/dist/primitives/menu-item.es.js +1 -1
  556. package/dist/primitives/raised-surface.cjs.js +2 -0
  557. package/dist/primitives/raised-surface.cjs.js.map +1 -1
  558. package/dist/primitives/raised-surface.es.js +2 -1
  559. package/dist/primitives/raised-surface.es.js.map +1 -1
  560. package/dist/primitives/trigger-button.cjs.js +1 -1
  561. package/dist/primitives/trigger-button.es.js +1 -1
  562. package/dist/{property-filter-applied-BeLCh3zo.cjs → property-filter-applied-BBvaTC4B.cjs} +2 -2
  563. package/dist/{property-filter-applied-BeLCh3zo.cjs.map → property-filter-applied-BBvaTC4B.cjs.map} +1 -1
  564. package/dist/{property-filter-applied-CZLzY0OH.js → property-filter-applied-Ru3OQoGo.js} +2 -2
  565. package/dist/{property-filter-applied-CZLzY0OH.js.map → property-filter-applied-Ru3OQoGo.js.map} +1 -1
  566. package/dist/{reasoning-activity-DehWtcyc.cjs → reasoning-activity-CFEaSv4J.cjs} +2 -2
  567. package/dist/{reasoning-activity-DehWtcyc.cjs.map → reasoning-activity-CFEaSv4J.cjs.map} +1 -1
  568. package/dist/{reasoning-activity-CIuVSAGA.js → reasoning-activity-CHlEe011.js} +2 -2
  569. package/dist/{reasoning-activity-CIuVSAGA.js.map → reasoning-activity-CHlEe011.js.map} +1 -1
  570. package/dist/resize/panel-drawer.cjs.js +1 -1
  571. package/dist/resize/panel-drawer.es.js +1 -1
  572. package/dist/{search-input-UtTJMjJu.cjs → search-input-2DhcUIvn.cjs} +2 -2
  573. package/dist/{search-input-UtTJMjJu.cjs.map → search-input-2DhcUIvn.cjs.map} +1 -1
  574. package/dist/{search-input-fqSrRTLU.js → search-input-RybUdqzg.js} +2 -2
  575. package/dist/{search-input-fqSrRTLU.js.map → search-input-RybUdqzg.js.map} +1 -1
  576. package/dist/{select-N2lgBRsg.js → select-BvYdi3X0.js} +2 -2
  577. package/dist/{select-N2lgBRsg.js.map → select-BvYdi3X0.js.map} +1 -1
  578. package/dist/{select-Cdz5I0A5.cjs → select-D5cu0K7R.cjs} +2 -2
  579. package/dist/{select-Cdz5I0A5.cjs.map → select-D5cu0K7R.cjs.map} +1 -1
  580. package/dist/{side-dialog-DldgOJIk.cjs → side-dialog-CUQGSSLs.cjs} +4 -4
  581. package/dist/{side-dialog-DldgOJIk.cjs.map → side-dialog-CUQGSSLs.cjs.map} +1 -1
  582. package/dist/{side-dialog-CWQL33WR.js → side-dialog-DSxU1To7.js} +4 -4
  583. package/dist/{side-dialog-CWQL33WR.js.map → side-dialog-DSxU1To7.js.map} +1 -1
  584. package/dist/{span-payload-primitives-sEGOgFlX.cjs → span-payload-primitives-DIxmotnO.cjs} +2 -2
  585. package/dist/{span-payload-primitives-sEGOgFlX.cjs.map → span-payload-primitives-DIxmotnO.cjs.map} +1 -1
  586. package/dist/{span-payload-primitives-WqYTBiGx.js → span-payload-primitives-dTs5UrjA.js} +2 -2
  587. package/dist/{span-payload-primitives-WqYTBiGx.js.map → span-payload-primitives-dTs5UrjA.js.map} +1 -1
  588. package/dist/src/ds/components/Avatar/avatar-group.d.ts +1 -1
  589. package/dist/src/ds/components/DataPanel/data-panel-context.d.ts +3 -0
  590. package/dist/src/ds/components/DataPanel/data-panel-root.d.ts +28 -9
  591. package/dist/src/ds/components/DataPanel/index.d.ts +1 -1
  592. package/dist/src/ds/components/Pagination/index.d.ts +2 -0
  593. package/dist/src/ds/components/Pagination/pagination-context.d.ts +10 -0
  594. package/dist/src/ds/components/Pagination/pagination-range.d.ts +8 -0
  595. package/dist/src/ds/components/Pagination/pagination.d.ts +23 -0
  596. package/dist/src/ds/components/ProductAvatar/ProductAvatar.d.ts +3 -1
  597. package/dist/src/ds/components/ProductAvatar/product-avatar-size.d.ts +3 -0
  598. package/dist/src/ds/components/Table/Cells.d.ts +6 -2
  599. package/dist/src/ds/components/Table/Table.d.ts +30 -7
  600. package/dist/src/ds/components/Table/index.d.ts +10 -0
  601. package/dist/src/ds/components/Table/table-align.d.ts +7 -0
  602. package/dist/src/ds/components/Table/table-context.d.ts +4 -0
  603. package/dist/src/ds/components/Table/table-pagination.d.ts +7 -0
  604. package/dist/src/ds/components/Table/table-row-button.d.ts +3 -0
  605. package/dist/src/ds/components/Table/table-row-link.d.ts +3 -0
  606. package/dist/src/ds/components/Table/table-row-target.d.ts +2 -0
  607. package/dist/src/ds/components/Table/table-sort-button.d.ts +6 -0
  608. package/dist/src/ds/primitives/raised-surface.d.ts +5 -0
  609. package/dist/src/ee/signals/components/entity-index-model.d.ts +5 -0
  610. package/dist/src/ee/signals/components/entity-index-status.d.ts +4 -0
  611. package/dist/style.css +196 -24
  612. package/dist/{tabs-tab-D9ndsGQu.cjs → tabs-tab-CqcY4tHE.cjs} +2 -2
  613. package/dist/{tabs-tab-D9ndsGQu.cjs.map → tabs-tab-CqcY4tHE.cjs.map} +1 -1
  614. package/dist/{tabs-tab-BchiQf0E.js → tabs-tab-CzpXzpf-.js} +2 -2
  615. package/dist/{tabs-tab-BchiQf0E.js.map → tabs-tab-CzpXzpf-.js.map} +1 -1
  616. package/dist/{thread-list-D6tyuO1M.cjs → thread-list-D-VuTZnC.cjs} +2 -2
  617. package/dist/{thread-list-D6tyuO1M.cjs.map → thread-list-D-VuTZnC.cjs.map} +1 -1
  618. package/dist/{thread-list-2YHnS82L.js → thread-list-Duf5N74Z.js} +2 -2
  619. package/dist/{thread-list-2YHnS82L.js.map → thread-list-Duf5N74Z.js.map} +1 -1
  620. package/dist/{time-picker-J7GaNaEd.js → time-picker-CF6_miti.js} +2 -2
  621. package/dist/{time-picker-J7GaNaEd.js.map → time-picker-CF6_miti.js.map} +1 -1
  622. package/dist/{time-picker-D7hr3X0_.cjs → time-picker-DbDeIg8E.cjs} +2 -2
  623. package/dist/{time-picker-D7hr3X0_.cjs.map → time-picker-DbDeIg8E.cjs.map} +1 -1
  624. package/dist/{tool-approval-BpskZTWy.cjs → tool-approval-S6ml_xyU.cjs} +3 -3
  625. package/dist/{tool-approval-BpskZTWy.cjs.map → tool-approval-S6ml_xyU.cjs.map} +1 -1
  626. package/dist/{tool-approval-nsbG8-qI.js → tool-approval-TB8r2U_c.js} +3 -3
  627. package/dist/{tool-approval-nsbG8-qI.js.map → tool-approval-TB8r2U_c.js.map} +1 -1
  628. package/dist/{tool-call-arguments-RKyYP3xh.js → tool-call-arguments-CCkJ1btR.js} +3 -3
  629. package/dist/{tool-call-arguments-RKyYP3xh.js.map → tool-call-arguments-CCkJ1btR.js.map} +1 -1
  630. package/dist/{tool-call-arguments-Bj2MA4SW.cjs → tool-call-arguments-DyukJmhY.cjs} +3 -3
  631. package/dist/{tool-call-arguments-Bj2MA4SW.cjs.map → tool-call-arguments-DyukJmhY.cjs.map} +1 -1
  632. package/dist/{tool-call-mono-BAYC7OZl.js → tool-call-mono-CASKyxNt.js} +2 -2
  633. package/dist/{tool-call-mono-BAYC7OZl.js.map → tool-call-mono-CASKyxNt.js.map} +1 -1
  634. package/dist/{tool-call-mono-C42l0zrM.cjs → tool-call-mono-D8XffwXR.cjs} +2 -2
  635. package/dist/{tool-call-mono-C42l0zrM.cjs.map → tool-call-mono-D8XffwXR.cjs.map} +1 -1
  636. package/dist/{tool-call-output-CO6lqtGh.js → tool-call-output-qgqn19KC.js} +2 -2
  637. package/dist/{tool-call-output-CO6lqtGh.js.map → tool-call-output-qgqn19KC.js.map} +1 -1
  638. package/dist/{tool-call-output-BDua5O1z.cjs → tool-call-output-xx1drXqO.cjs} +2 -2
  639. package/dist/{tool-call-output-BDua5O1z.cjs.map → tool-call-output-xx1drXqO.cjs.map} +1 -1
  640. package/dist/{tool-card-BtPh44u6.js → tool-card-BftktBoV.js} +4 -4
  641. package/dist/{tool-card-BtPh44u6.js.map → tool-card-BftktBoV.js.map} +1 -1
  642. package/dist/{tool-card-C0pNVEva.cjs → tool-card-NFkMpChW.cjs} +4 -4
  643. package/dist/{tool-card-C0pNVEva.cjs.map → tool-card-NFkMpChW.cjs.map} +1 -1
  644. package/dist/{traces-data-list-_mFOMw0U.js → traces-data-list-1X6UBM6Y.js} +2 -4
  645. package/dist/{traces-data-list-_mFOMw0U.js.map → traces-data-list-1X6UBM6Y.js.map} +1 -1
  646. package/dist/{traces-data-list-Cf_PpmSN.cjs → traces-data-list-BXSXW3E6.cjs} +17 -19
  647. package/dist/{traces-data-list-Cf_PpmSN.cjs.map → traces-data-list-BXSXW3E6.cjs.map} +1 -1
  648. package/dist/{use-workflow-graph-runtime-CwDL7DzY.cjs → use-workflow-graph-runtime-C8TkqjvM.cjs} +3 -3
  649. package/dist/{use-workflow-graph-runtime-CwDL7DzY.cjs.map → use-workflow-graph-runtime-C8TkqjvM.cjs.map} +1 -1
  650. package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js → use-workflow-graph-runtime-DX56livO.js} +3 -3
  651. package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js.map → use-workflow-graph-runtime-DX56livO.js.map} +1 -1
  652. package/dist/{workflow-code-dialog-content-CNDoMFAV.js → workflow-code-dialog-content-DG-Lmvgu.js} +3 -3
  653. package/dist/{workflow-code-dialog-content-CNDoMFAV.js.map → workflow-code-dialog-content-DG-Lmvgu.js.map} +1 -1
  654. package/dist/{workflow-code-dialog-content-B7YU2kfe.cjs → workflow-code-dialog-content-vC_ddCYp.cjs} +3 -3
  655. package/dist/{workflow-code-dialog-content-B7YU2kfe.cjs.map → workflow-code-dialog-content-vC_ddCYp.cjs.map} +1 -1
  656. package/dist/{workflow-condition-card-DnSlcZ2s.js → workflow-condition-card-DMkPh5TM.js} +3 -3
  657. package/dist/{workflow-condition-card-DnSlcZ2s.js.map → workflow-condition-card-DMkPh5TM.js.map} +1 -1
  658. package/dist/{workflow-condition-card-CbaDpVa_.cjs → workflow-condition-card-bn5mrwKe.cjs} +3 -3
  659. package/dist/{workflow-condition-card-CbaDpVa_.cjs.map → workflow-condition-card-bn5mrwKe.cjs.map} +1 -1
  660. package/dist/{workflow-data-edge-view-BaA6YJye.js → workflow-data-edge-view-De0xCrVu.js} +2 -2
  661. package/dist/{workflow-data-edge-view-BaA6YJye.js.map → workflow-data-edge-view-De0xCrVu.js.map} +1 -1
  662. package/dist/{workflow-data-edge-view-BHvpuvmp.cjs → workflow-data-edge-view-kmB6j-ui.cjs} +2 -2
  663. package/dist/{workflow-data-edge-view-BHvpuvmp.cjs.map → workflow-data-edge-view-kmB6j-ui.cjs.map} +1 -1
  664. package/dist/{workflow-debug-controls-h7Q-RlJ2.js → workflow-debug-controls-CJTqoarc.js} +2 -2
  665. package/dist/{workflow-debug-controls-h7Q-RlJ2.js.map → workflow-debug-controls-CJTqoarc.js.map} +1 -1
  666. package/dist/{workflow-debug-controls-D9rmMeH-.cjs → workflow-debug-controls-CqaM7s-K.cjs} +2 -2
  667. package/dist/{workflow-debug-controls-D9rmMeH-.cjs.map → workflow-debug-controls-CqaM7s-K.cjs.map} +1 -1
  668. package/dist/{workflow-edge-data-button-6EDXzRxr.js → workflow-edge-data-button-CXbj67U9.js} +4 -4
  669. package/dist/{workflow-edge-data-button-6EDXzRxr.js.map → workflow-edge-data-button-CXbj67U9.js.map} +1 -1
  670. package/dist/{workflow-edge-data-button-Cz2rcoDr.cjs → workflow-edge-data-button-av1zCMfP.cjs} +4 -4
  671. package/dist/{workflow-edge-data-button-Cz2rcoDr.cjs.map → workflow-edge-data-button-av1zCMfP.cjs.map} +1 -1
  672. package/dist/{workflow-step-action-DmUW2AMM.js → workflow-step-action-AG05Ly8P.js} +2 -2
  673. package/dist/{workflow-step-action-DmUW2AMM.js.map → workflow-step-action-AG05Ly8P.js.map} +1 -1
  674. package/dist/{workflow-step-action-Ssz6Z2t5.cjs → workflow-step-action-BsBZk7j6.cjs} +2 -2
  675. package/dist/{workflow-step-action-Ssz6Z2t5.cjs.map → workflow-step-action-BsBZk7j6.cjs.map} +1 -1
  676. package/package.json +9 -9
  677. package/dist/Avatar-C2Sz53u5.js.map +0 -1
  678. package/dist/Avatar-D6ybWljK.cjs.map +0 -1
  679. package/dist/Button-BfZzgZrA.cjs.map +0 -1
  680. package/dist/Button-C8QDEN9j.js.map +0 -1
  681. package/dist/data-list-DkVOwk8l.cjs +0 -142
  682. package/dist/data-list-DkVOwk8l.cjs.map +0 -1
  683. package/dist/data-list-Dv2lP-dU.js +0 -138
  684. package/dist/data-list-Dv2lP-dU.js.map +0 -1
  685. package/dist/data-list-spacer-DEMquKp9.js +0 -209
  686. package/dist/data-list-spacer-DEMquKp9.js.map +0 -1
  687. package/dist/data-list-spacer-pXP8xDlg.cjs +0 -218
  688. package/dist/data-list-spacer-pXP8xDlg.cjs.map +0 -1
  689. package/dist/data-list-top-BJCC62oy.js.map +0 -1
  690. package/dist/data-list-top-Ds-NWyPO.cjs.map +0 -1
  691. package/dist/data-panel-COU5dbUJ.js.map +0 -1
  692. package/dist/data-panel-CTqb-0qN.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-card-oEbbYDo7.js","sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-description.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-summary.tsx","../src/ds/components/MetricsCard/metrics-card-tabs.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-and-description.tsx","../src/ds/components/MetricsCard/metrics-card-toolbar.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed between `TitleAndDescription` and `Summary` (which always renders last). */\nexport function MetricsCardActions({\n children,\n reveal = 'always',\n className,\n}: {\n children: ReactNode;\n /**\n * `hover`: the actions appear while the card is hovered or one of them has focus, so a page\n * of cards doesn't read as a page of buttons.\n */\n reveal?: 'always' | 'hover';\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-1 self-center',\n reveal === 'hover' &&\n 'opacity-0 transition-opacity duration-150 group-hover/metrics-card:opacity-100 focus-within:opacity-100',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Scrolls sideways only (wide tables). Vertical overflow is hidden: a chart filling a card with a\n * fractional height rounds 1px past it, which otherwise turns the content into a scroll box.\n * Tables inside a card drop the last row's border: the card edge already closes them.\n */\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('overflow-x-auto overflow-y-hidden [&_tbody>tr:last-child]:border-b-0', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardDescription({ children, className }: { children: string; className?: string }) {\n return (\n <Txt tone=\"faint\" className={cn('mt-0.5', className)}>\n {children}\n </Txt>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <Txt variant=\"caption\" className=\"text-destructive-foreground\">\n {message}\n </Txt>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <Txt tone=\"faint\">{message}</Txt>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'group/metrics-card grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { SkeletonText } from '@/ds/components/Skeleton';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\n/** Always the top bar's last item, so action buttons sit to its left and the value hugs the edge. */\nexport function MetricsCardSummary({\n value,\n label,\n isLoading = false,\n className,\n}: {\n value: string;\n label?: string;\n /** Skeletons in the value's and label's own line boxes, so the top bar keeps its height. */\n isLoading?: boolean;\n className?: string;\n}) {\n if (isLoading) {\n return (\n <div className={cn('order-last flex shrink-0 flex-col items-end', className)}>\n <SkeletonText line=\"text-body\" className=\"h-4 w-14\" />\n {label && <SkeletonText line=\"text-body mt-0.5\" className=\"w-10\" />}\n </div>\n );\n }\n return (\n <div className={cn('order-last text-right', className)}>\n <Txt tone=\"muted\" className=\"tabular-nums\">\n {value}\n </Txt>\n {label && (\n <Txt tone=\"faint\" className=\"mt-0.5\">\n {label}\n </Txt>\n )}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Tab, TabList, Tabs } from '@/ds/components/Tabs';\nimport type { TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport type MetricsCardTabsProps<T extends string> = {\n value: T;\n onValueChange: (value: T) => void;\n /** `MetricsCard.Tab`s. */\n children: ReactNode;\n};\n\n/**\n * The view switch in a metrics card's toolbar (e.g. Agents / Workflows / Tools): ghost tabs a\n * size under the control rung, so the switch stays quieter than the data. Metrics cards only;\n * anywhere else use `TabList`, which lines up with buttons and inputs.\n */\nexport function MetricsCardTabs<T extends string>({ value, onValueChange, children }: MetricsCardTabsProps<T>) {\n return (\n <Tabs<T> value={value} onValueChange={onValueChange} defaultTab={value}>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n {children}\n </TabList>\n </Tabs>\n );\n}\n\n/** One `MetricsCard.Tabs` option: 24px tall with 12px labels. */\nexport function MetricsCardTab({ className, ...props }: TabProps) {\n return <Tab {...props} className={cn('h-6 px-2.5 text-column', className)} />;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h2',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body text-foreground', className)}>{children}</Tag>;\n}\n","import type { ReactNode } from 'react';\n\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardTitle } from './metrics-card-title';\n\ntype PropsWithTitleDescription = {\n title: string;\n description?: string;\n titleAs?: 'h2' | 'h3' | 'h4';\n children?: never;\n className?: string;\n};\n\ntype PropsWithChildren = {\n title?: never;\n description?: never;\n children: ReactNode;\n className?: string;\n};\n\nexport function MetricsCardTitleAndDescription(props: PropsWithTitleDescription | PropsWithChildren) {\n if ('children' in props) {\n return <div className={props.className}>{props.children}</div>;\n }\n\n const { title, description, titleAs } = props;\n\n return (\n <div className={props.className}>\n <MetricsCardTitle as={titleAs}>{title}</MetricsCardTitle>\n {description && <MetricsCardDescription>{description}</MetricsCardDescription>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * One row under the top bar for a card's controls: small tabs, a legend, list column headers.\n * The first child sits on the left, the last on the right; either side may be omitted. When\n * both don't fit (a narrow card), the right side wraps to its own line, still on the right.\n */\nexport function MetricsCardToolbar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n className={cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-x-4 gap-y-2 [&>*:first-child]:min-w-0 [&>*:last-child:not(:first-child)]:ml-auto',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardSummary } from './metrics-card-summary';\nimport { MetricsCardTab, MetricsCardTabs } from './metrics-card-tabs';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleAndDescription } from './metrics-card-title-and-description';\nimport { MetricsCardToolbar } from './metrics-card-toolbar';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Toolbar: MetricsCardToolbar,\n Tabs: MetricsCardTabs,\n Tab: MetricsCardTab,\n Actions: MetricsCardActions,\n TitleAndDescription: MetricsCardTitleAndDescription,\n Title: MetricsCardTitle,\n Description: MetricsCardDescription,\n Summary: MetricsCardSummary,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics-card-C33VsuXf.js","sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-description.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-summary.tsx","../src/ds/components/MetricsCard/metrics-card-tabs.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-and-description.tsx","../src/ds/components/MetricsCard/metrics-card-toolbar.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed between `TitleAndDescription` and `Summary` (which always renders last). */\nexport function MetricsCardActions({\n children,\n reveal = 'always',\n className,\n}: {\n children: ReactNode;\n /**\n * `hover`: the actions appear while the card is hovered or one of them has focus, so a page\n * of cards doesn't read as a page of buttons.\n */\n reveal?: 'always' | 'hover';\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-1 self-center',\n reveal === 'hover' &&\n 'opacity-0 transition-opacity duration-150 group-hover/metrics-card:opacity-100 focus-within:opacity-100',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Scrolls sideways only (wide tables). Vertical overflow is hidden: a chart filling a card with a\n * fractional height rounds 1px past it, which otherwise turns the content into a scroll box.\n * Tables inside a card drop the last row's border: the card edge already closes them.\n */\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('overflow-x-auto overflow-y-hidden [&_tbody>tr:last-child]:border-b-0', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardDescription({ children, className }: { children: string; className?: string }) {\n return (\n <Txt tone=\"faint\" className={cn('mt-0.5', className)}>\n {children}\n </Txt>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <Txt variant=\"caption\" className=\"text-destructive-foreground\">\n {message}\n </Txt>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <Txt tone=\"faint\">{message}</Txt>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'group/metrics-card grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { SkeletonText } from '@/ds/components/Skeleton';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\n/** Always the top bar's last item, so action buttons sit to its left and the value hugs the edge. */\nexport function MetricsCardSummary({\n value,\n label,\n isLoading = false,\n className,\n}: {\n value: string;\n label?: string;\n /** Skeletons in the value's and label's own line boxes, so the top bar keeps its height. */\n isLoading?: boolean;\n className?: string;\n}) {\n if (isLoading) {\n return (\n <div className={cn('order-last flex shrink-0 flex-col items-end', className)}>\n <SkeletonText line=\"text-body\" className=\"h-4 w-14\" />\n {label && <SkeletonText line=\"text-body mt-0.5\" className=\"w-10\" />}\n </div>\n );\n }\n return (\n <div className={cn('order-last text-right', className)}>\n <Txt tone=\"muted\" className=\"tabular-nums\">\n {value}\n </Txt>\n {label && (\n <Txt tone=\"faint\" className=\"mt-0.5\">\n {label}\n </Txt>\n )}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Tab, TabList, Tabs } from '@/ds/components/Tabs';\nimport type { TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport type MetricsCardTabsProps<T extends string> = {\n value: T;\n onValueChange: (value: T) => void;\n /** `MetricsCard.Tab`s. */\n children: ReactNode;\n};\n\n/**\n * The view switch in a metrics card's toolbar (e.g. Agents / Workflows / Tools): ghost tabs a\n * size under the control rung, so the switch stays quieter than the data. Metrics cards only;\n * anywhere else use `TabList`, which lines up with buttons and inputs.\n */\nexport function MetricsCardTabs<T extends string>({ value, onValueChange, children }: MetricsCardTabsProps<T>) {\n return (\n <Tabs<T> value={value} onValueChange={onValueChange} defaultTab={value}>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n {children}\n </TabList>\n </Tabs>\n );\n}\n\n/** One `MetricsCard.Tabs` option: 24px tall with 12px labels. */\nexport function MetricsCardTab({ className, ...props }: TabProps) {\n return <Tab {...props} className={cn('h-6 px-2.5 text-column', className)} />;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h2',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body text-foreground', className)}>{children}</Tag>;\n}\n","import type { ReactNode } from 'react';\n\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardTitle } from './metrics-card-title';\n\ntype PropsWithTitleDescription = {\n title: string;\n description?: string;\n titleAs?: 'h2' | 'h3' | 'h4';\n children?: never;\n className?: string;\n};\n\ntype PropsWithChildren = {\n title?: never;\n description?: never;\n children: ReactNode;\n className?: string;\n};\n\nexport function MetricsCardTitleAndDescription(props: PropsWithTitleDescription | PropsWithChildren) {\n if ('children' in props) {\n return <div className={props.className}>{props.children}</div>;\n }\n\n const { title, description, titleAs } = props;\n\n return (\n <div className={props.className}>\n <MetricsCardTitle as={titleAs}>{title}</MetricsCardTitle>\n {description && <MetricsCardDescription>{description}</MetricsCardDescription>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * One row under the top bar for a card's controls: small tabs, a legend, list column headers.\n * The first child sits on the left, the last on the right; either side may be omitted. When\n * both don't fit (a narrow card), the right side wraps to its own line, still on the right.\n */\nexport function MetricsCardToolbar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n className={cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-x-4 gap-y-2 [&>*:first-child]:min-w-0 [&>*:last-child:not(:first-child)]:ml-auto',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardSummary } from './metrics-card-summary';\nimport { MetricsCardTab, MetricsCardTabs } from './metrics-card-tabs';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleAndDescription } from './metrics-card-title-and-description';\nimport { MetricsCardToolbar } from './metrics-card-toolbar';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Toolbar: MetricsCardToolbar,\n Tabs: MetricsCardTabs,\n Tab: MetricsCardTab,\n Actions: MetricsCardActions,\n TitleAndDescription: MetricsCardTitleAndDescription,\n Title: MetricsCardTitle,\n Description: MetricsCardDescription,\n Summary: MetricsCardSummary,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const Card = require('./Card-RlL14eS5.cjs');
8
8
  const skeletonText = require('./skeleton-text-BIxW9ohx.cjs');
9
9
  const tabsRoot = require('./tabs-root-Phsi-P1b.cjs');
10
10
  const tabsList = require('./tabs-list-xikY_dug.cjs');
11
- const tabsTab = require('./tabs-tab-D9ndsGQu.cjs');
11
+ const tabsTab = require('./tabs-tab-CqcY4tHE.cjs');
12
12
  const metricsKpiCard = require('./metrics-kpi-card-B-CKwzcj.cjs');
13
13
 
14
14
  function MetricsCardActions({
@@ -145,4 +145,4 @@ const MetricsCard = Object.assign(MetricsCardRoot, {
145
145
  });
146
146
 
147
147
  exports.MetricsCard = MetricsCard;
148
- //# sourceMappingURL=metrics-card-Bv2A5G41.cjs.map
148
+ //# sourceMappingURL=metrics-card-CxOVpP1t.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-card-Bv2A5G41.cjs","sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-description.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-summary.tsx","../src/ds/components/MetricsCard/metrics-card-tabs.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-and-description.tsx","../src/ds/components/MetricsCard/metrics-card-toolbar.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed between `TitleAndDescription` and `Summary` (which always renders last). */\nexport function MetricsCardActions({\n children,\n reveal = 'always',\n className,\n}: {\n children: ReactNode;\n /**\n * `hover`: the actions appear while the card is hovered or one of them has focus, so a page\n * of cards doesn't read as a page of buttons.\n */\n reveal?: 'always' | 'hover';\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-1 self-center',\n reveal === 'hover' &&\n 'opacity-0 transition-opacity duration-150 group-hover/metrics-card:opacity-100 focus-within:opacity-100',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Scrolls sideways only (wide tables). Vertical overflow is hidden: a chart filling a card with a\n * fractional height rounds 1px past it, which otherwise turns the content into a scroll box.\n * Tables inside a card drop the last row's border: the card edge already closes them.\n */\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('overflow-x-auto overflow-y-hidden [&_tbody>tr:last-child]:border-b-0', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardDescription({ children, className }: { children: string; className?: string }) {\n return (\n <Txt tone=\"faint\" className={cn('mt-0.5', className)}>\n {children}\n </Txt>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <Txt variant=\"caption\" className=\"text-destructive-foreground\">\n {message}\n </Txt>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <Txt tone=\"faint\">{message}</Txt>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'group/metrics-card grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { SkeletonText } from '@/ds/components/Skeleton';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\n/** Always the top bar's last item, so action buttons sit to its left and the value hugs the edge. */\nexport function MetricsCardSummary({\n value,\n label,\n isLoading = false,\n className,\n}: {\n value: string;\n label?: string;\n /** Skeletons in the value's and label's own line boxes, so the top bar keeps its height. */\n isLoading?: boolean;\n className?: string;\n}) {\n if (isLoading) {\n return (\n <div className={cn('order-last flex shrink-0 flex-col items-end', className)}>\n <SkeletonText line=\"text-body\" className=\"h-4 w-14\" />\n {label && <SkeletonText line=\"text-body mt-0.5\" className=\"w-10\" />}\n </div>\n );\n }\n return (\n <div className={cn('order-last text-right', className)}>\n <Txt tone=\"muted\" className=\"tabular-nums\">\n {value}\n </Txt>\n {label && (\n <Txt tone=\"faint\" className=\"mt-0.5\">\n {label}\n </Txt>\n )}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Tab, TabList, Tabs } from '@/ds/components/Tabs';\nimport type { TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport type MetricsCardTabsProps<T extends string> = {\n value: T;\n onValueChange: (value: T) => void;\n /** `MetricsCard.Tab`s. */\n children: ReactNode;\n};\n\n/**\n * The view switch in a metrics card's toolbar (e.g. Agents / Workflows / Tools): ghost tabs a\n * size under the control rung, so the switch stays quieter than the data. Metrics cards only;\n * anywhere else use `TabList`, which lines up with buttons and inputs.\n */\nexport function MetricsCardTabs<T extends string>({ value, onValueChange, children }: MetricsCardTabsProps<T>) {\n return (\n <Tabs<T> value={value} onValueChange={onValueChange} defaultTab={value}>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n {children}\n </TabList>\n </Tabs>\n );\n}\n\n/** One `MetricsCard.Tabs` option: 24px tall with 12px labels. */\nexport function MetricsCardTab({ className, ...props }: TabProps) {\n return <Tab {...props} className={cn('h-6 px-2.5 text-column', className)} />;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h2',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body text-foreground', className)}>{children}</Tag>;\n}\n","import type { ReactNode } from 'react';\n\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardTitle } from './metrics-card-title';\n\ntype PropsWithTitleDescription = {\n title: string;\n description?: string;\n titleAs?: 'h2' | 'h3' | 'h4';\n children?: never;\n className?: string;\n};\n\ntype PropsWithChildren = {\n title?: never;\n description?: never;\n children: ReactNode;\n className?: string;\n};\n\nexport function MetricsCardTitleAndDescription(props: PropsWithTitleDescription | PropsWithChildren) {\n if ('children' in props) {\n return <div className={props.className}>{props.children}</div>;\n }\n\n const { title, description, titleAs } = props;\n\n return (\n <div className={props.className}>\n <MetricsCardTitle as={titleAs}>{title}</MetricsCardTitle>\n {description && <MetricsCardDescription>{description}</MetricsCardDescription>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * One row under the top bar for a card's controls: small tabs, a legend, list column headers.\n * The first child sits on the left, the last on the right; either side may be omitted. When\n * both don't fit (a narrow card), the right side wraps to its own line, still on the right.\n */\nexport function MetricsCardToolbar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n className={cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-x-4 gap-y-2 [&>*:first-child]:min-w-0 [&>*:last-child:not(:first-child)]:ml-auto',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardSummary } from './metrics-card-summary';\nimport { MetricsCardTab, MetricsCardTabs } from './metrics-card-tabs';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleAndDescription } from './metrics-card-title-and-description';\nimport { MetricsCardToolbar } from './metrics-card-toolbar';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Toolbar: MetricsCardToolbar,\n Tabs: MetricsCardTabs,\n Tab: MetricsCardTab,\n Actions: MetricsCardActions,\n TitleAndDescription: MetricsCardTitleAndDescription,\n Title: MetricsCardTitle,\n Description: MetricsCardDescription,\n Summary: MetricsCardSummary,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"names":["jsx","cn","Txt","Spinner","Card","SkeletonText","Tabs","TabList","Tab","jsxs","MetricsKpiCard"],"mappings":"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"}
1
+ {"version":3,"file":"metrics-card-CxOVpP1t.cjs","sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-description.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-summary.tsx","../src/ds/components/MetricsCard/metrics-card-tabs.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-and-description.tsx","../src/ds/components/MetricsCard/metrics-card-toolbar.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed between `TitleAndDescription` and `Summary` (which always renders last). */\nexport function MetricsCardActions({\n children,\n reveal = 'always',\n className,\n}: {\n children: ReactNode;\n /**\n * `hover`: the actions appear while the card is hovered or one of them has focus, so a page\n * of cards doesn't read as a page of buttons.\n */\n reveal?: 'always' | 'hover';\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'flex shrink-0 items-center gap-1 self-center',\n reveal === 'hover' &&\n 'opacity-0 transition-opacity duration-150 group-hover/metrics-card:opacity-100 focus-within:opacity-100',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Scrolls sideways only (wide tables). Vertical overflow is hidden: a chart filling a card with a\n * fractional height rounds 1px past it, which otherwise turns the content into a scroll box.\n * Tables inside a card drop the last row's border: the card edge already closes them.\n */\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('overflow-x-auto overflow-y-hidden [&_tbody>tr:last-child]:border-b-0', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardDescription({ children, className }: { children: string; className?: string }) {\n return (\n <Txt tone=\"faint\" className={cn('mt-0.5', className)}>\n {children}\n </Txt>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <Txt variant=\"caption\" className=\"text-destructive-foreground\">\n {message}\n </Txt>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <Txt tone=\"faint\">{message}</Txt>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'group/metrics-card grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { SkeletonText } from '@/ds/components/Skeleton';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\n/** Always the top bar's last item, so action buttons sit to its left and the value hugs the edge. */\nexport function MetricsCardSummary({\n value,\n label,\n isLoading = false,\n className,\n}: {\n value: string;\n label?: string;\n /** Skeletons in the value's and label's own line boxes, so the top bar keeps its height. */\n isLoading?: boolean;\n className?: string;\n}) {\n if (isLoading) {\n return (\n <div className={cn('order-last flex shrink-0 flex-col items-end', className)}>\n <SkeletonText line=\"text-body\" className=\"h-4 w-14\" />\n {label && <SkeletonText line=\"text-body mt-0.5\" className=\"w-10\" />}\n </div>\n );\n }\n return (\n <div className={cn('order-last text-right', className)}>\n <Txt tone=\"muted\" className=\"tabular-nums\">\n {value}\n </Txt>\n {label && (\n <Txt tone=\"faint\" className=\"mt-0.5\">\n {label}\n </Txt>\n )}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Tab, TabList, Tabs } from '@/ds/components/Tabs';\nimport type { TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport type MetricsCardTabsProps<T extends string> = {\n value: T;\n onValueChange: (value: T) => void;\n /** `MetricsCard.Tab`s. */\n children: ReactNode;\n};\n\n/**\n * The view switch in a metrics card's toolbar (e.g. Agents / Workflows / Tools): ghost tabs a\n * size under the control rung, so the switch stays quieter than the data. Metrics cards only;\n * anywhere else use `TabList`, which lines up with buttons and inputs.\n */\nexport function MetricsCardTabs<T extends string>({ value, onValueChange, children }: MetricsCardTabsProps<T>) {\n return (\n <Tabs<T> value={value} onValueChange={onValueChange} defaultTab={value}>\n <TabList variant=\"pill-ghost\" size=\"sm\">\n {children}\n </TabList>\n </Tabs>\n );\n}\n\n/** One `MetricsCard.Tabs` option: 24px tall with 12px labels. */\nexport function MetricsCardTab({ className, ...props }: TabProps) {\n return <Tab {...props} className={cn('h-6 px-2.5 text-column', className)} />;\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h2',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body text-foreground', className)}>{children}</Tag>;\n}\n","import type { ReactNode } from 'react';\n\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardTitle } from './metrics-card-title';\n\ntype PropsWithTitleDescription = {\n title: string;\n description?: string;\n titleAs?: 'h2' | 'h3' | 'h4';\n children?: never;\n className?: string;\n};\n\ntype PropsWithChildren = {\n title?: never;\n description?: never;\n children: ReactNode;\n className?: string;\n};\n\nexport function MetricsCardTitleAndDescription(props: PropsWithTitleDescription | PropsWithChildren) {\n if ('children' in props) {\n return <div className={props.className}>{props.children}</div>;\n }\n\n const { title, description, titleAs } = props;\n\n return (\n <div className={props.className}>\n <MetricsCardTitle as={titleAs}>{title}</MetricsCardTitle>\n {description && <MetricsCardDescription>{description}</MetricsCardDescription>}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * One row under the top bar for a card's controls: small tabs, a legend, list column headers.\n * The first child sits on the left, the last on the right; either side may be omitted. When\n * both don't fit (a narrow card), the right side wraps to its own line, still on the right.\n */\nexport function MetricsCardToolbar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n className={cn(\n 'flex min-w-0 flex-wrap items-center justify-between gap-x-4 gap-y-2 [&>*:first-child]:min-w-0 [&>*:last-child:not(:first-child)]:ml-auto',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardDescription } from './metrics-card-description';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardSummary } from './metrics-card-summary';\nimport { MetricsCardTab, MetricsCardTabs } from './metrics-card-tabs';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleAndDescription } from './metrics-card-title-and-description';\nimport { MetricsCardToolbar } from './metrics-card-toolbar';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Toolbar: MetricsCardToolbar,\n Tabs: MetricsCardTabs,\n Tab: MetricsCardTab,\n Actions: MetricsCardActions,\n TitleAndDescription: MetricsCardTitleAndDescription,\n Title: MetricsCardTitle,\n Description: MetricsCardDescription,\n Summary: MetricsCardSummary,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"names":["jsx","cn","Txt","Spinner","Card","SkeletonText","Tabs","TabList","Tab","jsxs","MetricsKpiCard"],"mappings":"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"}
@@ -28,9 +28,10 @@ function AppShell({ children, className, mobileHeader, ref, sidebar, ...props })
28
28
  "data-slot": "app-shell-body",
29
29
  className: utils_cn.cn(
30
30
  "flex min-h-0 flex-1 flex-col",
31
- // Inset on every side; at lg with a sidebar column the sidebar's own padding provides the left gap.
32
- // Disjoint longhands: consumer CSS that also emits `.p-1.5` can't override the lg inset.
33
- "max-lg:p-1.5 lg:py-2 lg:pr-2",
31
+ // Below lg the sidebar is a drawer and the content runs edge to edge under the mobile header.
32
+ // From lg it's inset on every side; with a sidebar column the sidebar's own padding provides the left gap.
33
+ // Longhands only: consumer CSS that also emits a padding shorthand can't override the lg inset.
34
+ "lg:py-2 lg:pr-2",
34
35
  sidebar ? "lg:pl-0" : "lg:pl-2"
35
36
  ),
36
37
  children
@@ -47,7 +48,11 @@ function MainCard({ children, className }) {
47
48
  "div",
48
49
  {
49
50
  "data-slot": "main-card",
50
- className: utils_cn.cn("relative min-h-0 flex-1 overflow-hidden rounded-studio-frame p-px", primitives_raisedSurface.frameSurfaceStyle, className),
51
+ className: utils_cn.cn(
52
+ "relative min-h-0 flex-1 overflow-hidden lg:rounded-studio-frame lg:p-px lg:shadow-raised",
53
+ primitives_raisedSurface.frameFillStyle,
54
+ className
55
+ ),
51
56
  children
52
57
  }
53
58
  );
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.cjs.js","sources":["../../../src/ds/new/layout/app-shell/app-shell.tsx","../../../src/ds/new/layout/app-shell/main-card.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport './app-shell.css';\n\nexport interface AppShellProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n children: ReactNode;\n mobileHeader?: ReactNode;\n sidebar?: ReactNode;\n}\n\nexport function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }: AppShellProps) {\n return (\n <div\n ref={ref}\n data-slot=\"app-shell\"\n className={cn(\n 'h-full min-h-0',\n sidebar && 'lg:grid lg:grid-cols-[auto_minmax(0,1fr)] lg:grid-rows-[1fr]',\n className,\n )}\n {...props}\n >\n {sidebar}\n <div data-slot=\"app-shell-content\" className=\"flex h-full min-h-0 min-w-0 flex-col\">\n {mobileHeader}\n <div\n data-slot=\"app-shell-body\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col',\n // Inset on every side; at lg with a sidebar column the sidebar's own padding provides the left gap.\n // Disjoint longhands: consumer CSS that also emits `.p-1.5` can't override the lg inset.\n 'max-lg:p-1.5 lg:py-2 lg:pr-2',\n sidebar ? 'lg:pl-0' : 'lg:pl-2',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { frameSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// The app frame surface inside `AppShell`. Spacing around it is owned by the shell, not the card.\n// Reserve the 1px inset rim so child dividers don't paint over it and stack their alpha.\nexport function MainCard({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n data-slot=\"main-card\"\n className={cn('relative min-h-0 flex-1 overflow-hidden rounded-studio-frame p-px', frameSurfaceStyle, className)}\n >\n {children}\n </div>\n );\n}\n"],"names":["jsxs","cn","jsx","frameSurfaceStyle"],"mappings":";;;;;;;;AAYO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,GAAA,EAAK,OAAA,EAAS,GAAG,KAAA,EAAM,EAAkB;AACrG,EAAA,uBACEA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWC,WAAA;AAAA,QACT,gBAAA;AAAA,QACA,OAAA,IAAW,8DAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBACDD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,mBAAA,EAAoB,WAAU,sCAAA,EAC1C,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,0BACDE,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,gBAAA;AAAA,cACV,SAAA,EAAWD,WAAA;AAAA,gBACT,8BAAA;AAAA;AAAA;AAAA,gBAGA,8BAAA;AAAA,gBACA,UAAU,SAAA,GAAY;AAAA,eACxB;AAAA,cAEC;AAAA;AAAA;AACH,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;ACnCO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AAC7F,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWD,WAAA,CAAG,mEAAA,EAAqEE,0CAAA,EAAmB,SAAS,CAAA;AAAA,MAE9G;AAAA;AAAA,GACH;AAEJ;;;;;"}
1
+ {"version":3,"file":"app-shell.cjs.js","sources":["../../../src/ds/new/layout/app-shell/app-shell.tsx","../../../src/ds/new/layout/app-shell/main-card.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport './app-shell.css';\n\nexport interface AppShellProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n children: ReactNode;\n mobileHeader?: ReactNode;\n sidebar?: ReactNode;\n}\n\nexport function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }: AppShellProps) {\n return (\n <div\n ref={ref}\n data-slot=\"app-shell\"\n className={cn(\n 'h-full min-h-0',\n sidebar && 'lg:grid lg:grid-cols-[auto_minmax(0,1fr)] lg:grid-rows-[1fr]',\n className,\n )}\n {...props}\n >\n {sidebar}\n <div data-slot=\"app-shell-content\" className=\"flex h-full min-h-0 min-w-0 flex-col\">\n {mobileHeader}\n <div\n data-slot=\"app-shell-body\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col',\n // Below lg the sidebar is a drawer and the content runs edge to edge under the mobile header.\n // From lg it's inset on every side; with a sidebar column the sidebar's own padding provides the left gap.\n // Longhands only: consumer CSS that also emits a padding shorthand can't override the lg inset.\n 'lg:py-2 lg:pr-2',\n sidebar ? 'lg:pl-0' : 'lg:pl-2',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { frameFillStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// The app frame surface inside `AppShell`. Spacing around it is owned by the shell, not the card.\n// Framed only from lg, where the sidebar sits beside it (the sidebar's drawer breakpoint); below lg it is\n// flat page content under the mobile header. lg-only classes, not max-lg overrides, so consumer CSS that\n// also emits the base classes can't undo the flat state by source order.\n// Reserve the 1px inset rim so child dividers don't paint over it and stack their alpha.\nexport function MainCard({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n data-slot=\"main-card\"\n className={cn(\n 'relative min-h-0 flex-1 overflow-hidden lg:rounded-studio-frame lg:p-px lg:shadow-raised',\n frameFillStyle,\n className,\n )}\n >\n {children}\n </div>\n );\n}\n"],"names":["jsxs","cn","jsx","frameFillStyle"],"mappings":";;;;;;;;AAYO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,GAAA,EAAK,OAAA,EAAS,GAAG,KAAA,EAAM,EAAkB;AACrG,EAAA,uBACEA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWC,WAAA;AAAA,QACT,gBAAA;AAAA,QACA,OAAA,IAAW,8DAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBACDD,eAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,mBAAA,EAAoB,WAAU,sCAAA,EAC1C,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,0BACDE,cAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,gBAAA;AAAA,cACV,SAAA,EAAWD,WAAA;AAAA,gBACT,8BAAA;AAAA;AAAA;AAAA;AAAA,gBAIA,iBAAA;AAAA,gBACA,UAAU,SAAA,GAAY;AAAA,eACxB;AAAA,cAEC;AAAA;AAAA;AACH,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;ACjCO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AAC7F,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAWD,WAAA;AAAA,QACT,0FAAA;AAAA,QACAE,uCAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { c as cn } from '../../cn-coERSHz5.js';
3
- import { frameSurfaceStyle } from '../../primitives/raised-surface.es.js';
3
+ import { frameFillStyle } from '../../primitives/raised-surface.es.js';
4
4
 
5
5
  import '../../app-shell.css';function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }) {
6
6
  return /* @__PURE__ */ jsxs(
@@ -24,9 +24,10 @@ import '../../app-shell.css';function AppShell({ children, className, mobileHead
24
24
  "data-slot": "app-shell-body",
25
25
  className: cn(
26
26
  "flex min-h-0 flex-1 flex-col",
27
- // Inset on every side; at lg with a sidebar column the sidebar's own padding provides the left gap.
28
- // Disjoint longhands: consumer CSS that also emits `.p-1.5` can't override the lg inset.
29
- "max-lg:p-1.5 lg:py-2 lg:pr-2",
27
+ // Below lg the sidebar is a drawer and the content runs edge to edge under the mobile header.
28
+ // From lg it's inset on every side; with a sidebar column the sidebar's own padding provides the left gap.
29
+ // Longhands only: consumer CSS that also emits a padding shorthand can't override the lg inset.
30
+ "lg:py-2 lg:pr-2",
30
31
  sidebar ? "lg:pl-0" : "lg:pl-2"
31
32
  ),
32
33
  children
@@ -43,7 +44,11 @@ function MainCard({ children, className }) {
43
44
  "div",
44
45
  {
45
46
  "data-slot": "main-card",
46
- className: cn("relative min-h-0 flex-1 overflow-hidden rounded-studio-frame p-px", frameSurfaceStyle, className),
47
+ className: cn(
48
+ "relative min-h-0 flex-1 overflow-hidden lg:rounded-studio-frame lg:p-px lg:shadow-raised",
49
+ frameFillStyle,
50
+ className
51
+ ),
47
52
  children
48
53
  }
49
54
  );
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.es.js","sources":["../../../src/ds/new/layout/app-shell/app-shell.tsx","../../../src/ds/new/layout/app-shell/main-card.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport './app-shell.css';\n\nexport interface AppShellProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n children: ReactNode;\n mobileHeader?: ReactNode;\n sidebar?: ReactNode;\n}\n\nexport function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }: AppShellProps) {\n return (\n <div\n ref={ref}\n data-slot=\"app-shell\"\n className={cn(\n 'h-full min-h-0',\n sidebar && 'lg:grid lg:grid-cols-[auto_minmax(0,1fr)] lg:grid-rows-[1fr]',\n className,\n )}\n {...props}\n >\n {sidebar}\n <div data-slot=\"app-shell-content\" className=\"flex h-full min-h-0 min-w-0 flex-col\">\n {mobileHeader}\n <div\n data-slot=\"app-shell-body\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col',\n // Inset on every side; at lg with a sidebar column the sidebar's own padding provides the left gap.\n // Disjoint longhands: consumer CSS that also emits `.p-1.5` can't override the lg inset.\n 'max-lg:p-1.5 lg:py-2 lg:pr-2',\n sidebar ? 'lg:pl-0' : 'lg:pl-2',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { frameSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// The app frame surface inside `AppShell`. Spacing around it is owned by the shell, not the card.\n// Reserve the 1px inset rim so child dividers don't paint over it and stack their alpha.\nexport function MainCard({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n data-slot=\"main-card\"\n className={cn('relative min-h-0 flex-1 overflow-hidden rounded-studio-frame p-px', frameSurfaceStyle, className)}\n >\n {children}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;AAYO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,GAAA,EAAK,OAAA,EAAS,GAAG,KAAA,EAAM,EAAkB;AACrG,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,gBAAA;AAAA,QACA,OAAA,IAAW,8DAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBACD,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,mBAAA,EAAoB,WAAU,sCAAA,EAC1C,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,0BACD,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,gBAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,8BAAA;AAAA;AAAA;AAAA,gBAGA,8BAAA;AAAA,gBACA,UAAU,SAAA,GAAY;AAAA,eACxB;AAAA,cAEC;AAAA;AAAA;AACH,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;ACnCO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AAC7F,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mEAAA,EAAqE,iBAAA,EAAmB,SAAS,CAAA;AAAA,MAE9G;AAAA;AAAA,GACH;AAEJ;;;;"}
1
+ {"version":3,"file":"app-shell.es.js","sources":["../../../src/ds/new/layout/app-shell/app-shell.tsx","../../../src/ds/new/layout/app-shell/main-card.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nimport './app-shell.css';\n\nexport interface AppShellProps extends Omit<ComponentPropsWithRef<'div'>, 'children'> {\n children: ReactNode;\n mobileHeader?: ReactNode;\n sidebar?: ReactNode;\n}\n\nexport function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }: AppShellProps) {\n return (\n <div\n ref={ref}\n data-slot=\"app-shell\"\n className={cn(\n 'h-full min-h-0',\n sidebar && 'lg:grid lg:grid-cols-[auto_minmax(0,1fr)] lg:grid-rows-[1fr]',\n className,\n )}\n {...props}\n >\n {sidebar}\n <div data-slot=\"app-shell-content\" className=\"flex h-full min-h-0 min-w-0 flex-col\">\n {mobileHeader}\n <div\n data-slot=\"app-shell-body\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col',\n // Below lg the sidebar is a drawer and the content runs edge to edge under the mobile header.\n // From lg it's inset on every side; with a sidebar column the sidebar's own padding provides the left gap.\n // Longhands only: consumer CSS that also emits a padding shorthand can't override the lg inset.\n 'lg:py-2 lg:pr-2',\n sidebar ? 'lg:pl-0' : 'lg:pl-2',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { frameFillStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n// The app frame surface inside `AppShell`. Spacing around it is owned by the shell, not the card.\n// Framed only from lg, where the sidebar sits beside it (the sidebar's drawer breakpoint); below lg it is\n// flat page content under the mobile header. lg-only classes, not max-lg overrides, so consumer CSS that\n// also emits the base classes can't undo the flat state by source order.\n// Reserve the 1px inset rim so child dividers don't paint over it and stack their alpha.\nexport function MainCard({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n data-slot=\"main-card\"\n className={cn(\n 'relative min-h-0 flex-1 overflow-hidden lg:rounded-studio-frame lg:p-px lg:shadow-raised',\n frameFillStyle,\n className,\n )}\n >\n {children}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;AAYO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAW,cAAc,GAAA,EAAK,OAAA,EAAS,GAAG,KAAA,EAAM,EAAkB;AACrG,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,gBAAA;AAAA,QACA,OAAA,IAAW,8DAAA;AAAA,QACX;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,OAAA;AAAA,wBACD,IAAA,CAAC,KAAA,EAAA,EAAI,WAAA,EAAU,mBAAA,EAAoB,WAAU,sCAAA,EAC1C,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,0BACD,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,gBAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,8BAAA;AAAA;AAAA;AAAA;AAAA,gBAIA,iBAAA;AAAA,gBACA,UAAU,SAAA,GAAY;AAAA,eACxB;AAAA,cAEC;AAAA;AAAA;AACH,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;;ACjCO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAgD;AAC7F,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,0FAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;;;"}
@@ -0,0 +1,191 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import { Ellipsis, ChevronRight, ChevronLeft } from 'lucide-react';
4
+ import { createContext, use, useRef, useCallback, useState, useMemo, cloneElement, isValidElement } from 'react';
5
+ import { FluidHoverHighlight } from './components/fluid-hover-highlight.es.js';
6
+ import { Icon } from './icons/Icon.es.js';
7
+ import { controlSizeClasses } from './primitives/control-size.es.js';
8
+ import { raisedControlSurfaceStyle } from './primitives/form-element.es.js';
9
+ import { focusRing, controlStateColorTransition } from './primitives/transitions.es.js';
10
+ import { useFluidHover } from './hooks/use-fluid-hover.es.js';
11
+ import { c as cn } from './cn-coERSHz5.js';
12
+
13
+ const PaginationContext = createContext(void 0);
14
+ const isCurrent = (element) => element.getAttribute("aria-current") === "page";
15
+ const clearCurrent = (index) => (current) => {
16
+ if (current === index) return null;
17
+ return current;
18
+ };
19
+ function usePaginationItemRef() {
20
+ const ctx = use(PaginationContext);
21
+ const indexRef = useRef(void 0);
22
+ const unsubscribeRef = useRef(void 0);
23
+ return useCallback(
24
+ (element) => {
25
+ unsubscribeRef.current?.();
26
+ unsubscribeRef.current = void 0;
27
+ if (!ctx) return;
28
+ const { registerItem, allocateIndex, releaseIndex, setCurrentIndex } = ctx;
29
+ if (!element) {
30
+ const index2 = indexRef.current;
31
+ if (index2 === void 0) return;
32
+ registerItem(index2, null);
33
+ releaseIndex(index2);
34
+ setCurrentIndex(clearCurrent(index2));
35
+ indexRef.current = void 0;
36
+ return;
37
+ }
38
+ indexRef.current ??= allocateIndex();
39
+ const index = indexRef.current;
40
+ registerItem(index, element);
41
+ const sync = () => {
42
+ if (isCurrent(element)) {
43
+ setCurrentIndex(index);
44
+ return;
45
+ }
46
+ setCurrentIndex(clearCurrent(index));
47
+ };
48
+ sync();
49
+ const observer = typeof MutationObserver === "undefined" ? void 0 : new MutationObserver(sync);
50
+ observer?.observe(element, { attributes: true, attributeFilter: ["aria-current"] });
51
+ unsubscribeRef.current = () => observer?.disconnect();
52
+ },
53
+ [ctx]
54
+ );
55
+ }
56
+
57
+ function Pagination({ className, "aria-label": ariaLabel = "Pagination", ...props }) {
58
+ return /* @__PURE__ */ jsx(
59
+ "nav",
60
+ {
61
+ "data-slot": "pagination",
62
+ "aria-label": ariaLabel,
63
+ className: cn("flex items-center justify-center", className),
64
+ ...props
65
+ }
66
+ );
67
+ }
68
+ const isInert = (element) => element.getAttribute("aria-disabled") === "true";
69
+ function PaginationContent({ className, ...props }) {
70
+ const containerRef = useRef(null);
71
+ const hover = useFluidHover(containerRef, { axis: "x", isItemDisabled: isInert, gapClick: false });
72
+ const [currentIndex, setCurrentIndex] = useState(null);
73
+ const counterRef = useRef(0);
74
+ const freeRef = useRef([]);
75
+ const { registerItem } = hover;
76
+ const context = useMemo(
77
+ () => ({
78
+ registerItem,
79
+ allocateIndex: () => freeRef.current.pop() ?? counterRef.current++,
80
+ releaseIndex: (index) => {
81
+ freeRef.current.push(index);
82
+ },
83
+ setCurrentIndex
84
+ }),
85
+ [registerItem]
86
+ );
87
+ const currentIndicator = { ...hover, activeIndex: currentIndex };
88
+ return /* @__PURE__ */ jsx(PaginationContext, { value: context, children: /* @__PURE__ */ jsxs("div", { ref: containerRef, ...hover.handlers, className: "relative isolate", children: [
89
+ /* @__PURE__ */ jsx(FluidHoverHighlight, { hover, className: "-z-2 rounded-full bg-fill-subtle" }),
90
+ /* @__PURE__ */ jsx(FluidHoverHighlight, { hover: currentIndicator, className: cn("-z-1 rounded-full", raisedControlSurfaceStyle) }),
91
+ /* @__PURE__ */ jsx("ul", { "data-slot": "pagination-content", className: cn("flex items-center gap-1", className), ...props })
92
+ ] }) });
93
+ }
94
+ function PaginationItem(props) {
95
+ return /* @__PURE__ */ jsx("li", { "data-slot": "pagination-item", ...props });
96
+ }
97
+ const paginationLinkClass = cn(
98
+ controlSizeClasses.sm,
99
+ controlStateColorTransition,
100
+ focusRing,
101
+ "relative inline-flex min-w-control-sm cursor-pointer items-center justify-center gap-1 rounded-full px-2.5 text-muted-foreground tabular-nums",
102
+ "hover:text-foreground aria-[current=page]:text-foreground",
103
+ "aria-disabled:cursor-not-allowed aria-disabled:text-placeholder aria-disabled:hover:text-placeholder"
104
+ );
105
+ function preventActivation(event) {
106
+ event.preventDefault();
107
+ }
108
+ function isAnchorElement(render) {
109
+ return isValidElement(render) && render.type === "a";
110
+ }
111
+ function linkRender(render, disabled) {
112
+ if (disabled && isAnchorElement(render)) return cloneElement(render, { href: void 0 });
113
+ return render;
114
+ }
115
+ function elementProps(render, disabled) {
116
+ if (render === void 0) return { type: "button" };
117
+ if (disabled && isAnchorElement(render)) return { role: "link", tabIndex: 0 };
118
+ return {};
119
+ }
120
+ function activationProps(disabled, onClick) {
121
+ if (disabled) return { "aria-disabled": true, onClick: preventActivation, onAuxClick: preventActivation };
122
+ return { onClick };
123
+ }
124
+ function PaginationLink({ isActive, disabled, render, className, onClick, ...props }) {
125
+ const ref = usePaginationItemRef();
126
+ return useRender({
127
+ defaultTagName: "button",
128
+ render: linkRender(render, disabled),
129
+ ref,
130
+ props: {
131
+ ...elementProps(render, disabled),
132
+ ...props,
133
+ ...activationProps(disabled, onClick),
134
+ "data-slot": "pagination-link",
135
+ "aria-current": isActive && "page",
136
+ className: cn(paginationLinkClass, className)
137
+ }
138
+ });
139
+ }
140
+ function PaginationPrevious({ text = "Previous", ...props }) {
141
+ return /* @__PURE__ */ jsxs(PaginationLink, { ...props, children: [
142
+ /* @__PURE__ */ jsx(Icon, { size: "sm", "aria-hidden": true, children: /* @__PURE__ */ jsx(ChevronLeft, {}) }),
143
+ text
144
+ ] });
145
+ }
146
+ function PaginationNext({ text = "Next", ...props }) {
147
+ return /* @__PURE__ */ jsxs(PaginationLink, { ...props, children: [
148
+ text,
149
+ /* @__PURE__ */ jsx(Icon, { size: "sm", "aria-hidden": true, children: /* @__PURE__ */ jsx(ChevronRight, {}) })
150
+ ] });
151
+ }
152
+ function PaginationEllipsis({ className, ...props }) {
153
+ return /* @__PURE__ */ jsxs(
154
+ "span",
155
+ {
156
+ "data-slot": "pagination-ellipsis",
157
+ className: cn("flex w-control-sm items-center justify-center text-muted-foreground", className),
158
+ ...props,
159
+ children: [
160
+ /* @__PURE__ */ jsx(Icon, { size: "sm", "aria-hidden": true, children: /* @__PURE__ */ jsx(Ellipsis, {}) }),
161
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More pages" })
162
+ ]
163
+ }
164
+ );
165
+ }
166
+
167
+ const pageItem = (page) => ({ kind: "page", page });
168
+ function windowStart(page, pageCount) {
169
+ const start = Math.max(1, Math.min(page - 1, pageCount - 5));
170
+ if (start === 2) return 1;
171
+ return start;
172
+ }
173
+ function windowEnd(page, pageCount) {
174
+ const end = Math.min(pageCount - 2, Math.max(page + 1, 4));
175
+ if (end === pageCount - 3) return pageCount - 2;
176
+ return end;
177
+ }
178
+ function getPaginationRange(page, pageCount) {
179
+ if (pageCount <= 7) return Array.from({ length: pageCount }, (_, index) => pageItem(index));
180
+ const first = windowStart(page, pageCount);
181
+ const last = windowEnd(page, pageCount);
182
+ const items = [pageItem(0)];
183
+ if (first > 1) items.push({ kind: "ellipsis", key: "start" });
184
+ for (let index = first; index <= last; index += 1) items.push(pageItem(index));
185
+ if (last < pageCount - 2) items.push({ kind: "ellipsis", key: "end" });
186
+ items.push(pageItem(pageCount - 1));
187
+ return items;
188
+ }
189
+
190
+ export { Pagination as P, PaginationContent as a, PaginationEllipsis as b, PaginationItem as c, PaginationLink as d, PaginationNext as e, PaginationPrevious as f, getPaginationRange as g };
191
+ //# sourceMappingURL=pagination-range-BlUsZjqD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination-range-BlUsZjqD.js","sources":["../src/ds/components/Pagination/pagination-context.ts","../src/ds/components/Pagination/pagination.tsx","../src/ds/components/Pagination/pagination-range.ts"],"sourcesContent":["import { createContext, use, useCallback, useRef } from 'react';\nimport type { Dispatch, SetStateAction } from 'react';\nimport type { UseFluidHoverReturn } from '@/hooks/use-fluid-hover';\n\nexport type PaginationContextValue = {\n registerItem: UseFluidHoverReturn['registerItem'];\n allocateIndex: () => number;\n releaseIndex: (index: number) => void;\n setCurrentIndex: Dispatch<SetStateAction<number | null>>;\n};\n\nexport const PaginationContext = createContext<PaginationContextValue | undefined>(undefined);\n\nconst isCurrent = (element: HTMLElement) => element.getAttribute('aria-current') === 'page';\n\nconst clearCurrent = (index: number) => (current: number | null) => {\n if (current === index) return null;\n return current;\n};\n\nexport function usePaginationItemRef() {\n const ctx = use(PaginationContext);\n const indexRef = useRef<number | undefined>(undefined);\n const unsubscribeRef = useRef<(() => void) | undefined>(undefined);\n\n return useCallback(\n (element: HTMLElement | null) => {\n unsubscribeRef.current?.();\n unsubscribeRef.current = undefined;\n if (!ctx) return;\n const { registerItem, allocateIndex, releaseIndex, setCurrentIndex } = ctx;\n\n if (!element) {\n const index = indexRef.current;\n if (index === undefined) return;\n registerItem(index, null);\n releaseIndex(index);\n setCurrentIndex(clearCurrent(index));\n indexRef.current = undefined;\n return;\n }\n\n indexRef.current ??= allocateIndex();\n const index = indexRef.current;\n registerItem(index, element);\n\n const sync = () => {\n if (isCurrent(element)) {\n setCurrentIndex(index);\n return;\n }\n setCurrentIndex(clearCurrent(index));\n };\n sync();\n const observer = typeof MutationObserver === 'undefined' ? undefined : new MutationObserver(sync);\n observer?.observe(element, { attributes: true, attributeFilter: ['aria-current'] });\n unsubscribeRef.current = () => observer?.disconnect();\n },\n [ctx],\n );\n}\n","import { useRender } from '@base-ui/react/use-render';\nimport { ChevronLeft, ChevronRight, Ellipsis } from 'lucide-react';\nimport { cloneElement, isValidElement, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, MouseEvent, ReactElement } from 'react';\nimport { PaginationContext, usePaginationItemRef } from './pagination-context';\nimport type { PaginationContextValue } from './pagination-context';\nimport { FluidHoverHighlight } from '@/components/fluid-hover-highlight';\nimport { Icon } from '@/ds/icons/Icon';\nimport { controlSizeClasses } from '@/ds/primitives/control-size';\nimport { raisedControlSurfaceStyle } from '@/ds/primitives/form-element';\nimport { controlStateColorTransition, focusRing } from '@/ds/primitives/transitions';\nimport { useFluidHover } from '@/hooks/use-fluid-hover';\nimport { cn } from '@/lib/utils';\n\nexport type PaginationProps = ComponentProps<'nav'>;\n\nexport function Pagination({ className, 'aria-label': ariaLabel = 'Pagination', ...props }: PaginationProps) {\n return (\n <nav\n data-slot=\"pagination\"\n aria-label={ariaLabel}\n className={cn('flex items-center justify-center', className)}\n {...props}\n />\n );\n}\n\nconst isInert = (element: HTMLElement) => element.getAttribute('aria-disabled') === 'true';\n\nexport type PaginationContentProps = ComponentProps<'ul'>;\n\nexport function PaginationContent({ className, ...props }: PaginationContentProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const hover = useFluidHover(containerRef, { axis: 'x', isItemDisabled: isInert, gapClick: false });\n const [currentIndex, setCurrentIndex] = useState<number | null>(null);\n const counterRef = useRef(0);\n const freeRef = useRef<number[]>([]);\n const { registerItem } = hover;\n const context = useMemo<PaginationContextValue>(\n () => ({\n registerItem,\n allocateIndex: () => freeRef.current.pop() ?? counterRef.current++,\n releaseIndex: index => {\n freeRef.current.push(index);\n },\n setCurrentIndex,\n }),\n [registerItem],\n );\n const currentIndicator = { ...hover, activeIndex: currentIndex };\n\n return (\n <PaginationContext value={context}>\n <div ref={containerRef} {...hover.handlers} className=\"relative isolate\">\n <FluidHoverHighlight hover={hover} className=\"-z-2 rounded-full bg-fill-subtle\" />\n <FluidHoverHighlight hover={currentIndicator} className={cn('-z-1 rounded-full', raisedControlSurfaceStyle)} />\n <ul data-slot=\"pagination-content\" className={cn('flex items-center gap-1', className)} {...props} />\n </div>\n </PaginationContext>\n );\n}\n\nexport type PaginationItemProps = ComponentProps<'li'>;\n\nexport function PaginationItem(props: PaginationItemProps) {\n return <li data-slot=\"pagination-item\" {...props} />;\n}\n\nconst paginationLinkClass = cn(\n controlSizeClasses.sm,\n controlStateColorTransition,\n focusRing,\n 'relative inline-flex min-w-control-sm cursor-pointer items-center justify-center gap-1 rounded-full px-2.5 text-muted-foreground tabular-nums',\n 'hover:text-foreground aria-[current=page]:text-foreground',\n 'aria-disabled:cursor-not-allowed aria-disabled:text-placeholder aria-disabled:hover:text-placeholder',\n);\n\nexport type PaginationLinkProps = useRender.ComponentProps<'button'> & {\n isActive?: boolean;\n disabled?: boolean;\n};\n\ntype LinkRender = PaginationLinkProps['render'];\n\nfunction preventActivation(event: MouseEvent<HTMLElement>) {\n event.preventDefault();\n}\n\nfunction isAnchorElement(render: LinkRender): render is ReactElement<ComponentProps<'a'>> {\n return isValidElement(render) && render.type === 'a';\n}\n\nfunction linkRender(render: LinkRender, disabled: boolean | undefined) {\n if (disabled && isAnchorElement(render)) return cloneElement(render, { href: undefined });\n return render;\n}\n\nfunction elementProps(render: LinkRender, disabled: boolean | undefined) {\n if (render === undefined) return { type: 'button' as const };\n if (disabled && isAnchorElement(render)) return { role: 'link', tabIndex: 0 };\n return {};\n}\n\nfunction activationProps(disabled: boolean | undefined, onClick: PaginationLinkProps['onClick']) {\n if (disabled) return { 'aria-disabled': true, onClick: preventActivation, onAuxClick: preventActivation };\n return { onClick };\n}\n\nexport function PaginationLink({ isActive, disabled, render, className, onClick, ...props }: PaginationLinkProps) {\n const ref = usePaginationItemRef();\n return useRender({\n defaultTagName: 'button',\n render: linkRender(render, disabled),\n ref,\n props: {\n ...elementProps(render, disabled),\n ...props,\n ...activationProps(disabled, onClick),\n 'data-slot': 'pagination-link',\n 'aria-current': isActive && 'page',\n className: cn(paginationLinkClass, className),\n },\n });\n}\n\nexport type PaginationPreviousProps = PaginationLinkProps & { text?: string };\n\nexport function PaginationPrevious({ text = 'Previous', ...props }: PaginationPreviousProps) {\n return (\n <PaginationLink {...props}>\n <Icon size=\"sm\" aria-hidden>\n <ChevronLeft />\n </Icon>\n {text}\n </PaginationLink>\n );\n}\n\nexport type PaginationNextProps = PaginationLinkProps & { text?: string };\n\nexport function PaginationNext({ text = 'Next', ...props }: PaginationNextProps) {\n return (\n <PaginationLink {...props}>\n {text}\n <Icon size=\"sm\" aria-hidden>\n <ChevronRight />\n </Icon>\n </PaginationLink>\n );\n}\n\nexport type PaginationEllipsisProps = ComponentProps<'span'>;\n\nexport function PaginationEllipsis({ className, ...props }: PaginationEllipsisProps) {\n return (\n <span\n data-slot=\"pagination-ellipsis\"\n className={cn('flex w-control-sm items-center justify-center text-muted-foreground', className)}\n {...props}\n >\n <Icon size=\"sm\" aria-hidden>\n <Ellipsis />\n </Icon>\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n","export type PaginationRangeItem = { kind: 'page'; page: number } | { kind: 'ellipsis'; key: 'start' | 'end' };\n\nconst pageItem = (page: number): PaginationRangeItem => ({ kind: 'page', page });\n\nfunction windowStart(page: number, pageCount: number) {\n const start = Math.max(1, Math.min(page - 1, pageCount - 5));\n if (start === 2) return 1;\n return start;\n}\n\nfunction windowEnd(page: number, pageCount: number) {\n const end = Math.min(pageCount - 2, Math.max(page + 1, 4));\n if (end === pageCount - 3) return pageCount - 2;\n return end;\n}\n\nexport function getPaginationRange(page: number, pageCount: number): PaginationRangeItem[] {\n if (pageCount <= 7) return Array.from({ length: pageCount }, (_, index) => pageItem(index));\n const first = windowStart(page, pageCount);\n const last = windowEnd(page, pageCount);\n const items: PaginationRangeItem[] = [pageItem(0)];\n if (first > 1) items.push({ kind: 'ellipsis', key: 'start' });\n for (let index = first; index <= last; index += 1) items.push(pageItem(index));\n if (last < pageCount - 2) items.push({ kind: 'ellipsis', key: 'end' });\n items.push(pageItem(pageCount - 1));\n return items;\n}\n"],"names":["index"],"mappings":"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"}