@lostgradient/cinder 0.8.0 → 0.11.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 (371) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +2 -2
  3. package/components.json +140 -18
  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 +435 -218
  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/builders.d.ts +17 -8
  20. package/dist/components/chat/chat.schema.js +44 -2
  21. package/dist/components/chat/chat.svelte.d.ts +4 -2
  22. package/dist/components/chat/chat.types.d.ts +34 -3
  23. package/dist/components/chat/container/chat.svelte.d.ts +4 -2
  24. package/dist/components/chat/conversation-model.d.ts +1 -1
  25. package/dist/components/chat/index.d.ts +4 -4
  26. package/dist/components/chat/index.js +2767 -6278
  27. package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
  28. package/dist/components/chat/input/chat-input.svelte.d.ts +22 -1
  29. package/dist/components/chat/input/index.d.ts +1 -0
  30. package/dist/components/chat/utilities/conversation.d.ts +6 -6
  31. package/dist/components/chat-composer-popover/chat-composer-popover-filter.d.ts +11 -0
  32. package/dist/components/chat-composer-popover/chat-composer-popover.css +7 -0
  33. package/dist/components/chat-composer-popover/chat-composer-popover.css.d.ts +1 -0
  34. package/dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts +3 -0
  35. package/dist/components/chat-composer-popover/chat-composer-popover.schema.js +150 -0
  36. package/dist/components/chat-composer-popover/chat-composer-popover.svelte.d.ts +46 -0
  37. package/dist/components/chat-composer-popover/chat-composer-popover.types.d.ts +77 -0
  38. package/dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts +2 -0
  39. package/dist/components/chat-composer-popover/chat-composer-popover.variables.js +61 -0
  40. package/dist/components/chat-composer-popover/index.d.ts +6 -0
  41. package/dist/components/chat-composer-popover/index.js +3285 -0
  42. package/dist/components/chat-conversation-header/index.js +577 -4537
  43. package/dist/components/chat-conversation-list/index.js +24 -3984
  44. package/dist/components/code-block/code-block.schema.js +5 -1
  45. package/dist/components/code-block/code-block.types.d.ts +6 -0
  46. package/dist/components/code-block/index.js +4 -4
  47. package/dist/components/command-item/index.js +7 -6
  48. package/dist/components/command-menu/command-menu.schema.js +5 -1
  49. package/dist/components/command-menu/command-menu.types.d.ts +2 -0
  50. package/dist/components/command-menu/index.js +48 -19
  51. package/dist/components/command-palette/index.js +40 -14
  52. package/dist/components/connection-indicator/connection-indicator.css +136 -0
  53. package/dist/components/connection-indicator/connection-indicator.css.d.ts +1 -0
  54. package/dist/components/connection-indicator/connection-indicator.schema.d.ts +3 -0
  55. package/dist/components/connection-indicator/connection-indicator.schema.js +89 -0
  56. package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +21 -0
  57. package/dist/components/connection-indicator/connection-indicator.types.d.ts +46 -0
  58. package/dist/components/connection-indicator/connection-indicator.variables.d.ts +2 -0
  59. package/dist/components/connection-indicator/connection-indicator.variables.js +61 -0
  60. package/dist/components/connection-indicator/index.d.ts +5 -0
  61. package/dist/components/connection-indicator/index.js +409 -0
  62. package/dist/components/container/container.schema.js +4 -4
  63. package/dist/components/event-stream-viewer/index.js +44 -44
  64. package/dist/components/experimental/json-viewer/index.js +44 -44
  65. package/dist/components/invocation-rule-builder/index.d.ts +1 -1
  66. package/dist/components/invocation-rule-builder/index.js +305 -150
  67. package/dist/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  68. package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +89 -5
  69. package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -1
  70. package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +114 -16
  71. package/dist/components/json-schema-editor/index.js +5 -2
  72. package/dist/components/json-viewer/index.js +44 -44
  73. package/dist/components/json-viewer/json-viewer.css +10 -6
  74. package/dist/components/payload-inspector/index.d.ts +1 -1
  75. package/dist/components/payload-inspector/index.js +306 -1422
  76. package/dist/components/payload-inspector/payload-inspector.css +15 -75
  77. package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
  78. package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
  79. package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
  80. package/dist/components/run-step-timeline/index.d.ts +1 -1
  81. package/dist/components/run-step-timeline/index.js +992 -559
  82. package/dist/components/run-step-timeline/run-step-branch-disclosure.svelte.d.ts +17 -0
  83. package/dist/components/run-step-timeline/run-step-timeline.css +124 -0
  84. package/dist/components/run-step-timeline/run-step-timeline.schema.js +873 -350
  85. package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -15
  86. package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +182 -5
  87. package/dist/components/run-step-timeline/run-step-timeline.utilities.d.ts +52 -0
  88. package/dist/components/schedule-builder/index.d.ts +5 -0
  89. package/dist/components/schedule-builder/index.js +3176 -0
  90. package/dist/components/schedule-builder/schedule-builder.css +121 -0
  91. package/dist/components/schedule-builder/schedule-builder.css.d.ts +1 -0
  92. package/dist/components/schedule-builder/schedule-builder.schema.d.ts +3 -0
  93. package/dist/components/schedule-builder/schedule-builder.schema.js +141 -0
  94. package/dist/components/schedule-builder/schedule-builder.svelte.d.ts +22 -0
  95. package/dist/components/schedule-builder/schedule-builder.types.d.ts +130 -0
  96. package/dist/components/schedule-builder/schedule-builder.utilities.d.ts +78 -0
  97. package/dist/components/schedule-builder/schedule-builder.variables.d.ts +2 -0
  98. package/dist/components/schedule-builder/schedule-builder.variables.js +61 -0
  99. package/dist/components/tab/index.js +5 -2
  100. package/dist/components/tab/tab.schema.js +7 -3
  101. package/dist/components/tab/tab.svelte.d.ts +2 -1
  102. package/dist/components/tab/tab.types.d.ts +8 -2
  103. package/dist/components/tabs/index.js +5 -2
  104. package/dist/components/tag-input/index.js +22 -4
  105. package/dist/components/tag-input/tag-input.schema.js +5 -1
  106. package/dist/components/tag-input/tag-input.types.d.ts +4 -0
  107. package/dist/components/team-section/index.js +2 -1
  108. package/dist/components/testimonial-section/index.js +2 -1
  109. package/dist/index.d.ts +10 -4
  110. package/dist/index.js +28577 -30168
  111. package/dist/server/components/access-gate/index.js +3 -1
  112. package/dist/server/components/accordion/index.js +2 -2
  113. package/dist/server/components/alert-dialog/index.js +2 -2
  114. package/dist/server/components/approval-card/index.js +15 -19
  115. package/dist/server/components/autocomplete/index.js +7 -7
  116. package/dist/server/components/avatar-group/index.js +5 -5
  117. package/dist/server/components/button-group/index.js +3 -5
  118. package/dist/server/components/card/index.js +2 -2
  119. package/dist/server/components/chat/index.js +15 -12
  120. package/dist/server/components/chat-composer-popover/index.js +26 -0
  121. package/dist/server/components/chat-conversation-header/index.js +10 -11
  122. package/dist/server/components/chat-conversation-list/index.js +4 -5
  123. package/dist/server/components/checkbox/index.js +3 -3
  124. package/dist/server/components/choice-grid/index.js +2 -2
  125. package/dist/server/components/code-block/index.js +2 -2
  126. package/dist/server/components/color-field/index.js +3 -3
  127. package/dist/server/components/combobox/index.js +6 -6
  128. package/dist/server/components/command-item/index.js +5 -3
  129. package/dist/server/components/command-menu/index.js +6 -4
  130. package/dist/server/components/command-palette/index.js +2 -2
  131. package/dist/server/components/confirm-dialog/index.js +2 -2
  132. package/dist/server/components/connection-indicator/index.js +16 -0
  133. package/dist/server/components/context-menu/index.js +5 -5
  134. package/dist/server/components/data-table/index.js +5 -5
  135. package/dist/server/components/date-picker/index.js +6 -6
  136. package/dist/server/components/date-range-field/index.js +7 -7
  137. package/dist/server/components/description-list/index.js +3 -5
  138. package/dist/server/components/diff-viewer/index.js +9 -8
  139. package/dist/server/components/drawer/index.js +3 -3
  140. package/dist/server/components/dropdown/index.js +4 -4
  141. package/dist/server/components/event-stream-viewer/index.js +2 -2
  142. package/dist/server/components/experimental/json-viewer/index.js +2 -2
  143. package/dist/server/components/faceted-filter-bar/index.js +1 -1
  144. package/dist/server/components/hover-card/index.js +1 -1
  145. package/dist/server/components/input/index.js +3 -3
  146. package/dist/server/components/invocation-rule-builder/index.js +1 -1
  147. package/dist/server/components/json-schema-editor/index.js +24 -23
  148. package/dist/server/components/json-viewer/index.js +2 -2
  149. package/dist/server/components/markdown-editor/index.js +13 -13
  150. package/dist/server/components/modal/index.js +1 -1
  151. package/dist/server/components/multi-select/index.js +1 -1
  152. package/dist/server/components/newsletter-section/index.js +3 -3
  153. package/dist/server/components/payload-inspector/index.js +4 -16
  154. package/dist/server/components/popover/index.js +5 -5
  155. package/dist/server/components/review-editor/index.js +27 -26
  156. package/dist/server/components/run-step-timeline/index.js +2 -2
  157. package/dist/server/components/schedule-builder/index.js +30 -0
  158. package/dist/server/components/schema-form/index.js +4 -4
  159. package/dist/server/components/secret-value-field/index.js +3 -5
  160. package/dist/server/components/segment/index.js +3 -3
  161. package/dist/server/components/segmented-control/index.js +4 -4
  162. package/dist/server/components/selection-popover/index.js +4 -4
  163. package/dist/server/components/sheet/index.js +2 -2
  164. package/dist/server/components/side-navigation/index.js +2 -2
  165. package/dist/server/components/sidebar/index.js +3 -3
  166. package/dist/server/components/tab/index.js +2 -2
  167. package/dist/server/components/table/index.js +3 -3
  168. package/dist/server/components/tabs/index.js +4 -4
  169. package/dist/server/components/tag-input/index.js +3 -3
  170. package/dist/server/components/team-section/index.js +8 -8
  171. package/dist/server/components/testimonial-section/index.js +2 -2
  172. package/dist/server/components/time-field/index.js +5 -3
  173. package/dist/server/components/toggle/index.js +2 -2
  174. package/dist/server/components/tooltip/index.js +1 -1
  175. package/dist/server/index.js +235 -211
  176. package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
  177. package/dist/server/index.server-0sx92swg.js +9 -0
  178. package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
  179. package/dist/server/{index.server-s9khh4ry.js → index.server-2bbwajb2.js} +3 -5
  180. package/dist/server/index.server-2hqrv7ca.js +9 -0
  181. package/dist/server/{index.server-69epaape.js → index.server-2qj6s2mh.js} +1 -1
  182. package/dist/server/{index.server-gxf0d1p5.js → index.server-2s5h1d05.js} +2 -2
  183. package/dist/server/{index.server-qfa2rxzx.js → index.server-2zdbz3rj.js} +3 -5
  184. package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
  185. package/dist/server/{index.server-0jhra85x.js → index.server-3w72dxz7.js} +4 -4
  186. package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
  187. package/dist/server/{index.server-v4zabrsx.js → index.server-4x4hgvqe.js} +434 -26
  188. package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
  189. package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
  190. package/dist/server/{index.server-j3ddzcaa.js → index.server-5gzyqv78.js} +6 -6
  191. package/dist/server/index.server-67qgdypc.js +9 -0
  192. package/dist/server/index.server-6hnfzc7f.js +263 -0
  193. package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
  194. package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
  195. package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
  196. package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
  197. package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
  198. package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
  199. package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
  200. package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
  201. package/dist/server/index.server-be9bpqeh.js +93 -0
  202. package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
  203. package/dist/server/{index.server-f3z7tpxr.js → index.server-c42b462p.js} +2 -4
  204. package/dist/server/{index.server-7vyzen5x.js → index.server-c5qv3p61.js} +171 -63
  205. package/dist/server/index.server-cch0eed5.js +144 -0
  206. package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
  207. package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
  208. package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
  209. package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
  210. package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
  211. package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
  212. package/dist/server/index.server-gkazv439.js +576 -0
  213. package/dist/server/index.server-gmh5ar16.js +2 -0
  214. package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
  215. package/dist/server/{index.server-cbtg8rq5.js → index.server-h89zk5ev.js} +8 -8
  216. package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
  217. package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
  218. package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
  219. package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
  220. package/dist/server/{index.server-mehav5vs.js → index.server-jdcq5zza.js} +7 -7
  221. package/dist/server/{index.server-jync915v.js → index.server-jfrssta6.js} +25 -25
  222. package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
  223. package/dist/server/{index.server-ejyf7e48.js → index.server-jj76374p.js} +1 -1
  224. package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
  225. package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
  226. package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
  227. package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
  228. package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
  229. package/dist/server/index.server-m0ezemav.js +170 -0
  230. package/dist/server/index.server-m191rm44.js +79 -0
  231. package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
  232. package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
  233. package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
  234. package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
  235. package/dist/server/index.server-qbkxz7r2.js +750 -0
  236. package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
  237. package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
  238. package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
  239. package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
  240. package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
  241. package/dist/server/{index.server-f23vtaw4.js → index.server-tcay903b.js} +8 -7
  242. package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
  243. package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
  244. package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
  245. package/dist/server/index.server-xtjjmsyq.js +315 -0
  246. package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
  247. package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
  248. package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
  249. package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
  250. package/dist/server/index.server-z38bxms8.js +734 -0
  251. package/dist/server/{index.server-atjc1qcq.js → index.server-z7hxtqs1.js} +1 -1
  252. package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
  253. package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
  254. package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
  255. package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
  256. package/package.json +102 -5
  257. package/src/components/_internal/command-list-context.ts +3 -3
  258. package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
  259. package/src/components/approval-card/approval-card-actions.svelte +168 -0
  260. package/src/components/approval-card/approval-card-state.ts +152 -1
  261. package/src/components/approval-card/approval-card.css +269 -92
  262. package/src/components/approval-card/approval-card.examples.json +3 -3
  263. package/src/components/approval-card/approval-card.schema.json +9 -30
  264. package/src/components/approval-card/approval-card.schema.ts +13 -31
  265. package/src/components/approval-card/approval-card.svelte +176 -470
  266. package/src/components/approval-card/approval-card.types.ts +15 -28
  267. package/src/components/approval-card/index.ts +1 -0
  268. package/src/components/card/card.css +5 -0
  269. package/src/components/card/card.schema.json +1 -1
  270. package/src/components/card/card.schema.ts +1 -1
  271. package/src/components/card/card.svelte +1 -0
  272. package/src/components/card/card.types.ts +2 -2
  273. package/src/components/chat/builders.ts +445 -14
  274. package/src/components/chat/chat.schema.json +36 -1
  275. package/src/components/chat/chat.schema.ts +44 -1
  276. package/src/components/chat/chat.svelte +12 -0
  277. package/src/components/chat/chat.types.ts +35 -3
  278. package/src/components/chat/container/chat.svelte +73 -3
  279. package/src/components/chat/conversation-model.ts +1 -0
  280. package/src/components/chat/index.ts +16 -3
  281. package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
  282. package/src/components/chat/input/chat-input.svelte +22 -5
  283. package/src/components/chat/input/index.ts +5 -0
  284. package/src/components/chat/utilities/conversation.ts +33 -15
  285. package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
  286. package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
  287. package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
  288. package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
  289. package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
  290. package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
  291. package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
  292. package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
  293. package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
  294. package/src/components/chat-composer-popover/index.ts +19 -0
  295. package/src/components/code-block/code-block.schema.json +4 -0
  296. package/src/components/code-block/code-block.schema.ts +5 -0
  297. package/src/components/code-block/code-block.svelte +3 -3
  298. package/src/components/code-block/code-block.types.ts +6 -0
  299. package/src/components/command-item/command-item.svelte +7 -6
  300. package/src/components/command-menu/command-menu.schema.json +4 -0
  301. package/src/components/command-menu/command-menu.schema.ts +4 -0
  302. package/src/components/command-menu/command-menu.svelte +16 -5
  303. package/src/components/command-menu/command-menu.types.ts +2 -0
  304. package/src/components/connection-indicator/connection-indicator.css +136 -0
  305. package/src/components/connection-indicator/connection-indicator.examples.json +31 -0
  306. package/src/components/connection-indicator/connection-indicator.schema.json +29 -0
  307. package/src/components/connection-indicator/connection-indicator.schema.ts +36 -0
  308. package/src/components/connection-indicator/connection-indicator.svelte +63 -0
  309. package/src/components/connection-indicator/connection-indicator.types.ts +58 -0
  310. package/src/components/connection-indicator/connection-indicator.variables.json +1 -0
  311. package/src/components/connection-indicator/connection-indicator.variables.ts +3 -0
  312. package/src/components/connection-indicator/index.ts +10 -0
  313. package/src/components/container/container.schema.json +3 -3
  314. package/src/components/container/container.schema.ts +3 -3
  315. package/src/components/invocation-rule-builder/index.ts +4 -0
  316. package/src/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
  317. package/src/components/invocation-rule-builder/invocation-rule-builder.examples.json +6 -0
  318. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.json +76 -3
  319. package/src/components/invocation-rule-builder/invocation-rule-builder.schema.ts +83 -3
  320. package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +326 -113
  321. package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +157 -43
  322. package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
  323. package/src/components/json-viewer/json-viewer.css +10 -6
  324. package/src/components/payload-inspector/index.ts +0 -2
  325. package/src/components/payload-inspector/payload-inspector.css +15 -75
  326. package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
  327. package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
  328. package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
  329. package/src/components/payload-inspector/payload-inspector.svelte +46 -239
  330. package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
  331. package/src/components/run-step-timeline/index.ts +8 -0
  332. package/src/components/run-step-timeline/run-step-branch-disclosure.svelte +16 -0
  333. package/src/components/run-step-timeline/run-step-timeline.css +124 -0
  334. package/src/components/run-step-timeline/run-step-timeline.examples.json +18 -0
  335. package/src/components/run-step-timeline/run-step-timeline.schema.json +872 -349
  336. package/src/components/run-step-timeline/run-step-timeline.schema.ts +931 -349
  337. package/src/components/run-step-timeline/run-step-timeline.svelte +387 -268
  338. package/src/components/run-step-timeline/run-step-timeline.types.ts +192 -5
  339. package/src/components/run-step-timeline/run-step-timeline.utilities.ts +242 -0
  340. package/src/components/schedule-builder/index.ts +14 -0
  341. package/src/components/schedule-builder/schedule-builder.css +121 -0
  342. package/src/components/schedule-builder/schedule-builder.examples.json +31 -0
  343. package/src/components/schedule-builder/schedule-builder.schema.json +78 -0
  344. package/src/components/schedule-builder/schedule-builder.schema.ts +86 -0
  345. package/src/components/schedule-builder/schedule-builder.svelte +629 -0
  346. package/src/components/schedule-builder/schedule-builder.types.ts +137 -0
  347. package/src/components/schedule-builder/schedule-builder.utilities.ts +344 -0
  348. package/src/components/schedule-builder/schedule-builder.variables.json +1 -0
  349. package/src/components/schedule-builder/schedule-builder.variables.ts +3 -0
  350. package/src/components/tab/tab.schema.json +6 -2
  351. package/src/components/tab/tab.schema.ts +8 -2
  352. package/src/components/tab/tab.svelte +9 -5
  353. package/src/components/tab/tab.types.ts +8 -2
  354. package/src/components/tag-input/tag-input.schema.json +4 -0
  355. package/src/components/tag-input/tag-input.schema.ts +4 -0
  356. package/src/components/tag-input/tag-input.svelte +20 -3
  357. package/src/components/tag-input/tag-input.types.ts +4 -0
  358. package/src/index.ts +41 -5
  359. package/src/styles/components.css +3 -0
  360. package/dist/server/index-49we2xfs.js +0 -344
  361. package/dist/server/index-8fhvxk30.js +0 -265
  362. package/dist/server/index-x2ysg8ds.js +0 -388
  363. package/dist/server/index.server-20j0jh30.js +0 -9
  364. package/dist/server/index.server-dc35kh7d.js +0 -1835
  365. package/dist/server/index.server-kd4b0342.js +0 -607
  366. package/dist/server/index.server-n5cdmsz4.js +0 -30
  367. package/dist/server/index.server-pxg74pyp.js +0 -393
  368. package/dist/server/index.server-rjap4k7y.js +0 -1389
  369. package/dist/server/index.server-vt6sn9y4.js +0 -447
  370. package/dist/server/index.server-w63n618v.js +0 -9
  371. package/dist/server/index.server-y2pa1k46.js +0 -9
@@ -0,0 +1,121 @@
1
+ @layer cinder.tokens, cinder.foundation, cinder.components, cinder.utilities;
2
+ @import '../chip/chip.css';
3
+ @import '../input/input.css';
4
+ @import '../number-input/number-input.css';
5
+ @import '../segmented-control/segmented-control.css';
6
+ @import '../select/select.css';
7
+ @import '../time-field/time-field.css';
8
+
9
+ @layer cinder.components {
10
+ /* ========================================
11
+ * SCHEDULE-BUILDER
12
+ * Recurrence-definition control: presets, cron, and interval authoring
13
+ * modes behind a tablist, with an always-visible summary line, next-fires
14
+ * preview, and timezone display slot.
15
+ * ======================================== */
16
+
17
+ .cinder-schedule-builder {
18
+ display: flex;
19
+ flex-direction: column;
20
+ gap: var(--cinder-space-4);
21
+ }
22
+
23
+ /* ----------------------------------------
24
+ * Mode panel
25
+ * ---------------------------------------- */
26
+
27
+ .cinder-schedule-builder__panel {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: var(--cinder-space-3);
31
+ padding-block-start: var(--cinder-space-1);
32
+ }
33
+
34
+ .cinder-schedule-builder__preset-kind {
35
+ margin-block-end: var(--cinder-space-1);
36
+ }
37
+
38
+ .cinder-schedule-builder__field-row {
39
+ display: flex;
40
+ flex-wrap: wrap;
41
+ align-items: flex-end;
42
+ gap: var(--cinder-space-3);
43
+ }
44
+
45
+ .cinder-schedule-builder__field-row > * {
46
+ flex: 1 1 10rem;
47
+ min-inline-size: 8rem;
48
+ }
49
+
50
+ .cinder-schedule-builder__weekday-group {
51
+ display: flex;
52
+ flex-wrap: wrap;
53
+ gap: var(--cinder-space-2);
54
+ }
55
+
56
+ .cinder-schedule-builder__cron-fields {
57
+ display: grid;
58
+ grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
59
+ gap: var(--cinder-space-3);
60
+ }
61
+
62
+ /* ----------------------------------------
63
+ * Always-visible informational blocks: summary, preview, timezone
64
+ * ---------------------------------------- */
65
+
66
+ .cinder-schedule-builder__summary,
67
+ .cinder-schedule-builder__preview,
68
+ .cinder-schedule-builder__timezone {
69
+ display: flex;
70
+ flex-direction: column;
71
+ gap: var(--cinder-space-1);
72
+ margin: 0;
73
+ padding: var(--cinder-space-3);
74
+ border: 1px solid var(--cinder-border-muted);
75
+ border-radius: var(--cinder-radius-md);
76
+ background: var(--cinder-surface-inset);
77
+ }
78
+
79
+ .cinder-schedule-builder__section-label {
80
+ display: block;
81
+ margin: 0;
82
+ font-size: var(--cinder-text-xs);
83
+ font-weight: var(--cinder-font-semibold);
84
+ text-transform: uppercase;
85
+ color: var(--cinder-text-muted);
86
+ }
87
+
88
+ .cinder-schedule-builder__summary-text {
89
+ margin: 0;
90
+ font-size: var(--cinder-text-sm);
91
+ color: var(--cinder-text);
92
+ }
93
+
94
+ .cinder-schedule-builder__preview-list {
95
+ margin: 0;
96
+ padding: 0;
97
+ list-style: none;
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: var(--cinder-space-1);
101
+ }
102
+
103
+ .cinder-schedule-builder__preview-item {
104
+ font-size: var(--cinder-text-sm);
105
+ color: var(--cinder-text);
106
+ font-variant-numeric: tabular-nums;
107
+ }
108
+
109
+ .cinder-schedule-builder__timezone-value {
110
+ margin: 0;
111
+ font-size: var(--cinder-text-sm);
112
+ color: var(--cinder-text);
113
+ font-family: var(--cinder-font-mono);
114
+ }
115
+
116
+ .cinder-schedule-builder__empty {
117
+ font-size: var(--cinder-text-sm);
118
+ color: var(--cinder-text-muted);
119
+ font-style: italic;
120
+ }
121
+ }
@@ -0,0 +1,3 @@
1
+ import type { ComponentSchema } from '../../schema-types';
2
+ declare const _default: ComponentSchema;
3
+ export default _default;
@@ -0,0 +1,141 @@
1
+ var __create = Object.create;
2
+ var __getProtoOf = Object.getPrototypeOf;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ function __accessProp(key) {
7
+ return this[key];
8
+ }
9
+ var __toESMCache_node;
10
+ var __toESMCache_esm;
11
+ var __toESM = (mod, isNodeMode, target) => {
12
+ var canCache = mod != null && typeof mod === "object";
13
+ if (canCache) {
14
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
15
+ var cached = cache.get(mod);
16
+ if (cached)
17
+ return cached;
18
+ }
19
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
20
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
21
+ for (let key of __getOwnPropNames(mod))
22
+ if (!__hasOwnProp.call(to, key))
23
+ __defProp(to, key, {
24
+ get: __accessProp.bind(mod, key),
25
+ enumerable: true
26
+ });
27
+ if (canCache)
28
+ cache.set(mod, to);
29
+ return to;
30
+ };
31
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
32
+ var __returnValue = (v) => v;
33
+ function __exportSetter(name, newValue) {
34
+ this[name] = __returnValue.bind(null, newValue);
35
+ }
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, {
39
+ get: all[name],
40
+ enumerable: true,
41
+ configurable: true,
42
+ set: __exportSetter.bind(all, name)
43
+ });
44
+ };
45
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
46
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
47
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
48
+ }) : x)(function(x) {
49
+ if (typeof require !== "undefined")
50
+ return require.apply(this, arguments);
51
+ throw Error('Dynamic require of "' + x + '" is not supported');
52
+ });
53
+
54
+ // src/components/schedule-builder/schedule-builder.schema.ts
55
+ var schema = {
56
+ $schema: "https://json-schema.org/draft/2020-12/schema",
57
+ type: "object",
58
+ properties: {
59
+ value: {
60
+ anyOf: [
61
+ {
62
+ type: "object",
63
+ properties: {
64
+ mode: {
65
+ const: "cron"
66
+ },
67
+ expression: {
68
+ type: "string"
69
+ }
70
+ },
71
+ additionalProperties: false,
72
+ required: ["expression", "mode"]
73
+ },
74
+ {
75
+ type: "object",
76
+ properties: {
77
+ mode: {
78
+ const: "interval"
79
+ },
80
+ every: {
81
+ type: "integer",
82
+ minimum: 1
83
+ },
84
+ unit: {
85
+ enum: ["minutes", "hours", "days", "weeks"]
86
+ }
87
+ },
88
+ additionalProperties: false,
89
+ required: ["every", "mode", "unit"]
90
+ }
91
+ ],
92
+ description: "The current recurrence value (controlled). When omitted, the component\nstarts from a sensible default (`interval`, every 15 minutes)."
93
+ },
94
+ previewCount: {
95
+ type: "integer",
96
+ description: "How many upcoming fires to request from `computeNextFires`. Defaults to 5.",
97
+ minimum: 1
98
+ },
99
+ timezoneLabel: {
100
+ type: "string",
101
+ description: "Timezone label rendered in the always-visible timezone display slot."
102
+ },
103
+ label: {
104
+ type: "string",
105
+ description: 'Accessible label for the whole control. Defaults to "Schedule".'
106
+ },
107
+ class: {
108
+ type: "string",
109
+ description: "Additional CSS classes applied to the root element."
110
+ }
111
+ },
112
+ additionalProperties: false,
113
+ metadata: {
114
+ unsupportedProps: [
115
+ {
116
+ name: "computeNextFires",
117
+ reason: "function-or-snippet",
118
+ description: `Injected next-fires computation. The component passes the current value and
119
+ the requested count and renders whatever fires the consumer returns. When
120
+ omitted, the preview list is hidden (the component ships no date logic).`
121
+ },
122
+ {
123
+ name: "onchange",
124
+ reason: "function-or-snippet",
125
+ description: `Called whenever the user edits the recurrence. Receives the next lossless
126
+ {@link ScheduleValue}. The consumer owns persistence and validation.`
127
+ },
128
+ {
129
+ name: "timezone",
130
+ reason: "function-or-snippet",
131
+ description: "Custom content for the timezone display slot. Takes precedence over\n`timezoneLabel` when both are supplied."
132
+ }
133
+ ]
134
+ }
135
+ };
136
+ var schedule_builder_schema_default = schema;
137
+ export {
138
+ schedule_builder_schema_default as default
139
+ };
140
+
141
+ //# debugId=AA80EA75536D901B64756E2164756E21
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @cinder
3
+ * @category form
4
+ * @status beta
5
+ * @purpose Recurrence-definition control that authors a cron or fixed-interval schedule via presets, raw cron fields, or an interval, alongside an always-visible summary, next-fires preview, and timezone slot.
6
+ * @tag schedule
7
+ * @tag recurrence
8
+ * @tag cron
9
+ * @tag form
10
+ * @useWhen Letting a user define when a job or notification recurs, supplying your own date/cron library to compute upcoming fire times.
11
+ * @useWhen You want a friendly presets UI (every N, daily, weekly, monthly) that still round-trips to a portable cron or interval value.
12
+ * @avoidWhen You need overlap policy, jitter, or backfill controls — those belong to the consumer's surrounding form. | invocation-rule-builder
13
+ * @avoidWhen You only need to pick a single point in time, not a recurrence — use date-picker instead. | date-picker
14
+ * @related date-picker, segmented-control, input, time-field
15
+ * @a11yPattern WAI-ARIA Tabs
16
+ * @a11yNote The three authoring modes (presets, cron, interval) are a tablist; each cron field reports validity via aria-invalid and an associated hint/error.
17
+ */
18
+ export type { ScheduleAuthoringMode, ScheduleBuilderProps, ScheduleFire, ScheduleIntervalUnit, ScheduleValue, } from './schedule-builder.types.ts';
19
+ import type { ScheduleBuilderProps } from './schedule-builder.types.ts';
20
+ declare const ScheduleBuilder: import("svelte").Component<ScheduleBuilderProps, {}, "">;
21
+ type ScheduleBuilder = ReturnType<typeof ScheduleBuilder>;
22
+ export default ScheduleBuilder;
@@ -0,0 +1,130 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ /**
4
+ * The unit for an interval recurrence.
5
+ */
6
+ export type ScheduleIntervalUnit = 'minutes' | 'hours' | 'days' | 'weeks';
7
+ /**
8
+ * The emitted, lossless recurrence value. There are only ever TWO value
9
+ * variants — `cron` and `interval` — even though the UI offers a third
10
+ * "presets" authoring mode. Presets are sugar that lower to one of these two
11
+ * (e.g. "every 15 minutes" → `interval`; "daily at 09:00" → `cron`); there is
12
+ * no `mode: 'preset'` in the value a consumer receives.
13
+ */
14
+ export type ScheduleValue = {
15
+ /** Discriminator: a 5-field cron recurrence. */
16
+ mode: 'cron';
17
+ /** The 5-field cron expression, space-separated (minute hour day-of-month month day-of-week). */
18
+ expression: string;
19
+ } | {
20
+ /** Discriminator: a fixed-interval recurrence. */
21
+ mode: 'interval';
22
+ /** How many `unit`s between fires. A positive integer. */
23
+ every: number;
24
+ /** The interval unit. */
25
+ unit: ScheduleIntervalUnit;
26
+ };
27
+ /**
28
+ * The authoring mode surfaced in the UI's SegmentedControl. Distinct from
29
+ * {@link ScheduleValue}'s `mode` discriminator: `presets` is an authoring
30
+ * convenience that emits a `cron` or `interval` value.
31
+ */
32
+ export type ScheduleAuthoringMode = 'presets' | 'cron' | 'interval';
33
+ /**
34
+ * A single computed upcoming fire, as returned by the injected
35
+ * {@link ScheduleBuilderProps.computeNextFires} callback. The component never
36
+ * computes or formats times itself (it ships no date/cron dependency): the
37
+ * consumer returns already-formatted display strings.
38
+ */
39
+ export type ScheduleFire = {
40
+ /** Stable identity for the keyed preview list. */
41
+ id: string;
42
+ /** Human-readable label for this fire, e.g. "Mon Jun 1, 09:00". */
43
+ label: string;
44
+ };
45
+ /**
46
+ * Props for the ScheduleBuilder component.
47
+ *
48
+ * ScheduleBuilder is a presentational recurrence-definition control. It owns
49
+ * no scheduling execution, persistence, or date math. It is date-library-free:
50
+ * the "next N fires" preview is produced by the injected `computeNextFires`
51
+ * callback, and degrades gracefully (the preview is hidden) when the callback
52
+ * is absent. Scope is recurrence only — overlap policy, jitter, and backfill
53
+ * belong to the consumer's surrounding form.
54
+ */
55
+ export type ScheduleBuilderProps = Omit<HTMLAttributes<HTMLDivElement>, 'class' | 'children' | 'onchange'> & {
56
+ /**
57
+ * The current recurrence value (controlled). Pass the value returned from
58
+ * `onchange` back in to commit an edit. When omitted, the component starts
59
+ * from a sensible default (`interval`, every 15 minutes).
60
+ */
61
+ value?: ScheduleValue | undefined;
62
+ /**
63
+ * Called whenever the user edits the recurrence. Receives the next lossless
64
+ * {@link ScheduleValue}. The consumer owns persistence and validation.
65
+ */
66
+ onchange?: ((value: ScheduleValue) => void) | undefined;
67
+ /**
68
+ * Injected next-fires computation. The component passes the current value and
69
+ * the requested count and renders whatever fires the consumer returns. When
70
+ * omitted, the preview list is hidden (the component ships no date logic).
71
+ */
72
+ computeNextFires?: ((value: ScheduleValue, count: number) => ScheduleFire[]) | undefined;
73
+ /**
74
+ * How many upcoming fires to request from `computeNextFires`. Defaults to 5.
75
+ */
76
+ previewCount?: number | undefined;
77
+ /**
78
+ * Timezone label rendered in the always-visible timezone display slot, e.g.
79
+ * "America/New_York" or "UTC". Purely presentational — the component does not
80
+ * interpret it. When omitted, provide the `timezone` snippet instead; if
81
+ * neither is supplied the slot shows a "Not set" placeholder (the slot itself
82
+ * is always rendered).
83
+ */
84
+ timezoneLabel?: string | undefined;
85
+ /**
86
+ * Custom content for the timezone display slot. Takes precedence over
87
+ * `timezoneLabel` when both are supplied.
88
+ */
89
+ timezone?: Snippet | undefined;
90
+ /** Accessible label for the whole control. Defaults to "Schedule". */
91
+ label?: string | undefined;
92
+ /** Additional CSS classes applied to the root element. */
93
+ class?: string | undefined;
94
+ };
95
+ /**
96
+ * Schema-facing mirror of {@link ScheduleValue}.
97
+ * @schemaObject
98
+ */
99
+ export type ScheduleValueSchema = {
100
+ mode: 'cron';
101
+ expression: string;
102
+ } | {
103
+ mode: 'interval';
104
+ every: number;
105
+ unit: ScheduleIntervalUnit;
106
+ };
107
+ /**
108
+ * Cinder-specific schema surface for ScheduleBuilder.
109
+ *
110
+ * The `onchange`, `computeNextFires`, and `timezone` props are documented but
111
+ * unsupported by JSON Schema because functions and snippets cannot be modeled.
112
+ */
113
+ export type ScheduleBuilderSchemaProps = {
114
+ /**
115
+ * The current recurrence value (controlled). When omitted, the component
116
+ * starts from a sensible default (`interval`, every 15 minutes).
117
+ * @schemaObject
118
+ */
119
+ value?: ScheduleValueSchema | undefined;
120
+ /**
121
+ * How many upcoming fires to request from `computeNextFires`. Defaults to 5.
122
+ */
123
+ previewCount?: number | undefined;
124
+ /** Timezone label rendered in the always-visible timezone display slot. */
125
+ timezoneLabel?: string | undefined;
126
+ /** Accessible label for the whole control. Defaults to "Schedule". */
127
+ label?: string | undefined;
128
+ /** Additional CSS classes applied to the root element. */
129
+ class?: string | undefined;
130
+ };
@@ -0,0 +1,78 @@
1
+ import type { ScheduleIntervalUnit, ScheduleValue } from './schedule-builder.types.ts';
2
+ /** The interval units offered in the interval mode selector, in order. */
3
+ export declare const INTERVAL_UNITS: readonly ScheduleIntervalUnit[];
4
+ /** Weekday chips for the weekly preset. `value` matches cron day-of-week (0 = Sunday). */
5
+ export declare const WEEKDAYS: readonly {
6
+ value: number;
7
+ short: string;
8
+ long: string;
9
+ }[];
10
+ /** The five cron fields, in order, with their valid numeric ranges and hints. */
11
+ export declare const CRON_FIELDS: readonly {
12
+ name: string;
13
+ min: number;
14
+ max: number;
15
+ hint: string;
16
+ }[];
17
+ /** The default value used when the consumer passes none. */
18
+ export declare function defaultScheduleValue(): ScheduleValue;
19
+ /**
20
+ * Validate a single cron field value against its field range. Accepts a
21
+ * wildcard, a step, a range, a comma list, or a plain number. Returns an error
22
+ * message when invalid, or `undefined` when the field is acceptable.
23
+ */
24
+ export declare function validateCronField(rawValue: string, fieldIndex: number): string | undefined;
25
+ /** Whether all five cron fields are individually valid. */
26
+ export declare function cronFieldsValid(fields: string[]): boolean;
27
+ /** Join five cron fields into a normalized single-space expression. */
28
+ export declare function joinCron(fields: string[]): string;
29
+ /** Split a cron expression into exactly five fields, padding with `*` if short. */
30
+ export declare function splitCron(expression: string): [string, string, string, string, string];
31
+ /** Clamp/parse a `HH:MM` time string into `{ hour, minute }`, defaulting to 00:00. */
32
+ export declare function parseTime(time: string): {
33
+ hour: number;
34
+ minute: number;
35
+ };
36
+ /** "every N minutes/hours" → an interval value. */
37
+ export declare function lowerEveryN(every: number, unit: ScheduleIntervalUnit): ScheduleValue;
38
+ /** "daily at HH:MM" → a cron value. */
39
+ export declare function lowerDailyAt(time: string): ScheduleValue;
40
+ /** "weekly on [days] at HH:MM" → a cron value. Empty days falls back to every day. */
41
+ export declare function lowerWeeklyAt(days: number[], time: string): ScheduleValue;
42
+ /** "monthly on day N at HH:MM" → a cron value. */
43
+ export declare function lowerMonthlyOnDay(day: number, time: string): ScheduleValue;
44
+ /**
45
+ * Convert any value into cron fields, so switching into cron mode always has
46
+ * something sensible to show. Only `minutes` and `hours` intervals whose
47
+ * `every` evenly divides their field's cycle (60 for minutes, 24 for hours)
48
+ * are losslessly representable as a cron step wildcard — see
49
+ * `isEvenDivisorStep`. A non-dividing minute/hour interval (e.g. every 45
50
+ * minutes or every 5 hours), and `days`/`weeks` intervals (a step wildcard on
51
+ * the day-of-month field resets at the start of every month rather than
52
+ * repeating every N days, and cron has no field for "every N weeks" at all),
53
+ * would silently change the schedule's actual cadence the moment a user
54
+ * merely LOOKED at the Cron tab if lowered to a step wildcard. Seed an honest
55
+ * neutral default (daily at midnight) instead for all of those — see
56
+ * `valueToInterval` below, which mirrors this by only recovering a step that
57
+ * actually divides evenly.
58
+ */
59
+ export declare function valueToCronFields(value: ScheduleValue): string[];
60
+ /**
61
+ * Recover an interval `{ every, unit }` from a value when representable, so
62
+ * switching into interval mode is lossless for simple step patterns. Only a
63
+ * `minutes` or `hours` step that evenly divides its field's cycle (60 or 24
64
+ * — see `isEvenDivisorStep`) is recovered: a non-dividing minute/hour step
65
+ * (e.g. a 45-minute step wildcard) is not a true fixed-gap interval, and a
66
+ * day-of-month step
67
+ * wildcard is deliberately NOT read back as `{ unit: 'days' }` at all —
68
+ * cron's day-of-month step resets every month, so it is not equivalent to
69
+ * "every N days" and `valueToCronFields` never produces one for an interval
70
+ * value. Returns `undefined` when the cron expression is not a pure,
71
+ * evenly-dividing minute/hour interval.
72
+ */
73
+ export declare function valueToInterval(value: ScheduleValue): {
74
+ every: number;
75
+ unit: ScheduleIntervalUnit;
76
+ } | undefined;
77
+ /** A concise, human-readable description of a recurrence value. */
78
+ export declare function describeValue(value: ScheduleValue): string;
@@ -0,0 +1,2 @@
1
+ declare const variables: readonly string[];
2
+ export default variables;
@@ -0,0 +1,61 @@
1
+ var __create = Object.create;
2
+ var __getProtoOf = Object.getPrototypeOf;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ function __accessProp(key) {
7
+ return this[key];
8
+ }
9
+ var __toESMCache_node;
10
+ var __toESMCache_esm;
11
+ var __toESM = (mod, isNodeMode, target) => {
12
+ var canCache = mod != null && typeof mod === "object";
13
+ if (canCache) {
14
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
15
+ var cached = cache.get(mod);
16
+ if (cached)
17
+ return cached;
18
+ }
19
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
20
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
21
+ for (let key of __getOwnPropNames(mod))
22
+ if (!__hasOwnProp.call(to, key))
23
+ __defProp(to, key, {
24
+ get: __accessProp.bind(mod, key),
25
+ enumerable: true
26
+ });
27
+ if (canCache)
28
+ cache.set(mod, to);
29
+ return to;
30
+ };
31
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
32
+ var __returnValue = (v) => v;
33
+ function __exportSetter(name, newValue) {
34
+ this[name] = __returnValue.bind(null, newValue);
35
+ }
36
+ var __export = (target, all) => {
37
+ for (var name in all)
38
+ __defProp(target, name, {
39
+ get: all[name],
40
+ enumerable: true,
41
+ configurable: true,
42
+ set: __exportSetter.bind(all, name)
43
+ });
44
+ };
45
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
46
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
47
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
48
+ }) : x)(function(x) {
49
+ if (typeof require !== "undefined")
50
+ return require.apply(this, arguments);
51
+ throw Error('Dynamic require of "' + x + '" is not supported');
52
+ });
53
+
54
+ // src/components/schedule-builder/schedule-builder.variables.ts
55
+ var variables = [];
56
+ var schedule_builder_variables_default = variables;
57
+ export {
58
+ schedule_builder_variables_default as default
59
+ };
60
+
61
+ //# debugId=638BB268C8E04A7364756E2164756E21
@@ -114,7 +114,10 @@ function Tab($$anchor, $$props) {
114
114
  let disabled = $.prop($$props, "disabled", 3, false);
115
115
  const tabs = getTabsContext();
116
116
  const tabId = $.derived(() => $$props.id ?? `${tabs.baseId}-tab-${$$props.value}`);
117
- const panelId = $.derived(() => `${tabs.baseId}-panel-${$$props.value}`);
117
+ const panelId = $.derived(() => {
118
+ const controlsId = $$props.controls?.trim();
119
+ return controlsId ? controlsId : `${tabs.baseId}-panel-${$$props.value}`;
120
+ });
118
121
  const isActive = $.derived(() => tabs.isActive($$props.value));
119
122
  const isFocusable = $.derived(() => tabs.isFocusable($$props.value));
120
123
  let buttonElement = $.state(undefined);
@@ -194,4 +197,4 @@ export {
194
197
  Tab
195
198
  };
196
199
 
197
- //# debugId=DBA8AA18E9131ED964756E2164756E21
200
+ //# debugId=4B2CDEBAC98F406464756E2164756E21
@@ -58,15 +58,19 @@ var schema = {
58
58
  properties: {
59
59
  value: {
60
60
  type: "string",
61
- description: "Identifier matches the value of the corresponding TabPanel."
61
+ description: "Stable identifier used for tab selection; matches TabPanel in the default pattern."
62
62
  },
63
63
  id: {
64
64
  type: "string",
65
65
  description: "Optional explicit id override; auto-generated otherwise for ARIA wiring."
66
66
  },
67
+ controls: {
68
+ type: "string",
69
+ description: "Optional non-empty `aria-controls` target for caller-owned panels. Empty or\nwhitespace-only strings are treated as omitted. By default, Cinder points\nat the matching TabPanel id (`${baseId}-panel-${value}`)."
70
+ },
67
71
  disabled: {
68
72
  type: "boolean",
69
- description: "Disables this single tab. The panel content is hidden but its DOM stays."
73
+ description: "Disables this single tab and removes it from keyboard activation."
70
74
  },
71
75
  class: {
72
76
  type: "string",
@@ -96,4 +100,4 @@ export {
96
100
  tab_schema_default as default
97
101
  };
98
102
 
99
- //# debugId=70EF8B46C259F16164756E2164756E21
103
+ //# debugId=6054ACE83602A98064756E2164756E21
@@ -2,11 +2,12 @@
2
2
  * @cinder
3
3
  * @category navigation
4
4
  * @status stable
5
- * @purpose Single selectable tab trigger inside a tabs composite that registers with the parent context and controls a matching tab-panel.
5
+ * @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.
6
6
  * @tag navigation
7
7
  * @tag tabs
8
8
  * @useWhen Declaring one tab heading inside a tabs ancestor with a stable value identifier.
9
9
  * @useWhen Pairing one-to-one with a tab-panel that shares the same value to wire aria-controls.
10
+ * @useWhen Pointing multiple tab triggers at a caller-owned panel with the controls prop.
10
11
  * @avoidWhen Used outside a tabs ancestor — the component throws at construction.
11
12
  * @avoidWhen Rendering a generic action button — use button instead.
12
13
  * @related tabs, tab-list, tab-panel
@@ -1,10 +1,16 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  export type TabProps = {
3
- /** Identifier matches the value of the corresponding TabPanel. */
3
+ /** Stable identifier used for tab selection; matches TabPanel in the default pattern. */
4
4
  value: string;
5
5
  /** Optional explicit id override; auto-generated otherwise for ARIA wiring. */
6
6
  id?: string;
7
- /** Disables this single tab. The panel content is hidden but its DOM stays. */
7
+ /**
8
+ * Optional non-empty `aria-controls` target for caller-owned panels. Empty or
9
+ * whitespace-only strings are treated as omitted. By default, Cinder points
10
+ * at the matching TabPanel id (`${baseId}-panel-${value}`).
11
+ */
12
+ controls?: string;
13
+ /** Disables this single tab and removes it from keyboard activation. */
8
14
  disabled?: boolean;
9
15
  /** Additional class names merged with `.cinder-tab`. */
10
16
  class?: string;
@@ -173,7 +173,10 @@ function Tab($$anchor, $$props) {
173
173
  let disabled = $3.prop($$props, "disabled", 3, false);
174
174
  const tabs = getTabsContext();
175
175
  const tabId = $3.derived(() => $$props.id ?? `${tabs.baseId}-tab-${$$props.value}`);
176
- const panelId = $3.derived(() => `${tabs.baseId}-panel-${$$props.value}`);
176
+ const panelId = $3.derived(() => {
177
+ const controlsId = $$props.controls?.trim();
178
+ return controlsId ? controlsId : `${tabs.baseId}-panel-${$$props.value}`;
179
+ });
177
180
  const isActive = $3.derived(() => tabs.isActive($$props.value));
178
181
  const isFocusable = $3.derived(() => tabs.isFocusable($$props.value));
179
182
  let buttonElement = $3.state(undefined);
@@ -521,4 +524,4 @@ export {
521
524
  Tab
522
525
  };
523
526
 
524
- //# debugId=CAE059CC8EC3D9DC64756E2164756E21
527
+ //# debugId=03ABA1ADD3F1F54D64756E2164756E21