@contraagent/ui 0.0.0-stage → 0.1.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/README.md +130 -2
- package/custom-elements.json +7084 -0
- package/dist/adapters/check-rows.d.ts +18 -0
- package/dist/adapters/check-rows.d.ts.map +1 -0
- package/dist/adapters/check-rows.js +75 -0
- package/dist/adapters/check-rows.js.map +1 -0
- package/dist/adapters/filters.d.ts +29 -0
- package/dist/adapters/filters.d.ts.map +1 -0
- package/dist/adapters/filters.js +74 -0
- package/dist/adapters/filters.js.map +1 -0
- package/dist/adapters/graph/compound.d.ts +93 -0
- package/dist/adapters/graph/compound.d.ts.map +1 -0
- package/dist/adapters/graph/compound.js +322 -0
- package/dist/adapters/graph/compound.js.map +1 -0
- package/dist/adapters/graph/flow-index.d.ts +54 -0
- package/dist/adapters/graph/flow-index.d.ts.map +1 -0
- package/dist/adapters/graph/flow-index.js +129 -0
- package/dist/adapters/graph/flow-index.js.map +1 -0
- package/dist/adapters/graph/highlight.d.ts +14 -0
- package/dist/adapters/graph/highlight.d.ts.map +1 -0
- package/dist/adapters/graph/highlight.js +33 -0
- package/dist/adapters/graph/highlight.js.map +1 -0
- package/dist/adapters/graph/input.d.ts +50 -0
- package/dist/adapters/graph/input.d.ts.map +1 -0
- package/dist/adapters/graph/input.js +201 -0
- package/dist/adapters/graph/input.js.map +1 -0
- package/dist/adapters/graph/layer.d.ts +33 -0
- package/dist/adapters/graph/layer.d.ts.map +1 -0
- package/dist/adapters/graph/layer.js +94 -0
- package/dist/adapters/graph/layer.js.map +1 -0
- package/dist/adapters/graph/matrix.d.ts +62 -0
- package/dist/adapters/graph/matrix.d.ts.map +1 -0
- package/dist/adapters/graph/matrix.js +96 -0
- package/dist/adapters/graph/matrix.js.map +1 -0
- package/dist/adapters/graph/project.d.ts +49 -0
- package/dist/adapters/graph/project.d.ts.map +1 -0
- package/dist/adapters/graph/project.js +319 -0
- package/dist/adapters/graph/project.js.map +1 -0
- package/dist/adapters/graph/selection.d.ts +31 -0
- package/dist/adapters/graph/selection.d.ts.map +1 -0
- package/dist/adapters/graph/selection.js +48 -0
- package/dist/adapters/graph/selection.js.map +1 -0
- package/dist/adapters/graph/states.d.ts +6 -0
- package/dist/adapters/graph/states.d.ts.map +1 -0
- package/dist/adapters/graph/states.js +5 -0
- package/dist/adapters/graph/states.js.map +1 -0
- package/dist/adapters/graph/types.d.ts +141 -0
- package/dist/adapters/graph/types.d.ts.map +1 -0
- package/dist/adapters/graph/types.js +3 -0
- package/dist/adapters/graph/types.js.map +1 -0
- package/dist/adapters/graph/words.d.ts +48 -0
- package/dist/adapters/graph/words.d.ts.map +1 -0
- package/dist/adapters/graph/words.js +128 -0
- package/dist/adapters/graph/words.js.map +1 -0
- package/dist/adapters/index.d.ts +18 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +23 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/journal-columns.d.ts +21 -0
- package/dist/adapters/journal-columns.d.ts.map +1 -0
- package/dist/adapters/journal-columns.js +179 -0
- package/dist/adapters/journal-columns.js.map +1 -0
- package/dist/adapters/kpi-tiles.d.ts +47 -0
- package/dist/adapters/kpi-tiles.d.ts.map +1 -0
- package/dist/adapters/kpi-tiles.js +173 -0
- package/dist/adapters/kpi-tiles.js.map +1 -0
- package/dist/adapters/lanes.d.ts +31 -0
- package/dist/adapters/lanes.d.ts.map +1 -0
- package/dist/adapters/lanes.js +75 -0
- package/dist/adapters/lanes.js.map +1 -0
- package/dist/adapters/model-shares.d.ts +27 -0
- package/dist/adapters/model-shares.d.ts.map +1 -0
- package/dist/adapters/model-shares.js +52 -0
- package/dist/adapters/model-shares.js.map +1 -0
- package/dist/adapters/panel-body.d.ts +20 -0
- package/dist/adapters/panel-body.d.ts.map +1 -0
- package/dist/adapters/panel-body.js +63 -0
- package/dist/adapters/panel-body.js.map +1 -0
- package/dist/adapters/preflight.d.ts +12 -0
- package/dist/adapters/preflight.d.ts.map +1 -0
- package/dist/adapters/preflight.js +15 -0
- package/dist/adapters/preflight.js.map +1 -0
- package/dist/adapters/task-columns.d.ts +19 -0
- package/dist/adapters/task-columns.d.ts.map +1 -0
- package/dist/adapters/task-columns.js +107 -0
- package/dist/adapters/task-columns.js.map +1 -0
- package/dist/adapters/transcript/index.d.ts +6 -0
- package/dist/adapters/transcript/index.d.ts.map +1 -0
- package/dist/adapters/transcript/index.js +8 -0
- package/dist/adapters/transcript/index.js.map +1 -0
- package/dist/adapters/transcript/model.d.ts +42 -0
- package/dist/adapters/transcript/model.d.ts.map +1 -0
- package/dist/adapters/transcript/model.js +128 -0
- package/dist/adapters/transcript/model.js.map +1 -0
- package/dist/adapters/transcript/rounds.d.ts +15 -0
- package/dist/adapters/transcript/rounds.d.ts.map +1 -0
- package/dist/adapters/transcript/rounds.js +74 -0
- package/dist/adapters/transcript/rounds.js.map +1 -0
- package/dist/adapters/transcript/sections.d.ts +18 -0
- package/dist/adapters/transcript/sections.d.ts.map +1 -0
- package/dist/adapters/transcript/sections.js +69 -0
- package/dist/adapters/transcript/sections.js.map +1 -0
- package/dist/adapters/transcript/web.d.ts +12 -0
- package/dist/adapters/transcript/web.d.ts.map +1 -0
- package/dist/adapters/transcript/web.js +39 -0
- package/dist/adapters/transcript/web.js.map +1 -0
- package/dist/adapters/transcript/who.d.ts +15 -0
- package/dist/adapters/transcript/who.d.ts.map +1 -0
- package/dist/adapters/transcript/who.js +42 -0
- package/dist/adapters/transcript/who.js.map +1 -0
- package/dist/adapters/trends.d.ts +11 -0
- package/dist/adapters/trends.d.ts.map +1 -0
- package/dist/adapters/trends.js +316 -0
- package/dist/adapters/trends.js.map +1 -0
- package/dist/contraagent-ui.js +985 -0
- package/dist/controllers/locale.d.ts +25 -0
- package/dist/controllers/locale.d.ts.map +1 -0
- package/dist/controllers/locale.js +33 -0
- package/dist/controllers/locale.js.map +1 -0
- package/dist/controllers/shortcuts.d.ts +29 -0
- package/dist/controllers/shortcuts.d.ts.map +1 -0
- package/dist/controllers/shortcuts.js +51 -0
- package/dist/controllers/shortcuts.js.map +1 -0
- package/dist/controllers/stream.d.ts +41 -0
- package/dist/controllers/stream.d.ts.map +1 -0
- package/dist/controllers/stream.js +90 -0
- package/dist/controllers/stream.js.map +1 -0
- package/dist/controllers/task-detail.d.ts +22 -0
- package/dist/controllers/task-detail.d.ts.map +1 -0
- package/dist/controllers/task-detail.js +50 -0
- package/dist/controllers/task-detail.js.map +1 -0
- package/dist/controllers/theme.d.ts +32 -0
- package/dist/controllers/theme.d.ts.map +1 -0
- package/dist/controllers/theme.js +56 -0
- package/dist/controllers/theme.js.map +1 -0
- package/dist/core/clock.d.ts +20 -0
- package/dist/core/clock.d.ts.map +1 -0
- package/dist/core/clock.js +45 -0
- package/dist/core/clock.js.map +1 -0
- package/dist/core/events.d.ts +107 -0
- package/dist/core/events.d.ts.map +1 -0
- package/dist/core/events.js +5 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/i18n.d.ts +21 -0
- package/dist/core/i18n.d.ts.map +1 -0
- package/dist/core/i18n.js +71 -0
- package/dist/core/i18n.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/memory.d.ts +51 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +174 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/route.d.ts +62 -0
- package/dist/core/route.d.ts.map +1 -0
- package/dist/core/route.js +143 -0
- package/dist/core/route.js.map +1 -0
- package/dist/core/router.d.ts +27 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +57 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/scroll.d.ts +21 -0
- package/dist/core/scroll.d.ts.map +1 -0
- package/dist/core/scroll.js +74 -0
- package/dist/core/scroll.js.map +1 -0
- package/dist/core/view-route.d.ts +62 -0
- package/dist/core/view-route.d.ts.map +1 -0
- package/dist/core/view-route.js +143 -0
- package/dist/core/view-route.js.map +1 -0
- package/dist/core/view-router.d.ts +27 -0
- package/dist/core/view-router.d.ts.map +1 -0
- package/dist/core/view-router.js +57 -0
- package/dist/core/view-router.js.map +1 -0
- package/dist/define/all.d.ts +13 -0
- package/dist/define/all.d.ts.map +1 -0
- package/dist/define/all.js +14 -0
- package/dist/define/all.js.map +1 -0
- package/dist/define/contracts.d.ts +2 -0
- package/dist/define/contracts.d.ts.map +1 -0
- package/dist/define/contracts.js +3 -0
- package/dist/define/contracts.js.map +1 -0
- package/dist/define/definitions.d.ts +3 -0
- package/dist/define/definitions.d.ts.map +1 -0
- package/dist/define/definitions.js +4 -0
- package/dist/define/definitions.js.map +1 -0
- package/dist/define/journal-table.d.ts +2 -0
- package/dist/define/journal-table.d.ts.map +1 -0
- package/dist/define/journal-table.js +3 -0
- package/dist/define/journal-table.js.map +1 -0
- package/dist/define/kpis.d.ts +2 -0
- package/dist/define/kpis.d.ts.map +1 -0
- package/dist/define/kpis.js +3 -0
- package/dist/define/kpis.js.map +1 -0
- package/dist/define/monitor.d.ts +2 -0
- package/dist/define/monitor.d.ts.map +1 -0
- package/dist/define/monitor.js +3 -0
- package/dist/define/monitor.js.map +1 -0
- package/dist/define/overview.d.ts +2 -0
- package/dist/define/overview.d.ts.map +1 -0
- package/dist/define/overview.js +3 -0
- package/dist/define/overview.js.map +1 -0
- package/dist/define/pipeline-graph.d.ts +2 -0
- package/dist/define/pipeline-graph.d.ts.map +1 -0
- package/dist/define/pipeline-graph.js +3 -0
- package/dist/define/pipeline-graph.js.map +1 -0
- package/dist/define/procs.d.ts +3 -0
- package/dist/define/procs.d.ts.map +1 -0
- package/dist/define/procs.js +4 -0
- package/dist/define/procs.js.map +1 -0
- package/dist/define/task-table.d.ts +2 -0
- package/dist/define/task-table.d.ts.map +1 -0
- package/dist/define/task-table.js +3 -0
- package/dist/define/task-table.js.map +1 -0
- package/dist/define/task-view.d.ts +2 -0
- package/dist/define/task-view.d.ts.map +1 -0
- package/dist/define/task-view.js +3 -0
- package/dist/define/task-view.js.map +1 -0
- package/dist/define/timeline.d.ts +2 -0
- package/dist/define/timeline.d.ts.map +1 -0
- package/dist/define/timeline.js +3 -0
- package/dist/define/timeline.js.map +1 -0
- package/dist/define/transcript.d.ts +2 -0
- package/dist/define/transcript.d.ts.map +1 -0
- package/dist/define/transcript.js +3 -0
- package/dist/define/transcript.js.map +1 -0
- package/dist/elements/lists/ca-contracts.d.ts +46 -0
- package/dist/elements/lists/ca-contracts.d.ts.map +1 -0
- package/dist/elements/lists/ca-contracts.js +199 -0
- package/dist/elements/lists/ca-contracts.js.map +1 -0
- package/dist/elements/lists/ca-definitions.d.ts +41 -0
- package/dist/elements/lists/ca-definitions.d.ts.map +1 -0
- package/dist/elements/lists/ca-definitions.js +182 -0
- package/dist/elements/lists/ca-definitions.js.map +1 -0
- package/dist/elements/lists/ca-journal-table.d.ts +37 -0
- package/dist/elements/lists/ca-journal-table.d.ts.map +1 -0
- package/dist/elements/lists/ca-journal-table.js +170 -0
- package/dist/elements/lists/ca-journal-table.js.map +1 -0
- package/dist/elements/lists/ca-panel-body.d.ts +29 -0
- package/dist/elements/lists/ca-panel-body.d.ts.map +1 -0
- package/dist/elements/lists/ca-panel-body.js +144 -0
- package/dist/elements/lists/ca-panel-body.js.map +1 -0
- package/dist/elements/lists/ca-panel-view.d.ts +21 -0
- package/dist/elements/lists/ca-panel-view.d.ts.map +1 -0
- package/dist/elements/lists/ca-panel-view.js +59 -0
- package/dist/elements/lists/ca-panel-view.js.map +1 -0
- package/dist/elements/lists/ca-proc-tree.d.ts +16 -0
- package/dist/elements/lists/ca-proc-tree.d.ts.map +1 -0
- package/dist/elements/lists/ca-proc-tree.js +63 -0
- package/dist/elements/lists/ca-proc-tree.js.map +1 -0
- package/dist/elements/lists/ca-procs-view.d.ts +27 -0
- package/dist/elements/lists/ca-procs-view.d.ts.map +1 -0
- package/dist/elements/lists/ca-procs-view.js +91 -0
- package/dist/elements/lists/ca-procs-view.js.map +1 -0
- package/dist/elements/lists/ca-task-table.d.ts +33 -0
- package/dist/elements/lists/ca-task-table.d.ts.map +1 -0
- package/dist/elements/lists/ca-task-table.js +115 -0
- package/dist/elements/lists/ca-task-table.js.map +1 -0
- package/dist/elements/lists/filters.d.ts +28 -0
- package/dist/elements/lists/filters.d.ts.map +1 -0
- package/dist/elements/lists/filters.js +71 -0
- package/dist/elements/lists/filters.js.map +1 -0
- package/dist/elements/lists/index.d.ts +9 -0
- package/dist/elements/lists/index.d.ts.map +1 -0
- package/dist/elements/lists/index.js +9 -0
- package/dist/elements/lists/index.js.map +1 -0
- package/dist/elements/overview/ca-kpis.d.ts +32 -0
- package/dist/elements/overview/ca-kpis.d.ts.map +1 -0
- package/dist/elements/overview/ca-kpis.js +62 -0
- package/dist/elements/overview/ca-kpis.js.map +1 -0
- package/dist/elements/overview/ca-model-usage.d.ts +25 -0
- package/dist/elements/overview/ca-model-usage.d.ts.map +1 -0
- package/dist/elements/overview/ca-model-usage.js +118 -0
- package/dist/elements/overview/ca-model-usage.js.map +1 -0
- package/dist/elements/overview/ca-overview.d.ts +66 -0
- package/dist/elements/overview/ca-overview.d.ts.map +1 -0
- package/dist/elements/overview/ca-overview.js +456 -0
- package/dist/elements/overview/ca-overview.js.map +1 -0
- package/dist/elements/overview/ca-pipeline-graph.d.ts +211 -0
- package/dist/elements/overview/ca-pipeline-graph.d.ts.map +1 -0
- package/dist/elements/overview/ca-pipeline-graph.js +616 -0
- package/dist/elements/overview/ca-pipeline-graph.js.map +1 -0
- package/dist/elements/overview/ca-pipeline-progress.d.ts +17 -0
- package/dist/elements/overview/ca-pipeline-progress.d.ts.map +1 -0
- package/dist/elements/overview/ca-pipeline-progress.js +119 -0
- package/dist/elements/overview/ca-pipeline-progress.js.map +1 -0
- package/dist/elements/overview/ca-plan-matrix.d.ts +27 -0
- package/dist/elements/overview/ca-plan-matrix.d.ts.map +1 -0
- package/dist/elements/overview/ca-plan-matrix.js +113 -0
- package/dist/elements/overview/ca-plan-matrix.js.map +1 -0
- package/dist/elements/overview/ca-quota.d.ts +42 -0
- package/dist/elements/overview/ca-quota.d.ts.map +1 -0
- package/dist/elements/overview/ca-quota.js +179 -0
- package/dist/elements/overview/ca-quota.js.map +1 -0
- package/dist/elements/overview/ca-run-driver.d.ts +33 -0
- package/dist/elements/overview/ca-run-driver.d.ts.map +1 -0
- package/dist/elements/overview/ca-run-driver.js +146 -0
- package/dist/elements/overview/ca-run-driver.js.map +1 -0
- package/dist/elements/overview/ca-spend-breakdown.d.ts +24 -0
- package/dist/elements/overview/ca-spend-breakdown.d.ts.map +1 -0
- package/dist/elements/overview/ca-spend-breakdown.js +108 -0
- package/dist/elements/overview/ca-spend-breakdown.js.map +1 -0
- package/dist/elements/overview/ca-timeline.d.ts +28 -0
- package/dist/elements/overview/ca-timeline.d.ts.map +1 -0
- package/dist/elements/overview/ca-timeline.js +72 -0
- package/dist/elements/overview/ca-timeline.js.map +1 -0
- package/dist/elements/overview/ca-workers.d.ts +23 -0
- package/dist/elements/overview/ca-workers.d.ts.map +1 -0
- package/dist/elements/overview/ca-workers.js +86 -0
- package/dist/elements/overview/ca-workers.js.map +1 -0
- package/dist/elements/overview/flow-types.d.ts +2 -0
- package/dist/elements/overview/flow-types.d.ts.map +1 -0
- package/dist/elements/overview/flow-types.js +2 -0
- package/dist/elements/overview/flow-types.js.map +1 -0
- package/dist/elements/overview/graph/arrange.d.ts +16 -0
- package/dist/elements/overview/graph/arrange.d.ts.map +1 -0
- package/dist/elements/overview/graph/arrange.js +152 -0
- package/dist/elements/overview/graph/arrange.js.map +1 -0
- package/dist/elements/overview/graph/card.d.ts +64 -0
- package/dist/elements/overview/graph/card.d.ts.map +1 -0
- package/dist/elements/overview/graph/card.js +160 -0
- package/dist/elements/overview/graph/card.js.map +1 -0
- package/dist/elements/overview/graph/flow-index.d.ts +52 -0
- package/dist/elements/overview/graph/flow-index.d.ts.map +1 -0
- package/dist/elements/overview/graph/flow-index.js +121 -0
- package/dist/elements/overview/graph/flow-index.js.map +1 -0
- package/dist/elements/overview/graph/highlight.d.ts +14 -0
- package/dist/elements/overview/graph/highlight.d.ts.map +1 -0
- package/dist/elements/overview/graph/highlight.js +33 -0
- package/dist/elements/overview/graph/highlight.js.map +1 -0
- package/dist/elements/overview/graph/layer.d.ts +32 -0
- package/dist/elements/overview/graph/layer.d.ts.map +1 -0
- package/dist/elements/overview/graph/layer.js +92 -0
- package/dist/elements/overview/graph/layer.js.map +1 -0
- package/dist/elements/overview/graph/layout.d.ts +80 -0
- package/dist/elements/overview/graph/layout.d.ts.map +1 -0
- package/dist/elements/overview/graph/layout.js +261 -0
- package/dist/elements/overview/graph/layout.js.map +1 -0
- package/dist/elements/overview/graph/marks.d.ts +18 -0
- package/dist/elements/overview/graph/marks.d.ts.map +1 -0
- package/dist/elements/overview/graph/marks.js +17 -0
- package/dist/elements/overview/graph/marks.js.map +1 -0
- package/dist/elements/overview/graph/matrix.d.ts +58 -0
- package/dist/elements/overview/graph/matrix.d.ts.map +1 -0
- package/dist/elements/overview/graph/matrix.js +93 -0
- package/dist/elements/overview/graph/matrix.js.map +1 -0
- package/dist/elements/overview/graph/nav.d.ts +15 -0
- package/dist/elements/overview/graph/nav.d.ts.map +1 -0
- package/dist/elements/overview/graph/nav.js +80 -0
- package/dist/elements/overview/graph/nav.js.map +1 -0
- package/dist/elements/overview/graph/pan-zoom.d.ts +83 -0
- package/dist/elements/overview/graph/pan-zoom.d.ts.map +1 -0
- package/dist/elements/overview/graph/pan-zoom.js +189 -0
- package/dist/elements/overview/graph/pan-zoom.js.map +1 -0
- package/dist/elements/overview/graph/paths.d.ts +9 -0
- package/dist/elements/overview/graph/paths.d.ts.map +1 -0
- package/dist/elements/overview/graph/paths.js +44 -0
- package/dist/elements/overview/graph/paths.js.map +1 -0
- package/dist/elements/overview/graph/place-card.d.ts +36 -0
- package/dist/elements/overview/graph/place-card.d.ts.map +1 -0
- package/dist/elements/overview/graph/place-card.js +68 -0
- package/dist/elements/overview/graph/place-card.js.map +1 -0
- package/dist/elements/overview/graph/project.d.ts +31 -0
- package/dist/elements/overview/graph/project.d.ts.map +1 -0
- package/dist/elements/overview/graph/project.js +455 -0
- package/dist/elements/overview/graph/project.js.map +1 -0
- package/dist/elements/overview/graph/selection.d.ts +31 -0
- package/dist/elements/overview/graph/selection.d.ts.map +1 -0
- package/dist/elements/overview/graph/selection.js +44 -0
- package/dist/elements/overview/graph/selection.js.map +1 -0
- package/dist/elements/overview/graph/states.d.ts +6 -0
- package/dist/elements/overview/graph/states.d.ts.map +1 -0
- package/dist/elements/overview/graph/states.js +5 -0
- package/dist/elements/overview/graph/states.js.map +1 -0
- package/dist/elements/overview/graph/types.d.ts +124 -0
- package/dist/elements/overview/graph/types.d.ts.map +1 -0
- package/dist/elements/overview/graph/types.js +3 -0
- package/dist/elements/overview/graph/types.js.map +1 -0
- package/dist/elements/overview/graph/view.d.ts +16 -0
- package/dist/elements/overview/graph/view.d.ts.map +1 -0
- package/dist/elements/overview/graph/view.js +20 -0
- package/dist/elements/overview/graph/view.js.map +1 -0
- package/dist/elements/overview/index.d.ts +10 -0
- package/dist/elements/overview/index.d.ts.map +1 -0
- package/dist/elements/overview/index.js +10 -0
- package/dist/elements/overview/index.js.map +1 -0
- package/dist/elements/overview/kpis-model.d.ts +31 -0
- package/dist/elements/overview/kpis-model.d.ts.map +1 -0
- package/dist/elements/overview/kpis-model.js +30 -0
- package/dist/elements/overview/kpis-model.js.map +1 -0
- package/dist/elements/overview/logic.d.ts +442 -0
- package/dist/elements/overview/logic.d.ts.map +1 -0
- package/dist/elements/overview/logic.js +1431 -0
- package/dist/elements/overview/logic.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/actions.d.ts +16 -0
- package/dist/elements/overview/pipeline-graph/actions.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/actions.js +42 -0
- package/dist/elements/overview/pipeline-graph/actions.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/crumbs.d.ts +15 -0
- package/dist/elements/overview/pipeline-graph/crumbs.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/crumbs.js +70 -0
- package/dist/elements/overview/pipeline-graph/crumbs.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/dag.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/dag.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/dag.js +259 -0
- package/dist/elements/overview/pipeline-graph/dag.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/host.d.ts +24 -0
- package/dist/elements/overview/pipeline-graph/host.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/host.js +2 -0
- package/dist/elements/overview/pipeline-graph/host.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/icons.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/icons.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/icons.js +13 -0
- package/dist/elements/overview/pipeline-graph/icons.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/inspector.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/inspector.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/inspector.js +100 -0
- package/dist/elements/overview/pipeline-graph/inspector.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/legend.d.ts +9 -0
- package/dist/elements/overview/pipeline-graph/legend.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/legend.js +59 -0
- package/dist/elements/overview/pipeline-graph/legend.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/matrix.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/matrix.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/matrix.js +193 -0
- package/dist/elements/overview/pipeline-graph/matrix.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/outline.d.ts +53 -0
- package/dist/elements/overview/pipeline-graph/outline.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/outline.js +111 -0
- package/dist/elements/overview/pipeline-graph/outline.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/strings.d.ts +11 -0
- package/dist/elements/overview/pipeline-graph/strings.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/strings.js +49 -0
- package/dist/elements/overview/pipeline-graph/strings.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/styles.d.ts +4 -0
- package/dist/elements/overview/pipeline-graph/styles.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/styles.js +96 -0
- package/dist/elements/overview/pipeline-graph/styles.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/table.d.ts +11 -0
- package/dist/elements/overview/pipeline-graph/table.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/table.js +74 -0
- package/dist/elements/overview/pipeline-graph/table.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/tools.d.ts +5 -0
- package/dist/elements/overview/pipeline-graph/tools.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/tools.js +48 -0
- package/dist/elements/overview/pipeline-graph/tools.js.map +1 -0
- package/dist/elements/overview/pipeline-graph/words.d.ts +45 -0
- package/dist/elements/overview/pipeline-graph/words.d.ts.map +1 -0
- package/dist/elements/overview/pipeline-graph/words.js +108 -0
- package/dist/elements/overview/pipeline-graph/words.js.map +1 -0
- package/dist/elements/overview/place-card.d.ts +36 -0
- package/dist/elements/overview/place-card.d.ts.map +1 -0
- package/dist/elements/overview/place-card.js +68 -0
- package/dist/elements/overview/place-card.js.map +1 -0
- package/dist/elements/overview/timeline-model.d.ts +44 -0
- package/dist/elements/overview/timeline-model.d.ts.map +1 -0
- package/dist/elements/overview/timeline-model.js +53 -0
- package/dist/elements/overview/timeline-model.js.map +1 -0
- package/dist/elements/shared/ca-count.d.ts +17 -0
- package/dist/elements/shared/ca-count.d.ts.map +1 -0
- package/dist/elements/shared/ca-count.js +59 -0
- package/dist/elements/shared/ca-count.js.map +1 -0
- package/dist/elements/shared/ca-definition.d.ts +26 -0
- package/dist/elements/shared/ca-definition.d.ts.map +1 -0
- package/dist/elements/shared/ca-definition.js +202 -0
- package/dist/elements/shared/ca-definition.js.map +1 -0
- package/dist/elements/shared/ca-elapsed.d.ts +14 -0
- package/dist/elements/shared/ca-elapsed.d.ts.map +1 -0
- package/dist/elements/shared/ca-elapsed.js +33 -0
- package/dist/elements/shared/ca-elapsed.js.map +1 -0
- package/dist/elements/shared/ca-json-tree.d.ts +16 -0
- package/dist/elements/shared/ca-json-tree.d.ts.map +1 -0
- package/dist/elements/shared/ca-json-tree.js +52 -0
- package/dist/elements/shared/ca-json-tree.js.map +1 -0
- package/dist/elements/shared/ca-markdown.d.ts +19 -0
- package/dist/elements/shared/ca-markdown.d.ts.map +1 -0
- package/dist/elements/shared/ca-markdown.js +59 -0
- package/dist/elements/shared/ca-markdown.js.map +1 -0
- package/dist/elements/shared/contract-parts.d.ts +35 -0
- package/dist/elements/shared/contract-parts.d.ts.map +1 -0
- package/dist/elements/shared/contract-parts.js +151 -0
- package/dist/elements/shared/contract-parts.js.map +1 -0
- package/dist/elements/shared/fact-line.d.ts +4 -0
- package/dist/elements/shared/fact-line.d.ts.map +1 -0
- package/dist/elements/shared/fact-line.js +8 -0
- package/dist/elements/shared/fact-line.js.map +1 -0
- package/dist/elements/shared/file-card.d.ts +17 -0
- package/dist/elements/shared/file-card.d.ts.map +1 -0
- package/dist/elements/shared/file-card.js +37 -0
- package/dist/elements/shared/file-card.js.map +1 -0
- package/dist/elements/shared/prompt-text.d.ts +5 -0
- package/dist/elements/shared/prompt-text.d.ts.map +1 -0
- package/dist/elements/shared/prompt-text.js +13 -0
- package/dist/elements/shared/prompt-text.js.map +1 -0
- package/dist/elements/shared/task-chip.d.ts +10 -0
- package/dist/elements/shared/task-chip.d.ts.map +1 -0
- package/dist/elements/shared/task-chip.js +19 -0
- package/dist/elements/shared/task-chip.js.map +1 -0
- package/dist/elements/shell/ca-clock.d.ts +13 -0
- package/dist/elements/shell/ca-clock.d.ts.map +1 -0
- package/dist/elements/shell/ca-clock.js +30 -0
- package/dist/elements/shell/ca-clock.js.map +1 -0
- package/dist/elements/shell/ca-hosts.d.ts +21 -0
- package/dist/elements/shell/ca-hosts.d.ts.map +1 -0
- package/dist/elements/shell/ca-hosts.js +97 -0
- package/dist/elements/shell/ca-hosts.js.map +1 -0
- package/dist/elements/shell/ca-monitor.d.ts +180 -0
- package/dist/elements/shell/ca-monitor.d.ts.map +1 -0
- package/dist/elements/shell/ca-monitor.js +547 -0
- package/dist/elements/shell/ca-monitor.js.map +1 -0
- package/dist/elements/shell/ca-run-picker.d.ts +71 -0
- package/dist/elements/shell/ca-run-picker.d.ts.map +1 -0
- package/dist/elements/shell/ca-run-picker.js +313 -0
- package/dist/elements/shell/ca-run-picker.js.map +1 -0
- package/dist/elements/shell/ca-theme-switch.d.ts +36 -0
- package/dist/elements/shell/ca-theme-switch.d.ts.map +1 -0
- package/dist/elements/shell/ca-theme-switch.js +186 -0
- package/dist/elements/shell/ca-theme-switch.js.map +1 -0
- package/dist/elements/shell/ca-toasts.d.ts +23 -0
- package/dist/elements/shell/ca-toasts.d.ts.map +1 -0
- package/dist/elements/shell/ca-toasts.js +88 -0
- package/dist/elements/shell/ca-toasts.js.map +1 -0
- package/dist/elements/shell/header.d.ts +13 -0
- package/dist/elements/shell/header.d.ts.map +1 -0
- package/dist/elements/shell/header.js +38 -0
- package/dist/elements/shell/header.js.map +1 -0
- package/dist/elements/shell/styles.d.ts +2 -0
- package/dist/elements/shell/styles.d.ts.map +1 -0
- package/dist/elements/shell/styles.js +72 -0
- package/dist/elements/shell/styles.js.map +1 -0
- package/dist/elements/shell/tabs.d.ts +32 -0
- package/dist/elements/shell/tabs.d.ts.map +1 -0
- package/dist/elements/shell/tabs.js +125 -0
- package/dist/elements/shell/tabs.js.map +1 -0
- package/dist/elements/shell/views.d.ts +27 -0
- package/dist/elements/shell/views.d.ts.map +1 -0
- package/dist/elements/shell/views.js +55 -0
- package/dist/elements/shell/views.js.map +1 -0
- package/dist/elements/task/ca-task-view.d.ts +55 -0
- package/dist/elements/task/ca-task-view.d.ts.map +1 -0
- package/dist/elements/task/ca-task-view.js +199 -0
- package/dist/elements/task/ca-task-view.js.map +1 -0
- package/dist/elements/task/ca-transcript.d.ts +74 -0
- package/dist/elements/task/ca-transcript.d.ts.map +1 -0
- package/dist/elements/task/ca-transcript.js +241 -0
- package/dist/elements/task/ca-transcript.js.map +1 -0
- package/dist/elements/task/context.d.ts +57 -0
- package/dist/elements/task/context.d.ts.map +1 -0
- package/dist/elements/task/context.js +61 -0
- package/dist/elements/task/context.js.map +1 -0
- package/dist/elements/task/header.d.ts +9 -0
- package/dist/elements/task/header.d.ts.map +1 -0
- package/dist/elements/task/header.js +287 -0
- package/dist/elements/task/header.js.map +1 -0
- package/dist/elements/task/index.d.ts +3 -0
- package/dist/elements/task/index.d.ts.map +1 -0
- package/dist/elements/task/index.js +3 -0
- package/dist/elements/task/index.js.map +1 -0
- package/dist/elements/task/inputs.d.ts +28 -0
- package/dist/elements/task/inputs.d.ts.map +1 -0
- package/dist/elements/task/inputs.js +27 -0
- package/dist/elements/task/inputs.js.map +1 -0
- package/dist/elements/task/panes/definition.d.ts +5 -0
- package/dist/elements/task/panes/definition.d.ts.map +1 -0
- package/dist/elements/task/panes/definition.js +5 -0
- package/dist/elements/task/panes/definition.js.map +1 -0
- package/dist/elements/task/panes/io.d.ts +8 -0
- package/dist/elements/task/panes/io.d.ts.map +1 -0
- package/dist/elements/task/panes/io.js +184 -0
- package/dist/elements/task/panes/io.js.map +1 -0
- package/dist/elements/task/panes/transcript.d.ts +5 -0
- package/dist/elements/task/panes/transcript.d.ts.map +1 -0
- package/dist/elements/task/panes/transcript.js +29 -0
- package/dist/elements/task/panes/transcript.js.map +1 -0
- package/dist/elements/task/rounds.d.ts +14 -0
- package/dist/elements/task/rounds.d.ts.map +1 -0
- package/dist/elements/task/rounds.js +59 -0
- package/dist/elements/task/rounds.js.map +1 -0
- package/dist/elements/task/styles.d.ts +2 -0
- package/dist/elements/task/styles.d.ts.map +1 -0
- package/dist/elements/task/styles.js +66 -0
- package/dist/elements/task/styles.js.map +1 -0
- package/dist/elements/task/transcript-model.d.ts +106 -0
- package/dist/elements/task/transcript-model.d.ts.map +1 -0
- package/dist/elements/task/transcript-model.js +280 -0
- package/dist/elements/task/transcript-model.js.map +1 -0
- package/dist/elements/task/who.d.ts +5 -0
- package/dist/elements/task/who.d.ts.map +1 -0
- package/dist/elements/task/who.js +30 -0
- package/dist/elements/task/who.js.map +1 -0
- package/dist/elements/trends/ca-trends.d.ts +55 -0
- package/dist/elements/trends/ca-trends.d.ts.map +1 -0
- package/dist/elements/trends/ca-trends.js +213 -0
- package/dist/elements/trends/ca-trends.js.map +1 -0
- package/dist/events.d.ts +107 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +5 -0
- package/dist/events.js.map +1 -0
- package/dist/i18n.d.ts +16 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +48 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/clock.d.ts +20 -0
- package/dist/lib/clock.d.ts.map +1 -0
- package/dist/lib/clock.js +45 -0
- package/dist/lib/clock.js.map +1 -0
- package/dist/lib/format.d.ts +35 -0
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/format.js +117 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/highlight.d.ts +5 -0
- package/dist/lib/highlight.d.ts.map +1 -0
- package/dist/lib/highlight.js +86 -0
- package/dist/lib/highlight.js.map +1 -0
- package/dist/lib/labels.d.ts +103 -0
- package/dist/lib/labels.d.ts.map +1 -0
- package/dist/lib/labels.js +249 -0
- package/dist/lib/labels.js.map +1 -0
- package/dist/lib/markdown.d.ts +13 -0
- package/dist/lib/markdown.d.ts.map +1 -0
- package/dist/lib/markdown.js +118 -0
- package/dist/lib/markdown.js.map +1 -0
- package/dist/lib/memory.d.ts +27 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/memory.js +117 -0
- package/dist/lib/memory.js.map +1 -0
- package/dist/lib/quota-format.d.ts +28 -0
- package/dist/lib/quota-format.d.ts.map +1 -0
- package/dist/lib/quota-format.js +67 -0
- package/dist/lib/quota-format.js.map +1 -0
- package/dist/lib/scroll.d.ts +16 -0
- package/dist/lib/scroll.d.ts.map +1 -0
- package/dist/lib/scroll.js +70 -0
- package/dist/lib/scroll.js.map +1 -0
- package/dist/lib/status.d.ts +25 -0
- package/dist/lib/status.d.ts.map +1 -0
- package/dist/lib/status.js +40 -0
- package/dist/lib/status.js.map +1 -0
- package/dist/lib/tone.d.ts +29 -0
- package/dist/lib/tone.d.ts.map +1 -0
- package/dist/lib/tone.js +97 -0
- package/dist/lib/tone.js.map +1 -0
- package/dist/lib/trends.d.ts +15 -0
- package/dist/lib/trends.d.ts.map +1 -0
- package/dist/lib/trends.js +36 -0
- package/dist/lib/trends.js.map +1 -0
- package/dist/locales/codes.d.ts +14 -0
- package/dist/locales/codes.d.ts.map +1 -0
- package/dist/locales/codes.js +21 -0
- package/dist/locales/codes.js.map +1 -0
- package/dist/locales/ja.d.ts +761 -0
- package/dist/locales/ja.d.ts.map +1 -0
- package/dist/locales/ja.js +767 -0
- package/dist/locales/ja.js.map +1 -0
- package/dist/route.d.ts +46 -0
- package/dist/route.d.ts.map +1 -0
- package/dist/route.js +102 -0
- package/dist/route.js.map +1 -0
- package/dist/router.d.ts +23 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +55 -0
- package/dist/router.js.map +1 -0
- package/dist/styles/base.d.ts +11 -0
- package/dist/styles/base.d.ts.map +1 -0
- package/dist/styles/base.js +241 -0
- package/dist/styles/base.js.map +1 -0
- package/dist/styles/chips.d.ts +2 -0
- package/dist/styles/chips.d.ts.map +1 -0
- package/dist/styles/chips.js +18 -0
- package/dist/styles/chips.js.map +1 -0
- package/dist/styles/executor-icon.d.ts +3 -0
- package/dist/styles/executor-icon.d.ts.map +1 -0
- package/dist/styles/executor-icon.js +9 -0
- package/dist/styles/executor-icon.js.map +1 -0
- package/dist/styles/facts.d.ts +2 -0
- package/dist/styles/facts.d.ts.map +1 -0
- package/dist/styles/facts.js +7 -0
- package/dist/styles/facts.js.map +1 -0
- package/dist/styles/index.d.ts +17 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +16 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/layout.d.ts +2 -0
- package/dist/styles/layout.d.ts.map +1 -0
- package/dist/styles/layout.js +30 -0
- package/dist/styles/layout.js.map +1 -0
- package/dist/styles/legend.d.ts +2 -0
- package/dist/styles/legend.d.ts.map +1 -0
- package/dist/styles/legend.js +8 -0
- package/dist/styles/legend.js.map +1 -0
- package/dist/styles/meter.d.ts +3 -0
- package/dist/styles/meter.d.ts.map +1 -0
- package/dist/styles/meter.js +9 -0
- package/dist/styles/meter.js.map +1 -0
- package/dist/styles/motion.d.ts +2 -0
- package/dist/styles/motion.d.ts.map +1 -0
- package/dist/styles/motion.js +27 -0
- package/dist/styles/motion.js.map +1 -0
- package/dist/styles/prose.d.ts +3 -0
- package/dist/styles/prose.d.ts.map +1 -0
- package/dist/styles/prose.js +59 -0
- package/dist/styles/prose.js.map +1 -0
- package/dist/styles/reset.d.ts +2 -0
- package/dist/styles/reset.d.ts.map +1 -0
- package/dist/styles/reset.js +13 -0
- package/dist/styles/reset.js.map +1 -0
- package/dist/styles/status.d.ts +2 -0
- package/dist/styles/status.d.ts.map +1 -0
- package/dist/styles/status.js +52 -0
- package/dist/styles/status.js.map +1 -0
- package/dist/styles/text.d.ts +2 -0
- package/dist/styles/text.d.ts.map +1 -0
- package/dist/styles/text.js +21 -0
- package/dist/styles/text.js.map +1 -0
- package/dist/styles/theme-sheet.d.ts +12 -0
- package/dist/styles/theme-sheet.d.ts.map +1 -0
- package/dist/styles/theme-sheet.js +24 -0
- package/dist/styles/theme-sheet.js.map +1 -0
- package/dist/styles/themes.d.ts +75 -0
- package/dist/styles/themes.d.ts.map +1 -0
- package/dist/styles/themes.js +452 -0
- package/dist/styles/themes.js.map +1 -0
- package/dist/styles/tokens.d.ts +8 -0
- package/dist/styles/tokens.d.ts.map +1 -0
- package/dist/styles/tokens.js +32 -0
- package/dist/styles/tokens.js.map +1 -0
- package/dist/themes/boot.d.ts +7 -0
- package/dist/themes/boot.d.ts.map +1 -0
- package/dist/themes/boot.js +14 -0
- package/dist/themes/boot.js.map +1 -0
- package/dist/themes/choice.d.ts +16 -0
- package/dist/themes/choice.d.ts.map +1 -0
- package/dist/themes/choice.js +45 -0
- package/dist/themes/choice.js.map +1 -0
- package/dist/themes/data.d.ts +42 -0
- package/dist/themes/data.d.ts.map +1 -0
- package/dist/themes/data.js +356 -0
- package/dist/themes/data.js.map +1 -0
- package/dist/themes/index.d.ts +5 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/index.js +8 -0
- package/dist/themes/index.js.map +1 -0
- package/dist/themes/sheet.d.ts +12 -0
- package/dist/themes/sheet.d.ts.map +1 -0
- package/dist/themes/sheet.js +24 -0
- package/dist/themes/sheet.js.map +1 -0
- package/dist/themes/tokens-list.d.ts +15 -0
- package/dist/themes/tokens-list.d.ts.map +1 -0
- package/dist/themes/tokens-list.js +62 -0
- package/dist/themes/tokens-list.js.map +1 -0
- package/dist/words/api-error.d.ts +4 -0
- package/dist/words/api-error.d.ts.map +1 -0
- package/dist/words/api-error.js +13 -0
- package/dist/words/api-error.js.map +1 -0
- package/dist/words/attempts.d.ts +17 -0
- package/dist/words/attempts.d.ts.map +1 -0
- package/dist/words/attempts.js +26 -0
- package/dist/words/attempts.js.map +1 -0
- package/dist/words/causes.d.ts +33 -0
- package/dist/words/causes.d.ts.map +1 -0
- package/dist/words/causes.js +58 -0
- package/dist/words/causes.js.map +1 -0
- package/dist/words/changes.d.ts +9 -0
- package/dist/words/changes.d.ts.map +1 -0
- package/dist/words/changes.js +21 -0
- package/dist/words/changes.js.map +1 -0
- package/dist/words/claims.d.ts +9 -0
- package/dist/words/claims.d.ts.map +1 -0
- package/dist/words/claims.js +12 -0
- package/dist/words/claims.js.map +1 -0
- package/dist/words/context.d.ts +18 -0
- package/dist/words/context.d.ts.map +1 -0
- package/dist/words/context.js +39 -0
- package/dist/words/context.js.map +1 -0
- package/dist/words/contract.d.ts +25 -0
- package/dist/words/contract.d.ts.map +1 -0
- package/dist/words/contract.js +52 -0
- package/dist/words/contract.js.map +1 -0
- package/dist/words/credential.d.ts +5 -0
- package/dist/words/credential.d.ts.map +1 -0
- package/dist/words/credential.js +7 -0
- package/dist/words/credential.js.map +1 -0
- package/dist/words/executor.d.ts +12 -0
- package/dist/words/executor.d.ts.map +1 -0
- package/dist/words/executor.js +20 -0
- package/dist/words/executor.js.map +1 -0
- package/dist/words/export.d.ts +8 -0
- package/dist/words/export.d.ts.map +1 -0
- package/dist/words/export.js +17 -0
- package/dist/words/export.js.map +1 -0
- package/dist/words/format.d.ts +36 -0
- package/dist/words/format.d.ts.map +1 -0
- package/dist/words/format.js +109 -0
- package/dist/words/format.js.map +1 -0
- package/dist/words/hops.d.ts +12 -0
- package/dist/words/hops.d.ts.map +1 -0
- package/dist/words/hops.js +27 -0
- package/dist/words/hops.js.map +1 -0
- package/dist/words/hosts.d.ts +18 -0
- package/dist/words/hosts.d.ts.map +1 -0
- package/dist/words/hosts.js +22 -0
- package/dist/words/hosts.js.map +1 -0
- package/dist/words/index.d.ts +27 -0
- package/dist/words/index.d.ts.map +1 -0
- package/dist/words/index.js +31 -0
- package/dist/words/index.js.map +1 -0
- package/dist/words/models.d.ts +10 -0
- package/dist/words/models.d.ts.map +1 -0
- package/dist/words/models.js +45 -0
- package/dist/words/models.js.map +1 -0
- package/dist/words/outcome.d.ts +14 -0
- package/dist/words/outcome.d.ts.map +1 -0
- package/dist/words/outcome.js +58 -0
- package/dist/words/outcome.js.map +1 -0
- package/dist/words/panels.d.ts +11 -0
- package/dist/words/panels.d.ts.map +1 -0
- package/dist/words/panels.js +50 -0
- package/dist/words/panels.js.map +1 -0
- package/dist/words/passes.d.ts +11 -0
- package/dist/words/passes.d.ts.map +1 -0
- package/dist/words/passes.js +13 -0
- package/dist/words/passes.js.map +1 -0
- package/dist/words/preflight.d.ts +28 -0
- package/dist/words/preflight.d.ts.map +1 -0
- package/dist/words/preflight.js +30 -0
- package/dist/words/preflight.js.map +1 -0
- package/dist/words/priority.d.ts +5 -0
- package/dist/words/priority.d.ts.map +1 -0
- package/dist/words/priority.js +7 -0
- package/dist/words/priority.js.map +1 -0
- package/dist/words/prompt.d.ts +10 -0
- package/dist/words/prompt.d.ts.map +1 -0
- package/dist/words/prompt.js +17 -0
- package/dist/words/prompt.js.map +1 -0
- package/dist/words/quota.d.ts +35 -0
- package/dist/words/quota.d.ts.map +1 -0
- package/dist/words/quota.js +102 -0
- package/dist/words/quota.js.map +1 -0
- package/dist/words/rests.d.ts +26 -0
- package/dist/words/rests.d.ts.map +1 -0
- package/dist/words/rests.js +77 -0
- package/dist/words/rests.js.map +1 -0
- package/dist/words/rounds.d.ts +14 -0
- package/dist/words/rounds.d.ts.map +1 -0
- package/dist/words/rounds.js +60 -0
- package/dist/words/rounds.js.map +1 -0
- package/dist/words/row-extras.d.ts +7 -0
- package/dist/words/row-extras.d.ts.map +1 -0
- package/dist/words/row-extras.js +26 -0
- package/dist/words/row-extras.js.map +1 -0
- package/dist/words/run-line.d.ts +40 -0
- package/dist/words/run-line.d.ts.map +1 -0
- package/dist/words/run-line.js +66 -0
- package/dist/words/run-line.js.map +1 -0
- package/dist/words/stop.d.ts +6 -0
- package/dist/words/stop.d.ts.map +1 -0
- package/dist/words/stop.js +69 -0
- package/dist/words/stop.js.map +1 -0
- package/dist/words/table.d.ts +4 -0
- package/dist/words/table.d.ts.map +1 -0
- package/dist/words/table.js +8 -0
- package/dist/words/table.js.map +1 -0
- package/dist/words/task-definition.d.ts +23 -0
- package/dist/words/task-definition.d.ts.map +1 -0
- package/dist/words/task-definition.js +27 -0
- package/dist/words/task-definition.js.map +1 -0
- package/dist/words/time-box.d.ts +8 -0
- package/dist/words/time-box.d.ts.map +1 -0
- package/dist/words/time-box.js +12 -0
- package/dist/words/time-box.js.map +1 -0
- package/dist/words/trends.d.ts +86 -0
- package/dist/words/trends.d.ts.map +1 -0
- package/dist/words/trends.js +104 -0
- package/dist/words/trends.js.map +1 -0
- package/dist/words/units.d.ts +9 -0
- package/dist/words/units.d.ts.map +1 -0
- package/dist/words/units.js +12 -0
- package/dist/words/units.js.map +1 -0
- package/docs/embed.md +118 -0
- package/docs/events.md +38 -0
- package/docs/examples/embed.html +31 -0
- package/docs/examples/journal.ts +32 -0
- package/docs/examples/live-transcript.ts +22 -0
- package/docs/examples/vite/index.html +30 -0
- package/docs/examples/vite/main.ts +23 -0
- package/docs/languages.md +48 -0
- package/docs/live-data.md +17 -0
- package/docs/theming.md +21 -0
- package/docs/tsconfig.json +14 -0
- package/package.json +131 -4
- package/src/adapters/check-rows.ts +78 -0
- package/src/adapters/filters.ts +76 -0
- package/src/adapters/graph/compound.ts +359 -0
- package/src/adapters/graph/flow-index.ts +154 -0
- package/src/adapters/graph/highlight.ts +40 -0
- package/src/adapters/graph/input.ts +236 -0
- package/src/adapters/graph/layer.ts +92 -0
- package/src/adapters/graph/matrix.ts +133 -0
- package/src/adapters/graph/plans.fixture.ts +194 -0
- package/src/adapters/graph/project.ts +358 -0
- package/src/adapters/graph/selection.ts +54 -0
- package/src/adapters/graph/states.ts +10 -0
- package/src/adapters/graph/types.ts +148 -0
- package/src/adapters/graph/words.ts +146 -0
- package/src/adapters/index.ts +22 -0
- package/src/adapters/journal-columns.ts +200 -0
- package/src/adapters/kpi-tiles.ts +211 -0
- package/src/adapters/lanes.ts +98 -0
- package/src/adapters/model-shares.ts +62 -0
- package/src/adapters/panel-body.ts +74 -0
- package/src/adapters/preflight.ts +27 -0
- package/src/adapters/task-columns.ts +120 -0
- package/src/adapters/transcript/index.ts +14 -0
- package/src/adapters/transcript/model.ts +156 -0
- package/src/adapters/transcript/rounds.ts +86 -0
- package/src/adapters/transcript/sections.ts +82 -0
- package/src/adapters/transcript/web.ts +40 -0
- package/src/adapters/transcript/who.ts +53 -0
- package/src/adapters/trends.ts +337 -0
- package/src/controllers/locale.ts +47 -0
- package/src/controllers/shortcuts.ts +69 -0
- package/src/controllers/stream.ts +103 -0
- package/src/controllers/task-detail.ts +54 -0
- package/src/controllers/theme.ts +73 -0
- package/src/core/events.ts +120 -0
- package/src/core/i18n.ts +76 -0
- package/src/core/index.ts +6 -0
- package/src/core/memory.ts +177 -0
- package/src/core/scroll.ts +73 -0
- package/src/core/view-route.ts +177 -0
- package/src/core/view-router.ts +66 -0
- package/src/define/all.ts +13 -0
- package/src/define/contracts.ts +2 -0
- package/src/define/definitions.ts +3 -0
- package/src/define/journal-table.ts +2 -0
- package/src/define/kpis.ts +2 -0
- package/src/define/monitor.ts +2 -0
- package/src/define/overview.ts +2 -0
- package/src/define/pipeline-graph.ts +2 -0
- package/src/define/procs.ts +3 -0
- package/src/define/task-table.ts +2 -0
- package/src/define/task-view.ts +2 -0
- package/src/define/timeline.ts +2 -0
- package/src/define/transcript.ts +2 -0
- package/src/elements/lists/ca-contracts.ts +204 -0
- package/src/elements/lists/ca-definitions.ts +170 -0
- package/src/elements/lists/ca-journal-table.ts +141 -0
- package/src/elements/lists/ca-panel-body.ts +139 -0
- package/src/elements/lists/ca-panel-view.ts +50 -0
- package/src/elements/lists/ca-proc-tree.ts +57 -0
- package/src/elements/lists/ca-procs-view.ts +89 -0
- package/src/elements/lists/ca-task-table.ts +94 -0
- package/src/elements/lists/index.ts +8 -0
- package/src/elements/overview/ca-kpis.ts +51 -0
- package/src/elements/overview/ca-model-usage.ts +113 -0
- package/src/elements/overview/ca-overview.ts +492 -0
- package/src/elements/overview/ca-pipeline-graph.ts +617 -0
- package/src/elements/overview/ca-quota.ts +164 -0
- package/src/elements/overview/ca-run-driver.ts +140 -0
- package/src/elements/overview/ca-spend-breakdown.ts +107 -0
- package/src/elements/overview/ca-timeline.ts +57 -0
- package/src/elements/overview/ca-workers.ts +82 -0
- package/src/elements/overview/index.ts +9 -0
- package/src/elements/overview/pipeline-graph/actions.ts +45 -0
- package/src/elements/overview/pipeline-graph/crumbs.ts +75 -0
- package/src/elements/overview/pipeline-graph/host.ts +26 -0
- package/src/elements/overview/pipeline-graph/inspector.ts +104 -0
- package/src/elements/overview/pipeline-graph/outline.ts +150 -0
- package/src/elements/overview/pipeline-graph/strings.ts +53 -0
- package/src/elements/overview/pipeline-graph/styles.ts +97 -0
- package/src/elements/shared/ca-definition.ts +206 -0
- package/src/elements/shared/contract-parts.ts +158 -0
- package/src/elements/shared/file-card.ts +49 -0
- package/src/elements/shared/prompt-text.ts +13 -0
- package/src/elements/shared/task-chip.ts +18 -0
- package/src/elements/shell/ca-clock.ts +27 -0
- package/src/elements/shell/ca-hosts.ts +93 -0
- package/src/elements/shell/ca-monitor.ts +526 -0
- package/src/elements/shell/ca-run-picker.ts +284 -0
- package/src/elements/shell/ca-theme-switch.ts +170 -0
- package/src/elements/shell/ca-toasts.ts +100 -0
- package/src/elements/shell/header.ts +45 -0
- package/src/elements/shell/styles.ts +72 -0
- package/src/elements/shell/tabs.ts +143 -0
- package/src/elements/shell/views.ts +67 -0
- package/src/elements/task/ca-task-view.ts +157 -0
- package/src/elements/task/ca-transcript.ts +214 -0
- package/src/elements/task/context.ts +105 -0
- package/src/elements/task/header.ts +292 -0
- package/src/elements/task/index.ts +2 -0
- package/src/elements/task/inputs.ts +46 -0
- package/src/elements/task/panes/definition.ts +7 -0
- package/src/elements/task/panes/io.ts +190 -0
- package/src/elements/task/panes/transcript.ts +29 -0
- package/src/elements/task/styles.ts +66 -0
- package/src/elements/trends/ca-trends.ts +204 -0
- package/src/index.ts +23 -0
- package/src/lib/tone.ts +109 -0
- package/src/lib/trends.ts +44 -0
- package/src/locales/codes.ts +23 -0
- package/src/locales/ja.ts +771 -0
- package/src/words/api-error.ts +17 -0
- package/src/words/attempts.ts +28 -0
- package/src/words/causes.ts +67 -0
- package/src/words/changes.ts +27 -0
- package/src/words/claims.ts +16 -0
- package/src/words/context.ts +47 -0
- package/src/words/contract.ts +63 -0
- package/src/words/credential.ts +8 -0
- package/src/words/executor.ts +22 -0
- package/src/words/export.ts +22 -0
- package/src/words/format.ts +107 -0
- package/src/words/hops.ts +30 -0
- package/src/words/hosts.ts +37 -0
- package/src/words/index.ts +30 -0
- package/src/words/models.ts +50 -0
- package/src/words/outcome.ts +61 -0
- package/src/words/panels.ts +53 -0
- package/src/words/passes.ts +18 -0
- package/src/words/preflight.ts +53 -0
- package/src/words/priority.ts +8 -0
- package/src/words/prompt.ts +20 -0
- package/src/words/quota.ts +108 -0
- package/src/words/rests.ts +96 -0
- package/src/words/rounds.ts +56 -0
- package/src/words/row-extras.ts +24 -0
- package/src/words/run-line.ts +77 -0
- package/src/words/stop.ts +65 -0
- package/src/words/table.ts +10 -0
- package/src/words/task-definition.ts +37 -0
- package/src/words/time-box.ts +21 -0
- package/src/words/trends.ts +118 -0
package/docs/embed.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Embed the monitor
|
|
2
|
+
|
|
3
|
+
`<ca-monitor>` is the complete monitor: header, run switcher, tabs, filters,
|
|
4
|
+
views and notifications. It holds the data (a `MonitorStore`) and the view route.
|
|
5
|
+
Its attributes (`base-url`, `export`, `history`, `shortcuts`, `run`, `locale`, `theme`) are described in
|
|
6
|
+
`custom-elements.json`. `history="url"` suits a page that is the monitor;
|
|
7
|
+
inside an application that manages its own URL, use `history="memory"`.
|
|
8
|
+
|
|
9
|
+
## What the host page keeps
|
|
10
|
+
|
|
11
|
+
With `history="memory"`, the monitor leaves the page to its host:
|
|
12
|
+
|
|
13
|
+
| | `history="url"` (the monitor is the page) | `history="memory"` (embedded) |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| View route (run, tab, filters) | the URL's query; Back and Forward | the element; the URL and the history are the host's |
|
|
16
|
+
| Scroll positions, open sections | the page's history entry, under `contraagent` | the element |
|
|
17
|
+
| `document.title` | `<title> monitor` | not written |
|
|
18
|
+
| `<html lang>`, `<html data-ca-theme>` | follow the monitor's language and theme | not written; `lang` and `data-ca-theme` are set on `<ca-monitor>` |
|
|
19
|
+
| Single-key shortcuts | anywhere in the page (`shortcuts="page"`) | only while the focus is inside the monitor (`shortcuts="element"`) |
|
|
20
|
+
| The monitor's listeners on `document` and `window` | `keydown`, `popstate`, `pagehide` | none |
|
|
21
|
+
|
|
22
|
+
The single-key shortcuts are 1 to 9 (the tabs), `r` (the run switcher) and `/`
|
|
23
|
+
(the filter). In every scope they never take a key typed into a text field
|
|
24
|
+
(`input`, `select`, `textarea`, an editable element), a key pressed with Ctrl,
|
|
25
|
+
Alt or Meta, or a key a listener of the host already handled with
|
|
26
|
+
`preventDefault()`. `shortcuts="off"` turns them off, and the tab bar then
|
|
27
|
+
shows no key hint; `shortcuts="page"` gives an embedded monitor the whole page.
|
|
28
|
+
|
|
29
|
+
While the run switcher or the theme menu is open, a click elsewhere in the page
|
|
30
|
+
closes it (for the theme menu, a press of the pointer). The monitor listens on the
|
|
31
|
+
document for that event only while one of them is open, and neither stops nor
|
|
32
|
+
prevents it.
|
|
33
|
+
|
|
34
|
+
Two monitors on one page each keep their own view route, scroll positions, open
|
|
35
|
+
sections and shortcuts. They share what is one per page:
|
|
36
|
+
|
|
37
|
+
- the language: Lit Localize has one locale per page, so `locale` on one
|
|
38
|
+
monitor, or its language switch, changes the other's too;
|
|
39
|
+
- the reader's choices of language and theme, remembered in `localStorage`
|
|
40
|
+
(`contraagent:locale`, `contraagent:theme`), as the monitor's switches do;
|
|
41
|
+
- the themes' rules, added once to the document's adopted style sheets; they
|
|
42
|
+
match only `[data-ca-theme]`, so the host's own elements are not restyled;
|
|
43
|
+
- Lit Localize's `lit-localize-status` event on `window`, which every element
|
|
44
|
+
listens for to change its language.
|
|
45
|
+
|
|
46
|
+
`e2e/embed.spec.ts` (in the repository's `web/`) checks this on a host page
|
|
47
|
+
with its own title, text field and single-key shortcuts, and two monitors.
|
|
48
|
+
|
|
49
|
+
## Connection
|
|
50
|
+
|
|
51
|
+
`base-url` names the monitor server, such as `http://127.0.0.1:8787`; unset,
|
|
52
|
+
it is the page's own origin. Every attribute takes effect whenever it is set,
|
|
53
|
+
as an attribute or a property, before or after the element connects or the
|
|
54
|
+
package loads:
|
|
55
|
+
|
|
56
|
+
| Attribute | A change after connecting |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `base-url` | closes the old server's feeds and reads the new server: the run named by `run`, else its newest run |
|
|
59
|
+
| `history` | `memory` keeps the view route shown; `url` takes the address bar's |
|
|
60
|
+
| `run` | opens that run |
|
|
61
|
+
| `locale`, `theme`, `shortcuts` | show at once |
|
|
62
|
+
|
|
63
|
+
A request to the API that gets no JSON answer is shown above the view, with
|
|
64
|
+
its URL and its cause, and written to the console with `console.error`; the
|
|
65
|
+
monitor then never shows "No runs yet". The causes (`ApiError.failure` in
|
|
66
|
+
`@contraagent/api`):
|
|
67
|
+
|
|
68
|
+
| Cause | Typical reason |
|
|
69
|
+
|---|---|
|
|
70
|
+
| the response is HTML, not JSON | `base-url` names a server without the API, such as a development server that answers every path with the page (`index.html`) |
|
|
71
|
+
| the response is not JSON | the server at `base-url` answers with an empty body or with text |
|
|
72
|
+
| the response status is 404 | `base-url` names a server, or a path on it, without the API |
|
|
73
|
+
| network error, no response | the monitor server is not running, or it does not allow the page's origin (`--cors-origin`, below) |
|
|
74
|
+
|
|
75
|
+
The run list (`/api/runs`) is asked for every 5 seconds, and the title and the
|
|
76
|
+
custom views (`/api/info`) with it until they arrive, so a server that starts
|
|
77
|
+
later is read when it answers, and the message goes.
|
|
78
|
+
|
|
79
|
+
## An export, with no server
|
|
80
|
+
|
|
81
|
+
`export` names an export's `data/` directory (`contraagent monitor export`) in
|
|
82
|
+
place of a server: `<ca-monitor export="data/">`, relative to the page or
|
|
83
|
+
absolute; set, it outranks `base-url`. The monitor then makes no request to an API
|
|
84
|
+
and opens no feed: it reads the export's files, and its header shows when the
|
|
85
|
+
export was written in place of the connection. An export holds no transcripts and no processes.
|
|
86
|
+
|
|
87
|
+
## Without a build step
|
|
88
|
+
|
|
89
|
+
::code{file="examples/embed.html"}
|
|
90
|
+
|
|
91
|
+
A page on another origin can only import `/app.js` and read the API if the
|
|
92
|
+
monitor names that origin: `contraagent monitor --cors-origin http://localhost:8000`.
|
|
93
|
+
|
|
94
|
+
## In an application
|
|
95
|
+
|
|
96
|
+
A Vite application: the page holds `<ca-monitor>` in a box, and `src/main.ts`
|
|
97
|
+
imports the package and sets the monitor's `base-url`.
|
|
98
|
+
|
|
99
|
+
::code{file="examples/vite/index.html"}
|
|
100
|
+
|
|
101
|
+
::code{file="examples/vite/main.ts"}
|
|
102
|
+
|
|
103
|
+
A page served by Vite answers an unknown path such as `/api/runs` with its own
|
|
104
|
+
`index.html`: a monitor there without `base-url` shows "No monitor API at
|
|
105
|
+
http://localhost:5173/api/info: the response is HTML, not JSON" (Connection,
|
|
106
|
+
above).
|
|
107
|
+
|
|
108
|
+
Import the package once; the elements register themselves. When it connects,
|
|
109
|
+
`<ca-monitor>` sets up the languages (`configureLocales()`) and adds the
|
|
110
|
+
themes' rules to its document (`adoptThemes(this.ownerDocument)`); a page
|
|
111
|
+
that shows other elements without a monitor calls them itself (`adoptThemes`
|
|
112
|
+
is in `@contraagent/elements/themes`). Give `<ca-monitor>` a box with a height: it fills it and scrolls inside it.
|
|
113
|
+
It lays itself out by the box's width, not the window's: in a narrow box the
|
|
114
|
+
header wraps and the tab list scrolls sideways. In React
|
|
115
|
+
19, Vue, Svelte, Astro or plain HTML, `<ca-monitor>` is an ordinary element.
|
|
116
|
+
Properties without an attribute take objects and arrays: set them from script
|
|
117
|
+
(`el.rows = [...]`), or with a property binding in your framework (`.rows=${...}`
|
|
118
|
+
in Lit, `rows={...}` in React 19).
|
package/docs/events.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Events and the view route
|
|
2
|
+
|
|
3
|
+
## Events
|
|
4
|
+
|
|
5
|
+
An element never changes what is shown on its own. It sends an event saying
|
|
6
|
+
what the reader asked for; its host decides. The monitor changes its view route;
|
|
7
|
+
another page might open its own view, or ignore it. Each event crosses shadow
|
|
8
|
+
roots and all but `ca-rounds` bubble, so you can listen on any ancestor, and
|
|
9
|
+
each is typed in `HTMLElementEventMap`:
|
|
10
|
+
|
|
11
|
+
::code{file="../src/core/events.ts" from="export interface OpenTaskDetail" to="declare global"}
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
document.addEventListener('ca-open-task', (e) => {
|
|
15
|
+
e.detail.key; // string: typed, no cast
|
|
16
|
+
});
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## The view route
|
|
20
|
+
|
|
21
|
+
`<ca-monitor>` keeps one typed value for where the reader is, and mirrors it in
|
|
22
|
+
the URL (or in memory, with `history="memory"`):
|
|
23
|
+
|
|
24
|
+
::code{file="../src/core/view-route.ts" from="export interface ViewRoute" to="export type ViewRoutePatch"}
|
|
25
|
+
|
|
26
|
+
Moving to another place (a tab, a task, a view, a round, a definition, a run)
|
|
27
|
+
pushes a history entry, so Back returns. Changing a filter replaces the entry,
|
|
28
|
+
so typing does not fill the history.
|
|
29
|
+
|
|
30
|
+
## The reader's place
|
|
31
|
+
|
|
32
|
+
What the URL does not say is kept in the history entry itself
|
|
33
|
+
(`history.state`, under one key, merged with whatever the host keeps
|
|
34
|
+
there): how far each list is scrolled and which cards are open. Back, Forward
|
|
35
|
+
and a reload return to it; a new place starts at the top. Restoring waits until
|
|
36
|
+
the content, which arrives over the network, is tall enough to scroll to the
|
|
37
|
+
remembered position. Tool cards opened in a transcript are kept for the browser
|
|
38
|
+
tab, since one transcript is shown on several entries.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!--
|
|
3
|
+
The whole monitor inside a page of your own, with no build step.
|
|
4
|
+
|
|
5
|
+
The monitor serves its elements as an ES module (/app.js). Let this page's
|
|
6
|
+
origin use it, then open the page:
|
|
7
|
+
|
|
8
|
+
contraagent monitor --runs-dir runs --cors-origin http://localhost:8000
|
|
9
|
+
python -m http.server 8000 --directory docs/examples
|
|
10
|
+
# http://localhost:8000/embed.html
|
|
11
|
+
-->
|
|
12
|
+
<html lang="en">
|
|
13
|
+
<head>
|
|
14
|
+
<meta charset="utf-8" />
|
|
15
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
16
|
+
<title>contraagent, embedded</title>
|
|
17
|
+
<script type="module" src="http://127.0.0.1:8787/app.js"></script>
|
|
18
|
+
<style>
|
|
19
|
+
body { margin: 0; font-family: system-ui, sans-serif; }
|
|
20
|
+
.pane { height: 70vh; border: 1px solid #93a1a1; border-radius: 8px; overflow: hidden; margin: 16px; }
|
|
21
|
+
</style>
|
|
22
|
+
</head>
|
|
23
|
+
<body>
|
|
24
|
+
<h1 style="margin: 16px">Our release pipeline</h1>
|
|
25
|
+
<!-- `memory`: the monitor keeps its view route to itself and leaves this page's URL alone.
|
|
26
|
+
The class sets a theme of your own on the monitor itself, which carries `data-ca-theme`. -->
|
|
27
|
+
<div class="pane">
|
|
28
|
+
<ca-monitor class="solarized-light" base-url="http://127.0.0.1:8787" history="memory"></ca-monitor>
|
|
29
|
+
</div>
|
|
30
|
+
</body>
|
|
31
|
+
</html>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// A run's journal, live, with the store doing the data work: the store folds
|
|
2
|
+
// the run feed into one typed state, the element draws it.
|
|
3
|
+
import { MonitorStore, isBad } from '@contraagent/api';
|
|
4
|
+
import '@contraagent/ui/journal-table';
|
|
5
|
+
|
|
6
|
+
export function showJournal(host: HTMLElement, run: string, openTask: (key: string) => void): () => void {
|
|
7
|
+
const store = new MonitorStore({ baseUrl: 'http://127.0.0.1:8787' });
|
|
8
|
+
const table = document.createElement('ca-journal-table');
|
|
9
|
+
host.replaceChildren(table);
|
|
10
|
+
|
|
11
|
+
// Every change: the newest state, already typed (`RunState`).
|
|
12
|
+
const unsubscribe = store.subscribe((s) => {
|
|
13
|
+
table.rows = s.state.journal;
|
|
14
|
+
table.plan = s.state.plan;
|
|
15
|
+
table.fresh = s.fresh;
|
|
16
|
+
});
|
|
17
|
+
// Rows that arrive after the replay: tasks that just finished.
|
|
18
|
+
const unwatch = store.onNewRow((row) => {
|
|
19
|
+
if (isBad(row)) console.warn(`${row.key} ended ${row.stop}: ${row.reason ?? ''}`);
|
|
20
|
+
});
|
|
21
|
+
// The element asks; the page answers.
|
|
22
|
+
table.addEventListener('ca-filter', (e) => (table.stop = e.detail.stop ?? ''));
|
|
23
|
+
table.addEventListener('ca-open-task', (e) => openTask(e.detail.key));
|
|
24
|
+
|
|
25
|
+
void store.start();
|
|
26
|
+
store.selectRun(run);
|
|
27
|
+
return () => {
|
|
28
|
+
unsubscribe();
|
|
29
|
+
unwatch();
|
|
30
|
+
store.stop();
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// One task's transcript, tailed live, in a page of your own.
|
|
2
|
+
//
|
|
3
|
+
// The element renders; the page decides what a reader's request means. Here a
|
|
4
|
+
// round picked in the transcript is simply shown.
|
|
5
|
+
import { createMonitorClient } from '@contraagent/api';
|
|
6
|
+
import '@contraagent/ui/transcript';
|
|
7
|
+
|
|
8
|
+
/** Where `contraagent monitor` runs (start it with `--cors-origin <this page's origin>`). */
|
|
9
|
+
const MONITOR = 'http://127.0.0.1:8787';
|
|
10
|
+
|
|
11
|
+
export function showTranscript(host: HTMLElement, run: string, key: string): void {
|
|
12
|
+
const t = document.createElement('ca-transcript');
|
|
13
|
+
t.client = createMonitorClient({ baseUrl: MONITOR }); // for "load earlier"
|
|
14
|
+
t.baseUrl = MONITOR; // the live feed
|
|
15
|
+
t.run = run;
|
|
16
|
+
t.stream = key;
|
|
17
|
+
t.live = true;
|
|
18
|
+
t.addEventListener('ca-navigate', (e) => {
|
|
19
|
+
if (e.detail.round !== undefined) t.round = e.detail.round;
|
|
20
|
+
});
|
|
21
|
+
host.replaceChildren(t);
|
|
22
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!-- The application's page (index.html), with the monitor in #monitor; main.ts names its server. -->
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
+
<title>Release dashboard</title>
|
|
8
|
+
<style>
|
|
9
|
+
body { margin: 0; font-family: system-ui, sans-serif; }
|
|
10
|
+
header { display: flex; align-items: center; gap: 16px; padding: 12px 16px; }
|
|
11
|
+
header h1 { flex: 1; margin: 0; font-size: 20px; }
|
|
12
|
+
/* The monitor fills the box it is in, and scrolls inside it: the box has a height. */
|
|
13
|
+
#monitor { height: calc(100vh - 80px); margin: 0 16px; border: 1px solid #8884; border-radius: 8px; overflow: hidden; }
|
|
14
|
+
</style>
|
|
15
|
+
<script type="module" src="/src/main.ts"></script>
|
|
16
|
+
</head>
|
|
17
|
+
<body>
|
|
18
|
+
<header>
|
|
19
|
+
<h1>Release dashboard</h1>
|
|
20
|
+
<label>Language
|
|
21
|
+
<select id="language">
|
|
22
|
+
<option value="en">English</option>
|
|
23
|
+
<option value="ja">日本語</option>
|
|
24
|
+
</select>
|
|
25
|
+
</label>
|
|
26
|
+
</header>
|
|
27
|
+
<!-- `memory`: the view route stays in the element; the page's URL, title and <html> stay the application's. -->
|
|
28
|
+
<div id="monitor"><ca-monitor history="memory" locale="en"></ca-monitor></div>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// The monitor inside a Vite application, as src/main.ts. Its dependencies:
|
|
2
|
+
// @contraagent/ui, and its peers lit and @lit/localize.
|
|
3
|
+
//
|
|
4
|
+
// The monitor runs on another origin and lets this page read its API:
|
|
5
|
+
//
|
|
6
|
+
// contraagent monitor --runs-dir runs --cors-origin http://localhost:5173
|
|
7
|
+
// pnpm vite # http://localhost:5173
|
|
8
|
+
//
|
|
9
|
+
// The import registers <ca-monitor> (and every element it renders). Its
|
|
10
|
+
// properties take effect whenever they are set, before or after the import.
|
|
11
|
+
import '@contraagent/ui/monitor';
|
|
12
|
+
import type { CaMonitor } from '@contraagent/ui/monitor';
|
|
13
|
+
|
|
14
|
+
/** Where the monitor serves its API: another origin, named with `--cors-origin`. */
|
|
15
|
+
const MONITOR = 'http://127.0.0.1:8787';
|
|
16
|
+
|
|
17
|
+
const monitor = document.querySelector('ca-monitor')!;
|
|
18
|
+
monitor.baseUrl = MONITOR; // the `base-url` attribute
|
|
19
|
+
|
|
20
|
+
// `locale` changes the monitor's language in place.
|
|
21
|
+
const language = document.querySelector<HTMLSelectElement>('#language')!;
|
|
22
|
+
language.value = monitor.locale;
|
|
23
|
+
language.addEventListener('change', () => (monitor.locale = language.value as CaMonitor['locale']));
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Languages
|
|
2
|
+
|
|
3
|
+
Every element speaks English and Japanese, and switches in place, without a
|
|
4
|
+
reload, with Lit Localize.
|
|
5
|
+
|
|
6
|
+
## How the language is chosen
|
|
7
|
+
|
|
8
|
+
In the monitor, the switch in the header (`English` / `日本語`) changes the
|
|
9
|
+
language and remembers it for the next visit. With no choice made yet, the
|
|
10
|
+
monitor follows the browser's languages, then falls back to English.
|
|
11
|
+
|
|
12
|
+
`<ca-monitor locale="ja">` fixes the language for an embedded monitor. In
|
|
13
|
+
your own page, set it for every element at once:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { setLocale, chooseLocale } from '@contraagent/ui/localize';
|
|
17
|
+
|
|
18
|
+
await setLocale('ja'); // this page only
|
|
19
|
+
await chooseLocale('ja'); // and remember it, as the monitor's switch does
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Setting up Lit Localize
|
|
23
|
+
|
|
24
|
+
Importing the package does not configure Lit Localize. `configureLocales()`
|
|
25
|
+
does, once per page; `<ca-monitor>` calls it when it connects, and `setLocale`
|
|
26
|
+
calls it first if nothing has. Until then the elements speak English. A
|
|
27
|
+
language's text is a module of its own, loaded the first time the language is
|
|
28
|
+
chosen; `<ca-monitor>` draws its first view after it is loaded.
|
|
29
|
+
|
|
30
|
+
Lit Localize can be configured only once per page. On a page whose own code
|
|
31
|
+
configured it first, `configureLocales()` returns `false`: the elements stay
|
|
32
|
+
in English and `<ca-monitor>` shows no language switch.
|
|
33
|
+
|
|
34
|
+
What is translated is the monitor's own wording: labels, headings, tooltips and
|
|
35
|
+
causes, and the words for a run's codes (a stop such as `completed` shows as
|
|
36
|
+
"done"; a code the monitor does not know shows as `unknown (<code>)`). Dates
|
|
37
|
+
and times follow the language too (`Oct 12, 10:38:40`, `10月12日 10:38:40`). What
|
|
38
|
+
a run wrote stays as it is: kind and unit names, model and role names, file
|
|
39
|
+
paths, failure reasons, and the transcripts.
|
|
40
|
+
|
|
41
|
+
## Adding a language
|
|
42
|
+
|
|
43
|
+
The English text is written in the sources, wrapped in `msg()`. Translations
|
|
44
|
+
live in one XLIFF file per language (`xliff/<locale>.xlf`), and a typed module is
|
|
45
|
+
generated from each. A new language is one more code in `targetLocales` of
|
|
46
|
+
`lit-localize.json`, its name in `LOCALE_NAMES`, and a loader for its generated module:
|
|
47
|
+
|
|
48
|
+
::code{file="../src/core/i18n.ts" from="/** Each locale's name" to="let localization"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Live data
|
|
2
|
+
|
|
3
|
+
The elements draw what they are given; `@contraagent/api` gets it: a typed
|
|
4
|
+
client, the live feeds and a store that folds a run's feed into one state.
|
|
5
|
+
|
|
6
|
+
## A run's journal
|
|
7
|
+
|
|
8
|
+
The store does the data work and the element draws it:
|
|
9
|
+
|
|
10
|
+
::code{file="examples/journal.ts"}
|
|
11
|
+
|
|
12
|
+
## One transcript, tailed
|
|
13
|
+
|
|
14
|
+
`<ca-transcript>` tails a task's transcript itself when it is given `run` and
|
|
15
|
+
`stream`; the page decides what a reader's request means:
|
|
16
|
+
|
|
17
|
+
::code{file="examples/live-transcript.ts"}
|
package/docs/theming.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Theming
|
|
2
|
+
|
|
3
|
+
The elements take their colours, fonts, type scale and corners from the
|
|
4
|
+
`--ca-*` custom properties and the built-in themes of `@contraagent/elements`:
|
|
5
|
+
[its theming page](../../elements/docs/theming.md) lists them, what each colour
|
|
6
|
+
means, and how to build a theme of your own. `adoptThemes(document)` adds the
|
|
7
|
+
themes' rules to the page's document, so `data-ca-theme` on any ancestor picks
|
|
8
|
+
a theme; `<ca-monitor>` calls it when it connects, and importing the package
|
|
9
|
+
does not.
|
|
10
|
+
|
|
11
|
+
## The monitor's theme
|
|
12
|
+
|
|
13
|
+
In the monitor, the header's theme control changes the theme and remembers it
|
|
14
|
+
in this browser. `System` follows the system's colour scheme (contraagent Dark
|
|
15
|
+
or contraagent Light). With no choice made, the monitor shows contraagent Dark.
|
|
16
|
+
|
|
17
|
+
`<ca-monitor theme="nord">` fixes the theme of an embedded monitor; it also
|
|
18
|
+
takes `system`. The theme it shows is reflected as `data-ca-theme` on the
|
|
19
|
+
element (and on `<html>`, with `history="url"`). A theme of your own (a set of
|
|
20
|
+
`--ca-*` properties) goes on `<ca-monitor>` itself, which carries that
|
|
21
|
+
attribute: `<ca-monitor class="solarized-light">`.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
// The examples are documentation: they compile against the packages as they are.
|
|
3
|
+
"extends": "../../../tsconfig.base.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"noEmit": true,
|
|
6
|
+
"paths": {
|
|
7
|
+
"@contraagent/api": ["../../api/src/index.ts"],
|
|
8
|
+
"@contraagent/elements": ["../../elements/src/index.ts"],
|
|
9
|
+
"@contraagent/elements/*": ["../../elements/src/*"],
|
|
10
|
+
"@contraagent/ui": ["../src/index.ts"]
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"include": ["examples/**/*.ts"]
|
|
14
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,133 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contraagent/ui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Web components for the contraagent monitor: transcripts, task tables, the journal, plans, contracts. Framework-free (Lit), typed by @contraagent/api",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"contraagent",
|
|
8
|
+
"coding-agent",
|
|
9
|
+
"monitor",
|
|
10
|
+
"web-components",
|
|
11
|
+
"lit",
|
|
12
|
+
"custom-elements"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://t-tani.github.io/contraagent/",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/t-tani/contraagent.git",
|
|
18
|
+
"directory": "web/packages/ui"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/t-tani/contraagent/issues"
|
|
22
|
+
},
|
|
23
|
+
"type": "module",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"default": "./dist/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./monitor": {
|
|
30
|
+
"types": "./dist/define/monitor.d.ts",
|
|
31
|
+
"default": "./dist/define/monitor.js"
|
|
32
|
+
},
|
|
33
|
+
"./overview": {
|
|
34
|
+
"types": "./dist/define/overview.d.ts",
|
|
35
|
+
"default": "./dist/define/overview.js"
|
|
36
|
+
},
|
|
37
|
+
"./pipeline-graph": {
|
|
38
|
+
"types": "./dist/define/pipeline-graph.d.ts",
|
|
39
|
+
"default": "./dist/define/pipeline-graph.js"
|
|
40
|
+
},
|
|
41
|
+
"./task-view": {
|
|
42
|
+
"types": "./dist/define/task-view.d.ts",
|
|
43
|
+
"default": "./dist/define/task-view.js"
|
|
44
|
+
},
|
|
45
|
+
"./transcript": {
|
|
46
|
+
"types": "./dist/define/transcript.d.ts",
|
|
47
|
+
"default": "./dist/define/transcript.js"
|
|
48
|
+
},
|
|
49
|
+
"./task-table": {
|
|
50
|
+
"types": "./dist/define/task-table.d.ts",
|
|
51
|
+
"default": "./dist/define/task-table.js"
|
|
52
|
+
},
|
|
53
|
+
"./journal-table": {
|
|
54
|
+
"types": "./dist/define/journal-table.d.ts",
|
|
55
|
+
"default": "./dist/define/journal-table.js"
|
|
56
|
+
},
|
|
57
|
+
"./contracts": {
|
|
58
|
+
"types": "./dist/define/contracts.d.ts",
|
|
59
|
+
"default": "./dist/define/contracts.js"
|
|
60
|
+
},
|
|
61
|
+
"./definitions": {
|
|
62
|
+
"types": "./dist/define/definitions.d.ts",
|
|
63
|
+
"default": "./dist/define/definitions.js"
|
|
64
|
+
},
|
|
65
|
+
"./kpis": {
|
|
66
|
+
"types": "./dist/define/kpis.d.ts",
|
|
67
|
+
"default": "./dist/define/kpis.js"
|
|
68
|
+
},
|
|
69
|
+
"./timeline": {
|
|
70
|
+
"types": "./dist/define/timeline.d.ts",
|
|
71
|
+
"default": "./dist/define/timeline.js"
|
|
72
|
+
},
|
|
73
|
+
"./procs": {
|
|
74
|
+
"types": "./dist/define/procs.d.ts",
|
|
75
|
+
"default": "./dist/define/procs.js"
|
|
76
|
+
},
|
|
77
|
+
"./adapters": {
|
|
78
|
+
"types": "./dist/adapters/index.d.ts",
|
|
79
|
+
"default": "./dist/adapters/index.js"
|
|
80
|
+
},
|
|
81
|
+
"./words": {
|
|
82
|
+
"types": "./dist/words/index.d.ts",
|
|
83
|
+
"default": "./dist/words/index.js"
|
|
84
|
+
},
|
|
85
|
+
"./core": {
|
|
86
|
+
"types": "./dist/core/index.d.ts",
|
|
87
|
+
"default": "./dist/core/index.js"
|
|
88
|
+
},
|
|
89
|
+
"./localize": {
|
|
90
|
+
"types": "./dist/core/i18n.d.ts",
|
|
91
|
+
"default": "./dist/core/i18n.js"
|
|
92
|
+
},
|
|
93
|
+
"./bundle": "./dist/contraagent-ui.js",
|
|
94
|
+
"./custom-elements.json": "./custom-elements.json"
|
|
95
|
+
},
|
|
96
|
+
"customElements": "custom-elements.json",
|
|
97
|
+
"files": [
|
|
98
|
+
"dist",
|
|
99
|
+
"src",
|
|
100
|
+
"!src/**/*.test.ts",
|
|
101
|
+
"!src/**/__snapshots__",
|
|
102
|
+
"docs",
|
|
103
|
+
"!docs/images",
|
|
104
|
+
"custom-elements.json"
|
|
105
|
+
],
|
|
106
|
+
"sideEffects": [
|
|
107
|
+
"./dist/index.js",
|
|
108
|
+
"./dist/define/*.js",
|
|
109
|
+
"./dist/elements/**"
|
|
110
|
+
],
|
|
111
|
+
"dependencies": {
|
|
112
|
+
"@contraagent/api": "0.1.0",
|
|
113
|
+
"@contraagent/elements": "0.1.0"
|
|
114
|
+
},
|
|
115
|
+
"peerDependencies": {
|
|
116
|
+
"@lit/localize": "^0.12.2",
|
|
117
|
+
"lit": "^3.3.3"
|
|
118
|
+
},
|
|
119
|
+
"devDependencies": {
|
|
120
|
+
"@custom-elements-manifest/analyzer": "^0.11.0",
|
|
121
|
+
"@lit/localize": "^0.12.2",
|
|
122
|
+
"@lit/localize-tools": "^0.8.2",
|
|
123
|
+
"lit": "^3.3.3",
|
|
124
|
+
"terser": "^5.51.2",
|
|
125
|
+
"vite": "^8.3.1"
|
|
126
|
+
},
|
|
127
|
+
"scripts": {
|
|
128
|
+
"build": "tsc -p tsconfig.build.json && vite build && cem analyze --litelement --globs 'src/elements/**/*.ts' --exclude 'src/elements/**/graph/**' 'src/elements/**/pipeline-graph/**' 'src/elements/**/*-model.ts'",
|
|
129
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p docs",
|
|
130
|
+
"i18n": "lit-localize extract && lit-localize build",
|
|
131
|
+
"i18n:check": "node scripts/i18n-check.mjs"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// A checked file's fields as the rows of `<cae-check-table>`: each field of its
|
|
2
|
+
// schema against what the file holds, and the fields the schema does not name.
|
|
3
|
+
// Pure.
|
|
4
|
+
import type { ContractSpec } from '@contraagent/api';
|
|
5
|
+
import type { CheckRow, CheckTableStrings } from '@contraagent/elements/check-table';
|
|
6
|
+
import { msg, str } from '@lit/localize';
|
|
7
|
+
|
|
8
|
+
/** Whether a value has a schema's type; true for a type this check cannot judge (the model's own check judges it). */
|
|
9
|
+
export function typeOk(t: string, v: unknown): boolean {
|
|
10
|
+
if (t.startsWith('list[') || t === 'array') return Array.isArray(v);
|
|
11
|
+
if (t === 'string') return typeof v === 'string';
|
|
12
|
+
if (t === 'integer') return Number.isInteger(v);
|
|
13
|
+
if (t === 'number') return typeof v === 'number';
|
|
14
|
+
if (t === 'boolean') return typeof v === 'boolean';
|
|
15
|
+
if (t === 'object') return v !== null && typeof v === 'object' && !Array.isArray(v);
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** A `RootModel[str]`-style schema: the model wraps one value of the given type. */
|
|
20
|
+
export const rootOf = (name: string): string | null => /^RootModel\[(.+)\]$/.exec(name)?.[1] ?? null;
|
|
21
|
+
|
|
22
|
+
/** The file as a JSON object, or null (no file, not JSON, or another JSON value). */
|
|
23
|
+
export function contentObject(o: ContractSpec): Record<string, unknown> | null {
|
|
24
|
+
const c = o.file.content;
|
|
25
|
+
return o.file.exists && c !== null && typeof c === 'object' && !Array.isArray(c) ? (c as Record<string, unknown>) : null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A row per field of the schema, then a row per field the file has that the
|
|
30
|
+
* schema does not name. Without a file, the fields with no values or verdicts;
|
|
31
|
+
* with a file that is not a JSON object, the fields with no verdicts. Null for
|
|
32
|
+
* a text result (a text file, or one JSON value), which has no fields to check.
|
|
33
|
+
*/
|
|
34
|
+
export function checkRowsFromContract(o: ContractSpec): CheckRow[] | null {
|
|
35
|
+
if (!o.fields.length && (o.schema_name === 'text' || rootOf(o.schema_name) !== null)) return null;
|
|
36
|
+
const obj = contentObject(o);
|
|
37
|
+
const rows: CheckRow[] = o.fields.map((x) => {
|
|
38
|
+
const base = { name: x.name, expected: x.type, optional: !x.required };
|
|
39
|
+
if (!obj) return { ...base, hasValue: false, verdict: 'none', verdictLabel: '' };
|
|
40
|
+
if (!(x.name in obj))
|
|
41
|
+
return x.required
|
|
42
|
+
? { ...base, hasValue: false, verdict: 'fail', verdictLabel: msg('missing'), tip: msg('A required field that is not in the file') }
|
|
43
|
+
: { ...base, hasValue: false, verdict: 'none', verdictLabel: msg('absent (optional)') };
|
|
44
|
+
const value = obj[x.name];
|
|
45
|
+
return typeOk(x.type, value)
|
|
46
|
+
? { ...base, hasValue: true, value, verdict: 'pass', verdictLabel: msg('passed') }
|
|
47
|
+
: { ...base, hasValue: true, value, verdict: 'fail', verdictLabel: msg('wrong type'), tip: msg(str`Expected ${x.type}`) };
|
|
48
|
+
});
|
|
49
|
+
const extra = obj ? Object.keys(obj).filter((k) => !o.fields.some((x) => x.name === k)) : [];
|
|
50
|
+
return [
|
|
51
|
+
...rows,
|
|
52
|
+
...extra.map(
|
|
53
|
+
(k): CheckRow => ({
|
|
54
|
+
name: k,
|
|
55
|
+
expected: msg('not in the schema'),
|
|
56
|
+
extra: true,
|
|
57
|
+
hasValue: true,
|
|
58
|
+
value: obj?.[k],
|
|
59
|
+
verdict: 'warn',
|
|
60
|
+
verdictLabel: msg('extra field'),
|
|
61
|
+
tip: msg('Not in the schema'),
|
|
62
|
+
}),
|
|
63
|
+
),
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** The check table's words. */
|
|
68
|
+
export function checkTableStrings(): CheckTableStrings {
|
|
69
|
+
return {
|
|
70
|
+
name: msg('Field'),
|
|
71
|
+
expected: msg('Expected'),
|
|
72
|
+
actual: msg('In the file'),
|
|
73
|
+
verdict: msg('Check'),
|
|
74
|
+
optional: msg('optional'),
|
|
75
|
+
items: (n) => (n === 1 ? msg('1 item') : msg(str`${n} items`)),
|
|
76
|
+
object: msg('object'),
|
|
77
|
+
};
|
|
78
|
+
}
|