@starlove/orbit 1.4.0 → 2.0.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/Dockerfile +10 -8
- package/README.md +146 -164
- package/dist/full/csp.txt +1 -0
- package/dist/full/fonts/JetBrains_Mono/JetBrainsMono-subset.woff2 +0 -0
- package/dist/full/fonts/JetBrains_Mono/README.txt +5 -0
- package/dist/full/fonts/Mona_Sans/MonaSans-subset.woff2 +0 -0
- package/{public/fonts/Open_Sans → dist/full/fonts/Mona_Sans}/OFL.txt +93 -93
- package/dist/full/fonts/Mona_Sans/README.txt +10 -0
- package/{public/fonts/JetBrains_Mono → dist/full/fonts/Newsreader}/OFL.txt +93 -93
- package/dist/full/fonts/Newsreader/README.txt +8 -0
- package/dist/full/fonts/Newsreader/newsreader.woff2 +0 -0
- package/dist/full/index.html +36 -653
- package/dist/full/js/app.BmuponPJ.js +32 -0
- package/dist/full/js/app.BmuponPJ.js.map +1 -0
- package/dist/full/js/chunk.1fJGQGbW.js +2 -0
- package/dist/full/js/chunk.1fJGQGbW.js.map +1 -0
- package/dist/full/js/chunk.5D7JO2zp.js +2 -0
- package/dist/full/js/chunk.5D7JO2zp.js.map +1 -0
- package/dist/full/js/chunk.BrNn_D79.js +2 -0
- package/dist/full/js/chunk.BrNn_D79.js.map +1 -0
- package/dist/full/js/chunk.CokJXIqM.js +2 -0
- package/dist/full/js/chunk.CokJXIqM.js.map +1 -0
- package/dist/full/js/chunk.D_Haqy6R.js +2 -0
- package/dist/full/js/chunk.D_Haqy6R.js.map +1 -0
- package/dist/full/js/chunk.RO0jsH6I.js +15 -0
- package/dist/full/js/chunk.RO0jsH6I.js.map +1 -0
- package/dist/full/js/chunk.dqWOEtBM.js +2 -0
- package/dist/full/js/chunk.dqWOEtBM.js.map +1 -0
- package/dist/full/js/warm.f260bbbc.js +15 -0
- package/dist/full/orbits-favicon.png +0 -0
- package/dist/full/orbits-logo-bg-wide.png +0 -0
- package/dist/full/orbits-logo-bg.png +0 -0
- package/dist/full/orbits-logo.png +0 -0
- package/dist/full/styles.2b154ffe.css +1 -0
- package/dist/full/vendor/starlove-ui/theme-init.js +66 -0
- package/dist/full/version.json +2 -2
- package/docs/AGENT_GUIDE.md +114 -0
- package/docs/UPDATING.md +249 -64
- package/lib/adapters/indexeddb/blobs.d.ts +3 -0
- package/lib/adapters/indexeddb/blobs.js +54 -0
- package/lib/adapters/indexeddb/database.d.ts +60 -0
- package/lib/adapters/indexeddb/database.js +126 -0
- package/lib/adapters/indexeddb/index.d.ts +5 -0
- package/lib/adapters/indexeddb/index.js +3 -0
- package/lib/adapters/indexeddb/locks.d.ts +14 -0
- package/lib/adapters/indexeddb/locks.js +40 -0
- package/lib/adapters/indexeddb/store.d.ts +40 -0
- package/lib/adapters/indexeddb/store.js +424 -0
- package/lib/adapters/indexeddb/tables.d.ts +43 -0
- package/lib/adapters/indexeddb/tables.js +127 -0
- package/lib/adapters/memory/blobs.d.ts +3 -0
- package/lib/adapters/memory/blobs.js +44 -0
- package/lib/adapters/memory/board.d.ts +41 -0
- package/lib/adapters/memory/board.js +521 -0
- package/lib/adapters/memory/index.d.ts +2 -0
- package/lib/adapters/memory/index.js +2 -0
- package/lib/adapters/memory/search.d.ts +6 -0
- package/lib/adapters/memory/search.js +30 -0
- package/lib/adapters/memory/store.d.ts +34 -0
- package/lib/adapters/memory/store.js +266 -0
- package/lib/adapters/sqlite/backups.d.ts +53 -0
- package/lib/adapters/sqlite/backups.js +232 -0
- package/lib/adapters/sqlite/blobs.d.ts +14 -0
- package/lib/adapters/sqlite/blobs.js +109 -0
- package/lib/adapters/sqlite/board.d.ts +77 -0
- package/lib/adapters/sqlite/board.js +328 -0
- package/lib/adapters/sqlite/database.d.ts +67 -0
- package/lib/adapters/sqlite/database.js +285 -0
- package/lib/adapters/sqlite/index.d.ts +3 -0
- package/lib/adapters/sqlite/index.js +2 -0
- package/lib/adapters/sqlite/lock.d.ts +11 -0
- package/lib/adapters/sqlite/lock.js +34 -0
- package/lib/adapters/sqlite/records.d.ts +54 -0
- package/lib/adapters/sqlite/records.js +546 -0
- package/lib/adapters/sqlite/schema.d.ts +54 -0
- package/lib/adapters/sqlite/schema.js +276 -0
- package/lib/adapters/sqlite/store.d.ts +39 -0
- package/lib/adapters/sqlite/store.js +385 -0
- package/lib/browser/in-page.d.ts +31 -0
- package/lib/browser/in-page.js +46 -0
- package/lib/browser/old-preview.d.ts +13 -0
- package/lib/browser/old-preview.js +80 -0
- package/lib/browser/preview-board.d.ts +8 -0
- package/lib/browser/preview-board.js +69 -0
- package/lib/cli/main.d.ts +7 -0
- package/lib/cli/main.js +343 -0
- package/lib/cli/orbit.d.ts +8 -0
- package/lib/cli/orbit.js +25 -0
- package/lib/client/http.d.ts +38 -0
- package/lib/client/http.js +334 -0
- package/lib/client/local.d.ts +26 -0
- package/lib/client/local.js +190 -0
- package/lib/client/object-url.d.ts +8 -0
- package/lib/client/object-url.js +21 -0
- package/lib/client/types.d.ts +268 -0
- package/lib/client/types.js +8 -0
- package/lib/commands/agent-tools.d.ts +31 -0
- package/lib/commands/agent-tools.js +100 -0
- package/lib/commands/index.d.ts +56 -0
- package/lib/commands/index.js +298 -0
- package/lib/commands/parse.d.ts +73 -0
- package/lib/commands/parse.js +231 -0
- package/lib/commands/present.d.ts +134 -0
- package/lib/commands/present.js +198 -0
- package/lib/commands/session.d.ts +85 -0
- package/lib/commands/session.js +138 -0
- package/lib/commands/verbs.d.ts +35 -0
- package/lib/commands/verbs.js +842 -0
- package/lib/core/actors.d.ts +18 -0
- package/lib/core/actors.js +45 -0
- package/lib/core/agent.d.ts +128 -0
- package/lib/core/agent.js +323 -0
- package/lib/core/boards.d.ts +113 -0
- package/lib/core/boards.js +288 -0
- package/lib/core/bootstrap.d.ts +47 -0
- package/lib/core/bootstrap.js +100 -0
- package/lib/core/bytes.d.ts +10 -0
- package/lib/core/bytes.js +52 -0
- package/lib/core/card-paths.d.ts +25 -0
- package/lib/core/card-paths.js +44 -0
- package/lib/core/context.d.ts +60 -0
- package/lib/core/context.js +42 -0
- package/lib/core/cross-board.d.ts +81 -0
- package/lib/core/cross-board.js +228 -0
- package/lib/core/describe.d.ts +21 -0
- package/lib/core/describe.js +81 -0
- package/lib/core/errors.d.ts +159 -0
- package/lib/core/errors.js +160 -0
- package/lib/core/files.d.ts +79 -0
- package/lib/core/files.js +262 -0
- package/lib/core/history.d.ts +20 -0
- package/lib/core/history.js +53 -0
- package/lib/core/image-types.d.ts +16 -0
- package/lib/core/image-types.js +36 -0
- package/lib/core/model.d.ts +263 -0
- package/lib/core/model.js +34 -0
- package/lib/core/nebula-link.d.ts +14 -0
- package/lib/core/nebula-link.js +39 -0
- package/lib/core/relations.d.ts +58 -0
- package/lib/core/relations.js +112 -0
- package/lib/core/search.d.ts +38 -0
- package/lib/core/search.js +92 -0
- package/lib/core/sessions.d.ts +44 -0
- package/lib/core/sessions.js +158 -0
- package/lib/core/snapshot-schema.d.ts +295 -0
- package/lib/core/snapshot-schema.js +82 -0
- package/lib/core/snapshots.d.ts +75 -0
- package/lib/core/snapshots.js +409 -0
- package/lib/core/states.d.ts +25 -0
- package/lib/core/states.js +126 -0
- package/lib/core/text.d.ts +40 -0
- package/lib/core/text.js +113 -0
- package/lib/core/tickets.d.ts +69 -0
- package/lib/core/tickets.js +311 -0
- package/lib/core/trello.d.ts +17 -0
- package/lib/core/trello.js +269 -0
- package/lib/core/verdicts.d.ts +28 -0
- package/lib/core/verdicts.js +92 -0
- package/lib/core/views.d.ts +95 -0
- package/lib/core/views.js +186 -0
- package/lib/http/app.d.ts +46 -0
- package/lib/http/app.js +491 -0
- package/lib/mcp-server.d.ts +10 -0
- package/lib/mcp-server.js +120 -0
- package/lib/node/assets.d.ts +7 -0
- package/lib/node/assets.js +68 -0
- package/lib/node/data-folder.d.ts +21 -0
- package/lib/node/data-folder.js +34 -0
- package/lib/node/env.d.ts +38 -0
- package/lib/node/env.js +49 -0
- package/lib/node/host-check.d.ts +24 -0
- package/lib/node/host-check.js +53 -0
- package/lib/node/host-services.d.ts +9 -0
- package/lib/node/host-services.js +150 -0
- package/lib/node/local.d.ts +22 -0
- package/lib/node/local.js +61 -0
- package/lib/node/migrate.d.ts +53 -0
- package/lib/node/migrate.js +635 -0
- package/lib/node/package.d.ts +7 -0
- package/lib/node/package.js +14 -0
- package/lib/node/repo-board.d.ts +49 -0
- package/lib/node/repo-board.js +245 -0
- package/lib/node/serve.d.ts +8 -0
- package/lib/node/serve.js +106 -0
- package/lib/orbit.d.ts +47 -0
- package/lib/orbit.js +44 -0
- package/lib/quiet-sqlite-warning.d.ts +1 -0
- package/lib/quiet-sqlite-warning.js +18 -0
- package/lib/store/blob-path.d.ts +6 -0
- package/lib/store/blob-path.js +12 -0
- package/lib/store/conformance.d.ts +52 -0
- package/lib/store/conformance.js +1449 -0
- package/lib/store/search-words.d.ts +10 -0
- package/lib/store/search-words.js +19 -0
- package/lib/store/types.d.ts +452 -0
- package/lib/store/types.js +34 -0
- package/llms.txt +63 -0
- package/package.json +109 -25
- package/src/cli/orbit.js +11 -658
- package/src/mcp-server.js +16 -876
- package/SKILL-ORBIT.md +0 -151
- package/build.mjs +0 -210
- package/dist/full/js/app.62905fcb.js +0 -952
- package/dist/full/js/app.62905fcb.js.map +0 -7
- package/dist/full/styles.4e60d824.css +0 -1
- package/docs/AGENT_PROTOCOL.md +0 -424
- package/docs/MCP_SETUP.md +0 -54
- package/docs/ORBIT_DISPATCH.md +0 -280
- package/docs/SS-Orbit-Dark.png +0 -0
- package/docs/SS-Orbit-Light.png +0 -0
- package/docs/mcp-client.example.json +0 -13
- package/docs/setup/orbit-init-wizard.md +0 -174
- package/public/apple-touch-icon.png +0 -0
- package/public/cursors/live_arrow.cur +0 -0
- package/public/cursors/live_link.cur +0 -0
- package/public/cursors/live_move.cur +0 -0
- package/public/cursors/live_select.cur +0 -0
- package/public/cursors/live_unavail.cur +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-Bold.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-BoldItalic.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-Italic.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-Light.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-LightItalic.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-Medium.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-MediumItalic.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-Regular.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-SemiBold.ttf +0 -0
- package/public/fonts/Chakra_Petch/ChakraPetch-SemiBoldItalic.ttf +0 -0
- package/public/fonts/Chakra_Petch/OFL.txt +0 -93
- package/public/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/public/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/public/fonts/Inter/OFL.txt +0 -93
- package/public/fonts/Inter/README.txt +0 -118
- package/public/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.ttf +0 -0
- package/public/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.ttf +0 -0
- package/public/fonts/JetBrains_Mono/README.txt +0 -79
- package/public/fonts/OpenRing-Regular.ttf +0 -0
- package/public/fonts/Open_Sans/OpenSans-Italic-VariableFont_wdth,wght.ttf +0 -0
- package/public/fonts/Open_Sans/OpenSans-VariableFont_wdth,wght.ttf +0 -0
- package/public/fonts/Open_Sans/README.txt +0 -100
- package/public/fonts/Orbitron/OFL.txt +0 -93
- package/public/fonts/Orbitron/Orbitron-VariableFont_wght.ttf +0 -0
- package/public/fonts/Orbitron/README.txt +0 -68
- package/public/fonts/Rajdhani/OFL.txt +0 -93
- package/public/fonts/Rajdhani/Rajdhani-Bold.ttf +0 -0
- package/public/fonts/Rajdhani/Rajdhani-Light.ttf +0 -0
- package/public/fonts/Rajdhani/Rajdhani-Medium.ttf +0 -0
- package/public/fonts/Rajdhani/Rajdhani-Regular.ttf +0 -0
- package/public/fonts/Rajdhani/Rajdhani-SemiBold.ttf +0 -0
- package/public/fonts/runescape-uf.ttf +0 -0
- package/public/index.html +0 -769
- package/public/js/actor-labels.js +0 -65
- package/public/js/api.js +0 -39
- package/public/js/app.js +0 -45
- package/public/js/artifact-drawer.js +0 -79
- package/public/js/board-export.js +0 -161
- package/public/js/board-menu.js +0 -374
- package/public/js/card-actions.js +0 -545
- package/public/js/config.js +0 -20
- package/public/js/create-card.js +0 -190
- package/public/js/dom.js +0 -19
- package/public/js/drawer.js +0 -273
- package/public/js/font-preference.js +0 -229
- package/public/js/format.js +0 -433
- package/public/js/help-menu.js +0 -31
- package/public/js/icons.js +0 -16
- package/public/js/kanban.js +0 -694
- package/public/js/local-backend.js +0 -1015
- package/public/js/main.js +0 -161
- package/public/js/modal.js +0 -33
- package/public/js/motion-preference.js +0 -64
- package/public/js/panel.js +0 -58
- package/public/js/router.js +0 -134
- package/public/js/search.js +0 -56
- package/public/js/settings-tabs.js +0 -7
- package/public/js/settings.js +0 -1634
- package/public/js/sse.js +0 -159
- package/public/js/starscape.js +0 -332
- package/public/js/state.js +0 -129
- package/public/js/text-editing.js +0 -128
- package/public/js/theme-preference.js +0 -95
- package/public/js/ticket-detail.js +0 -1516
- package/public/js/ticket-typeahead.js +0 -49
- package/public/js/toast.js +0 -89
- package/public/js/topbar-notes.js +0 -155
- package/public/js/transport.js +0 -22
- package/public/js/typeahead.js +0 -206
- package/public/js/unread.js +0 -121
- package/public/js/update-check.js +0 -58
- package/public/js/url-routes.js +0 -94
- package/public/orbits-favicon.png +0 -0
- package/public/orbits-logo-bg-wide.png +0 -0
- package/public/orbits-logo-bg.png +0 -0
- package/public/orbits-logo.png +0 -0
- package/public/styles.css +0 -7709
- package/src/core/agent.js +0 -387
- package/src/core/agents-md.js +0 -109
- package/src/core/artifacts.js +0 -149
- package/src/core/attachments.js +0 -238
- package/src/core/auth.js +0 -85
- package/src/core/backups.js +0 -142
- package/src/core/board.js +0 -148
- package/src/core/boards.js +0 -409
- package/src/core/bootstrap.js +0 -170
- package/src/core/css-bundle.js +0 -30
- package/src/core/db.js +0 -315
- package/src/core/delete-board.js +0 -163
- package/src/core/dispatch.js +0 -1007
- package/src/core/events.js +0 -314
- package/src/core/http.js +0 -115
- package/src/core/migrate.js +0 -198
- package/src/core/paths.js +0 -55
- package/src/core/provision-repo-board.js +0 -119
- package/src/core/queries.js +0 -246
- package/src/core/registry.js +0 -211
- package/src/core/relations.js +0 -163
- package/src/core/review-verdicts.js +0 -138
- package/src/core/router.js +0 -556
- package/src/core/search.js +0 -183
- package/src/core/seed.js +0 -234
- package/src/core/snapshots.js +0 -692
- package/src/core/states.js +0 -167
- package/src/core/system-picker.js +0 -109
- package/src/core/tickets.js +0 -400
- package/src/core/util.js +0 -106
- package/src/core/version-check.js +0 -154
- package/src/mcp/orbit-client.js +0 -287
- package/src/server.js +0 -115
package/dist/full/index.html
CHANGED
|
@@ -4,37 +4,30 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>Orbit</title>
|
|
7
|
-
<link
|
|
8
|
-
rel="icon"
|
|
7
|
+
<link rel="icon"
|
|
9
8
|
type="image/png"
|
|
10
9
|
sizes="32x32"
|
|
11
10
|
href="./favicon-32x32.png"
|
|
12
11
|
/>
|
|
13
|
-
<link
|
|
14
|
-
rel="apple-touch-icon"
|
|
12
|
+
<link rel="apple-touch-icon"
|
|
15
13
|
sizes="180x180"
|
|
16
14
|
href="./apple-touch-icon.png"
|
|
17
15
|
/>
|
|
18
|
-
<!-- Apply the
|
|
19
|
-
paint, so the app underneath the splash paints in the right
|
|
20
|
-
(no flash) and at the right type size (no layout jump), and
|
|
21
|
-
splash respects an explicit reduce-motion choice.
|
|
22
|
-
theme-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
<!-- Apply the saved theme, motion and font/size preferences before
|
|
17
|
+
first paint, so the app underneath the splash paints in the right
|
|
18
|
+
theme (no flash) and at the right type size (no layout jump), and
|
|
19
|
+
the splash respects an explicit reduce-motion choice.
|
|
20
|
+
ss-ui's theme-init.js applies the theme and motion (starscape-theme,
|
|
21
|
+
starscape-motion, and the ?theme, ?motion and ?shot previews);
|
|
22
|
+
the app does the rest once it runs. -->
|
|
23
|
+
<script src="./vendor/starlove-ui/theme-init.js"></script>
|
|
24
|
+
<!-- The fonts and text size from font-preference (orbit_font_preferences
|
|
25
|
+
→ --orbit-font-* / --type-*), before first paint. -->
|
|
26
26
|
<script>
|
|
27
27
|
try {
|
|
28
|
-
var t = localStorage.getItem("mab_theme");
|
|
29
|
-
if (t === "light" || t === "dark")
|
|
30
|
-
document.documentElement.setAttribute("data-theme", t);
|
|
31
|
-
var rm = localStorage.getItem("mab_reduce_motion");
|
|
32
|
-
if (rm === "true")
|
|
33
|
-
document.documentElement.setAttribute("data-motion", "reduce");
|
|
34
|
-
else if (rm === "false")
|
|
35
|
-
document.documentElement.setAttribute("data-motion", "full");
|
|
36
28
|
var fp = JSON.parse(localStorage.getItem("orbit_font_preferences") || "{}");
|
|
37
29
|
var stacks = {
|
|
30
|
+
monaSans: '"Orbit Mona Sans", "Mona Sans", system-ui, "Segoe UI Variable", "Segoe UI", Arial, sans-serif',
|
|
38
31
|
inter: '"Orbit Inter", "Inter", "Segoe UI Variable", "Segoe UI", Arial, sans-serif',
|
|
39
32
|
openSans: '"Orbit Open Sans", "Open Sans", "Segoe UI Variable", "Segoe UI", Arial, sans-serif',
|
|
40
33
|
jetBrainsMono: '"Orbit JetBrains Mono", "JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace',
|
|
@@ -45,11 +38,17 @@
|
|
|
45
38
|
openRing: '"Orbit Open Ring", "Segoe UI Variable", "Segoe UI", Arial, sans-serif'
|
|
46
39
|
};
|
|
47
40
|
var defaults = {
|
|
48
|
-
control: "
|
|
49
|
-
heading: "
|
|
50
|
-
label: "
|
|
51
|
-
badge: "
|
|
41
|
+
control: "monaSans",
|
|
42
|
+
heading: "monaSans",
|
|
43
|
+
label: "monaSans",
|
|
44
|
+
badge: "monaSans"
|
|
52
45
|
};
|
|
46
|
+
// The defaults before Mona Sans, saved whole by any change in
|
|
47
|
+
// Appearance, read as never chosen (the size stays).
|
|
48
|
+
if (fp.site === "inter" && fp.heading === "orbitron" && fp.control === "inter" &&
|
|
49
|
+
fp.label === "inter" && fp.badge === "orbitron") {
|
|
50
|
+
fp = { userScale: fp.userScale };
|
|
51
|
+
}
|
|
53
52
|
var aliases = { ui: "control" };
|
|
54
53
|
var targets = {
|
|
55
54
|
control: "--orbit-font-control",
|
|
@@ -76,7 +75,7 @@
|
|
|
76
75
|
document.documentElement.style.setProperty(targets[target], stacks[id]);
|
|
77
76
|
document.documentElement.setAttribute(dataAttrs[target], id);
|
|
78
77
|
});
|
|
79
|
-
var siteFont = stacks[fp.site] ? fp.site : "
|
|
78
|
+
var siteFont = stacks[fp.site] ? fp.site : "monaSans";
|
|
80
79
|
// Body text always follows the primary font.
|
|
81
80
|
document.documentElement.style.setProperty("--orbit-font-body", stacks[siteFont]);
|
|
82
81
|
var userScale = Number(fp.userScale);
|
|
@@ -87,107 +86,22 @@
|
|
|
87
86
|
} catch (e) {}
|
|
88
87
|
</script>
|
|
89
88
|
<link rel="preload" as="image" href="./orbits-logo.png" />
|
|
90
|
-
<link rel="stylesheet" href="styles.
|
|
89
|
+
<link rel="stylesheet" href="./styles.2b154ffe.css" />
|
|
90
|
+
<!-- The app mounts here; its topbar, board and footer are the body's own flex items. -->
|
|
91
|
+
<style>#root{display:contents}</style>
|
|
91
92
|
<!-- Boot splash — the canonical ss-ui loading screen (see the package's
|
|
92
93
|
components/loader.css). Inline critical CSS so it paints before
|
|
93
|
-
|
|
94
|
+
the app loads. The logo grows in then breathes; no spinner.
|
|
94
95
|
Keyframes namespaced `starscape-loader-*`. Under reduced motion the grow-in
|
|
95
96
|
is dropped and the dot grid stops; the gentle breathe stays. -->
|
|
96
|
-
<style>
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
inset: 0;
|
|
100
|
-
z-index: 99999;
|
|
101
|
-
display: flex;
|
|
102
|
-
flex-direction: column;
|
|
103
|
-
align-items: center;
|
|
104
|
-
justify-content: center;
|
|
105
|
-
gap: 2rem;
|
|
106
|
-
overflow: hidden;
|
|
107
|
-
background: linear-gradient(
|
|
108
|
-
135deg,
|
|
109
|
-
#1a1a2e 0%,
|
|
110
|
-
#16213e 50%,
|
|
111
|
-
#0f3460 100%
|
|
112
|
-
);
|
|
113
|
-
transition: opacity 0.4s ease;
|
|
114
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
115
|
-
Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
116
|
-
}
|
|
117
|
-
.loader::before {
|
|
118
|
-
content: "";
|
|
119
|
-
position: absolute;
|
|
120
|
-
width: 200%;
|
|
121
|
-
height: 200%;
|
|
122
|
-
background-image: radial-gradient(
|
|
123
|
-
circle,
|
|
124
|
-
rgba(168, 192, 255, 0.15) 1px,
|
|
125
|
-
transparent 1px
|
|
126
|
-
);
|
|
127
|
-
background-size: 50px 50px;
|
|
128
|
-
will-change: transform;
|
|
129
|
-
animation: starscape-loader-drift 20s linear infinite;
|
|
130
|
-
}
|
|
131
|
-
.loader.is-hiding {
|
|
132
|
-
opacity: 0;
|
|
133
|
-
pointer-events: none;
|
|
134
|
-
}
|
|
135
|
-
.loader__logo {
|
|
136
|
-
width: 120px;
|
|
137
|
-
height: 120px;
|
|
138
|
-
object-fit: contain;
|
|
139
|
-
filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.3));
|
|
140
|
-
transform-origin: center;
|
|
141
|
-
/* translateZ in the keyframes + backface-visibility keep the star
|
|
142
|
-
on a stable GPU layer, so it doesn't snap ~1px as the grow
|
|
143
|
-
starts. Keep in sync with the package components/loader.css. */
|
|
144
|
-
backface-visibility: hidden;
|
|
145
|
-
will-change: transform;
|
|
146
|
-
animation:
|
|
147
|
-
starscape-loader-grow 0.6s cubic-bezier(0.22, 1, 0.36, 1) both,
|
|
148
|
-
starscape-loader-breathe 3s ease-in-out 0.6s infinite;
|
|
149
|
-
}
|
|
150
|
-
.loader__label {
|
|
151
|
-
margin: 0;
|
|
152
|
-
color: #fff;
|
|
153
|
-
font-size: 1.25rem;
|
|
154
|
-
font-weight: 600;
|
|
155
|
-
letter-spacing: 0.5px;
|
|
156
|
-
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
|
|
157
|
-
}
|
|
158
|
-
@keyframes starscape-loader-drift {
|
|
159
|
-
from { transform: translate(0, 0); }
|
|
160
|
-
to { transform: translate(-50px, -50px); }
|
|
161
|
-
}
|
|
162
|
-
@keyframes starscape-loader-grow {
|
|
163
|
-
from { transform: scale(0) translateZ(0); opacity: 0; }
|
|
164
|
-
to { transform: scale(1) translateZ(0); opacity: 1; }
|
|
165
|
-
}
|
|
166
|
-
@keyframes starscape-loader-breathe {
|
|
167
|
-
0%, 100% { transform: scale(1) translateZ(0); }
|
|
168
|
-
50% { transform: scale(1.06) translateZ(0); }
|
|
169
|
-
}
|
|
170
|
-
@media (prefers-reduced-motion: reduce) {
|
|
171
|
-
:root:not([data-motion="full"]) .loader::before {
|
|
172
|
-
animation: none;
|
|
173
|
-
}
|
|
174
|
-
:root:not([data-motion="full"]) .loader__logo {
|
|
175
|
-
animation: starscape-loader-breathe 3s ease-in-out infinite;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
[data-motion="reduce"] .loader::before {
|
|
179
|
-
animation: none;
|
|
180
|
-
}
|
|
181
|
-
[data-motion="reduce"] .loader__logo {
|
|
182
|
-
animation: starscape-loader-breathe 3s ease-in-out infinite;
|
|
183
|
-
}
|
|
184
|
-
</style>
|
|
97
|
+
<style>.loader{z-index:99999;font-family:var(--orbit-font-body,"Orbit Mona Sans", "Mona Sans", system-ui, "Segoe UI Variable", "Segoe UI", Arial, sans-serif);background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);flex-direction:column;justify-content:center;align-items:center;gap:2rem;transition:opacity .4s;display:flex;position:fixed;inset:0;overflow:hidden}.loader:before{content:"";will-change:transform;background-image:radial-gradient(circle,#a8c0ff26 1px,#0000 1px);background-size:50px 50px;width:200%;height:200%;animation:20s linear infinite starscape-loader-drift;position:absolute}.loader.is-hiding{opacity:0;pointer-events:none}.loader__logo{object-fit:contain;filter:drop-shadow(0 0 20px #ffffff4d);transform-origin:50%;backface-visibility:hidden;will-change:transform;width:120px;height:120px;animation:.6s cubic-bezier(.22,1,.36,1) both starscape-loader-grow,3s ease-in-out .6s infinite starscape-loader-breathe}.loader__label{color:#fff;letter-spacing:.5px;text-shadow:0 2px 10px #0000004d;margin:0;font-size:1.25rem;font-weight:600}@keyframes starscape-loader-drift{0%{transform:translate(0)}to{transform:translate(-50px,-50px)}}@keyframes starscape-loader-grow{0%{opacity:0;transform:scale(0)translateZ(0)}to{opacity:1;transform:scale(1)translateZ(0)}}@keyframes starscape-loader-breathe{0%,to{transform:scale(1)translateZ(0)}50%{transform:scale(1.06)translateZ(0)}}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .loader:before{animation:none}:root:not([data-motion=full]) .loader__logo{animation:3s ease-in-out infinite starscape-loader-breathe}}[data-motion=reduce] .loader:before{animation:none}[data-motion=reduce] .loader__logo{animation:3s ease-in-out infinite starscape-loader-breathe}</style>
|
|
98
|
+
<script type="module" crossorigin src="./js/app.BmuponPJ.js"></script>
|
|
99
|
+
<script type="module" src="./js/warm.f260bbbc.js"></script>
|
|
185
100
|
</head>
|
|
186
101
|
<body>
|
|
187
102
|
<!-- Boot splash - shown immediately, removed once the app is ready. -->
|
|
188
103
|
<div id="loader" class="loader" role="status" aria-live="polite">
|
|
189
|
-
<img
|
|
190
|
-
class="loader__logo"
|
|
104
|
+
<img class="loader__logo"
|
|
191
105
|
src="./orbits-logo.png"
|
|
192
106
|
alt="Orbit"
|
|
193
107
|
width="120"
|
|
@@ -199,541 +113,10 @@
|
|
|
199
113
|
<div class="grain">
|
|
200
114
|
<div class="milky-way" aria-hidden="true"></div>
|
|
201
115
|
</div>
|
|
202
|
-
<
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
type="button"
|
|
207
|
-
class="brand-focus-btn"
|
|
208
|
-
data-variant="brand-focus"
|
|
209
|
-
aria-label="Show board notes"
|
|
210
|
-
aria-expanded="false"
|
|
211
|
-
aria-controls="brandFocusPopover"
|
|
212
|
-
>
|
|
213
|
-
<img class="mark" src="./orbits-logo.png" alt="Orbits logo" />
|
|
214
|
-
</button>
|
|
215
|
-
<div
|
|
216
|
-
id="brandFocusPopover"
|
|
217
|
-
class="brand-focus-popover"
|
|
218
|
-
role="dialog"
|
|
219
|
-
aria-label="Notes For You"
|
|
220
|
-
hidden
|
|
221
|
-
>
|
|
222
|
-
<div class="inline-md-field brand-focus-notes-field">
|
|
223
|
-
<span class="inline-md-field-label font-orbitron">Notes For You</span>
|
|
224
|
-
<div id="brandFocusNotes" class="brand-focus-notes-body"></div>
|
|
225
|
-
</div>
|
|
226
|
-
</div>
|
|
227
|
-
</div>
|
|
228
|
-
<div class="controls">
|
|
229
|
-
<button
|
|
230
|
-
id="brandNotesBtn"
|
|
231
|
-
type="button"
|
|
232
|
-
class="topbar-notes brand-notes-strip"
|
|
233
|
-
data-variant="topbar-notes"
|
|
234
|
-
aria-label="Show board notes"
|
|
235
|
-
aria-expanded="false"
|
|
236
|
-
aria-controls="brandFocusPopover"
|
|
237
|
-
>
|
|
238
|
-
<span id="brandNotesText" class="topbar-notes__text"></span>
|
|
239
|
-
</button>
|
|
240
|
-
<span class="topbar-controls-gap" aria-hidden="true"></span>
|
|
241
|
-
<div class="topbar-search" id="topbarSearch">
|
|
242
|
-
<input
|
|
243
|
-
id="searchInput"
|
|
244
|
-
placeholder="Search tickets, comments, decisions..."
|
|
245
|
-
autocomplete="off"
|
|
246
|
-
/>
|
|
247
|
-
<div id="searchResults" class="search-results" hidden></div>
|
|
248
|
-
</div>
|
|
249
|
-
<button
|
|
250
|
-
id="newTicketBtn"
|
|
251
|
-
type="button"
|
|
252
|
-
class="topbar-btn topbar-ctl-shrink"
|
|
253
|
-
data-variant="cta"
|
|
254
|
-
aria-label="New Card"
|
|
255
|
-
>
|
|
256
|
-
<span class="btn-plus" aria-hidden="true"></span>
|
|
257
|
-
<span class="topbar-btn-label">New Card</span>
|
|
258
|
-
</button>
|
|
259
|
-
<div class="topbar-menu">
|
|
260
|
-
<button
|
|
261
|
-
type="button"
|
|
262
|
-
id="boardMenuBtn"
|
|
263
|
-
class="topbar-chip topbar-ctl-shrink"
|
|
264
|
-
data-variant="board-chip"
|
|
265
|
-
aria-expanded="false"
|
|
266
|
-
aria-haspopup="true"
|
|
267
|
-
aria-controls="boardFlyout"
|
|
268
|
-
>
|
|
269
|
-
<svg
|
|
270
|
-
class="topbar-icon"
|
|
271
|
-
width="16"
|
|
272
|
-
height="16"
|
|
273
|
-
viewBox="0 0 24 24"
|
|
274
|
-
fill="none"
|
|
275
|
-
aria-hidden="true"
|
|
276
|
-
>
|
|
277
|
-
<rect
|
|
278
|
-
x="4"
|
|
279
|
-
y="2"
|
|
280
|
-
width="6"
|
|
281
|
-
height="20"
|
|
282
|
-
rx="0.75"
|
|
283
|
-
stroke="currentColor"
|
|
284
|
-
stroke-width="2"
|
|
285
|
-
/>
|
|
286
|
-
<rect
|
|
287
|
-
x="14"
|
|
288
|
-
y="2"
|
|
289
|
-
width="6"
|
|
290
|
-
height="20"
|
|
291
|
-
rx="0.75"
|
|
292
|
-
stroke="currentColor"
|
|
293
|
-
stroke-width="2"
|
|
294
|
-
/>
|
|
295
|
-
</svg>
|
|
296
|
-
<span class="topbar-chip-label">Board</span>
|
|
297
|
-
</button>
|
|
298
|
-
<div
|
|
299
|
-
id="boardFlyout"
|
|
300
|
-
class="menu-flyout menu-flyout--align-end"
|
|
301
|
-
hidden
|
|
302
|
-
role="menu"
|
|
303
|
-
></div>
|
|
304
|
-
</div>
|
|
305
|
-
<button
|
|
306
|
-
id="themeToggle"
|
|
307
|
-
type="button"
|
|
308
|
-
class="topbar-btn topbar-ctl-shrink"
|
|
309
|
-
data-variant="theme"
|
|
310
|
-
aria-label="Toggle theme"
|
|
311
|
-
>
|
|
312
|
-
<svg
|
|
313
|
-
class="topbar-icon"
|
|
314
|
-
id="themeIcon"
|
|
315
|
-
width="16"
|
|
316
|
-
height="16"
|
|
317
|
-
viewBox="0 0 24 24"
|
|
318
|
-
fill="none"
|
|
319
|
-
stroke="currentColor"
|
|
320
|
-
stroke-width="2"
|
|
321
|
-
stroke-linecap="round"
|
|
322
|
-
aria-hidden="true"
|
|
323
|
-
>
|
|
324
|
-
<circle cx="12" cy="12" r="5" />
|
|
325
|
-
<path
|
|
326
|
-
d="M12 1v2m0 18v2M4.2 4.2l1.4 1.4m12.8 12.8l1.4 1.4M1 12h2m18 0h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4"
|
|
327
|
-
/>
|
|
328
|
-
</svg>
|
|
329
|
-
</button>
|
|
330
|
-
<button
|
|
331
|
-
id="helpBtn"
|
|
332
|
-
type="button"
|
|
333
|
-
class="topbar-btn topbar-ctl-shrink"
|
|
334
|
-
data-variant="translucent"
|
|
335
|
-
aria-haspopup="dialog"
|
|
336
|
-
aria-controls="helpDialog"
|
|
337
|
-
>
|
|
338
|
-
<svg
|
|
339
|
-
class="topbar-icon"
|
|
340
|
-
width="16"
|
|
341
|
-
height="16"
|
|
342
|
-
viewBox="0 0 24 24"
|
|
343
|
-
fill="none"
|
|
344
|
-
stroke="currentColor"
|
|
345
|
-
stroke-width="2"
|
|
346
|
-
stroke-linecap="round"
|
|
347
|
-
stroke-linejoin="round"
|
|
348
|
-
aria-hidden="true"
|
|
349
|
-
>
|
|
350
|
-
<circle cx="12" cy="12" r="10" />
|
|
351
|
-
<path d="M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3" />
|
|
352
|
-
<path d="M12 17h.01" />
|
|
353
|
-
</svg>
|
|
354
|
-
<span class="topbar-btn-label">Help</span>
|
|
355
|
-
</button>
|
|
356
|
-
<button
|
|
357
|
-
id="settingsBtn"
|
|
358
|
-
type="button"
|
|
359
|
-
class="topbar-btn topbar-ctl-shrink"
|
|
360
|
-
data-variant="translucent"
|
|
361
|
-
>
|
|
362
|
-
<svg
|
|
363
|
-
class="topbar-icon"
|
|
364
|
-
width="16"
|
|
365
|
-
height="16"
|
|
366
|
-
viewBox="0 0 24 24"
|
|
367
|
-
fill="none"
|
|
368
|
-
stroke="currentColor"
|
|
369
|
-
stroke-width="2"
|
|
370
|
-
stroke-linecap="round"
|
|
371
|
-
stroke-linejoin="round"
|
|
372
|
-
aria-hidden="true"
|
|
373
|
-
>
|
|
374
|
-
<path
|
|
375
|
-
d="M12.22 2h-.44a2 2 0 00-2 2v.18a2 2 0 01-1 1.73l-.43.25a2 2 0 01-2 0l-.15-.08a2 2 0 00-2.73.73l-.22.38a2 2 0 00.73 2.73l.15.1a2 2 0 011 1.72v.51a2 2 0 01-1 1.74l-.15.09a2 2 0 00-.73 2.73l.22.38a2 2 0 002.73.73l.15-.08a2 2 0 012 0l.43.25a2 2 0 011 1.73V20a2 2 0 002 2h.44a2 2 0 002-2v-.18a2 2 0 011-1.73l.43-.25a2 2 0 012 0l.15.08a2 2 0 002.73-.73l.22-.39a2 2 0 00-.73-2.73l-.15-.08a2 2 0 01-1-1.74v-.5a2 2 0 011-1.74l.15-.09a2 2 0 00.73-2.73l-.22-.38a2 2 0 00-2.73-.73l-.15.08a2 2 0 01-2 0l-.43-.25a2 2 0 01-1-1.73V4a2 2 0 00-2-2z"
|
|
376
|
-
/>
|
|
377
|
-
<circle cx="12" cy="12" r="3" />
|
|
378
|
-
</svg>
|
|
379
|
-
<span class="topbar-btn-label">Settings</span>
|
|
380
|
-
<span class="topbar-update-dot" title="Update available" hidden></span>
|
|
381
|
-
</button>
|
|
382
|
-
</div>
|
|
383
|
-
</header>
|
|
384
|
-
|
|
385
|
-
<div
|
|
386
|
-
id="createFlyoutBackdrop"
|
|
387
|
-
class="create-flyout-backdrop"
|
|
388
|
-
hidden
|
|
389
|
-
aria-hidden="true"
|
|
390
|
-
></div>
|
|
391
|
-
<div
|
|
392
|
-
id="createFlyout"
|
|
393
|
-
class="create-flyout"
|
|
394
|
-
hidden
|
|
395
|
-
aria-label="New card"
|
|
396
|
-
>
|
|
397
|
-
<div id="createFlyoutInner" class="create-flyout-inner"></div>
|
|
398
|
-
</div>
|
|
399
|
-
|
|
400
|
-
<main class="board-main">
|
|
401
|
-
<div id="kanban" class="kanban" aria-live="polite"></div>
|
|
402
|
-
</main>
|
|
403
|
-
<footer class="frame-footer" aria-label="Application signature">
|
|
404
|
-
<span class="frame-footer-title">Orbit</span>
|
|
405
|
-
<span class="frame-footer-subtitle"><em>a Starscape app</em></span>
|
|
406
|
-
</footer>
|
|
407
|
-
|
|
408
|
-
<div
|
|
409
|
-
id="drawerBackdrop"
|
|
410
|
-
class="drawer-backdrop"
|
|
411
|
-
hidden
|
|
412
|
-
aria-hidden="true"
|
|
413
|
-
></div>
|
|
414
|
-
<aside id="drawer" class="drawer" hidden aria-label="Panel">
|
|
415
|
-
<header class="drawer-header">
|
|
416
|
-
<div
|
|
417
|
-
id="drawerTitleBlock"
|
|
418
|
-
class="drawer-title-block"
|
|
419
|
-
></div>
|
|
420
|
-
<div id="drawerTabsShell" class="drawer-tabs-shell" hidden>
|
|
421
|
-
<nav
|
|
422
|
-
id="drawerTabs"
|
|
423
|
-
class="drawer-tabs"
|
|
424
|
-
role="tablist"
|
|
425
|
-
></nav>
|
|
426
|
-
</div>
|
|
427
|
-
<button
|
|
428
|
-
type="button"
|
|
429
|
-
id="drawerArchiveBtn"
|
|
430
|
-
class="drawer-archive"
|
|
431
|
-
aria-label="Archive card"
|
|
432
|
-
title="Archive card"
|
|
433
|
-
hidden
|
|
434
|
-
>
|
|
435
|
-
<svg
|
|
436
|
-
viewBox="0 0 24 24"
|
|
437
|
-
width="18"
|
|
438
|
-
height="18"
|
|
439
|
-
fill="none"
|
|
440
|
-
stroke="currentColor"
|
|
441
|
-
stroke-width="2"
|
|
442
|
-
stroke-linecap="round"
|
|
443
|
-
stroke-linejoin="round"
|
|
444
|
-
aria-hidden="true"
|
|
445
|
-
>
|
|
446
|
-
<path d="M3 6h18" />
|
|
447
|
-
<path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" />
|
|
448
|
-
<path
|
|
449
|
-
d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"
|
|
450
|
-
/>
|
|
451
|
-
<path d="M10 11v6" />
|
|
452
|
-
<path d="M14 11v6" />
|
|
453
|
-
</svg>
|
|
454
|
-
</button>
|
|
455
|
-
<button
|
|
456
|
-
type="button"
|
|
457
|
-
id="drawerCloseBtn"
|
|
458
|
-
class="drawer-close"
|
|
459
|
-
aria-label="Close panel"
|
|
460
|
-
>
|
|
461
|
-
<svg
|
|
462
|
-
class="ui-icon ui-icon-x"
|
|
463
|
-
viewBox="0 0 24 24"
|
|
464
|
-
aria-hidden="true"
|
|
465
|
-
focusable="false"
|
|
466
|
-
>
|
|
467
|
-
<path d="M6 6l12 12M18 6 6 18" />
|
|
468
|
-
</svg>
|
|
469
|
-
</button>
|
|
470
|
-
</header>
|
|
471
|
-
<div id="drawerInner" class="drawer-inner"></div>
|
|
472
|
-
</aside>
|
|
473
|
-
|
|
474
|
-
<div
|
|
475
|
-
id="artifactDrawerBackdrop"
|
|
476
|
-
class="artifact-drawer-backdrop"
|
|
477
|
-
hidden
|
|
478
|
-
aria-hidden="true"
|
|
479
|
-
></div>
|
|
480
|
-
<aside
|
|
481
|
-
id="artifactDrawer"
|
|
482
|
-
class="artifact-drawer"
|
|
483
|
-
hidden
|
|
484
|
-
aria-label="Linked markdown artifact"
|
|
485
|
-
>
|
|
486
|
-
<header class="artifact-drawer-header">
|
|
487
|
-
<div class="artifact-drawer-title-block">
|
|
488
|
-
<h2 id="artifactDrawerTitle" class="artifact-drawer-title">Artifact</h2>
|
|
489
|
-
<p id="artifactDrawerMeta" class="artifact-drawer-meta"></p>
|
|
490
|
-
</div>
|
|
491
|
-
<button
|
|
492
|
-
type="button"
|
|
493
|
-
id="artifactDrawerCloseBtn"
|
|
494
|
-
class="drawer-close artifact-drawer-close"
|
|
495
|
-
aria-label="Close artifact"
|
|
496
|
-
>
|
|
497
|
-
<svg
|
|
498
|
-
class="ui-icon ui-icon-x"
|
|
499
|
-
viewBox="0 0 24 24"
|
|
500
|
-
aria-hidden="true"
|
|
501
|
-
focusable="false"
|
|
502
|
-
>
|
|
503
|
-
<path d="M6 6l12 12M18 6 6 18" />
|
|
504
|
-
</svg>
|
|
505
|
-
</button>
|
|
506
|
-
</header>
|
|
507
|
-
<div id="artifactDrawerBody" class="artifact-drawer-body"></div>
|
|
508
|
-
</aside>
|
|
509
|
-
|
|
510
|
-
<template id="commentFormTemplate">
|
|
511
|
-
<form class="comment-form">
|
|
512
|
-
<textarea
|
|
513
|
-
name="body"
|
|
514
|
-
placeholder="Add a comment, decision, or instruction..."
|
|
515
|
-
required
|
|
516
|
-
></textarea>
|
|
517
|
-
<button type="submit">Comment</button>
|
|
518
|
-
</form>
|
|
519
|
-
</template>
|
|
520
|
-
|
|
521
|
-
<!-- Generic modal dialog — content varies by use-case.
|
|
522
|
-
The welcome dialog auto-shows on the preview edition via main.js.
|
|
523
|
-
Other uses: call openModal(el) from any module that imports modal.js. -->
|
|
524
|
-
<dialog
|
|
525
|
-
id="welcomeDialog"
|
|
526
|
-
class="orbit-dialog"
|
|
527
|
-
aria-labelledby="welcomeDialogTitle"
|
|
528
|
-
>
|
|
529
|
-
<div class="welcome-dialog-inner">
|
|
530
|
-
<div class="welcome-dialog-head">
|
|
531
|
-
<img
|
|
532
|
-
class="welcome-dialog-logo"
|
|
533
|
-
src="./orbits-logo.png"
|
|
534
|
-
alt=""
|
|
535
|
-
aria-hidden="true"
|
|
536
|
-
/>
|
|
537
|
-
<span class="welcome-dialog-edition-pill"
|
|
538
|
-
>Preview Edition</span
|
|
539
|
-
>
|
|
540
|
-
</div>
|
|
541
|
-
<div class="welcome-dialog-body">
|
|
542
|
-
<h2 id="welcomeDialogTitle" class="welcome-dialog-title">
|
|
543
|
-
No-AI Browser Preview
|
|
544
|
-
</h2>
|
|
545
|
-
<p class="welcome-dialog-lede">
|
|
546
|
-
You're using the local, browser-only preview of
|
|
547
|
-
<strong>Orbit</strong> — a developer-first kanban board
|
|
548
|
-
built for teams working alongside AI agents.
|
|
549
|
-
</p>
|
|
550
|
-
<ul class="welcome-dialog-notices">
|
|
551
|
-
<li>
|
|
552
|
-
<span class="welcome-dialog-notice-label"
|
|
553
|
-
>No AI</span
|
|
554
|
-
>
|
|
555
|
-
Boards are stored in your browser only. AI features,
|
|
556
|
-
MCP server, and server-side sync require the full
|
|
557
|
-
install.
|
|
558
|
-
</li>
|
|
559
|
-
<li>
|
|
560
|
-
<span class="welcome-dialog-notice-label"
|
|
561
|
-
>Download</span
|
|
562
|
-
>
|
|
563
|
-
Get the full app at
|
|
564
|
-
<a
|
|
565
|
-
class="welcome-dialog-link"
|
|
566
|
-
href="https://orbit.starscape.app/install"
|
|
567
|
-
>orbit.starscape.app/install</a
|
|
568
|
-
>
|
|
569
|
-
</li>
|
|
570
|
-
<li>
|
|
571
|
-
<span class="welcome-dialog-notice-label"
|
|
572
|
-
>Coming soon</span
|
|
573
|
-
>
|
|
574
|
-
Paid cloud hosting for teams — no install required.
|
|
575
|
-
</li>
|
|
576
|
-
</ul>
|
|
577
|
-
</div>
|
|
578
|
-
<footer class="welcome-dialog-footer">
|
|
579
|
-
<button
|
|
580
|
-
type="button"
|
|
581
|
-
class="welcome-dialog-cta"
|
|
582
|
-
data-modal-initial-focus
|
|
583
|
-
data-modal-close
|
|
584
|
-
>
|
|
585
|
-
Get started
|
|
586
|
-
</button>
|
|
587
|
-
</footer>
|
|
588
|
-
</div>
|
|
589
|
-
</dialog>
|
|
590
|
-
|
|
591
|
-
<!-- Help & About. Reuses the .orbit-dialog shell + welcome-dialog-*
|
|
592
|
-
styling so it inherits the modal chrome; opened from the topbar
|
|
593
|
-
Help button and wired through modal.js (Escape/backdrop close). -->
|
|
594
|
-
<dialog
|
|
595
|
-
id="helpDialog"
|
|
596
|
-
class="orbit-dialog"
|
|
597
|
-
aria-labelledby="helpDialogTitle"
|
|
598
|
-
>
|
|
599
|
-
<div class="welcome-dialog-inner help-dialog-inner">
|
|
600
|
-
<div class="welcome-dialog-head">
|
|
601
|
-
<img
|
|
602
|
-
class="welcome-dialog-logo"
|
|
603
|
-
src="./orbits-logo.png"
|
|
604
|
-
alt=""
|
|
605
|
-
aria-hidden="true"
|
|
606
|
-
/>
|
|
607
|
-
<span
|
|
608
|
-
class="welcome-dialog-edition-pill"
|
|
609
|
-
id="helpDialogVersion"
|
|
610
|
-
>Orbit</span
|
|
611
|
-
>
|
|
612
|
-
<button
|
|
613
|
-
type="button"
|
|
614
|
-
class="help-dialog-close"
|
|
615
|
-
aria-label="Close"
|
|
616
|
-
data-modal-close
|
|
617
|
-
>
|
|
618
|
-
<svg
|
|
619
|
-
class="ui-icon ui-icon-x"
|
|
620
|
-
viewBox="0 0 24 24"
|
|
621
|
-
aria-hidden="true"
|
|
622
|
-
focusable="false"
|
|
623
|
-
>
|
|
624
|
-
<path d="M6 6l12 12M18 6 6 18" />
|
|
625
|
-
</svg>
|
|
626
|
-
</button>
|
|
627
|
-
</div>
|
|
628
|
-
<div class="welcome-dialog-body">
|
|
629
|
-
<h2 id="helpDialogTitle" class="welcome-dialog-title">
|
|
630
|
-
Starscape Orbit
|
|
631
|
-
</h2>
|
|
632
|
-
<p class="welcome-dialog-lede">
|
|
633
|
-
A developer-first kanban board built for teams working
|
|
634
|
-
alongside AI agents. Track the motion of your project —
|
|
635
|
-
and hand work to your coding agent through the Orbit MCP
|
|
636
|
-
tools.
|
|
637
|
-
</p>
|
|
638
|
-
|
|
639
|
-
<section
|
|
640
|
-
class="help-dialog-section"
|
|
641
|
-
aria-label="Getting started"
|
|
642
|
-
>
|
|
643
|
-
<h3 class="help-dialog-heading">Getting started</h3>
|
|
644
|
-
<ol class="help-dialog-steps">
|
|
645
|
-
<li class="help-dialog-step">
|
|
646
|
-
<span class="help-dialog-step__index">01</span>
|
|
647
|
-
<div>
|
|
648
|
-
<h4>Create a board</h4>
|
|
649
|
-
<p>
|
|
650
|
-
Use the <strong>Board</strong> menu →
|
|
651
|
-
New board. Optionally point it at a
|
|
652
|
-
coding project folder so Orbit can drop
|
|
653
|
-
<code>SKILL-ORBIT.md</code> and
|
|
654
|
-
<code>AGENTS.md</code> for your agent.
|
|
655
|
-
</p>
|
|
656
|
-
</div>
|
|
657
|
-
</li>
|
|
658
|
-
<li class="help-dialog-step">
|
|
659
|
-
<span class="help-dialog-step__index">02</span>
|
|
660
|
-
<div>
|
|
661
|
-
<h4>Add cards & the AI Ready lane</h4>
|
|
662
|
-
<p>
|
|
663
|
-
Capture work with
|
|
664
|
-
<strong>New Card</strong>. Move cards
|
|
665
|
-
into <strong>AI Ready</strong> to stage
|
|
666
|
-
them for an agent to claim.
|
|
667
|
-
</p>
|
|
668
|
-
</div>
|
|
669
|
-
</li>
|
|
670
|
-
<li class="help-dialog-step">
|
|
671
|
-
<span class="help-dialog-step__index">03</span>
|
|
672
|
-
<div>
|
|
673
|
-
<h4>Connect your coding agent</h4>
|
|
674
|
-
<p>
|
|
675
|
-
Add the Orbit MCP server from
|
|
676
|
-
<strong>Settings</strong>, then ask your
|
|
677
|
-
agent to read <code>AGENTS.md</code> and
|
|
678
|
-
claim the next ticket.
|
|
679
|
-
</p>
|
|
680
|
-
</div>
|
|
681
|
-
</li>
|
|
682
|
-
</ol>
|
|
683
|
-
</section>
|
|
684
|
-
|
|
685
|
-
<section
|
|
686
|
-
class="help-dialog-section"
|
|
687
|
-
aria-label="Links"
|
|
688
|
-
>
|
|
689
|
-
<h3 class="help-dialog-heading">Links</h3>
|
|
690
|
-
<ul class="help-dialog-links">
|
|
691
|
-
<li>
|
|
692
|
-
<a
|
|
693
|
-
class="welcome-dialog-link"
|
|
694
|
-
href="https://orbit.starscape.app"
|
|
695
|
-
target="_blank"
|
|
696
|
-
rel="noopener"
|
|
697
|
-
>Documentation</a
|
|
698
|
-
>
|
|
699
|
-
</li>
|
|
700
|
-
<li>
|
|
701
|
-
<a
|
|
702
|
-
class="welcome-dialog-link"
|
|
703
|
-
href="https://github.com/brucestarlove/ss-orbit/blob/master/docs/MCP_SETUP.md"
|
|
704
|
-
target="_blank"
|
|
705
|
-
rel="noopener"
|
|
706
|
-
>MCP setup</a
|
|
707
|
-
>
|
|
708
|
-
</li>
|
|
709
|
-
<li>
|
|
710
|
-
<a
|
|
711
|
-
class="welcome-dialog-link"
|
|
712
|
-
href="https://orbit.starscape.app/support"
|
|
713
|
-
target="_blank"
|
|
714
|
-
rel="noopener"
|
|
715
|
-
>Support / Tip</a
|
|
716
|
-
>
|
|
717
|
-
</li>
|
|
718
|
-
</ul>
|
|
719
|
-
</section>
|
|
720
|
-
</div>
|
|
721
|
-
<footer class="welcome-dialog-footer">
|
|
722
|
-
<button
|
|
723
|
-
type="button"
|
|
724
|
-
class="welcome-dialog-cta"
|
|
725
|
-
data-modal-close
|
|
726
|
-
>
|
|
727
|
-
Got it
|
|
728
|
-
</button>
|
|
729
|
-
</footer>
|
|
730
|
-
</div>
|
|
731
|
-
</dialog>
|
|
732
|
-
|
|
733
|
-
<script src="js/app.62905fcb.js" type="module"></script>
|
|
734
|
-
<!-- Fade out the boot splash once the DOM is ready. The /js/main.js
|
|
735
|
-
module runs before DOMContentLoaded, so theme/motion + wiring are
|
|
736
|
-
already applied by the time this fires. -->
|
|
116
|
+
<div id="root"></div>
|
|
117
|
+
<!-- Fade out the boot splash once the DOM is ready. The app's module
|
|
118
|
+
runs before DOMContentLoaded, so theme/motion are already applied
|
|
119
|
+
by the time this fires. -->
|
|
737
120
|
<script>
|
|
738
121
|
(function () {
|
|
739
122
|
function hideSplash() {
|