@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
@@ -0,0 +1,576 @@
1
+ import {
2
+ Payload_inspector
3
+ } from "./index.server-m0ezemav.js";
4
+ import {
5
+ Status_dot
6
+ } from "./index.server-npxtkwjp.js";
7
+ import {
8
+ Collapsible
9
+ } from "./index.server-mvhf8b7g.js";
10
+ import {
11
+ Card
12
+ } from "./index.server-8dt36sdm.js";
13
+ import {
14
+ Code_block
15
+ } from "./index.server-d3pqthtp.js";
16
+ import {
17
+ Copy_button
18
+ } from "./index.server-z1q7qnb8.js";
19
+ import {
20
+ Tooltip
21
+ } from "./index.server-txnxnbd6.js";
22
+ import {
23
+ Badge
24
+ } from "./index.server-thedzn9z.js";
25
+ import {
26
+ Signal_high,
27
+ Signal_low,
28
+ Signal_medium
29
+ } from "./index.server-m191rm44.js";
30
+ import {
31
+ Button
32
+ } from "./index.server-t859hsx1.js";
33
+ import {
34
+ classNames
35
+ } from "./index.server-z7nvkz8v.js";
36
+
37
+ // src/components/approval-card/approval-card.svelte
38
+ import * as $2 from "svelte/internal/server";
39
+ // src/components/approval-card/approval-card-actions.svelte
40
+ import * as $ from "svelte/internal/server";
41
+
42
+ // src/components/approval-card/approval-card-state.ts
43
+ var ARGUMENTS_PREVIEW_MAX_CHARACTERS = 4096;
44
+ var RISK_LABELS = {
45
+ low: "Low risk",
46
+ medium: "Medium risk",
47
+ high: "High risk"
48
+ };
49
+ var STATE_LABELS = {
50
+ pending: "Pending",
51
+ approved: "Approved",
52
+ approved_with_edits: "Approved with edits",
53
+ denied: "Denied",
54
+ expired: "Expired",
55
+ cancelled: "Cancelled"
56
+ };
57
+ var STATE_DOT_STATUS = {
58
+ pending: "pending",
59
+ approved: "success",
60
+ approved_with_edits: "success",
61
+ denied: "danger",
62
+ expired: "neutral",
63
+ cancelled: "offline"
64
+ };
65
+ function resolveEffectiveApprovalState(approvalState, expirationTimestamp, currentTime) {
66
+ if (approvalState !== "pending" || expirationTimestamp === undefined)
67
+ return approvalState;
68
+ return resolveComparisonTime(currentTime) >= expirationTimestamp ? "expired" : approvalState;
69
+ }
70
+ function isApprovalActionable(approvalState, expirationTimestamp, currentTime) {
71
+ if (approvalState !== "pending")
72
+ return false;
73
+ if (expirationTimestamp === undefined)
74
+ return true;
75
+ return resolveComparisonTime(currentTime) < expirationTimestamp;
76
+ }
77
+ function resolveComparisonTime(currentTime) {
78
+ return currentTime ?? Date.now();
79
+ }
80
+ function parseExpirationTimestamp(value) {
81
+ if (!value)
82
+ return;
83
+ const timestamp = Date.parse(value);
84
+ return Number.isFinite(timestamp) ? timestamp : undefined;
85
+ }
86
+ function formatRemainingTime(milliseconds) {
87
+ const totalSeconds = Math.max(0, Math.ceil(milliseconds / 1000));
88
+ const hours = Math.floor(totalSeconds / 3600);
89
+ const minutes = Math.floor(totalSeconds % 3600 / 60);
90
+ const seconds = totalSeconds % 60;
91
+ if (hours > 0)
92
+ return `${hours}h ${minutes}m`;
93
+ if (minutes > 0)
94
+ return `${minutes}m ${seconds}s`;
95
+ return `${seconds}s`;
96
+ }
97
+ function normalizeArgumentsPreviewValue(value) {
98
+ if (typeof value !== "string")
99
+ return value;
100
+ try {
101
+ return JSON.parse(value);
102
+ } catch {
103
+ return value;
104
+ }
105
+ }
106
+ function prepareArgumentsPreview(value) {
107
+ try {
108
+ const serialized = JSON.stringify(value);
109
+ if (typeof serialized !== "string" || serialized.length <= ARGUMENTS_PREVIEW_MAX_CHARACTERS) {
110
+ return { value, truncated: false };
111
+ }
112
+ return {
113
+ value: {
114
+ notice: "Arguments preview truncated",
115
+ originalCharacters: serialized.length,
116
+ displayedCharacters: ARGUMENTS_PREVIEW_MAX_CHARACTERS,
117
+ excerpt: serialized.slice(0, ARGUMENTS_PREVIEW_MAX_CHARACTERS)
118
+ },
119
+ truncated: true
120
+ };
121
+ } catch {
122
+ return { value, truncated: false };
123
+ }
124
+ }
125
+ function formatEditableArguments(value) {
126
+ try {
127
+ const serialized = JSON.stringify(value, null, 2);
128
+ return serialized ?? "null";
129
+ } catch {
130
+ return "{}";
131
+ }
132
+ }
133
+ function parseJsonText(text) {
134
+ try {
135
+ return { ok: true, value: JSON.parse(text) };
136
+ } catch {
137
+ return { ok: false, message: "Edited arguments must be valid JSON." };
138
+ }
139
+ }
140
+ function sanitizeEnvironmentNames(names) {
141
+ const seen = new Set;
142
+ const sanitizedNames = [];
143
+ for (const name of names) {
144
+ const [firstPart] = name.split("=");
145
+ const sanitizedName = firstPart?.trim() ?? "";
146
+ if (!sanitizedName || seen.has(sanitizedName))
147
+ continue;
148
+ seen.add(sanitizedName);
149
+ sanitizedNames.push(sanitizedName);
150
+ }
151
+ return sanitizedNames;
152
+ }
153
+ function dedupeFilePaths(paths) {
154
+ const seen = new Set;
155
+ const uniquePaths = [];
156
+ for (const path of paths) {
157
+ if (seen.has(path))
158
+ continue;
159
+ seen.add(path);
160
+ uniquePaths.push(path);
161
+ }
162
+ return uniquePaths;
163
+ }
164
+
165
+ // src/components/approval-card/approval-card-actions.svelte
166
+ function Approval_card_actions($$renderer, $$props) {
167
+ $$renderer.component(($$renderer2) => {
168
+ let {
169
+ idBase,
170
+ requestKey,
171
+ canEditArguments,
172
+ argumentsValue,
173
+ resolve
174
+ } = $$props;
175
+ const reasonId = $.derived(() => `${idBase}-resolution-reason`);
176
+ const editorId = $.derived(() => `${idBase}-edited-arguments`);
177
+ const editRegionId = $.derived(() => `${idBase}-edit-region`);
178
+ const editDescriptionId = $.derived(() => `${idBase}-edit-description`);
179
+ const editErrorId = $.derived(() => `${idBase}-edit-error`);
180
+ let resolutionReason = "";
181
+ let rememberResolution = false;
182
+ let editingArguments = false;
183
+ let editedArgumentsText = "";
184
+ let previousRequestKey = requestKey;
185
+ let previousArgumentsSnapshot = formatEditableArguments(argumentsValue);
186
+ const editParseResult = $.derived(() => parseJsonText(editedArgumentsText));
187
+ function emitResolution(decision, editedArgs) {
188
+ const trimmedReason = resolutionReason.trim();
189
+ const resolution = { decision, remember: rememberResolution };
190
+ if (decision === "approve_with_edits") {
191
+ resolution.editedArgs = editedArgs;
192
+ }
193
+ if (trimmedReason) {
194
+ resolution.reason = trimmedReason;
195
+ }
196
+ resolve(resolution);
197
+ }
198
+ function toggleEditingArguments() {
199
+ if (!canEditArguments)
200
+ return;
201
+ if (!editingArguments) {
202
+ editedArgumentsText = formatEditableArguments(argumentsValue);
203
+ }
204
+ editingArguments = !editingArguments;
205
+ }
206
+ function handleConfirmEditedApproval() {
207
+ if (!canEditArguments || !editParseResult().ok)
208
+ return;
209
+ emitResolution("approve_with_edits", editParseResult().value);
210
+ }
211
+ $$renderer2.push(`<div class="cinder-approval-card__actions"><div class="cinder-approval-card__resolution-controls"><label class="cinder-approval-card__control-label"${$.attr("for", reasonId())}>Reason</label> <textarea${$.attr("id", reasonId())} class="cinder-approval-card__textarea cinder-approval-card__textarea--reason" rows="2">`);
212
+ const $$body = $.escape(resolutionReason);
213
+ if ($$body) {
214
+ $$renderer2.push(`${$$body}`);
215
+ } else {}
216
+ $$renderer2.push(`</textarea></div> <div class="cinder-approval-card__action-row" role="group" aria-label="Approval actions"><label class="cinder-approval-card__remember-control"><input type="checkbox"${$.attr("checked", rememberResolution, true)}/> <span>Don't ask again for operations like this</span></label> <div class="cinder-approval-card__action-buttons">`);
217
+ Button($$renderer2, {
218
+ type: "button",
219
+ variant: "ghost",
220
+ class: "cinder-approval-card__dismiss",
221
+ onclick: () => emitResolution("cancel"),
222
+ children: ($$renderer3) => {
223
+ $$renderer3.push(`<!---->Dismiss`);
224
+ },
225
+ $$slots: { default: true }
226
+ });
227
+ $$renderer2.push(`<!----> `);
228
+ Button($$renderer2, {
229
+ type: "button",
230
+ variant: "soft-danger",
231
+ onclick: () => emitResolution("deny"),
232
+ children: ($$renderer3) => {
233
+ $$renderer3.push(`<!---->Deny`);
234
+ },
235
+ $$slots: { default: true }
236
+ });
237
+ $$renderer2.push(`<!----> `);
238
+ if (canEditArguments) {
239
+ $$renderer2.push("<!--[0-->");
240
+ Button($$renderer2, {
241
+ type: "button",
242
+ variant: "secondary",
243
+ onclick: toggleEditingArguments,
244
+ "aria-expanded": editingArguments,
245
+ "aria-controls": editingArguments ? editRegionId() : undefined,
246
+ children: ($$renderer3) => {
247
+ $$renderer3.push(`<!---->Approve with edits`);
248
+ },
249
+ $$slots: { default: true }
250
+ });
251
+ } else {
252
+ $$renderer2.push("<!--[-1-->");
253
+ }
254
+ $$renderer2.push(`<!--]--> `);
255
+ Button($$renderer2, {
256
+ type: "button",
257
+ variant: "primary",
258
+ onclick: () => emitResolution("approve"),
259
+ children: ($$renderer3) => {
260
+ $$renderer3.push(`<!---->Approve`);
261
+ },
262
+ $$slots: { default: true }
263
+ });
264
+ $$renderer2.push(`<!----></div></div> `);
265
+ if (editingArguments && canEditArguments) {
266
+ $$renderer2.push("<!--[0-->");
267
+ $$renderer2.push(`<div${$.attr("id", editRegionId())} class="cinder-approval-card__editor"><label class="cinder-approval-card__control-label"${$.attr("for", editorId())}>Edited arguments JSON</label> <p${$.attr("id", editDescriptionId())} class="cinder-approval-card__muted">Approving sends the parsed JSON below instead of the original arguments.</p> <textarea${$.attr("id", editorId())} class="cinder-approval-card__textarea" rows="8" spellcheck="false"${$.attr("aria-describedby", editParseResult().ok ? editDescriptionId() : `${editDescriptionId()} ${editErrorId()}`)}${$.attr("aria-invalid", editParseResult().ok ? undefined : "true")}>`);
268
+ const $$body_1 = $.escape(editedArgumentsText);
269
+ if ($$body_1) {
270
+ $$renderer2.push(`${$$body_1}`);
271
+ } else {}
272
+ $$renderer2.push(`</textarea> `);
273
+ if (!editParseResult().ok) {
274
+ $$renderer2.push("<!--[0-->");
275
+ $$renderer2.push(`<p${$.attr("id", editErrorId())} class="cinder-approval-card__error" role="alert">${$.escape(editParseResult().message)}</p>`);
276
+ } else {
277
+ $$renderer2.push("<!--[-1-->");
278
+ }
279
+ $$renderer2.push(`<!--]--> <div class="cinder-approval-card__editor-actions">`);
280
+ Button($$renderer2, {
281
+ type: "button",
282
+ variant: "primary",
283
+ onclick: handleConfirmEditedApproval,
284
+ disabled: !editParseResult().ok,
285
+ children: ($$renderer3) => {
286
+ $$renderer3.push(`<!---->Confirm edited approval`);
287
+ },
288
+ $$slots: { default: true }
289
+ });
290
+ $$renderer2.push(`<!----></div></div>`);
291
+ } else {
292
+ $$renderer2.push("<!--[-1-->");
293
+ }
294
+ $$renderer2.push(`<!--]--></div>`);
295
+ }, Approval_card_actions);
296
+ }
297
+
298
+ // src/components/approval-card/approval-card.svelte
299
+ function Approval_card($$renderer, $$props) {
300
+ $$renderer.component(($$renderer2) => {
301
+ const generatedId = $2.props_id($$renderer2);
302
+ const RISK_ICONS = { low: Signal_low, medium: Signal_medium, high: Signal_high };
303
+ let {
304
+ tool,
305
+ sandbox,
306
+ operation,
307
+ env = [],
308
+ snapshotId,
309
+ policyVersion,
310
+ idempotencyKey,
311
+ expiresAt,
312
+ state: approvalState,
313
+ editableArgs = false,
314
+ headingLevel = 3,
315
+ onresolve,
316
+ id,
317
+ class: customClassName,
318
+ $$slots,
319
+ $$events,
320
+ ...rest
321
+ } = $$props;
322
+ const rootId = $2.derived(() => id ?? generatedId);
323
+ const titleId = $2.derived(() => `${rootId()}-title`);
324
+ const resolvedHeadingLevel = $2.derived(() => Number.isFinite(Math.trunc(Number(headingLevel))) ? Math.min(6, Math.max(2, Math.trunc(Number(headingLevel)))) : 3);
325
+ const titleTag = $2.derived(() => `h${resolvedHeadingLevel()}`);
326
+ const sectionTag = $2.derived(() => `h${Math.min(6, resolvedHeadingLevel() + 1)}`);
327
+ let currentTime = undefined;
328
+ let expirationTimer;
329
+ const expirationTimestamp = $2.derived(() => parseExpirationTimestamp(expiresAt));
330
+ const effectiveState = $2.derived(() => resolveEffectiveApprovalState(approvalState, expirationTimestamp(), currentTime));
331
+ const isActionable = $2.derived(() => isApprovalActionable(approvalState, expirationTimestamp(), currentTime));
332
+ const hasResolutionCallback = $2.derived(() => typeof onresolve === "function");
333
+ const riskLabel = $2.derived(() => RISK_LABELS[tool.risk]);
334
+ const RiskIcon = $2.derived(() => RISK_ICONS[tool.risk]);
335
+ const stateText = $2.derived(() => STATE_LABELS[effectiveState()]);
336
+ const readonlySummary = $2.derived(() => `No approval actions are available because this request is ${stateText().toLowerCase()}.`);
337
+ const expirationText = $2.derived(() => {
338
+ if (approvalState !== "pending" || effectiveState() !== "pending" || expirationTimestamp() === undefined || currentTime === undefined) {
339
+ return;
340
+ }
341
+ return `Expires in ${formatRemainingTime(expirationTimestamp() - currentTime)}`;
342
+ });
343
+ const hasArgumentsPreview = $2.derived(() => operation.argsPreview !== undefined);
344
+ const editableArgumentsValue = $2.derived(() => normalizeArgumentsPreviewValue(operation.argsPreview));
345
+ const argumentsPreview = $2.derived(() => prepareArgumentsPreview(editableArgumentsValue()));
346
+ const canEditArguments = $2.derived(() => editableArgs && hasArgumentsPreview());
347
+ const filesTouched = $2.derived(() => dedupeFilePaths(operation.filesTouched ?? []));
348
+ const filesTouchedLabel = $2.derived(() => `${filesTouched().length} file${filesTouched().length === 1 ? "" : "s"}`);
349
+ const environmentNames = $2.derived(() => sanitizeEnvironmentNames(env));
350
+ function clearExpirationTimer() {
351
+ if (expirationTimer !== undefined) {
352
+ clearTimeout(expirationTimer);
353
+ expirationTimer = undefined;
354
+ }
355
+ }
356
+ function resolveIfActionable(resolution) {
357
+ const comparisonTime = expirationTimestamp() === undefined ? currentTime : Date.now();
358
+ if (!isApprovalActionable(approvalState, expirationTimestamp(), comparisonTime)) {
359
+ if (approvalState === "pending" && expirationTimestamp() !== undefined) {
360
+ currentTime = comparisonTime;
361
+ }
362
+ return;
363
+ }
364
+ if (typeof onresolve === "function")
365
+ onresolve(resolution);
366
+ }
367
+ $$renderer2.push(`<article${$2.attributes({
368
+ ...rest,
369
+ id: rootId(),
370
+ class: $2.clsx(classNames("cinder-approval-card", customClassName)),
371
+ "aria-labelledby": titleId(),
372
+ "data-cinder-state": effectiveState(),
373
+ "data-cinder-risk": tool.risk
374
+ })}>`);
375
+ {
376
+ let header = function($$renderer3) {
377
+ $$renderer3.push(`<div class="cinder-approval-card__header"><div class="cinder-approval-card__title-group">`);
378
+ $2.element($$renderer3, titleTag(), () => {
379
+ $$renderer3.push(`${$2.attr("id", titleId())} class="cinder-approval-card__title"`);
380
+ }, () => {
381
+ $$renderer3.push(`Approval required for <span class="cinder-approval-card__title-tool">${$2.escape(tool.name)}</span>`);
382
+ });
383
+ $$renderer3.push(`</div> <div class="cinder-approval-card__badges" role="group" aria-label="Approval status">`);
384
+ Status_dot($$renderer3, {
385
+ status: STATE_DOT_STATUS[effectiveState()],
386
+ label: stateText(),
387
+ size: "sm"
388
+ });
389
+ $$renderer3.push(`<!----> `);
390
+ Tooltip($$renderer3, {
391
+ text: riskLabel(),
392
+ describe: false,
393
+ children: ($$renderer4) => {
394
+ $$renderer4.push(`<span class="cinder-approval-card__risk-icon" role="img" tabindex="0"${$2.attr("aria-label", riskLabel())}${$2.attr("data-cinder-risk", tool.risk)}>`);
395
+ if (RiskIcon()) {
396
+ $$renderer4.push("<!--[-->");
397
+ RiskIcon()($$renderer4, { size: 16, strokeWidth: 2.25, "aria-hidden": "true" });
398
+ $$renderer4.push("<!--]-->");
399
+ } else {
400
+ $$renderer4.push("<!--[!-->");
401
+ $$renderer4.push("<!--]-->");
402
+ }
403
+ $$renderer4.push(`</span>`);
404
+ },
405
+ $$slots: { default: true }
406
+ });
407
+ $$renderer3.push(`<!----> `);
408
+ if (expirationText()) {
409
+ $$renderer3.push("<!--[0-->");
410
+ Badge($$renderer3, {
411
+ variant: "warning",
412
+ size: "sm",
413
+ children: ($$renderer4) => {
414
+ $$renderer4.push(`<!---->${$2.escape(expirationText())}`);
415
+ },
416
+ $$slots: { default: true }
417
+ });
418
+ } else {
419
+ $$renderer3.push("<!--[-1-->");
420
+ }
421
+ $$renderer3.push(`<!--]--></div></div>`);
422
+ };
423
+ Card($$renderer2, {
424
+ padding: "none",
425
+ class: "cinder-approval-card__surface",
426
+ header,
427
+ children: ($$renderer3) => {
428
+ $$renderer3.push(`<div class="cinder-approval-card__body">`);
429
+ if (operation.kind === "command" && operation.command) {
430
+ $$renderer3.push("<!--[0-->");
431
+ $$renderer3.push(`<div class="cinder-approval-card__section">`);
432
+ Code_block($$renderer3, {
433
+ code: operation.command,
434
+ language: "shell",
435
+ showLanguageLabel: false
436
+ });
437
+ $$renderer3.push(`<!----></div>`);
438
+ } else if (operation.kind === "patch" && operation.diff) {
439
+ $$renderer3.push("<!--[1-->");
440
+ $$renderer3.push(`<div class="cinder-approval-card__section">`);
441
+ Code_block($$renderer3, {
442
+ code: operation.diff,
443
+ language: "diff",
444
+ showLanguageLabel: false
445
+ });
446
+ $$renderer3.push(`<!----></div>`);
447
+ } else {
448
+ $$renderer3.push("<!--[-1-->");
449
+ }
450
+ $$renderer3.push(`<!--]--> `);
451
+ if (filesTouched().length > 0) {
452
+ $$renderer3.push("<!--[0-->");
453
+ $$renderer3.push(`<div class="cinder-approval-card__section"><div class="cinder-approval-card__section-heading">`);
454
+ $2.element($$renderer3, sectionTag(), () => {
455
+ $$renderer3.push(` class="cinder-approval-card__section-title"`);
456
+ }, () => {
457
+ $$renderer3.push(`Files touched`);
458
+ });
459
+ $$renderer3.push(` `);
460
+ Badge($$renderer3, {
461
+ size: "sm",
462
+ children: ($$renderer4) => {
463
+ $$renderer4.push(`<!---->${$2.escape(filesTouchedLabel())}`);
464
+ },
465
+ $$slots: { default: true }
466
+ });
467
+ $$renderer3.push(`<!----></div> <ul class="cinder-approval-card__file-list"><!--[-->`);
468
+ const each_array = $2.ensure_array_like(filesTouched());
469
+ for (let $$index = 0, $$length = each_array.length;$$index < $$length; $$index++) {
470
+ let file = each_array[$$index];
471
+ $$renderer3.push(`<li class="cinder-approval-card__file"><span class="cinder-approval-card__file-path">${$2.escape(file)}</span> `);
472
+ Copy_button($$renderer3, {
473
+ value: file,
474
+ label: `Copy path ${file}`,
475
+ copiedLabel: "Path copied",
476
+ class: "cinder-approval-card__file-copy",
477
+ iconOnly: true
478
+ });
479
+ $$renderer3.push(`<!----></li>`);
480
+ }
481
+ $$renderer3.push(`<!--]--></ul></div>`);
482
+ } else {
483
+ $$renderer3.push("<!--[-1-->");
484
+ }
485
+ $$renderer3.push(`<!--]--> `);
486
+ if (hasArgumentsPreview()) {
487
+ $$renderer3.push("<!--[0-->");
488
+ $$renderer3.push(`<div class="cinder-approval-card__section">`);
489
+ Payload_inspector($$renderer3, {
490
+ value: argumentsPreview().value,
491
+ truncated: argumentsPreview().truncated,
492
+ label: `${tool.name} arguments`
493
+ });
494
+ $$renderer3.push(`<!----></div>`);
495
+ } else {
496
+ $$renderer3.push("<!--[-1-->");
497
+ }
498
+ $$renderer3.push(`<!--]--> `);
499
+ Collapsible($$renderer3, {
500
+ trigger: "Details",
501
+ class: "cinder-approval-card__details",
502
+ children: ($$renderer4) => {
503
+ $$renderer4.push(`<div class="cinder-approval-card__details-content">`);
504
+ if (sandbox) {
505
+ $$renderer4.push("<!--[0-->");
506
+ $$renderer4.push(`<div class="cinder-approval-card__details-group"><p class="cinder-approval-card__details-label">Sandbox</p> <dl class="cinder-approval-card__metadata cinder-approval-card__metadata--compact"><div class="cinder-approval-card__metadata-item"><dt>Provider</dt> <dd>${$2.escape(sandbox.provider)}</dd></div> <div class="cinder-approval-card__metadata-item"><dt>Profile</dt> <dd>${$2.escape(sandbox.name)}</dd></div> <div class="cinder-approval-card__metadata-item"><dt>Working directory</dt> <dd>${$2.escape(sandbox.workingDir)}</dd></div></dl></div>`);
507
+ } else {
508
+ $$renderer4.push("<!--[-1-->");
509
+ }
510
+ $$renderer4.push(`<!--]--> `);
511
+ if (environmentNames().length > 0) {
512
+ $$renderer4.push("<!--[0-->");
513
+ $$renderer4.push(`<div class="cinder-approval-card__details-group"><p class="cinder-approval-card__details-label">Environment</p> <ul class="cinder-approval-card__environment-list" aria-label="Environment variable names only; values are never shown"><!--[-->`);
514
+ const each_array_1 = $2.ensure_array_like(environmentNames());
515
+ for (let $$index_1 = 0, $$length = each_array_1.length;$$index_1 < $$length; $$index_1++) {
516
+ let environmentName = each_array_1[$$index_1];
517
+ $$renderer4.push(`<li>`);
518
+ Badge($$renderer4, {
519
+ size: "sm",
520
+ mono: true,
521
+ children: ($$renderer5) => {
522
+ $$renderer5.push(`<!---->${$2.escape(environmentName)}`);
523
+ },
524
+ $$slots: { default: true }
525
+ });
526
+ $$renderer4.push(`<!----></li>`);
527
+ }
528
+ $$renderer4.push(`<!--]--></ul></div>`);
529
+ } else {
530
+ $$renderer4.push("<!--[-1-->");
531
+ }
532
+ $$renderer4.push(`<!--]--> <dl class="cinder-approval-card__metadata"><div class="cinder-approval-card__metadata-item"><dt>Policy version</dt> <dd>${$2.escape(policyVersion)} <span class="cinder-approval-card__metadata-help">Approval policy that produced this request.</span></dd></div> <div class="cinder-approval-card__metadata-item"><dt>Idempotency key</dt> <dd>${$2.escape(idempotencyKey)} <span class="cinder-approval-card__metadata-help">Keeps this decision durable if it is submitted more than once.</span></dd></div> `);
533
+ if (snapshotId) {
534
+ $$renderer4.push("<!--[0-->");
535
+ $$renderer4.push(`<div class="cinder-approval-card__metadata-item"><dt>Snapshot</dt> <dd>${$2.escape(snapshotId)} <span class="cinder-approval-card__metadata-help">Workspace snapshot this request was captured against.</span></dd></div>`);
536
+ } else {
537
+ $$renderer4.push("<!--[-1-->");
538
+ }
539
+ $$renderer4.push(`<!--]--></dl></div>`);
540
+ },
541
+ $$slots: { default: true }
542
+ });
543
+ $$renderer3.push(`<!----> `);
544
+ if (isActionable() && hasResolutionCallback()) {
545
+ $$renderer3.push("<!--[0-->");
546
+ Approval_card_actions($$renderer3, {
547
+ idBase: rootId(),
548
+ requestKey: idempotencyKey,
549
+ canEditArguments: canEditArguments(),
550
+ argumentsValue: editableArgumentsValue(),
551
+ resolve: resolveIfActionable
552
+ });
553
+ } else {
554
+ $$renderer3.push("<!--[-1-->");
555
+ }
556
+ $$renderer3.push(`<!--]--> `);
557
+ if (!isActionable()) {
558
+ $$renderer3.push("<!--[0-->");
559
+ $$renderer3.push(`<p class="cinder-approval-card__readonly-summary"${$2.attr("data-cinder-state", effectiveState())}>${$2.escape(readonlySummary())}</p>`);
560
+ } else {
561
+ $$renderer3.push("<!--[-1-->");
562
+ }
563
+ $$renderer3.push(`<!--]--></div>`);
564
+ },
565
+ $$slots: { header: true, default: true }
566
+ });
567
+ }
568
+ $$renderer2.push(`<!----></article>`);
569
+ }, Approval_card);
570
+ }
571
+
572
+ // src/components/approval-card/index.ts
573
+ var approval_card_default = Approval_card;
574
+ export { Approval_card, approval_card_default };
575
+
576
+ //# debugId=4BF0F9DF540B462B64756E2164756E21
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Date_picker
3
- } from "./index.server-n39drzes.js";
3
+ } from "./index.server-hpeavvnq.js";
4
4
  import {
5
5
  composeDescribedBy,
6
6
  describeId,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Checkbox
3
- } from "./index.server-e8x1hgw6.js";
3
+ } from "./index.server-dz1r9xw5.js";
4
4
 
5
5
  // src/components/checkbox/index.ts
6
6
  var checkbox_default = Checkbox;
@@ -16,6 +16,7 @@ function Tab($$renderer, $$props) {
16
16
  let {
17
17
  value,
18
18
  id,
19
+ controls,
19
20
  disabled = false,
20
21
  class: className,
21
22
  children,
@@ -23,7 +24,10 @@ function Tab($$renderer, $$props) {
23
24
  } = $$props;
24
25
  const tabs = getTabsContext();
25
26
  const tabId = $.derived(() => id ?? `${tabs.baseId}-tab-${value}`);
26
- const panelId = $.derived(() => `${tabs.baseId}-panel-${value}`);
27
+ const panelId = $.derived(() => {
28
+ const controlsId = controls?.trim();
29
+ return controlsId ? controlsId : `${tabs.baseId}-panel-${value}`;
30
+ });
27
31
  const isActive = $.derived(() => tabs.isActive(value));
28
32
  const isFocusable = $.derived(() => tabs.isFocusable(value));
29
33
  let buttonElement = undefined;
@@ -50,4 +54,4 @@ function Tab($$renderer, $$props) {
50
54
 
51
55
  export { Tab };
52
56
 
53
- //# debugId=4429D4B97160FEB764756E2164756E21
57
+ //# debugId=DBDEFAA28B6CE73064756E2164756E21
@@ -3,7 +3,7 @@ import {
3
3
  } from "./index.server-nq2r5m1r.js";
4
4
  import {
5
5
  Popover
6
- } from "./index.server-hcfnae5y.js";
6
+ } from "./index.server-dwwqssey.js";
7
7
  import {
8
8
  classNames
9
9
  } from "./index.server-z7nvkz8v.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Tab
3
- } from "./index.server-p8d04em5.js";
3
+ } from "./index.server-hcsd5gdb.js";
4
4
 
5
5
  // src/components/tab/index.ts
6
6
  var tab_default = Tab;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Segment
3
- } from "./index.server-e3fnv1g6.js";
3
+ } from "./index.server-sedjxt36.js";
4
4
 
5
5
  // src/components/segment/index.ts
6
6
  var segment_default = Segment;
@@ -66,6 +66,8 @@ function Button_group($$renderer, $$props) {
66
66
  }, Button_group);
67
67
  }
68
68
 
69
- export { Button_group };
69
+ // src/components/button-group/index.ts
70
+ var button_group_default = Button_group;
71
+ export { Button_group, button_group_default };
70
72
 
71
- //# debugId=F7564F4B28772EA064756E2164756E21
73
+ //# debugId=7F1A1EC89BAC818D64756E2164756E21
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  Table
3
3
  } from "./index.server-mzj20rfz.js";
4
+ import {
5
+ Table_header
6
+ } from "./index.server-v90d8593.js";
4
7
  import {
5
8
  Table_header_cell
6
9
  } from "./index.server-8gv0tm3r.js";
@@ -13,9 +16,6 @@ import {
13
16
  import {
14
17
  Table_cell
15
18
  } from "./index.server-4kxpbg4p.js";
16
- import {
17
- Table_header
18
- } from "./index.server-v90d8593.js";
19
19
 
20
20
  // src/components/table/index.ts
21
21
  var Table2 = Object.assign(Table, {
@@ -28,4 +28,4 @@ var Table2 = Object.assign(Table, {
28
28
  var table_default = Table2;
29
29
  export { Table2 as Table, table_default };
30
30
 
31
- //# debugId=D664DC57C613438D64756E2164756E21
31
+ //# debugId=F8B5387F8E64233864756E2164756E21