@vendoai/ui 0.4.0

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 (525) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +7 -0
  3. package/dist/chrome/activity-ledger.d.ts +14 -0
  4. package/dist/chrome/activity-ledger.d.ts.map +1 -0
  5. package/dist/chrome/activity-ledger.js +40 -0
  6. package/dist/chrome/activity-ledger.js.map +1 -0
  7. package/dist/chrome/activity-panel.d.ts +7 -0
  8. package/dist/chrome/activity-panel.d.ts.map +1 -0
  9. package/dist/chrome/activity-panel.js +27 -0
  10. package/dist/chrome/activity-panel.js.map +1 -0
  11. package/dist/chrome/activity-semantics.d.ts +42 -0
  12. package/dist/chrome/activity-semantics.d.ts.map +1 -0
  13. package/dist/chrome/activity-semantics.js +119 -0
  14. package/dist/chrome/activity-semantics.js.map +1 -0
  15. package/dist/chrome/approval-card.d.ts +22 -0
  16. package/dist/chrome/approval-card.d.ts.map +1 -0
  17. package/dist/chrome/approval-card.js +95 -0
  18. package/dist/chrome/approval-card.js.map +1 -0
  19. package/dist/chrome/approval-sheet.d.ts +23 -0
  20. package/dist/chrome/approval-sheet.d.ts.map +1 -0
  21. package/dist/chrome/approval-sheet.js +72 -0
  22. package/dist/chrome/approval-sheet.js.map +1 -0
  23. package/dist/chrome/automations-panel.d.ts +3 -0
  24. package/dist/chrome/automations-panel.d.ts.map +1 -0
  25. package/dist/chrome/automations-panel.js +305 -0
  26. package/dist/chrome/automations-panel.js.map +1 -0
  27. package/dist/chrome/build-beat.d.ts +70 -0
  28. package/dist/chrome/build-beat.d.ts.map +1 -0
  29. package/dist/chrome/build-beat.js +101 -0
  30. package/dist/chrome/build-beat.js.map +1 -0
  31. package/dist/chrome/chrome-css.d.ts +7 -0
  32. package/dist/chrome/chrome-css.d.ts.map +1 -0
  33. package/dist/chrome/chrome-css.js +2042 -0
  34. package/dist/chrome/chrome-css.js.map +1 -0
  35. package/dist/chrome/chrome-root.d.ts +13 -0
  36. package/dist/chrome/chrome-root.d.ts.map +1 -0
  37. package/dist/chrome/chrome-root.js +39 -0
  38. package/dist/chrome/chrome-root.js.map +1 -0
  39. package/dist/chrome/clipboard.d.ts +4 -0
  40. package/dist/chrome/clipboard.d.ts.map +1 -0
  41. package/dist/chrome/clipboard.js +49 -0
  42. package/dist/chrome/clipboard.js.map +1 -0
  43. package/dist/chrome/connect-card.d.ts +19 -0
  44. package/dist/chrome/connect-card.d.ts.map +1 -0
  45. package/dist/chrome/connect-card.js +57 -0
  46. package/dist/chrome/connect-card.js.map +1 -0
  47. package/dist/chrome/connect-dock.d.ts +25 -0
  48. package/dist/chrome/connect-dock.d.ts.map +1 -0
  49. package/dist/chrome/connect-dock.js +192 -0
  50. package/dist/chrome/connect-dock.js.map +1 -0
  51. package/dist/chrome/connected-accounts-panel.d.ts +14 -0
  52. package/dist/chrome/connected-accounts-panel.d.ts.map +1 -0
  53. package/dist/chrome/connected-accounts-panel.js +157 -0
  54. package/dist/chrome/connected-accounts-panel.js.map +1 -0
  55. package/dist/chrome/dev-mode.d.ts +5 -0
  56. package/dist/chrome/dev-mode.d.ts.map +1 -0
  57. package/dist/chrome/dev-mode.js +7 -0
  58. package/dist/chrome/dev-mode.js.map +1 -0
  59. package/dist/chrome/discoverability.d.ts +33 -0
  60. package/dist/chrome/discoverability.d.ts.map +1 -0
  61. package/dist/chrome/discoverability.js +63 -0
  62. package/dist/chrome/discoverability.js.map +1 -0
  63. package/dist/chrome/embeds.d.ts +21 -0
  64. package/dist/chrome/embeds.d.ts.map +1 -0
  65. package/dist/chrome/embeds.js +181 -0
  66. package/dist/chrome/embeds.js.map +1 -0
  67. package/dist/chrome/fluid-thinking.d.ts +15 -0
  68. package/dist/chrome/fluid-thinking.d.ts.map +1 -0
  69. package/dist/chrome/fluid-thinking.js +37 -0
  70. package/dist/chrome/fluid-thinking.js.map +1 -0
  71. package/dist/chrome/humanize.d.ts +46 -0
  72. package/dist/chrome/humanize.d.ts.map +1 -0
  73. package/dist/chrome/humanize.js +104 -0
  74. package/dist/chrome/humanize.js.map +1 -0
  75. package/dist/chrome/index.d.ts +39 -0
  76. package/dist/chrome/index.d.ts.map +1 -0
  77. package/dist/chrome/index.js +38 -0
  78. package/dist/chrome/index.js.map +1 -0
  79. package/dist/chrome/markdown.d.ts +23 -0
  80. package/dist/chrome/markdown.d.ts.map +1 -0
  81. package/dist/chrome/markdown.js +149 -0
  82. package/dist/chrome/markdown.js.map +1 -0
  83. package/dist/chrome/morph-toast.d.ts +43 -0
  84. package/dist/chrome/morph-toast.d.ts.map +1 -0
  85. package/dist/chrome/morph-toast.js +89 -0
  86. package/dist/chrome/morph-toast.js.map +1 -0
  87. package/dist/chrome/no-policy-notice.d.ts +8 -0
  88. package/dist/chrome/no-policy-notice.d.ts.map +1 -0
  89. package/dist/chrome/no-policy-notice.js +18 -0
  90. package/dist/chrome/no-policy-notice.js.map +1 -0
  91. package/dist/chrome/onest-font.gen.d.ts +10 -0
  92. package/dist/chrome/onest-font.gen.d.ts.map +1 -0
  93. package/dist/chrome/onest-font.gen.js +10 -0
  94. package/dist/chrome/onest-font.gen.js.map +1 -0
  95. package/dist/chrome/overlay-registry.d.ts +66 -0
  96. package/dist/chrome/overlay-registry.d.ts.map +1 -0
  97. package/dist/chrome/overlay-registry.js +103 -0
  98. package/dist/chrome/overlay-registry.js.map +1 -0
  99. package/dist/chrome/palette-hotkey.d.ts +42 -0
  100. package/dist/chrome/palette-hotkey.d.ts.map +1 -0
  101. package/dist/chrome/palette-hotkey.js +91 -0
  102. package/dist/chrome/palette-hotkey.js.map +1 -0
  103. package/dist/chrome/policy-notice-body.d.ts +3 -0
  104. package/dist/chrome/policy-notice-body.d.ts.map +1 -0
  105. package/dist/chrome/policy-notice-body.js +6 -0
  106. package/dist/chrome/policy-notice-body.js.map +1 -0
  107. package/dist/chrome/takeover-portal.d.ts +16 -0
  108. package/dist/chrome/takeover-portal.d.ts.map +1 -0
  109. package/dist/chrome/takeover-portal.js +21 -0
  110. package/dist/chrome/takeover-portal.js.map +1 -0
  111. package/dist/chrome/thread/attachments.d.ts +24 -0
  112. package/dist/chrome/thread/attachments.d.ts.map +1 -0
  113. package/dist/chrome/thread/attachments.js +50 -0
  114. package/dist/chrome/thread/attachments.js.map +1 -0
  115. package/dist/chrome/thread/composer.d.ts +63 -0
  116. package/dist/chrome/thread/composer.d.ts.map +1 -0
  117. package/dist/chrome/thread/composer.js +259 -0
  118. package/dist/chrome/thread/composer.js.map +1 -0
  119. package/dist/chrome/thread/index.d.ts +41 -0
  120. package/dist/chrome/thread/index.d.ts.map +1 -0
  121. package/dist/chrome/thread/index.js +258 -0
  122. package/dist/chrome/thread/index.js.map +1 -0
  123. package/dist/chrome/thread/message-data.d.ts +35 -0
  124. package/dist/chrome/thread/message-data.d.ts.map +1 -0
  125. package/dist/chrome/thread/message-data.js +127 -0
  126. package/dist/chrome/thread/message-data.js.map +1 -0
  127. package/dist/chrome/thread/message-list.d.ts +30 -0
  128. package/dist/chrome/thread/message-list.d.ts.map +1 -0
  129. package/dist/chrome/thread/message-list.js +11 -0
  130. package/dist/chrome/thread/message-list.js.map +1 -0
  131. package/dist/chrome/thread/message.d.ts +18 -0
  132. package/dist/chrome/thread/message.d.ts.map +1 -0
  133. package/dist/chrome/thread/message.js +57 -0
  134. package/dist/chrome/thread/message.js.map +1 -0
  135. package/dist/chrome/thread/parts.d.ts +53 -0
  136. package/dist/chrome/thread/parts.d.ts.map +1 -0
  137. package/dist/chrome/thread/parts.js +184 -0
  138. package/dist/chrome/thread/parts.js.map +1 -0
  139. package/dist/chrome/thread/scrolling.d.ts +26 -0
  140. package/dist/chrome/thread/scrolling.d.ts.map +1 -0
  141. package/dist/chrome/thread/scrolling.js +214 -0
  142. package/dist/chrome/thread/scrolling.js.map +1 -0
  143. package/dist/chrome/truncate.d.ts +12 -0
  144. package/dist/chrome/truncate.d.ts.map +1 -0
  145. package/dist/chrome/truncate.js +18 -0
  146. package/dist/chrome/truncate.js.map +1 -0
  147. package/dist/chrome/vendo-activities.d.ts +24 -0
  148. package/dist/chrome/vendo-activities.d.ts.map +1 -0
  149. package/dist/chrome/vendo-activities.js +38 -0
  150. package/dist/chrome/vendo-activities.js.map +1 -0
  151. package/dist/chrome/vendo-overlay.d.ts +63 -0
  152. package/dist/chrome/vendo-overlay.d.ts.map +1 -0
  153. package/dist/chrome/vendo-overlay.js +256 -0
  154. package/dist/chrome/vendo-overlay.js.map +1 -0
  155. package/dist/chrome/vendo-page.d.ts +3 -0
  156. package/dist/chrome/vendo-page.d.ts.map +1 -0
  157. package/dist/chrome/vendo-page.js +162 -0
  158. package/dist/chrome/vendo-page.js.map +1 -0
  159. package/dist/chrome/vendo-palette.d.ts +29 -0
  160. package/dist/chrome/vendo-palette.d.ts.map +1 -0
  161. package/dist/chrome/vendo-palette.js +95 -0
  162. package/dist/chrome/vendo-palette.js.map +1 -0
  163. package/dist/chrome/vendo-slot.d.ts +79 -0
  164. package/dist/chrome/vendo-slot.d.ts.map +1 -0
  165. package/dist/chrome/vendo-slot.js +153 -0
  166. package/dist/chrome/vendo-slot.js.map +1 -0
  167. package/dist/chrome/vendo-toasts.d.ts +40 -0
  168. package/dist/chrome/vendo-toasts.d.ts.map +1 -0
  169. package/dist/chrome/vendo-toasts.js +135 -0
  170. package/dist/chrome/vendo-toasts.js.map +1 -0
  171. package/dist/chrome/vendo-trigger.d.ts +24 -0
  172. package/dist/chrome/vendo-trigger.d.ts.map +1 -0
  173. package/dist/chrome/vendo-trigger.js +30 -0
  174. package/dist/chrome/vendo-trigger.js.map +1 -0
  175. package/dist/chrome/waiting-queue.d.ts +8 -0
  176. package/dist/chrome/waiting-queue.d.ts.map +1 -0
  177. package/dist/chrome/waiting-queue.js +21 -0
  178. package/dist/chrome/waiting-queue.js.map +1 -0
  179. package/dist/client-impl.d.ts +4 -0
  180. package/dist/client-impl.d.ts.map +1 -0
  181. package/dist/client-impl.js +160 -0
  182. package/dist/client-impl.js.map +1 -0
  183. package/dist/client.d.ts +136 -0
  184. package/dist/client.d.ts.map +1 -0
  185. package/dist/client.js +2 -0
  186. package/dist/client.js.map +1 -0
  187. package/dist/context.d.ts +97 -0
  188. package/dist/context.d.ts.map +1 -0
  189. package/dist/context.js +71 -0
  190. package/dist/context.js.map +1 -0
  191. package/dist/eject-templates/activities/index.tsx +113 -0
  192. package/dist/eject-templates/templates.json +29 -0
  193. package/dist/eject-templates/thread/attachments.tsx +69 -0
  194. package/dist/eject-templates/thread/composer.tsx +409 -0
  195. package/dist/eject-templates/thread/index.tsx +422 -0
  196. package/dist/eject-templates/thread/message-data.ts +151 -0
  197. package/dist/eject-templates/thread/message-list.tsx +123 -0
  198. package/dist/eject-templates/thread/message.tsx +149 -0
  199. package/dist/eject-templates/thread/parts.tsx +293 -0
  200. package/dist/eject-templates/thread/scrolling.ts +223 -0
  201. package/dist/embeds.d.ts +28 -0
  202. package/dist/embeds.d.ts.map +1 -0
  203. package/dist/embeds.js +2 -0
  204. package/dist/embeds.js.map +1 -0
  205. package/dist/hooks/index.d.ts +18 -0
  206. package/dist/hooks/index.d.ts.map +1 -0
  207. package/dist/hooks/index.js +19 -0
  208. package/dist/hooks/index.js.map +1 -0
  209. package/dist/hooks/scripted-transport.d.ts +44 -0
  210. package/dist/hooks/scripted-transport.d.ts.map +1 -0
  211. package/dist/hooks/scripted-transport.js +58 -0
  212. package/dist/hooks/scripted-transport.js.map +1 -0
  213. package/dist/hooks/use-activity.d.ts +17 -0
  214. package/dist/hooks/use-activity.d.ts.map +1 -0
  215. package/dist/hooks/use-activity.js +50 -0
  216. package/dist/hooks/use-activity.js.map +1 -0
  217. package/dist/hooks/use-app.d.ts +19 -0
  218. package/dist/hooks/use-app.d.ts.map +1 -0
  219. package/dist/hooks/use-app.js +66 -0
  220. package/dist/hooks/use-app.js.map +1 -0
  221. package/dist/hooks/use-approvals.d.ts +13 -0
  222. package/dist/hooks/use-approvals.d.ts.map +1 -0
  223. package/dist/hooks/use-approvals.js +14 -0
  224. package/dist/hooks/use-approvals.js.map +1 -0
  225. package/dist/hooks/use-apps.d.ts +17 -0
  226. package/dist/hooks/use-apps.d.ts.map +1 -0
  227. package/dist/hooks/use-apps.js +30 -0
  228. package/dist/hooks/use-apps.js.map +1 -0
  229. package/dist/hooks/use-automations.d.ts +25 -0
  230. package/dist/hooks/use-automations.d.ts.map +1 -0
  231. package/dist/hooks/use-automations.js +30 -0
  232. package/dist/hooks/use-automations.js.map +1 -0
  233. package/dist/hooks/use-connections.d.ts +12 -0
  234. package/dist/hooks/use-connections.d.ts.map +1 -0
  235. package/dist/hooks/use-connections.js +15 -0
  236. package/dist/hooks/use-connections.js.map +1 -0
  237. package/dist/hooks/use-connector-catalog.d.ts +8 -0
  238. package/dist/hooks/use-connector-catalog.d.ts.map +1 -0
  239. package/dist/hooks/use-connector-catalog.js +52 -0
  240. package/dist/hooks/use-connector-catalog.js.map +1 -0
  241. package/dist/hooks/use-grants.d.ts +13 -0
  242. package/dist/hooks/use-grants.d.ts.map +1 -0
  243. package/dist/hooks/use-grants.js +14 -0
  244. package/dist/hooks/use-grants.js.map +1 -0
  245. package/dist/hooks/use-mobile-takeover.d.ts +22 -0
  246. package/dist/hooks/use-mobile-takeover.d.ts.map +1 -0
  247. package/dist/hooks/use-mobile-takeover.js +66 -0
  248. package/dist/hooks/use-mobile-takeover.js.map +1 -0
  249. package/dist/hooks/use-resource.d.ts +21 -0
  250. package/dist/hooks/use-resource.d.ts.map +1 -0
  251. package/dist/hooks/use-resource.js +79 -0
  252. package/dist/hooks/use-resource.js.map +1 -0
  253. package/dist/hooks/use-slot-app.d.ts +19 -0
  254. package/dist/hooks/use-slot-app.d.ts.map +1 -0
  255. package/dist/hooks/use-slot-app.js +18 -0
  256. package/dist/hooks/use-slot-app.js.map +1 -0
  257. package/dist/hooks/use-threads.d.ts +16 -0
  258. package/dist/hooks/use-threads.d.ts.map +1 -0
  259. package/dist/hooks/use-threads.js +15 -0
  260. package/dist/hooks/use-threads.js.map +1 -0
  261. package/dist/hooks/use-vendo-overlay.d.ts +31 -0
  262. package/dist/hooks/use-vendo-overlay.d.ts.map +1 -0
  263. package/dist/hooks/use-vendo-overlay.js +23 -0
  264. package/dist/hooks/use-vendo-overlay.js.map +1 -0
  265. package/dist/hooks/use-vendo-status.d.ts +6 -0
  266. package/dist/hooks/use-vendo-status.d.ts.map +1 -0
  267. package/dist/hooks/use-vendo-status.js +28 -0
  268. package/dist/hooks/use-vendo-status.js.map +1 -0
  269. package/dist/hooks/use-vendo-thread.d.ts +39 -0
  270. package/dist/hooks/use-vendo-thread.d.ts.map +1 -0
  271. package/dist/hooks/use-vendo-thread.js +185 -0
  272. package/dist/hooks/use-vendo-thread.js.map +1 -0
  273. package/dist/index.d.ts +12 -0
  274. package/dist/index.d.ts.map +1 -0
  275. package/dist/index.js +12 -0
  276. package/dist/index.js.map +1 -0
  277. package/dist/kit/charts/bar.d.ts +16 -0
  278. package/dist/kit/charts/bar.d.ts.map +1 -0
  279. package/dist/kit/charts/bar.js +21 -0
  280. package/dist/kit/charts/bar.js.map +1 -0
  281. package/dist/kit/charts/donut.d.ts +16 -0
  282. package/dist/kit/charts/donut.d.ts.map +1 -0
  283. package/dist/kit/charts/donut.js +17 -0
  284. package/dist/kit/charts/donut.js.map +1 -0
  285. package/dist/kit/charts/line.d.ts +19 -0
  286. package/dist/kit/charts/line.d.ts.map +1 -0
  287. package/dist/kit/charts/line.js +21 -0
  288. package/dist/kit/charts/line.js.map +1 -0
  289. package/dist/kit/charts/progress.d.ts +12 -0
  290. package/dist/kit/charts/progress.d.ts.map +1 -0
  291. package/dist/kit/charts/progress.js +25 -0
  292. package/dist/kit/charts/progress.js.map +1 -0
  293. package/dist/kit/charts/sanitize.d.ts +24 -0
  294. package/dist/kit/charts/sanitize.d.ts.map +1 -0
  295. package/dist/kit/charts/sanitize.js +50 -0
  296. package/dist/kit/charts/sanitize.js.map +1 -0
  297. package/dist/kit/charts/sparkline.d.ts +11 -0
  298. package/dist/kit/charts/sparkline.d.ts.map +1 -0
  299. package/dist/kit/charts/sparkline.js +17 -0
  300. package/dist/kit/charts/sparkline.js.map +1 -0
  301. package/dist/kit/data/badge.d.ts +13 -0
  302. package/dist/kit/data/badge.d.ts.map +1 -0
  303. package/dist/kit/data/badge.js +12 -0
  304. package/dist/kit/data/badge.js.map +1 -0
  305. package/dist/kit/data/card-list.d.ts +23 -0
  306. package/dist/kit/data/card-list.d.ts.map +1 -0
  307. package/dist/kit/data/card-list.js +43 -0
  308. package/dist/kit/data/card-list.js.map +1 -0
  309. package/dist/kit/data/data-table.d.ts +32 -0
  310. package/dist/kit/data/data-table.d.ts.map +1 -0
  311. package/dist/kit/data/data-table.js +153 -0
  312. package/dist/kit/data/data-table.js.map +1 -0
  313. package/dist/kit/data/stat.d.ts +15 -0
  314. package/dist/kit/data/stat.d.ts.map +1 -0
  315. package/dist/kit/data/stat.js +28 -0
  316. package/dist/kit/data/stat.js.map +1 -0
  317. package/dist/kit/feedback/accordion.d.ts +15 -0
  318. package/dist/kit/feedback/accordion.d.ts.map +1 -0
  319. package/dist/kit/feedback/accordion.js +33 -0
  320. package/dist/kit/feedback/accordion.js.map +1 -0
  321. package/dist/kit/feedback/callout.d.ts +13 -0
  322. package/dist/kit/feedback/callout.d.ts.map +1 -0
  323. package/dist/kit/feedback/callout.js +24 -0
  324. package/dist/kit/feedback/callout.js.map +1 -0
  325. package/dist/kit/feedback/tabs.d.ts +14 -0
  326. package/dist/kit/feedback/tabs.d.ts.map +1 -0
  327. package/dist/kit/feedback/tabs.js +37 -0
  328. package/dist/kit/feedback/tabs.js.map +1 -0
  329. package/dist/kit/format.d.ts +60 -0
  330. package/dist/kit/format.d.ts.map +1 -0
  331. package/dist/kit/format.js +123 -0
  332. package/dist/kit/format.js.map +1 -0
  333. package/dist/kit/forms/button.d.ts +17 -0
  334. package/dist/kit/forms/button.d.ts.map +1 -0
  335. package/dist/kit/forms/button.js +33 -0
  336. package/dist/kit/forms/button.js.map +1 -0
  337. package/dist/kit/forms/checkbox.d.ts +9 -0
  338. package/dist/kit/forms/checkbox.d.ts.map +1 -0
  339. package/dist/kit/forms/checkbox.js +9 -0
  340. package/dist/kit/forms/checkbox.js.map +1 -0
  341. package/dist/kit/forms/date-picker.d.ts +13 -0
  342. package/dist/kit/forms/date-picker.d.ts.map +1 -0
  343. package/dist/kit/forms/date-picker.js +9 -0
  344. package/dist/kit/forms/date-picker.js.map +1 -0
  345. package/dist/kit/forms/disclaimer.d.ts +8 -0
  346. package/dist/kit/forms/disclaimer.d.ts.map +1 -0
  347. package/dist/kit/forms/disclaimer.js +20 -0
  348. package/dist/kit/forms/disclaimer.js.map +1 -0
  349. package/dist/kit/forms/field.d.ts +18 -0
  350. package/dist/kit/forms/field.d.ts.map +1 -0
  351. package/dist/kit/forms/field.js +19 -0
  352. package/dist/kit/forms/field.js.map +1 -0
  353. package/dist/kit/forms/form.d.ts +10 -0
  354. package/dist/kit/forms/form.d.ts.map +1 -0
  355. package/dist/kit/forms/form.js +9 -0
  356. package/dist/kit/forms/form.js.map +1 -0
  357. package/dist/kit/forms/input.d.ts +14 -0
  358. package/dist/kit/forms/input.d.ts.map +1 -0
  359. package/dist/kit/forms/input.js +9 -0
  360. package/dist/kit/forms/input.js.map +1 -0
  361. package/dist/kit/forms/select.d.ts +21 -0
  362. package/dist/kit/forms/select.d.ts.map +1 -0
  363. package/dist/kit/forms/select.js +35 -0
  364. package/dist/kit/forms/select.js.map +1 -0
  365. package/dist/kit/forms/textarea.d.ts +12 -0
  366. package/dist/kit/forms/textarea.d.ts.map +1 -0
  367. package/dist/kit/forms/textarea.js +9 -0
  368. package/dist/kit/forms/textarea.js.map +1 -0
  369. package/dist/kit/index.d.ts +42 -0
  370. package/dist/kit/index.d.ts.map +1 -0
  371. package/dist/kit/index.js +45 -0
  372. package/dist/kit/index.js.map +1 -0
  373. package/dist/kit/kit-prompt.d.ts +7 -0
  374. package/dist/kit/kit-prompt.d.ts.map +1 -0
  375. package/dist/kit/kit-prompt.js +7 -0
  376. package/dist/kit/kit-prompt.js.map +1 -0
  377. package/dist/kit/layout.d.ts +29 -0
  378. package/dist/kit/layout.d.ts.map +1 -0
  379. package/dist/kit/layout.js +64 -0
  380. package/dist/kit/layout.js.map +1 -0
  381. package/dist/kit/registry.d.ts +11 -0
  382. package/dist/kit/registry.d.ts.map +1 -0
  383. package/dist/kit/registry.js +34 -0
  384. package/dist/kit/registry.js.map +1 -0
  385. package/dist/kit/schema.d.ts +9 -0
  386. package/dist/kit/schema.d.ts.map +1 -0
  387. package/dist/kit/schema.js +9 -0
  388. package/dist/kit/schema.js.map +1 -0
  389. package/dist/kit/tokens.d.ts +33 -0
  390. package/dist/kit/tokens.d.ts.map +1 -0
  391. package/dist/kit/tokens.js +48 -0
  392. package/dist/kit/tokens.js.map +1 -0
  393. package/dist/kit/values.d.ts +55 -0
  394. package/dist/kit/values.d.ts.map +1 -0
  395. package/dist/kit/values.js +108 -0
  396. package/dist/kit/values.js.map +1 -0
  397. package/dist/theme.d.ts +25 -0
  398. package/dist/theme.d.ts.map +1 -0
  399. package/dist/theme.js +100 -0
  400. package/dist/theme.js.map +1 -0
  401. package/dist/tree/bindings.d.ts +4 -0
  402. package/dist/tree/bindings.d.ts.map +1 -0
  403. package/dist/tree/bindings.js +20 -0
  404. package/dist/tree/bindings.js.map +1 -0
  405. package/dist/tree/branded.d.ts +124 -0
  406. package/dist/tree/branded.d.ts.map +1 -0
  407. package/dist/tree/branded.js +319 -0
  408. package/dist/tree/branded.js.map +1 -0
  409. package/dist/tree/error-boundary.d.ts +22 -0
  410. package/dist/tree/error-boundary.d.ts.map +1 -0
  411. package/dist/tree/error-boundary.js +25 -0
  412. package/dist/tree/error-boundary.js.map +1 -0
  413. package/dist/tree/fluid-reveal.d.ts +22 -0
  414. package/dist/tree/fluid-reveal.d.ts.map +1 -0
  415. package/dist/tree/fluid-reveal.js +28 -0
  416. package/dist/tree/fluid-reveal.js.map +1 -0
  417. package/dist/tree/forming-skeleton.d.ts +14 -0
  418. package/dist/tree/forming-skeleton.d.ts.map +1 -0
  419. package/dist/tree/forming-skeleton.js +36 -0
  420. package/dist/tree/forming-skeleton.js.map +1 -0
  421. package/dist/tree/frames.d.ts +52 -0
  422. package/dist/tree/frames.d.ts.map +1 -0
  423. package/dist/tree/frames.js +143 -0
  424. package/dist/tree/frames.js.map +1 -0
  425. package/dist/tree/host-mount.d.ts +24 -0
  426. package/dist/tree/host-mount.d.ts.map +1 -0
  427. package/dist/tree/host-mount.js +0 -0
  428. package/dist/tree/host-mount.js.map +1 -0
  429. package/dist/tree/index.d.ts +9 -0
  430. package/dist/tree/index.d.ts.map +1 -0
  431. package/dist/tree/index.js +9 -0
  432. package/dist/tree/index.js.map +1 -0
  433. package/dist/tree/jail/JailedComponent.d.ts +41 -0
  434. package/dist/tree/jail/JailedComponent.d.ts.map +1 -0
  435. package/dist/tree/jail/JailedComponent.js +269 -0
  436. package/dist/tree/jail/JailedComponent.js.map +1 -0
  437. package/dist/tree/jail/runtime-bundle.gen.d.ts +3 -0
  438. package/dist/tree/jail/runtime-bundle.gen.d.ts.map +1 -0
  439. package/dist/tree/jail/runtime-bundle.gen.js +3 -0
  440. package/dist/tree/jail/runtime-bundle.gen.js.map +1 -0
  441. package/dist/tree/jail/runtime-entry.d.ts +18 -0
  442. package/dist/tree/jail/runtime-entry.d.ts.map +1 -0
  443. package/dist/tree/jail/runtime-entry.js +440 -0
  444. package/dist/tree/jail/runtime-entry.js.map +1 -0
  445. package/dist/tree/jail/viewport-css.d.ts +17 -0
  446. package/dist/tree/jail/viewport-css.d.ts.map +1 -0
  447. package/dist/tree/jail/viewport-css.js +32 -0
  448. package/dist/tree/jail/viewport-css.js.map +1 -0
  449. package/dist/tree/mcp-shim/entry.d.ts +2 -0
  450. package/dist/tree/mcp-shim/entry.d.ts.map +1 -0
  451. package/dist/tree/mcp-shim/entry.js +45 -0
  452. package/dist/tree/mcp-shim/entry.js.map +1 -0
  453. package/dist/tree/mcp-shim/http-open-card.d.ts +5 -0
  454. package/dist/tree/mcp-shim/http-open-card.d.ts.map +1 -0
  455. package/dist/tree/mcp-shim/http-open-card.js +61 -0
  456. package/dist/tree/mcp-shim/http-open-card.js.map +1 -0
  457. package/dist/tree/mcp-shim/shim-core.d.ts +58 -0
  458. package/dist/tree/mcp-shim/shim-core.d.ts.map +1 -0
  459. package/dist/tree/mcp-shim/shim-core.js +176 -0
  460. package/dist/tree/mcp-shim/shim-core.js.map +1 -0
  461. package/dist/tree/mcp-shim/theme.d.ts +8 -0
  462. package/dist/tree/mcp-shim/theme.d.ts.map +1 -0
  463. package/dist/tree/mcp-shim/theme.js +36 -0
  464. package/dist/tree/mcp-shim/theme.js.map +1 -0
  465. package/dist/tree/notice.d.ts +8 -0
  466. package/dist/tree/notice.d.ts.map +1 -0
  467. package/dist/tree/notice.js +30 -0
  468. package/dist/tree/notice.js.map +1 -0
  469. package/dist/tree/primitives.d.ts +30 -0
  470. package/dist/tree/primitives.d.ts.map +1 -0
  471. package/dist/tree/primitives.js +105 -0
  472. package/dist/tree/primitives.js.map +1 -0
  473. package/dist/tree/renderer-v2.d.ts +15 -0
  474. package/dist/tree/renderer-v2.d.ts.map +1 -0
  475. package/dist/tree/renderer-v2.js +71 -0
  476. package/dist/tree/renderer-v2.js.map +1 -0
  477. package/dist/tree/renderer.d.ts +77 -0
  478. package/dist/tree/renderer.d.ts.map +1 -0
  479. package/dist/tree/renderer.js +376 -0
  480. package/dist/tree/renderer.js.map +1 -0
  481. package/dist/voice/driver.d.ts +94 -0
  482. package/dist/voice/driver.d.ts.map +1 -0
  483. package/dist/voice/driver.js +2 -0
  484. package/dist/voice/driver.js.map +1 -0
  485. package/dist/voice/index.d.ts +7 -0
  486. package/dist/voice/index.d.ts.map +1 -0
  487. package/dist/voice/index.js +5 -0
  488. package/dist/voice/index.js.map +1 -0
  489. package/dist/voice/realtime-driver.d.ts +57 -0
  490. package/dist/voice/realtime-driver.d.ts.map +1 -0
  491. package/dist/voice/realtime-driver.js +592 -0
  492. package/dist/voice/realtime-driver.js.map +1 -0
  493. package/dist/voice/stage.d.ts +12 -0
  494. package/dist/voice/stage.d.ts.map +1 -0
  495. package/dist/voice/stage.js +259 -0
  496. package/dist/voice/stage.js.map +1 -0
  497. package/dist/voice/use-voice-approvals.d.ts +16 -0
  498. package/dist/voice/use-voice-approvals.d.ts.map +1 -0
  499. package/dist/voice/use-voice-approvals.js +77 -0
  500. package/dist/voice/use-voice-approvals.js.map +1 -0
  501. package/dist/voice/use-voice.d.ts +26 -0
  502. package/dist/voice/use-voice.d.ts.map +1 -0
  503. package/dist/voice/use-voice.js +201 -0
  504. package/dist/voice/use-voice.js.map +1 -0
  505. package/dist/voice/voice-act.d.ts +13 -0
  506. package/dist/voice/voice-act.d.ts.map +1 -0
  507. package/dist/voice/voice-act.js +301 -0
  508. package/dist/voice/voice-act.js.map +1 -0
  509. package/dist/voice/voice-blob.d.ts +17 -0
  510. package/dist/voice/voice-blob.d.ts.map +1 -0
  511. package/dist/voice/voice-blob.js +67 -0
  512. package/dist/voice/voice-blob.js.map +1 -0
  513. package/dist/voice/voice-consent.d.ts +17 -0
  514. package/dist/voice/voice-consent.d.ts.map +1 -0
  515. package/dist/voice/voice-consent.js +45 -0
  516. package/dist/voice/voice-consent.js.map +1 -0
  517. package/dist/voice/voice-drawer.d.ts +10 -0
  518. package/dist/voice/voice-drawer.d.ts.map +1 -0
  519. package/dist/voice/voice-drawer.js +22 -0
  520. package/dist/voice/voice-drawer.js.map +1 -0
  521. package/dist/wire-types.d.ts +238 -0
  522. package/dist/wire-types.d.ts.map +1 -0
  523. package/dist/wire-types.js +2 -0
  524. package/dist/wire-types.js.map +1 -0
  525. package/package.json +106 -0
@@ -0,0 +1,50 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isRenderableNumber } from "../format.js";
3
+ import { font, t } from "../tokens.js";
4
+ /** Replace non-finite values in the given series keys with `null`. */
5
+ export function sanitizeSeries(rows, keys) {
6
+ // W3 — fail SOFT on missing data (a failed query resolves to undefined).
7
+ if (!Array.isArray(rows))
8
+ return [];
9
+ return rows.map((row) => {
10
+ const out = { ...row };
11
+ for (const key of keys) {
12
+ const v = row[key];
13
+ out[key] = isRenderableNumber(v) ? v : null;
14
+ }
15
+ return out;
16
+ });
17
+ }
18
+ /** Keep only finite numbers. */
19
+ export function sanitizeNumbers(values) {
20
+ return values.filter(isRenderableNumber);
21
+ }
22
+ /** True when no series key holds any finite value across the rows. */
23
+ export function seriesIsEmpty(rows, keys) {
24
+ return !rows.some((row) => keys.some((key) => isRenderableNumber(row[key])));
25
+ }
26
+ /** Common chart wrapper providing a min-height box. */
27
+ export function ChartFrame({ height = 220, children }) {
28
+ return _jsx("div", { style: { width: "100%", height, minHeight: height }, children: children });
29
+ }
30
+ /** A designed empty/invalid state that reads as intentional, not broken. */
31
+ export function ChartEmpty({ height = 220, children }) {
32
+ const style = {
33
+ ...font,
34
+ display: "flex",
35
+ alignItems: "center",
36
+ justifyContent: "center",
37
+ width: "100%",
38
+ height,
39
+ minHeight: height,
40
+ color: t.muted,
41
+ border: `1px dashed ${t.border}`,
42
+ borderRadius: t.radiusMedium,
43
+ background: `color-mix(in srgb, ${t.background} 40%, transparent)`,
44
+ fontSize: "0.9em",
45
+ textAlign: "center",
46
+ padding: 12,
47
+ };
48
+ return _jsx("div", { "data-kit": "ChartEmpty", children: _jsx("div", { style: style, children: children }) });
49
+ }
50
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../../src/kit/charts/sanitize.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEvC,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAC5B,IAAS,EACT,IAAc;IAEd,yEAAyE;IACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,GAAG,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAAC,MAAwC;IACtE,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,aAAa,CAAC,IAAoC,EAAE,IAAc;IAChF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC;AAOD,uDAAuD;AACvD,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAmB;IACpE,OAAO,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAG,QAAQ,GAAO,CAAC;AACpF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,QAAQ,EAA4C;IAC7F,MAAM,KAAK,GAAkB;QAC3B,GAAG,IAAI;QACP,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,KAAK,EAAE,MAAM;QACb,MAAM;QACN,SAAS,EAAE,MAAM;QACjB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE;QAChC,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,UAAU,EAAE,sBAAsB,CAAC,CAAC,UAAU,oBAAoB;QAClE,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,OAAO,0BAAc,YAAY,YAAE,cAAK,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAO,GAAO,CAAC;AAChF,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface SparklineProps {
2
+ /** A list of numbers, or rows with a `valueKey`. */
3
+ data: Array<number | Record<string, unknown>>;
4
+ /** Field to read when `data` holds objects. */
5
+ valueKey?: string;
6
+ height?: number;
7
+ /** Placeholder shown when there is nothing renderable. */
8
+ emptyState?: string;
9
+ }
10
+ export declare function Sparkline({ data, valueKey, height, emptyState }: SparklineProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=sparkline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline.d.ts","sourceRoot":"","sources":["../../../src/kit/charts/sparkline.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9C,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAkB,EAAE,MAAW,EAAE,UAAgB,EAAE,EAAE,cAAc,+BAmCpG"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Sparkline — a compact inline trend, recharts Area internals (W2 §The Kit). */
3
+ import { Area, AreaChart, ResponsiveContainer } from "recharts";
4
+ import { seriesColor } from "../tokens.js";
5
+ import { font, t } from "../tokens.js";
6
+ import { sanitizeNumbers } from "./sanitize.js";
7
+ export function Sparkline({ data, valueKey = "value", height = 40, emptyState = "—" }) {
8
+ // W3 — fail SOFT on missing data (a failed query resolves to undefined).
9
+ const raw = (Array.isArray(data) ? data : []).map((d) => (typeof d === "number" ? d : d[valueKey]));
10
+ const clean = sanitizeNumbers(raw);
11
+ if (clean.length < 2) {
12
+ return (_jsx("span", { "data-kit": "Sparkline", style: { ...font, color: t.muted, fontSize: "0.9em" }, children: emptyState }));
13
+ }
14
+ const points = clean.map((v, i) => ({ i, v }));
15
+ return (_jsx("div", { "data-kit": "Sparkline", style: { width: "100%", height, minHeight: height }, children: _jsx(ResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(AreaChart, { data: points, margin: { top: 2, right: 2, bottom: 2, left: 2 }, children: [_jsx("defs", { children: _jsxs("linearGradient", { id: "vendo-spark-fill", x1: "0", y1: "0", x2: "0", y2: "1", children: [_jsx("stop", { offset: "0%", stopColor: seriesColor(0), stopOpacity: 0.25 }), _jsx("stop", { offset: "100%", stopColor: seriesColor(0), stopOpacity: 0 })] }) }), _jsx(Area, { type: "monotone", dataKey: "v", stroke: seriesColor(0), strokeWidth: 1.6, fill: "url(#vendo-spark-fill)", dot: false, isAnimationActive: false })] }) }) }));
16
+ }
17
+ //# sourceMappingURL=sparkline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sparkline.js","sourceRoot":"","sources":["../../../src/kit/charts/sparkline.tsx"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAYhD,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,EAAkB;IACnG,yEAAyE;IACzE,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,QAAQ,CAAY,CAAC,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CACL,2BAAe,WAAW,EAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAC7E,UAAU,GACN,CACR,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CACL,0BAAc,WAAW,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAC3E,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YAC7C,MAAC,SAAS,IAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aACvE,yBACE,0BAAgB,EAAE,EAAC,kBAAkB,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,aAC/D,eAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,GAAI,EAClE,eAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAI,IAClD,GACZ,EACP,KAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,OAAO,EAAC,GAAG,EACX,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,WAAW,EAAE,GAAG,EAChB,IAAI,EAAC,wBAAwB,EAC7B,GAAG,EAAE,KAAK,EACV,iBAAiB,EAAE,KAAK,GACxB,IACQ,GACQ,GAClB,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** Badge — small status label using theme tones (W2 §The Kit). */
2
+ import type { PropsWithChildren } from "react";
3
+ import { type EnumTone } from "../values.js";
4
+ export interface BadgeProps {
5
+ label?: string;
6
+ tone?: EnumTone;
7
+ }
8
+ /**
9
+ * A literal status pill. For enum data fields prefer `EnumBadge` (it humanizes
10
+ * and tone-maps the raw value); `Badge` is for a copy label the model writes.
11
+ */
12
+ export declare function Badge({ label, tone, children }: PropsWithChildren<BadgeProps>): import("react").JSX.Element;
13
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/kit/data/badge.tsx"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,IAAgB,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,UAAU,CAAC,+BAIzF"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { EnumBadge } from "../values.js";
3
+ /**
4
+ * A literal status pill. For enum data fields prefer `EnumBadge` (it humanizes
5
+ * and tone-maps the raw value); `Badge` is for a copy label the model writes.
6
+ */
7
+ export function Badge({ label, tone = "neutral", children }) {
8
+ const text = label ?? (typeof children === "string" ? children : "");
9
+ // Reuse EnumBadge's tone styling with an explicit label (no humanization).
10
+ return _jsx(EnumBadge, { value: text, labels: { [text]: text }, tone: tone });
11
+ }
12
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../src/kit/data/badge.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAOxD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAiC;IACxF,MAAM,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,2EAA2E;IAC3E,OAAO,KAAC,SAAS,IAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,23 @@
1
+ /** CardList — one branded card per record, semantically formatted (W2 §The Kit). */
2
+ import { type ValueFormat } from "../format.js";
3
+ export interface CardField {
4
+ key: string;
5
+ label?: string;
6
+ format?: ValueFormat;
7
+ }
8
+ export interface CardListProps {
9
+ /** Items from a tool call. */
10
+ items: Array<Record<string, unknown>>;
11
+ /** Field used as each card's title. */
12
+ titleField?: string;
13
+ /** Optional field rendered as a status pill (EnumBadge). */
14
+ badgeField?: string;
15
+ /** Fields shown as label/value rows. */
16
+ fields?: CardField[];
17
+ /** Columns of cards (defaults to a responsive auto-fit grid). */
18
+ columns?: number;
19
+ /** Text shown when there are no items. */
20
+ emptyState?: string;
21
+ }
22
+ export declare function CardList({ items: rawItems, titleField, badgeField, fields, columns, emptyState }: CardListProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=card-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-list.d.ts","sourceRoot":"","sources":["../../../src/kit/data/card-list.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAI7D,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAW,EAAE,OAAO,EAAE,UAAuB,EAAE,EAAE,aAAa,+BAuEjI"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** CardList — one branded card per record, semantically formatted (W2 §The Kit). */
3
+ import { applyFormat } from "../format.js";
4
+ import { font, t } from "../tokens.js";
5
+ import { EnumBadge } from "../values.js";
6
+ function resolve(row, key) {
7
+ return key.split(".").reduce((acc, k) => (acc && typeof acc === "object" ? acc[k] : undefined), row);
8
+ }
9
+ export function CardList({ items: rawItems, titleField, badgeField, fields = [], columns, emptyState = "No items" }) {
10
+ // W3 — fail SOFT on missing data (a failed query resolves to undefined).
11
+ const items = Array.isArray(rawItems) ? rawItems : [];
12
+ if (items.length === 0) {
13
+ return (_jsx("div", { "data-kit": "CardList", style: {
14
+ ...font,
15
+ color: t.muted,
16
+ textAlign: "center",
17
+ border: `1px dashed ${t.border}`,
18
+ borderRadius: t.radiusMedium,
19
+ padding: "calc(var(--vendo-font-size, 15px) * 1.6)",
20
+ }, children: emptyState }));
21
+ }
22
+ const gridTemplate = columns
23
+ ? `repeat(${Math.max(1, Math.floor(columns))}, minmax(0, 1fr))`
24
+ : "repeat(auto-fill, minmax(220px, 1fr))";
25
+ return (_jsx("div", { "data-kit": "CardList", style: { display: "grid", gridTemplateColumns: gridTemplate, gap: "var(--vendo-density-content-gap, 10px)" }, children: items.map((item, index) => {
26
+ const badge = badgeField ? resolve(item, badgeField) : undefined;
27
+ return (_jsxs("article", { style: {
28
+ ...font,
29
+ display: "flex",
30
+ flexDirection: "column",
31
+ gap: "var(--vendo-density-field-gap, 6px)",
32
+ border: `1px solid ${t.border}`,
33
+ borderRadius: t.radiusLarge,
34
+ background: t.surface,
35
+ boxShadow: `0 4px 20px color-mix(in srgb, ${t.text} 5%, transparent)`,
36
+ padding: "var(--vendo-density-card-padding, 16px)",
37
+ }, children: [(titleField || badge !== undefined) && (_jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 8 }, children: [titleField ? (_jsx("span", { style: { fontFamily: t.headingFamily, fontWeight: 650, letterSpacing: "-0.015em" }, children: String(resolve(item, titleField) ?? "—") })) : _jsx("span", {}), badge !== undefined && badge !== null && badge !== "" ? (_jsx(EnumBadge, { value: String(badge) })) : null] })), fields.map((f) => {
38
+ const formatted = applyFormat(resolve(item, f.key), f.format ?? "text");
39
+ return (_jsxs("div", { style: { display: "flex", justifyContent: "space-between", gap: 8, fontSize: "0.92em" }, children: [_jsx("span", { style: { color: t.muted }, children: f.label ?? f.key }), _jsx("span", { style: { fontVariantNumeric: "tabular-nums" }, children: formatted ?? "—" })] }, f.key));
40
+ })] }, String(resolve(item, "id") ?? index)));
41
+ }) }));
42
+ }
43
+ //# sourceMappingURL=card-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-list.js","sourceRoot":"","sources":["../../../src/kit/data/card-list.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { type ValueFormat } from "../format.js";
2
+ export interface DataTableColumn {
3
+ /** Field key; supports dot-paths ("client.name"). */
4
+ key: string;
5
+ /** Header label; defaults to a humanized last path segment. */
6
+ label?: string;
7
+ /** Value-tier format applied to every cell. */
8
+ format?: ValueFormat;
9
+ align?: "start" | "center" | "end";
10
+ }
11
+ export interface DataTableProps {
12
+ /** Rows from a tool call. */
13
+ rows: Array<Record<string, unknown>>;
14
+ /** Column descriptions; when omitted, inferred from the first row's keys. */
15
+ columns?: DataTableColumn[];
16
+ /** Initial sort, e.g. "dueDate asc" or "amountCents desc". */
17
+ sortBy?: string;
18
+ /** Hard cap on rows shown. */
19
+ limit?: number;
20
+ /** Column keys to expose as distinct-value filter dropdowns. */
21
+ filterableBy?: string[];
22
+ /** Show a search box filtering across all columns. */
23
+ searchable?: boolean;
24
+ /** Page size; enables pagination when set. */
25
+ paginate?: number;
26
+ /** Text shown when there are no rows (the named-query empty state). */
27
+ emptyState?: string;
28
+ /** Optional table caption. */
29
+ caption?: string;
30
+ }
31
+ export declare function DataTable(props: DataTableProps): import("react").JSX.Element;
32
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/kit/data/data-table.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAI7D,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAeD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,+BAuP9C"}
@@ -0,0 +1,153 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * DataTable — the flagship (W2 §The Kit). TanStack Table internals; the model
4
+ * only fills props. It sorts, filters, searches, paginates, resolves dot-path
5
+ * column keys, formats each cell by its `format` token, and shows a named-query
6
+ * empty state — none of which the model has to author.
7
+ */
8
+ import { useMemo, useState } from "react";
9
+ import { flexRender, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, useReactTable, } from "@tanstack/react-table";
10
+ import { applyFormat } from "../format.js";
11
+ import { font, t } from "../tokens.js";
12
+ import { humanizeEnum } from "../values.js";
13
+ /** Resolve a dot-path against a row. */
14
+ function resolvePath(row, path) {
15
+ return path.split(".").reduce((acc, key) => {
16
+ if (acc && typeof acc === "object")
17
+ return acc[key];
18
+ return undefined;
19
+ }, row);
20
+ }
21
+ const alignCss = (a) => a === "end" ? "right" : a === "center" ? "center" : "left";
22
+ const cellPad = "var(--vendo-density-table-padding, 10px 12px)";
23
+ export function DataTable(props) {
24
+ const { rows: rawRows, sortBy, limit, filterableBy, searchable = false, paginate, emptyState = "No data", caption, } = props;
25
+ // W3 — fail SOFT on missing data: a failed/pending query resolves its
26
+ // binding to undefined at runtime; the table's named-query empty state is
27
+ // the honest render, never a crash.
28
+ const rows = useMemo(() => (Array.isArray(rawRows) ? rawRows : []), [rawRows]);
29
+ const columns = useMemo(() => props.columns ?? Object.keys(rows[0] ?? {}).map((key) => ({ key })), [props.columns, rows]);
30
+ const data = useMemo(() => (typeof limit === "number" && limit >= 0 ? rows.slice(0, limit) : rows), [rows, limit]);
31
+ const initialSorting = useMemo(() => {
32
+ if (!sortBy)
33
+ return [];
34
+ const [id, dir] = sortBy.trim().split(/\s+/);
35
+ if (!id)
36
+ return [];
37
+ return [{ id, desc: (dir ?? "asc").toLowerCase() === "desc" }];
38
+ }, [sortBy]);
39
+ const tanstackColumns = useMemo(() => columns.map((col) => ({
40
+ id: col.key,
41
+ accessorFn: (row) => resolvePath(row, col.key),
42
+ header: col.label ?? humanizeEnum(col.key.split(".").pop() ?? col.key),
43
+ cell: (ctx) => {
44
+ const raw = ctx.getValue();
45
+ const formatted = applyFormat(raw, col.format ?? "text");
46
+ if (formatted === null)
47
+ return _jsx("span", { style: { color: t.muted }, children: "\u2014" });
48
+ return formatted;
49
+ },
50
+ filterFn: "includesString",
51
+ })), [columns]);
52
+ const [sorting, setSorting] = useState(initialSorting);
53
+ const [globalFilter, setGlobalFilter] = useState("");
54
+ const [columnFilters, setColumnFilters] = useState([]);
55
+ const table = useReactTable({
56
+ data,
57
+ columns: tanstackColumns,
58
+ state: { sorting, globalFilter, columnFilters },
59
+ onSortingChange: setSorting,
60
+ onGlobalFilterChange: setGlobalFilter,
61
+ onColumnFiltersChange: setColumnFilters,
62
+ globalFilterFn: "includesString",
63
+ getCoreRowModel: getCoreRowModel(),
64
+ getSortedRowModel: getSortedRowModel(),
65
+ getFilteredRowModel: getFilteredRowModel(),
66
+ ...(typeof paginate === "number" && paginate > 0
67
+ ? { getPaginationRowModel: getPaginationRowModel(), initialState: { pagination: { pageSize: paginate, pageIndex: 0 } } }
68
+ : {}),
69
+ });
70
+ const distinctValues = useMemo(() => {
71
+ const map = new Map();
72
+ for (const key of filterableBy ?? []) {
73
+ const set = new Set();
74
+ for (const row of data) {
75
+ const v = resolvePath(row, key);
76
+ if (v !== null && v !== undefined && v !== "")
77
+ set.add(String(v));
78
+ }
79
+ map.set(key, [...set].sort());
80
+ }
81
+ return map;
82
+ }, [filterableBy, data]);
83
+ const columnLabel = (key) => columns.find((c) => c.key === key)?.label ?? humanizeEnum(key.split(".").pop() ?? key);
84
+ const bodyRows = table.getRowModel().rows;
85
+ return (_jsxs("div", { "data-kit": "DataTable", style: { ...font, display: "flex", flexDirection: "column", gap: "var(--vendo-density-content-gap, 10px)" }, children: [(searchable || (filterableBy && filterableBy.length > 0)) && (_jsxs("div", { style: { display: "flex", flexWrap: "wrap", gap: "var(--vendo-density-inline-gap, 7px)", alignItems: "center" }, children: [searchable && (_jsx("input", { type: "search", role: "searchbox", "aria-label": "Search table", placeholder: "Search\u2026", value: globalFilter, onChange: (e) => setGlobalFilter(e.target.value), style: {
86
+ ...font,
87
+ minHeight: "var(--vendo-density-control-height, 38px)",
88
+ border: `1px solid ${t.border}`,
89
+ borderRadius: t.radiusSmall,
90
+ background: t.surface,
91
+ padding: "var(--vendo-density-control-padding, 9px 12px)",
92
+ flex: "1 1 180px",
93
+ } })), (filterableBy ?? []).map((key) => (_jsxs("select", { "aria-label": `Filter by ${columnLabel(key)}`, value: columnFilters.find((f) => f.id === key)?.value ?? "", onChange: (e) => {
94
+ const value = e.target.value;
95
+ setColumnFilters((prev) => {
96
+ const rest = prev.filter((f) => f.id !== key);
97
+ return value ? [...rest, { id: key, value }] : rest;
98
+ });
99
+ }, style: {
100
+ ...font,
101
+ minHeight: "var(--vendo-density-control-height, 38px)",
102
+ border: `1px solid ${t.border}`,
103
+ borderRadius: t.radiusSmall,
104
+ background: t.surface,
105
+ padding: "6px 10px",
106
+ cursor: "pointer",
107
+ }, children: [_jsxs("option", { value: "", children: ["All ", columnLabel(key)] }), (distinctValues.get(key) ?? []).map((v) => (_jsx("option", { value: v, children: v }, v)))] }, key)))] })), _jsx("div", { style: {
108
+ width: "100%",
109
+ overflowX: "auto",
110
+ border: `1px solid ${t.border}`,
111
+ borderRadius: t.radiusMedium,
112
+ background: t.surface,
113
+ }, children: _jsxs("table", { style: { width: "100%", borderCollapse: "collapse" }, children: [caption ? (_jsx("caption", { style: { padding: cellPad, textAlign: "left", fontWeight: 650 }, children: caption })) : null, _jsx("thead", { children: table.getHeaderGroups().map((hg) => (_jsx("tr", { style: { background: `color-mix(in srgb, ${t.background} 72%, ${t.surface})` }, children: hg.headers.map((header) => {
114
+ const col = columns.find((c) => c.key === header.column.id);
115
+ const sorted = header.column.getIsSorted();
116
+ return (_jsxs("th", { scope: "col", onClick: header.column.getToggleSortingHandler(), style: {
117
+ color: t.muted,
118
+ borderBottom: `1px solid ${t.border}`,
119
+ fontSize: "0.78em",
120
+ fontWeight: 700,
121
+ letterSpacing: "0.045em",
122
+ padding: cellPad,
123
+ textAlign: alignCss(col?.align),
124
+ textTransform: "uppercase",
125
+ cursor: "pointer",
126
+ userSelect: "none",
127
+ whiteSpace: "nowrap",
128
+ }, children: [flexRender(header.column.columnDef.header, header.getContext()), sorted === "asc" ? " ▲" : sorted === "desc" ? " ▼" : ""] }, header.id));
129
+ }) }, hg.id))) }), _jsx("tbody", { children: bodyRows.length === 0 ? (_jsx("tr", { children: _jsx("td", { colSpan: Math.max(1, columns.length), style: { color: t.muted, padding: "calc(var(--vendo-font-size, 15px) * 1.6) 12px", textAlign: "center" }, children: emptyState }) })) : (bodyRows.map((row, rowIndex) => (_jsx("tr", { children: row.getVisibleCells().map((cell) => {
130
+ const col = columns.find((c) => c.key === cell.column.id);
131
+ return (_jsx("td", { style: {
132
+ borderBottom: rowIndex === bodyRows.length - 1 ? 0 : `1px solid ${t.border}`,
133
+ padding: cellPad,
134
+ textAlign: alignCss(col?.align),
135
+ fontVariantNumeric: col?.format && col.format !== "text" ? "tabular-nums" : undefined,
136
+ }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id));
137
+ }) }, row.id)))) })] }) }), typeof paginate === "number" && paginate > 0 && table.getPageCount() > 1 && (_jsxs("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: "var(--vendo-density-inline-gap, 7px)" }, children: [_jsxs("span", { style: { color: t.muted, fontSize: "0.85em" }, children: ["Page ", table.getState().pagination.pageIndex + 1, " of ", table.getPageCount()] }), _jsxs("div", { style: { display: "flex", gap: "var(--vendo-density-inline-gap, 7px)" }, children: [_jsx(PageButton, { disabled: !table.getCanPreviousPage(), onClick: () => table.previousPage(), children: "Previous" }), _jsx(PageButton, { disabled: !table.getCanNextPage(), onClick: () => table.nextPage(), children: "Next" })] })] }))] }));
138
+ }
139
+ function PageButton({ disabled, onClick, children }) {
140
+ return (_jsx("button", { type: "button", disabled: disabled, onClick: onClick, style: {
141
+ ...font,
142
+ border: `1px solid ${t.border}`,
143
+ borderRadius: t.radiusSmall,
144
+ background: t.surface,
145
+ color: t.text,
146
+ cursor: disabled ? "not-allowed" : "pointer",
147
+ opacity: disabled ? 0.5 : 1,
148
+ fontSize: "0.85em",
149
+ fontWeight: 600,
150
+ padding: "6px 12px",
151
+ }, children: children }));
152
+ }
153
+ //# sourceMappingURL=data-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.js","sourceRoot":"","sources":["../../../src/kit/data/data-table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** Stat — a KPI/metric summary with semantic formatting (W2 §The Kit). */
2
+ import { type ValueFormat } from "../format.js";
3
+ export interface StatProps {
4
+ /** Metric name. */
5
+ label: string;
6
+ /** Raw value; formatted by `format` (money takes cents). */
7
+ value: number | string;
8
+ /** Value-tier format. */
9
+ format?: ValueFormat;
10
+ /** A trend / delta caption, e.g. "+12% MoM". */
11
+ trend?: string;
12
+ tone?: "default" | "accent" | "danger";
13
+ }
14
+ export declare function Stat({ label, value, format, trend, tone }: StatProps): import("react").JSX.Element;
15
+ //# sourceMappingURL=stat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.d.ts","sourceRoot":"","sources":["../../../src/kit/data/stat.tsx"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG7D,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,yBAAyB;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACxC;AAED,wBAAgB,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAe,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE,SAAS,+BAuCzF"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Stat — a KPI/metric summary with semantic formatting (W2 §The Kit). */
3
+ import { applyFormat } from "../format.js";
4
+ import { font, t } from "../tokens.js";
5
+ export function Stat({ label, value, format = "text", trend, tone = "default" }) {
6
+ const emphasis = tone === "accent" ? t.accent : tone === "danger" ? t.danger : t.text;
7
+ const formatted = applyFormat(value, format);
8
+ return (_jsxs("article", { "data-kit": "Stat", "data-tone": tone, "aria-label": label, style: {
9
+ ...font,
10
+ display: "flex",
11
+ flexDirection: "column",
12
+ gap: "var(--vendo-density-field-gap, 6px)",
13
+ minWidth: 0,
14
+ borderLeft: `3px solid ${emphasis}`,
15
+ borderRadius: t.radiusSmall,
16
+ background: `color-mix(in srgb, ${t.surface} 90%, ${t.background})`,
17
+ padding: "var(--vendo-density-stat-padding, 12px 14px)",
18
+ }, children: [_jsx("span", { style: { color: t.muted, fontSize: "0.82em", fontWeight: 650 }, children: label }), _jsx("strong", { style: {
19
+ color: emphasis,
20
+ fontFamily: t.headingFamily,
21
+ fontSize: "calc(var(--vendo-font-size, 15px) * 1.65)",
22
+ fontWeight: 700,
23
+ letterSpacing: "-0.025em",
24
+ lineHeight: 1.12,
25
+ fontVariantNumeric: "tabular-nums",
26
+ }, children: formatted ?? "—" }), trend ? (_jsx("span", { style: { color: t.muted, fontSize: "0.8em", lineHeight: 1.35 }, children: trend })) : null] }));
27
+ }
28
+ //# sourceMappingURL=stat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat.js","sourceRoot":"","sources":["../../../src/kit/data/stat.tsx"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAcvC,MAAM,UAAU,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,EAAa;IACxF,MAAM,QAAQ,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,OAAO,CACL,+BACW,MAAM,eACJ,IAAI,gBACH,KAAK,EACjB,KAAK,EAAE;YACL,GAAG,IAAI;YACP,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,GAAG,EAAE,qCAAqC;YAC1C,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,aAAa,QAAQ,EAAE;YACnC,YAAY,EAAE,CAAC,CAAC,WAAW;YAC3B,UAAU,EAAE,sBAAsB,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,UAAU,GAAG;YACnE,OAAO,EAAE,8CAA8C;SACxD,aAED,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,YAAG,KAAK,GAAQ,EACpF,iBACE,KAAK,EAAE;oBACL,KAAK,EAAE,QAAQ;oBACf,UAAU,EAAE,CAAC,CAAC,aAAa;oBAC3B,QAAQ,EAAE,2CAA2C;oBACrD,UAAU,EAAE,GAAG;oBACf,aAAa,EAAE,UAAU;oBACzB,UAAU,EAAE,IAAI;oBAChB,kBAAkB,EAAE,cAAc;iBACnC,YAEA,SAAS,IAAI,GAAG,GACV,EACR,KAAK,CAAC,CAAC,CAAC,CACP,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,YAAG,KAAK,GAAQ,CACrF,CAAC,CAAC,CAAC,IAAI,IACA,CACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Accordion — self-managing collapsible sections (W2 §The Kit). */
2
+ import { type ReactNode } from "react";
3
+ export interface AccordionItem {
4
+ label: string;
5
+ content: ReactNode;
6
+ }
7
+ export interface AccordionProps {
8
+ items: AccordionItem[];
9
+ /** Allow more than one section open at once. */
10
+ multiple?: boolean;
11
+ /** Indices open on first render. */
12
+ defaultOpen?: number[];
13
+ }
14
+ export declare function Accordion({ items, multiple, defaultOpen }: AccordionProps): import("react").JSX.Element;
15
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/kit/feedback/accordion.tsx"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAgB,EAAE,WAAgB,EAAE,EAAE,cAAc,+BAkDtF"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /** Accordion — self-managing collapsible sections (W2 §The Kit). */
3
+ import { useState } from "react";
4
+ import { font, t } from "../tokens.js";
5
+ export function Accordion({ items, multiple = false, defaultOpen = [] }) {
6
+ const [open, setOpen] = useState(new Set(defaultOpen));
7
+ const toggle = (i) => setOpen((prev) => {
8
+ const next = new Set(multiple ? prev : []);
9
+ if (prev.has(i))
10
+ next.delete(i);
11
+ else
12
+ next.add(i);
13
+ return next;
14
+ });
15
+ return (_jsx("div", { "data-kit": "Accordion", style: { ...font, border: `1px solid ${t.border}`, borderRadius: t.radiusMedium, overflow: "hidden", background: t.surface }, children: items.map((item, i) => {
16
+ const isOpen = open.has(i);
17
+ return (_jsxs("div", { style: { borderTop: i === 0 ? 0 : `1px solid ${t.border}` }, children: [_jsxs("button", { type: "button", "aria-expanded": isOpen, onClick: () => toggle(i), style: {
18
+ ...font,
19
+ display: "flex",
20
+ width: "100%",
21
+ alignItems: "center",
22
+ justifyContent: "space-between",
23
+ gap: 8,
24
+ border: 0,
25
+ background: "transparent",
26
+ cursor: "pointer",
27
+ fontWeight: 600,
28
+ padding: "var(--vendo-density-card-padding, 12px 14px)",
29
+ textAlign: "left",
30
+ }, children: [item.label, _jsx("span", { "aria-hidden": "true", style: { color: t.muted, transform: isOpen ? "rotate(90deg)" : "none", transition: `transform ${t.motionDuration} ${t.motionEasing}` }, children: "\u203A" })] }), isOpen ? (_jsx("div", { style: { padding: "0 14px var(--vendo-density-card-padding, 14px)", color: t.text }, children: item.content })) : null] }, `${item.label}-${i}`));
31
+ }) }));
32
+ }
33
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/kit/feedback/accordion.tsx"],"names":[],"mappings":";AAAA,oEAAoE;AACpE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAevC,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,EAAE,EAAkB;IACrF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAC3B,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;YAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACL,OAAO,CACL,0BACW,WAAW,EACpB,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,YAE3H,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,CACL,eAAgC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,aACzF,kBACE,IAAI,EAAC,QAAQ,mBACE,MAAM,EACrB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE;4BACL,GAAG,IAAI;4BACP,OAAO,EAAE,MAAM;4BACf,KAAK,EAAE,MAAM;4BACb,UAAU,EAAE,QAAQ;4BACpB,cAAc,EAAE,eAAe;4BAC/B,GAAG,EAAE,CAAC;4BACN,MAAM,EAAE,CAAC;4BACT,UAAU,EAAE,aAAa;4BACzB,MAAM,EAAE,SAAS;4BACjB,UAAU,EAAE,GAAG;4BACf,OAAO,EAAE,8CAA8C;4BACvD,SAAS,EAAE,MAAM;yBAClB,aAEA,IAAI,CAAC,KAAK,EACX,8BAAkB,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,uBAExJ,IACA,EACR,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,YAAG,IAAI,CAAC,OAAO,GAAO,CAC/G,CAAC,CAAC,CAAC,IAAI,KA3BA,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CA4BxB,CACP,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Callout — a toned info/success/warning/danger notice (W2 §The Kit).
3
+ * Distinct from Disclaimer: Callout highlights real information; Disclaimer is
4
+ * the honesty arm for when no tool backs the ask.
5
+ */
6
+ import type { PropsWithChildren } from "react";
7
+ export type CalloutTone = "info" | "success" | "warning" | "danger";
8
+ export interface CalloutProps {
9
+ tone?: CalloutTone;
10
+ title?: string;
11
+ }
12
+ export declare function Callout({ tone, title, children }: PropsWithChildren<CalloutProps>): import("react").JSX.Element;
13
+ //# sourceMappingURL=callout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.d.ts","sourceRoot":"","sources":["../../../src/kit/feedback/callout.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AASpE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,OAAO,CAAC,EAAE,IAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,YAAY,CAAC,+BA6B1F"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { font, t } from "../tokens.js";
3
+ const TONE = {
4
+ info: { accent: t.accent, icon: "ⓘ" },
5
+ success: { accent: "#1e7f53", icon: "✓" },
6
+ warning: { accent: "#b8860b", icon: "▲" },
7
+ danger: { accent: t.danger, icon: "✕" },
8
+ };
9
+ export function Callout({ tone = "info", title, children }) {
10
+ const { accent, icon } = TONE[tone];
11
+ return (_jsxs("div", { "data-kit": "Callout", "data-tone": tone, role: "status", style: {
12
+ ...font,
13
+ display: "flex",
14
+ gap: "var(--vendo-density-inline-gap, 10px)",
15
+ alignItems: "flex-start",
16
+ borderLeft: `3px solid ${accent}`,
17
+ border: `1px solid color-mix(in srgb, ${accent} 25%, ${t.border})`,
18
+ borderLeftWidth: 3,
19
+ borderRadius: t.radiusMedium,
20
+ background: `color-mix(in srgb, ${accent} 7%, ${t.surface})`,
21
+ padding: "var(--vendo-density-card-padding, 12px 14px)",
22
+ }, children: [_jsx("span", { "aria-hidden": "true", style: { color: accent, fontWeight: 700, lineHeight: 1.4 }, children: icon }), _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 3 }, children: [title ? _jsx("span", { style: { fontWeight: 650, letterSpacing: "-0.01em" }, children: title }) : null, _jsx("span", { style: { color: t.muted, fontSize: "0.92em", lineHeight: 1.45 }, children: children })] })] }));
23
+ }
24
+ //# sourceMappingURL=callout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.js","sourceRoot":"","sources":["../../../src/kit/feedback/callout.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,IAAI,GAA0D;IAClE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;IACrC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;IACzC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;IACzC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;CACxC,CAAC;AAOF,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAmC;IACzF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,CACL,2BACW,SAAS,eACP,IAAI,EACf,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;YACL,GAAG,IAAI;YACP,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,uCAAuC;YAC5C,UAAU,EAAE,YAAY;YACxB,UAAU,EAAE,aAAa,MAAM,EAAE;YACjC,MAAM,EAAE,gCAAgC,MAAM,SAAS,CAAC,CAAC,MAAM,GAAG;YAClE,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,UAAU,EAAE,sBAAsB,MAAM,QAAQ,CAAC,CAAC,OAAO,GAAG;YAC5D,OAAO,EAAE,8CAA8C;SACxD,aAED,8BAAkB,MAAM,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,YAChF,IAAI,GACA,EACP,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC7D,KAAK,CAAC,CAAC,CAAC,eAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,YAAG,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC1F,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,YAAG,QAAQ,GAAQ,IACpF,IACF,CACP,CAAC;AACJ,CAAC"}