@lostgradient/cinder 0.8.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 (271) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +2 -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 +44 -2
  20. package/dist/components/chat/chat.svelte.d.ts +4 -2
  21. package/dist/components/chat/chat.types.d.ts +34 -3
  22. package/dist/components/chat/container/chat.svelte.d.ts +4 -2
  23. package/dist/components/chat/index.d.ts +3 -3
  24. package/dist/components/chat/index.js +2485 -6279
  25. package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
  26. package/dist/components/chat/input/chat-input.svelte.d.ts +22 -1
  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/payload-inspector/index.d.ts +1 -1
  55. package/dist/components/payload-inspector/index.js +306 -1422
  56. package/dist/components/payload-inspector/payload-inspector.css +15 -75
  57. package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
  58. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
  59. package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
  60. package/dist/components/tab/index.js +5 -2
  61. package/dist/components/tab/tab.schema.js +7 -3
  62. package/dist/components/tab/tab.svelte.d.ts +2 -1
  63. package/dist/components/tab/tab.types.d.ts +8 -2
  64. package/dist/components/tabs/index.js +5 -2
  65. package/dist/components/team-section/index.js +2 -1
  66. package/dist/components/testimonial-section/index.js +2 -1
  67. package/dist/index.d.ts +4 -2
  68. package/dist/index.js +23711 -27432
  69. package/dist/server/components/access-gate/index.js +2 -1
  70. package/dist/server/components/accordion/index.js +2 -2
  71. package/dist/server/components/alert-dialog/index.js +2 -2
  72. package/dist/server/components/approval-card/index.js +15 -19
  73. package/dist/server/components/autocomplete/index.js +7 -7
  74. package/dist/server/components/avatar-group/index.js +5 -5
  75. package/dist/server/components/button-group/index.js +3 -5
  76. package/dist/server/components/card/index.js +2 -2
  77. package/dist/server/components/chat/index.js +14 -11
  78. package/dist/server/components/chat-composer-popover/index.js +26 -0
  79. package/dist/server/components/chat-conversation-header/index.js +9 -10
  80. package/dist/server/components/chat-conversation-list/index.js +4 -5
  81. package/dist/server/components/checkbox/index.js +3 -3
  82. package/dist/server/components/choice-grid/index.js +2 -2
  83. package/dist/server/components/code-block/index.js +2 -2
  84. package/dist/server/components/color-field/index.js +3 -3
  85. package/dist/server/components/combobox/index.js +6 -6
  86. package/dist/server/components/command-item/index.js +5 -3
  87. package/dist/server/components/command-menu/index.js +6 -4
  88. package/dist/server/components/command-palette/index.js +2 -2
  89. package/dist/server/components/confirm-dialog/index.js +2 -2
  90. package/dist/server/components/context-menu/index.js +5 -5
  91. package/dist/server/components/data-table/index.js +5 -5
  92. package/dist/server/components/date-picker/index.js +6 -6
  93. package/dist/server/components/date-range-field/index.js +7 -7
  94. package/dist/server/components/description-list/index.js +3 -5
  95. package/dist/server/components/diff-viewer/index.js +7 -7
  96. package/dist/server/components/drawer/index.js +3 -3
  97. package/dist/server/components/dropdown/index.js +4 -4
  98. package/dist/server/components/event-stream-viewer/index.js +2 -2
  99. package/dist/server/components/experimental/json-viewer/index.js +2 -2
  100. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  101. package/dist/server/components/hover-card/index.js +1 -1
  102. package/dist/server/components/input/index.js +3 -3
  103. package/dist/server/components/json-schema-editor/index.js +22 -22
  104. package/dist/server/components/json-viewer/index.js +2 -2
  105. package/dist/server/components/markdown-editor/index.js +13 -13
  106. package/dist/server/components/modal/index.js +1 -1
  107. package/dist/server/components/multi-select/index.js +1 -1
  108. package/dist/server/components/newsletter-section/index.js +3 -3
  109. package/dist/server/components/payload-inspector/index.js +4 -16
  110. package/dist/server/components/popover/index.js +5 -5
  111. package/dist/server/components/review-editor/index.js +25 -25
  112. package/dist/server/components/run-step-timeline/index.js +2 -2
  113. package/dist/server/components/schema-form/index.js +4 -4
  114. package/dist/server/components/secret-value-field/index.js +3 -5
  115. package/dist/server/components/segment/index.js +3 -3
  116. package/dist/server/components/segmented-control/index.js +4 -4
  117. package/dist/server/components/selection-popover/index.js +4 -4
  118. package/dist/server/components/sheet/index.js +2 -2
  119. package/dist/server/components/sidebar/index.js +3 -3
  120. package/dist/server/components/tab/index.js +2 -2
  121. package/dist/server/components/table/index.js +3 -3
  122. package/dist/server/components/tabs/index.js +4 -4
  123. package/dist/server/components/tag-input/index.js +3 -3
  124. package/dist/server/components/team-section/index.js +8 -8
  125. package/dist/server/components/testimonial-section/index.js +2 -2
  126. package/dist/server/components/toggle/index.js +2 -2
  127. package/dist/server/components/tooltip/index.js +1 -1
  128. package/dist/server/index.js +159 -148
  129. package/dist/server/{index.server-cbtg8rq5.js → index.server-0atyznp7.js} +5 -5
  130. package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
  131. package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
  132. package/dist/server/{index.server-jync915v.js → index.server-2dga5yzr.js} +25 -25
  133. package/dist/server/index.server-2hqrv7ca.js +9 -0
  134. package/dist/server/{index.server-69epaape.js → index.server-2qj6s2mh.js} +1 -1
  135. package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
  136. package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
  137. package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
  138. package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
  139. package/dist/server/index.server-67qgdypc.js +9 -0
  140. package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
  141. package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
  142. package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
  143. package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
  144. package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
  145. package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
  146. package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
  147. package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
  148. package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
  149. package/dist/server/{index.server-j3ddzcaa.js → index.server-c6pe4kaf.js} +6 -6
  150. package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
  151. package/dist/server/{index.server-qfa2rxzx.js → index.server-dg83ke3k.js} +3 -5
  152. package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
  153. package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
  154. package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
  155. package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
  156. package/dist/server/{index.server-ejyf7e48.js → index.server-fy068yne.js} +1 -1
  157. package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
  158. package/dist/server/index.server-gkazv439.js +576 -0
  159. package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
  160. package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
  161. package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
  162. package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
  163. package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
  164. package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
  165. package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
  166. package/dist/server/{index.server-mehav5vs.js → index.server-jxg42jpz.js} +4 -4
  167. package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
  168. package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
  169. package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
  170. package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
  171. package/dist/server/index.server-m0ezemav.js +170 -0
  172. package/dist/server/index.server-m191rm44.js +79 -0
  173. package/dist/server/{index.server-f23vtaw4.js → index.server-marjz8ps.js} +6 -6
  174. package/dist/server/index.server-mqt1ngqw.js +250 -0
  175. package/dist/server/{index.server-s9khh4ry.js → index.server-mzzb7dnm.js} +3 -5
  176. package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
  177. package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
  178. package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
  179. package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
  180. package/dist/server/{index.server-gxf0d1p5.js → index.server-q7w4jw89.js} +2 -2
  181. package/dist/server/{index.server-v4zabrsx.js → index.server-qh9qzd5t.js} +163 -25
  182. package/dist/server/{index.server-pxg74pyp.js → index.server-qk1h0n02.js} +4 -4
  183. package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
  184. package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
  185. package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
  186. package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
  187. package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
  188. package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
  189. package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
  190. package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
  191. package/dist/server/index.server-xtjjmsyq.js +315 -0
  192. package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
  193. package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
  194. package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
  195. package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
  196. package/dist/server/{index.server-atjc1qcq.js → index.server-yz4k36cw.js} +1 -1
  197. package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
  198. package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
  199. package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
  200. package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
  201. package/package.json +40 -6
  202. package/src/components/_internal/command-list-context.ts +3 -3
  203. package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
  204. package/src/components/approval-card/approval-card-actions.svelte +168 -0
  205. package/src/components/approval-card/approval-card-state.ts +152 -1
  206. package/src/components/approval-card/approval-card.css +269 -92
  207. package/src/components/approval-card/approval-card.examples.json +3 -3
  208. package/src/components/approval-card/approval-card.schema.json +9 -30
  209. package/src/components/approval-card/approval-card.schema.ts +13 -31
  210. package/src/components/approval-card/approval-card.svelte +176 -470
  211. package/src/components/approval-card/approval-card.types.ts +15 -28
  212. package/src/components/approval-card/index.ts +1 -0
  213. package/src/components/card/card.css +5 -0
  214. package/src/components/card/card.schema.json +1 -1
  215. package/src/components/card/card.schema.ts +1 -1
  216. package/src/components/card/card.svelte +1 -0
  217. package/src/components/card/card.types.ts +2 -2
  218. package/src/components/chat/chat.schema.json +36 -1
  219. package/src/components/chat/chat.schema.ts +44 -1
  220. package/src/components/chat/chat.svelte +12 -0
  221. package/src/components/chat/chat.types.ts +35 -3
  222. package/src/components/chat/container/chat.svelte +73 -3
  223. package/src/components/chat/index.ts +15 -3
  224. package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
  225. package/src/components/chat/input/chat-input.svelte +22 -5
  226. package/src/components/chat/input/index.ts +5 -0
  227. package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
  228. package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
  229. package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
  230. package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
  231. package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
  232. package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
  233. package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
  234. package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
  235. package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
  236. package/src/components/chat-composer-popover/index.ts +19 -0
  237. package/src/components/code-block/code-block.schema.json +4 -0
  238. package/src/components/code-block/code-block.schema.ts +5 -0
  239. package/src/components/code-block/code-block.svelte +3 -3
  240. package/src/components/code-block/code-block.types.ts +6 -0
  241. package/src/components/command-item/command-item.svelte +7 -6
  242. package/src/components/command-menu/command-menu.schema.json +4 -0
  243. package/src/components/command-menu/command-menu.schema.ts +4 -0
  244. package/src/components/command-menu/command-menu.svelte +16 -5
  245. package/src/components/command-menu/command-menu.types.ts +2 -0
  246. package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
  247. package/src/components/json-viewer/json-viewer.css +10 -6
  248. package/src/components/payload-inspector/index.ts +0 -2
  249. package/src/components/payload-inspector/payload-inspector.css +15 -75
  250. package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
  251. package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
  252. package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
  253. package/src/components/payload-inspector/payload-inspector.svelte +46 -239
  254. package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
  255. package/src/components/tab/tab.schema.json +6 -2
  256. package/src/components/tab/tab.schema.ts +8 -2
  257. package/src/components/tab/tab.svelte +9 -5
  258. package/src/components/tab/tab.types.ts +8 -2
  259. package/src/index.ts +18 -5
  260. package/src/styles/components.css +1 -0
  261. package/dist/server/index-49we2xfs.js +0 -344
  262. package/dist/server/index-8fhvxk30.js +0 -265
  263. package/dist/server/index-x2ysg8ds.js +0 -388
  264. package/dist/server/index.server-20j0jh30.js +0 -9
  265. package/dist/server/index.server-dc35kh7d.js +0 -1835
  266. package/dist/server/index.server-kd4b0342.js +0 -607
  267. package/dist/server/index.server-n5cdmsz4.js +0 -30
  268. package/dist/server/index.server-rjap4k7y.js +0 -1389
  269. package/dist/server/index.server-vt6sn9y4.js +0 -447
  270. package/dist/server/index.server-w63n618v.js +0 -9
  271. package/dist/server/index.server-y2pa1k46.js +0 -9
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  setTabsContext
3
3
  } from "./index.server-js3eva86.js";
4
+ import {
5
+ commitValue
6
+ } from "./index.server-42qeekwc.js";
4
7
  import {
5
8
  handleRovingKeydown,
6
9
  isRovingKey
7
10
  } from "./index.server-0a8m173j.js";
8
- import {
9
- commitValue
10
- } from "./index.server-42qeekwc.js";
11
11
  import {
12
12
  classNames
13
13
  } from "./index.server-z7nvkz8v.js";
@@ -192,4 +192,4 @@ function Tabs($$renderer, $$props) {
192
192
 
193
193
  export { Tabs };
194
194
 
195
- //# debugId=FBD0BDC5785052B564756E2164756E21
195
+ //# debugId=712CE44C77B0B2EF64756E2164756E21
@@ -0,0 +1,315 @@
1
+ import {
2
+ Command_item
3
+ } from "./index.server-krqvnt6p.js";
4
+ import {
5
+ Command_menu,
6
+ detectTrigger
7
+ } from "./index.server-rga8sc7j.js";
8
+
9
+ // src/components/chat-composer-popover/chat-composer-popover.svelte
10
+ import * as $ from "svelte/internal/server";
11
+ import { onDestroy } from "svelte";
12
+
13
+ // src/components/chat-composer-popover/chat-composer-popover-filter.ts
14
+ function normalize(value) {
15
+ return value.trim().toLowerCase();
16
+ }
17
+ function fuzzySubsequenceScore(candidate, query) {
18
+ const normalizedCandidate = normalize(candidate);
19
+ const normalizedQuery = normalize(query);
20
+ if (normalizedQuery.length === 0)
21
+ return 0;
22
+ if (normalizedCandidate.length === 0)
23
+ return null;
24
+ let score = 0;
25
+ let searchIndex = 0;
26
+ let previousMatchIndex = -1;
27
+ for (const character of normalizedQuery) {
28
+ const matchIndex = normalizedCandidate.indexOf(character, searchIndex);
29
+ if (matchIndex === -1)
30
+ return null;
31
+ score += matchIndex === previousMatchIndex + 1 ? 4 : 1;
32
+ if (matchIndex === 0)
33
+ score += 2;
34
+ if (/[\s/_-]/u.test(normalizedCandidate[matchIndex - 1] ?? ""))
35
+ score += 2;
36
+ previousMatchIndex = matchIndex;
37
+ searchIndex = matchIndex + 1;
38
+ }
39
+ return score - normalizedCandidate.length * 0.01;
40
+ }
41
+ function filterFuzzySubsequence(items, query) {
42
+ const normalizedQuery = normalize(query);
43
+ if (normalizedQuery.length === 0)
44
+ return [...items];
45
+ const matchedItems = items.map((item, index) => {
46
+ const candidates = [item.label, item.value, ...item.keywords ?? []];
47
+ let bestScore = null;
48
+ for (const candidate of candidates) {
49
+ const score = fuzzySubsequenceScore(candidate, normalizedQuery);
50
+ if (score !== null && (bestScore === null || score > bestScore)) {
51
+ bestScore = score;
52
+ }
53
+ }
54
+ return bestScore === null ? null : { item, index, score: bestScore };
55
+ }).filter((result) => result !== null);
56
+ matchedItems.sort((a, b) => b.score - a.score || a.index - b.index);
57
+ return matchedItems.map((result) => result.item);
58
+ }
59
+
60
+ // src/components/chat-composer-popover/chat-composer-popover.svelte
61
+ function Chat_composer_popover($$renderer, $$props) {
62
+ $$renderer.component(($$renderer2) => {
63
+ let {
64
+ id,
65
+ value = "",
66
+ items,
67
+ triggers = ["/", "@"],
68
+ label = "Composer suggestions",
69
+ placement = "bottom-start",
70
+ offset = 6,
71
+ composer,
72
+ item,
73
+ empty,
74
+ detectTrigger: detectTrigger2,
75
+ filter = filterFuzzySubsequence,
76
+ onselect,
77
+ ondismiss
78
+ } = $$props;
79
+ let open = false;
80
+ let anchor = null;
81
+ let caretIndex = 0;
82
+ const listboxId = $.derived(() => `${id}-listbox`);
83
+ let activeItemId = null;
84
+ let activeMatch = null;
85
+ let composerSyncTimer = null;
86
+ let lastSyncedValue = value;
87
+ let suppressNextValueSync = false;
88
+ const emptyContent = $.derived(() => empty);
89
+ const query = $.derived(() => activeMatch?.query ?? "");
90
+ const trigger = $.derived(() => activeMatch?.trigger ?? triggers[0] ?? "/");
91
+ const filteredItems = $.derived(() => {
92
+ if (!activeMatch)
93
+ return [];
94
+ return [...filter(items, activeMatch.query, activeMatch.trigger)];
95
+ });
96
+ const composerProps = $.derived(() => ({
97
+ composerRole: "combobox",
98
+ composerAriaExpanded: open,
99
+ composerAriaControls: open ? listboxId() : undefined,
100
+ composerAriaActiveDescendant: open ? activeItemId ?? undefined : undefined,
101
+ composerAriaAutocomplete: "list",
102
+ oncomposerinput: handleComposerInput,
103
+ oncomposerkeydown: handleComposerKeydown,
104
+ oncomposerselectionchange: handleComposerSelectionChange,
105
+ oncomposerblur: handleComposerBlur
106
+ }));
107
+ function getComposerElement(event) {
108
+ const target = event.currentTarget ?? event.target;
109
+ if (target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement) {
110
+ return target;
111
+ }
112
+ return null;
113
+ }
114
+ function findTriggerMatch(text, selectionStart, selectionEnd) {
115
+ if (detectTrigger2)
116
+ return detectTrigger2(text, selectionStart, selectionEnd);
117
+ for (const triggerChar of triggers) {
118
+ const match = detectTrigger({ text, selectionStart, selectionEnd, triggerChar });
119
+ if (match) {
120
+ return { ...match, trigger: triggerChar };
121
+ }
122
+ }
123
+ return null;
124
+ }
125
+ function updateFromComposer(composerElement, nextValue) {
126
+ if (composerElement)
127
+ anchor = composerElement;
128
+ const selectionStart = composerElement?.selectionStart ?? nextValue.length;
129
+ const selectionEnd = composerElement?.selectionEnd ?? selectionStart;
130
+ lastSyncedValue = nextValue;
131
+ value = nextValue;
132
+ caretIndex = selectionEnd;
133
+ activeMatch = findTriggerMatch(nextValue, selectionStart, selectionEnd);
134
+ const wasOpen = open;
135
+ open = activeMatch !== null && anchor !== null;
136
+ if (!open) {
137
+ activeItemId = null;
138
+ if (wasOpen)
139
+ ondismiss?.();
140
+ }
141
+ }
142
+ function dismiss({ restoreFocus = true } = {}) {
143
+ if (!open && !activeMatch && !activeItemId)
144
+ return;
145
+ clearComposerSyncTimer();
146
+ open = false;
147
+ activeItemId = null;
148
+ activeMatch = null;
149
+ if (restoreFocus)
150
+ anchor?.focus();
151
+ ondismiss?.();
152
+ }
153
+ function handleComposerInput(nextValue, event) {
154
+ suppressNextValueSync = false;
155
+ updateFromComposer(event ? getComposerElement(event) : anchor, nextValue);
156
+ }
157
+ function handleComposerSelectionChange(event) {
158
+ suppressNextValueSync = false;
159
+ const composerElement = getComposerElement(event);
160
+ if (!composerElement)
161
+ return;
162
+ syncComposerSelectionAfterNativeNavigation(composerElement);
163
+ }
164
+ function handleComposerBlur(event) {
165
+ if (event.currentTarget === anchor) {
166
+ dismiss({ restoreFocus: false });
167
+ }
168
+ }
169
+ function syncComposerSelectionAfterNativeNavigation(composerElement) {
170
+ clearComposerSyncTimer();
171
+ composerSyncTimer = setTimeout(() => {
172
+ composerSyncTimer = null;
173
+ updateFromComposer(composerElement, composerElement.value);
174
+ }, 0);
175
+ }
176
+ function clearComposerSyncTimer() {
177
+ if (composerSyncTimer === null)
178
+ return;
179
+ clearTimeout(composerSyncTimer);
180
+ composerSyncTimer = null;
181
+ }
182
+ function handleComposerKeydown(event) {
183
+ const composerElement = event.currentTarget instanceof HTMLTextAreaElement || event.currentTarget instanceof HTMLInputElement ? event.currentTarget : null;
184
+ if (composerElement) {
185
+ anchor = composerElement;
186
+ caretIndex = composerElement.selectionEnd ?? value.length;
187
+ }
188
+ if (!open || event.isComposing || event.keyCode === 229)
189
+ return;
190
+ if (event.key === "Escape") {
191
+ event.preventDefault();
192
+ event.stopPropagation();
193
+ dismiss();
194
+ return;
195
+ }
196
+ const isNavigationKey = event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "ArrowLeft" || event.key === "ArrowRight" || event.key === "Home" || event.key === "End";
197
+ const isMenuNavigationKey = event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "Home" || event.key === "End";
198
+ const isModifiedNavigation = isNavigationKey && (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey);
199
+ if (isMenuNavigationKey && !isModifiedNavigation || event.key === "Enter" && activeItemId) {
200
+ event.preventDefault();
201
+ }
202
+ if (composerElement && isNavigationKey && (isModifiedNavigation || !isMenuNavigationKey)) {
203
+ syncComposerSelectionAfterNativeNavigation(composerElement);
204
+ }
205
+ }
206
+ onDestroy(() => {
207
+ clearComposerSyncTimer();
208
+ });
209
+ function handleStateChange(state) {
210
+ activeItemId = state.activeItemId;
211
+ }
212
+ function handleSelect(selection) {
213
+ const selectedItem = filteredItems().find((candidate) => candidate.value === selection.value);
214
+ if (!selectedItem || !activeMatch)
215
+ return;
216
+ const detail = {
217
+ item: selectedItem,
218
+ value: selection.value,
219
+ query: activeMatch.query,
220
+ trigger: activeMatch.trigger,
221
+ range: { start: activeMatch.start, end: activeMatch.end }
222
+ };
223
+ open = false;
224
+ activeItemId = null;
225
+ activeMatch = null;
226
+ anchor?.focus();
227
+ suppressNextValueSync = true;
228
+ queueMicrotask(() => {
229
+ suppressNextValueSync = false;
230
+ });
231
+ onselect?.(detail);
232
+ }
233
+ let $$settled = true;
234
+ let $$inner_renderer;
235
+ function $$render_inner($$renderer3) {
236
+ composer($$renderer3, composerProps());
237
+ $$renderer3.push(`<!----> `);
238
+ {
239
+ let items2 = function($$renderer4) {
240
+ $$renderer4.push(`<!--[-->`);
241
+ const each_array = $.ensure_array_like(filteredItems());
242
+ for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
243
+ let command = each_array[$$index];
244
+ Command_item($$renderer4, {
245
+ value: command.value,
246
+ disabled: command.disabled === true,
247
+ description: item ? "" : command.description ?? "",
248
+ accessibleLabel: command.description ? `${command.label}, ${command.description}` : command.label,
249
+ selectionMode: "parent",
250
+ children: ($$renderer5) => {
251
+ if (item) {
252
+ $$renderer5.push("<!--[0-->");
253
+ item($$renderer5, { item: command, query: query(), trigger: trigger() });
254
+ $$renderer5.push(`<!---->`);
255
+ } else {
256
+ $$renderer5.push("<!--[-1-->");
257
+ $$renderer5.push(`${$.escape(command.label)}`);
258
+ }
259
+ $$renderer5.push(`<!--]-->`);
260
+ },
261
+ $$slots: { default: true }
262
+ });
263
+ }
264
+ $$renderer4.push(`<!--]-->`);
265
+ }, empty2 = function($$renderer4) {
266
+ if (emptyContent()) {
267
+ $$renderer4.push("<!--[0-->");
268
+ emptyContent()($$renderer4);
269
+ $$renderer4.push(`<!---->`);
270
+ } else {
271
+ $$renderer4.push("<!--[-1-->");
272
+ $$renderer4.push(`No suggestions`);
273
+ }
274
+ $$renderer4.push(`<!--]-->`);
275
+ };
276
+ Command_menu($$renderer3, {
277
+ anchor,
278
+ caretIndex,
279
+ query: query(),
280
+ placement,
281
+ offset,
282
+ label,
283
+ listboxId: listboxId(),
284
+ onselect: handleSelect,
285
+ ondismiss: () => dismiss({ restoreFocus: false }),
286
+ onstatechange: handleStateChange,
287
+ get open() {
288
+ return open;
289
+ },
290
+ set open($$value) {
291
+ open = $$value;
292
+ $$settled = false;
293
+ },
294
+ items: items2,
295
+ empty: empty2,
296
+ $$slots: { items: true, empty: true }
297
+ });
298
+ }
299
+ $$renderer3.push(`<!---->`);
300
+ }
301
+ do {
302
+ $$settled = true;
303
+ $$inner_renderer = $$renderer2.copy();
304
+ $$render_inner($$inner_renderer);
305
+ } while (!$$settled);
306
+ $$renderer2.subsume($$inner_renderer);
307
+ $.bind_props($$props, { value });
308
+ }, Chat_composer_popover);
309
+ }
310
+
311
+ // src/components/chat-composer-popover/index.ts
312
+ var chat_composer_popover_default = Chat_composer_popover;
313
+ export { fuzzySubsequenceScore, filterFuzzySubsequence, Chat_composer_popover, chat_composer_popover_default };
314
+
315
+ //# debugId=A26051A42F206F7F64756E2164756E21
@@ -1,12 +1,12 @@
1
+ import {
2
+ Dropdown_group
3
+ } from "./index.server-x8c8x34n.js";
1
4
  import {
2
5
  Dropdown_label
3
6
  } from "./index.server-z7tyy8gh.js";
4
7
  import {
5
8
  Dropdown_separator
6
9
  } from "./index.server-vcr8a585.js";
7
- import {
8
- Dropdown_group
9
- } from "./index.server-x8c8x34n.js";
10
10
  import {
11
11
  Dropdown
12
12
  } from "./index.server-tfftb7hs.js";
@@ -32,4 +32,4 @@ var Dropdown2 = Object.assign(Dropdown, {
32
32
  var dropdown_default = Dropdown2;
33
33
  export { Dropdown2 as Dropdown, dropdown_default };
34
34
 
35
- //# debugId=4AD75212C41AB8F664756E2164756E21
35
+ //# debugId=6DFC01E65956544564756E2164756E21
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Popover
3
- } from "./index.server-hcfnae5y.js";
3
+ } from "./index.server-dwwqssey.js";
4
4
 
5
5
  // src/components/popover/index.ts
6
6
  var popover_default = Popover;
@@ -1,10 +1,10 @@
1
+ import {
2
+ createMultiSelection
3
+ } from "./index.server-p3aw22qv.js";
1
4
  import {
2
5
  Accordion_item,
3
6
  setAccordionContext
4
7
  } from "./index.server-hfx487zj.js";
5
- import {
6
- createMultiSelection
7
- } from "./index.server-p3aw22qv.js";
8
8
  import {
9
9
  classNames
10
10
  } from "./index.server-z7nvkz8v.js";
@@ -49,4 +49,4 @@ var Accordion2 = Object.assign(Accordion, {
49
49
  var accordion_default = Accordion2;
50
50
  export { Accordion2 as Accordion, accordion_default };
51
51
 
52
- //# debugId=AD282D0CC6C77AEF64756E2164756E21
52
+ //# debugId=E689D757091789D364756E2164756E21
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  Popover
3
- } from "./index.server-hcfnae5y.js";
3
+ } from "./index.server-dwwqssey.js";
4
4
  import {
5
5
  getFormFieldContext
6
6
  } from "./index.server-weae7gs2.js";
7
- import {
8
- _visually_hidden_live_region
9
- } from "./index.server-44vrcbhz.js";
10
7
  import {
11
8
  resolveFieldControl
12
9
  } from "./index.server-abm21gz1.js";
10
+ import {
11
+ _visually_hidden_live_region
12
+ } from "./index.server-44vrcbhz.js";
13
13
  import {
14
14
  classNames
15
15
  } from "./index.server-z7nvkz8v.js";
@@ -374,4 +374,4 @@ var autocomplete_default = Autocomplete;
374
374
 
375
375
  export { autocomplete_default };
376
376
 
377
- //# debugId=97F5263277D289D864756E2164756E21
377
+ //# debugId=D047F702637E518564756E2164756E21
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  conversationSummaryTimestamp
3
- } from "./index.server-s9khh4ry.js";
3
+ } from "./index.server-mzzb7dnm.js";
4
4
  import {
5
5
  classNames
6
6
  } from "./index.server-z7nvkz8v.js";
@@ -55,7 +55,7 @@ function _json_viewer_node($$renderer, $$props) {
55
55
  } else {
56
56
  $$renderer2.push("<!--[-1-->");
57
57
  }
58
- $$renderer2.push(`<!--]--> <span class="cinder-json-viewer__caret"${$.attr("data-cinder-collapsed", collapsed || undefined)}></span> <span class="cinder-json-viewer__brace">${$.escape(isArray() ? "[" : "{")}</span> `);
58
+ $$renderer2.push(`<!--]--> <svg class="cinder-json-viewer__caret"${$.attr("data-cinder-collapsed", collapsed || undefined)} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06z" clip-rule="evenodd"></path></svg> <span class="cinder-json-viewer__brace">${$.escape(isArray() ? "[" : "{")}</span> `);
59
59
  if (collapsed) {
60
60
  $$renderer2.push("<!--[0-->");
61
61
  $$renderer2.push(`<span class="cinder-json-viewer__summary">${$.escape(itemCount())} ${$.escape(itemCount() === 1 ? "item" : "items")}</span> <span class="cinder-json-viewer__brace">${$.escape(isArray() ? "]" : "}")}</span>`);
@@ -220,4 +220,4 @@ function Json_viewer($$renderer, $$props) {
220
220
 
221
221
  export { Json_viewer };
222
222
 
223
- //# debugId=4610D0EF23A4B97D64756E2164756E21
223
+ //# debugId=73E01DFC934121F164756E2164756E21
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Json_viewer
3
- } from "./index.server-w6k62afr.js";
3
+ } from "./index.server-ze1ymmbw.js";
4
4
 
5
5
  // src/components/json-viewer/index.ts
6
6
  var json_viewer_default = Json_viewer;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Payload_inspector
3
- } from "./index.server-vt6sn9y4.js";
3
+ } from "./index.server-m0ezemav.js";
4
4
 
5
5
  // src/components/payload-inspector/index.ts
6
6
  var payload_inspector_default = Payload_inspector;
@@ -1,9 +1,9 @@
1
- import {
2
- getFormFieldContext
3
- } from "./index.server-weae7gs2.js";
4
1
  import {
5
2
  commitValue
6
3
  } from "./index.server-42qeekwc.js";
4
+ import {
5
+ getFormFieldContext
6
+ } from "./index.server-weae7gs2.js";
7
7
  import {
8
8
  classNames
9
9
  } from "./index.server-z7nvkz8v.js";
@@ -50,4 +50,4 @@ function Toggle($$renderer, $$props) {
50
50
  var toggle_default = Toggle;
51
51
  export { Toggle, toggle_default };
52
52
 
53
- //# debugId=426B7366973E509A64756E2164756E21
53
+ //# debugId=12CB9C541A47207164756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lostgradient/cinder",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "A Svelte 5 component library and design system focused on accessibility, theming, and per-component tree-shaking.",
5
5
  "keywords": [
6
6
  "svelte",
@@ -967,6 +967,38 @@
967
967
  "import": "./src/components/chat/chat.examples.json",
968
968
  "default": "./src/components/chat/chat.examples.json"
969
969
  },
970
+ "./chat-composer-popover": {
971
+ "types": "./dist/components/chat-composer-popover/index.d.ts",
972
+ "browser": "./src/components/chat-composer-popover/index.ts",
973
+ "node": "./dist/server/components/chat-composer-popover/index.js",
974
+ "svelte": "./src/components/chat-composer-popover/index.ts",
975
+ "import": "./src/components/chat-composer-popover/index.ts",
976
+ "default": "./dist/components/chat-composer-popover/index.js"
977
+ },
978
+ "./chat-composer-popover/schema": {
979
+ "types": "./dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts",
980
+ "browser": "./src/components/chat-composer-popover/chat-composer-popover.schema.ts",
981
+ "node": "./dist/components/chat-composer-popover/chat-composer-popover.schema.js",
982
+ "svelte": "./src/components/chat-composer-popover/chat-composer-popover.schema.ts",
983
+ "import": "./src/components/chat-composer-popover/chat-composer-popover.schema.ts",
984
+ "default": "./dist/components/chat-composer-popover/chat-composer-popover.schema.js"
985
+ },
986
+ "./chat-composer-popover/variables": {
987
+ "types": "./dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts",
988
+ "browser": "./src/components/chat-composer-popover/chat-composer-popover.variables.ts",
989
+ "node": "./dist/components/chat-composer-popover/chat-composer-popover.variables.js",
990
+ "svelte": "./src/components/chat-composer-popover/chat-composer-popover.variables.ts",
991
+ "import": "./src/components/chat-composer-popover/chat-composer-popover.variables.ts",
992
+ "default": "./dist/components/chat-composer-popover/chat-composer-popover.variables.js"
993
+ },
994
+ "./chat-composer-popover/styles": {
995
+ "types": "./dist/components/chat-composer-popover/chat-composer-popover.css.d.ts",
996
+ "default": "./dist/components/chat-composer-popover/chat-composer-popover.css"
997
+ },
998
+ "./chat-composer-popover/examples": {
999
+ "import": "./src/components/chat-composer-popover/chat-composer-popover.examples.json",
1000
+ "default": "./src/components/chat-composer-popover/chat-composer-popover.examples.json"
1001
+ },
970
1002
  "./chat-conversation-header": {
971
1003
  "types": "./dist/components/chat-conversation-header/index.d.ts",
972
1004
  "browser": "./src/components/chat-conversation-header/index.ts",
@@ -6414,12 +6446,10 @@
6414
6446
  "@modelcontextprotocol/sdk": "^1.29.0",
6415
6447
  "@tanstack/virtual-core": "^3.17.1",
6416
6448
  "ajv": "^8",
6417
- "conversationalist": "^0.2.1",
6418
6449
  "diff-match-patch": "^1.0.5",
6419
6450
  "esm-env": "^1.2.0",
6420
6451
  "libphonenumber-js": "^1.13.3",
6421
- "qrcode": "^1.5.4",
6422
- "zod": "4.4.1"
6452
+ "qrcode": "^1.5.4"
6423
6453
  },
6424
6454
  "devDependencies": {
6425
6455
  "@changesets/parse": "0.4.3",
@@ -6431,6 +6461,7 @@
6431
6461
  "@types/qrcode": "^1.5.6",
6432
6462
  "chalk": "^5.6.2",
6433
6463
  "change-case": "^5.4.4",
6464
+ "conversationalist": "^0.2.1",
6434
6465
  "happy-dom": "^15.11.7",
6435
6466
  "js-yaml": "^4.1.0",
6436
6467
  "lucide-svelte": "^0.503.0",
@@ -6446,7 +6477,8 @@
6446
6477
  "svelte-check": "^4.0.0",
6447
6478
  "svelte2tsx": "^0.7.33",
6448
6479
  "ts-morph": "^28.0.0",
6449
- "typescript": "^5.9.0"
6480
+ "typescript": "^5.9.0",
6481
+ "zod": "4.4.1"
6450
6482
  },
6451
6483
  "peerDependencies": {
6452
6484
  "@milkdown/ctx": "^7.17.3",
@@ -6460,6 +6492,7 @@
6460
6492
  "@types/mdast": "^4.0.4",
6461
6493
  "@types/unist": "^3.0.0",
6462
6494
  "comlink": "^4.4.2",
6495
+ "conversationalist": "^0.2.1",
6463
6496
  "hast-util-sanitize": "^5.0.0",
6464
6497
  "js-yaml": "^4.1.0",
6465
6498
  "lucide-svelte": ">=0.400.0 <1",
@@ -6480,7 +6513,8 @@
6480
6513
  "svelte": ">=5.56.0 <6",
6481
6514
  "unified": "^11.0.5",
6482
6515
  "unist-util-remove": "^4.0.0",
6483
- "unist-util-visit": "^5.0.0"
6516
+ "unist-util-visit": "^5.0.0",
6517
+ "zod": "4.4.1"
6484
6518
  },
6485
6519
  "peerDependenciesMeta": {
6486
6520
  "@milkdown/ctx": {
@@ -34,18 +34,18 @@ export type CommandItemRegistrationInput = {
34
34
  * Context provided by CommandPalette and consumed by CommandItem.
35
35
  */
36
36
  export type CommandListContext = {
37
- /** Stable id for the listbox; items compose their own ids from this. */
37
+ /** Live id for the listbox; items keep their ids in sync with it. */
38
38
  readonly listboxId: string;
39
39
  /** Id of the currently active (virtually focused) item, or null. */
40
40
  readonly activeItemId: string | null;
41
41
  /**
42
42
  * Called by each CommandItem when it mounts.
43
- * Returns a stable id and an unregister function.
43
+ * Returns a live id handle and an unregister function.
44
44
  */
45
45
  register: (
46
46
  input: CommandItemRegistrationInput,
47
47
  node: HTMLElement,
48
- ) => { id: string; unregister: () => void };
48
+ ) => { readonly id: string; unregister: () => void };
49
49
  /** Called by items on pointerenter to sync hover with arrow-key navigation. */
50
50
  setActiveById: (id: string) => void;
51
51
  /** Called by items and owners to activate the current item by id. */