synabun 2.0.9 → 2.0.10
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 +29 -0
- package/README.md +1 -1
- package/THIRD-PARTY-LICENSES.md +46 -4
- package/launcher.mjs +9 -3
- package/lib/start-launcher.js +6 -1
- package/mcp-server/package-lock.json +2 -2
- package/mcp-server/package.json +1 -1
- package/neural-interface/i18n/en.json +218 -7
- package/neural-interface/i18n/pt-BR.json +220 -9
- package/neural-interface/lib/account-usage.js +5 -3
- package/neural-interface/lib/app-controls-api.js +161 -0
- package/neural-interface/lib/assistant-api.js +21 -7
- package/neural-interface/lib/assistant-brains/opencode.js +13 -1
- package/neural-interface/lib/assistant-brains/opencode2-browser-policy/index.js +44 -0
- package/neural-interface/lib/assistant-brains/opencode2-route-gate/index.js +57 -0
- package/neural-interface/lib/assistant-catalog.js +17 -2
- package/neural-interface/lib/assistant-dispatch.js +3 -0
- package/neural-interface/lib/assistant-envelope.js +19 -1
- package/neural-interface/lib/assistant-runtime.js +127 -8
- package/neural-interface/lib/claude-model-catalog.js +64 -14
- package/neural-interface/lib/codex-settings-schema.js +109 -47
- package/neural-interface/lib/editor-completion-opencode.js +132 -35
- package/neural-interface/lib/exec-loop-command.js +8 -1
- package/neural-interface/lib/launch-cache.js +293 -0
- package/neural-interface/lib/login-start.js +524 -0
- package/neural-interface/lib/native-loop-providers.js +18 -3
- package/neural-interface/lib/native-loop-runtime.js +19 -0
- package/neural-interface/lib/opencode-db-schema.js +75 -0
- package/neural-interface/lib/opencode-history.js +16 -1
- package/neural-interface/lib/opencode-protocol.js +173 -0
- package/neural-interface/lib/opencode-provider-view.js +81 -0
- package/neural-interface/lib/opencode-runtime-config.js +10 -3
- package/neural-interface/lib/opencode-serve-records.js +606 -0
- package/neural-interface/lib/opencode-v2-client.js +33 -6
- package/neural-interface/lib/opencode-v2-ws-requests.js +19 -5
- package/neural-interface/lib/opencode-worker-activity.js +229 -0
- package/neural-interface/lib/opencode2-client.js +760 -0
- package/neural-interface/lib/opencode2-proxy.js +116 -0
- package/neural-interface/lib/opencode2-translate.js +1008 -0
- package/neural-interface/lib/process-identity.js +361 -0
- package/neural-interface/lib/session-cache-builder.js +26 -5
- package/neural-interface/lib/session-title-generator.js +18 -0
- package/neural-interface/lib/style-guide/api.js +4 -3
- package/neural-interface/lib/untrusted-file-headers.js +27 -0
- package/neural-interface/package-lock.json +1343 -45
- package/neural-interface/package.json +5 -1
- package/neural-interface/public/index.html +2 -2
- package/neural-interface/public/shared/agent-runtime-options.js +55 -11
- package/neural-interface/public/shared/assistant/asst-agents-dock.js +172 -17
- package/neural-interface/public/shared/assistant/asst-api.js +11 -3
- package/neural-interface/public/shared/assistant/asst-brain-picker.js +195 -80
- package/neural-interface/public/shared/assistant/asst-composer.js +1 -1
- package/neural-interface/public/shared/assistant/asst-hosts.js +49 -2
- package/neural-interface/public/shared/assistant/asst-menu.js +77 -6
- package/neural-interface/public/shared/assistant/asst-panel.js +197 -33
- package/neural-interface/public/shared/assistant/asst-rack-styles.js +28 -10
- package/neural-interface/public/shared/assistant/asst-redact.js +186 -0
- package/neural-interface/public/shared/assistant/asst-render.js +382 -36
- package/neural-interface/public/shared/assistant/asst-run-stage.js +231 -0
- package/neural-interface/public/shared/assistant/asst-sanitize.js +193 -3
- package/neural-interface/public/shared/assistant/asst-scene-styles.js +273 -0
- package/neural-interface/public/shared/assistant/asst-scenes.js +528 -0
- package/neural-interface/public/shared/assistant/asst-sidepanel-styles.js +3 -15
- package/neural-interface/public/shared/assistant/asst-state.js +14 -0
- package/neural-interface/public/shared/assistant/asst-styles.js +43 -0
- package/neural-interface/public/shared/assistant/asst-tool-kinds.js +13 -1
- package/neural-interface/public/shared/cc-dropdown.js +480 -0
- package/neural-interface/public/shared/cdx/cdx-panel.js +13 -1
- package/neural-interface/public/shared/cdx/cdx-render.js +15 -3
- package/neural-interface/public/shared/cdx/cdx-styles.js +4 -0
- package/neural-interface/public/shared/cdx/cdx-tabs.js +149 -35
- package/neural-interface/public/shared/cp/cp-markdown.js +4 -57
- package/neural-interface/public/shared/data-cache.js +223 -0
- package/neural-interface/public/shared/desktop-bridge.js +11 -0
- package/neural-interface/public/shared/desktop-titlebar-view.js +78 -1
- package/neural-interface/public/shared/desktop-titlebar.js +214 -28
- package/neural-interface/public/shared/desktop-update-view.js +15 -5
- package/neural-interface/public/shared/file-links.js +73 -8
- package/neural-interface/public/shared/html-shell.js +74 -80
- package/neural-interface/public/shared/launch-prefetch.js +59 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-caps.js +3 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-childpanel.js +7 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-modelpicker.js +54 -17
- package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +93 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-projectbar.js +3 -2
- package/neural-interface/public/shared/ocp-v2/ocp-v2-providers.js +11 -9
- package/neural-interface/public/shared/ocp-v2/ocp-v2-rehydrate.js +15 -4
- package/neural-interface/public/shared/ocp-v2/ocp-v2-render.js +1 -1
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send-logic.js +401 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +16 -9
- package/neural-interface/public/shared/ocp-v2/ocp-v2-sessions-logic.js +60 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +48 -19
- package/neural-interface/public/shared/ocp-v2/ocp-v2-ws.js +195 -19
- package/neural-interface/public/shared/opencode-providers.js +39 -0
- package/neural-interface/public/shared/schedules-view.js +318 -0
- package/neural-interface/public/shared/settings/settings-app-pane.js +335 -0
- package/neural-interface/public/shared/settings/settings-app.js +243 -0
- package/neural-interface/public/shared/settings/settings-data.js +88 -0
- package/neural-interface/public/shared/settings/settings-ia.js +17 -0
- package/neural-interface/public/shared/sidepanel-session-status.js +49 -0
- package/neural-interface/public/shared/styles.css +540 -371
- package/neural-interface/public/shared/ui-assistant.js +27 -5
- package/neural-interface/public/shared/ui-automation-studio.js +67 -27
- package/neural-interface/public/shared/ui-bookmarks.js +2 -1
- package/neural-interface/public/shared/ui-claude-panel.js +76 -8
- package/neural-interface/public/shared/ui-codex-panel.js +1 -0
- package/neural-interface/public/shared/ui-detail.js +6 -6
- package/neural-interface/public/shared/ui-file-links.js +1 -0
- package/neural-interface/public/shared/ui-image-gallery.js +6 -5
- package/neural-interface/public/shared/ui-invite.js +18 -2
- package/neural-interface/public/shared/ui-link.js +9 -9
- package/neural-interface/public/shared/ui-menubar.js +232 -33
- package/neural-interface/public/shared/ui-native-loop-router.js +2 -0
- package/neural-interface/public/shared/ui-opencode-panel-v2.js +1 -0
- package/neural-interface/public/shared/ui-schedules-studio.js +2099 -869
- package/neural-interface/public/shared/ui-sessions.js +15 -4
- package/neural-interface/public/shared/ui-settings.js +87 -36
- package/neural-interface/public/shared/ui-sidebar.js +4 -4
- package/neural-interface/public/shared/ui-sidepanel-session-entry.js +13 -0
- package/neural-interface/public/shared/ui-sidepanel-sessions.js +55 -4
- package/neural-interface/public/shared/ui-sidepanel-tray.js +84 -8
- package/neural-interface/public/shared/ui-skills.js +70 -12
- package/neural-interface/public/shared/ui-sync.js +7 -0
- package/neural-interface/public/shared/ui-terminal.js +36 -20
- package/neural-interface/public/shared/ui-trash.js +8 -1
- package/neural-interface/public/shared/ui-tutorial-steps.js +7 -3
- package/neural-interface/public/shared/ui-tutorial.js +15 -5
- package/neural-interface/public/shared/ui-update.js +83 -14
- package/neural-interface/public/shared/ui-whiteboard.js +2 -1
- package/neural-interface/public/variant/2d/main.js +4 -1
- package/neural-interface/public/variant/3d/main.js +3 -0
- package/neural-interface/public/vendor/highlight/LICENSE +29 -0
- package/neural-interface/public/vendor/highlight/github-dark-dimmed-11.12.0.min.css +9 -0
- package/neural-interface/public/vendor/highlight/highlight-11.12.0.min.js +1262 -0
- package/neural-interface/public/vendor/highlight/manifest.json +5 -0
- package/neural-interface/public/vendor/html2canvas/LICENSE +22 -0
- package/neural-interface/public/vendor/html2canvas/html2canvas-1.4.1.min.js +20 -0
- package/neural-interface/public/vendor/html2canvas/manifest.json +4 -0
- package/neural-interface/public/vendor/marked/LICENSE.md +44 -0
- package/neural-interface/public/vendor/marked/manifest.json +4 -0
- package/neural-interface/public/vendor/marked/marked-14.1.4.esm.js +2502 -0
- package/neural-interface/public/vendor/mermaid/LICENSE +21 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/abnfDiagram-PAR5IXJI.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architecture-7GRP2DOG-M7G3SWCO.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/architectureDiagram-2PNWDENW.mjs +36 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/blockDiagram-PUWGUBOA.mjs +129 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/c4Diagram-3NLNHZP5.mjs +38 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-2NMSUPJH.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-32MCUW2P.mjs +206 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3NPNU5GP.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-3SMGFRGC.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4CAJECRU.mjs +14 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-4OADUZ5Q.mjs +10 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IMINLNL.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5IQCK5RY.mjs +3 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-5MVFYWFU.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AQ6EADP3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-AZZRMDJM.mjs +15 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-CLS4B6BI.mjs +168 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-DZP67EKU.mjs +70 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-EICP7K5X.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-GDY2UAB4.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-H7VHZCWX.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-IJBDOHL6.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JFFVMJIA.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JQRUD6KW.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-JZGDI5JK.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-KD6SPIPN.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NF366YI6.mjs +231 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-NUDPKBEF.mjs +32 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-OJINMHTS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Q6NGPIAH.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-QJSWEUOL.mjs +132 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-R7JDMUKV.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RCXAM2GK.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-RT4MAWR3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SFMINX4W.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-SLDQ463B.mjs +88 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-STOV2HOB.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-T5OCTHI4.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-TCEHX7R3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VQC2EELJ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VRZKL3EH.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VTHDQ7BV.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-VY2OSTJR.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-WUBWJARI.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YBMQ5JGJ.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-YDMLL4PJ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-Z6V44ARX.mjs +62 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZJJ7VQJP.mjs +339 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZNLK7HRR.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZQN7UHIL.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZS6VBONO.mjs +174 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZUNWM646.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-FGAMPOII.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-v2-AI5RJEK4.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cose-bilkent-Q72C2OJ3.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefin-OW5HDTMX-6OCTWOGG.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/cynefinDiagram-2OOWUY4M.mjs +62 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/dagre-MPVFI544.mjs +4 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-AE4NWXFW.mjs +24 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-BUJID5UG.mjs +41 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-C44CZ5NI.mjs +24 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-EYOLEXXS.mjs +30 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/diagram-P7B6PWOJ.mjs +3 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ebnfDiagram-FTPZ3PV6.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/erDiagram-H3ERR26V.mjs +99 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/eventmodeling-NTZA5JFV-WKSWQHFS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/flowDiagram-YHGXBVSY.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ganttDiagram-RWFTB7ED.mjs +292 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraph-4MIJSDKK-JH2HKYUO.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/gitGraphDiagram-MAR6GKOP.mjs +106 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/info-A6RAGUB7-3TX3OFWW.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/infoDiagram-LV547AFH.mjs +2 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/ishikawaDiagram-PUJQGNDS.mjs +70 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/journeyDiagram-EW5QJT4W.mjs +139 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/kanban-definition-JSQERAZB.mjs +89 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/katex-CZ4GXH2S.mjs +257 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/mindmap-definition-VBJCLQLM.mjs +96 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/packet-AYTQ26CC-MKII6P3Y.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pegDiagram-7WILOQTJ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pie-WAS4IAKB-6B4OPMJ5.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/pieDiagram-EFA7CBSB.mjs +39 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/quadrantDiagram-WARVYA7P.mjs +7 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/radar-RG4KPBEZ-UPTR3XUL.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-74A4TZTK-MEFUPFMS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-abnf-HS5TGJTU-R5YG2S5D.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-ebnf-LZEXJU2U-G5QEX2L6.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroad-peg-WCYAUIDC-H5I2ZRY2.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/railroadDiagram-5NIQVNLQ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/requirementDiagram-SXREGOKZ.mjs +84 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sankeyDiagram-VV74M2VP.mjs +40 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sequenceDiagram-52ZFIFDL.mjs +162 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/sizeCapture-FGA5AGYP.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-3QAKPIVI.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-v2-HN2P4RDZ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanes-QLVP42QD.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/swimlanesDiagram-JKPDBFCN.mjs +8 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/timeline-definition-GS45XAXW.mjs +120 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treeView-Q6P3EWNA-ZRJGANNQ.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/treemap-WGGIJYW6-K64VN5AS.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/vennDiagram-QIQU2ZRJ.mjs +34 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardley-WFR3VGLG-D67OWCCH.mjs +1 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/wardleyDiagram-U6YNM66N.mjs +78 -0
- package/neural-interface/public/vendor/mermaid/chunks/mermaid.esm.min/xychartDiagram-XJAZEDNM.mjs +7 -0
- package/neural-interface/public/vendor/mermaid/manifest.json +4 -0
- package/neural-interface/public/vendor/mermaid/mermaid-11.17.2.esm.min.mjs +14 -0
- package/neural-interface/scripts/build-vendor.mjs +84 -3
- package/neural-interface/server.js +1099 -286
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/skills/synabun/modules/schedule.md +1 -1
|
@@ -1633,7 +1633,15 @@
|
|
|
1633
1633
|
color: var(--t-secondary);
|
|
1634
1634
|
}
|
|
1635
1635
|
|
|
1636
|
-
|
|
1636
|
+
/* A standalone button whose window is open (Schedules) looks like an open menu's label */
|
|
1637
|
+
.menubar-action.active,
|
|
1638
|
+
.menubar-action.active:hover {
|
|
1639
|
+
background: var(--s-active);
|
|
1640
|
+
color: var(--t-bright);
|
|
1641
|
+
}
|
|
1642
|
+
|
|
1643
|
+
.menubar-dropdown,
|
|
1644
|
+
.menubar-submenu {
|
|
1637
1645
|
position: absolute;
|
|
1638
1646
|
top: calc(100% + 14px);
|
|
1639
1647
|
left: 0;
|
|
@@ -1671,10 +1679,37 @@
|
|
|
1671
1679
|
display: block;
|
|
1672
1680
|
}
|
|
1673
1681
|
|
|
1682
|
+
/* Taller than the room under the bar (ui-menubar.js fitDropdown): it scrolls, and the caret,
|
|
1683
|
+
which the scroll box would clip, goes. */
|
|
1684
|
+
.menubar-dropdown.menubar-dropdown--scroll {
|
|
1685
|
+
overflow-y: auto;
|
|
1686
|
+
overscroll-behavior: contain;
|
|
1687
|
+
scrollbar-width: thin;
|
|
1688
|
+
}
|
|
1689
|
+
.menubar-dropdown.menubar-dropdown--scroll::before { display: none; }
|
|
1690
|
+
|
|
1674
1691
|
.menubar-dropdown--wide {
|
|
1675
1692
|
min-width: 300px;
|
|
1676
1693
|
}
|
|
1677
1694
|
|
|
1695
|
+
/* ── Submenus (Apps › Browser apps, Map, Games; ui-menubar.js wireSubmenus) ──
|
|
1696
|
+
The dropdown's box without its caret. The script moves the panel out of the dropdown, whose
|
|
1697
|
+
scroll box would clip it, onto the .menubar-item and places it beside its row. */
|
|
1698
|
+
.menubar-submenu {
|
|
1699
|
+
top: 0;
|
|
1700
|
+
z-index: 102;
|
|
1701
|
+
animation: menuSubIn 0.14s ease-out;
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1704
|
+
.menubar-item.open .menubar-submenu.open {
|
|
1705
|
+
display: block;
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
@keyframes menuSubIn {
|
|
1709
|
+
from { opacity: 0; }
|
|
1710
|
+
to { opacity: 1; }
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1678
1713
|
/* ── Resume Dropdown ── */
|
|
1679
1714
|
|
|
1680
1715
|
.menubar-dropdown--resume {
|
|
@@ -2241,7 +2276,8 @@
|
|
|
2241
2276
|
.menu-item[hidden] { display: none !important; }
|
|
2242
2277
|
|
|
2243
2278
|
.menu-item:hover,
|
|
2244
|
-
.menu-item.focused
|
|
2279
|
+
.menu-item.focused,
|
|
2280
|
+
.menu-item.submenu-open {
|
|
2245
2281
|
background: rgba(255,255,255,0.06);
|
|
2246
2282
|
color: var(--t-bright);
|
|
2247
2283
|
}
|
|
@@ -2281,6 +2317,20 @@
|
|
|
2281
2317
|
border: 1px solid rgba(255,255,255,0.06);
|
|
2282
2318
|
}
|
|
2283
2319
|
|
|
2320
|
+
/* A submenu row's chevron, where a shortcut would be */
|
|
2321
|
+
.menu-submenu-arrow {
|
|
2322
|
+
display: inline-flex;
|
|
2323
|
+
width: 10px;
|
|
2324
|
+
height: 10px;
|
|
2325
|
+
margin-left: 20px;
|
|
2326
|
+
flex-shrink: 0;
|
|
2327
|
+
color: var(--t-faint);
|
|
2328
|
+
}
|
|
2329
|
+
.menu-submenu-arrow svg { width: 100%; height: 100%; }
|
|
2330
|
+
.menu-item:hover .menu-submenu-arrow,
|
|
2331
|
+
.menu-item.focused .menu-submenu-arrow,
|
|
2332
|
+
.menu-item.submenu-open .menu-submenu-arrow { color: inherit; }
|
|
2333
|
+
|
|
2284
2334
|
.menu-sep {
|
|
2285
2335
|
height: 1px;
|
|
2286
2336
|
background: rgba(255,255,255,0.06);
|
|
@@ -13586,6 +13636,7 @@
|
|
|
13586
13636
|
═══════════════════════════════════════════ */
|
|
13587
13637
|
.settings-panel,
|
|
13588
13638
|
.command-runner-panel,
|
|
13639
|
+
.schedules-studio-panel,
|
|
13589
13640
|
.styleguide-panel {
|
|
13590
13641
|
/* Text roles for the dark panel. Each clears WCAG AA (4.5:1) on the panel and inside a group. */
|
|
13591
13642
|
--stg-text: rgba(255,255,255,0.92);
|
|
@@ -13621,6 +13672,7 @@
|
|
|
13621
13672
|
@supports (color: oklch(from red l c h)) {
|
|
13622
13673
|
.settings-panel,
|
|
13623
13674
|
.command-runner-panel,
|
|
13675
|
+
.schedules-studio-panel,
|
|
13624
13676
|
.styleguide-panel {
|
|
13625
13677
|
--stg-accent-fill: oklch(from var(--accent-blue) 0.5 c h);
|
|
13626
13678
|
--stg-accent-fill-hover: oklch(from var(--accent-blue) 0.55 c h);
|
|
@@ -14934,6 +14986,7 @@
|
|
|
14934
14986
|
═══════════════════════════════════════════ */
|
|
14935
14987
|
.settings-panel,
|
|
14936
14988
|
.command-runner-panel,
|
|
14989
|
+
.schedules-studio-panel,
|
|
14937
14990
|
.styleguide-panel {
|
|
14938
14991
|
--stg-help: rgba(255,255,255,0.55);
|
|
14939
14992
|
--stg-line: rgba(255,255,255,0.07);
|
|
@@ -23232,137 +23285,513 @@
|
|
|
23232
23285
|
#as-schedules-btn svg { flex-shrink: 0; }
|
|
23233
23286
|
|
|
23234
23287
|
/* ═══════════════════════════════════════════
|
|
23235
|
-
SCHEDULES
|
|
23288
|
+
SCHEDULES — the dedicated window (ui-schedules-studio.js; what it shows: schedules-view.js)
|
|
23289
|
+
A sibling of Command Runner and Settings: the shared --stg-* roles, native type, a rail of
|
|
23290
|
+
views and groups, grouped inset lists of rows, details on demand, editors in place.
|
|
23291
|
+
Monochrome glass: colour only where it carries meaning (a failed run, a group's dot).
|
|
23236
23292
|
═══════════════════════════════════════════ */
|
|
23237
23293
|
|
|
23238
23294
|
.schedules-studio-panel {
|
|
23239
23295
|
position: fixed; z-index: 300001;
|
|
23240
|
-
width:
|
|
23241
|
-
|
|
23242
|
-
|
|
23243
|
-
|
|
23244
|
-
|
|
23245
|
-
|
|
23246
|
-
container-type: inline-size;
|
|
23247
|
-
|
|
23296
|
+
width: 1040px; height: 720px;
|
|
23297
|
+
max-width: calc(100vw - 16px);
|
|
23298
|
+
max-height: calc(100dvh - var(--navbar-height, 48px) - 16px);
|
|
23299
|
+
min-width: min(360px, calc(100vw - 16px));
|
|
23300
|
+
min-height: min(420px, calc(100dvh - var(--navbar-height, 48px) - 16px));
|
|
23301
|
+
display: flex; flex-direction: column; overflow: hidden;
|
|
23302
|
+
container-type: inline-size; container-name: sched;
|
|
23303
|
+
color: var(--stg-text); font-family: var(--stg-font); font-size: var(--fs-sm); line-height: 1.4;
|
|
23304
|
+
opacity: 0; transform: scale(.97);
|
|
23305
|
+
transition: opacity 150ms ease, transform 150ms ease;
|
|
23306
|
+
--sched-control-h: calc(22px * var(--font-scale, 1));
|
|
23307
|
+
--sched-search-h: calc(30px * var(--font-scale, 1));
|
|
23308
|
+
--sched-control-radius: var(--radius-control, 5px);
|
|
23309
|
+
--sched-group-radius: var(--radius-group, 9px);
|
|
23310
|
+
}
|
|
23311
|
+
body .schedules-studio-panel {
|
|
23312
|
+
--fw-focus: var(--stg-focus);
|
|
23313
|
+
/* Secondary text stays readable over whatever glass the user picked (as in Command Runner). */
|
|
23314
|
+
--stg-help: var(--t-primary);
|
|
23248
23315
|
}
|
|
23249
23316
|
.schedules-studio-panel.open { opacity: 1; transform: scale(1); }
|
|
23250
|
-
|
|
23251
|
-
.
|
|
23252
|
-
|
|
23253
|
-
|
|
23254
|
-
|
|
23255
|
-
|
|
23256
|
-
flex-shrink: 0; user-select: none;
|
|
23317
|
+
.schedules-studio-panel.dragging { transition: none; }
|
|
23318
|
+
.schedules-studio-panel [hidden] { display: none !important; }
|
|
23319
|
+
.schedules-studio-panel :is(button, input):disabled { opacity: .45; cursor: default; }
|
|
23320
|
+
.schedules-studio-panel .sched-sr {
|
|
23321
|
+
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
|
|
23322
|
+
clip-path: inset(50%); white-space: nowrap; border: 0;
|
|
23257
23323
|
}
|
|
23324
|
+
|
|
23325
|
+
/* The menubar stays usable while Schedules is open: its Schedules button closes the window and its
|
|
23326
|
+
menus open above this window's backdrop, which starts under the bar. */
|
|
23327
|
+
.studio-backdrop.sched-backdrop { top: var(--navbar-height, 48px); }
|
|
23328
|
+
body.schedules-window-open #title-bar { z-index: 300002; }
|
|
23329
|
+
|
|
23330
|
+
/* ── Title bar (the shared floating-window chrome sizes its controls) ── */
|
|
23331
|
+
.sched-header { display: flex; align-items: center; user-select: none; }
|
|
23258
23332
|
.sched-header-left { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
|
|
23259
|
-
.sched-header-icon {
|
|
23260
|
-
|
|
23261
|
-
|
|
23262
|
-
}
|
|
23263
|
-
.sched-
|
|
23264
|
-
|
|
23265
|
-
|
|
23266
|
-
|
|
23267
|
-
|
|
23268
|
-
|
|
23269
|
-
|
|
23270
|
-
border-
|
|
23271
|
-
|
|
23272
|
-
.sched-header-actions { display: flex; align-items: center; gap: 6px; }
|
|
23273
|
-
.sched-header-btn,
|
|
23274
|
-
.sched-primary,
|
|
23275
|
-
.sched-secondary {
|
|
23276
|
-
display: inline-flex; align-items: center; justify-content: center; gap: 6px;
|
|
23277
|
-
border-radius: 8px; font-size: var(--fs-xs); font-family: inherit; font-weight: 600;
|
|
23278
|
-
min-height: 28px; padding: 5px 12px; cursor: pointer; transition: all 0.15s ease;
|
|
23279
|
-
letter-spacing: 0;
|
|
23280
|
-
}
|
|
23281
|
-
.sched-header-btn {
|
|
23282
|
-
color: var(--t-secondary); background: transparent; border: 1px solid transparent;
|
|
23333
|
+
.sched-header-icon { display: inline-flex; color: var(--stg-help); }
|
|
23334
|
+
.sched-header h3 { margin: 0; white-space: nowrap; }
|
|
23335
|
+
.sched-count { font-size: var(--fs-xs); font-variant-numeric: tabular-nums; color: var(--stg-help); }
|
|
23336
|
+
.sched-close { display: inline-flex; align-items: center; justify-content: center; border: 0; background: transparent; cursor: pointer; }
|
|
23337
|
+
.sched-close svg { width: 14px; height: 14px; }
|
|
23338
|
+
|
|
23339
|
+
.sched-body { position: relative; flex: 1; min-height: 0; display: grid; grid-template-columns: 216px minmax(0, 1fr); }
|
|
23340
|
+
|
|
23341
|
+
/* ── Rail: views, then groups (a group is also a drop target) ── */
|
|
23342
|
+
.sched-rail {
|
|
23343
|
+
display: flex; flex-direction: column; gap: 1px; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
|
|
23344
|
+
padding: 10px 10px 14px; border-right: 1px solid var(--stg-line); background: rgba(0,0,0,0.14);
|
|
23345
|
+
scrollbar-width: thin; scrollbar-color: var(--b-hover) transparent;
|
|
23283
23346
|
}
|
|
23284
|
-
.sched-
|
|
23285
|
-
|
|
23286
|
-
|
|
23347
|
+
.sched-nav-item {
|
|
23348
|
+
display: flex; align-items: center; gap: 8px; width: 100%; min-height: 28px; padding: 3px 8px;
|
|
23349
|
+
border: 0; border-radius: 6px; background: transparent; color: var(--stg-text);
|
|
23350
|
+
font-family: var(--stg-font); font-size: var(--fs-sm); line-height: 1.3; text-align: start; cursor: pointer;
|
|
23351
|
+
transition: background-color 150ms ease, box-shadow 150ms ease;
|
|
23352
|
+
}
|
|
23353
|
+
.sched-nav-item:hover { background: rgba(255,255,255,0.06); }
|
|
23354
|
+
.sched-nav-item[aria-current="page"] { background: var(--stg-control-hover); box-shadow: var(--shadow-highlight); }
|
|
23355
|
+
.sched-nav-item.drop-target { background: var(--stg-control-hover); box-shadow: inset 0 0 0 1px var(--b-visible); }
|
|
23356
|
+
.sched-nav-icon { display: inline-flex; align-items: center; justify-content: center; width: 15px; flex-shrink: 0; color: var(--stg-help); }
|
|
23357
|
+
.sched-nav-icon svg { width: 15px; height: 15px; }
|
|
23358
|
+
.sched-nav-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
23359
|
+
.sched-nav-count { flex-shrink: 0; color: var(--stg-help); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
|
|
23360
|
+
.sched-nav-count--alert { color: var(--stg-err); }
|
|
23361
|
+
.sched-nav-flag { display: inline-flex; align-items: center; gap: 2px; flex-shrink: 0; color: var(--stg-help); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
|
|
23362
|
+
.sched-nav-flag svg { width: 11px; height: 11px; }
|
|
23363
|
+
.sched-nav-flag--alert { color: var(--stg-err); }
|
|
23364
|
+
.sched-rail-sep { flex-shrink: 0; height: 1px; margin: 6px 8px; background: var(--stg-sep); }
|
|
23365
|
+
.sched-rail-head {
|
|
23366
|
+
display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 12px 2px 4px 8px;
|
|
23367
|
+
color: var(--stg-help); font-size: 11.5px; font-weight: 600; letter-spacing: .02em;
|
|
23368
|
+
}
|
|
23369
|
+
.sched-rail-empty { padding: 4px 8px; color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45; }
|
|
23370
|
+
.sched-dot {
|
|
23371
|
+
display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
|
|
23372
|
+
background: var(--dot, var(--stg-off)); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
|
|
23373
|
+
}
|
|
23374
|
+
|
|
23375
|
+
/* ── Main: view head, toolbar, list, status line ── */
|
|
23376
|
+
.sched-main { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; --sched-inset: 22px; }
|
|
23377
|
+
/* What each view or editor replaces; the narrow strip above it stays. */
|
|
23378
|
+
.sched-frame { position: relative; display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; }
|
|
23379
|
+
.sched-narrow-nav { display: none; }
|
|
23380
|
+
.sched-view-head {
|
|
23381
|
+
display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap;
|
|
23382
|
+
gap: 10px 16px; padding: 18px var(--sched-inset) 12px; flex-shrink: 0;
|
|
23383
|
+
}
|
|
23384
|
+
.sched-view-titles { flex: 1 1 260px; min-width: 0; }
|
|
23385
|
+
.sched-view-head h2 {
|
|
23386
|
+
display: flex; align-items: center; gap: 8px; margin: 0; min-width: 0;
|
|
23387
|
+
font-family: var(--stg-font); font-size: calc(20px * var(--font-scale, 1)); font-weight: 600;
|
|
23388
|
+
line-height: 1.25; letter-spacing: 0; color: var(--stg-text); overflow-wrap: anywhere;
|
|
23389
|
+
}
|
|
23390
|
+
.sched-view-head h2 .sched-dot { width: 10px; height: 10px; }
|
|
23391
|
+
.sched-view-sub, .sched-view-meta { margin: 3px 0 0; max-width: 76ch; color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45; }
|
|
23392
|
+
.sched-view-meta { margin-top: 1px; }
|
|
23393
|
+
.sched-view-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
|
|
23394
|
+
|
|
23395
|
+
.sched-toolbar { display: flex; align-items: center; gap: 8px; padding: 0 var(--sched-inset) 10px; flex-shrink: 0; }
|
|
23396
|
+
.sched-search {
|
|
23397
|
+
display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; height: var(--sched-search-h);
|
|
23398
|
+
padding: 0 4px 0 10px; border: 1px solid var(--stg-field-line); border-radius: var(--sched-group-radius);
|
|
23399
|
+
background: var(--stg-control); color: var(--stg-help);
|
|
23400
|
+
}
|
|
23401
|
+
.sched-search > svg { width: 14px; height: 14px; flex-shrink: 0; }
|
|
23402
|
+
.sched-search:has(input:focus-visible) { outline: 2px solid var(--stg-focus); outline-offset: 2px; }
|
|
23403
|
+
body .schedules-studio-panel #sched-search:focus-visible { outline: none; }
|
|
23404
|
+
.sched-search input {
|
|
23405
|
+
flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; background: transparent; outline: 0;
|
|
23406
|
+
color: var(--stg-text); font-family: var(--stg-font); font-size: var(--fs-sm);
|
|
23287
23407
|
}
|
|
23288
|
-
.sched-
|
|
23289
|
-
.sched-
|
|
23290
|
-
|
|
23408
|
+
.sched-search input::placeholder { color: var(--stg-help); opacity: 1; }
|
|
23409
|
+
.sched-search input::-webkit-search-cancel-button { display: none; }
|
|
23410
|
+
.sched-search kbd { flex-shrink: 0; padding-inline-end: 6px; font-family: var(--stg-mono); font-size: var(--fs-xs); color: var(--stg-help); }
|
|
23411
|
+
|
|
23412
|
+
.sched-list {
|
|
23413
|
+
position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
|
|
23414
|
+
padding: 2px var(--sched-inset) 24px; scrollbar-gutter: stable;
|
|
23415
|
+
scrollbar-width: thin; scrollbar-color: var(--b-hover) transparent;
|
|
23291
23416
|
}
|
|
23292
|
-
.sched-
|
|
23293
|
-
.sched-
|
|
23294
|
-
|
|
23295
|
-
|
|
23417
|
+
.sched-list:focus { outline: none; }
|
|
23418
|
+
.sched-footer {
|
|
23419
|
+
display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px;
|
|
23420
|
+
padding: 7px var(--sched-inset); border-top: 1px solid var(--stg-line); flex-shrink: 0;
|
|
23421
|
+
color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45;
|
|
23296
23422
|
}
|
|
23297
|
-
.sched-
|
|
23423
|
+
.sched-footer-hint { display: inline-flex; align-items: center; gap: 6px; }
|
|
23424
|
+
.sched-footer-hint svg { width: 12px; height: 12px; }
|
|
23298
23425
|
|
|
23299
|
-
|
|
23300
|
-
.sched-
|
|
23301
|
-
|
|
23302
|
-
|
|
23303
|
-
|
|
23426
|
+
/* ── Controls: the Settings push button, popup, field and switch ── */
|
|
23427
|
+
.sched-btn {
|
|
23428
|
+
display: inline-flex; align-items: center; justify-content: center; gap: 4px; flex-shrink: 0;
|
|
23429
|
+
min-height: var(--sched-control-h); max-width: 100%; padding: 2px 10px;
|
|
23430
|
+
border: 1px solid var(--stg-field-line); border-radius: var(--sched-control-radius); box-shadow: none;
|
|
23431
|
+
background: var(--stg-control); color: var(--stg-text); cursor: pointer;
|
|
23432
|
+
font-family: var(--stg-font); font-size: var(--fs-xs); font-weight: 500; line-height: 1.2; white-space: nowrap;
|
|
23433
|
+
transition: background-color 150ms ease, color 150ms ease;
|
|
23304
23434
|
}
|
|
23305
|
-
.sched-
|
|
23306
|
-
|
|
23435
|
+
.sched-btn svg { width: 12px; height: 12px; flex-shrink: 0; }
|
|
23436
|
+
.sched-btn:hover:not(:disabled) { background: var(--stg-control-hover); }
|
|
23437
|
+
.sched-btn--primary { color: #fff; background: var(--stg-accent-fill); border-color: transparent; }
|
|
23438
|
+
.sched-btn--primary:hover:not(:disabled) { background: var(--stg-accent-fill-hover); }
|
|
23439
|
+
.sched-btn--text { color: var(--stg-link); background: transparent; border-color: transparent; padding-inline: 4px; font-weight: 400; }
|
|
23440
|
+
.sched-btn--text:hover:not(:disabled) { color: var(--accent-blue); background: transparent; }
|
|
23441
|
+
.sched-btn--danger:hover:not(:disabled) { color: var(--stg-err); }
|
|
23442
|
+
.sched-icon-btn {
|
|
23443
|
+
display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
|
|
23444
|
+
width: var(--sched-control-h); height: var(--sched-control-h); padding: 0; border: 0;
|
|
23445
|
+
border-radius: var(--sched-control-radius); background: transparent; color: var(--stg-help); cursor: pointer;
|
|
23446
|
+
transition: background-color 150ms ease, color 150ms ease;
|
|
23307
23447
|
}
|
|
23308
|
-
.sched-
|
|
23309
|
-
|
|
23310
|
-
|
|
23448
|
+
.sched-icon-btn svg { width: 12px; height: 12px; }
|
|
23449
|
+
.sched-icon-btn:hover:not(:disabled) { color: var(--stg-text); background: var(--stg-control-hover); }
|
|
23450
|
+
.sched-icon-btn--danger:hover:not(:disabled) { color: var(--stg-err); }
|
|
23451
|
+
/* Popups: the app's custom dropdown (cc-dropdown.js), drawn as Settings draws it (settings-redesign:
|
|
23452
|
+
elegance): a 22px popup button with the up-down chevron, an opaque menu, the selected choice in
|
|
23453
|
+
600, the highlighted one on the accent fill. The script places an open menu `fixed` against its
|
|
23454
|
+
trigger, so the scrolling panes never cut it off. */
|
|
23455
|
+
.schedules-studio-panel .cc-dropdown { display: inline-flex; min-width: 110px; max-width: 100%; vertical-align: middle; }
|
|
23456
|
+
.schedules-studio-panel .cc-dropdown-trigger {
|
|
23457
|
+
width: 100%; min-width: 0; height: var(--sched-control-h); padding: 0 7px 0 9px; gap: 6px;
|
|
23458
|
+
border: 1px solid var(--stg-field-line); border-radius: var(--sched-control-radius); box-shadow: none;
|
|
23459
|
+
color: var(--stg-text); background: var(--stg-control);
|
|
23460
|
+
font-family: var(--stg-font); font-size: var(--fs-xs); line-height: calc(20px * var(--font-scale, 1)); letter-spacing: 0;
|
|
23461
|
+
}
|
|
23462
|
+
.schedules-studio-panel .cc-dropdown-trigger:hover:not(:disabled),
|
|
23463
|
+
.schedules-studio-panel .cc-dropdown.open .cc-dropdown-trigger { background: var(--stg-control-hover); border-color: var(--stg-field-line); color: var(--stg-text); }
|
|
23464
|
+
.schedules-studio-panel .cc-dropdown-trigger[aria-invalid="true"] { border-color: var(--stg-err); }
|
|
23465
|
+
.schedules-studio-panel .cc-dropdown-value { min-width: 0; text-align: left; } /* a long choice ends in an ellipsis */
|
|
23466
|
+
.schedules-studio-panel .cc-dropdown-arrow { display: none; }
|
|
23467
|
+
.schedules-studio-panel .cc-dropdown-trigger::after {
|
|
23468
|
+
content: ''; flex-shrink: 0; width: 7px; height: 10px; background: var(--stg-help);
|
|
23469
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M1.2 4.4 4 1.6l2.8 2.8M1.2 7.6 4 10.4l2.8-2.8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
|
|
23470
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M1.2 4.4 4 1.6l2.8 2.8M1.2 7.6 4 10.4l2.8-2.8' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
|
|
23311
23471
|
}
|
|
23312
|
-
.
|
|
23313
|
-
|
|
23314
|
-
|
|
23315
|
-
|
|
23316
|
-
text-transform: uppercase; letter-spacing: 0.08em;
|
|
23472
|
+
.schedules-studio-panel .cc-dropdown-menu {
|
|
23473
|
+
z-index: 20; overflow-y: auto; overscroll-behavior: contain;
|
|
23474
|
+
padding: 5px; background: rgb(40,40,44); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px;
|
|
23475
|
+
box-shadow: 0 12px 32px rgba(0,0,0,0.5);
|
|
23317
23476
|
}
|
|
23318
|
-
.
|
|
23319
|
-
|
|
23320
|
-
|
|
23321
|
-
|
|
23322
|
-
|
|
23323
|
-
|
|
23477
|
+
.schedules-studio-panel .cc-dropdown-item {
|
|
23478
|
+
padding: 3px 9px; border-radius: 5px; color: var(--stg-text); font-family: var(--stg-font); font-size: var(--fs-xs);
|
|
23479
|
+
white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: none;
|
|
23480
|
+
}
|
|
23481
|
+
.schedules-studio-panel .cc-dropdown-item:hover { background: none; color: var(--stg-text); }
|
|
23482
|
+
.schedules-studio-panel .cc-dropdown-item.active { background: none; color: var(--stg-text); font-weight: 600; }
|
|
23483
|
+
.schedules-studio-panel .cc-dropdown-item.highlight { background: var(--stg-accent-fill); color: #fff; }
|
|
23484
|
+
.schedules-studio-panel .cc-dropdown-item[aria-disabled="true"] { opacity: .45; cursor: default; background: none; color: var(--stg-text); }
|
|
23485
|
+
.schedules-studio-panel .cc-dropdown-group { padding: 4px 9px 2px; color: var(--stg-help); font-size: var(--fs-xs); font-weight: 600; }
|
|
23486
|
+
.schedules-studio-panel .cc-dropdown-optgroup + .cc-dropdown-optgroup { margin-top: 4px; }
|
|
23487
|
+
.sched-input {
|
|
23488
|
+
width: 100%; min-width: 0; height: var(--sched-control-h); padding: 0 8px;
|
|
23489
|
+
border: 1px solid var(--stg-field-line); border-radius: var(--sched-control-radius);
|
|
23490
|
+
background: var(--stg-field-bg); color: var(--stg-text); color-scheme: dark;
|
|
23491
|
+
font-family: var(--stg-font); font-size: var(--fs-xs); line-height: calc(20px * var(--font-scale, 1));
|
|
23324
23492
|
}
|
|
23325
|
-
.sched-
|
|
23326
|
-
.sched-
|
|
23327
|
-
.sched-
|
|
23328
|
-
|
|
23329
|
-
}
|
|
23330
|
-
.
|
|
23331
|
-
|
|
23332
|
-
|
|
23333
|
-
|
|
23334
|
-
.sched-
|
|
23335
|
-
|
|
23336
|
-
|
|
23337
|
-
|
|
23338
|
-
|
|
23339
|
-
|
|
23340
|
-
}
|
|
23341
|
-
.sched-
|
|
23342
|
-
|
|
23343
|
-
|
|
23344
|
-
|
|
23345
|
-
|
|
23493
|
+
.sched-input::placeholder { color: var(--stg-help); }
|
|
23494
|
+
.sched-input[aria-invalid="true"] { border-color: var(--stg-err); }
|
|
23495
|
+
.sched-input[type="number"] { width: 72px; flex: 0 0 auto; text-align: right; font-family: var(--stg-mono); }
|
|
23496
|
+
.sched-input[type="color"] { width: 44px; flex: 0 0 auto; padding: 2px; cursor: pointer; }
|
|
23497
|
+
.sched-mono { font-family: var(--stg-mono); }
|
|
23498
|
+
/* Day themes: prose that may span lines (Settings multiline field, system font). */
|
|
23499
|
+
.sched-textarea { height: auto; min-height: calc(44px * var(--font-scale, 1)); padding: 4px 8px; line-height: 1.45; resize: vertical; white-space: pre-wrap; }
|
|
23500
|
+
|
|
23501
|
+
/* The switch: a 26×15 Settings capsule. A row's is a button (role="switch"), a form's a checkbox. */
|
|
23502
|
+
.sched-switch, .sched-toggle-track {
|
|
23503
|
+
position: relative; display: inline-block; flex-shrink: 0; width: 26px; height: 15px; padding: 0;
|
|
23504
|
+
border: 0; border-radius: 999px; background: rgba(255,255,255,0.16); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.22);
|
|
23505
|
+
transition: background-color 150ms ease;
|
|
23506
|
+
}
|
|
23507
|
+
.sched-switch { cursor: pointer; }
|
|
23508
|
+
.sched-switch::before { content: ''; position: absolute; inset: -5px -4px; }
|
|
23509
|
+
.sched-switch::after, .sched-toggle-track::after {
|
|
23510
|
+
content: ''; position: absolute; top: 1px; left: 1px; width: 13px; height: 13px; border-radius: 50%;
|
|
23511
|
+
background: #e8e8ea; box-shadow: 0 1px 2px rgba(0,0,0,0.35); transition: transform 150ms ease;
|
|
23512
|
+
}
|
|
23513
|
+
.sched-switch[aria-checked="true"], .sched-toggle input:checked + .sched-toggle-track { background: var(--stg-accent-fill); box-shadow: none; }
|
|
23514
|
+
.sched-switch[aria-checked="true"]::after, .sched-toggle input:checked + .sched-toggle-track::after { transform: translateX(11px); background: #fff; }
|
|
23515
|
+
.sched-switch[aria-busy="true"] { opacity: .6; cursor: progress; }
|
|
23516
|
+
body .schedules-studio-panel .sched-switch:focus-visible { outline-offset: 3px; border-radius: 999px; }
|
|
23517
|
+
.sched-toggle { position: relative; display: inline-flex; align-items: center; flex-shrink: 0; padding: 4px 0; cursor: pointer; }
|
|
23518
|
+
.sched-toggle input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
|
|
23519
|
+
.sched-toggle input:focus-visible + .sched-toggle-track { outline: 2px solid var(--stg-focus); outline-offset: 3px; }
|
|
23520
|
+
|
|
23521
|
+
/* ── Grouped inset lists ── */
|
|
23522
|
+
.sched-section + .sched-section { margin-top: 16px; }
|
|
23523
|
+
.sched-section-title {
|
|
23524
|
+
display: flex; align-items: baseline; gap: 8px; margin: 0 0 6px; padding: 0 4px;
|
|
23525
|
+
font-family: var(--stg-font); font-size: var(--fs-xs); font-weight: 600; color: var(--stg-help);
|
|
23526
|
+
}
|
|
23527
|
+
.sched-box { min-width: 0; background: var(--stg-group); border: 1px solid var(--stg-line); border-radius: var(--sched-group-radius); }
|
|
23528
|
+
.sched-box + .sched-box { margin-top: 8px; }
|
|
23529
|
+
.sched-group-head { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 4px 8px 4px 12px; border-radius: var(--sched-group-radius); }
|
|
23530
|
+
.sched-group-head.drop-target { background: var(--stg-control); box-shadow: inset 0 0 0 1px var(--b-visible); }
|
|
23531
|
+
.sched-group-toggle {
|
|
23532
|
+
display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; min-height: var(--sched-control-h);
|
|
23533
|
+
padding: 0; border: 0; border-radius: var(--sched-control-radius); background: transparent;
|
|
23534
|
+
color: var(--stg-text); font-family: var(--stg-font); text-align: start; cursor: pointer;
|
|
23535
|
+
}
|
|
23536
|
+
.sched-group-chevron { display: inline-flex; color: var(--stg-help); transform: rotate(90deg); transition: transform 150ms ease; }
|
|
23537
|
+
.sched-group-chevron svg { width: 10px; height: 10px; }
|
|
23538
|
+
.sched-box.is-collapsed .sched-group-chevron { transform: rotate(0deg); }
|
|
23539
|
+
.sched-group-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-sm); font-weight: 600; line-height: 1.35; }
|
|
23540
|
+
.sched-group-count { color: var(--stg-help); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
|
|
23541
|
+
.sched-group-meta { display: flex; align-items: center; justify-content: flex-end; gap: 6px; min-width: 0; color: var(--stg-help); font-size: var(--fs-xs); white-space: nowrap; overflow: hidden; }
|
|
23542
|
+
.sched-group-meta svg { width: 11px; height: 11px; flex-shrink: 0; }
|
|
23543
|
+
.sched-group-meta .is-alert { color: var(--stg-err); }
|
|
23544
|
+
.sched-rows { list-style: none; margin: 0; padding: 0; }
|
|
23545
|
+
.sched-group-head + .sched-rows { border-top: 1px solid var(--stg-sep); }
|
|
23546
|
+
|
|
23547
|
+
/* ── A schedule: switch · name and cadence · next run · last run ── */
|
|
23548
|
+
.sched-row { position: relative; }
|
|
23549
|
+
.sched-row + .sched-row::before {
|
|
23550
|
+
content: ''; position: absolute; top: 0; left: 50px; right: 12px; height: 1px; background: var(--stg-sep);
|
|
23551
|
+
}
|
|
23552
|
+
.sched-row-line {
|
|
23553
|
+
display: grid; grid-template-columns: 30px minmax(0, 1fr) minmax(0, 8.5em) minmax(0, 11em) 10px;
|
|
23554
|
+
grid-template-areas: "switch main next last chev";
|
|
23555
|
+
align-items: center; column-gap: 12px; min-height: 46px; padding: 6px 12px 6px 10px;
|
|
23556
|
+
cursor: pointer; transition: background-color 120ms ease;
|
|
23557
|
+
}
|
|
23558
|
+
.sched-row:first-child > .sched-row-line { border-radius: var(--sched-group-radius) var(--sched-group-radius) 0 0; }
|
|
23559
|
+
.sched-row:last-child > .sched-row-line { border-radius: 0 0 var(--sched-group-radius) var(--sched-group-radius); }
|
|
23560
|
+
.sched-row:only-child > .sched-row-line { border-radius: var(--sched-group-radius); }
|
|
23561
|
+
.sched-group-head + .sched-rows .sched-row:first-child > .sched-row-line { border-radius: 0; }
|
|
23562
|
+
.sched-row-line:hover { background: rgba(255,255,255,0.025); }
|
|
23563
|
+
.sched-row.is-open > .sched-row-line { background: rgba(255,255,255,0.04); }
|
|
23564
|
+
.sched-row.is-dragging { opacity: .45; }
|
|
23565
|
+
.sched-switch-cell { grid-area: switch; display: flex; justify-content: center; }
|
|
23566
|
+
.sched-row-toggle {
|
|
23567
|
+
grid-area: main; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; min-width: 0;
|
|
23568
|
+
padding: 2px 0; border: 0; border-radius: var(--sched-control-radius); background: transparent;
|
|
23569
|
+
color: inherit; font-family: var(--stg-font); text-align: start; cursor: pointer;
|
|
23570
|
+
}
|
|
23571
|
+
.sched-row-name {
|
|
23572
|
+
max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
23573
|
+
font-size: var(--fs-sm); font-weight: 500; line-height: 1.35; color: var(--stg-text);
|
|
23574
|
+
}
|
|
23575
|
+
.sched-row.is-paused .sched-row-name { color: var(--stg-body); }
|
|
23576
|
+
.sched-row-sub {
|
|
23577
|
+
display: flex; align-items: center; gap: 6px; max-width: 100%; min-width: 0;
|
|
23578
|
+
font-size: var(--fs-xs); line-height: 1.4; color: var(--stg-help); white-space: nowrap;
|
|
23579
|
+
}
|
|
23580
|
+
.sched-row-sub > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
|
|
23581
|
+
.sched-row-sub > .sched-row-group { display: inline-flex; align-items: center; gap: 5px; flex-shrink: 1; }
|
|
23582
|
+
.sched-row-reason {
|
|
23583
|
+
max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
|
|
23584
|
+
font-size: var(--fs-xs); line-height: 1.4; color: var(--stg-body);
|
|
23585
|
+
}
|
|
23586
|
+
.sched-next, .sched-last {
|
|
23587
|
+
display: flex; flex-direction: column; min-width: 0; font-size: var(--fs-xs); line-height: 1.4; font-variant-numeric: tabular-nums;
|
|
23588
|
+
}
|
|
23589
|
+
.sched-next { grid-area: next; }
|
|
23590
|
+
.sched-last { grid-area: last; }
|
|
23591
|
+
.sched-next-rel { color: var(--stg-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
23592
|
+
.sched-next-abs, .sched-last-ago { color: var(--stg-help); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
23593
|
+
.sched-next:is([data-state="paused"], [data-state="none"]) .sched-next-rel { color: var(--stg-help); }
|
|
23594
|
+
.sched-next[data-state="overdue"] .sched-next-rel { color: var(--stg-warn); }
|
|
23595
|
+
.sched-last-word { display: inline-flex; align-items: center; gap: 5px; min-width: 0; color: var(--stg-body); white-space: nowrap; }
|
|
23596
|
+
.sched-last-word > span { overflow: hidden; text-overflow: ellipsis; }
|
|
23597
|
+
.sched-last-word svg { width: 12px; height: 12px; flex-shrink: 0; color: var(--stg-help); }
|
|
23598
|
+
.sched-last[data-kind="failed"] .sched-last-word,
|
|
23599
|
+
.sched-last[data-kind="failed"] .sched-last-word svg { color: var(--stg-err); }
|
|
23600
|
+
.sched-last[data-kind="interrupted"] .sched-last-word svg { color: var(--stg-warn); }
|
|
23601
|
+
.sched-last:is([data-kind="never"], [data-kind="stopped"]) .sched-last-word { color: var(--stg-help); }
|
|
23602
|
+
.sched-row-chevron { grid-area: chev; display: inline-flex; color: var(--stg-help); transition: transform 150ms ease; }
|
|
23603
|
+
.sched-row-chevron svg { width: 10px; height: 10px; }
|
|
23604
|
+
.sched-row.is-open .sched-row-chevron { transform: rotate(90deg); }
|
|
23605
|
+
|
|
23606
|
+
/* ── Row details: what it runs and with what, then its actions ── */
|
|
23607
|
+
.sched-detail { padding: 2px 14px 12px 52px; }
|
|
23608
|
+
.sched-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 6px 32px; }
|
|
23609
|
+
.sched-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-content: start; column-gap: 14px; row-gap: 3px; margin: 0; }
|
|
23610
|
+
.sched-fact { display: contents; }
|
|
23611
|
+
.sched-facts-block { min-width: 0; }
|
|
23612
|
+
.sched-facts-title { margin: 6px 0 4px; font-family: var(--stg-font); font-size: var(--fs-xs); font-weight: 600; line-height: 1.4; color: var(--stg-help); }
|
|
23613
|
+
.sched-facts dt { color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.5; }
|
|
23614
|
+
.sched-facts dd { min-width: 0; margin: 0; color: var(--stg-body); font-size: var(--fs-xs); line-height: 1.5; overflow-wrap: anywhere; }
|
|
23615
|
+
.sched-facts dd.sched-mono { font-size: calc(11.5px * var(--font-scale, 1)); }
|
|
23616
|
+
.sched-facts .is-failed { color: var(--stg-err); }
|
|
23617
|
+
.sched-source { color: var(--stg-help); }
|
|
23618
|
+
.sched-detail-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--stg-sep); }
|
|
23619
|
+
.sched-detail-group { display: inline-flex; align-items: center; gap: 8px; color: var(--stg-help); font-size: var(--fs-xs); }
|
|
23620
|
+
.sched-detail-spacer { flex: 1 1 0; }
|
|
23621
|
+
|
|
23622
|
+
/* ── Empty, loading and error states ── */
|
|
23623
|
+
.sched-empty {
|
|
23624
|
+
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
|
|
23625
|
+
min-height: 220px; padding: 24px 12px; text-align: center;
|
|
23626
|
+
}
|
|
23627
|
+
.sched-empty-icon { display: grid; place-items: center; width: 32px; height: 32px; color: var(--stg-help); }
|
|
23628
|
+
.sched-empty-icon svg { width: 22px; height: 22px; }
|
|
23629
|
+
.sched-empty h3 { margin: 0; font-family: var(--stg-font); font-size: var(--fs-base); font-weight: 600; line-height: 1.3; color: var(--stg-text); }
|
|
23630
|
+
.sched-empty p { margin: 0 0 8px; max-width: 46ch; color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45; }
|
|
23631
|
+
.sched-empty-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
|
|
23632
|
+
/* A load that failed while an earlier copy shows: one line above it, with a way to load again. */
|
|
23633
|
+
.sched-load-note {
|
|
23634
|
+
display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; flex-shrink: 0;
|
|
23635
|
+
margin: 0 var(--sched-inset) 10px; padding: 5px 6px 5px 10px;
|
|
23636
|
+
border: 1px solid var(--stg-line); border-radius: var(--sched-group-radius); background: var(--stg-group);
|
|
23637
|
+
color: var(--stg-body); font-size: var(--fs-xs); line-height: 1.45;
|
|
23638
|
+
}
|
|
23639
|
+
.sched-load-note:empty { display: none; }
|
|
23640
|
+
.sched-load-note > svg { width: 12px; height: 12px; flex-shrink: 0; color: var(--stg-warn); }
|
|
23641
|
+
.sched-load-note--ok > svg { color: var(--stg-ok); }
|
|
23642
|
+
.sched-load-note--busy > svg { color: var(--stg-help); }
|
|
23643
|
+
.sched-load-note > span { flex: 1 1 240px; min-width: 0; }
|
|
23644
|
+
#sched-active-timers .sched-load-note { margin: 0 0 8px; }
|
|
23645
|
+
|
|
23646
|
+
/* ── Editors (schedule, group) and the Timers forms: Settings grouped rows ── */
|
|
23647
|
+
.sched-editor { display: flex; flex-direction: column; flex: 1; min-height: 0; }
|
|
23648
|
+
.sched-editor-head { display: flex; align-items: center; gap: 10px; padding: 14px var(--sched-inset) 10px 14px; flex-shrink: 0; }
|
|
23649
|
+
.sched-editor-head h2 {
|
|
23650
|
+
margin: 0; font-family: var(--stg-font); font-size: calc(20px * var(--font-scale, 1)); font-weight: 600;
|
|
23651
|
+
line-height: 1.25; letter-spacing: 0; color: var(--stg-text); overflow-wrap: anywhere;
|
|
23652
|
+
}
|
|
23653
|
+
.sched-editor-head p { margin: 2px 0 0; color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45; overflow-wrap: anywhere; }
|
|
23654
|
+
.sched-editor-titles { min-width: 0; }
|
|
23655
|
+
.sched-editor-body {
|
|
23656
|
+
flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px var(--sched-inset) 24px;
|
|
23657
|
+
scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: var(--b-hover) transparent;
|
|
23346
23658
|
}
|
|
23347
|
-
.sched-
|
|
23348
|
-
|
|
23349
|
-
|
|
23350
|
-
|
|
23351
|
-
|
|
23352
|
-
|
|
23353
|
-
|
|
23354
|
-
|
|
23355
|
-
|
|
23356
|
-
|
|
23659
|
+
.sched-editor-actions {
|
|
23660
|
+
display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px;
|
|
23661
|
+
padding: 10px var(--sched-inset); border-top: 1px solid var(--stg-line); flex-shrink: 0;
|
|
23662
|
+
}
|
|
23663
|
+
.sched-form { max-width: 760px; }
|
|
23664
|
+
.sched-form-section + .sched-form-section { margin-top: 18px; }
|
|
23665
|
+
.sched-form-title {
|
|
23666
|
+
display: flex; align-items: baseline; gap: 8px; margin: 0 0 6px; padding: 0 4px;
|
|
23667
|
+
font-family: var(--stg-font); font-size: var(--fs-sm); font-weight: 600; line-height: 1.35; color: var(--stg-text);
|
|
23668
|
+
}
|
|
23669
|
+
.sched-form-title small { color: var(--stg-help); font-size: var(--fs-xs); font-weight: 400; }
|
|
23670
|
+
.sched-form-intro { margin: -2px 0 8px; padding: 0 4px; max-width: 72ch; color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45; }
|
|
23671
|
+
.sched-form-group { padding: 0 var(--stg-row-x); background: var(--stg-group); border: 1px solid var(--stg-line); border-radius: var(--sched-group-radius); }
|
|
23672
|
+
.sched-form-row {
|
|
23673
|
+
display: grid; grid-template-columns: minmax(0, 168px) minmax(0, 1fr); align-items: center;
|
|
23674
|
+
gap: 6px 14px; min-height: 38px; padding: var(--stg-row-y) 0;
|
|
23675
|
+
}
|
|
23676
|
+
.sched-form-row + .sched-form-row { border-top: 1px solid var(--stg-sep); }
|
|
23677
|
+
.sched-form-row--top { align-items: start; }
|
|
23678
|
+
.sched-form-row--switch { grid-template-columns: minmax(0, 1fr) auto; }
|
|
23679
|
+
.sched-form-row--switch .sched-help { max-width: 60ch; }
|
|
23680
|
+
.sched-form-label { color: var(--stg-text); font-size: var(--fs-sm); line-height: 1.4; overflow-wrap: anywhere; }
|
|
23681
|
+
.sched-form-row--top > .sched-form-label { padding-top: 2px; }
|
|
23682
|
+
.sched-form-control { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; min-width: 0; }
|
|
23683
|
+
.sched-form-control > .cc-dropdown, .sched-form-control > .sched-input:not([type="color"]):not([type="number"]) { flex: 1 1 220px; }
|
|
23684
|
+
.sched-form-control--start { justify-content: flex-start; }
|
|
23685
|
+
.sched-form-stack { display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-width: 0; }
|
|
23686
|
+
.sched-help { margin: 0; color: var(--stg-help); font-size: var(--fs-xs); line-height: 1.45; }
|
|
23687
|
+
details.sched-form-section > summary { list-style: none; cursor: pointer; border-radius: var(--sched-control-radius); }
|
|
23688
|
+
details.sched-form-section > summary::-webkit-details-marker { display: none; }
|
|
23689
|
+
details.sched-form-section > summary::before {
|
|
23690
|
+
content: ''; width: 6px; height: 6px; margin-inline-end: 2px; align-self: center; flex-shrink: 0;
|
|
23691
|
+
border-right: 1.5px solid var(--stg-help); border-bottom: 1.5px solid var(--stg-help);
|
|
23692
|
+
transform: rotate(-45deg); transition: transform 150ms ease;
|
|
23693
|
+
}
|
|
23694
|
+
details.sched-form-section[open] > summary::before { transform: rotate(45deg); }
|
|
23695
|
+
|
|
23696
|
+
.sched-presets { display: flex; flex-direction: column; gap: 8px; }
|
|
23697
|
+
.sched-preset-group { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 8px; }
|
|
23698
|
+
.sched-preset-group > span { padding-top: 3px; color: var(--stg-help); font-size: var(--fs-xs); }
|
|
23699
|
+
.sched-chip-list { display: flex; flex-wrap: wrap; gap: 4px; }
|
|
23700
|
+
.sched-chip {
|
|
23701
|
+
min-height: var(--sched-control-h); padding: 2px 8px; border: 1px solid var(--stg-field-line);
|
|
23702
|
+
border-radius: var(--sched-control-radius); background: transparent; color: var(--stg-body); cursor: pointer;
|
|
23703
|
+
font-family: var(--stg-font); font-size: var(--fs-xs); line-height: 1.2; white-space: nowrap;
|
|
23704
|
+
transition: background-color 150ms ease, color 150ms ease;
|
|
23357
23705
|
}
|
|
23358
|
-
.sched-
|
|
23359
|
-
|
|
23360
|
-
|
|
23361
|
-
|
|
23362
|
-
|
|
23706
|
+
.sched-chip:hover { background: var(--stg-control); color: var(--stg-text); }
|
|
23707
|
+
.sched-chip[aria-pressed="true"] { background: var(--stg-control-hover); color: var(--stg-text); box-shadow: var(--shadow-highlight); }
|
|
23708
|
+
.sched-day-label { display: inline-flex; flex-direction: column; }
|
|
23709
|
+
.sched-day-remove { align-self: flex-start; margin-top: 3px; }
|
|
23710
|
+
.sched-day-remove--room { visibility: hidden; }
|
|
23711
|
+
|
|
23712
|
+
/* ── Timers ── */
|
|
23713
|
+
.sched-timer-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; min-height: 40px; padding: 6px 0; }
|
|
23714
|
+
.sched-timer-row + .sched-timer-row { border-top: 1px solid var(--stg-sep); }
|
|
23715
|
+
.sched-timer-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-sm); color: var(--stg-text); }
|
|
23716
|
+
.sched-timer-meta { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-xs); color: var(--stg-help); }
|
|
23717
|
+
.sched-timer-count { font-family: var(--stg-mono); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; color: var(--stg-text); }
|
|
23718
|
+
.sched-form-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
|
|
23719
|
+
|
|
23720
|
+
/* ── Activity: the latest run of each schedule ── */
|
|
23721
|
+
.sched-activity-btn {
|
|
23722
|
+
display: grid; grid-template-columns: minmax(0, 10em) minmax(0, 1fr) minmax(0, 9em) minmax(0, 8.5em) 10px;
|
|
23723
|
+
align-items: center; column-gap: 12px; width: 100%; min-height: 46px; padding: 6px 12px;
|
|
23724
|
+
border: 0; background: transparent; color: inherit; font-family: var(--stg-font); text-align: start; cursor: pointer;
|
|
23725
|
+
transition: background-color 120ms ease;
|
|
23726
|
+
}
|
|
23727
|
+
.sched-activity-btn:hover { background: rgba(255,255,255,0.025); }
|
|
23728
|
+
.sched-rows--activity .sched-row + .sched-row::before { left: 12px; }
|
|
23729
|
+
.sched-rows--activity .sched-row:first-child .sched-activity-btn { border-radius: var(--sched-group-radius) var(--sched-group-radius) 0 0; }
|
|
23730
|
+
.sched-rows--activity .sched-row:last-child .sched-activity-btn { border-radius: 0 0 var(--sched-group-radius) var(--sched-group-radius); }
|
|
23731
|
+
.sched-activity-btn :is(.sched-last, .sched-row-chevron) { grid-area: auto; }
|
|
23732
|
+
.sched-activity-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
|
|
23733
|
+
.sched-activity-when { display: flex; flex-direction: column; min-width: 0; font-size: var(--fs-xs); line-height: 1.4; }
|
|
23734
|
+
.sched-activity-when > span:first-child { color: var(--stg-text); }
|
|
23735
|
+
.sched-activity-when > span + span { color: var(--stg-help); }
|
|
23736
|
+
|
|
23737
|
+
/* ── Confirmation dialog, inside the window ── */
|
|
23738
|
+
.sched-dialog-layer {
|
|
23739
|
+
position: absolute; inset: 0; z-index: 30; display: flex; align-items: center; justify-content: center;
|
|
23740
|
+
padding: 12px; background: var(--s-panel); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
|
|
23741
|
+
}
|
|
23742
|
+
.sched-dialog {
|
|
23743
|
+
width: 420px; max-width: 100%; max-height: 100%; overflow-y: auto;
|
|
23744
|
+
color: var(--stg-text); background: var(--s-panel); border: 1px solid var(--fw-border);
|
|
23745
|
+
border-radius: var(--fw-radius); box-shadow: var(--fw-shadow);
|
|
23746
|
+
}
|
|
23747
|
+
.sched-dialog h4 { margin: 0; padding: 14px 18px 0; font-family: var(--stg-font); font-size: var(--fs-sm); font-weight: 600; line-height: 1.4; }
|
|
23748
|
+
.sched-dialog-body { padding: 8px 18px 2px; }
|
|
23749
|
+
.sched-dialog-name { margin: 0 0 6px; font-size: var(--fs-sm); line-height: 1.4; overflow-wrap: anywhere; }
|
|
23750
|
+
.sched-dialog-body .sched-help { max-width: 52ch; }
|
|
23751
|
+
.sched-dialog-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding: 14px 18px 16px; }
|
|
23752
|
+
|
|
23753
|
+
/* ── Narrow windows ── */
|
|
23754
|
+
@container sched (max-width: 780px) {
|
|
23755
|
+
.sched-body { grid-template-columns: minmax(0, 1fr); }
|
|
23756
|
+
.sched-rail { display: none; }
|
|
23757
|
+
.sched-narrow-nav { display: flex; align-items: center; gap: 8px; padding: 12px var(--sched-inset) 0; flex-shrink: 0; }
|
|
23758
|
+
.sched-narrow-nav .sched-scope-select { flex: 1 1 auto; min-width: 0; }
|
|
23759
|
+
.sched-footer-hint { display: none; }
|
|
23760
|
+
}
|
|
23761
|
+
@container sched (max-width: 600px) {
|
|
23762
|
+
.sched-main { --sched-inset: 14px; }
|
|
23763
|
+
.sched-view-head { padding-top: 14px; }
|
|
23764
|
+
.sched-toolbar { flex-wrap: wrap; }
|
|
23765
|
+
.sched-search { flex-basis: 100%; }
|
|
23766
|
+
.sched-search kbd { display: none; }
|
|
23767
|
+
.sched-row-line {
|
|
23768
|
+
grid-template-columns: 30px minmax(0, 1fr) auto 10px;
|
|
23769
|
+
grid-template-areas: "switch main main chev" ". next last chev";
|
|
23770
|
+
row-gap: 2px;
|
|
23771
|
+
}
|
|
23772
|
+
.sched-next, .sched-last { flex-direction: row; flex-wrap: wrap; column-gap: 6px; }
|
|
23773
|
+
.sched-last { justify-self: end; }
|
|
23774
|
+
.sched-row + .sched-row::before { left: 12px; }
|
|
23775
|
+
.sched-detail { padding-left: 14px; }
|
|
23776
|
+
.sched-group-meta { display: none; }
|
|
23777
|
+
.sched-form-row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
|
|
23778
|
+
.sched-form-control { justify-content: flex-start; }
|
|
23779
|
+
.sched-activity-btn { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; }
|
|
23780
|
+
.sched-activity-btn > :is(.sched-activity-next, .sched-row-chevron) { display: none; }
|
|
23781
|
+
}
|
|
23782
|
+
|
|
23783
|
+
/* Touch: room for a fingertip; desktop keeps the native small scale. */
|
|
23784
|
+
@media (pointer: coarse) {
|
|
23785
|
+
.schedules-studio-panel :is(.sched-btn, .sched-icon-btn, .sched-nav-item, .cc-dropdown-trigger, .sched-input, .sched-chip, .sched-group-toggle) { min-height: 44px; }
|
|
23786
|
+
.schedules-studio-panel .sched-icon-btn { width: 44px; }
|
|
23787
|
+
.schedules-studio-panel .sched-search { height: 44px; }
|
|
23788
|
+
.schedules-studio-panel .sched-row-line { min-height: 56px; }
|
|
23789
|
+
}
|
|
23790
|
+
@media (prefers-reduced-motion: reduce) {
|
|
23791
|
+
.schedules-studio-panel *, .schedules-studio-panel *::before, .schedules-studio-panel *::after { transition: none !important; animation: none !important; }
|
|
23363
23792
|
}
|
|
23364
|
-
.sched-sidebar-prompt svg { width: 13px; height: 13px; color: var(--t-muted); }
|
|
23365
23793
|
|
|
23794
|
+
/* ── Prompt a Schedule (modal over the window) ── */
|
|
23366
23795
|
.sched-prompt-backdrop {
|
|
23367
23796
|
position: fixed; inset: 0; background: rgba(5,7,12,0.58);
|
|
23368
23797
|
backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px);
|
|
@@ -23491,266 +23920,6 @@
|
|
|
23491
23920
|
color: var(--t-secondary);
|
|
23492
23921
|
}
|
|
23493
23922
|
|
|
23494
|
-
.sched-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
|
|
23495
|
-
.sched-tabs {
|
|
23496
|
-
display: flex; align-items: center; gap: 4px; padding: 10px 14px 0;
|
|
23497
|
-
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
23498
|
-
}
|
|
23499
|
-
.sched-tab {
|
|
23500
|
-
min-height: 30px; padding: 6px 12px; border: 1px solid transparent;
|
|
23501
|
-
border-bottom: 0; border-radius: 8px 8px 0 0; background: transparent;
|
|
23502
|
-
color: var(--t-muted); font-family: inherit; font-size: 12px; font-weight: 600;
|
|
23503
|
-
cursor: pointer; letter-spacing: 0;
|
|
23504
|
-
}
|
|
23505
|
-
.sched-tab:hover { color: var(--t-secondary); background: rgba(255,255,255,0.035); }
|
|
23506
|
-
.sched-tab.active { color: var(--t-bright); background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.08); }
|
|
23507
|
-
.sched-content {
|
|
23508
|
-
flex: 1; min-height: 0; overflow-y: auto; padding: 14px;
|
|
23509
|
-
display: flex; flex-direction: column; gap: 12px;
|
|
23510
|
-
}
|
|
23511
|
-
|
|
23512
|
-
.sched-stat-strip {
|
|
23513
|
-
display: grid; grid-template-columns: repeat(3, minmax(80px, 1fr)) auto; gap: 8px;
|
|
23514
|
-
align-items: stretch;
|
|
23515
|
-
}
|
|
23516
|
-
.sched-stat-strip div {
|
|
23517
|
-
border: 1px solid rgba(255,255,255,0.07); border-radius: 8px;
|
|
23518
|
-
background: rgba(255,255,255,0.03); padding: 9px 10px;
|
|
23519
|
-
}
|
|
23520
|
-
.sched-stat-strip span { display: block; color: var(--t-bright); font-size: 18px; font-weight: 700; }
|
|
23521
|
-
.sched-stat-strip label { color: var(--t-muted); font-size: 10px; }
|
|
23522
|
-
.sched-section-head {
|
|
23523
|
-
display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
|
|
23524
|
-
margin-top: 2px;
|
|
23525
|
-
}
|
|
23526
|
-
.sched-section-head h4 {
|
|
23527
|
-
margin: 0; color: var(--t-bright); font-family: var(--ff-heading);
|
|
23528
|
-
font-size: 14px; font-weight: 650; letter-spacing: 0;
|
|
23529
|
-
}
|
|
23530
|
-
.sched-section-head span { color: var(--t-muted); font-size: 11px; }
|
|
23531
|
-
.sched-card-list,
|
|
23532
|
-
.sched-group-card-list,
|
|
23533
|
-
.sched-activity-list { display: flex; flex-direction: column; gap: 8px; }
|
|
23534
|
-
|
|
23535
|
-
.sched-card {
|
|
23536
|
-
display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px;
|
|
23537
|
-
align-items: center; border: 1px solid rgba(255,255,255,0.075);
|
|
23538
|
-
border-radius: 8px; background: rgba(255,255,255,0.025);
|
|
23539
|
-
padding: 11px 12px; transition: border-color 0.15s, background 0.15s, opacity 0.15s;
|
|
23540
|
-
}
|
|
23541
|
-
.sched-card:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.12); }
|
|
23542
|
-
.sched-card.is-paused { opacity: 0.58; }
|
|
23543
|
-
.sched-card.dragging { opacity: 0.42; }
|
|
23544
|
-
.sched-card-main { min-width: 0; }
|
|
23545
|
-
.sched-card-title-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
|
|
23546
|
-
.sched-card h4 {
|
|
23547
|
-
margin: 0; color: var(--t-bright); font-size: 14px; font-weight: 700;
|
|
23548
|
-
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: 0;
|
|
23549
|
-
}
|
|
23550
|
-
.sched-card-meta { margin-top: 3px; color: var(--t-secondary); font-size: 12px; line-height: 1.35; }
|
|
23551
|
-
.sched-card-sub {
|
|
23552
|
-
display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px;
|
|
23553
|
-
color: var(--t-muted); font-size: 10px;
|
|
23554
|
-
}
|
|
23555
|
-
.sched-countdown {
|
|
23556
|
-
font-variant-numeric: tabular-nums;
|
|
23557
|
-
color: var(--t-secondary);
|
|
23558
|
-
font-weight: 600;
|
|
23559
|
-
}
|
|
23560
|
-
.sched-card-controls { display: flex; align-items: center; gap: 5px; }
|
|
23561
|
-
.sched-card-group-select {
|
|
23562
|
-
width: 128px; min-height: 28px; border-radius: 7px; background: rgba(255,255,255,0.035);
|
|
23563
|
-
border: 1px solid rgba(255,255,255,0.08); color: var(--t-secondary);
|
|
23564
|
-
font-size: 11px; font-family: inherit; padding: 4px 8px;
|
|
23565
|
-
}
|
|
23566
|
-
.sched-icon-btn {
|
|
23567
|
-
min-width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; gap: 4px;
|
|
23568
|
-
border-radius: 7px; border: 1px solid transparent; background: transparent;
|
|
23569
|
-
color: var(--t-dim); cursor: pointer; font-family: inherit; font-size: 11px;
|
|
23570
|
-
}
|
|
23571
|
-
.sched-icon-btn:hover:not(:disabled) { background: rgba(255,255,255,0.06); color: var(--t-bright); border-color: rgba(255,255,255,0.08); }
|
|
23572
|
-
.sched-icon-btn:disabled { opacity: 0.35; cursor: default; }
|
|
23573
|
-
.sched-icon-btn.danger:hover { color: rgba(244,67,54,0.9); border-color: rgba(244,67,54,0.22); }
|
|
23574
|
-
.sched-badge {
|
|
23575
|
-
font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 5px;
|
|
23576
|
-
text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap;
|
|
23577
|
-
}
|
|
23578
|
-
.sched-badge--ok { background: rgba(76,175,80,0.12); color: rgba(102,210,120,0.95); }
|
|
23579
|
-
.sched-badge--paused { background: rgba(255,255,255,0.06); color: var(--t-muted); }
|
|
23580
|
-
.sched-badge--error { background: rgba(244,67,54,0.12); color: rgba(244,67,54,0.95); }
|
|
23581
|
-
.sched-empty {
|
|
23582
|
-
border: 1px dashed rgba(255,255,255,0.09); border-radius: 8px;
|
|
23583
|
-
color: var(--t-muted); padding: 28px; text-align: center;
|
|
23584
|
-
}
|
|
23585
|
-
.sched-empty .sched-primary { margin-top: 12px; }
|
|
23586
|
-
|
|
23587
|
-
.sched-tool-section,
|
|
23588
|
-
.sched-active-timers {
|
|
23589
|
-
border: 1px solid rgba(255,255,255,0.075); border-radius: 8px;
|
|
23590
|
-
background: rgba(255,255,255,0.025); padding: 12px;
|
|
23591
|
-
display: flex; flex-direction: column; gap: 12px;
|
|
23592
|
-
}
|
|
23593
|
-
.sched-active-timers { gap: 6px; }
|
|
23594
|
-
.sched-active-timer {
|
|
23595
|
-
display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px;
|
|
23596
|
-
border: 1px solid rgba(255,255,255,0.06); border-radius: 7px;
|
|
23597
|
-
background: rgba(0,0,0,0.12); padding: 7px 9px;
|
|
23598
|
-
}
|
|
23599
|
-
.sched-active-timer span { color: var(--t-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
23600
|
-
.sched-active-timer strong { color: var(--t-bright); font-size: 13px; font-variant-numeric: tabular-nums; }
|
|
23601
|
-
.sched-form-grid {
|
|
23602
|
-
display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
|
|
23603
|
-
}
|
|
23604
|
-
.sched-form-grid.compact { grid-template-columns: minmax(0, 1fr) 120px auto; align-items: end; }
|
|
23605
|
-
.sched-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
|
|
23606
|
-
.sched-field.wide { grid-column: span 2; }
|
|
23607
|
-
.sched-field span {
|
|
23608
|
-
color: var(--t-secondary); font-size: 11px; font-weight: 650;
|
|
23609
|
-
}
|
|
23610
|
-
.sched-field input,
|
|
23611
|
-
.sched-field select,
|
|
23612
|
-
.sched-cron-input {
|
|
23613
|
-
width: 100%; min-height: 34px; border-radius: 7px;
|
|
23614
|
-
border: 1px solid rgba(255,255,255,0.08); background: rgba(0,0,0,0.18);
|
|
23615
|
-
color: var(--t-bright); font-size: 12px; font-family: inherit; padding: 7px 9px;
|
|
23616
|
-
outline: none; letter-spacing: 0;
|
|
23617
|
-
}
|
|
23618
|
-
.sched-cron-input { font-family: 'SF Mono', 'Fira Code', monospace; }
|
|
23619
|
-
.sched-field input:focus,
|
|
23620
|
-
.sched-field select:focus,
|
|
23621
|
-
.sched-cron-input:focus { border-color: rgba(79,195,247,0.35); }
|
|
23622
|
-
.sched-toggle {
|
|
23623
|
-
display: inline-flex; align-items: center; gap: 8px; min-height: 34px;
|
|
23624
|
-
color: var(--t-secondary); font-size: 12px; cursor: pointer;
|
|
23625
|
-
}
|
|
23626
|
-
.sched-time-row { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
|
|
23627
|
-
.sched-time-chip {
|
|
23628
|
-
min-width: 46px; min-height: 30px; border-radius: 8px;
|
|
23629
|
-
border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.035);
|
|
23630
|
-
color: var(--t-secondary); font-family: inherit; cursor: pointer;
|
|
23631
|
-
}
|
|
23632
|
-
.sched-time-chip:hover,
|
|
23633
|
-
.sched-time-chip.active { background: rgba(255,255,255,0.08); color: var(--t-bright); border-color: rgba(255,255,255,0.13); }
|
|
23634
|
-
.sched-min-input {
|
|
23635
|
-
width: 58px; min-height: 30px; border-radius: 8px;
|
|
23636
|
-
border: 1px solid rgba(255,255,255,0.08); background: rgba(0,0,0,0.18);
|
|
23637
|
-
color: var(--t-bright); padding: 5px 8px; font-family: inherit;
|
|
23638
|
-
}
|
|
23639
|
-
.align-end { align-self: end; }
|
|
23640
|
-
|
|
23641
|
-
.sched-group-card {
|
|
23642
|
-
display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
|
|
23643
|
-
border: 1px solid rgba(255,255,255,0.075); border-radius: 8px;
|
|
23644
|
-
background: rgba(255,255,255,0.025); padding: 11px 12px;
|
|
23645
|
-
}
|
|
23646
|
-
.sched-group-card.editing { border-color: rgba(255,255,255,0.15); background: rgba(255,255,255,0.04); }
|
|
23647
|
-
.sched-group-card-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
|
|
23648
|
-
.sched-group-card-main h4 { margin: 0; color: var(--t-bright); font-size: 13px; letter-spacing: 0; }
|
|
23649
|
-
.sched-group-card-main span:not(.sched-group-color) { color: var(--t-muted); font-size: 11px; }
|
|
23650
|
-
.sched-group-overrides { color: var(--t-secondary); }
|
|
23651
|
-
.sched-group-card-actions { display: flex; align-items: center; gap: 5px; }
|
|
23652
|
-
.sched-group-editor-body { width: 100%; border-top: 1px solid rgba(255,255,255,0.075); padding-top: 10px; margin-top: 2px; }
|
|
23653
|
-
.sched-group-editor-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 10px; }
|
|
23654
|
-
|
|
23655
|
-
.sched-mutex-toggle {
|
|
23656
|
-
display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
|
|
23657
|
-
padding: 3px 8px; border-radius: 6px; font-size: 11px;
|
|
23658
|
-
background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
|
|
23659
|
-
color: var(--t-muted); transition: all 0.15s;
|
|
23660
|
-
position: relative;
|
|
23661
|
-
}
|
|
23662
|
-
.sched-mutex-toggle:hover { background: rgba(255,255,255,0.07); color: var(--t-secondary); }
|
|
23663
|
-
.sched-mutex-toggle:has(input:checked) { background: rgba(255,160,0,0.12); border-color: rgba(255,160,0,0.3); color: #ffa040; }
|
|
23664
|
-
.sched-mutex-toggle input { display: none; }
|
|
23665
|
-
.sched-mutex-toggle.sched-mutex-create { align-self: end; margin-bottom: 2px; }
|
|
23666
|
-
.sched-mutex-label { display: inline-flex; align-items: center; gap: 3px; pointer-events: none; }
|
|
23667
|
-
.sched-mutex-label svg { width: 12px; height: 12px; }
|
|
23668
|
-
.sched-mutex-toggle[data-tooltip]:hover::after {
|
|
23669
|
-
content: attr(data-tooltip); position: absolute; bottom: calc(100% + 6px); left: 50%;
|
|
23670
|
-
transform: translateX(-50%); white-space: normal; width: max-content; max-width: 260px;
|
|
23671
|
-
padding: 6px 10px; border-radius: 6px; font-size: 11px; line-height: 1.35;
|
|
23672
|
-
background: rgba(20,20,20,0.95); color: var(--t-bright); border: 1px solid rgba(255,255,255,0.1);
|
|
23673
|
-
z-index: 100; pointer-events: none;
|
|
23674
|
-
}
|
|
23675
|
-
|
|
23676
|
-
.sched-group-mutex-icon {
|
|
23677
|
-
display: inline-flex; align-items: center; color: #ffa040; opacity: 0.7; flex-shrink: 0;
|
|
23678
|
-
}
|
|
23679
|
-
.sched-group-mutex-icon svg { width: 11px; height: 11px; }
|
|
23680
|
-
.sched-group-mutex-icon[data-tooltip] { position: relative; }
|
|
23681
|
-
.sched-group-mutex-icon[data-tooltip]:hover::after {
|
|
23682
|
-
content: attr(data-tooltip); position: absolute; bottom: calc(100% + 4px); right: 0;
|
|
23683
|
-
white-space: nowrap; padding: 4px 8px; border-radius: 5px;
|
|
23684
|
-
font-size: 10px; background: rgba(20,20,20,0.95); color: var(--t-bright);
|
|
23685
|
-
border: 1px solid rgba(255,255,255,0.1); z-index: 100; pointer-events: none;
|
|
23686
|
-
}
|
|
23687
|
-
|
|
23688
|
-
.sched-activity-row {
|
|
23689
|
-
display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(80px, auto) minmax(140px, auto) minmax(80px, auto);
|
|
23690
|
-
align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,0.07);
|
|
23691
|
-
border-radius: 8px; background: rgba(255,255,255,0.025); padding: 9px 10px;
|
|
23692
|
-
color: var(--t-secondary); font-size: 11px;
|
|
23693
|
-
}
|
|
23694
|
-
.sched-activity-row strong { display: block; color: var(--t-bright); font-size: 12px; }
|
|
23695
|
-
.sched-activity-row div span { color: var(--t-muted); }
|
|
23696
|
-
|
|
23697
|
-
.sched-editor { display: flex; flex-direction: column; min-height: 0; height: 100%; }
|
|
23698
|
-
.sched-editor-head {
|
|
23699
|
-
display: flex; align-items: center; gap: 10px; padding: 12px 14px;
|
|
23700
|
-
border-bottom: 1px solid rgba(255,255,255,0.06);
|
|
23701
|
-
}
|
|
23702
|
-
.sched-editor-head h3 {
|
|
23703
|
-
margin: 0; color: var(--t-bright); font-size: 15px; font-family: var(--ff-heading); letter-spacing: 0;
|
|
23704
|
-
}
|
|
23705
|
-
.sched-editor-head span { color: var(--t-muted); font-size: 11px; }
|
|
23706
|
-
.sched-editor-body {
|
|
23707
|
-
flex: 1; min-height: 0; overflow-y: auto; padding: 14px;
|
|
23708
|
-
display: flex; flex-direction: column; gap: 14px;
|
|
23709
|
-
}
|
|
23710
|
-
.sched-editor-section {
|
|
23711
|
-
border: 1px solid rgba(255,255,255,0.075); border-radius: 8px;
|
|
23712
|
-
background: rgba(255,255,255,0.025); padding: 12px; display: flex; flex-direction: column; gap: 10px;
|
|
23713
|
-
}
|
|
23714
|
-
.sched-presets { display: flex; flex-direction: column; gap: 8px; }
|
|
23715
|
-
.sched-preset-group { display: flex; flex-direction: column; gap: 5px; }
|
|
23716
|
-
.sched-preset-group > span {
|
|
23717
|
-
color: var(--t-muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em;
|
|
23718
|
-
}
|
|
23719
|
-
.sched-preset-group > div { display: flex; flex-wrap: wrap; gap: 5px; }
|
|
23720
|
-
.sched-preset {
|
|
23721
|
-
min-height: 26px; border-radius: 7px; border: 1px solid rgba(79,195,247,0.16);
|
|
23722
|
-
background: rgba(79,195,247,0.06); color: rgba(150,220,255,0.92);
|
|
23723
|
-
font-size: 11px; font-family: inherit; padding: 4px 8px; cursor: pointer;
|
|
23724
|
-
}
|
|
23725
|
-
.sched-preset:hover { background: rgba(79,195,247,0.12); border-color: rgba(79,195,247,0.28); }
|
|
23726
|
-
.sched-day-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
|
|
23727
|
-
.sched-day-field { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 7px; }
|
|
23728
|
-
.sched-day-field span { color: var(--t-muted); font-size: 10px; text-align: right; }
|
|
23729
|
-
.sched-day-field input {
|
|
23730
|
-
min-height: 30px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.08);
|
|
23731
|
-
background: rgba(0,0,0,0.18); color: var(--t-bright); font-size: 11px; padding: 6px 8px;
|
|
23732
|
-
}
|
|
23733
|
-
.sched-editor-actions {
|
|
23734
|
-
display: flex; justify-content: flex-end; gap: 8px; padding: 10px 14px;
|
|
23735
|
-
border-top: 1px solid rgba(255,255,255,0.06);
|
|
23736
|
-
}
|
|
23737
|
-
|
|
23738
|
-
@container sched (max-width: 760px) {
|
|
23739
|
-
.sched-body { flex-direction: column; }
|
|
23740
|
-
.sched-sidebar { width: auto; max-height: 160px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
|
|
23741
|
-
.sched-sidebar-summary { display: none; }
|
|
23742
|
-
.sched-stat-strip { grid-template-columns: repeat(3, 1fr); }
|
|
23743
|
-
.sched-stat-strip .sched-primary { grid-column: 1 / -1; }
|
|
23744
|
-
.sched-card { grid-template-columns: 1fr; }
|
|
23745
|
-
.sched-card-controls { flex-wrap: wrap; }
|
|
23746
|
-
.sched-card-group-select { width: 100%; }
|
|
23747
|
-
.sched-form-grid,
|
|
23748
|
-
.sched-form-grid.compact { grid-template-columns: 1fr; }
|
|
23749
|
-
.sched-field.wide { grid-column: span 1; }
|
|
23750
|
-
.sched-activity-row { grid-template-columns: 1fr; }
|
|
23751
|
-
.sched-day-grid { grid-template-columns: 1fr; }
|
|
23752
|
-
}
|
|
23753
|
-
|
|
23754
23923
|
/* ═══════════════════════════════════════════
|
|
23755
23924
|
SCHEDULE QUEUE DROPDOWN
|
|
23756
23925
|
═══════════════════════════════════════════ */
|