@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.
- package/CHANGELOG.md +25 -0
- package/README.md +2 -2
- package/components.json +140 -18
- package/dist/components/_internal/command-list-context.d.ts +3 -3
- package/dist/components/_internal/create-command-list-state.svelte.d.ts +11 -11
- package/dist/components/access-gate/index.js +435 -218
- package/dist/components/approval-card/approval-card-actions.svelte.d.ts +16 -0
- package/dist/components/approval-card/approval-card-state.d.ts +65 -0
- package/dist/components/approval-card/approval-card.css +269 -92
- package/dist/components/approval-card/approval-card.schema.js +10 -31
- package/dist/components/approval-card/approval-card.svelte.d.ts +3 -3
- package/dist/components/approval-card/approval-card.types.d.ts +14 -28
- package/dist/components/approval-card/index.d.ts +1 -1
- package/dist/components/approval-card/index.js +4268 -2884
- package/dist/components/card/card.css +5 -0
- package/dist/components/card/card.schema.js +2 -2
- package/dist/components/card/card.types.d.ts +2 -2
- package/dist/components/card/index.js +2 -1
- package/dist/components/chat/builders.d.ts +17 -8
- package/dist/components/chat/chat.schema.js +44 -2
- package/dist/components/chat/chat.svelte.d.ts +4 -2
- package/dist/components/chat/chat.types.d.ts +34 -3
- package/dist/components/chat/container/chat.svelte.d.ts +4 -2
- package/dist/components/chat/conversation-model.d.ts +1 -1
- package/dist/components/chat/index.d.ts +4 -4
- package/dist/components/chat/index.js +2767 -6278
- package/dist/components/chat/input/chat-attachment-serialization.d.ts +9 -0
- package/dist/components/chat/input/chat-input.svelte.d.ts +22 -1
- package/dist/components/chat/input/index.d.ts +1 -0
- package/dist/components/chat/utilities/conversation.d.ts +6 -6
- package/dist/components/chat-composer-popover/chat-composer-popover-filter.d.ts +11 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.css +7 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.css.d.ts +1 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.schema.d.ts +3 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.schema.js +150 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.svelte.d.ts +46 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.types.d.ts +77 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.variables.d.ts +2 -0
- package/dist/components/chat-composer-popover/chat-composer-popover.variables.js +61 -0
- package/dist/components/chat-composer-popover/index.d.ts +6 -0
- package/dist/components/chat-composer-popover/index.js +3285 -0
- package/dist/components/chat-conversation-header/index.js +577 -4537
- package/dist/components/chat-conversation-list/index.js +24 -3984
- package/dist/components/code-block/code-block.schema.js +5 -1
- package/dist/components/code-block/code-block.types.d.ts +6 -0
- package/dist/components/code-block/index.js +4 -4
- package/dist/components/command-item/index.js +7 -6
- package/dist/components/command-menu/command-menu.schema.js +5 -1
- package/dist/components/command-menu/command-menu.types.d.ts +2 -0
- package/dist/components/command-menu/index.js +48 -19
- package/dist/components/command-palette/index.js +40 -14
- package/dist/components/connection-indicator/connection-indicator.css +136 -0
- package/dist/components/connection-indicator/connection-indicator.css.d.ts +1 -0
- package/dist/components/connection-indicator/connection-indicator.schema.d.ts +3 -0
- package/dist/components/connection-indicator/connection-indicator.schema.js +89 -0
- package/dist/components/connection-indicator/connection-indicator.svelte.d.ts +21 -0
- package/dist/components/connection-indicator/connection-indicator.types.d.ts +46 -0
- package/dist/components/connection-indicator/connection-indicator.variables.d.ts +2 -0
- package/dist/components/connection-indicator/connection-indicator.variables.js +61 -0
- package/dist/components/connection-indicator/index.d.ts +5 -0
- package/dist/components/connection-indicator/index.js +409 -0
- package/dist/components/container/container.schema.js +4 -4
- package/dist/components/event-stream-viewer/index.js +44 -44
- package/dist/components/experimental/json-viewer/index.js +44 -44
- package/dist/components/invocation-rule-builder/index.d.ts +1 -1
- package/dist/components/invocation-rule-builder/index.js +305 -150
- package/dist/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
- package/dist/components/invocation-rule-builder/invocation-rule-builder.schema.js +89 -5
- package/dist/components/invocation-rule-builder/invocation-rule-builder.svelte.d.ts +2 -1
- package/dist/components/invocation-rule-builder/invocation-rule-builder.types.d.ts +114 -16
- package/dist/components/json-schema-editor/index.js +5 -2
- package/dist/components/json-viewer/index.js +44 -44
- package/dist/components/json-viewer/json-viewer.css +10 -6
- package/dist/components/payload-inspector/index.d.ts +1 -1
- package/dist/components/payload-inspector/index.js +306 -1422
- package/dist/components/payload-inspector/payload-inspector.css +15 -75
- package/dist/components/payload-inspector/payload-inspector.schema.js +5 -41
- package/dist/components/payload-inspector/payload-inspector.svelte.d.ts +5 -5
- package/dist/components/payload-inspector/payload-inspector.types.d.ts +10 -56
- package/dist/components/run-step-timeline/index.d.ts +1 -1
- package/dist/components/run-step-timeline/index.js +992 -559
- package/dist/components/run-step-timeline/run-step-branch-disclosure.svelte.d.ts +17 -0
- package/dist/components/run-step-timeline/run-step-timeline.css +124 -0
- package/dist/components/run-step-timeline/run-step-timeline.schema.js +873 -350
- package/dist/components/run-step-timeline/run-step-timeline.svelte.d.ts +1 -15
- package/dist/components/run-step-timeline/run-step-timeline.types.d.ts +182 -5
- package/dist/components/run-step-timeline/run-step-timeline.utilities.d.ts +52 -0
- package/dist/components/schedule-builder/index.d.ts +5 -0
- package/dist/components/schedule-builder/index.js +3176 -0
- package/dist/components/schedule-builder/schedule-builder.css +121 -0
- package/dist/components/schedule-builder/schedule-builder.css.d.ts +1 -0
- package/dist/components/schedule-builder/schedule-builder.schema.d.ts +3 -0
- package/dist/components/schedule-builder/schedule-builder.schema.js +141 -0
- package/dist/components/schedule-builder/schedule-builder.svelte.d.ts +22 -0
- package/dist/components/schedule-builder/schedule-builder.types.d.ts +130 -0
- package/dist/components/schedule-builder/schedule-builder.utilities.d.ts +78 -0
- package/dist/components/schedule-builder/schedule-builder.variables.d.ts +2 -0
- package/dist/components/schedule-builder/schedule-builder.variables.js +61 -0
- package/dist/components/tab/index.js +5 -2
- package/dist/components/tab/tab.schema.js +7 -3
- package/dist/components/tab/tab.svelte.d.ts +2 -1
- package/dist/components/tab/tab.types.d.ts +8 -2
- package/dist/components/tabs/index.js +5 -2
- package/dist/components/tag-input/index.js +22 -4
- package/dist/components/tag-input/tag-input.schema.js +5 -1
- package/dist/components/tag-input/tag-input.types.d.ts +4 -0
- package/dist/components/team-section/index.js +2 -1
- package/dist/components/testimonial-section/index.js +2 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.js +28577 -30168
- package/dist/server/components/access-gate/index.js +3 -1
- package/dist/server/components/accordion/index.js +2 -2
- package/dist/server/components/alert-dialog/index.js +2 -2
- package/dist/server/components/approval-card/index.js +15 -19
- package/dist/server/components/autocomplete/index.js +7 -7
- package/dist/server/components/avatar-group/index.js +5 -5
- package/dist/server/components/button-group/index.js +3 -5
- package/dist/server/components/card/index.js +2 -2
- package/dist/server/components/chat/index.js +15 -12
- package/dist/server/components/chat-composer-popover/index.js +26 -0
- package/dist/server/components/chat-conversation-header/index.js +10 -11
- package/dist/server/components/chat-conversation-list/index.js +4 -5
- package/dist/server/components/checkbox/index.js +3 -3
- package/dist/server/components/choice-grid/index.js +2 -2
- package/dist/server/components/code-block/index.js +2 -2
- package/dist/server/components/color-field/index.js +3 -3
- package/dist/server/components/combobox/index.js +6 -6
- package/dist/server/components/command-item/index.js +5 -3
- package/dist/server/components/command-menu/index.js +6 -4
- package/dist/server/components/command-palette/index.js +2 -2
- package/dist/server/components/confirm-dialog/index.js +2 -2
- package/dist/server/components/connection-indicator/index.js +16 -0
- package/dist/server/components/context-menu/index.js +5 -5
- package/dist/server/components/data-table/index.js +5 -5
- package/dist/server/components/date-picker/index.js +6 -6
- package/dist/server/components/date-range-field/index.js +7 -7
- package/dist/server/components/description-list/index.js +3 -5
- package/dist/server/components/diff-viewer/index.js +9 -8
- package/dist/server/components/drawer/index.js +3 -3
- package/dist/server/components/dropdown/index.js +4 -4
- package/dist/server/components/event-stream-viewer/index.js +2 -2
- package/dist/server/components/experimental/json-viewer/index.js +2 -2
- package/dist/server/components/faceted-filter-bar/index.js +1 -1
- package/dist/server/components/hover-card/index.js +1 -1
- package/dist/server/components/input/index.js +3 -3
- package/dist/server/components/invocation-rule-builder/index.js +1 -1
- package/dist/server/components/json-schema-editor/index.js +24 -23
- package/dist/server/components/json-viewer/index.js +2 -2
- package/dist/server/components/markdown-editor/index.js +13 -13
- package/dist/server/components/modal/index.js +1 -1
- package/dist/server/components/multi-select/index.js +1 -1
- package/dist/server/components/newsletter-section/index.js +3 -3
- package/dist/server/components/payload-inspector/index.js +4 -16
- package/dist/server/components/popover/index.js +5 -5
- package/dist/server/components/review-editor/index.js +27 -26
- package/dist/server/components/run-step-timeline/index.js +2 -2
- package/dist/server/components/schedule-builder/index.js +30 -0
- package/dist/server/components/schema-form/index.js +4 -4
- package/dist/server/components/secret-value-field/index.js +3 -5
- package/dist/server/components/segment/index.js +3 -3
- package/dist/server/components/segmented-control/index.js +4 -4
- package/dist/server/components/selection-popover/index.js +4 -4
- package/dist/server/components/sheet/index.js +2 -2
- package/dist/server/components/side-navigation/index.js +2 -2
- package/dist/server/components/sidebar/index.js +3 -3
- package/dist/server/components/tab/index.js +2 -2
- package/dist/server/components/table/index.js +3 -3
- package/dist/server/components/tabs/index.js +4 -4
- package/dist/server/components/tag-input/index.js +3 -3
- package/dist/server/components/team-section/index.js +8 -8
- package/dist/server/components/testimonial-section/index.js +2 -2
- package/dist/server/components/time-field/index.js +5 -3
- package/dist/server/components/toggle/index.js +2 -2
- package/dist/server/components/tooltip/index.js +1 -1
- package/dist/server/index.js +235 -211
- package/dist/server/{index.server-20y4mdhm.js → index.server-0chhpkg7.js} +40 -14
- package/dist/server/index.server-0sx92swg.js +9 -0
- package/dist/server/{index.server-ecm1vs3g.js → index.server-1nq7z1qw.js} +1 -1
- package/dist/server/{index.server-s9khh4ry.js → index.server-2bbwajb2.js} +3 -5
- package/dist/server/index.server-2hqrv7ca.js +9 -0
- package/dist/server/{index.server-69epaape.js → index.server-2qj6s2mh.js} +1 -1
- package/dist/server/{index.server-gxf0d1p5.js → index.server-2s5h1d05.js} +2 -2
- package/dist/server/{index.server-qfa2rxzx.js → index.server-2zdbz3rj.js} +3 -5
- package/dist/server/{index.server-pt8b65mt.js → index.server-38aywdk1.js} +1 -1
- package/dist/server/{index.server-0jhra85x.js → index.server-3w72dxz7.js} +4 -4
- package/dist/server/{index.server-rermas0k.js → index.server-47v2fhp4.js} +4 -4
- package/dist/server/{index.server-v4zabrsx.js → index.server-4x4hgvqe.js} +434 -26
- package/dist/server/{index.server-9j5sym59.js → index.server-4x91gzy1.js} +2 -2
- package/dist/server/{index.server-q48q15g7.js → index.server-4y2jtvv1.js} +4 -2
- package/dist/server/{index.server-j3ddzcaa.js → index.server-5gzyqv78.js} +6 -6
- package/dist/server/index.server-67qgdypc.js +9 -0
- package/dist/server/index.server-6hnfzc7f.js +263 -0
- package/dist/server/{index.server-9jete4xx.js → index.server-6sh11ap6.js} +4 -4
- package/dist/server/{index.server-4ztq565m.js → index.server-85p4ydph.js} +1 -1
- package/dist/server/{index.server-4nk7gy0q.js → index.server-894t97kv.js} +1 -1
- package/dist/server/{index.server-1vscnped.js → index.server-8dt36sdm.js} +2 -1
- package/dist/server/{index.server-bfsbp9dz.js → index.server-8xvc73zh.js} +4 -4
- package/dist/server/{index.server-cvnw3hw9.js → index.server-9kz37z89.js} +1 -1
- package/dist/server/{index.server-kc1k02tk.js → index.server-9ykk1kbg.js} +1 -1
- package/dist/server/{index.server-g789yep6.js → index.server-aqethy0w.js} +2 -2
- package/dist/server/index.server-be9bpqeh.js +93 -0
- package/dist/server/{index.server-wc9aggfz.js → index.server-bmxbsk4y.js} +7 -7
- package/dist/server/{index.server-f3z7tpxr.js → index.server-c42b462p.js} +2 -4
- package/dist/server/{index.server-7vyzen5x.js → index.server-c5qv3p61.js} +171 -63
- package/dist/server/index.server-cch0eed5.js +144 -0
- package/dist/server/{index.server-q89dz8h1.js → index.server-d3pqthtp.js} +4 -3
- package/dist/server/{index.server-jk4rx4aa.js → index.server-dmmvwy6p.js} +1 -1
- package/dist/server/{index.server-hcfnae5y.js → index.server-dwwqssey.js} +4 -4
- package/dist/server/{index.server-e8x1hgw6.js → index.server-dz1r9xw5.js} +4 -4
- package/dist/server/{index.server-wm7mk5kw.js → index.server-ez5hp0ya.js} +1 -1
- package/dist/server/{index.server-wc8dbm5e.js → index.server-g95bk8rc.js} +4 -2
- package/dist/server/index.server-gkazv439.js +576 -0
- package/dist/server/index.server-gmh5ar16.js +2 -0
- package/dist/server/{index.server-dp9j2kkr.js → index.server-h0cvwvhy.js} +1 -1
- package/dist/server/{index.server-cbtg8rq5.js → index.server-h89zk5ev.js} +8 -8
- package/dist/server/{index.server-pacrqvyz.js → index.server-h90pjrez.js} +1 -1
- package/dist/server/{index.server-p8d04em5.js → index.server-hcsd5gdb.js} +6 -2
- package/dist/server/{index.server-n39drzes.js → index.server-hpeavvnq.js} +1 -1
- package/dist/server/{index.server-1p3patnj.js → index.server-hx91ng7z.js} +1 -1
- package/dist/server/{index.server-mehav5vs.js → index.server-jdcq5zza.js} +7 -7
- package/dist/server/{index.server-jync915v.js → index.server-jfrssta6.js} +25 -25
- package/dist/server/{index.server-jtj3r53y.js → index.server-jgb8yh5k.js} +1 -1
- package/dist/server/{index.server-ejyf7e48.js → index.server-jj76374p.js} +1 -1
- package/dist/server/{index.server-w1g5q9j9.js → index.server-jtgw9d23.js} +4 -2
- package/dist/server/{index.server-hd8gpehd.js → index.server-jxseyx33.js} +1 -1
- package/dist/server/{index.server-kg2sepsr.js → index.server-krqvnt6p.js} +14 -15
- package/dist/server/{index.server-0e1m3agz.js → index.server-ks49bprh.js} +1 -1
- package/dist/server/{index.server-f0hma3jp.js → index.server-kt0ncrqs.js} +1 -1
- package/dist/server/index.server-m0ezemav.js +170 -0
- package/dist/server/index.server-m191rm44.js +79 -0
- package/dist/server/{index.server-z721a5gp.js → index.server-n82rcv0m.js} +4 -4
- package/dist/server/{index.server-rhhmdxtz.js → index.server-np3c7kx0.js} +4 -4
- package/dist/server/{index.server-hpcs7tmh.js → index.server-p56xxef1.js} +1 -1
- package/dist/server/{index.server-w83kmcrx.js → index.server-pag862vz.js} +10 -10
- package/dist/server/index.server-qbkxz7r2.js +750 -0
- package/dist/server/{index.server-sh2rxejg.js → index.server-qke3ekjt.js} +1 -1
- package/dist/server/{index.server-73x2d3j3.js → index.server-rbpvcrr3.js} +1 -1
- package/dist/server/{index.server-8cxs4kya.js → index.server-rga8sc7j.js} +41 -44
- package/dist/server/{index.server-e3fnv1g6.js → index.server-sedjxt36.js} +5 -5
- package/dist/server/{index.server-pen9pxt6.js → index.server-sf3nk3j2.js} +2 -2
- package/dist/server/{index.server-f23vtaw4.js → index.server-tcay903b.js} +8 -7
- package/dist/server/{index.server-7fp0epev.js → index.server-veastatv.js} +4 -4
- package/dist/server/{index.server-jeqg2d22.js → index.server-xeqtpv61.js} +1 -1
- package/dist/server/{index.server-9s4na701.js → index.server-xjnge1yw.js} +4 -4
- package/dist/server/index.server-xtjjmsyq.js +315 -0
- package/dist/server/{index.server-hhxjaeen.js → index.server-xz99aed4.js} +4 -4
- package/dist/server/{index.server-vne4rzfa.js → index.server-y4n8vc08.js} +1 -1
- package/dist/server/{index.server-5d01cn4f.js → index.server-y83kqayt.js} +4 -4
- package/dist/server/{index.server-1nh09ck7.js → index.server-yhzydqxe.js} +5 -5
- package/dist/server/index.server-z38bxms8.js +734 -0
- package/dist/server/{index.server-atjc1qcq.js → index.server-z7hxtqs1.js} +1 -1
- package/dist/server/{index.server-w6k62afr.js → index.server-ze1ymmbw.js} +2 -2
- package/dist/server/{index.server-914v805w.js → index.server-zgd1g8mk.js} +1 -1
- package/dist/server/{index.server-aeexcxdp.js → index.server-zh3r8vfd.js} +1 -1
- package/dist/server/{index.server-10jb2jzm.js → index.server-zsjf8enc.js} +4 -4
- package/package.json +102 -5
- package/src/components/_internal/command-list-context.ts +3 -3
- package/src/components/_internal/create-command-list-state.svelte.ts +39 -13
- package/src/components/approval-card/approval-card-actions.svelte +168 -0
- package/src/components/approval-card/approval-card-state.ts +152 -1
- package/src/components/approval-card/approval-card.css +269 -92
- package/src/components/approval-card/approval-card.examples.json +3 -3
- package/src/components/approval-card/approval-card.schema.json +9 -30
- package/src/components/approval-card/approval-card.schema.ts +13 -31
- package/src/components/approval-card/approval-card.svelte +176 -470
- package/src/components/approval-card/approval-card.types.ts +15 -28
- package/src/components/approval-card/index.ts +1 -0
- package/src/components/card/card.css +5 -0
- package/src/components/card/card.schema.json +1 -1
- package/src/components/card/card.schema.ts +1 -1
- package/src/components/card/card.svelte +1 -0
- package/src/components/card/card.types.ts +2 -2
- package/src/components/chat/builders.ts +445 -14
- package/src/components/chat/chat.schema.json +36 -1
- package/src/components/chat/chat.schema.ts +44 -1
- package/src/components/chat/chat.svelte +12 -0
- package/src/components/chat/chat.types.ts +35 -3
- package/src/components/chat/container/chat.svelte +73 -3
- package/src/components/chat/conversation-model.ts +1 -0
- package/src/components/chat/index.ts +16 -3
- package/src/components/chat/input/chat-attachment-serialization.ts +63 -0
- package/src/components/chat/input/chat-input.svelte +22 -5
- package/src/components/chat/input/index.ts +5 -0
- package/src/components/chat/utilities/conversation.ts +33 -15
- package/src/components/chat-composer-popover/chat-composer-popover-filter.ts +68 -0
- package/src/components/chat-composer-popover/chat-composer-popover.css +7 -0
- package/src/components/chat-composer-popover/chat-composer-popover.examples.json +13 -0
- package/src/components/chat-composer-popover/chat-composer-popover.schema.json +90 -0
- package/src/components/chat-composer-popover/chat-composer-popover.schema.ts +95 -0
- package/src/components/chat-composer-popover/chat-composer-popover.svelte +234 -0
- package/src/components/chat-composer-popover/chat-composer-popover.types.ts +88 -0
- package/src/components/chat-composer-popover/chat-composer-popover.variables.json +1 -0
- package/src/components/chat-composer-popover/chat-composer-popover.variables.ts +3 -0
- package/src/components/chat-composer-popover/index.ts +19 -0
- package/src/components/code-block/code-block.schema.json +4 -0
- package/src/components/code-block/code-block.schema.ts +5 -0
- package/src/components/code-block/code-block.svelte +3 -3
- package/src/components/code-block/code-block.types.ts +6 -0
- package/src/components/command-item/command-item.svelte +7 -6
- package/src/components/command-menu/command-menu.schema.json +4 -0
- package/src/components/command-menu/command-menu.schema.ts +4 -0
- package/src/components/command-menu/command-menu.svelte +16 -5
- package/src/components/command-menu/command-menu.types.ts +2 -0
- package/src/components/connection-indicator/connection-indicator.css +136 -0
- package/src/components/connection-indicator/connection-indicator.examples.json +31 -0
- package/src/components/connection-indicator/connection-indicator.schema.json +29 -0
- package/src/components/connection-indicator/connection-indicator.schema.ts +36 -0
- package/src/components/connection-indicator/connection-indicator.svelte +63 -0
- package/src/components/connection-indicator/connection-indicator.types.ts +58 -0
- package/src/components/connection-indicator/connection-indicator.variables.json +1 -0
- package/src/components/connection-indicator/connection-indicator.variables.ts +3 -0
- package/src/components/connection-indicator/index.ts +10 -0
- package/src/components/container/container.schema.json +3 -3
- package/src/components/container/container.schema.ts +3 -3
- package/src/components/invocation-rule-builder/index.ts +4 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.css +28 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.examples.json +6 -0
- package/src/components/invocation-rule-builder/invocation-rule-builder.schema.json +76 -3
- package/src/components/invocation-rule-builder/invocation-rule-builder.schema.ts +83 -3
- package/src/components/invocation-rule-builder/invocation-rule-builder.svelte +326 -113
- package/src/components/invocation-rule-builder/invocation-rule-builder.types.ts +157 -43
- package/src/components/json-viewer/_json-viewer-node.svelte +15 -1
- package/src/components/json-viewer/json-viewer.css +10 -6
- package/src/components/payload-inspector/index.ts +0 -2
- package/src/components/payload-inspector/payload-inspector.css +15 -75
- package/src/components/payload-inspector/payload-inspector.examples.json +5 -5
- package/src/components/payload-inspector/payload-inspector.schema.json +3 -31
- package/src/components/payload-inspector/payload-inspector.schema.ts +3 -36
- package/src/components/payload-inspector/payload-inspector.svelte +46 -239
- package/src/components/payload-inspector/payload-inspector.types.ts +10 -58
- package/src/components/run-step-timeline/index.ts +8 -0
- package/src/components/run-step-timeline/run-step-branch-disclosure.svelte +16 -0
- package/src/components/run-step-timeline/run-step-timeline.css +124 -0
- package/src/components/run-step-timeline/run-step-timeline.examples.json +18 -0
- package/src/components/run-step-timeline/run-step-timeline.schema.json +872 -349
- package/src/components/run-step-timeline/run-step-timeline.schema.ts +931 -349
- package/src/components/run-step-timeline/run-step-timeline.svelte +387 -268
- package/src/components/run-step-timeline/run-step-timeline.types.ts +192 -5
- package/src/components/run-step-timeline/run-step-timeline.utilities.ts +242 -0
- package/src/components/schedule-builder/index.ts +14 -0
- package/src/components/schedule-builder/schedule-builder.css +121 -0
- package/src/components/schedule-builder/schedule-builder.examples.json +31 -0
- package/src/components/schedule-builder/schedule-builder.schema.json +78 -0
- package/src/components/schedule-builder/schedule-builder.schema.ts +86 -0
- package/src/components/schedule-builder/schedule-builder.svelte +629 -0
- package/src/components/schedule-builder/schedule-builder.types.ts +137 -0
- package/src/components/schedule-builder/schedule-builder.utilities.ts +344 -0
- package/src/components/schedule-builder/schedule-builder.variables.json +1 -0
- package/src/components/schedule-builder/schedule-builder.variables.ts +3 -0
- package/src/components/tab/tab.schema.json +6 -2
- package/src/components/tab/tab.schema.ts +8 -2
- package/src/components/tab/tab.svelte +9 -5
- package/src/components/tab/tab.types.ts +8 -2
- package/src/components/tag-input/tag-input.schema.json +4 -0
- package/src/components/tag-input/tag-input.schema.ts +4 -0
- package/src/components/tag-input/tag-input.svelte +20 -3
- package/src/components/tag-input/tag-input.types.ts +4 -0
- package/src/index.ts +41 -5
- package/src/styles/components.css +3 -0
- package/dist/server/index-49we2xfs.js +0 -344
- package/dist/server/index-8fhvxk30.js +0 -265
- package/dist/server/index-x2ysg8ds.js +0 -388
- package/dist/server/index.server-20j0jh30.js +0 -9
- package/dist/server/index.server-dc35kh7d.js +0 -1835
- package/dist/server/index.server-kd4b0342.js +0 -607
- package/dist/server/index.server-n5cdmsz4.js +0 -30
- package/dist/server/index.server-pxg74pyp.js +0 -393
- package/dist/server/index.server-rjap4k7y.js +0 -1389
- package/dist/server/index.server-vt6sn9y4.js +0 -447
- package/dist/server/index.server-w63n618v.js +0 -9
- 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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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,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(() =>
|
|
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=
|
|
200
|
+
//# debugId=4B2CDEBAC98F406464756E2164756E21
|
|
@@ -58,15 +58,19 @@ var schema = {
|
|
|
58
58
|
properties: {
|
|
59
59
|
value: {
|
|
60
60
|
type: "string",
|
|
61
|
-
description: "
|
|
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
|
|
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=
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
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(() =>
|
|
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=
|
|
527
|
+
//# debugId=03ABA1ADD3F1F54D64756E2164756E21
|