@lostgradient/cinder 0.7.0 → 0.9.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 (279) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +7 -2
  3. package/components.json +59 -15
  4. package/dist/components/_internal/command-list-context.d.ts +3 -3
  5. package/dist/components/_internal/create-command-list-state.svelte.d.ts +11 -11
  6. package/dist/components/access-gate/index.js +201 -126
  7. package/dist/components/approval-card/approval-card-actions.svelte.d.ts +16 -0
  8. package/dist/components/approval-card/approval-card-state.d.ts +65 -0
  9. package/dist/components/approval-card/approval-card.css +269 -92
  10. package/dist/components/approval-card/approval-card.schema.js +10 -31
  11. package/dist/components/approval-card/approval-card.svelte.d.ts +3 -3
  12. package/dist/components/approval-card/approval-card.types.d.ts +14 -28
  13. package/dist/components/approval-card/index.d.ts +1 -1
  14. package/dist/components/approval-card/index.js +4268 -2884
  15. package/dist/components/card/card.css +5 -0
  16. package/dist/components/card/card.schema.js +2 -2
  17. package/dist/components/card/card.types.d.ts +2 -2
  18. package/dist/components/card/index.js +2 -1
  19. package/dist/components/chat/chat.schema.js +48 -1
  20. package/dist/components/chat/chat.svelte.d.ts +6 -2
  21. package/dist/components/chat/chat.types.d.ts +37 -0
  22. package/dist/components/chat/container/chat.svelte.d.ts +6 -2
  23. package/dist/components/chat/index.d.ts +3 -3
  24. package/dist/components/chat/index.js +1099 -4865
  25. package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
  26. package/dist/components/chat/input/chat-input.svelte.d.ts +24 -0
  27. package/dist/components/chat/input/index.d.ts +1 -0
  28. package/dist/components/chat-composer-popover/chat-composer-popover-filter.d.ts +11 -0
  29. package/dist/components/chat-composer-popover/chat-composer-popover.css +7 -0
  30. package/dist/components/chat-composer-popover/chat-composer-popover.css.d.ts +1 -0
  31. package/dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts +3 -0
  32. package/dist/components/chat-composer-popover/chat-composer-popover.schema.js +150 -0
  33. package/dist/components/chat-composer-popover/chat-composer-popover.svelte.d.ts +46 -0
  34. package/dist/components/chat-composer-popover/chat-composer-popover.types.d.ts +77 -0
  35. package/dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts +2 -0
  36. package/dist/components/chat-composer-popover/chat-composer-popover.variables.js +61 -0
  37. package/dist/components/chat-composer-popover/index.d.ts +6 -0
  38. package/dist/components/chat-composer-popover/index.js +3285 -0
  39. package/dist/components/chat-conversation-header/index.js +1627 -5600
  40. package/dist/components/chat-conversation-list/index.js +15 -3988
  41. package/dist/components/code-block/code-block.schema.js +5 -1
  42. package/dist/components/code-block/code-block.types.d.ts +6 -0
  43. package/dist/components/code-block/index.js +4 -4
  44. package/dist/components/command-item/index.js +7 -6
  45. package/dist/components/command-menu/command-menu.schema.js +5 -1
  46. package/dist/components/command-menu/command-menu.types.d.ts +2 -0
  47. package/dist/components/command-menu/index.js +48 -19
  48. package/dist/components/command-palette/index.js +40 -14
  49. package/dist/components/event-stream-viewer/index.js +44 -44
  50. package/dist/components/experimental/json-viewer/index.js +44 -44
  51. package/dist/components/json-schema-editor/index.js +5 -2
  52. package/dist/components/json-viewer/index.js +44 -44
  53. package/dist/components/json-viewer/json-viewer.css +10 -6
  54. package/dist/components/navigation-bar/index.js +44 -6
  55. package/dist/components/payload-inspector/index.d.ts +1 -1
  56. package/dist/components/payload-inspector/index.js +306 -1422
  57. package/dist/components/payload-inspector/payload-inspector.css +15 -75
  58. package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
  59. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
  60. package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
  61. package/dist/components/sidebar/index.js +6 -3
  62. package/dist/components/sidebar/sidebar.css +4 -0
  63. package/dist/components/tab/index.js +5 -2
  64. package/dist/components/tab/tab.schema.js +7 -3
  65. package/dist/components/tab/tab.svelte.d.ts +2 -1
  66. package/dist/components/tab/tab.types.d.ts +8 -2
  67. package/dist/components/tabs/index.js +5 -2
  68. package/dist/components/team-section/index.js +2 -1
  69. package/dist/components/testimonial-section/index.js +2 -1
  70. package/dist/index.d.ts +4 -2
  71. package/dist/index.js +24169 -27821
  72. package/dist/server/components/access-gate/index.js +2 -1
  73. package/dist/server/components/accordion/index.js +2 -2
  74. package/dist/server/components/alert-dialog/index.js +2 -2
  75. package/dist/server/components/approval-card/index.js +15 -19
  76. package/dist/server/components/autocomplete/index.js +7 -7
  77. package/dist/server/components/avatar-group/index.js +5 -5
  78. package/dist/server/components/button-group/index.js +3 -5
  79. package/dist/server/components/card/index.js +2 -2
  80. package/dist/server/components/chat/index.js +14 -11
  81. package/dist/server/components/chat-composer-popover/index.js +26 -0
  82. package/dist/server/components/chat-conversation-header/index.js +9 -10
  83. package/dist/server/components/chat-conversation-list/index.js +4 -5
  84. package/dist/server/components/checkbox/index.js +3 -3
  85. package/dist/server/components/choice-grid/index.js +2 -2
  86. package/dist/server/components/code-block/index.js +2 -2
  87. package/dist/server/components/color-field/index.js +3 -3
  88. package/dist/server/components/combobox/index.js +6 -6
  89. package/dist/server/components/command-item/index.js +5 -3
  90. package/dist/server/components/command-menu/index.js +6 -4
  91. package/dist/server/components/command-palette/index.js +2 -2
  92. package/dist/server/components/confirm-dialog/index.js +2 -2
  93. package/dist/server/components/context-menu/index.js +5 -5
  94. package/dist/server/components/data-table/index.js +5 -5
  95. package/dist/server/components/date-picker/index.js +6 -6
  96. package/dist/server/components/date-range-field/index.js +7 -7
  97. package/dist/server/components/description-list/index.js +3 -5
  98. package/dist/server/components/diff-viewer/index.js +7 -7
  99. package/dist/server/components/drawer/index.js +3 -3
  100. package/dist/server/components/dropdown/index.js +4 -4
  101. package/dist/server/components/event-stream-viewer/index.js +2 -2
  102. package/dist/server/components/experimental/json-viewer/index.js +2 -2
  103. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  104. package/dist/server/components/hover-card/index.js +1 -1
  105. package/dist/server/components/input/index.js +3 -3
  106. package/dist/server/components/json-schema-editor/index.js +22 -22
  107. package/dist/server/components/json-viewer/index.js +2 -2
  108. package/dist/server/components/markdown-editor/index.js +13 -13
  109. package/dist/server/components/modal/index.js +1 -1
  110. package/dist/server/components/multi-select/index.js +1 -1
  111. package/dist/server/components/navigation-bar/index.js +1 -1
  112. package/dist/server/components/newsletter-section/index.js +3 -3
  113. package/dist/server/components/payload-inspector/index.js +4 -16
  114. package/dist/server/components/popover/index.js +5 -5
  115. package/dist/server/components/review-editor/index.js +25 -25
  116. package/dist/server/components/run-step-timeline/index.js +2 -2
  117. package/dist/server/components/schema-form/index.js +4 -4
  118. package/dist/server/components/secret-value-field/index.js +3 -5
  119. package/dist/server/components/segment/index.js +3 -3
  120. package/dist/server/components/segmented-control/index.js +4 -4
  121. package/dist/server/components/selection-popover/index.js +4 -4
  122. package/dist/server/components/sheet/index.js +2 -2
  123. package/dist/server/components/sidebar/index.js +3 -3
  124. package/dist/server/components/tab/index.js +2 -2
  125. package/dist/server/components/table/index.js +3 -3
  126. package/dist/server/components/tabs/index.js +4 -4
  127. package/dist/server/components/tag-input/index.js +3 -3
  128. package/dist/server/components/team-section/index.js +8 -8
  129. package/dist/server/components/testimonial-section/index.js +2 -2
  130. package/dist/server/components/toggle/index.js +2 -2
  131. package/dist/server/components/tooltip/index.js +1 -1
  132. package/dist/server/index.js +160 -149
  133. package/dist/server/{index.server-cbtg8rq5.js → index.server-0atyznp7.js} +5 -5
  134. package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
  135. package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
  136. package/dist/server/{index.server-jync915v.js → index.server-2dga5yzr.js} +25 -25
  137. package/dist/server/index.server-2hqrv7ca.js +9 -0
  138. package/dist/server/{index.server-qwknp759.js → index.server-2qj6s2mh.js} +7 -4
  139. package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
  140. package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
  141. package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
  142. package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
  143. package/dist/server/{index.server-zeqv7nrz.js → index.server-5tf22d6e.js} +43 -6
  144. package/dist/server/index.server-67qgdypc.js +9 -0
  145. package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
  146. package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
  147. package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
  148. package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
  149. package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
  150. package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
  151. package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
  152. package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
  153. package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
  154. package/dist/server/{index.server-j3ddzcaa.js → index.server-c6pe4kaf.js} +6 -6
  155. package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
  156. package/dist/server/{index.server-qfa2rxzx.js → index.server-dg83ke3k.js} +3 -5
  157. package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
  158. package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
  159. package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
  160. package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
  161. package/dist/server/{index.server-ejyf7e48.js → index.server-fy068yne.js} +1 -1
  162. package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
  163. package/dist/server/index.server-gkazv439.js +576 -0
  164. package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
  165. package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
  166. package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
  167. package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
  168. package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
  169. package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
  170. package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
  171. package/dist/server/{index.server-mehav5vs.js → index.server-jxg42jpz.js} +4 -4
  172. package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
  173. package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
  174. package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
  175. package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
  176. package/dist/server/index.server-m0ezemav.js +170 -0
  177. package/dist/server/index.server-m191rm44.js +79 -0
  178. package/dist/server/{index.server-f23vtaw4.js → index.server-marjz8ps.js} +6 -6
  179. package/dist/server/index.server-mqt1ngqw.js +250 -0
  180. package/dist/server/{index.server-s9khh4ry.js → index.server-mzzb7dnm.js} +3 -5
  181. package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
  182. package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
  183. package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
  184. package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
  185. package/dist/server/{index.server-gxf0d1p5.js → index.server-q7w4jw89.js} +2 -2
  186. package/dist/server/{index.server-bvmwnjx6.js → index.server-qh9qzd5t.js} +186 -23
  187. package/dist/server/{index.server-pxg74pyp.js → index.server-qk1h0n02.js} +4 -4
  188. package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
  189. package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
  190. package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
  191. package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
  192. package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
  193. package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
  194. package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
  195. package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
  196. package/dist/server/index.server-xtjjmsyq.js +315 -0
  197. package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
  198. package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
  199. package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
  200. package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
  201. package/dist/server/{index.server-atjc1qcq.js → index.server-yz4k36cw.js} +1 -1
  202. package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
  203. package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
  204. package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
  205. package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
  206. package/package.json +42 -6
  207. package/src/components/_internal/command-list-context.ts +3 -3
  208. package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
  209. package/src/components/approval-card/approval-card-actions.svelte +168 -0
  210. package/src/components/approval-card/approval-card-state.ts +152 -1
  211. package/src/components/approval-card/approval-card.css +269 -92
  212. package/src/components/approval-card/approval-card.examples.json +3 -3
  213. package/src/components/approval-card/approval-card.schema.json +9 -30
  214. package/src/components/approval-card/approval-card.schema.ts +13 -31
  215. package/src/components/approval-card/approval-card.svelte +176 -470
  216. package/src/components/approval-card/approval-card.types.ts +15 -28
  217. package/src/components/approval-card/index.ts +1 -0
  218. package/src/components/card/card.css +5 -0
  219. package/src/components/card/card.schema.json +1 -1
  220. package/src/components/card/card.schema.ts +1 -1
  221. package/src/components/card/card.svelte +1 -0
  222. package/src/components/card/card.types.ts +2 -2
  223. package/src/components/chat/chat.schema.json +40 -0
  224. package/src/components/chat/chat.schema.ts +49 -0
  225. package/src/components/chat/chat.svelte +20 -0
  226. package/src/components/chat/chat.types.ts +38 -0
  227. package/src/components/chat/container/chat.svelte +82 -3
  228. package/src/components/chat/index.ts +15 -3
  229. package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
  230. package/src/components/chat/input/chat-input.svelte +30 -3
  231. package/src/components/chat/input/index.ts +5 -0
  232. package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
  233. package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
  234. package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
  235. package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
  236. package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
  237. package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
  238. package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
  239. package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
  240. package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
  241. package/src/components/chat-composer-popover/index.ts +19 -0
  242. package/src/components/code-block/code-block.schema.json +4 -0
  243. package/src/components/code-block/code-block.schema.ts +5 -0
  244. package/src/components/code-block/code-block.svelte +3 -3
  245. package/src/components/code-block/code-block.types.ts +6 -0
  246. package/src/components/command-item/command-item.svelte +7 -6
  247. package/src/components/command-menu/command-menu.schema.json +4 -0
  248. package/src/components/command-menu/command-menu.schema.ts +4 -0
  249. package/src/components/command-menu/command-menu.svelte +16 -5
  250. package/src/components/command-menu/command-menu.types.ts +2 -0
  251. package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
  252. package/src/components/json-viewer/json-viewer.css +10 -6
  253. package/src/components/navigation-bar/navigation-bar.svelte +49 -7
  254. package/src/components/payload-inspector/index.ts +0 -2
  255. package/src/components/payload-inspector/payload-inspector.css +15 -75
  256. package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
  257. package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
  258. package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
  259. package/src/components/payload-inspector/payload-inspector.svelte +46 -239
  260. package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
  261. package/src/components/sidebar/sidebar.css +4 -0
  262. package/src/components/sidebar/sidebar.svelte +6 -3
  263. package/src/components/tab/tab.schema.json +6 -2
  264. package/src/components/tab/tab.schema.ts +8 -2
  265. package/src/components/tab/tab.svelte +9 -5
  266. package/src/components/tab/tab.types.ts +8 -2
  267. package/src/index.ts +18 -5
  268. package/src/styles/components.css +1 -0
  269. package/dist/server/index-49we2xfs.js +0 -344
  270. package/dist/server/index-8fhvxk30.js +0 -265
  271. package/dist/server/index-x2ysg8ds.js +0 -388
  272. package/dist/server/index.server-20j0jh30.js +0 -9
  273. package/dist/server/index.server-dc35kh7d.js +0 -1835
  274. package/dist/server/index.server-kd4b0342.js +0 -607
  275. package/dist/server/index.server-n5cdmsz4.js +0 -30
  276. package/dist/server/index.server-rjap4k7y.js +0 -1389
  277. package/dist/server/index.server-vt6sn9y4.js +0 -447
  278. package/dist/server/index.server-w63n618v.js +0 -9
  279. package/dist/server/index.server-y2pa1k46.js +0 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @lostgradient/cinder
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#693](https://github.com/stevekinney/cinder/pull/693) [`124e7b2`](https://github.com/stevekinney/cinder/commit/124e7b2740d8243e434c1eb831e2c760dab6265a) Thanks [@stevekinney](https://github.com/stevekinney)! - Move `conversationalist` from a transitive dependency to a required peer
8
+ dependency. Consumers that use Chat or Cinder's conversation helpers must
9
+ install `conversationalist@^0.2.1` and `zod@4.4.1` directly so the application
10
+ and Cinder share one conversation type/schema instance.
11
+
12
+ ## 0.8.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [`9686390`](https://github.com/stevekinney/cinder/commit/9686390483ce91eebe82f2f28852e436c1f2724a) Thanks [@stevekinney](https://github.com/stevekinney)! - `Chat` composer public API: added `clearInput()`, `getComposerValue()`, and an `oncomposerinput` callback prop so consumers can read, clear, and observe the composer's plain-text value without reaching into `.chat-input-editor` DOM directly (useful for building slash-command, mention, or autocomplete UX layered on top of the composer).
17
+
18
+ Also re-exported the `ChatAttachment` type from the public `@lostgradient/cinder/chat` entry — previously consumers had to derive it from `ChatSubmitEvent['attachments'][number]`.
19
+
20
+ ### Patch Changes
21
+
22
+ - [#675](https://github.com/stevekinney/cinder/pull/675) [`e55561d`](https://github.com/stevekinney/cinder/commit/e55561db6d348573e29df711c095b2ec18e197ef) Thanks [@stevekinney](https://github.com/stevekinney)! - Close a collapsed top NavigationBar mobile menu after enabled item activation.
23
+
24
+ - [#667](https://github.com/stevekinney/cinder/pull/667) [`d9ce2c3`](https://github.com/stevekinney/cinder/commit/d9ce2c3660805d8b6a7e964f3f671174c61ca819) Thanks [@stevekinney](https://github.com/stevekinney)! - Internal build and validation overhaul: content-hash build caching (with the cache marker excluded from the published tarball), global test cleanup registration, and a lint script split into `lint` and `lint:invariants`.
25
+
3
26
  ## 0.7.0
4
27
 
5
28
  ### Minor Changes
package/README.md CHANGED
@@ -7,10 +7,10 @@ Use cinder when you want UI building blocks without adopting a framework-level r
7
7
  ## Install
8
8
 
9
9
  ```bash
10
- bun add @lostgradient/cinder svelte lucide-svelte
10
+ bun add @lostgradient/cinder svelte lucide-svelte conversationalist zod
11
11
  ```
12
12
 
13
- `svelte` and `lucide-svelte` are peer dependencies. Cinder uses Lucide for its own component chrome, but it does not provide a general icon library for your application-specific icons.
13
+ `svelte`, `lucide-svelte`, `conversationalist`, and `zod` are required peer dependencies. Cinder uses Lucide for its own component chrome, but it does not provide a general icon library for your application-specific icons. `@lostgradient/cinder/chat` expects your app to provide `conversationalist@^0.2.1` and `zod@4.4.1` so Chat data contracts resolve through the same package instances as the host application.
14
14
 
15
15
  Rich editor, markdown rendering, editor/commentary re-exports, and syntax-highlighting surfaces use optional peer dependencies. Install them only when your app imports `@lostgradient/cinder/chat` with the default composer, `@lostgradient/cinder/markdown-editor`, `@lostgradient/cinder/review-editor`, `@lostgradient/cinder/markdown`, `@lostgradient/cinder/markdown/*`, `@lostgradient/cinder/editor`, `@lostgradient/cinder/editor/*`, `@lostgradient/cinder/commentary`, `@lostgradient/cinder/commentary/*`, `@lostgradient/cinder/highlighters/shiki`, or relies on `Chat` built-in markdown/tool message rendering or `CodeBlock` automatic highlighting:
16
16
 
@@ -18,6 +18,11 @@ Rich editor, markdown rendering, editor/commentary re-exports, and syntax-highli
18
18
  bun add @milkdown/ctx @milkdown/kit @milkdown/prose @shikijs/engine-oniguruma @shikijs/langs @shikijs/rehype @shikijs/types @types/hast @types/mdast @types/unist comlink hast-util-sanitize js-yaml prosemirror-inputrules prosemirror-model prosemirror-state prosemirror-view rehype-katex rehype-sanitize rehype-stringify remark-gfm remark-html remark-math remark-parse remark-rehype remark-stringify shiki unified unist-util-remove unist-util-visit
19
19
  ```
20
20
 
21
+ `@lostgradient/cinder/markdown-editor` needs the editor and Markdown pipeline subset from that
22
+ list at build time. If `prosemirror-state`, `prosemirror-view`, `@milkdown/kit`, or another editor
23
+ peer is missing, Vite may report the failure through its optional-peer placeholder module instead
24
+ of naming this install step.
25
+
21
26
  ## Quickstart
22
27
 
23
28
  Load the base stylesheet once at your app entry:
package/components.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "manifestVersion": 1,
4
4
  "package": {
5
5
  "name": "@lostgradient/cinder",
6
- "version": "0.7.0",
6
+ "version": "0.9.0",
7
7
  "framework": "svelte",
8
8
  "frameworkVersionRange": ">=5.56.0 <6",
9
9
  "classPrefix": "cinder-",
@@ -290,14 +290,7 @@
290
290
  "reason": "Collecting arbitrary form input for a workflow — compose form controls directly instead."
291
291
  }
292
292
  ],
293
- "related": [
294
- "card",
295
- "badge",
296
- "status-dot",
297
- "payload-inspector",
298
- "secret-value-field",
299
- "code-block"
300
- ],
293
+ "related": ["card", "badge", "status-dot", "payload-inspector", "code-block", "collapsible"],
301
294
  "hasConstraints": false,
302
295
  "hasExamples": true,
303
296
  "artifacts": {
@@ -307,7 +300,7 @@
307
300
  },
308
301
  "a11y": {
309
302
  "notes": [
310
- "Uses a named region and native button controls so approval actions are discoverable by assistive technology.",
303
+ "Renders as an article with native button controls so approval actions are discoverable without polluting the landmark list.",
311
304
  "Expiration changes update the visible state but do not fire approval callbacks automatically."
312
305
  ]
313
306
  }
@@ -950,6 +943,56 @@
950
943
  "examples": "@lostgradient/cinder/chat/examples"
951
944
  }
952
945
  },
946
+ {
947
+ "name": "ChatComposerPopover",
948
+ "id": "chat-composer-popover",
949
+ "import": "@lostgradient/cinder/chat-composer-popover",
950
+ "exportName": "ChatComposerPopover",
951
+ "category": "overlay",
952
+ "status": "beta",
953
+ "purpose": "Chat composer-bound slash-command and mention listbox primitive.",
954
+ "tags": ["chat", "command", "overlay"],
955
+ "useWhen": [
956
+ "Adding slash commands, mentions, or autocomplete to ChatInput without re-implementing combobox ARIA.",
957
+ "Composer suggestions should stay anchored to the active token and leave command definitions in application code."
958
+ ],
959
+ "avoidWhen": [
960
+ {
961
+ "reason": "Opening a global command launcher detached from the composer — use command-palette instead."
962
+ },
963
+ {
964
+ "reason": "Anchoring a generic command menu to an arbitrary input — use command-menu instead."
965
+ }
966
+ ],
967
+ "related": ["chat", "command-menu", "command-item", "command-palette"],
968
+ "hasConstraints": false,
969
+ "hasExamples": true,
970
+ "artifacts": {
971
+ "schema": "@lostgradient/cinder/chat-composer-popover/schema",
972
+ "variables": "@lostgradient/cinder/chat-composer-popover/variables",
973
+ "examples": "@lostgradient/cinder/chat-composer-popover/examples"
974
+ },
975
+ "a11y": {
976
+ "pattern": "WAI-ARIA Combobox with Listbox Popup",
977
+ "keyboard": [
978
+ {
979
+ "keys": "ArrowUp / ArrowDown",
980
+ "action": "Moves the active suggestion."
981
+ },
982
+ {
983
+ "keys": "Enter",
984
+ "action": "Selects the active suggestion."
985
+ },
986
+ {
987
+ "keys": "Escape",
988
+ "action": "Dismisses the suggestion popover."
989
+ }
990
+ ],
991
+ "notes": [
992
+ "Passes combobox role and aria-expanded, aria-controls, aria-activedescendant, and aria-autocomplete through to ChatInput's composer overlay API."
993
+ ]
994
+ }
995
+ },
953
996
  {
954
997
  "name": "ChatConversationHeader",
955
998
  "id": "chat-conversation-header",
@@ -3645,11 +3688,11 @@
3645
3688
  "exportName": "PayloadInspector",
3646
3689
  "category": "data-display",
3647
3690
  "status": "stable",
3648
- "purpose": "Composed inspector for structured payloads with summary, tree, and raw views, copy actions, and size/truncation status.",
3691
+ "purpose": "Compact inspector for structured payloads: a labeled tree view with a copy action and size/truncation status.",
3649
3692
  "tags": ["json", "inspector", "payload"],
3650
3693
  "useWhen": [
3651
3694
  "Inspecting workflow inputs, signal payloads, activity results, or API response bodies in a dashboard.",
3652
- "Displaying a structured payload with metadata like content type, source, and timestamp."
3695
+ "Displaying a structured payload with a visible label, byte size, and copy affordance."
3653
3696
  ],
3654
3697
  "avoidWhen": [
3655
3698
  {
@@ -3659,7 +3702,7 @@
3659
3702
  "reason": "Needing search, filtering, or virtualization over large collections — compose a custom viewer."
3660
3703
  }
3661
3704
  ],
3662
- "related": ["json-viewer", "code-block", "description-list", "copy-button"],
3705
+ "related": ["json-viewer", "code-block", "copy-button"],
3663
3706
  "hasConstraints": false,
3664
3707
  "hasExamples": true,
3665
3708
  "artifacts": {
@@ -5126,11 +5169,12 @@
5126
5169
  "exportName": "Tab",
5127
5170
  "category": "navigation",
5128
5171
  "status": "stable",
5129
- "purpose": "Single selectable tab trigger inside a tabs composite that registers with the parent context and controls a matching tab-panel.",
5172
+ "purpose": "Single selectable tab trigger inside a tabs composite that registers with the parent context and controls a matching tab-panel or caller-owned panel id.",
5130
5173
  "tags": ["navigation", "tabs"],
5131
5174
  "useWhen": [
5132
5175
  "Declaring one tab heading inside a tabs ancestor with a stable value identifier.",
5133
- "Pairing one-to-one with a tab-panel that shares the same value to wire aria-controls."
5176
+ "Pairing one-to-one with a tab-panel that shares the same value to wire aria-controls.",
5177
+ "Pointing multiple tab triggers at a caller-owned panel with the controls prop."
5134
5178
  ],
5135
5179
  "avoidWhen": [
5136
5180
  {
@@ -30,16 +30,16 @@ export type CommandItemRegistrationInput = {
30
30
  * Context provided by CommandPalette and consumed by CommandItem.
31
31
  */
32
32
  export type CommandListContext = {
33
- /** Stable id for the listbox; items compose their own ids from this. */
33
+ /** Live id for the listbox; items keep their ids in sync with it. */
34
34
  readonly listboxId: string;
35
35
  /** Id of the currently active (virtually focused) item, or null. */
36
36
  readonly activeItemId: string | null;
37
37
  /**
38
38
  * Called by each CommandItem when it mounts.
39
- * Returns a stable id and an unregister function.
39
+ * Returns a live id handle and an unregister function.
40
40
  */
41
41
  register: (input: CommandItemRegistrationInput, node: HTMLElement) => {
42
- id: string;
42
+ readonly id: string;
43
43
  unregister: () => void;
44
44
  };
45
45
  /** Called by items on pointerenter to sync hover with arrow-key navigation. */
@@ -1,7 +1,12 @@
1
1
  import type { CommandItemRegistrationInput } from './command-list-context.ts';
2
+ type RegistrationHandle = {
3
+ id: string;
4
+ unregister: () => void;
5
+ };
2
6
  type RegistrationRecord = CommandItemRegistrationInput & {
3
7
  id: string;
4
8
  node: HTMLElement;
9
+ handle: RegistrationHandle;
5
10
  };
6
11
  export type CommandListKeyboardOptions = {
7
12
  event: KeyboardEvent;
@@ -12,32 +17,27 @@ export type CommandListKeyboardOptions = {
12
17
  };
13
18
  export declare class CommandListState {
14
19
  #private;
15
- readonly listboxId: string;
16
20
  registrations: RegistrationRecord[];
17
21
  registrationsReady: boolean;
18
22
  enabledIds: string[];
19
23
  activeItemId: string | null;
20
- constructor(listboxId: string);
24
+ constructor(listboxId: string | (() => string));
25
+ get listboxId(): string;
26
+ syncListboxId(nextListboxId?: string): void;
21
27
  resetActiveItem(): void;
22
28
  refreshRegistrationsReady(): void;
23
29
  scrollActiveItemIntoView(): void;
24
30
  setActiveById(id: string): void;
25
- register(input: CommandItemRegistrationInput, node: HTMLElement): {
26
- id: string;
27
- unregister: () => void;
28
- };
31
+ register(input: CommandItemRegistrationInput, node: HTMLElement): RegistrationHandle;
29
32
  activateItemById(id: string): RegistrationRecord | null;
30
33
  handleKeydown({ event, onEnter, onEscape, ignoreModifiedNavigation, preventDefaultOnEmptyEnter, }: CommandListKeyboardOptions): boolean;
31
34
  createContext(activateItemById?: (id: string) => void): {
32
35
  readonly listboxId: string;
33
36
  readonly activeItemId: string | null;
34
- register: (input: CommandItemRegistrationInput, node: HTMLElement) => {
35
- id: string;
36
- unregister: () => void;
37
- };
37
+ register: (input: CommandItemRegistrationInput, node: HTMLElement) => RegistrationHandle;
38
38
  setActiveById: (id: string) => void;
39
39
  activateItemById: (id: string) => void;
40
40
  };
41
41
  }
42
- export declare function createCommandListState(listboxId: string): CommandListState;
42
+ export declare function createCommandListState(listboxId: string | (() => string)): CommandListState;
43
43
  export {};