openplanr 3.0.0 → 3.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/CHANGELOG.md +37 -0
- package/dist/cli/commands/init-deterministic.d.ts.map +1 -1
- package/dist/cli/commands/init-deterministic.js +49 -6
- package/dist/cli/commands/init-deterministic.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +4 -2
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/dashboard/.vite/manifest.json +2 -2
- package/dist/dashboard/assets/{index-Bk8DyO_2.css → index-BU5fzjyz.css} +1 -1
- package/dist/dashboard/assets/index-G7ygVDGg.js +572 -0
- package/dist/dashboard/assets/index-G7ygVDGg.js.map +1 -0
- package/dist/dashboard/dashboard-manifest.json +14 -14
- package/dist/dashboard/index.html +2 -2
- package/dist/models/types.d.ts +0 -46
- package/dist/models/types.d.ts.map +1 -1
- package/dist/services/capability-map-service.d.ts +4 -0
- package/dist/services/capability-map-service.d.ts.map +1 -1
- package/dist/services/capability-map-service.js +7 -1
- package/dist/services/capability-map-service.js.map +1 -1
- package/dist/services/claude-plugin-service.d.ts +15 -1
- package/dist/services/claude-plugin-service.d.ts.map +1 -1
- package/dist/services/claude-plugin-service.js +66 -15
- package/dist/services/claude-plugin-service.js.map +1 -1
- package/dist/services/config-service.d.ts +24 -1
- package/dist/services/config-service.d.ts.map +1 -1
- package/dist/services/config-service.js +69 -2
- package/dist/services/config-service.js.map +1 -1
- package/dist/services/git-service.d.ts +5 -0
- package/dist/services/git-service.d.ts.map +1 -1
- package/dist/services/git-service.js +27 -0
- package/dist/services/git-service.js.map +1 -1
- package/dist/services/linear-pull-service.d.ts.map +1 -1
- package/dist/services/linear-pull-service.js +1 -2
- package/dist/services/linear-pull-service.js.map +1 -1
- package/dist/services/pipeline-package-service.d.ts +2 -0
- package/dist/services/pipeline-package-service.d.ts.map +1 -1
- package/dist/services/pipeline-package-service.js +2 -1
- package/dist/services/pipeline-package-service.js.map +1 -1
- package/dist/services/runtime-change-summary.d.ts.map +1 -1
- package/dist/services/runtime-change-summary.js +4 -0
- package/dist/services/runtime-change-summary.js.map +1 -1
- package/dist/services/runtime-manager-service.d.ts.map +1 -1
- package/dist/services/runtime-manager-service.js +14 -3
- package/dist/services/runtime-manager-service.js.map +1 -1
- package/dist/services/spec-service.d.ts.map +1 -1
- package/dist/services/spec-service.js +11 -22
- package/dist/services/spec-service.js.map +1 -1
- package/dist/services/upgrade-report.d.ts.map +1 -1
- package/dist/services/upgrade-report.js +5 -2
- package/dist/services/upgrade-report.js.map +1 -1
- package/dist/services/upgrade-service.d.ts +14 -0
- package/dist/services/upgrade-service.d.ts.map +1 -1
- package/dist/services/upgrade-service.js +69 -11
- package/dist/services/upgrade-service.js.map +1 -1
- package/dist/templates/rules/shared/capability-map.md.hbs +2 -2
- package/lib/host-packages/adapter-registry.json +5 -5
- package/lib/host-packages/capability-map.json +89 -29
- package/lib/host-packages/claude/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/claude/openplanr/.claude-plugin/plugin.json +1 -1
- package/lib/host-packages/claude/openplanr/.openplanr-content.json +70 -38
- package/lib/host-packages/claude/openplanr/CONNECTORS.md +62 -0
- package/lib/host-packages/claude/openplanr/README.md +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-studio-shell.js +146 -54
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +25 -25
- package/lib/host-packages/claude/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +8 -4
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
- package/lib/host-packages/claude/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +8 -4
- package/lib/host-packages/claude/openplanr/skills/connect/SKILL.md +60 -0
- package/lib/host-packages/claude/openplanr/skills/connect/references/connectors.md +62 -0
- package/lib/host-packages/claude/openplanr/skills/openplanr/SKILL.md +4 -0
- package/lib/host-packages/claude/openplanr/skills/plan/SKILL.md +4 -1
- package/lib/host-packages/claude/openplanr/skills/plan/scripts/planning-ids.mjs +49 -3
- package/lib/host-packages/claude/openplanr/skills/share/SKILL.md +87 -0
- package/lib/host-packages/claude/openplanr/skills/share/references/connectors.md +62 -0
- package/lib/host-packages/claude/openplanr/skills/ship/SKILL.md +6 -3
- package/lib/host-packages/claude/openplanr/skills/ship/scripts/discover-verification.mjs +2 -1
- package/lib/host-packages/claude/openplanr/skills/sprint/SKILL.md +15 -6
- package/lib/host-packages/claude/openplanr/skills/sprint/references/connectors.md +62 -0
- package/lib/host-packages/claude/openplanr/skills/sprint/references/tracker-connections.md +9 -13
- package/lib/host-packages/claude/openplanr/skills/status/SKILL.md +14 -3
- package/lib/host-packages/claude/openplanr/skills/status/references/connectors.md +62 -0
- package/lib/host-packages/claude/openplanr/skills/status/references/tracker-connections.md +9 -13
- package/lib/host-packages/claude/openplanr/skills/sync/SKILL.md +25 -10
- package/lib/host-packages/claude/openplanr/skills/sync/references/connectors.md +62 -0
- package/lib/host-packages/claude/openplanr/skills/sync/references/tracker-connections.md +9 -13
- package/lib/host-packages/cursor/openplanr/.openplanr-content.json +69 -37
- package/lib/host-packages/cursor/openplanr/CONNECTORS.md +62 -0
- package/lib/host-packages/cursor/openplanr/manifest.json +4 -2
- package/lib/host-packages/cursor/openplanr/rules/planr-connect/references/connectors.md +62 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-connect.mdc +58 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-openplanr.mdc +4 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-plan/scripts/planning-ids.mjs +49 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-plan.mdc +4 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-share/references/connectors.md +62 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-share.mdc +85 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-ship/scripts/discover-verification.mjs +2 -1
- package/lib/host-packages/cursor/openplanr/rules/planr-ship.mdc +6 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/connectors.md +62 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint/references/tracker-connections.md +9 -13
- package/lib/host-packages/cursor/openplanr/rules/planr-sprint.mdc +15 -6
- package/lib/host-packages/cursor/openplanr/rules/planr-status/references/connectors.md +62 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-status/references/tracker-connections.md +9 -13
- package/lib/host-packages/cursor/openplanr/rules/planr-status.mdc +14 -3
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/connectors.md +62 -0
- package/lib/host-packages/cursor/openplanr/rules/planr-sync/references/tracker-connections.md +9 -13
- package/lib/host-packages/cursor/openplanr/rules/planr-sync.mdc +25 -10
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-studio-shell.js +146 -54
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +25 -25
- package/lib/host-packages/cursor/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +8 -4
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
- package/lib/host-packages/cursor/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +8 -4
- package/lib/host-packages/openai/.claude-plugin/marketplace.json +2 -2
- package/lib/host-packages/openai/openplanr/.codex-plugin/plugin.json +1 -1
- package/lib/host-packages/openai/openplanr/.openplanr-content.json +88 -40
- package/lib/host-packages/openai/openplanr/CONNECTORS.md +62 -0
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-share.mjs +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/design-shared-protocol-contracts-31a760fc.mjs +259 -36
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/notices/THIRD_PARTY_NOTICES.txt +54 -54
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/lib/artifact/ui/studio-shell.css +1 -1
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources/03-protocol-contracts.js +259 -36
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/artifact/templates/artifact-review-stage.js.sources.json +4 -4
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/package.json +3 -3
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/02-react.js +43 -24
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/03-react-dom-client-fiber-foundations.js +279 -58
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/04-react-dom-client-reconciliation-hooks.js +50 -42
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/05-react-dom-client-render-phases.js +282 -146
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/06-react-dom-client-commit-effects.js +949 -316
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/07-react-dom-client-work-loop-scheduling.js +143 -87
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js +930 -183
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/09-react-dom-client-public-roots.js +17 -15
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/14-interface-primitives.js +375 -191
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/15-interface-primitives.js +140 -105
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources/16-studio-shell.js +146 -54
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/design/templates/studio/studio.js.sources.json +25 -25
- package/lib/host-packages/openai/openplanr/runtime/design/scripts/runtime/packages/protocol/package.json +8 -4
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/design-protocol-contracts.mjs +259 -36
- package/lib/host-packages/openai/openplanr/runtime/plan/scripts/runtime/packages/protocol/package.json +8 -4
- package/lib/host-packages/openai/openplanr/skills/connect/SKILL.md +59 -0
- package/lib/host-packages/openai/openplanr/skills/connect/agents/openai.yaml +6 -0
- package/lib/host-packages/openai/openplanr/skills/connect/openplanr.skill.json +37 -0
- package/lib/host-packages/openai/openplanr/skills/connect/references/connectors.md +62 -0
- package/lib/host-packages/openai/openplanr/skills/openplanr/SKILL.md +4 -0
- package/lib/host-packages/openai/openplanr/skills/plan/SKILL.md +4 -1
- package/lib/host-packages/openai/openplanr/skills/plan/scripts/planning-ids.mjs +49 -3
- package/lib/host-packages/openai/openplanr/skills/share/SKILL.md +86 -0
- package/lib/host-packages/openai/openplanr/skills/share/agents/openai.yaml +6 -0
- package/lib/host-packages/openai/openplanr/skills/share/openplanr.skill.json +37 -0
- package/lib/host-packages/openai/openplanr/skills/share/references/connectors.md +62 -0
- package/lib/host-packages/openai/openplanr/skills/ship/SKILL.md +6 -3
- package/lib/host-packages/openai/openplanr/skills/ship/scripts/discover-verification.mjs +2 -1
- package/lib/host-packages/openai/openplanr/skills/sprint/SKILL.md +15 -6
- package/lib/host-packages/openai/openplanr/skills/sprint/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/references/connectors.md +62 -0
- package/lib/host-packages/openai/openplanr/skills/sprint/references/tracker-connections.md +9 -13
- package/lib/host-packages/openai/openplanr/skills/status/SKILL.md +14 -3
- package/lib/host-packages/openai/openplanr/skills/status/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/status/references/connectors.md +62 -0
- package/lib/host-packages/openai/openplanr/skills/status/references/tracker-connections.md +9 -13
- package/lib/host-packages/openai/openplanr/skills/sync/SKILL.md +25 -10
- package/lib/host-packages/openai/openplanr/skills/sync/openplanr.skill.json +11 -0
- package/lib/host-packages/openai/openplanr/skills/sync/references/connectors.md +62 -0
- package/lib/host-packages/openai/openplanr/skills/sync/references/tracker-connections.md +9 -13
- package/lib/json-schema.mjs +313 -36
- package/lib/schemas/v1.0.0/spec.schema.json +120 -0
- package/lib/schemas/v1.0.0/story.schema.json +95 -0
- package/lib/schemas/v1.0.0/task.schema.json +171 -0
- package/lib/schemas/v1.7.0/spec.schema.json +117 -0
- package/lib/schemas/v1.7.0/story.schema.json +107 -0
- package/lib/schemas/v1.7.0/task.schema.json +217 -0
- package/package.json +32 -32
- package/dist/dashboard/assets/index-Csby7_ur.js +0 -557
- package/dist/dashboard/assets/index-Csby7_ur.js.map +0 -1
- package/dist/services/audit-log-service.d.ts +0 -47
- package/dist/services/audit-log-service.d.ts.map +0 -1
- package/dist/services/audit-log-service.js +0 -211
- package/dist/services/audit-log-service.js.map +0 -1
- package/dist/services/delta-apply-service.d.ts +0 -16
- package/dist/services/delta-apply-service.d.ts.map +0 -1
- package/dist/services/delta-apply-service.js +0 -74
- package/dist/services/delta-apply-service.js.map +0 -1
- package/dist/services/evidence-verifier.d.ts +0 -71
- package/dist/services/evidence-verifier.d.ts.map +0 -1
- package/dist/services/evidence-verifier.js +0 -174
- package/dist/services/evidence-verifier.js.map +0 -1
- package/dist/services/revise-apply-service.d.ts +0 -55
- package/dist/services/revise-apply-service.d.ts.map +0 -1
- package/dist/services/revise-apply-service.js +0 -265
- package/dist/services/revise-apply-service.js.map +0 -1
- package/dist/services/revise-cache-service.d.ts +0 -46
- package/dist/services/revise-cache-service.d.ts.map +0 -1
- package/dist/services/revise-cache-service.js +0 -89
- package/dist/services/revise-cache-service.js.map +0 -1
- package/dist/services/revise-plan-service.d.ts +0 -38
- package/dist/services/revise-plan-service.d.ts.map +0 -1
- package/dist/services/revise-plan-service.js +0 -153
- package/dist/services/revise-plan-service.js.map +0 -1
- /package/lib/host-packages/claude/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
- /package/lib/host-packages/cursor/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
- /package/lib/host-packages/openai/openplanr/runtime/design/scripts/{design-runtime-support-336900df0d39.mjs → design-runtime-support-e34c388a8e59.mjs} +0 -0
|
@@ -32,6 +32,34 @@
|
|
|
32
32
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("rect", { x: "127", y: "71", width: "18", height: "18", rx: "3", fill: "currentColor" })
|
|
33
33
|
] }) }) });
|
|
34
34
|
}
|
|
35
|
+
function inlineGap(element) {
|
|
36
|
+
const view = element?.ownerDocument.defaultView;
|
|
37
|
+
return view && element ? parseFloat(view.getComputedStyle(element).gap) || 0 : 0;
|
|
38
|
+
}
|
|
39
|
+
function measureLeadingFloor(leading) {
|
|
40
|
+
const view = leading.ownerDocument.defaultView;
|
|
41
|
+
if (!view) return 128;
|
|
42
|
+
const leadingControls = [...leading.children].filter(
|
|
43
|
+
(node) => node instanceof view.HTMLElement && !node.classList.contains("planr-brand") && node.getClientRects().length > 0
|
|
44
|
+
);
|
|
45
|
+
const branding = [
|
|
46
|
+
...leading.querySelectorAll(".planr-mark,.design-wordmark")
|
|
47
|
+
].filter((node) => node.getClientRects().length);
|
|
48
|
+
const brandGap = inlineGap(leading.querySelector(".planr-brand"));
|
|
49
|
+
const brandingWidth = branding.reduce(
|
|
50
|
+
(total, node) => total + node.getBoundingClientRect().width + brandGap,
|
|
51
|
+
0
|
|
52
|
+
);
|
|
53
|
+
const titleBlock = leading.querySelector(".planr-title-block");
|
|
54
|
+
const badge = titleBlock?.querySelector(".studio-type-badge");
|
|
55
|
+
const title = titleBlock?.querySelector("strong,.de-title");
|
|
56
|
+
const titleFloor = Math.max(36, parseFloat(view.getComputedStyle(title ?? leading).fontSize) * 3);
|
|
57
|
+
const identityFloor = Math.max(
|
|
58
|
+
128,
|
|
59
|
+
(badge?.getBoundingClientRect().width || 0) + inlineGap(titleBlock) + titleFloor
|
|
60
|
+
);
|
|
61
|
+
return identityFloor + brandingWidth + leadingControls.reduce((total, control) => total + control.getBoundingClientRect().width, 0) + leadingControls.length * inlineGap(leading);
|
|
62
|
+
}
|
|
35
63
|
function StudioToolbar({
|
|
36
64
|
title,
|
|
37
65
|
titleNode,
|
|
@@ -44,6 +72,7 @@
|
|
|
44
72
|
viewPicker,
|
|
45
73
|
status,
|
|
46
74
|
actions,
|
|
75
|
+
secondaryActions,
|
|
47
76
|
className = ""
|
|
48
77
|
}) {
|
|
49
78
|
const toolbar = (0, import_react3.useRef)(null);
|
|
@@ -54,6 +83,7 @@
|
|
|
54
83
|
const center = element.querySelector(".studio-toolbar-center");
|
|
55
84
|
const trailing = element.querySelector(".studio-toolbar-trailing");
|
|
56
85
|
const leading2 = element.querySelector(".studio-toolbar-leading");
|
|
86
|
+
const secondary = element.querySelector(".studio-toolbar-secondary");
|
|
57
87
|
if (!center || !trailing || !leading2) return;
|
|
58
88
|
const measure = () => {
|
|
59
89
|
const width = element.getBoundingClientRect().width;
|
|
@@ -61,24 +91,28 @@
|
|
|
61
91
|
element.dataset.studioDensity = width <= 680 ? "narrow" : "regular";
|
|
62
92
|
const style = window2.getComputedStyle(element);
|
|
63
93
|
const available = width - parseFloat(style.paddingLeft) - parseFloat(style.paddingRight);
|
|
64
|
-
const gap = parseFloat(style.columnGap) || 0;
|
|
94
|
+
const gap = Math.max(12, parseFloat(style.columnGap) || 0);
|
|
65
95
|
element.dataset.studioCenter = "true";
|
|
66
96
|
const centerWidth = center.scrollWidth;
|
|
67
97
|
element.dataset.studioCenter = String(centerWidth > 0);
|
|
68
98
|
const controlSelector = 'button,a,summary,input,select,output,[role="status"]';
|
|
69
|
-
const controls = [
|
|
99
|
+
const controls = [
|
|
100
|
+
...trailing.querySelectorAll(controlSelector),
|
|
101
|
+
...secondary?.querySelectorAll(controlSelector) ?? []
|
|
102
|
+
].filter(
|
|
70
103
|
(control) => control.getClientRects().length && !control.closest('[role="menu"],.studio-tooltip,[role="dialog"]') && (!control.closest("details") || !!control.closest("summary")) && !control.parentElement?.closest(controlSelector)
|
|
71
104
|
);
|
|
72
|
-
const actionWidth = controls.reduce((total, control) =>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
105
|
+
const actionWidth = controls.reduce((total, control) => {
|
|
106
|
+
if (secondary?.contains(control) && control.getAttribute("role") === "status") {
|
|
107
|
+
const range = element.ownerDocument.createRange();
|
|
108
|
+
range.selectNodeContents(control);
|
|
109
|
+
const textWidth = range.getBoundingClientRect().width;
|
|
110
|
+
const controlStyle = window2.getComputedStyle(control);
|
|
111
|
+
return total + textWidth + (parseFloat(controlStyle.paddingLeft) || 0) + (parseFloat(controlStyle.paddingRight) || 0);
|
|
112
|
+
}
|
|
113
|
+
return total + control.getBoundingClientRect().width;
|
|
114
|
+
}, 0) + Math.max(0, controls.length - 1) * (parseFloat(window2.getComputedStyle(trailing).gap) || 8);
|
|
115
|
+
const leadingFloor = measureLeadingFloor(leading2);
|
|
82
116
|
const outerWidth = Math.max(leadingFloor, actionWidth);
|
|
83
117
|
element.dataset.studioLayout = centerWidth > 0 ? width <= 680 || centerWidth + outerWidth * 2 + gap * 2 > available ? "compact" : "inline" : leadingFloor + actionWidth + gap > available ? "compact" : "inline";
|
|
84
118
|
};
|
|
@@ -92,7 +126,7 @@
|
|
|
92
126
|
});
|
|
93
127
|
};
|
|
94
128
|
const resize = typeof window2.ResizeObserver === "function" ? new window2.ResizeObserver(scheduleMeasure) : null;
|
|
95
|
-
for (const node of [element, center, trailing]) resize?.observe(node);
|
|
129
|
+
for (const node of [element, center, trailing, secondary]) if (node) resize?.observe(node);
|
|
96
130
|
const mutations = new window2.MutationObserver(scheduleMeasure);
|
|
97
131
|
mutations.observe(element, {
|
|
98
132
|
subtree: true,
|
|
@@ -150,7 +184,8 @@
|
|
|
150
184
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "studio-toolbar-trailing design-toolbar-trailing", children: [
|
|
151
185
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "studio-toolbar-status", children: status }),
|
|
152
186
|
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "studio-toolbar-actions", children: actions })
|
|
153
|
-
] })
|
|
187
|
+
] }),
|
|
188
|
+
secondaryActions && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "studio-toolbar-secondary", children: secondaryActions })
|
|
154
189
|
]
|
|
155
190
|
}
|
|
156
191
|
);
|
|
@@ -164,49 +199,106 @@
|
|
|
164
199
|
onOpenChange
|
|
165
200
|
}) {
|
|
166
201
|
const trigger = (0, import_react3.useRef)(null);
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
{
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
202
|
+
const mousePosition = (0, import_react3.useRef)(null);
|
|
203
|
+
const keyboardPosition = (0, import_react3.useRef)(null);
|
|
204
|
+
(0, import_react3.useLayoutEffect)(() => {
|
|
205
|
+
const ownerDocument = trigger.current?.ownerDocument;
|
|
206
|
+
if (!ownerDocument) return;
|
|
207
|
+
const move = (event) => {
|
|
208
|
+
if (event.pointerType !== "mouse") return;
|
|
209
|
+
const position = { x: event.clientX, y: event.clientY };
|
|
210
|
+
const previous = keyboardPosition.current;
|
|
211
|
+
if (previous && (previous.x !== position.x || previous.y !== position.y))
|
|
212
|
+
keyboardPosition.current = null;
|
|
213
|
+
mousePosition.current = position;
|
|
214
|
+
};
|
|
215
|
+
const down = (event) => {
|
|
216
|
+
keyboardPosition.current = null;
|
|
217
|
+
if (event.pointerType === "mouse")
|
|
218
|
+
mousePosition.current = { x: event.clientX, y: event.clientY };
|
|
219
|
+
};
|
|
220
|
+
ownerDocument.addEventListener("pointermove", move, true);
|
|
221
|
+
ownerDocument.addEventListener("pointerdown", down, true);
|
|
222
|
+
return () => {
|
|
223
|
+
ownerDocument.removeEventListener("pointermove", move, true);
|
|
224
|
+
ownerDocument.removeEventListener("pointerdown", down, true);
|
|
225
|
+
};
|
|
226
|
+
}, []);
|
|
227
|
+
const retainKeyboardFocus = (event) => {
|
|
228
|
+
const position = keyboardPosition.current;
|
|
229
|
+
if (event.pointerType === "mouse" && position?.x === event.clientX && position.y === event.clientY)
|
|
230
|
+
event.preventDefault();
|
|
231
|
+
};
|
|
232
|
+
const keyboardInput = () => {
|
|
233
|
+
keyboardPosition.current = mousePosition.current;
|
|
234
|
+
};
|
|
235
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
236
|
+
dist_exports5.Root,
|
|
237
|
+
{
|
|
238
|
+
modal: false,
|
|
239
|
+
open,
|
|
240
|
+
onOpenChange: (value) => {
|
|
241
|
+
if (!value) keyboardPosition.current = null;
|
|
242
|
+
onOpenChange?.(value);
|
|
243
|
+
},
|
|
244
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: `studio-menu ${className}`, children: [
|
|
245
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(dist_exports5.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
246
|
+
StudioButton,
|
|
190
247
|
{
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
248
|
+
"aria-label": label,
|
|
249
|
+
title: label,
|
|
250
|
+
...triggerAttributes,
|
|
251
|
+
ref: trigger,
|
|
252
|
+
onKeyDownCapture: keyboardInput,
|
|
253
|
+
children: [
|
|
254
|
+
label,
|
|
255
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { "aria-hidden": "true", children: "⌄" })
|
|
256
|
+
]
|
|
257
|
+
}
|
|
258
|
+
) }),
|
|
259
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
260
|
+
dist_exports5.Content,
|
|
261
|
+
{
|
|
262
|
+
className: "studio-menu-content",
|
|
263
|
+
align: "end",
|
|
264
|
+
sideOffset: 8,
|
|
265
|
+
collisionPadding: 8,
|
|
266
|
+
onKeyDownCapture: keyboardInput,
|
|
267
|
+
onCloseAutoFocus: (event) => {
|
|
268
|
+
event.preventDefault();
|
|
269
|
+
const content = event.target;
|
|
270
|
+
const ownerDocument = content?.ownerDocument;
|
|
271
|
+
const active = ownerDocument?.activeElement;
|
|
272
|
+
if (active?.isConnected && active !== ownerDocument?.body && active !== ownerDocument?.documentElement && !content?.contains(active))
|
|
273
|
+
return;
|
|
274
|
+
if (trigger.current?.isConnected) trigger.current.focus();
|
|
275
|
+
},
|
|
276
|
+
children: items.map((item, index2) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
277
|
+
dist_exports5.Item,
|
|
196
278
|
{
|
|
197
|
-
|
|
198
|
-
className: `studio-menu-item${index2 > 0 && item.group !== items[index2 - 1].group ? " studio-menu-group-start" : ""}`,
|
|
279
|
+
asChild: true,
|
|
199
280
|
disabled: item.disabled,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
281
|
+
onSelect: item.onSelect,
|
|
282
|
+
onPointerMove: retainKeyboardFocus,
|
|
283
|
+
onPointerLeave: retainKeyboardFocus,
|
|
284
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
285
|
+
"button",
|
|
286
|
+
{
|
|
287
|
+
type: "button",
|
|
288
|
+
className: `studio-menu-item${index2 > 0 && item.group !== items[index2 - 1].group ? " studio-menu-group-start" : ""}`,
|
|
289
|
+
disabled: item.disabled,
|
|
290
|
+
...item.attributes,
|
|
291
|
+
children: item.label
|
|
292
|
+
}
|
|
293
|
+
)
|
|
294
|
+
},
|
|
295
|
+
item.id
|
|
296
|
+
))
|
|
297
|
+
}
|
|
298
|
+
)
|
|
299
|
+
] })
|
|
300
|
+
}
|
|
301
|
+
);
|
|
210
302
|
}
|
|
211
303
|
function StudioPanelDialog({
|
|
212
304
|
open,
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"kind": "openplanr-runtime-asset-sources",
|
|
3
3
|
"schemaVersion": "1.0.0",
|
|
4
4
|
"asset": "studio.js",
|
|
5
|
-
"bytes":
|
|
6
|
-
"sha256": "
|
|
5
|
+
"bytes": 1249882,
|
|
6
|
+
"sha256": "48fcbdfa9f85b4bba49ab4237e8bf0427d0f07e129b1be2c6b8cb4d0f54ebdfa",
|
|
7
7
|
"scopes": [
|
|
8
8
|
{
|
|
9
9
|
"id": "bundle",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"node_modules/scheduler/cjs/scheduler.production.js",
|
|
42
42
|
"node_modules/scheduler/index.js"
|
|
43
43
|
],
|
|
44
|
-
"bytes":
|
|
45
|
-
"sha256": "
|
|
44
|
+
"bytes": 42312,
|
|
45
|
+
"sha256": "3d07031b0e1ebfe8d00491d70eb876cdd9ec829801ec3df4fc5aa72205b5ea7f"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"path": "studio.js.sources/03-react-dom-client-fiber-foundations.js",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"inputs": [
|
|
52
52
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
53
53
|
],
|
|
54
|
-
"bytes":
|
|
55
|
-
"sha256": "
|
|
54
|
+
"bytes": 125924,
|
|
55
|
+
"sha256": "793a627a349d139397ff51c837c7cc911b08b34a49e5629af0c7967e5cb89715"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"path": "studio.js.sources/04-react-dom-client-reconciliation-hooks.js",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"inputs": [
|
|
62
62
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
63
63
|
],
|
|
64
|
-
"bytes":
|
|
65
|
-
"sha256": "
|
|
64
|
+
"bytes": 89353,
|
|
65
|
+
"sha256": "3839e5bdcca072a612ec48fffb6e340083f4692c516a2aeb9c8c8896ab4ea6a4"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"path": "studio.js.sources/05-react-dom-client-render-phases.js",
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
"inputs": [
|
|
72
72
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
73
73
|
],
|
|
74
|
-
"bytes":
|
|
75
|
-
"sha256": "
|
|
74
|
+
"bytes": 103002,
|
|
75
|
+
"sha256": "f057d07ab68567daebe124fe103d88157ee4ce68177e21d1a2166debf424309f"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"path": "studio.js.sources/06-react-dom-client-commit-effects.js",
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"inputs": [
|
|
82
82
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
83
83
|
],
|
|
84
|
-
"bytes":
|
|
85
|
-
"sha256": "
|
|
84
|
+
"bytes": 106377,
|
|
85
|
+
"sha256": "67291903232cb09062344ef0770638c9882a76178adba57c9a67f72bbdb80cbb"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"path": "studio.js.sources/07-react-dom-client-work-loop-scheduling.js",
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
"inputs": [
|
|
92
92
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
93
93
|
],
|
|
94
|
-
"bytes":
|
|
95
|
-
"sha256": "
|
|
94
|
+
"bytes": 60129,
|
|
95
|
+
"sha256": "ed6b1c356c341efa060072cffa2a61fcbb425655bd00c8b58dc5b50a13d5a3ad"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"path": "studio.js.sources/08-react-dom-client-dom-events-properties-hydration.js",
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
"inputs": [
|
|
102
102
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
103
103
|
],
|
|
104
|
-
"bytes":
|
|
105
|
-
"sha256": "
|
|
104
|
+
"bytes": 142294,
|
|
105
|
+
"sha256": "fae78a4ea2c320638ca51a504b26dba90440d72882afdf1edf7ac49fe24853b6"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"path": "studio.js.sources/09-react-dom-client-public-roots.js",
|
|
@@ -111,8 +111,8 @@
|
|
|
111
111
|
"inputs": [
|
|
112
112
|
"node_modules/react-dom/cjs/react-dom-client.production.js"
|
|
113
113
|
],
|
|
114
|
-
"bytes":
|
|
115
|
-
"sha256": "
|
|
114
|
+
"bytes": 31832,
|
|
115
|
+
"sha256": "adca04c0e9079e354d467d17aaa6f49423611d290661f0cbbd7610545a98825e"
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
"path": "studio.js.sources/10-react.js",
|
|
@@ -170,7 +170,6 @@
|
|
|
170
170
|
"node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs",
|
|
171
171
|
"node_modules/@radix-ui/primitive/dist/index.mjs",
|
|
172
172
|
"node_modules/@radix-ui/primitive/dist/internal/is-development.false.mjs",
|
|
173
|
-
"node_modules/@radix-ui/react-arrow/dist/index.mjs",
|
|
174
173
|
"node_modules/@radix-ui/react-collection/dist/index.mjs",
|
|
175
174
|
"node_modules/@radix-ui/react-compose-refs/dist/index.mjs",
|
|
176
175
|
"node_modules/@radix-ui/react-context/dist/index.mjs",
|
|
@@ -213,22 +212,23 @@
|
|
|
213
212
|
"node_modules/use-sidecar/dist/es2015/exports.js",
|
|
214
213
|
"node_modules/use-sidecar/dist/es2015/medium.js"
|
|
215
214
|
],
|
|
216
|
-
"bytes":
|
|
217
|
-
"sha256": "
|
|
215
|
+
"bytes": 196384,
|
|
216
|
+
"sha256": "c8d5ab2e7df79e22329daaf59e074d74345d11147c500553edd7910aaf96ed3e"
|
|
218
217
|
},
|
|
219
218
|
{
|
|
220
219
|
"path": "studio.js.sources/15-interface-primitives.js",
|
|
221
220
|
"scope": "bundle",
|
|
222
221
|
"responsibility": "interface-primitives",
|
|
223
222
|
"inputs": [
|
|
223
|
+
"node_modules/@radix-ui/react-arrow/dist/index.mjs",
|
|
224
224
|
"node_modules/@radix-ui/react-dropdown-menu/dist/index.mjs",
|
|
225
225
|
"node_modules/@radix-ui/react-menu/dist/index.mjs",
|
|
226
226
|
"node_modules/@radix-ui/react-popper/dist/index.mjs",
|
|
227
227
|
"node_modules/@radix-ui/react-roving-focus/dist/index.mjs",
|
|
228
228
|
"node_modules/@radix-ui/react-use-is-hydrated/dist/index.mjs"
|
|
229
229
|
],
|
|
230
|
-
"bytes":
|
|
231
|
-
"sha256": "
|
|
230
|
+
"bytes": 78937,
|
|
231
|
+
"sha256": "e26c838db40b55f6df77606ac87b36f0298d7316ac832fa8c770c9dbab896596"
|
|
232
232
|
},
|
|
233
233
|
{
|
|
234
234
|
"path": "studio.js.sources/16-studio-shell.js",
|
|
@@ -238,8 +238,8 @@
|
|
|
238
238
|
"packages/artifact/lib/artifact/ui/studio-shell-components.mjs",
|
|
239
239
|
"packages/artifact/lib/artifact/ui/studio-shell-mount-impl.mjs"
|
|
240
240
|
],
|
|
241
|
-
"bytes":
|
|
242
|
-
"sha256": "
|
|
241
|
+
"bytes": 27277,
|
|
242
|
+
"sha256": "81af29a6a5a15fd4f0ef41fc48e1eca63c30b3745fd1d92830ba83f7cf2ba603"
|
|
243
243
|
},
|
|
244
244
|
{
|
|
245
245
|
"path": "studio.js.sources/17-design-studio.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openplanr/protocol",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Canonical OpenPlanr schemas, registries, typed errors, and portable contract validation",
|
|
6
6
|
"license": "MIT",
|
|
@@ -115,6 +115,10 @@
|
|
|
115
115
|
"./sharing-security-contracts": {
|
|
116
116
|
"types": "./src/sharing-security-contracts.d.mts",
|
|
117
117
|
"import": "./src/sharing-security-contracts.mjs"
|
|
118
|
+
},
|
|
119
|
+
"./enterprise-journey-contracts": {
|
|
120
|
+
"types": "./src/enterprise-journey-contracts.d.mts",
|
|
121
|
+
"import": "./src/enterprise-journey-contracts.mjs"
|
|
118
122
|
}
|
|
119
123
|
},
|
|
120
124
|
"files": [
|
|
@@ -143,9 +147,9 @@
|
|
|
143
147
|
"access": "public"
|
|
144
148
|
},
|
|
145
149
|
"devDependencies": {
|
|
146
|
-
"esbuild": "0.28.
|
|
147
|
-
"miniflare": "4.
|
|
148
|
-
"playwright": "1.
|
|
150
|
+
"esbuild": "0.28.2",
|
|
151
|
+
"miniflare": "4.20260730.0",
|
|
152
|
+
"playwright": "1.64.0",
|
|
149
153
|
"typescript": "6.0.2"
|
|
150
154
|
}
|
|
151
155
|
}
|