@mastra/playground-ui 62.0.0-alpha.2 → 62.0.0-alpha.4

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 (492) hide show
  1. package/dist/{activity-maXCNWZp.js → activity-BsrB5ADa.js} +7 -5
  2. package/dist/activity-BsrB5ADa.js.map +1 -0
  3. package/dist/{activity-pXCpwxxi.cjs → activity-CaFdLiPz.cjs} +6 -4
  4. package/dist/activity-CaFdLiPz.cjs.map +1 -0
  5. package/dist/app-shell.css +7 -0
  6. package/dist/{ask-user-card-C14RGsoO.cjs → ask-user-card-BHIYyRdy.cjs} +2 -2
  7. package/dist/{ask-user-card-C14RGsoO.cjs.map → ask-user-card-BHIYyRdy.cjs.map} +1 -1
  8. package/dist/{ask-user-card-C01JQ7bo.js → ask-user-card-BaaCfWFs.js} +2 -2
  9. package/dist/{ask-user-card-C01JQ7bo.js.map → ask-user-card-BaaCfWFs.js.map} +1 -1
  10. package/dist/{collapsible-BzlQAuym.cjs → collapsible-C6BZhVRG.cjs} +2 -10
  11. package/dist/collapsible-C6BZhVRG.cjs.map +1 -0
  12. package/dist/{collapsible-8h5KBZPX.js → collapsible-DglEffBF.js} +2 -10
  13. package/dist/collapsible-DglEffBF.js.map +1 -0
  14. package/dist/{combobox-8_JEWMYs.js → combobox-CMu7NDj6.js} +10 -2
  15. package/dist/combobox-CMu7NDj6.js.map +1 -0
  16. package/dist/{combobox-Csiduxme.cjs → combobox-DW7-4bGp.cjs} +10 -2
  17. package/dist/combobox-DW7-4bGp.cjs.map +1 -0
  18. package/dist/{command-C-i5cx8D.js → command-BW5Jyad6.js} +4 -2
  19. package/dist/command-BW5Jyad6.js.map +1 -0
  20. package/dist/{command-Cq-K24jI.cjs → command-Bv53_kMY.cjs} +4 -2
  21. package/dist/command-Bv53_kMY.cjs.map +1 -0
  22. package/dist/components/ClampedText.cjs.js +2 -2
  23. package/dist/components/ClampedText.cjs.js.map +1 -1
  24. package/dist/components/ClampedText.es.js +2 -2
  25. package/dist/components/ClampedText.es.js.map +1 -1
  26. package/dist/components/Collapsible.cjs.js +1 -1
  27. package/dist/components/Collapsible.es.js +1 -1
  28. package/dist/components/Combobox.cjs.js +1 -1
  29. package/dist/components/Combobox.es.js +1 -1
  30. package/dist/components/Command.cjs.js +1 -1
  31. package/dist/components/Command.es.js +1 -1
  32. package/dist/components/CommandPalette.cjs.js +1 -1
  33. package/dist/components/CommandPalette.es.js +1 -1
  34. package/dist/components/Comment.cjs.js +1 -1
  35. package/dist/components/Comment.es.js +1 -1
  36. package/dist/components/Composer.cjs.js +1 -1
  37. package/dist/components/Composer.es.js +1 -1
  38. package/dist/components/DataCodeSection.cjs.js +1 -1
  39. package/dist/components/DataCodeSection.es.js +1 -1
  40. package/dist/components/DataList.cjs.js +3 -3
  41. package/dist/components/DataList.es.js +4 -4
  42. package/dist/components/DataPanel.cjs.js +1 -1
  43. package/dist/components/DataPanel.es.js +1 -1
  44. package/dist/components/DateTimePicker.cjs.js +1 -1
  45. package/dist/components/DateTimePicker.es.js +1 -1
  46. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  47. package/dist/components/DateTimeRangePicker.es.js +1 -1
  48. package/dist/components/DisclosureChevron.cjs.js +10 -0
  49. package/dist/components/DisclosureChevron.cjs.js.map +1 -0
  50. package/dist/components/DisclosureChevron.d.ts +2 -0
  51. package/dist/components/DisclosureChevron.es.js +2 -0
  52. package/dist/components/DisclosureChevron.es.js.map +1 -0
  53. package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
  54. package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
  55. package/dist/components/FilterBar.cjs.js +3 -1
  56. package/dist/components/FilterBar.cjs.js.map +1 -1
  57. package/dist/components/FilterBar.es.js +4 -2
  58. package/dist/components/FilterBar.es.js.map +1 -1
  59. package/dist/components/FormFieldBlocks.cjs.js +1 -1
  60. package/dist/components/FormFieldBlocks.es.js +1 -1
  61. package/dist/components/Input.cjs.js +1 -1
  62. package/dist/components/Input.es.js +1 -1
  63. package/dist/components/InputGroup.cjs.js +1 -1
  64. package/dist/components/InputGroup.es.js +1 -1
  65. package/dist/components/InputNumber.cjs.js +5 -3
  66. package/dist/components/InputNumber.cjs.js.map +1 -1
  67. package/dist/components/InputNumber.es.js +5 -3
  68. package/dist/components/InputNumber.es.js.map +1 -1
  69. package/dist/components/JSONSchemaForm.cjs.js +1 -1
  70. package/dist/components/JSONSchemaForm.es.js +1 -1
  71. package/dist/components/ListSearch.cjs.js +1 -1
  72. package/dist/components/ListSearch.es.js +1 -1
  73. package/dist/components/LogsDataList.cjs.js +3 -3
  74. package/dist/components/LogsDataList.es.js +3 -3
  75. package/dist/components/PageLayout.cjs.js +1 -1
  76. package/dist/components/PageLayout.cjs.js.map +1 -1
  77. package/dist/components/PageLayout.es.js +1 -1
  78. package/dist/components/PageLayout.es.js.map +1 -1
  79. package/dist/components/PropertyFilter.cjs.js +2 -2
  80. package/dist/components/PropertyFilter.es.js +3 -3
  81. package/dist/components/RuleBuilder.cjs.js +1 -1
  82. package/dist/components/RuleBuilder.es.js +1 -1
  83. package/dist/components/SavedViews.cjs.js +3 -1
  84. package/dist/components/SavedViews.cjs.js.map +1 -1
  85. package/dist/components/SavedViews.es.js +3 -1
  86. package/dist/components/SavedViews.es.js.map +1 -1
  87. package/dist/components/SearchInput.cjs.js +1 -1
  88. package/dist/components/SearchInput.es.js +1 -1
  89. package/dist/components/Sidebar.cjs.js +5 -4
  90. package/dist/components/Sidebar.cjs.js.map +1 -1
  91. package/dist/components/Sidebar.es.js +5 -4
  92. package/dist/components/Sidebar.es.js.map +1 -1
  93. package/dist/components/Tree.cjs.js +1 -1
  94. package/dist/components/Tree.es.js +1 -1
  95. package/dist/components/Workflow.cjs.js +1 -1
  96. package/dist/components/Workflow.es.js +1 -1
  97. package/dist/components/ai/activity.cjs.js +4 -4
  98. package/dist/components/ai/activity.es.js +4 -4
  99. package/dist/components/ai/ask-user.cjs.js +1 -1
  100. package/dist/components/ai/ask-user.es.js +1 -1
  101. package/dist/components/ai/tool-approval.cjs.js +1 -1
  102. package/dist/components/ai/tool-approval.es.js +1 -1
  103. package/dist/components/ai/tool-call.cjs.js +1 -1
  104. package/dist/components/ai/tool-call.es.js +1 -1
  105. package/dist/{composer-DhxSetWI.cjs → composer-Cg5bXN1r.cjs} +5 -3
  106. package/dist/composer-Cg5bXN1r.cjs.map +1 -0
  107. package/dist/{composer-CIfMr8q5.js → composer-CxmOOUX8.js} +5 -3
  108. package/dist/composer-CxmOOUX8.js.map +1 -0
  109. package/dist/{data-code-section-CvLs4lM8.js → data-code-section-B1dGZ0ds.js} +2 -2
  110. package/dist/{data-code-section-CvLs4lM8.js.map → data-code-section-B1dGZ0ds.js.map} +1 -1
  111. package/dist/{data-code-section-D0NR1REP.cjs → data-code-section-BTZPG2zM.cjs} +2 -2
  112. package/dist/{data-code-section-D0NR1REP.cjs.map → data-code-section-BTZPG2zM.cjs.map} +1 -1
  113. package/dist/{data-list-BfepBJLG.js → data-list-4UMxoFNU.js} +192 -11
  114. package/dist/data-list-4UMxoFNU.js.map +1 -0
  115. package/dist/{data-list-oQsJVUa6.cjs → data-list-CqVYt2aN.cjs} +191 -10
  116. package/dist/data-list-CqVYt2aN.cjs.map +1 -0
  117. package/dist/{data-list-skeleton-BE7yRNks.cjs → data-list-skeleton-BMGppDAy.cjs} +3 -3
  118. package/dist/data-list-skeleton-BMGppDAy.cjs.map +1 -0
  119. package/dist/{data-list-skeleton-DnVnqTGL.js → data-list-skeleton-DGNzfd4Y.js} +3 -3
  120. package/dist/data-list-skeleton-DGNzfd4Y.js.map +1 -0
  121. package/dist/{data-panel-BLk0mZe6.js → data-panel-VYp4slDb.js} +2 -2
  122. package/dist/{data-panel-BLk0mZe6.js.map → data-panel-VYp4slDb.js.map} +1 -1
  123. package/dist/{data-panel-BaqnMzRn.cjs → data-panel-r1LYHphg.cjs} +2 -2
  124. package/dist/{data-panel-BaqnMzRn.cjs.map → data-panel-r1LYHphg.cjs.map} +1 -1
  125. package/dist/date-time-range-picker-BBbF3LWF.cjs +210 -0
  126. package/dist/date-time-range-picker-BBbF3LWF.cjs.map +1 -0
  127. package/dist/date-time-range-picker-CUUg0sIl.js +208 -0
  128. package/dist/date-time-range-picker-CUUg0sIl.js.map +1 -0
  129. package/dist/disclosure-chevron-BWZ8Alz1.js +33 -0
  130. package/dist/disclosure-chevron-BWZ8Alz1.js.map +1 -0
  131. package/dist/disclosure-chevron-B_gmYFR5.cjs +35 -0
  132. package/dist/disclosure-chevron-B_gmYFR5.cjs.map +1 -0
  133. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  134. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  135. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  136. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  137. package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
  138. package/dist/domains/chat/context/chat-context.es.js.map +1 -1
  139. package/dist/domains/chat/messages/message-row.cjs.js +2 -2
  140. package/dist/domains/chat/messages/message-row.es.js +2 -2
  141. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  142. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  143. package/dist/domains/chat/messages/renderers/message-text.cjs.js +16 -8
  144. package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
  145. package/dist/domains/chat/messages/renderers/message-text.es.js +17 -9
  146. package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
  147. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  148. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  149. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  150. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  151. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  152. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  153. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  154. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  155. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  156. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  157. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  158. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  159. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  160. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  161. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  162. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  163. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
  164. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
  165. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  166. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  167. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -2
  168. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  169. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -2
  170. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  171. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  172. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  173. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  174. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  175. package/dist/domains/logs/components/logs-list-view.cjs.js +3 -3
  176. package/dist/domains/logs/components/logs-list-view.es.js +3 -3
  177. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  178. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  179. package/dist/domains/metrics/components/agent-runs-card.cjs.js +0 -1
  180. package/dist/domains/metrics/components/agent-runs-card.cjs.js.map +1 -1
  181. package/dist/domains/metrics/components/agent-runs-card.es.js +0 -1
  182. package/dist/domains/metrics/components/agent-runs-card.es.js.map +1 -1
  183. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  184. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  185. package/dist/domains/metrics/components/failure-rate-card.cjs.js +2 -1
  186. package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
  187. package/dist/domains/metrics/components/failure-rate-card.es.js +2 -1
  188. package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
  189. package/dist/domains/metrics/components/latency-card.cjs.js +0 -1
  190. package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
  191. package/dist/domains/metrics/components/latency-card.es.js +0 -1
  192. package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
  193. package/dist/domains/metrics/components/scores-card.cjs.js +0 -1
  194. package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
  195. package/dist/domains/metrics/components/scores-card.es.js +0 -1
  196. package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
  197. package/dist/domains/metrics/components/token-usage-card.cjs.js +0 -1
  198. package/dist/domains/metrics/components/token-usage-card.cjs.js.map +1 -1
  199. package/dist/domains/metrics/components/token-usage-card.es.js +0 -1
  200. package/dist/domains/metrics/components/token-usage-card.es.js.map +1 -1
  201. package/dist/domains/scores/components/score-data-panel.cjs.js +13 -11
  202. package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
  203. package/dist/domains/scores/components/score-data-panel.es.js +13 -11
  204. package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
  205. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  206. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  207. package/dist/domains/scores/components/trace-scores-tab.cjs.js +5 -21
  208. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  209. package/dist/domains/scores/components/trace-scores-tab.es.js +5 -21
  210. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  211. package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
  212. package/dist/domains/traces/components/feedback-thread.es.js +1 -1
  213. package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
  214. package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
  215. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  216. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  217. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  218. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  219. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  220. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  221. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  222. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  223. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
  224. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
  225. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  226. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  227. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  228. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  229. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
  230. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
  231. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  232. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  233. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  234. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  235. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +0 -1
  236. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  237. package/dist/domains/traces/components/thread-view-by-trace.es.js +0 -1
  238. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  239. package/dist/domains/traces/components/trace-columns-menu.cjs.js +1 -1
  240. package/dist/domains/traces/components/trace-columns-menu.es.js +1 -1
  241. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +56 -21
  242. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  243. package/dist/domains/traces/components/trace-data-panel-view.es.js +57 -22
  244. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  245. package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -5
  246. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  247. package/dist/domains/traces/components/trace-data-panel.es.js +4 -5
  248. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  249. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  250. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  251. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  252. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  253. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  254. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  255. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  256. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  257. package/dist/domains/traces/components/traces-list-view.cjs.js +126 -112
  258. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  259. package/dist/domains/traces/components/traces-list-view.es.js +127 -113
  260. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  261. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  262. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  263. package/dist/domains/traces/trace-list-columns.cjs.js +15 -0
  264. package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
  265. package/dist/domains/traces/trace-list-columns.es.js +15 -1
  266. package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
  267. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  268. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  269. package/dist/domains/workflows/components/workflow-information.cjs.js +3 -2
  270. package/dist/domains/workflows/components/workflow-information.cjs.js.map +1 -1
  271. package/dist/domains/workflows/components/workflow-information.es.js +4 -3
  272. package/dist/domains/workflows/components/workflow-information.es.js.map +1 -1
  273. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  274. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  275. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +4 -3
  276. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
  277. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +5 -4
  278. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
  279. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +3 -3
  280. package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
  281. package/dist/domains/workflows/runs/workflow-run-list.es.js +3 -3
  282. package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
  283. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  284. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  285. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  286. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  287. package/dist/domains/workflows/workflow/workflow-card.cjs.js +13 -11
  288. package/dist/domains/workflows/workflow/workflow-card.cjs.js.map +1 -1
  289. package/dist/domains/workflows/workflow/workflow-card.es.js +13 -11
  290. package/dist/domains/workflows/workflow/workflow-card.es.js.map +1 -1
  291. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  292. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  293. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  294. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  295. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +3 -2
  296. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  297. package/dist/domains/workflows/workflow/workflow-input-data.es.js +4 -3
  298. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  299. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
  300. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
  301. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +3 -2
  302. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
  303. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -3
  304. package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
  305. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +3 -9
  306. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js.map +1 -1
  307. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +4 -10
  308. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js.map +1 -1
  309. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -2
  310. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js.map +1 -1
  311. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +4 -3
  312. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js.map +1 -1
  313. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +3 -8
  314. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js.map +1 -1
  315. package/dist/domains/workflows/workflow/workflow-timeline.es.js +4 -9
  316. package/dist/domains/workflows/workflow/workflow-timeline.es.js.map +1 -1
  317. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
  318. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
  319. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  320. package/dist/domains/workspace/components/workspace-create-directory.es.js +1 -1
  321. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  322. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  323. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  324. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  325. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  326. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  327. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +3 -3
  328. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +3 -3
  329. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +1 -1
  330. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +1 -1
  331. package/dist/ee/signals/signal-lifelines.cjs.js +2 -8
  332. package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
  333. package/dist/ee/signals/signal-lifelines.es.js +2 -8
  334. package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
  335. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  336. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  337. package/dist/{filter-bar-chip-BBPHw-rX.cjs → filter-bar-chip-BUlEVUgT.cjs} +3 -1
  338. package/dist/filter-bar-chip-BUlEVUgT.cjs.map +1 -0
  339. package/dist/{filter-bar-chip-SX3vDA7h.js → filter-bar-chip-DBjcrQFh.js} +3 -1
  340. package/dist/filter-bar-chip-DBjcrQFh.js.map +1 -0
  341. package/dist/hooks/use-local-storage-state.es.js +1 -1
  342. package/dist/{input-vi0ICZHe.js → input-DQFUjtnh.js} +4 -2
  343. package/dist/input-DQFUjtnh.js.map +1 -0
  344. package/dist/{input-group-C7WC6xGL.js → input-group-C_2SrLdX.js} +4 -2
  345. package/dist/input-group-C_2SrLdX.js.map +1 -0
  346. package/dist/{input-group-CGbhXsmd.cjs → input-group-Cxfp0mxQ.cjs} +4 -2
  347. package/dist/input-group-Cxfp0mxQ.cjs.map +1 -0
  348. package/dist/{input-HPE241gI.cjs → input-zdqTky_C.cjs} +4 -2
  349. package/dist/input-zdqTky_C.cjs.map +1 -0
  350. package/dist/layout/tabbed-container.cjs.js +3 -3
  351. package/dist/layout/tabbed-container.es.js +3 -3
  352. package/dist/lib/form/components/array-element-wrapper.cjs.js +3 -2
  353. package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
  354. package/dist/lib/form/components/array-element-wrapper.es.js +4 -3
  355. package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
  356. package/dist/lib/form/components/number-field.cjs.js +1 -1
  357. package/dist/lib/form/components/number-field.es.js +1 -1
  358. package/dist/lib/form/components/object-wrapper.cjs.js +3 -2
  359. package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -1
  360. package/dist/lib/form/components/object-wrapper.es.js +4 -3
  361. package/dist/lib/form/components/object-wrapper.es.js.map +1 -1
  362. package/dist/lib/form/components/record-field.cjs.js +1 -1
  363. package/dist/lib/form/components/record-field.es.js +1 -1
  364. package/dist/{list-search-DTVH9Fbj.cjs → list-search-CA5w3QHa.cjs} +2 -2
  365. package/dist/{list-search-DTVH9Fbj.cjs.map → list-search-CA5w3QHa.cjs.map} +1 -1
  366. package/dist/{list-search-CTZVTRUd.js → list-search-Ce89eOzO.js} +2 -2
  367. package/dist/{list-search-CTZVTRUd.js.map → list-search-Ce89eOzO.js.map} +1 -1
  368. package/dist/{logs-data-list-BgFT_0qi.cjs → logs-data-list-C5UGLFo1.cjs} +2 -2
  369. package/dist/{logs-data-list-BgFT_0qi.cjs.map → logs-data-list-C5UGLFo1.cjs.map} +1 -1
  370. package/dist/{logs-data-list-C-F2jh04.js → logs-data-list-CgrUlafS.js} +2 -2
  371. package/dist/{logs-data-list-C-F2jh04.js.map → logs-data-list-CgrUlafS.js.map} +1 -1
  372. package/dist/new/layout/app-shell.cjs.js +1 -1
  373. package/dist/new/layout/app-shell.cjs.js.map +1 -1
  374. package/dist/new/layout/app-shell.es.js +1 -1
  375. package/dist/new/layout/app-shell.es.js.map +1 -1
  376. package/dist/{notification-activity-Bz0h5LOR.cjs → notification-activity-C2AcNOyq.cjs} +2 -2
  377. package/dist/{notification-activity-Bz0h5LOR.cjs.map → notification-activity-C2AcNOyq.cjs.map} +1 -1
  378. package/dist/{notification-activity-DTXzghFr.js → notification-activity-DquzIOZw.js} +2 -2
  379. package/dist/{notification-activity-DTXzghFr.js.map → notification-activity-DquzIOZw.js.map} +1 -1
  380. package/dist/primitives/chart-frame.cjs.js +1 -1
  381. package/dist/primitives/chart-frame.cjs.js.map +1 -1
  382. package/dist/primitives/chart-frame.es.js +1 -1
  383. package/dist/primitives/chart-frame.es.js.map +1 -1
  384. package/dist/primitives/password-manager-autofill.cjs.js +34 -0
  385. package/dist/primitives/password-manager-autofill.cjs.js.map +1 -0
  386. package/dist/primitives/password-manager-autofill.d.ts +2 -0
  387. package/dist/primitives/password-manager-autofill.es.js +28 -0
  388. package/dist/primitives/password-manager-autofill.es.js.map +1 -0
  389. package/dist/primitives/textarea-control.cjs.js +12 -2
  390. package/dist/primitives/textarea-control.cjs.js.map +1 -1
  391. package/dist/primitives/textarea-control.es.js +12 -2
  392. package/dist/primitives/textarea-control.es.js.map +1 -1
  393. package/dist/{property-filter-applied-7dHzckeW.cjs → property-filter-applied-ACNa3kYG.cjs} +4 -2
  394. package/dist/property-filter-applied-ACNa3kYG.cjs.map +1 -0
  395. package/dist/{property-filter-applied-CdbOixsW.js → property-filter-applied-e0Vg1895.js} +4 -2
  396. package/dist/property-filter-applied-e0Vg1895.js.map +1 -0
  397. package/dist/{reasoning-activity-D2sXBAxE.cjs → reasoning-activity-Cl7kaqgZ.cjs} +2 -2
  398. package/dist/{reasoning-activity-D2sXBAxE.cjs.map → reasoning-activity-Cl7kaqgZ.cjs.map} +1 -1
  399. package/dist/{reasoning-activity-Cpp4iYTw.js → reasoning-activity-D8AF1htp.js} +2 -2
  400. package/dist/{reasoning-activity-Cpp4iYTw.js.map → reasoning-activity-D8AF1htp.js.map} +1 -1
  401. package/dist/{search-input-CUGl4cVg.cjs → search-input-BHF2RziH.cjs} +2 -2
  402. package/dist/{search-input-CUGl4cVg.cjs.map → search-input-BHF2RziH.cjs.map} +1 -1
  403. package/dist/{search-input-iS3IW0Qo.js → search-input-BgVjoPtF.js} +2 -2
  404. package/dist/{search-input-iS3IW0Qo.js.map → search-input-BgVjoPtF.js.map} +1 -1
  405. package/dist/{signal-activity-CtSExTzh.js → signal-activity-BiWlOFhu.js} +2 -2
  406. package/dist/{signal-activity-CtSExTzh.js.map → signal-activity-BiWlOFhu.js.map} +1 -1
  407. package/dist/{signal-activity-Rh1YO0x6.cjs → signal-activity-aXcUgxDg.cjs} +2 -2
  408. package/dist/{signal-activity-Rh1YO0x6.cjs.map → signal-activity-aXcUgxDg.cjs.map} +1 -1
  409. package/dist/{span-payload-primitives-wxQ0IDhF.js → span-payload-primitives-D_Z6D-Aj.js} +6 -6
  410. package/dist/span-payload-primitives-D_Z6D-Aj.js.map +1 -0
  411. package/dist/{span-payload-primitives-DqZn_Q29.cjs → span-payload-primitives-XZgE4FGT.cjs} +6 -6
  412. package/dist/span-payload-primitives-XZgE4FGT.cjs.map +1 -0
  413. package/dist/src/domains/chat/context/chat-context.d.ts +5 -1
  414. package/dist/src/domains/traces/components/traces-list-view.d.ts +3 -1
  415. package/dist/src/domains/traces/trace-list-columns.d.ts +2 -0
  416. package/dist/src/ds/components/DataList/data-list-column-order.d.ts +22 -0
  417. package/dist/src/ds/components/DataList/data-list-reorder-context.d.ts +9 -0
  418. package/dist/src/ds/components/DataList/data-list-root.d.ts +16 -1
  419. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +12 -0
  420. package/dist/src/ds/components/DisclosureChevron/disclosure-chevron.d.ts +13 -0
  421. package/dist/src/ds/components/DisclosureChevron/index.d.ts +1 -0
  422. package/dist/src/ds/components/Input/input.d.ts +12 -1
  423. package/dist/src/ds/components/InputGroup/input-group.d.ts +1 -1
  424. package/dist/src/ds/components/InputNumber/input-number.d.ts +1 -1
  425. package/dist/src/ds/components/Tree/tree-context.d.ts +1 -0
  426. package/dist/src/ds/primitives/chart-frame.d.ts +4 -1
  427. package/dist/src/ds/primitives/password-manager-autofill.d.ts +29 -0
  428. package/dist/src/ds/primitives/textarea-control.d.ts +1 -1
  429. package/dist/style.css +18 -23
  430. package/dist/{tool-approval-CWOuZz47.cjs → tool-approval-DEfU8dPG.cjs} +2 -2
  431. package/dist/{tool-approval-CWOuZz47.cjs.map → tool-approval-DEfU8dPG.cjs.map} +1 -1
  432. package/dist/{tool-approval-BabMPJSL.js → tool-approval-DM8lvaCK.js} +2 -2
  433. package/dist/{tool-approval-BabMPJSL.js.map → tool-approval-DM8lvaCK.js.map} +1 -1
  434. package/dist/{tool-call-group-BPQTXJST.cjs → tool-call-group-CFpdexuw.cjs} +2 -2
  435. package/dist/{tool-call-group-BPQTXJST.cjs.map → tool-call-group-CFpdexuw.cjs.map} +1 -1
  436. package/dist/{tool-call-group-bE2C2hCK.js → tool-call-group-CZBqGjMh.js} +2 -2
  437. package/dist/{tool-call-group-bE2C2hCK.js.map → tool-call-group-CZBqGjMh.js.map} +1 -1
  438. package/dist/{tool-card-D-w1SgXq.js → tool-card-B0HX-uhD.js} +2 -2
  439. package/dist/tool-card-B0HX-uhD.js.map +1 -0
  440. package/dist/{tool-card-LNK49o-E.cjs → tool-card-CHyHNezE.cjs} +2 -2
  441. package/dist/tool-card-CHyHNezE.cjs.map +1 -0
  442. package/dist/{traces-data-list-DRSy_7KT.cjs → traces-data-list-DCa7QLQ3.cjs} +2 -2
  443. package/dist/{traces-data-list-DRSy_7KT.cjs.map → traces-data-list-DCa7QLQ3.cjs.map} +1 -1
  444. package/dist/{traces-data-list-C89IFLf8.js → traces-data-list-Dig7T40-.js} +2 -2
  445. package/dist/{traces-data-list-C89IFLf8.js.map → traces-data-list-Dig7T40-.js.map} +1 -1
  446. package/dist/{tree-DyVaMIwA.js → tree-BodKFJWV.js} +8 -5
  447. package/dist/tree-BodKFJWV.js.map +1 -0
  448. package/dist/{tree-JtAQw7a7.cjs → tree-vhKmzihm.cjs} +7 -4
  449. package/dist/tree-vhKmzihm.cjs.map +1 -0
  450. package/dist/{use-workflow-graph-runtime-FHoQYtWa.cjs → use-workflow-graph-runtime-B_ihs9Ev.cjs} +2 -2
  451. package/dist/{use-workflow-graph-runtime-FHoQYtWa.cjs.map → use-workflow-graph-runtime-B_ihs9Ev.cjs.map} +1 -1
  452. package/dist/{use-workflow-graph-runtime-XT_aoo-Z.js → use-workflow-graph-runtime-OyDXm_6V.js} +2 -2
  453. package/dist/{use-workflow-graph-runtime-XT_aoo-Z.js.map → use-workflow-graph-runtime-OyDXm_6V.js.map} +1 -1
  454. package/dist/{workflow-condition-card-Dy-0c_PT.cjs → workflow-condition-card-BF0PmJDV.cjs} +5 -4
  455. package/dist/workflow-condition-card-BF0PmJDV.cjs.map +1 -0
  456. package/dist/{workflow-condition-card-D30tufXt.js → workflow-condition-card-BVnfl6Zi.js} +5 -4
  457. package/dist/workflow-condition-card-BVnfl6Zi.js.map +1 -0
  458. package/package.json +9 -9
  459. package/dist/activity-maXCNWZp.js.map +0 -1
  460. package/dist/activity-pXCpwxxi.cjs.map +0 -1
  461. package/dist/collapsible-8h5KBZPX.js.map +0 -1
  462. package/dist/collapsible-BzlQAuym.cjs.map +0 -1
  463. package/dist/combobox-8_JEWMYs.js.map +0 -1
  464. package/dist/combobox-Csiduxme.cjs.map +0 -1
  465. package/dist/command-C-i5cx8D.js.map +0 -1
  466. package/dist/command-Cq-K24jI.cjs.map +0 -1
  467. package/dist/composer-CIfMr8q5.js.map +0 -1
  468. package/dist/composer-DhxSetWI.cjs.map +0 -1
  469. package/dist/data-list-BfepBJLG.js.map +0 -1
  470. package/dist/data-list-oQsJVUa6.cjs.map +0 -1
  471. package/dist/data-list-skeleton-BE7yRNks.cjs.map +0 -1
  472. package/dist/data-list-skeleton-DnVnqTGL.js.map +0 -1
  473. package/dist/date-time-range-picker-BA3e2LFA.js +0 -180
  474. package/dist/date-time-range-picker-BA3e2LFA.js.map +0 -1
  475. package/dist/date-time-range-picker-BNepacnP.cjs +0 -182
  476. package/dist/date-time-range-picker-BNepacnP.cjs.map +0 -1
  477. package/dist/filter-bar-chip-BBPHw-rX.cjs.map +0 -1
  478. package/dist/filter-bar-chip-SX3vDA7h.js.map +0 -1
  479. package/dist/input-HPE241gI.cjs.map +0 -1
  480. package/dist/input-group-C7WC6xGL.js.map +0 -1
  481. package/dist/input-group-CGbhXsmd.cjs.map +0 -1
  482. package/dist/input-vi0ICZHe.js.map +0 -1
  483. package/dist/property-filter-applied-7dHzckeW.cjs.map +0 -1
  484. package/dist/property-filter-applied-CdbOixsW.js.map +0 -1
  485. package/dist/span-payload-primitives-DqZn_Q29.cjs.map +0 -1
  486. package/dist/span-payload-primitives-wxQ0IDhF.js.map +0 -1
  487. package/dist/tool-card-D-w1SgXq.js.map +0 -1
  488. package/dist/tool-card-LNK49o-E.cjs.map +0 -1
  489. package/dist/tree-DyVaMIwA.js.map +0 -1
  490. package/dist/tree-JtAQw7a7.cjs.map +0 -1
  491. package/dist/workflow-condition-card-D30tufXt.js.map +0 -1
  492. package/dist/workflow-condition-card-Dy-0c_PT.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"array-element-wrapper.cjs.js","sources":["../../../../src/lib/form/components/array-element-wrapper.tsx"],"sourcesContent":["import type { ArrayElementWrapperProps } from '@autoform/react';\nimport { Check, ChevronRight, Trash2 } from 'lucide-react';\nimport { useContext, useRef } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { ArrayAddButtonContext, FieldPathContext, FormReadOnlyContext } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { isPlainObject } from '../utils';\nimport { Button } from '@/ds/components/Button';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { Txt } from '@/ds/components/Txt';\n\nconst HUMAN_SUMMARY_KEYS = ['title', 'name', 'label'];\n\nfunction firstFilledText(values: unknown[]) {\n return values.find((value): value is string => typeof value === 'string' && value.trim().length > 0);\n}\n\nfunction itemSummary(value: unknown) {\n if (typeof value === 'string') return value.trim();\n if (typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (!isPlainObject(value)) return undefined;\n return firstFilledText(HUMAN_SUMMARY_KEYS.map(key => value[key])) ?? firstFilledText(Object.values(value));\n}\n\nexport function ArrayElementWrapper({ children, onRemove, index }: ArrayElementWrapperProps) {\n const path = useContext(FieldPathContext);\n const readOnly = useContext(FormReadOnlyContext);\n const addButtonRef = useContext(ArrayAddButtonContext);\n const { control } = useFormContext();\n const value: unknown = useWatch({ control, name: path });\n const summary = itemSummary(value);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, !summary);\n const itemLabel = `Item ${index + 1}${summary ? `: ${summary}` : ''}`;\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"overflow-hidden rounded-lg border border-border bg-background motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <div className=\"flex min-w-0 items-center gap-1 pr-1\">\n <CollapsibleTrigger\n ref={triggerRef}\n aria-label={invalid ? `${itemLabel}, Needs input` : itemLabel}\n className=\"flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-3 text-left text-caption focus-visible:-outline-offset-1\"\n >\n <ChevronRight aria-hidden className=\"size-3.5 shrink-0 text-muted-foreground\" />\n <span className=\"shrink-0 text-muted-foreground\">Item {index + 1}</span>\n {summary && (\n <span className=\"truncate text-foreground\" title={summary}>\n {summary}\n </span>\n )}\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n {!readOnly && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n className=\"size-11\"\n aria-label={`Remove item ${index + 1}`}\n onClick={() => {\n onRemove();\n addButtonRef?.current?.focus();\n }}\n >\n <Trash2 />\n </Button>\n )}\n </div>\n <CollapsibleContent keepMounted className=\"border-t border-border p-3\">\n {children}\n {!readOnly && (\n <div className=\"flex justify-end pt-2\">\n <Button\n type=\"button\"\n className=\"min-h-11\"\n aria-label={`Done editing item ${index + 1}`}\n onClick={() => {\n setExpanded(false);\n triggerRef.current?.focus();\n }}\n icon={<Check />}\n >\n Done\n </Button>\n </div>\n )}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":["isPlainObject","useContext","FieldPathContext","FormReadOnlyContext","ArrayAddButtonContext","useFormContext","useWatch","useRef","useSectionDisclosure","jsxs","Collapsible","CollapsibleTrigger","jsx","ChevronRight","Txt","Button","Trash2","CollapsibleContent","Check"],"mappings":"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"}
1
+ {"version":3,"file":"array-element-wrapper.cjs.js","sources":["../../../../src/lib/form/components/array-element-wrapper.tsx"],"sourcesContent":["import type { ArrayElementWrapperProps } from '@autoform/react';\nimport { Check, Trash2 } from 'lucide-react';\nimport { useContext, useRef } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { ArrayAddButtonContext, FieldPathContext, FormReadOnlyContext } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { isPlainObject } from '../utils';\nimport { Button } from '@/ds/components/Button';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Txt } from '@/ds/components/Txt';\n\nconst HUMAN_SUMMARY_KEYS = ['title', 'name', 'label'];\n\nfunction firstFilledText(values: unknown[]) {\n return values.find((value): value is string => typeof value === 'string' && value.trim().length > 0);\n}\n\nfunction itemSummary(value: unknown) {\n if (typeof value === 'string') return value.trim();\n if (typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (!isPlainObject(value)) return undefined;\n return firstFilledText(HUMAN_SUMMARY_KEYS.map(key => value[key])) ?? firstFilledText(Object.values(value));\n}\n\nexport function ArrayElementWrapper({ children, onRemove, index }: ArrayElementWrapperProps) {\n const path = useContext(FieldPathContext);\n const readOnly = useContext(FormReadOnlyContext);\n const addButtonRef = useContext(ArrayAddButtonContext);\n const { control } = useFormContext();\n const value: unknown = useWatch({ control, name: path });\n const summary = itemSummary(value);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, !summary);\n const itemLabel = `Item ${index + 1}${summary ? `: ${summary}` : ''}`;\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"overflow-hidden rounded-lg border border-border bg-background motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <div className=\"flex min-w-0 items-center gap-1 pr-1\">\n <CollapsibleTrigger\n ref={triggerRef}\n aria-label={invalid ? `${itemLabel}, Needs input` : itemLabel}\n className=\"flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-3 text-left text-caption focus-visible:-outline-offset-1\"\n >\n <DisclosureChevron direction=\"right\" className=\"size-3.5 text-muted-foreground\" />\n <span className=\"shrink-0 text-muted-foreground\">Item {index + 1}</span>\n {summary && (\n <span className=\"truncate text-foreground\" title={summary}>\n {summary}\n </span>\n )}\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n {!readOnly && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n className=\"size-11\"\n aria-label={`Remove item ${index + 1}`}\n onClick={() => {\n onRemove();\n addButtonRef?.current?.focus();\n }}\n >\n <Trash2 />\n </Button>\n )}\n </div>\n <CollapsibleContent keepMounted className=\"border-t border-border p-3\">\n {children}\n {!readOnly && (\n <div className=\"flex justify-end pt-2\">\n <Button\n type=\"button\"\n className=\"min-h-11\"\n aria-label={`Done editing item ${index + 1}`}\n onClick={() => {\n setExpanded(false);\n triggerRef.current?.focus();\n }}\n icon={<Check />}\n >\n Done\n </Button>\n </div>\n )}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":["isPlainObject","useContext","FieldPathContext","FormReadOnlyContext","ArrayAddButtonContext","useFormContext","useWatch","useRef","useSectionDisclosure","jsxs","Collapsible","CollapsibleTrigger","jsx","DisclosureChevron","Txt","Button","Trash2","CollapsibleContent","Check"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { ChevronRight, Trash2, Check } from 'lucide-react';
2
+ import { Trash2, Check } from 'lucide-react';
3
3
  import { useContext, useRef } from 'react';
4
4
  import { useFormContext, useWatch } from 'react-hook-form';
5
5
  import { FieldPathContext, FormReadOnlyContext, ArrayAddButtonContext } from '../field-context.es.js';
6
6
  import { useSectionDisclosure } from '../use-section-disclosure.es.js';
7
7
  import { isPlainObject } from '../utils.es.js';
8
8
  import { B as Button } from '../../../Button-MHlMpc97.js';
9
- import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from '../../../collapsible-8h5KBZPX.js';
9
+ import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from '../../../collapsible-DglEffBF.js';
10
+ import { D as DisclosureChevron } from '../../../disclosure-chevron-BWZ8Alz1.js';
10
11
  import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
11
12
 
12
13
  const HUMAN_SUMMARY_KEYS = ["title", "name", "label"];
@@ -44,7 +45,7 @@ function ArrayElementWrapper({ children, onRemove, index }) {
44
45
  "aria-label": invalid ? `${itemLabel}, Needs input` : itemLabel,
45
46
  className: "flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-3 text-left text-caption focus-visible:-outline-offset-1",
46
47
  children: [
47
- /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": true, className: "size-3.5 shrink-0 text-muted-foreground" }),
48
+ /* @__PURE__ */ jsx(DisclosureChevron, { direction: "right", className: "size-3.5 text-muted-foreground" }),
48
49
  /* @__PURE__ */ jsxs("span", { className: "shrink-0 text-muted-foreground", children: [
49
50
  "Item ",
50
51
  index + 1
@@ -1 +1 @@
1
- {"version":3,"file":"array-element-wrapper.es.js","sources":["../../../../src/lib/form/components/array-element-wrapper.tsx"],"sourcesContent":["import type { ArrayElementWrapperProps } from '@autoform/react';\nimport { Check, ChevronRight, Trash2 } from 'lucide-react';\nimport { useContext, useRef } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { ArrayAddButtonContext, FieldPathContext, FormReadOnlyContext } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { isPlainObject } from '../utils';\nimport { Button } from '@/ds/components/Button';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { Txt } from '@/ds/components/Txt';\n\nconst HUMAN_SUMMARY_KEYS = ['title', 'name', 'label'];\n\nfunction firstFilledText(values: unknown[]) {\n return values.find((value): value is string => typeof value === 'string' && value.trim().length > 0);\n}\n\nfunction itemSummary(value: unknown) {\n if (typeof value === 'string') return value.trim();\n if (typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (!isPlainObject(value)) return undefined;\n return firstFilledText(HUMAN_SUMMARY_KEYS.map(key => value[key])) ?? firstFilledText(Object.values(value));\n}\n\nexport function ArrayElementWrapper({ children, onRemove, index }: ArrayElementWrapperProps) {\n const path = useContext(FieldPathContext);\n const readOnly = useContext(FormReadOnlyContext);\n const addButtonRef = useContext(ArrayAddButtonContext);\n const { control } = useFormContext();\n const value: unknown = useWatch({ control, name: path });\n const summary = itemSummary(value);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, !summary);\n const itemLabel = `Item ${index + 1}${summary ? `: ${summary}` : ''}`;\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"overflow-hidden rounded-lg border border-border bg-background motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <div className=\"flex min-w-0 items-center gap-1 pr-1\">\n <CollapsibleTrigger\n ref={triggerRef}\n aria-label={invalid ? `${itemLabel}, Needs input` : itemLabel}\n className=\"flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-3 text-left text-caption focus-visible:-outline-offset-1\"\n >\n <ChevronRight aria-hidden className=\"size-3.5 shrink-0 text-muted-foreground\" />\n <span className=\"shrink-0 text-muted-foreground\">Item {index + 1}</span>\n {summary && (\n <span className=\"truncate text-foreground\" title={summary}>\n {summary}\n </span>\n )}\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n {!readOnly && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n className=\"size-11\"\n aria-label={`Remove item ${index + 1}`}\n onClick={() => {\n onRemove();\n addButtonRef?.current?.focus();\n }}\n >\n <Trash2 />\n </Button>\n )}\n </div>\n <CollapsibleContent keepMounted className=\"border-t border-border p-3\">\n {children}\n {!readOnly && (\n <div className=\"flex justify-end pt-2\">\n <Button\n type=\"button\"\n className=\"min-h-11\"\n aria-label={`Done editing item ${index + 1}`}\n onClick={() => {\n setExpanded(false);\n triggerRef.current?.focus();\n }}\n icon={<Check />}\n >\n Done\n </Button>\n </div>\n )}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-element-wrapper.es.js","sources":["../../../../src/lib/form/components/array-element-wrapper.tsx"],"sourcesContent":["import type { ArrayElementWrapperProps } from '@autoform/react';\nimport { Check, Trash2 } from 'lucide-react';\nimport { useContext, useRef } from 'react';\nimport { useFormContext, useWatch } from 'react-hook-form';\nimport { ArrayAddButtonContext, FieldPathContext, FormReadOnlyContext } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { isPlainObject } from '../utils';\nimport { Button } from '@/ds/components/Button';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Txt } from '@/ds/components/Txt';\n\nconst HUMAN_SUMMARY_KEYS = ['title', 'name', 'label'];\n\nfunction firstFilledText(values: unknown[]) {\n return values.find((value): value is string => typeof value === 'string' && value.trim().length > 0);\n}\n\nfunction itemSummary(value: unknown) {\n if (typeof value === 'string') return value.trim();\n if (typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (!isPlainObject(value)) return undefined;\n return firstFilledText(HUMAN_SUMMARY_KEYS.map(key => value[key])) ?? firstFilledText(Object.values(value));\n}\n\nexport function ArrayElementWrapper({ children, onRemove, index }: ArrayElementWrapperProps) {\n const path = useContext(FieldPathContext);\n const readOnly = useContext(FormReadOnlyContext);\n const addButtonRef = useContext(ArrayAddButtonContext);\n const { control } = useFormContext();\n const value: unknown = useWatch({ control, name: path });\n const summary = itemSummary(value);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, !summary);\n const itemLabel = `Item ${index + 1}${summary ? `: ${summary}` : ''}`;\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"overflow-hidden rounded-lg border border-border bg-background motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <div className=\"flex min-w-0 items-center gap-1 pr-1\">\n <CollapsibleTrigger\n ref={triggerRef}\n aria-label={invalid ? `${itemLabel}, Needs input` : itemLabel}\n className=\"flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-lg px-3 text-left text-caption focus-visible:-outline-offset-1\"\n >\n <DisclosureChevron direction=\"right\" className=\"size-3.5 text-muted-foreground\" />\n <span className=\"shrink-0 text-muted-foreground\">Item {index + 1}</span>\n {summary && (\n <span className=\"truncate text-foreground\" title={summary}>\n {summary}\n </span>\n )}\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n {!readOnly && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n className=\"size-11\"\n aria-label={`Remove item ${index + 1}`}\n onClick={() => {\n onRemove();\n addButtonRef?.current?.focus();\n }}\n >\n <Trash2 />\n </Button>\n )}\n </div>\n <CollapsibleContent keepMounted className=\"border-t border-border p-3\">\n {children}\n {!readOnly && (\n <div className=\"flex justify-end pt-2\">\n <Button\n type=\"button\"\n className=\"min-h-11\"\n aria-label={`Done editing item ${index + 1}`}\n onClick={() => {\n setExpanded(false);\n triggerRef.current?.focus();\n }}\n icon={<Check />}\n >\n Done\n </Button>\n </div>\n )}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
- const input = require('../../../input-HPE241gI.cjs');
6
+ const input = require('../../../input-zdqTky_C.cjs');
7
7
 
8
8
  const INVALID = /* @__PURE__ */ Symbol("invalid");
9
9
  function toFieldValue(text) {
@@ -1,5 +1,5 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { I as Input } from '../../../input-vi0ICZHe.js';
2
+ import { I as Input } from '../../../input-DQFUjtnh.js';
3
3
 
4
4
  const INVALID = /* @__PURE__ */ Symbol("invalid");
5
5
  function toFieldValue(text) {
@@ -7,7 +7,8 @@ const lucideReact = require('lucide-react');
7
7
  const React = require('react');
8
8
  const lib_form_fieldContext = require('../field-context.cjs.js');
9
9
  const lib_form_useSectionDisclosure = require('../use-section-disclosure.cjs.js');
10
- const collapsible = require('../../../collapsible-BzlQAuym.cjs');
10
+ const collapsible = require('../../../collapsible-C6BZhVRG.cjs');
11
+ const disclosureChevron = require('../../../disclosure-chevron-B_gmYFR5.cjs');
11
12
  const Txt = require('../../../Txt-DXjXpX9r.cjs');
12
13
 
13
14
  function ObjectWrapper({ label, children }) {
@@ -25,7 +26,7 @@ function ObjectGroup({ label, children }) {
25
26
  className: "motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none",
26
27
  children: [
27
28
  /* @__PURE__ */ jsxRuntime.jsxs(collapsible.CollapsibleTrigger, { className: "flex min-h-11 w-full items-center gap-2 text-left text-caption text-muted-foreground", children: [
28
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { "aria-hidden": true, className: "size-3.5 shrink-0" }),
29
+ /* @__PURE__ */ jsxRuntime.jsx(disclosureChevron.DisclosureChevron, { direction: "right", className: "size-3.5" }),
29
30
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
30
31
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Braces, { "aria-hidden": true, className: "size-3.5" }),
31
32
  label
@@ -1 +1 @@
1
- {"version":3,"file":"object-wrapper.cjs.js","sources":["../../../../src/lib/form/components/object-wrapper.tsx"],"sourcesContent":["import type { ObjectWrapperProps } from '@autoform/react';\nimport { Braces, ChevronRight } from 'lucide-react';\nimport { useContext } from 'react';\nimport { FieldPathContext, ROOT_FIELD_KEY } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { Txt } from '@/ds/components/Txt';\n\nexport function ObjectWrapper({ label, children }: ObjectWrapperProps) {\n if (label === ROOT_FIELD_KEY || label === '') return <div className=\"flex flex-col gap-2\">{children}</div>;\n\n return <ObjectGroup label={label}>{children}</ObjectGroup>;\n}\n\nfunction ObjectGroup({ label, children }: Pick<ObjectWrapperProps, 'label' | 'children'>) {\n const path = useContext(FieldPathContext);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, false);\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <CollapsibleTrigger className=\"flex min-h-11 w-full items-center gap-2 text-left text-caption text-muted-foreground\">\n <ChevronRight aria-hidden className=\"size-3.5 shrink-0\" />\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Braces aria-hidden className=\"size-3.5\" />\n {label}\n </span>\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n <CollapsibleContent keepMounted className=\"border-l border-border pt-2 pl-4\">\n {children}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":["ROOT_FIELD_KEY","jsx","useContext","FieldPathContext","useSectionDisclosure","jsxs","Collapsible","CollapsibleTrigger","ChevronRight","Braces","Txt","CollapsibleContent"],"mappings":";;;;;;;;;;;;AAQO,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,QAAA,EAAS,EAAuB;AACrE,EAAA,IAAI,KAAA,KAAUA,wCAAkB,KAAA,KAAU,EAAA,yBAAWC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAS,CAAA;AAEpG,EAAA,uBAAOA,cAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAe,QAAA,EAAS,CAAA;AAC9C;AAEA,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,QAAA,EAAS,EAAmD;AACxF,EAAA,MAAM,IAAA,GAAOC,iBAAWC,sCAAgB,CAAA;AACxC,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,aAAY,GAAIC,kDAAA,CAAqB,MAAM,KAAK,CAAA;AAE3E,EAAA,uBACEC,eAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,QAAA;AAAA,MACN,YAAA,EAAc,WAAA;AAAA,MACd,SAAA,EAAU,yGAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAAD,eAAA,CAACE,8BAAA,EAAA,EAAmB,WAAU,sFAAA,EAC5B,QAAA,EAAA;AAAA,0BAAAN,cAAA,CAACO,wBAAA,EAAA,EAAa,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,0BACxDH,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EACd,QAAA,EAAA;AAAA,4BAAAJ,cAAA,CAACQ,kBAAA,EAAA,EAAO,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,YACxC;AAAA,WAAA,EACH,CAAA;AAAA,UACC,OAAA,mCACEC,OAAA,EAAA,EAAI,EAAA,EAAG,QAAO,OAAA,EAAQ,MAAA,EAAO,SAAA,EAAU,8CAAA,EAA+C,QAAA,EAAA,aAAA,EAEvF;AAAA,SAAA,EAEJ,CAAA;AAAA,uCACCC,8BAAA,EAAA,EAAmB,WAAA,EAAW,IAAA,EAAC,SAAA,EAAU,oCACvC,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"object-wrapper.cjs.js","sources":["../../../../src/lib/form/components/object-wrapper.tsx"],"sourcesContent":["import type { ObjectWrapperProps } from '@autoform/react';\nimport { Braces } from 'lucide-react';\nimport { useContext } from 'react';\nimport { FieldPathContext, ROOT_FIELD_KEY } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Txt } from '@/ds/components/Txt';\n\nexport function ObjectWrapper({ label, children }: ObjectWrapperProps) {\n if (label === ROOT_FIELD_KEY || label === '') return <div className=\"flex flex-col gap-2\">{children}</div>;\n\n return <ObjectGroup label={label}>{children}</ObjectGroup>;\n}\n\nfunction ObjectGroup({ label, children }: Pick<ObjectWrapperProps, 'label' | 'children'>) {\n const path = useContext(FieldPathContext);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, false);\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <CollapsibleTrigger className=\"flex min-h-11 w-full items-center gap-2 text-left text-caption text-muted-foreground\">\n <DisclosureChevron direction=\"right\" className=\"size-3.5\" />\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Braces aria-hidden className=\"size-3.5\" />\n {label}\n </span>\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n <CollapsibleContent keepMounted className=\"border-l border-border pt-2 pl-4\">\n {children}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":["ROOT_FIELD_KEY","jsx","useContext","FieldPathContext","useSectionDisclosure","jsxs","Collapsible","CollapsibleTrigger","DisclosureChevron","Braces","Txt","CollapsibleContent"],"mappings":";;;;;;;;;;;;;AASO,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,QAAA,EAAS,EAAuB;AACrE,EAAA,IAAI,KAAA,KAAUA,wCAAkB,KAAA,KAAU,EAAA,yBAAWC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAS,CAAA;AAEpG,EAAA,uBAAOA,cAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAe,QAAA,EAAS,CAAA;AAC9C;AAEA,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,QAAA,EAAS,EAAmD;AACxF,EAAA,MAAM,IAAA,GAAOC,iBAAWC,sCAAgB,CAAA;AACxC,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,aAAY,GAAIC,kDAAA,CAAqB,MAAM,KAAK,CAAA;AAE3E,EAAA,uBACEC,eAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,QAAA;AAAA,MACN,YAAA,EAAc,WAAA;AAAA,MACd,SAAA,EAAU,yGAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAAD,eAAA,CAACE,8BAAA,EAAA,EAAmB,WAAU,sFAAA,EAC5B,QAAA,EAAA;AAAA,0BAAAN,cAAA,CAACO,mCAAA,EAAA,EAAkB,SAAA,EAAU,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,0BAC1DH,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EACd,QAAA,EAAA;AAAA,4BAAAJ,cAAA,CAACQ,kBAAA,EAAA,EAAO,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,YACxC;AAAA,WAAA,EACH,CAAA;AAAA,UACC,OAAA,mCACEC,OAAA,EAAA,EAAI,EAAA,EAAG,QAAO,OAAA,EAAQ,MAAA,EAAO,SAAA,EAAU,8CAAA,EAA+C,QAAA,EAAA,aAAA,EAEvF;AAAA,SAAA,EAEJ,CAAA;AAAA,uCACCC,8BAAA,EAAA,EAAmB,WAAA,EAAW,IAAA,EAAC,SAAA,EAAU,oCACvC,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -1,9 +1,10 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { ChevronRight, Braces } from 'lucide-react';
2
+ import { Braces } from 'lucide-react';
3
3
  import { useContext } from 'react';
4
4
  import { ROOT_FIELD_KEY, FieldPathContext } from '../field-context.es.js';
5
5
  import { useSectionDisclosure } from '../use-section-disclosure.es.js';
6
- import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from '../../../collapsible-8h5KBZPX.js';
6
+ import { C as Collapsible, b as CollapsibleTrigger, a as CollapsibleContent } from '../../../collapsible-DglEffBF.js';
7
+ import { D as DisclosureChevron } from '../../../disclosure-chevron-BWZ8Alz1.js';
7
8
  import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
8
9
 
9
10
  function ObjectWrapper({ label, children }) {
@@ -21,7 +22,7 @@ function ObjectGroup({ label, children }) {
21
22
  className: "motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none",
22
23
  children: [
23
24
  /* @__PURE__ */ jsxs(CollapsibleTrigger, { className: "flex min-h-11 w-full items-center gap-2 text-left text-caption text-muted-foreground", children: [
24
- /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": true, className: "size-3.5 shrink-0" }),
25
+ /* @__PURE__ */ jsx(DisclosureChevron, { direction: "right", className: "size-3.5" }),
25
26
  /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26
27
  /* @__PURE__ */ jsx(Braces, { "aria-hidden": true, className: "size-3.5" }),
27
28
  label
@@ -1 +1 @@
1
- {"version":3,"file":"object-wrapper.es.js","sources":["../../../../src/lib/form/components/object-wrapper.tsx"],"sourcesContent":["import type { ObjectWrapperProps } from '@autoform/react';\nimport { Braces, ChevronRight } from 'lucide-react';\nimport { useContext } from 'react';\nimport { FieldPathContext, ROOT_FIELD_KEY } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { Txt } from '@/ds/components/Txt';\n\nexport function ObjectWrapper({ label, children }: ObjectWrapperProps) {\n if (label === ROOT_FIELD_KEY || label === '') return <div className=\"flex flex-col gap-2\">{children}</div>;\n\n return <ObjectGroup label={label}>{children}</ObjectGroup>;\n}\n\nfunction ObjectGroup({ label, children }: Pick<ObjectWrapperProps, 'label' | 'children'>) {\n const path = useContext(FieldPathContext);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, false);\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <CollapsibleTrigger className=\"flex min-h-11 w-full items-center gap-2 text-left text-caption text-muted-foreground\">\n <ChevronRight aria-hidden className=\"size-3.5 shrink-0\" />\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Braces aria-hidden className=\"size-3.5\" />\n {label}\n </span>\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n <CollapsibleContent keepMounted className=\"border-l border-border pt-2 pl-4\">\n {children}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":[],"mappings":";;;;;;;;AAQO,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,QAAA,EAAS,EAAuB;AACrE,EAAA,IAAI,KAAA,KAAU,kBAAkB,KAAA,KAAU,EAAA,yBAAW,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAS,CAAA;AAEpG,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAe,QAAA,EAAS,CAAA;AAC9C;AAEA,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,QAAA,EAAS,EAAmD;AACxF,EAAA,MAAM,IAAA,GAAO,WAAW,gBAAgB,CAAA;AACxC,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,aAAY,GAAI,oBAAA,CAAqB,MAAM,KAAK,CAAA;AAE3E,EAAA,uBACE,IAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,QAAA;AAAA,MACN,YAAA,EAAc,WAAA;AAAA,MACd,SAAA,EAAU,yGAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,kBAAA,EAAA,EAAmB,WAAU,sFAAA,EAC5B,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,YAAA,EAAA,EAAa,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,mBAAA,EAAoB,CAAA;AAAA,0BACxD,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EACd,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,YACxC;AAAA,WAAA,EACH,CAAA;AAAA,UACC,OAAA,wBACE,GAAA,EAAA,EAAI,EAAA,EAAG,QAAO,OAAA,EAAQ,MAAA,EAAO,SAAA,EAAU,8CAAA,EAA+C,QAAA,EAAA,aAAA,EAEvF;AAAA,SAAA,EAEJ,CAAA;AAAA,4BACC,kBAAA,EAAA,EAAmB,WAAA,EAAW,IAAA,EAAC,SAAA,EAAU,oCACvC,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
1
+ {"version":3,"file":"object-wrapper.es.js","sources":["../../../../src/lib/form/components/object-wrapper.tsx"],"sourcesContent":["import type { ObjectWrapperProps } from '@autoform/react';\nimport { Braces } from 'lucide-react';\nimport { useContext } from 'react';\nimport { FieldPathContext, ROOT_FIELD_KEY } from '../field-context';\nimport { useSectionDisclosure } from '../use-section-disclosure';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Txt } from '@/ds/components/Txt';\n\nexport function ObjectWrapper({ label, children }: ObjectWrapperProps) {\n if (label === ROOT_FIELD_KEY || label === '') return <div className=\"flex flex-col gap-2\">{children}</div>;\n\n return <ObjectGroup label={label}>{children}</ObjectGroup>;\n}\n\nfunction ObjectGroup({ label, children }: Pick<ObjectWrapperProps, 'label' | 'children'>) {\n const path = useContext(FieldPathContext);\n const { expanded, invalid, setExpanded } = useSectionDisclosure(path, false);\n\n return (\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className=\"motion-reduce:[&_[data-slot=collapsible-content]]:transition-none motion-reduce:[&_svg]:transition-none\"\n >\n <CollapsibleTrigger className=\"flex min-h-11 w-full items-center gap-2 text-left text-caption text-muted-foreground\">\n <DisclosureChevron direction=\"right\" className=\"size-3.5\" />\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <Braces aria-hidden className=\"size-3.5\" />\n {label}\n </span>\n {invalid && (\n <Txt as=\"span\" variant=\"meta\" className=\"ml-auto shrink-0 text-destructive-foreground\">\n Needs input\n </Txt>\n )}\n </CollapsibleTrigger>\n <CollapsibleContent keepMounted className=\"border-l border-border pt-2 pl-4\">\n {children}\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AASO,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,QAAA,EAAS,EAAuB;AACrE,EAAA,IAAI,KAAA,KAAU,kBAAkB,KAAA,KAAU,EAAA,yBAAW,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBAAA,EAAuB,QAAA,EAAS,CAAA;AAEpG,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,KAAA,EAAe,QAAA,EAAS,CAAA;AAC9C;AAEA,SAAS,WAAA,CAAY,EAAE,KAAA,EAAO,QAAA,EAAS,EAAmD;AACxF,EAAA,MAAM,IAAA,GAAO,WAAW,gBAAgB,CAAA;AACxC,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,aAAY,GAAI,oBAAA,CAAqB,MAAM,KAAK,CAAA;AAE3E,EAAA,uBACE,IAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,QAAA;AAAA,MACN,YAAA,EAAc,WAAA;AAAA,MACd,SAAA,EAAU,yGAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,kBAAA,EAAA,EAAmB,WAAU,sFAAA,EAC5B,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,iBAAA,EAAA,EAAkB,SAAA,EAAU,OAAA,EAAQ,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,0BAC1D,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mCAAA,EACd,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,UAAA,EAAW,CAAA;AAAA,YACxC;AAAA,WAAA,EACH,CAAA;AAAA,UACC,OAAA,wBACE,GAAA,EAAA,EAAI,EAAA,EAAG,QAAO,OAAA,EAAQ,MAAA,EAAO,SAAA,EAAU,8CAAA,EAA+C,QAAA,EAAA,aAAA,EAEvF;AAAA,SAAA,EAEJ,CAAA;AAAA,4BACC,kBAAA,EAAA,EAAmB,WAAA,EAAW,IAAA,EAAC,SAAA,EAAU,oCACvC,QAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -7,7 +7,7 @@ const uuid = require('@lukeed/uuid');
7
7
  const lucideReact = require('lucide-react');
8
8
  const React = require('react');
9
9
  const Button = require('../../../Button-BpSkkuzG.cjs');
10
- const input = require('../../../input-HPE241gI.cjs');
10
+ const input = require('../../../input-zdqTky_C.cjs');
11
11
 
12
12
  function _interopNamespaceDefault(e) {
13
13
  const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
@@ -3,7 +3,7 @@ import { v4 } from '@lukeed/uuid';
3
3
  import { TrashIcon, Plus } from 'lucide-react';
4
4
  import * as React from 'react';
5
5
  import { B as Button } from '../../../Button-MHlMpc97.js';
6
- import { I as Input } from '../../../input-vi0ICZHe.js';
6
+ import { I as Input } from '../../../input-DQFUjtnh.js';
7
7
 
8
8
  const RecordField = ({ inputProps, field }) => {
9
9
  const { onChange } = inputProps;
@@ -3,7 +3,7 @@
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const React = require('react');
5
5
  const useDebounce = require('use-debounce');
6
- const searchInput = require('./search-input-CUGl4cVg.cjs');
6
+ const searchInput = require('./search-input-BHF2RziH.cjs');
7
7
  const keyboard_useKeydown = require('./keyboard/use-keydown.cjs.js');
8
8
  require('./keyboard/keyboard-shortcuts-context.cjs.js');
9
9
 
@@ -61,4 +61,4 @@ const ListSearch = ({
61
61
  };
62
62
 
63
63
  exports.ListSearch = ListSearch;
64
- //# sourceMappingURL=list-search-DTVH9Fbj.cjs.map
64
+ //# sourceMappingURL=list-search-CA5w3QHa.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-search-DTVH9Fbj.cjs","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport type { SearchInputProps } from '@/ds/components/SearchInput';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: SearchInputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const searchNowOrDebounced = (next: string) => {\n setInternalValue(next);\n if (next) {\n debouncedSearch(next);\n return;\n }\n debouncedSearch.cancel();\n onSearch('');\n };\n\n return (\n <SearchInput\n ref={inputRef}\n label={label}\n placeholder={placeholder}\n size={size}\n value={internalValue}\n onValueChange={searchNowOrDebounced}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":["useState","useRef","useKeydown","useDebouncedCallback","useEffect","jsx","SearchInput"],"mappings":";;;;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,cAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAE9C,EAAAC,8BAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkBC,gCAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAAA,eAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,oBAAA,GAAuB,CAAC,IAAA,KAAiB;AAC7C,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA;AAAA,IACF;AACA,IAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,QAAA;AAAA,MACL,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,aAAA,EAAe,oBAAA;AAAA,MACf,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"list-search-CA5w3QHa.cjs","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport type { SearchInputProps } from '@/ds/components/SearchInput';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: SearchInputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const searchNowOrDebounced = (next: string) => {\n setInternalValue(next);\n if (next) {\n debouncedSearch(next);\n return;\n }\n debouncedSearch.cancel();\n onSearch('');\n };\n\n return (\n <SearchInput\n ref={inputRef}\n label={label}\n placeholder={placeholder}\n size={size}\n value={internalValue}\n onValueChange={searchNowOrDebounced}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":["useState","useRef","useKeydown","useDebouncedCallback","useEffect","jsx","SearchInput"],"mappings":";;;;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIA,cAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAWC,aAAyB,IAAI,CAAA;AAE9C,EAAAC,8BAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkBC,gCAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAAA,eAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,oBAAA,GAAuB,CAAC,IAAA,KAAiB;AAC7C,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA;AAAA,IACF;AACA,IAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,QAAA;AAAA,MACL,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,aAAA,EAAe,oBAAA;AAAA,MACf,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useState, useRef, useEffect } from 'react';
3
3
  import { useDebouncedCallback } from 'use-debounce';
4
- import { S as SearchInput } from './search-input-iS3IW0Qo.js';
4
+ import { S as SearchInput } from './search-input-BgVjoPtF.js';
5
5
  import { useKeydown } from './keyboard/use-keydown.es.js';
6
6
  import './keyboard/keyboard-shortcuts-context.es.js';
7
7
 
@@ -59,4 +59,4 @@ const ListSearch = ({
59
59
  };
60
60
 
61
61
  export { ListSearch as L };
62
- //# sourceMappingURL=list-search-CTZVTRUd.js.map
62
+ //# sourceMappingURL=list-search-Ce89eOzO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-search-CTZVTRUd.js","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport type { SearchInputProps } from '@/ds/components/SearchInput';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: SearchInputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const searchNowOrDebounced = (next: string) => {\n setInternalValue(next);\n if (next) {\n debouncedSearch(next);\n return;\n }\n debouncedSearch.cancel();\n onSearch('');\n };\n\n return (\n <SearchInput\n ref={inputRef}\n label={label}\n placeholder={placeholder}\n size={size}\n value={internalValue}\n onValueChange={searchNowOrDebounced}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,UAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,oBAAA,GAAuB,CAAC,IAAA,KAAiB;AAC7C,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA;AAAA,IACF;AACA,IAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,QAAA;AAAA,MACL,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,aAAA,EAAe,oBAAA;AAAA,MACf,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"list-search-Ce89eOzO.js","sources":["../src/ds/components/ListSearch/list-search.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport type { SearchInputProps } from '@/ds/components/SearchInput';\nimport { useKeydown } from '@/lib/keyboard';\n\nexport type ListSearchProps = {\n onSearch: (search: string) => void;\n label: string;\n placeholder: string;\n debounceMs?: number;\n size?: SearchInputProps['size'];\n /**\n * Optional controlled value. When provided, ListSearch stays in sync with this\n * prop — useful when the parent needs to clear the input programmatically\n * (e.g. from a Reset button). If omitted, ListSearch manages its own state.\n */\n value?: string;\n /**\n * Opts out of the Cmd/Ctrl+Shift+F focus shortcut. Pass this on secondary\n * instances so two search fields on the same page don't fight over focus.\n */\n shortcutDisabled?: boolean;\n};\n\nexport const ListSearch = ({\n onSearch,\n label,\n placeholder,\n debounceMs = 300,\n size,\n value: controlledValue,\n shortcutDisabled = false,\n}: ListSearchProps) => {\n const [internalValue, setInternalValue] = useState(controlledValue ?? '');\n const inputRef = useRef<HTMLInputElement>(null);\n\n useKeydown(\n {\n 'mod+shift+f': () => {\n inputRef.current?.focus();\n inputRef.current?.select();\n },\n },\n { enabled: !shortcutDisabled },\n );\n\n const debouncedSearch = useDebouncedCallback((val: string) => {\n onSearch(val);\n }, debounceMs);\n\n // Sync internal state with controlled value (e.g. parent Reset clears it to '').\n // Also cancel any pending debounced callback so a stale handleChange call\n // can't overwrite the newly-applied controlled value.\n useEffect(() => {\n if (controlledValue !== undefined) {\n debouncedSearch.cancel();\n setInternalValue(controlledValue);\n }\n }, [controlledValue, debouncedSearch]);\n\n useEffect(() => () => debouncedSearch.cancel(), [debouncedSearch]);\n\n const searchNowOrDebounced = (next: string) => {\n setInternalValue(next);\n if (next) {\n debouncedSearch(next);\n return;\n }\n debouncedSearch.cancel();\n onSearch('');\n };\n\n return (\n <SearchInput\n ref={inputRef}\n label={label}\n placeholder={placeholder}\n size={size}\n value={internalValue}\n onValueChange={searchNowOrDebounced}\n className=\"w-full max-w-120\"\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAyBO,MAAM,aAAa,CAAC;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA,GAAa,GAAA;AAAA,EACb,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,gBAAA,GAAmB;AACrB,CAAA,KAAuB;AACrB,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAAS,mBAAmB,EAAE,CAAA;AACxE,EAAA,MAAM,QAAA,GAAW,OAAyB,IAAI,CAAA;AAE9C,EAAA,UAAA;AAAA,IACE;AAAA,MACE,eAAe,MAAM;AACnB,QAAA,QAAA,CAAS,SAAS,KAAA,EAAM;AACxB,QAAA,QAAA,CAAS,SAAS,MAAA,EAAO;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,EAAE,OAAA,EAAS,CAAC,gBAAA;AAAiB,GAC/B;AAEA,EAAA,MAAM,eAAA,GAAkB,oBAAA,CAAqB,CAAC,GAAA,KAAgB;AAC5D,IAAA,QAAA,CAAS,GAAG,CAAA;AAAA,EACd,GAAG,UAAU,CAAA;AAKb,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,MAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,MAAA,gBAAA,CAAiB,eAAe,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,eAAA,EAAiB,eAAe,CAAC,CAAA;AAErC,EAAA,SAAA,CAAU,MAAM,MAAM,eAAA,CAAgB,QAAO,EAAG,CAAC,eAAe,CAAC,CAAA;AAEjE,EAAA,MAAM,oBAAA,GAAuB,CAAC,IAAA,KAAiB;AAC7C,IAAA,gBAAA,CAAiB,IAAI,CAAA;AACrB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA;AAAA,IACF;AACA,IAAA,eAAA,CAAgB,MAAA,EAAO;AACvB,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,QAAA;AAAA,MACL,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA,EAAO,aAAA;AAAA,MACP,aAAA,EAAe,oBAAA;AAAA,MACf,SAAA,EAAU;AAAA;AAAA,GACZ;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const dataList = require('./data-list-oQsJVUa6.cjs');
3
+ const dataList = require('./data-list-CqVYt2aN.cjs');
4
4
  const jsxRuntime = require('react/jsx-runtime');
5
5
  const Badge = require('./Badge-BF6FbLH_.cjs');
6
6
  const Txt = require('./Txt-DXjXpX9r.cjs');
@@ -80,4 +80,4 @@ const LogsDataList = Object.assign(dataList.DataListRoot, {
80
80
  });
81
81
 
82
82
  exports.LogsDataList = LogsDataList;
83
- //# sourceMappingURL=logs-data-list-BgFT_0qi.cjs.map
83
+ //# sourceMappingURL=logs-data-list-C5UGLFo1.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-data-list-BgFT_0qi.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'info',\n warn: 'warning',\n error: 'destructive',\n fatal: 'destructive',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? (\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {entityName}\n </Txt>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","Txt","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":";;;;;;;;;;;AAWA,MAAM,aAAA,GAAgD;AAAA,EACpD,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM,SAAA;AAAA,EACN,KAAA,EAAO,aAAA;AAAA,EACP,KAAA,EAAO;AACT,CAAA;AAUO,SAAS,qBAAA,CAAsB,EAAE,KAAA,EAAM,EAA+B;AAC3E,EAAA,uBACEA,cAAA,CAACC,yBACC,QAAA,kBAAAD,cAAA,CAACE,WAAA,EAAA,EAAM,SAAS,aAAA,CAAc,KAAK,CAAA,EAAI,QAAA,EAAA,KAAA,EAAM,CAAA,EAC/C,CAAA;AAEJ;AAMA,SAAS,cAAA,CAAe,EAAE,UAAA,EAAY,SAAA,EAAU,EAA+C;AAC7F,EAAA,MAAM,SAAA,GAAYC,WAAA,CAAG,oCAAA,EAAsC,SAAS,CAAA;AACpE,EAAA,MAAM,oBAAA,GAAuB,WAAW,WAAA,EAAY;AAEpD,EAAA,QAAQ,oBAAA;AAAsB,IAC5B,KAAK,OAAA;AACH,MAAA,uBAAOH,cAAA,CAACI,yBAAA,EAAA,EAAU,SAAA,EAAW,SAAA,EAAW,eAAW,IAAA,EAAC,CAAA;AAAA,IACtD,KAAK,UAAA;AAAA,IACL,KAAK,cAAA;AACH,MAAA,uBAAOJ,cAAA,CAACK,+BAAA,EAAA,EAAa,SAAA,EAAW,SAAA,EAAW,eAAW,IAAA,EAAC,CAAA;AAAA,IACzD,KAAK,MAAA;AACH,MAAA,uBAAOL,cAAA,CAACM,yBAAA,EAAA,EAAU,SAAA,EAAW,SAAA,EAAW,eAAW,IAAA,EAAC,CAAA;AAAA,IACtD;AACE,MAAA,OAAO,IAAA;AAAA;AAEb;AAOO,SAAS,sBAAA,CAAuB,EAAE,UAAA,EAAY,UAAA,EAAW,EAAgC;AAC9F,EAAA,MAAM,OAAO,UAAA,IAAc,EAAA;AAE3B,EAAA,uBACEC,eAAA,CAACN,qBAAA,EAAA,EAAa,SAAA,EAAU,iCAAA,EACtB,QAAA,EAAA;AAAA,oBAAAD,cAAA,CAAC,cAAA,EAAA,EAAe,YAAY,IAAA,EAAM,CAAA;AAAA,IACjC,UAAA,mBACCA,cAAA,CAACQ,OAAA,EAAA,EAAI,EAAA,EAAG,MAAA,EAAO,SAAQ,SAAA,EAAU,SAAA,EAAU,kBAAA,EACxC,QAAA,EAAA,UAAA,EACH,CAAA,GAEA;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAUO,SAAS,uBAAA,CAAwB,EAAE,OAAA,EAAQ,EAAiC;AACjF,EAAA,uBACER,cAAA,CAACC,qBAAA,EAAA,EAAa,SAAA,EAAU,+DAAA,EAAiE,QAAA,EAAA,OAAA,EAAQ,CAAA;AAErG;AAUO,SAAS,oBAAA,CAAqB,EAAE,IAAA,EAAK,EAA8B;AACxE,EAAA,IAAI,CAAC,IAAA,IAAQ,MAAA,CAAO,KAAK,IAAI,CAAA,CAAE,WAAW,CAAA,EAAG;AAC3C,IAAA,uBAAOD,cAAA,CAACC,yBAAc,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,EAC7B;AAEA,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,CAChC,IAAI,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM;AACf,IAAA,IAAI,OAAO,CAAA,KAAM,QAAA,SAAiB,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AAC5C,IAAA,IAAI;AACF,MAAA,OAAO,GAAG,CAAC,CAAA,EAAA,EAAK,IAAA,CAAK,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAAA,IACnC,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,GAAG,CAAC,CAAA,kBAAA,CAAA;AAAA,IACb;AAAA,EACF,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AAEZ,EAAA,uBAAOD,cAAA,CAACS,yBAAA,EAAA,EAAiB,IAAA,EAAK,MAAA,EAAQ,QAAA,EAAA,OAAA,EAAQ,CAAA;AAChD;;ACnGO,MAAM,YAAA,GAAe,MAAA,CAAO,MAAA,CAAOC,qBAAA,EAAc;AAAA,EACtD,GAAA,EAAKC,oBAAA;AAAA,EACL,OAAA,EAASC,wBAAA;AAAA,EACT,eAAA,EAAiBC,gCAAA;AAAA,EACjB,kBAAA,EAAoBC,mCAAA;AAAA,EACpB,YAAA,EAAcC,6BAAA;AAAA,EACd,UAAA,EAAYC,2BAAA;AAAA,EACZ,SAAA,EAAWC,0BAAA;AAAA,EACX,OAAA,EAASC,wBAAA;AAAA,EACT,MAAA,EAAQC,uBAAA;AAAA,EACR,OAAA,EAASC,wBAAA;AAAA,EACT,QAAA,EAAUC,yBAAA;AAAA,EACV,QAAA,EAAUC,yBAAA;AAAA,EACV,SAAA,EAAW,qBAAA;AAAA,EACX,UAAA,EAAY,sBAAA;AAAA,EACZ,WAAA,EAAa,uBAAA;AAAA,EACb,QAAA,EAAU,oBAAA;AAAA,EACV,eAAA,EAAiBC;AACnB,CAAC;;;;"}
1
+ {"version":3,"file":"logs-data-list-C5UGLFo1.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'info',\n warn: 'warning',\n error: 'destructive',\n fatal: 'destructive',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? (\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {entityName}\n </Txt>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","Txt","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { c as DataListCell, f as DataListTextCell, D as DataListRoot, g as DataListNextPageLoading, h as DataListTimeCell, i as DataListDateCell, j as DataListNoMatch, k as DataListSpacer, l as DataListRowLink, m as DataListRowButton, n as DataListRowWrapper, o as DataListTopCellSmart, p as DataListTopCellWithTooltip, q as DataListSortableTopCell, b as DataListTopCell, a as DataListTop } from './data-list-BfepBJLG.js';
1
+ import { c as DataListCell, f as DataListTextCell, D as DataListRoot, g as DataListNextPageLoading, h as DataListTimeCell, i as DataListDateCell, j as DataListNoMatch, k as DataListSpacer, l as DataListRowLink, m as DataListRowButton, n as DataListRowWrapper, o as DataListTopCellSmart, p as DataListTopCellWithTooltip, q as DataListSortableTopCell, b as DataListTopCell, a as DataListTop } from './data-list-4UMxoFNU.js';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import { B as Badge } from './Badge-3-G2I_cx.js';
4
4
  import { T as Txt } from './Txt-BuzYj7Vy.js';
@@ -78,4 +78,4 @@ const LogsDataList = Object.assign(DataListRoot, {
78
78
  });
79
79
 
80
80
  export { LogsDataList as L };
81
- //# sourceMappingURL=logs-data-list-C-F2jh04.js.map
81
+ //# sourceMappingURL=logs-data-list-CgrUlafS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-data-list-C-F2jh04.js","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'info',\n warn: 'warning',\n error: 'destructive',\n fatal: 'destructive',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? (\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {entityName}\n </Txt>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs-data-list-CgrUlafS.js","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'info',\n warn: 'warning',\n error: 'destructive',\n fatal: 'destructive',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? (\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {entityName}\n </Txt>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const jsxRuntime = require('react/jsx-runtime');
5
+ require('../../app-shell.css');const jsxRuntime = require('react/jsx-runtime');
6
6
  const utils_cn = require('../../cn-TqD01zH-.cjs');
7
7
  const primitives_raisedSurface = require('../../primitives/raised-surface.cjs.js');
8
8
 
@@ -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\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":";;;;;;;;AAUO,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;;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,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 // 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;;;;;"}
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { c as cn } from '../../cn-coERSHz5.js';
3
3
  import { frameSurfaceStyle } from '../../primitives/raised-surface.es.js';
4
4
 
5
- function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }) {
5
+ import '../../app-shell.css';function AppShell({ children, className, mobileHeader, ref, sidebar, ...props }) {
6
6
  return /* @__PURE__ */ jsxs(
7
7
  "div",
8
8
  {
@@ -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\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":";;;;AAUO,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;;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,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 // 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;;;;"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  const jsxRuntime = require('react/jsx-runtime');
4
4
  const lucideReact = require('lucide-react');
5
- const activity = require('./activity-pXCpwxxi.cjs');
5
+ const activity = require('./activity-CaFdLiPz.cjs');
6
6
  const messagePreview = require('./message-preview-4Fmotm9o.cjs');
7
7
  const Badge = require('./Badge-BF6FbLH_.cjs');
8
8
  const Txt = require('./Txt-DXjXpX9r.cjs');
@@ -71,4 +71,4 @@ function NotificationLink({
71
71
  }
72
72
 
73
73
  exports.NotificationActivity = NotificationActivity;
74
- //# sourceMappingURL=notification-activity-Bz0h5LOR.cjs.map
74
+ //# sourceMappingURL=notification-activity-C2AcNOyq.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification-activity-Bz0h5LOR.cjs","sources":["../src/ds/components/ai/activity/presets/notification-activity.tsx"],"sourcesContent":["import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message);\n const hasBadges = Boolean(priority || status || pending);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n detailFont=\"sans\"\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":["messagePreviewShowsAll","jsx","ActivityItem","messagePreview","Bell","jsxs","Fragment","Badge","Txt","ExternalLink"],"mappings":";;;;;;;;;AAoBA,MAAM,qBAAA,GAA+D;AAAA,EACnE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,gBAAA,GAAmBA,sCAAuB,OAAO,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,IAAU,OAAO,CAAA;AAEvD,EAAA,uBACEC,cAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQC,8BAAe,OAAO,CAAA;AAAA,MAC9B,UAAA,EAAW,MAAA;AAAA,MACX,MAAM,IAAA,oBAAQF,cAAA,CAACG,oBAAK,SAAA,EAAU,yBAAA,EAA0B,eAAW,IAAA,EAAC,CAAA;AAAA,MACpE,MAAA,EACE,6BACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCL,cAAA,CAACM,eAAM,IAAA,EAAK,IAAA,EAAK,SAAS,qBAAA,CAAsB,QAAQ,GACrD,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,QAED,MAAA,oBAAUN,cAAA,CAACM,WAAA,EAAA,EAAM,IAAA,EAAK,MAAM,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACnC,OAAA,oBAAWF,eAAA,CAACE,WAAA,EAAA,EAAM,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAQ;AAAA,SAAA,EAAQ;AAAA,OAAA,EAChD,CAAA;AAAA,MAGJ,WAAA;AAAA,MACA,yBAAA,EAAyB,KAAA;AAAA,MACzB,YAAA,EAAY,iBAAiB,KAAK,CAAA,CAAA;AAAA,MAEhC,YAAC,gBAAA,IAAoB,IAAA,qBACrBF,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,OAAA,mCACEG,OAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAC9B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,QAED,IAAA,oBAAQP,cAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,EAAY,OAAA,EAAkB;AAAA,OAAA,EAC3D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACEI,eAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,YAAA;AAAA,MACJ,cAAY,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,EAAKF,6BAAA,CAAe,OAAO,CAAC,CAAA,CAAA;AAAA,MACrD,SAAA,EAAU,qFAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,wBACNF,cAAA,CAACQ,wBAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA;AAAA;AAAA,GACtC;AAEJ;;;;"}
1
+ {"version":3,"file":"notification-activity-C2AcNOyq.cjs","sources":["../src/ds/components/ai/activity/presets/notification-activity.tsx"],"sourcesContent":["import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message);\n const hasBadges = Boolean(priority || status || pending);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n detailFont=\"sans\"\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":["messagePreviewShowsAll","jsx","ActivityItem","messagePreview","Bell","jsxs","Fragment","Badge","Txt","ExternalLink"],"mappings":";;;;;;;;;AAoBA,MAAM,qBAAA,GAA+D;AAAA,EACnE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,gBAAA,GAAmBA,sCAAuB,OAAO,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,IAAU,OAAO,CAAA;AAEvD,EAAA,uBACEC,cAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQC,8BAAe,OAAO,CAAA;AAAA,MAC9B,UAAA,EAAW,MAAA;AAAA,MACX,MAAM,IAAA,oBAAQF,cAAA,CAACG,oBAAK,SAAA,EAAU,yBAAA,EAA0B,eAAW,IAAA,EAAC,CAAA;AAAA,MACpE,MAAA,EACE,6BACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,oBACCL,cAAA,CAACM,eAAM,IAAA,EAAK,IAAA,EAAK,SAAS,qBAAA,CAAsB,QAAQ,GACrD,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,QAED,MAAA,oBAAUN,cAAA,CAACM,WAAA,EAAA,EAAM,IAAA,EAAK,MAAM,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACnC,OAAA,oBAAWF,eAAA,CAACE,WAAA,EAAA,EAAM,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAQ;AAAA,SAAA,EAAQ;AAAA,OAAA,EAChD,CAAA;AAAA,MAGJ,WAAA;AAAA,MACA,yBAAA,EAAyB,KAAA;AAAA,MACzB,YAAA,EAAY,iBAAiB,KAAK,CAAA,CAAA;AAAA,MAEhC,YAAC,gBAAA,IAAoB,IAAA,qBACrBF,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,OAAA,mCACEG,OAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAC9B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,QAED,IAAA,oBAAQP,cAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,EAAY,OAAA,EAAkB;AAAA,OAAA,EAC3D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACEI,eAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,YAAA;AAAA,MACJ,cAAY,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,EAAKF,6BAAA,CAAe,OAAO,CAAC,CAAA,CAAA;AAAA,MACrD,SAAA,EAAU,qFAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,wBACNF,cAAA,CAACQ,wBAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA;AAAA;AAAA,GACtC;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Bell, ExternalLink } from 'lucide-react';
3
- import { g as ActivityItem } from './activity-maXCNWZp.js';
3
+ import { g as ActivityItem } from './activity-BsrB5ADa.js';
4
4
  import { m as messagePreviewShowsAll, a as messagePreview } from './message-preview-BnmthmiK.js';
5
5
  import { B as Badge } from './Badge-3-G2I_cx.js';
6
6
  import { T as Txt } from './Txt-BuzYj7Vy.js';
@@ -69,4 +69,4 @@ function NotificationLink({
69
69
  }
70
70
 
71
71
  export { NotificationActivity as N };
72
- //# sourceMappingURL=notification-activity-DTXzghFr.js.map
72
+ //# sourceMappingURL=notification-activity-DquzIOZw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification-activity-DTXzghFr.js","sources":["../src/ds/components/ai/activity/presets/notification-activity.tsx"],"sourcesContent":["import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message);\n const hasBadges = Boolean(priority || status || pending);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n detailFont=\"sans\"\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAoBA,MAAM,qBAAA,GAA+D;AAAA,EACnE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,OAAO,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,IAAU,OAAO,CAAA;AAEvD,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQ,eAAe,OAAO,CAAA;AAAA,MAC9B,UAAA,EAAW,MAAA;AAAA,MACX,MAAM,IAAA,oBAAQ,GAAA,CAAC,QAAK,SAAA,EAAU,yBAAA,EAA0B,eAAW,IAAA,EAAC,CAAA;AAAA,MACpE,MAAA,EACE,6BACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,oBACC,GAAA,CAAC,SAAM,IAAA,EAAK,IAAA,EAAK,SAAS,qBAAA,CAAsB,QAAQ,GACrD,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,QAED,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,MAAM,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACnC,OAAA,oBAAW,IAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAQ;AAAA,SAAA,EAAQ;AAAA,OAAA,EAChD,CAAA;AAAA,MAGJ,WAAA;AAAA,MACA,yBAAA,EAAyB,KAAA;AAAA,MACzB,YAAA,EAAY,iBAAiB,KAAK,CAAA,CAAA;AAAA,MAEhC,YAAC,gBAAA,IAAoB,IAAA,qBACrB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,OAAA,wBACE,GAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAC9B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,QAED,IAAA,oBAAQ,GAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,EAAY,OAAA,EAAkB;AAAA,OAAA,EAC3D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,YAAA;AAAA,MACJ,cAAY,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,EAAK,cAAA,CAAe,OAAO,CAAC,CAAA,CAAA;AAAA,MACrD,SAAA,EAAU,qFAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,wBACN,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA;AAAA;AAAA,GACtC;AAEJ;;;;"}
1
+ {"version":3,"file":"notification-activity-DquzIOZw.js","sources":["../src/ds/components/ai/activity/presets/notification-activity.tsx"],"sourcesContent":["import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message);\n const hasBadges = Boolean(priority || status || pending);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n detailFont=\"sans\"\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAoBA,MAAM,qBAAA,GAA+D;AAAA,EACnE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAA;AAEO,SAAS,oBAAA,CAAqB;AAAA,EACnC,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA,GAAQ,cAAA;AAAA,EACR,IAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF,CAAA,EAA8B;AAC5B,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,OAAO,CAAA;AACvD,EAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,IAAY,MAAA,IAAU,OAAO,CAAA;AAEvD,EAAA,uBACE,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA,EAAQ,eAAe,OAAO,CAAA;AAAA,MAC9B,UAAA,EAAW,MAAA;AAAA,MACX,MAAM,IAAA,oBAAQ,GAAA,CAAC,QAAK,SAAA,EAAU,yBAAA,EAA0B,eAAW,IAAA,EAAC,CAAA;AAAA,MACpE,MAAA,EACE,6BACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,QAAA,oBACC,GAAA,CAAC,SAAM,IAAA,EAAK,IAAA,EAAK,SAAS,qBAAA,CAAsB,QAAQ,GACrD,QAAA,EAAA,QAAA,EACH,CAAA;AAAA,QAED,MAAA,oBAAU,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,MAAM,QAAA,EAAA,MAAA,EAAO,CAAA;AAAA,QACnC,OAAA,oBAAW,IAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,IAAA,EAAM,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UAAQ;AAAA,SAAA,EAAQ;AAAA,OAAA,EAChD,CAAA;AAAA,MAGJ,WAAA;AAAA,MACA,yBAAA,EAAyB,KAAA;AAAA,MACzB,YAAA,EAAY,iBAAiB,KAAK,CAAA,CAAA;AAAA,MAEhC,YAAC,gBAAA,IAAoB,IAAA,qBACrB,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACZ,QAAA,EAAA;AAAA,QAAA,OAAA,wBACE,GAAA,EAAA,EAAI,OAAA,EAAQ,SAAA,EAAU,SAAA,EAAU,mCAC9B,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,QAED,IAAA,oBAAQ,GAAA,CAAC,gBAAA,EAAA,EAAiB,IAAA,EAAY,OAAA,EAAkB;AAAA,OAAA,EAC3D;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,IAAA;AAAA,EACA;AACF,CAAA,EAGG;AACD,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,MAAM,IAAA,CAAK,IAAA;AAAA,MACX,MAAA,EAAO,QAAA;AAAA,MACP,GAAA,EAAI,YAAA;AAAA,MACJ,cAAY,CAAA,EAAG,IAAA,CAAK,KAAK,CAAA,EAAA,EAAK,cAAA,CAAe,OAAO,CAAC,CAAA,CAAA;AAAA,MACrD,SAAA,EAAU,qFAAA;AAAA,MAET,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,KAAA;AAAA,wBACN,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,eAAW,IAAA,EAAC;AAAA;AAAA;AAAA,GACtC;AAEJ;;;;"}